:root {
  --plum: #6f2755;
  --plum-dark: #451834;
  --plum-light: #f8eaf3;
  --coral: #ee765f;
  --teal: #087d78;
  --teal-dark: #075d5a;
  --yellow: #f6c84b;
  --gold: #c7911e;
  --cream: #fffaf2;
  --paper: #fffefd;
  --ink: #2e2230;
  --muted: #71646f;
  --line: #eadfe6;
  --success: #237a57;
  --shadow: 0 20px 55px rgba(69, 24, 52, .12);
  --radius: 28px;
  --radius-sm: 16px;
  --container: 1180px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.6; }
body.locked { overflow: hidden; }
img { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.08; letter-spacing: -.035em; }
h1 { font-size: clamp(2.65rem, 6vw, 5.5rem); }
h2 { font-size: clamp(2rem, 4vw, 3.45rem); }
h3 { font-size: 1.35rem; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.narrow { max-width: 820px; }
.section { padding-block: clamp(72px, 10vw, 124px); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 12px; top: -70px; z-index: 1000; padding: 12px 16px; border-radius: 10px; background: var(--plum-dark); color: white; transition: top .2s; }
.skip-link:focus { top: 12px; }

.announcement { min-height: 38px; display: flex; align-items: center; justify-content: center; gap: 18px; padding: 8px 20px; background: var(--plum-dark); color: white; font-size: .83rem; font-weight: 750; letter-spacing: .02em; text-align: center; }
.announcement-separator { color: var(--yellow); }
.site-header { position: sticky; z-index: 80; top: 0; background: rgba(255,254,253,.94); border-bottom: 1px solid rgba(234,223,230,.9); backdrop-filter: blur(16px); }
.header-inner { min-height: 90px; display: flex; align-items: center; gap: 28px; }
.brand { display: flex; align-items: center; gap: 12px; min-width: 235px; }
.brand img { width: 62px; height: 62px; object-fit: contain; }
.brand span { display: grid; line-height: 1.15; }
.brand strong { color: var(--plum-dark); font-family: Georgia, serif; font-size: 1.25rem; }
.brand small { margin-top: 5px; color: var(--muted); font-size: .7rem; letter-spacing: .04em; text-transform: uppercase; }
.desktop-nav { display: flex; align-items: center; justify-content: center; gap: clamp(16px, 2.2vw, 30px); flex: 1; }
.desktop-nav a { position: relative; font-size: .92rem; font-weight: 700; white-space: nowrap; }
.desktop-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 3px; border-radius: 3px; background: var(--coral); transition: right .2s; }
.desktop-nav a:hover::after, .desktop-nav a.active::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 8px; }
.icon-button, .menu-button, .close-button { border: 0; background: transparent; cursor: pointer; }
.icon-button { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: var(--plum-light); font-size: 1.4rem; }
.icon-button:hover { background: #efd6e5; }
.account-header { display: flex; align-items: center; gap: 9px; }
.header-user-greeting { color: var(--plum-dark); font-size: .82rem; white-space: nowrap; }
.header-user-greeting strong { font-weight: 850; }
.account-menu-wrap { position: relative; }
.account-button { min-height: 42px; display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border: 1px solid #eadce5; border-radius: 999px; background: var(--plum-light); color: var(--plum-dark); cursor: pointer; font-weight: 800; white-space: nowrap; }
.account-button:hover, .account-button[aria-expanded="true"] { background: #efd6e5; border-color: #dfc5d5; }
.account-dropdown { position: absolute; z-index: 95; top: calc(100% + 10px); right: 0; width: 190px; overflow: hidden; padding: 8px; border: 1px solid var(--line); border-radius: 16px; background: white; box-shadow: 0 16px 38px rgba(69,24,52,.16); }
.account-dropdown[hidden] { display: none; }
.account-dropdown button { width: 100%; padding: 11px 12px; border: 0; border-radius: 10px; background: transparent; color: var(--plum-dark); cursor: pointer; font: inherit; font-size: .86rem; font-weight: 750; text-align: left; }
.account-dropdown button:hover { background: var(--plum-light); }
.account-dropdown .account-logout-button { margin-top: 5px; border-top: 1px solid var(--line); border-radius: 0 0 10px 10px; color: #9f2c3a; }
.account-dropdown .account-logout-button:hover { background: #fff0f1; }
.mobile-account-summary { margin: 8px 8px 2px; padding: 11px 12px; border-radius: 12px; background: var(--plum-light); color: var(--plum-dark); font-size: .82rem; }
.mobile-account-summary[hidden] { display: none; }
.cart-button { min-height: 44px; display: flex; align-items: center; gap: 7px; padding: 8px 12px; border: 0; border-radius: 999px; background: var(--plum); color: white; cursor: pointer; font-weight: 750; }
.cart-button strong { min-width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; background: var(--yellow); color: var(--plum-dark); font-size: .78rem; }
.menu-button { display: none; font-size: 1.6rem; }
.search-panel { position: absolute; width: 100%; padding: 18px 0; background: white; border-top: 1px solid var(--line); box-shadow: 0 18px 30px rgba(69,24,52,.09); }
.search-form { display: grid; grid-template-columns: 1fr auto auto; gap: 10px; }
.search-form input { min-height: 50px; padding: 0 18px; border: 1px solid var(--line); border-radius: 14px; }
.mobile-nav { display: none; padding: 12px 20px 22px; background: white; border-top: 1px solid var(--line); }
.mobile-nav a { display: block; padding: 13px 8px; border-bottom: 1px solid var(--line); font-weight: 700; }

.page-view { display: none; }
.page-view.active { display: block; animation: pageIn .36s ease; }
@keyframes pageIn { from { opacity: .15; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; color: var(--plum); font-size: .78rem; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 28px; height: 3px; border-radius: 4px; background: var(--coral); }
.eyebrow-light { color: white; }
.eyebrow-light::before { background: var(--yellow); }
.hero { position: relative; overflow: hidden; min-height: 720px; display: grid; align-items: center; background: linear-gradient(120deg, #fff8ef 0%, #fdeaf1 52%, #eaf8f6 100%); }
.hero-grid { display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: clamp(32px, 7vw, 90px); padding-block: 64px 86px; }
.hero-copy { position: relative; z-index: 2; }
.hero-copy h1 { max-width: 720px; margin-bottom: 24px; color: var(--plum-dark); }
.hero-copy h1 em { color: var(--coral); font-family: Georgia, serif; font-weight: 500; }
.hero-copy > p { max-width: 650px; color: #61535e; font-size: clamp(1.08rem, 2vw, 1.3rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 32px 0 26px; }
.hero-checks { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0; padding: 0; list-style: none; color: #5e4d59; font-size: .88rem; font-weight: 700; }
.hero-portrait { position: relative; }
.portrait-frame { position: relative; max-width: 490px; margin-left: auto; }
.portrait-frame::before { content: ""; position: absolute; inset: -15px 16px 20px -16px; z-index: 0; border: 3px dashed rgba(111,39,85,.25); border-radius: 46% 54% 48% 52% / 43% 42% 58% 57%; transform: rotate(3deg); }
.portrait-frame > img { position: relative; z-index: 1; width: 100%; aspect-ratio: 4 / 5.25; object-fit: cover; object-position: center 28%; border-radius: 48% 48% 34px 34px; box-shadow: var(--shadow); }
.floating-card { position: absolute; z-index: 3; min-width: 188px; display: grid; grid-template-columns: auto 1fr; column-gap: 10px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.85); border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: 0 18px 35px rgba(69,24,52,.14); backdrop-filter: blur(9px); }
.floating-card span { grid-row: span 2; align-self: center; font-size: 1.7rem; }
.floating-card strong { font-size: .9rem; }
.floating-card small { color: var(--muted); font-size: .7rem; }
.floating-card-top { top: 11%; left: -58px; }
.floating-card-bottom { right: -25px; bottom: 8%; }
.blob { position: absolute; border-radius: 50%; filter: blur(1px); opacity: .55; }
.blob-one { width: 210px; height: 210px; right: -65px; top: 50px; background: var(--yellow); }
.blob-two { width: 120px; height: 120px; left: 5%; bottom: -50px; background: var(--teal); }
.button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 20px; border: 1px solid transparent; border-radius: 13px; font-weight: 800; cursor: pointer; transition: transform .18s, box-shadow .18s, background .18s; }
.button:hover { transform: translateY(-2px); }
.button:focus-visible, button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(8,125,120,.32); outline-offset: 3px; }
.button-large { min-height: 56px; padding-inline: 25px; }
.button-primary { background: var(--plum); color: white; box-shadow: 0 10px 22px rgba(111,39,85,.2); }
.button-primary:hover { background: var(--plum-dark); }
.button-light { background: rgba(255,255,255,.82); border-color: rgba(111,39,85,.18); color: var(--plum); }
.button-outline { background: transparent; border-color: var(--plum); color: var(--plum); }
.button-ghost { background: #f7f2f5; color: var(--ink); }
.button-yellow { background: var(--yellow); color: var(--plum-dark); }
.footer-cta-stack { display: grid; gap: 10px; margin-top: 14px; }
.footer-cta-stack .button { width: 100%; text-align: center; line-height: 1.3; }
.footer-site-button { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.28); color: white; font-size: .82rem; }
.footer-site-button:hover { background: rgba(255,255,255,.17); }
.creator-link { color: var(--yellow); font-weight: 850; opacity: 1; }
.creator-link:hover { color: white; }
.button-teal { background: var(--teal); color: white; }
.full-width { width: 100%; }
.text-link { padding: 3px 0; border: 0; border-bottom: 2px solid currentColor; background: none; color: var(--plum); font-weight: 850; cursor: pointer; }
.centered-link { display: block; margin: 16px auto 0; }

.trust-band { background: var(--plum); color: white; }
.trust-grid { min-height: 116px; display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; }
.trust-grid > div { display: grid; gap: 2px; padding: 8px 24px; text-align: center; border-right: 1px solid rgba(255,255,255,.18); }
.trust-grid > div:last-child { border: 0; }
.trust-grid strong { color: var(--yellow); font-family: Georgia, serif; font-size: 1.5rem; }
.trust-grid span { font-size: .8rem; opacity: .87; }
.section-heading { margin-bottom: 42px; }
.section-heading h2 { max-width: 780px; margin-bottom: 12px; color: var(--plum-dark); }
.section-heading p { max-width: 650px; color: var(--muted); font-size: 1.05rem; }
.split-heading { display: flex; align-items: end; justify-content: space-between; gap: 32px; }
.centered { display: grid; justify-items: center; text-align: center; }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.product-card { overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 22px; background: white; box-shadow: 0 10px 35px rgba(69,24,52,.07); transition: transform .2s, box-shadow .2s; }
.product-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.product-cover { position: relative; min-height: 230px; display: grid; place-items: center; overflow: hidden; padding: 28px; cursor: pointer; border: 0; text-align: left; }
.product-cover::before, .product-cover::after { content: ""; position: absolute; border-radius: 50%; background: rgba(255,255,255,.25); }
.product-cover::before { width: 160px; height: 160px; right: -45px; top: -30px; }
.product-cover::after { width: 90px; height: 90px; left: -25px; bottom: -25px; }
.cover-icon { position: relative; z-index: 1; font-size: 4.2rem; filter: drop-shadow(0 8px 10px rgba(45,25,38,.13)); }
.product-cover-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.product-card.product-owned .product-cover-image { opacity: .78; }
.product-modal-cover-image { width: 100%; height: 100%; object-fit: cover; border-radius: inherit; display: none; }
.product-modal-cover-image.is-active { display: block; }
.product-modal-video { width: 100%; height: 100%; object-fit: contain; border-radius: inherit; background: #111; display: none; }
.product-modal-video.is-active { display: block; }
.product-modal-gallery { margin: -44px -44px 30px; }
.product-modal-gallery .product-modal-visual { position: relative; min-height: 300px; margin: 0; overflow: hidden; }
.gallery-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 42px; height: 42px; border: 0; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--plum-dark); font-size: 1.8rem; line-height: 1; font-weight: 800; box-shadow: 0 10px 25px rgba(0,0,0,.12); cursor: pointer; }
.gallery-nav.prev { left: 14px; }
.gallery-nav.next { right: 14px; }
.product-gallery-thumbs { display: flex; gap: 12px; margin-top: 14px; overflow-x: auto; padding-bottom: 4px; }
.gallery-thumb { flex: 0 0 88px; height: 72px; padding: 0; border: 2px solid transparent; border-radius: 14px; overflow: hidden; background: white; cursor: pointer; }
.gallery-thumb.active { border-color: var(--plum); box-shadow: 0 8px 20px rgba(90,31,67,.16); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery-thumb.video-thumb { position: relative; }
.video-thumb-play { position: absolute; inset: 50% auto auto 50%; transform: translate(-50%,-50%); display: grid; place-items: center; width: 30px; height: 30px; border-radius: 999px; background: rgba(255,255,255,.94); color: var(--plum); font-size: .82rem; box-shadow: 0 6px 16px rgba(0,0,0,.18); }
.gallery-dot.video-dot { width: 14px; }
.product-gallery-dots { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 12px; }
.gallery-dot { width: 10px; height: 10px; border-radius: 999px; border: 0; background: #d9c9d2; padding: 0; cursor: pointer; }
.gallery-dot.active { background: var(--plum); }
.product-badge { position: absolute; z-index: 2; top: 14px; left: 14px; padding: 6px 10px; border-radius: 999px; background: white; color: var(--plum-dark); font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.product-body { flex: 1; display: flex; flex-direction: column; padding: 22px; }
.product-category { color: var(--teal); font-size: .72rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.product-body h3 { margin: 8px 0 10px; color: var(--plum-dark); }
.product-body p { flex: 1; color: var(--muted); font-size: .9rem; }
.product-meta { margin-top: 14px; }
.product-pricing { display: grid; align-content: end; justify-items: start; gap: 1px; }
.product-original-price { color: #8a7b86; font-size: .82rem; font-weight: 700; }
.product-original-price s { text-decoration-thickness: 2px; text-decoration-color: var(--coral); }
.product-sale-line { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px; color: var(--plum); }
.product-sale-line small { font-size: .78rem; font-weight: 850; text-transform: uppercase; letter-spacing: .03em; }
.product-sale-price { color: var(--plum); font-family: Georgia, serif; font-size: 1.55rem; font-weight: 900; line-height: 1.05; }
.product-actions { display: grid; grid-template-columns: .9fr 1.35fr; gap: 8px; margin-top: 14px; }
.product-actions .button { min-height: 44px; padding: 9px 10px; font-size: .78rem; line-height: 1.2; text-align: center; }
.product-buy-button { border-color: var(--plum); background: white; color: var(--plum); }
.product-buy-button:hover { background: var(--plum-light); }
.product-cart-button { background: var(--plum); color: white; box-shadow: 0 9px 20px rgba(111,39,85,.18); }
.product-cart-button:hover { background: var(--plum-dark); }

/* Página completa do produto */
.product-page-view { min-height: 70vh; background: linear-gradient(180deg,#fffaf6 0,#fff 58%,#fff9f0 100%); }
.home-page-open .floating-contact, .shop-page-open .floating-contact, .product-page-open .floating-contact, .checkout-page-open .floating-contact { display: none; }
.product-page-shell { width: min(calc(100% - 40px), 1180px); margin-inline: auto; padding: 28px 0 86px; }
.product-page-back { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 28px; padding: 9px 0; border: 0; background: transparent; color: var(--plum); font-weight: 800; cursor: pointer; }
.product-page-back span { font-size: 1.2rem; transition: transform .2s ease; }
.product-page-back:hover span { transform: translateX(-4px); }
.product-page-hero-grid { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(340px,.92fr); align-items: start; gap: clamp(32px,5vw,64px); }
.product-page-gallery { min-width: 0; }
.product-page-visual { position: relative; min-height: 520px; aspect-ratio: 1 / 1; display: grid; place-items: center; overflow: hidden; border: 1px solid rgba(111,39,85,.1); border-radius: 30px; box-shadow: 0 22px 55px rgba(69,24,52,.13); font-size: 6rem; }
.product-page-visual .product-modal-cover-image { object-fit: contain; background: white; }
.product-page-visual .product-modal-video { object-fit: contain; }
.product-page-fallback-icon { filter: drop-shadow(0 12px 18px rgba(45,25,38,.15)); }
.product-page-gallery .product-gallery-thumbs { padding: 4px 2px 8px; }
.product-page-gallery .gallery-thumb { flex-basis: 98px; height: 78px; }
.product-page-purchase { position: sticky; top: 105px; padding: clamp(27px,3vw,36px); border: 1px solid rgba(111,39,85,.12); border-radius: 28px; background: rgba(255,255,255,.97); box-shadow: 0 20px 52px rgba(69,24,52,.1); }
.product-page-purchase h1 { margin: 8px 0 13px; color: var(--plum-dark); font-size: clamp(2.2rem,4vw,3.45rem); line-height: .98; }
.product-page-lead { margin: 20px 0 0; color: var(--muted); font-size: 1rem; line-height: 1.62; }
.product-page-selling-points { display: grid; gap: 9px; margin: 18px 0 0; padding: 0; list-style: none; }
.product-page-selling-points li { display: grid; grid-template-columns: 24px 1fr; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid rgba(18,122,112,.14); border-radius: 13px; background: linear-gradient(135deg,#f0faf7,#fff); color: var(--plum-dark); font-size: .88rem; }
.product-page-selling-points li span { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; background: var(--teal); color: white; font-size: .72rem; font-weight: 900; }
.product-page-offer { display: grid; gap: 14px; margin-top: 21px; padding: 18px; border: 2px solid rgba(111,39,85,.12); border-radius: 22px; background: linear-gradient(135deg,#fff8e9,#faedf5); }
.product-pricing-page { gap: 5px; }
.product-pricing-page .product-original-price { font-size: 1rem; }
.product-pricing-page .product-sale-line { gap: 10px; }
.product-pricing-page .product-sale-line small { font-size: .9rem; }
.product-pricing-page .product-sale-price { font-size: clamp(2.55rem,4.6vw,3.35rem); }
.product-page-buy-button { width: 100%; min-height: 58px; border-radius: 17px; background: linear-gradient(135deg,var(--plum),#96386f); color: white; font-size: 1.08rem; box-shadow: 0 15px 30px rgba(111,39,85,.25); }
.product-page-buy-button:hover { background: linear-gradient(135deg,var(--plum-dark),var(--plum)); box-shadow: 0 18px 34px rgba(111,39,85,.31); }
.product-page-assurances { display: grid; gap: 9px; margin: 20px 0 0; padding: 0; color: #62515d; font-size: .86rem; list-style: none; }
.product-page-assurances li { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: 8px; }
.product-page-assurances li span { width: 21px; height: 21px; display: grid; place-items: center; border-radius: 50%; background: #e0f2ed; color: var(--teal-dark); font-size: .72rem; font-weight: 900; }
.product-page-presentation-note { margin: 17px 0 0; padding: 13px 14px; border: 1px solid #efd9a5; border-radius: 13px; background: #fffaf0; color: #6f5a32; font-size: .78rem; line-height: 1.5; }
.product-page-presentation-note strong { color: var(--plum-dark); }
.product-page-details-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr); gap: 28px; margin-top: 52px; }
.product-page-description, .product-page-includes { padding: clamp(28px,4vw,46px); border: 1px solid var(--line); border-radius: 28px; background: white; box-shadow: 0 14px 42px rgba(69,24,52,.06); }
.product-page-description h2, .product-page-includes h2 { margin: 8px 0 18px; color: var(--plum-dark); font-size: clamp(1.8rem,3vw,2.65rem); }
.product-page-description p { margin: 0; color: var(--muted); font-size: 1.04rem; line-height: 1.85; }
.product-page-includes { background: linear-gradient(150deg,#effaf7,#fff); }
.product-page-includes ul { display: grid; gap: 13px; margin: 0; padding: 0; color: #584851; list-style: none; }
.product-page-includes li { display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: start; }
.product-page-includes li > span:first-child { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 50%; background: var(--teal); color: white; font-size: .72rem; font-weight: 900; }
.button-store-highlight { border: 0; background: linear-gradient(135deg,#ffd76e,#f5a66d); color: var(--plum-dark); box-shadow: 0 12px 26px rgba(195,114,60,.2); font-weight: 900; text-transform: uppercase; letter-spacing: .035em; }
.button-store-highlight:hover { background: linear-gradient(135deg,#ffe28e,#f7b17b); transform: translateY(-2px); box-shadow: 0 16px 30px rgba(195,114,60,.27); }
.product-page-store-button { width: 100%; margin-top: 21px; min-height: 50px; }
.product-recommendations { margin-top: clamp(58px,8vw,92px); padding: clamp(30px,5vw,52px); overflow: hidden; border: 1px solid rgba(111,39,85,.1); border-radius: 30px; background: linear-gradient(135deg,#f8edf5,#fff9e9); box-shadow: 0 18px 48px rgba(69,24,52,.07); }
.product-recommendations-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 30px; }
.product-recommendations-heading h2 { margin: 7px 0 5px; color: var(--plum-dark); font-size: clamp(2rem,4vw,3.15rem); }
.product-recommendations-heading p { margin: 0; color: var(--muted); }
.product-recommendations-heading .button { flex: 0 0 auto; }
.product-recommendations-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(225px, 1fr); gap: 18px; overflow-x: auto; padding: 3px 3px 15px; scroll-snap-type: x mandatory; scrollbar-color: var(--plum) transparent; }
.product-recommendation-card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; border: 1px solid rgba(111,39,85,.12); border-radius: 20px; background: white; box-shadow: 0 10px 28px rgba(69,24,52,.07); scroll-snap-align: start; }
.product-recommendation-cover { position: relative; aspect-ratio: 1.12 / 1; overflow: hidden; display: grid; place-items: center; padding: 0; border: 0; background: #fff7f2; cursor: pointer; font-size: 3rem; }
.product-recommendation-cover img { width: 100%; height: 100%; object-fit: cover; }
.product-recommendation-body { flex: 1; display: flex; flex-direction: column; align-items: flex-start; padding: 18px; }
.product-recommendation-body h3 { margin: 6px 0 13px; color: var(--plum-dark); font-size: 1.05rem; line-height: 1.2; }
.product-recommendation-body .product-pricing { margin-top: auto; }
.product-pricing-recommendation .product-original-price { font-size: .74rem; }
.product-pricing-recommendation .product-sale-price { font-size: 1.42rem; }
.product-recommendation-body .button { width: 100%; min-height: 42px; margin-top: 14px; padding: 9px; font-size: .78rem; }

/* Checkout em página completa */
.checkout-page-view { min-height: 75vh; background: linear-gradient(180deg,#fffafc 0,#fff 48%,#fff9ef 100%); }
.checkout-page-shell { padding-block: 32px 90px; }
.checkout-page-topbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 24px; }
.checkout-page-topbar .product-page-back { margin: 0; }
.checkout-page-heading { max-width: 760px; margin-bottom: 24px; }
.checkout-page-heading h1 { margin: 8px 0 10px; color: var(--plum-dark); font-size: clamp(2.5rem,5vw,4.5rem); line-height: 1; }
.checkout-page-heading p { margin: 0; color: var(--muted); font-size: 1.05rem; }
.checkout-page-view .checkout-trust-strip { margin: 0 0 28px; padding: 18px 22px; background: white; }
.checkout-page-form { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(360px,.9fr); align-items: start; gap: 28px; }
.checkout-page-fields { display: grid; gap: 22px; }
.checkout-panel, .checkout-page-sidebar { border: 1px solid rgba(111,39,85,.1); border-radius: 24px; background: white; box-shadow: 0 16px 42px rgba(69,24,52,.07); }
.checkout-panel { position: relative; padding: clamp(24px,4vw,38px); }
.checkout-panel h2 { margin: 0 0 22px 44px; color: var(--plum-dark); font-size: 1.55rem; }
.checkout-step { position: absolute; top: 29px; left: clamp(24px,4vw,38px); width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: var(--plum); color: white; font-weight: 900; }
.checkout-panel > label, .checkout-panel .checkout-fields label, .checkout-panel .credit-card-fields > label, .checkout-panel #installments-field { display: grid; gap: 7px; margin-top: 14px; color: var(--plum-dark); font-size: .84rem; font-weight: 750; }
.checkout-page-view input[readonly] { background: #f7f3f6; color: #6f6570; }
.checkout-panel fieldset { display: grid; gap: 10px; margin: 0; padding: 16px; border: 1px solid var(--line); border-radius: 16px; background: #fffafc; }
.checkout-panel fieldset legend { padding: 0 5px; color: var(--plum-dark); font-size: .82rem; font-weight: 800; }
.checkout-panel fieldset .radio-label { padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; background: white; transition: .2s ease; }
.checkout-panel fieldset .radio-label:has(input:checked) { border-color: rgba(123,45,95,.45); background: #f9eff7; box-shadow: 0 0 0 3px rgba(123,45,95,.08); }
.checkout-page-sidebar { position: sticky; top: 104px; padding: clamp(22px,3vw,30px); }
.checkout-page-sidebar .checkout-order-summary { margin: 0 0 22px; }
.checkout-page-sidebar .checkout-order-summary h2 { margin: 0 0 12px; color: var(--plum-dark); font-size: 1.2rem; }
.checkout-summary-item span { display: grid; gap: 2px; }
.checkout-summary-item span small { color: var(--teal-dark); font-size: .68rem; font-weight: 750; }
.checkout-addons { padding-top: 22px; border-top: 1px solid var(--line); }
.checkout-addons h2 { margin: 7px 0 7px; color: var(--plum-dark); font-size: 1.35rem; }
.checkout-addons > p { margin: 0 0 16px; color: var(--muted); font-size: .82rem; line-height: 1.5; }
.checkout-extras { display: grid; gap: 10px; }
.checkout-extra-card { position: relative; display: grid; grid-template-columns: 26px 58px 1fr; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--line); border-radius: 15px; background: #fff; cursor: pointer; transition: .2s ease; }
.checkout-extra-card:hover { border-color: rgba(111,39,85,.3); transform: translateY(-1px); }
.checkout-extra-card.selected, .checkout-extra-card:has(input:checked) { border-color: var(--teal); background: #f0faf7; box-shadow: 0 0 0 3px rgba(25,132,111,.08); }
.checkout-extra-card > input { position: absolute; opacity: 0; pointer-events: none; }
.checkout-extra-check { width: 24px; height: 24px; display: grid; place-items: center; border: 2px solid #cdbfc8; border-radius: 7px; color: transparent; font-size: .78rem; font-weight: 900; }
.checkout-extra-card:has(input:checked) .checkout-extra-check { border-color: var(--teal-dark); background: var(--teal-dark); color: white; }
.checkout-extra-card > img, .checkout-extra-icon { width: 58px; height: 48px; border-radius: 9px; object-fit: cover; background: #fff7ef; }
.checkout-extra-icon { display: grid; place-items: center; font-size: 1.5rem; }
.checkout-extra-copy { min-width: 0; display: grid; gap: 3px; }
.checkout-extra-copy strong { color: var(--plum-dark); font-size: .8rem; line-height: 1.22; }
.checkout-extra-copy small { color: var(--teal-dark); font-size: .74rem; font-weight: 800; }
.checkout-extras-empty { margin: 0; padding: 13px; border-radius: 12px; background: #f5faf8; color: var(--muted); font-size: .82rem; }
.checkout-page-sidebar .checkout-total { margin-top: 22px; padding: 19px 0; border-top: 2px solid rgba(111,39,85,.14); border-bottom: 1px solid var(--line); font-size: 1.15rem; }
.checkout-page-sidebar .checkout-total strong { font-size: 1.55rem; }
.checkout-page-sidebar .secure-payment-note { margin: 18px 0 0; }
.checkout-pay-button { width: 100%; min-height: 60px; margin-top: 18px; border-radius: 16px; background: linear-gradient(135deg,var(--plum),#96386f); box-shadow: 0 15px 30px rgba(111,39,85,.25); }
.checkout-page-sidebar .form-status { margin-top: 12px; }

@media (max-width: 980px) {
  .checkout-page-form { grid-template-columns: 1fr; }
  .checkout-page-sidebar { position: static; }
}

@media (max-width: 700px) {
  .product-recommendations { padding: 25px 18px; border-radius: 24px; }
  .product-recommendations-heading { align-items: stretch; flex-direction: column; gap: 18px; }
  .product-recommendations-heading .button { width: 100%; }
  .product-recommendations-track { grid-auto-columns: minmax(210px, 76vw); }
  .checkout-page-shell { padding-block: 20px 60px; }
  .checkout-page-topbar { align-items: stretch; flex-direction: column; }
  .checkout-page-topbar .button { width: 100%; }
  .checkout-page-heading h1 { font-size: 2.6rem; }
  .checkout-page-view .checkout-trust-strip { padding: 14px; }
  .checkout-panel, .checkout-page-sidebar { padding: 22px 16px; border-radius: 20px; }
  .checkout-panel h2 { margin-left: 39px; font-size: 1.35rem; }
  .checkout-step { top: 23px; left: 16px; }
  .checkout-extra-card { grid-template-columns: 25px 52px 1fr; }
  .checkout-extra-card > img, .checkout-extra-icon { width: 52px; height: 46px; }
  .checkout-pay-button { font-size: .93rem; }
}

.services-section { background: #fff5ec; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.service-card { min-height: 360px; display: flex; flex-direction: column; align-items: flex-start; padding: 34px; border-radius: var(--radius); }
.service-card small { margin-top: 22px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.service-card h3 { margin: 8px 0 14px; font-size: 2rem; }
.service-card p { flex: 1; }
.service-icon { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 20px; background: rgba(255,255,255,.75); font-size: 2rem; transform: rotate(-5deg); }
.service-coral { background: #ffdcd4; }
.service-teal { background: #cceee9; }
.service-yellow { background: #ffe9a6; }
.about-preview { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(45px, 8vw, 100px); align-items: center; }
.about-preview-image { position: relative; }
.about-preview-image img { width: 100%; max-height: 620px; object-fit: cover; object-position: center top; border-radius: 40% 40% 30px 30px; box-shadow: var(--shadow); }
.photo-note { position: absolute; right: -30px; bottom: 45px; padding: 14px 18px; border-radius: 16px; background: var(--yellow); color: var(--plum-dark); transform: rotate(3deg); box-shadow: 0 12px 24px rgba(69,24,52,.15); }
.about-preview-copy h2 { color: var(--plum-dark); }
.about-preview-copy p { color: var(--muted); font-size: 1.05rem; }
.about-preview-copy .button { margin-top: 15px; }
.testimonial-section { background: var(--plum-light); }
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.testimonial-grid blockquote { margin: 0; padding: 30px; border-radius: 22px; background: white; color: #584851; font-family: Georgia, serif; font-size: 1.07rem; box-shadow: 0 8px 28px rgba(69,24,52,.07); }
.testimonial-grid blockquote::before { content: "“"; display: block; height: 42px; color: var(--coral); font-size: 4rem; line-height: 1; }
.testimonial-grid footer { margin-top: 20px; color: var(--plum); font-family: Inter, sans-serif; font-size: .78rem; font-weight: 800; }
.demo-disclaimer { max-width: 720px; margin: 25px auto 0; color: var(--muted); font-size: .75rem; text-align: center; }
.newsletter { padding-block: 70px; background: var(--teal-dark); color: white; }
.newsletter-inner { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; gap: 60px; }
.newsletter-inner h2 { margin-bottom: 12px; }
.newsletter-inner p { margin-bottom: 0; opacity: .82; }
.newsletter-form { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.newsletter-form input { min-height: 52px; padding: 0 16px; border: 0; border-radius: 12px; }
.newsletter-form small { grid-column: 1 / -1; opacity: .72; }

.page-hero { padding: 90px 0 82px; text-align: center; }
.page-hero .container { display: grid; justify-items: center; }
.page-hero h1 { margin-bottom: 14px; color: var(--plum-dark); font-size: clamp(2.7rem, 6vw, 5rem); }
.page-hero p { max-width: 720px; margin-bottom: 0; color: var(--muted); font-size: 1.15rem; }
.page-hero-playful { background: radial-gradient(circle at 8% 20%, rgba(246,200,75,.45) 0 7%, transparent 7.3%), radial-gradient(circle at 90% 35%, rgba(8,125,120,.2) 0 9%, transparent 9.3%), #fff0e6; }
.page-hero-soft { background: linear-gradient(120deg, var(--plum-light), #fff8ef); }
.page-hero-contact { background: linear-gradient(135deg, #dff4f0, #fff0d0); }

/* Calendário lúdico com campanhas sazonais */
.celebration-section { padding-block: clamp(54px, 7vw, 88px); background: linear-gradient(180deg, #fffefd, #fff8f2); }
.celebration-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.72fr); align-items: end; gap: 36px; margin-bottom: 30px; }
.celebration-heading h2 { max-width: 760px; margin-bottom: 0; color: var(--plum-dark); font-size: clamp(2.1rem,4.6vw,4.2rem); }
.celebration-heading > p { max-width: 550px; margin: 0 0 7px; color: var(--muted); font-size: 1.02rem; }
.celebration-carousel { position: relative; height: clamp(500px,52vw,590px); overflow: hidden; border: 1px solid rgba(111,39,85,.12); border-radius: 36px; background: #f8efe9; box-shadow: 0 28px 70px rgba(69,24,52,.16); isolation: isolate; }
.celebration-track { position: absolute; inset: 0; }
.celebration-slide { position: absolute; inset: 0; overflow: hidden; opacity: 0; visibility: hidden; transform: scale(1.015); transition: opacity .7s ease, transform 1s ease, visibility 0s linear .7s; pointer-events: none; }
.celebration-slide.active { opacity: 1; visibility: visible; transform: scale(1); transition-delay: 0s; pointer-events: auto; }
.celebration-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.celebration-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,250,242,.99) 0%, rgba(255,250,242,.94) 31%, rgba(255,250,242,.74) 43%, rgba(255,250,242,.08) 68%, transparent 100%); }
.celebration-copy { position: absolute; z-index: 1; inset: 0 auto 0 0; width: min(54%,650px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: clamp(40px,5vw,70px); pointer-events: none; }
.celebration-kicker { margin-bottom: 13px; color: var(--celebration-accent); font-size: .72rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.celebration-countdown { display: inline-flex; align-items: center; min-height: 40px; margin-bottom: 18px; padding: 8px 15px; border: 1px solid color-mix(in srgb, var(--celebration-accent) 38%, white); border-radius: 999px; background: var(--celebration-soft); color: var(--plum-dark); box-shadow: 0 8px 18px rgba(69,24,52,.08); font-size: .84rem; font-weight: 850; }
.celebration-copy h3 { max-width: 560px; margin-bottom: 15px; color: var(--plum-dark); font-size: clamp(3rem,5.5vw,5.5rem); letter-spacing: -.06em; }
.celebration-copy p { max-width: 510px; margin-bottom: 13px; color: #59454f; font-size: clamp(.94rem,1.5vw,1.12rem); }
.celebration-date { margin-bottom: 24px; color: var(--celebration-accent); font-size: .85rem; font-weight: 850; }
.celebration-cta { display: inline-flex; align-items: center; gap: 12px; min-height: 50px; padding: 12px 21px; border-radius: 999px; background: var(--celebration-accent); color: white; box-shadow: 0 12px 24px color-mix(in srgb, var(--celebration-accent) 28%, transparent); font-size: .9rem; font-weight: 850; transition: transform .2s ease, box-shadow .2s ease; }
.celebration-slide:hover .celebration-cta, .celebration-slide:focus-within .celebration-cta { transform: translateY(-2px); box-shadow: 0 16px 30px color-mix(in srgb, var(--celebration-accent) 35%, transparent); }
.celebration-slide-link { position: absolute; z-index: 2; inset: 0; border: 0; background: transparent; cursor: pointer; }
.celebration-slide-link:focus-visible { outline: 4px solid var(--celebration-accent); outline-offset: -7px; border-radius: 36px; }
.celebration-arrow { position: absolute; z-index: 4; top: 50%; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(69,24,52,.13); border-radius: 50%; background: rgba(255,255,255,.94); color: var(--plum-dark); box-shadow: 0 10px 24px rgba(69,24,52,.14); cursor: pointer; font-size: 2rem; line-height: 1; transform: translateY(-50%); transition: transform .2s ease, background .2s ease; }
.celebration-arrow:hover { background: white; transform: translateY(-50%) scale(1.06); }
.celebration-arrow-prev { left: 18px; }
.celebration-arrow-next { right: 18px; }
.celebration-controls { position: absolute; z-index: 4; left: 50%; bottom: 20px; display: flex; align-items: center; gap: 10px; padding: 7px 9px; border: 1px solid rgba(69,24,52,.1); border-radius: 999px; background: rgba(255,255,255,.9); box-shadow: 0 8px 22px rgba(69,24,52,.12); backdrop-filter: blur(10px); transform: translateX(-50%); }
.celebration-dots { display: flex; align-items: center; gap: 6px; }
.celebration-dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 999px; background: #d8cad2; cursor: pointer; transition: width .25s ease, background .25s ease; }
.celebration-dots button.active { width: 28px; background: var(--plum); }
.celebration-pause { width: 30px; height: 30px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; background: var(--plum-light); color: var(--plum); cursor: pointer; font-size: .7rem; font-weight: 900; }
.celebration-results-banner { scroll-margin-top: 120px; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 22px; padding: 18px 20px; border: 1px solid #ead8e3; border-radius: 18px; background: linear-gradient(120deg,#fff4f8,#fff9eb); box-shadow: 0 10px 28px rgba(69,24,52,.07); }
.celebration-results-banner > div { display: flex; align-items: center; gap: 14px; }
.celebration-results-icon { width: 50px; height: 50px; display: grid; place-items: center; border-radius: 15px; background: white; box-shadow: 0 7px 18px rgba(69,24,52,.1); font-size: 1.55rem; }
.celebration-results-banner small, .celebration-results-banner strong, .celebration-results-banner div span { display: block; }
.celebration-results-banner small { color: var(--plum); font-size: .68rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.celebration-results-banner strong { color: var(--plum-dark); font-size: 1.08rem; }
.celebration-results-banner div span:last-child { color: var(--muted); font-size: .8rem; }

@media (max-width: 900px) {
  .celebration-heading { grid-template-columns: 1fr; gap: 14px; }
  .celebration-heading > p { max-width: 720px; }
  .celebration-carousel { height: 590px; }
  .celebration-copy { width: 60%; padding: 42px; }
  .celebration-copy h3 { font-size: clamp(2.7rem,7vw,4.4rem); }
}

@media (max-width: 640px) {
  .celebration-section { padding-block: 44px; }
  .celebration-heading { margin-bottom: 22px; }
  .celebration-heading h2 { font-size: 2.25rem; }
  .celebration-heading > p { font-size: .94rem; }
  .celebration-carousel { height: 640px; border-radius: 26px; }
  .celebration-image { height: 58%; object-position: 68% center; }
  .celebration-shade { background: linear-gradient(0deg, rgba(255,250,242,1) 0%, rgba(255,250,242,.99) 47%, rgba(255,250,242,.82) 60%, rgba(255,250,242,.08) 82%, transparent 100%); }
  .celebration-copy { inset: auto 0 0; width: 100%; min-height: 68%; justify-content: flex-end; padding: 30px 24px 76px; }
  .celebration-kicker { margin-bottom: 9px; }
  .celebration-countdown { min-height: 36px; margin-bottom: 12px; padding: 6px 12px; }
  .celebration-copy h3 { margin-bottom: 10px; font-size: 2.45rem; }
  .celebration-copy p { margin-bottom: 9px; font-size: .9rem; line-height: 1.48; }
  .celebration-date { margin-bottom: 15px; font-size: .78rem; }
  .celebration-cta { min-height: 44px; padding: 10px 17px; font-size: .82rem; }
  .celebration-arrow { top: 27%; width: 40px; height: 40px; font-size: 1.65rem; }
  .celebration-arrow-prev { left: 10px; }
  .celebration-arrow-next { right: 10px; }
  .celebration-controls { bottom: 14px; gap: 7px; max-width: calc(100% - 28px); }
  .celebration-dots { gap: 5px; }
  .celebration-dots button { width: 7px; height: 7px; }
  .celebration-dots button.active { width: 20px; }
  .celebration-results-banner { align-items: stretch; flex-direction: column; }
  .celebration-results-banner .button { width: 100%; }
}

.shop-layout { display: grid; grid-template-columns: 255px 1fr; gap: 46px; align-items: start; }
.filters { position: sticky; top: 116px; padding: 25px; border: 1px solid var(--line); border-radius: 20px; background: white; box-shadow: 0 10px 30px rgba(69,24,52,.06); }
.filters h2 { font-size: 1.35rem; color: var(--plum-dark); }
.filters > label, .filters legend { display: block; margin-bottom: 8px; font-size: .78rem; font-weight: 850; text-transform: uppercase; }
.filters input { width: 100%; min-height: 46px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; }
.filters fieldset { margin: 24px 0; padding: 0; border: 0; }
.category-filters { display: grid; gap: 6px; }
.category-filters button { padding: 9px 10px; border: 0; border-radius: 9px; background: transparent; text-align: left; cursor: pointer; }
.category-filters button:hover, .category-filters button.active { background: var(--plum-light); color: var(--plum); font-weight: 800; }
.results-toolbar { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-bottom: 25px; }
.results-toolbar p { margin: 0; color: var(--muted); }
.results-toolbar label { font-size: .82rem; font-weight: 700; }
.results-toolbar select { min-height: 40px; margin-left: 8px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.empty-state { grid-column: 1 / -1; padding: 70px 20px; text-align: center; border: 2px dashed var(--line); border-radius: var(--radius); }
.empty-state > span { font-size: 3.2rem; }
.empty-state h2, .empty-state h3 { color: var(--plum-dark); }

.inner-hero { padding: 72px 0; }
.therapy-hero { background: linear-gradient(120deg, #fff1e8, #fae5f1); }
.school-hero { background: linear-gradient(120deg, #dff5f0, #fff3c4); }
.inner-hero-grid { display: grid; grid-template-columns: 1.05fr .75fr; align-items: center; gap: clamp(40px, 8vw, 100px); }
.inner-hero-grid.reverse { grid-template-columns: .75fr 1.05fr; }
.inner-hero-grid h1 { color: var(--plum-dark); font-size: clamp(2.6rem, 5.2vw, 4.8rem); }
.inner-hero-grid p { max-width: 660px; color: var(--muted); font-size: 1.15rem; }
.inner-hero-grid img { width: 100%; max-height: 560px; object-fit: cover; object-position: center top; border-radius: 34% 34% 22px 22px; box-shadow: var(--shadow); }
.content-grid { display: grid; grid-template-columns: 1fr .85fr; gap: clamp(48px, 8vw, 100px); align-items: start; }
.prose h2 { color: var(--plum-dark); }
.prose > p { color: var(--muted); font-size: 1.05rem; }
.steps { display: grid; gap: 18px; margin: 32px 0; }
.steps > div { display: flex; gap: 16px; align-items: start; }
.steps strong { flex: 0 0 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; background: var(--plum-light); color: var(--plum); }
.steps span { display: grid; color: var(--muted); }
.steps b { color: var(--ink); }
.ethics-note { margin-top: 32px; padding: 22px; border-left: 5px solid var(--coral); border-radius: 0 16px 16px 0; background: #fff3ef; }
.ethics-note p { margin: 5px 0 0; font-size: .9rem; }
.contact-form { padding: clamp(24px, 4vw, 38px); border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.contact-form h2 { margin-bottom: 9px; color: var(--plum-dark); font-size: 2rem; }
.contact-form > p { color: var(--muted); font-size: .85rem; }
.form-kicker { color: var(--teal); font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.contact-form label, .account-box form > label, .checkout-card form > label { display: grid; gap: 7px; margin-top: 16px; font-size: .82rem; font-weight: 750; }
.contact-form input, .contact-form select, .contact-form textarea, .account-box input, .checkout-card input { width: 100%; padding: 12px 13px; border: 1px solid var(--line); border-radius: 10px; background: #fffdfb; }
.contact-form textarea { resize: vertical; }
.checkbox-label, .radio-label { display: flex !important; grid-template-columns: auto 1fr; align-items: start; gap: 9px !important; font-weight: 500 !important; }
.checkbox-label input, .radio-label input { width: auto !important; margin-top: 5px; }
.contact-form .button { margin-top: 22px; }
.form-status { margin-top: 15px; padding: 12px; border-radius: 10px; background: #e4f5ec; color: var(--success); font-size: .88rem; font-weight: 750; }
.faq-section { background: var(--cream); }
.faq-list { display: grid; gap: 12px; }
.faq-list article { border: 1px solid var(--line); border-radius: 16px; background: white; }
.faq-list button { width: 100%; display: flex; justify-content: space-between; padding: 20px; border: 0; background: transparent; text-align: left; font-weight: 800; cursor: pointer; }
.faq-list button span { color: var(--coral); font-size: 1.4rem; }
.faq-list article > div { padding: 0 20px 20px; color: var(--muted); }
.feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.feature-grid article { padding: 28px; border: 1px solid var(--line); border-radius: 22px; background: white; box-shadow: 0 10px 30px rgba(69,24,52,.06); }
.feature-grid article > span { font-size: 2.4rem; }
.feature-grid h3 { margin: 20px 0 10px; color: var(--plum-dark); }
.feature-grid p { margin: 0; color: var(--muted); font-size: .9rem; }
.school-contact { background: #effaf7; }
.rounded-photo { max-width: 350px; max-height: 390px; object-fit: cover; object-position: center top; margin-top: 34px; border-radius: 24px; box-shadow: var(--shadow); }

.about-full { display: grid; grid-template-columns: .75fr 1fr; align-items: center; gap: clamp(45px, 8vw, 100px); }
.about-main-photo { position: relative; }
.about-main-photo img { width: 100%; max-height: 690px; object-fit: cover; object-position: center top; border-radius: 40% 40% 28px 28px; box-shadow: var(--shadow); }
.about-main-photo span { position: absolute; right: -18px; bottom: 30px; padding: 13px 17px; border-radius: 12px; background: var(--yellow); color: var(--plum-dark); font-weight: 850; transform: rotate(-3deg); }
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 30px 0; }
.values > div { display: grid; padding: 16px; border-radius: 14px; background: var(--plum-light); }
.values strong { color: var(--plum); }
.values span { color: var(--muted); font-size: .76rem; }
.gallery-section { background: var(--cream); }
.photo-gallery { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 310px; gap: 18px; }
.photo-gallery figure { position: relative; overflow: hidden; margin: 0; border-radius: 22px; background: #eadfe6; }
.photo-gallery figure.gallery-tall { grid-row: span 2; }
.photo-gallery img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .4s; }
.photo-gallery figure:hover img { transform: scale(1.035); }
.photo-gallery figcaption { position: absolute; left: 14px; bottom: 14px; padding: 8px 12px; border-radius: 999px; background: rgba(255,255,255,.9); color: var(--plum-dark); font-size: .76rem; font-weight: 800; }

.contact-layout { display: grid; grid-template-columns: .75fr 1fr; gap: clamp(40px, 8vw, 95px); align-items: start; }
.contact-options { display: grid; gap: 12px; }
.contact-options > button { display: grid; grid-template-columns: 48px 1fr; column-gap: 14px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: white; text-align: left; cursor: pointer; }
.contact-options > button:hover { border-color: var(--coral); box-shadow: 0 10px 25px rgba(69,24,52,.08); }
.contact-options > button span { grid-row: span 2; font-size: 1.8rem; }
.contact-options > button strong, .contact-options > button small { display: block; }
.contact-options > button small { color: var(--muted); }
.availability-card { margin-top: 18px; padding: 26px; border-radius: 20px; background: var(--plum); color: white; }
.availability-card span, .availability-card strong, .availability-card small { display: block; }
.availability-card strong { margin: 5px 0; color: var(--yellow); font-size: 1.3rem; }
.availability-card small { opacity: .75; }

.account-box { min-height: 430px; padding: clamp(24px, 6vw, 55px); border: 1px solid var(--line); border-radius: var(--radius); background: white; box-shadow: var(--shadow); }
.firebase-status { margin-bottom: 18px; padding: 10px 13px; border-radius: 10px; background: #eef8f6; color: var(--teal-dark); font-size: .82rem; font-weight: 750; text-align: center; }
.firebase-status.error { background: #fff0ed; color: #8a3f3f; }
.purchase-gate-note { display: grid; gap: 4px; margin-bottom: 20px; padding: 14px 16px; border: 1px solid #f1cc72; border-radius: 12px; background: #fff8df; color: #6f4d0b; }
.purchase-gate-note strong { font-size: .95rem; }
.purchase-gate-note span { font-size: .84rem; line-height: 1.45; }
.google-button { border-color: var(--line); background: white; color: var(--ink); box-shadow: 0 7px 20px rgba(69,24,52,.08); }
.google-button span { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: linear-gradient(135deg, #4285f4 0 25%, #34a853 25% 50%, #fbbc05 50% 75%, #ea4335 75%); color: white; font-weight: 900; }
.account-divider { display: flex; align-items: center; gap: 12px; margin: 20px 0; color: var(--muted); font-size: .75rem; }
.account-divider::before, .account-divider::after { content: ""; height: 1px; flex: 1; background: var(--line); }
.password-hint { display: block; margin-top: 7px; color: var(--muted); font-size: .75rem; }
.tab-buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 26px; padding: 5px; border-radius: 13px; background: #f6f0f4; }
.tab-buttons button { padding: 12px; border: 0; border-radius: 10px; background: transparent; cursor: pointer; font-weight: 800; }
.tab-buttons button[aria-selected="true"] { background: white; color: var(--plum); box-shadow: 0 4px 14px rgba(69,24,52,.08); }
.account-box form .button { margin-top: 25px; }
#account-dashboard { display: grid; justify-items: center; padding-block: 45px; text-align: center; }
#account-dashboard[hidden] { display: none; }
.success-icon { width: 72px; height: 72px; display: grid; place-items: center; border-radius: 50%; background: #dff4e8; color: var(--success); font-size: 2rem; font-weight: 900; }
.dashboard-actions { display: flex; gap: 10px; margin-top: 20px; }
.profile-heading { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 18px; margin-bottom: 26px; text-align: left; }
.profile-heading .eyebrow { margin-bottom: 6px; }
.profile-heading h2 { margin: 0 0 6px; color: var(--plum-dark); }
.profile-heading p { margin: 0; color: var(--muted); }
.profile-avatar { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 50%; background: var(--plum-light); font-size: 1.8rem; }
.profile-form { width: 100%; text-align: left; }
.profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.profile-grid label { display: grid; gap: 7px; margin: 0; font-size: .82rem; font-weight: 750; }
.profile-grid input { width: 100%; padding: 12px 13px; border: 1px solid var(--line); border-radius: 10px; background: #fffdfb; }
.profile-grid input[readonly] { background: #f7f3f6; color: var(--muted); }
.profile-note { margin: 18px 0 0; color: var(--muted); font-size: .82rem; }
.profile-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.profile-form .form-status { margin-top: 14px; }
.downloads-list { display: grid; gap: 14px; }
.download-item { display: grid; grid-template-columns: 54px 1fr auto; align-items: center; gap: 15px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: white; }
.download-item > span { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 14px; background: var(--plum-light); font-size: 1.8rem; }
.download-item h3 { margin: 0 0 3px; }
.download-item p { margin: 0; color: var(--muted); font-size: .8rem; }
.legal-copy { max-width: 850px; }
.legal-copy h2 { margin-top: 34px; color: var(--plum-dark); font-size: 1.65rem; }
.legal-copy p { color: var(--muted); }
.legal-copy .button { margin-top: 22px; }

.site-footer { padding: 72px 0 26px; background: var(--plum-dark); color: white; }
.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr .9fr 1fr; gap: 50px; }
.footer-brand img { width: 94px; height: 94px; object-fit: contain; padding: 5px; border-radius: 50%; background: white; }
.footer-brand p { max-width: 260px; margin: 18px 0 10px; font-family: Georgia, serif; font-size: 1.25rem; }
.footer-brand small { opacity: .68; }
.footer-grid h2 { color: var(--yellow); font-size: 1rem; letter-spacing: .05em; text-transform: uppercase; }
.footer-grid > div > a { display: block; margin: 9px 0; opacity: .8; }
.footer-grid > div > a:hover { opacity: 1; color: var(--yellow); }
.footer-grid > div > p { opacity: .78; font-size: .9rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 55px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.13); opacity: .62; font-size: .78rem; }
.floating-contact { position: fixed; z-index: 65; right: 20px; bottom: 20px; display: flex; align-items: center; gap: 8px; padding: 13px 18px; border: 0; border-radius: 999px; background: var(--teal); color: white; box-shadow: 0 12px 30px rgba(7,93,90,.3); cursor: pointer; font-weight: 850; }
.floating-contact span { font-size: 1.2rem; }

.overlay { position: fixed; z-index: 90; inset: 0; background: rgba(46,34,48,.52); backdrop-filter: blur(3px); }
.cart-drawer { position: fixed; z-index: 100; inset: 0 0 0 auto; width: min(440px, 100%); display: flex; flex-direction: column; padding: 24px; background: white; box-shadow: -20px 0 45px rgba(45,24,40,.16); transform: translateX(105%); transition: transform .25s ease; }
.cart-drawer.open { transform: translateX(0); }
.drawer-header { display: flex; justify-content: space-between; align-items: start; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.drawer-header h2 { margin: 0; color: var(--plum-dark); }
.close-button { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; background: #f6f0f4; font-size: 1.8rem; }
.cart-items { flex: 1; overflow: auto; padding-block: 12px; }
.cart-line { display: grid; grid-template-columns: 50px 1fr auto; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.cart-line-icon { width: 50px; height: 58px; display: grid; place-items: center; border-radius: 10px; font-size: 1.7rem; }
.cart-line h3 { margin: 0 0 4px; font-size: .95rem; }
.cart-line-price { color: var(--plum); font-weight: 800; }
.qty-control { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.qty-control button, .remove-button { border: 0; background: #f4edf2; cursor: pointer; }
.qty-control button { width: 26px; height: 26px; border-radius: 7px; }
.remove-button { align-self: start; padding: 5px 8px; border-radius: 8px; color: #95474a; }
.cart-empty { flex: 1; display: grid; place-content: center; justify-items: center; text-align: center; }
.cart-empty > span { font-size: 3rem; }
.cart-empty p { color: var(--muted); }
.cart-summary { padding-top: 20px; border-top: 1px solid var(--line); }
.cart-summary > div { display: flex; justify-content: space-between; margin-bottom: 6px; font-size: 1.2rem; }
.cart-summary small { display: block; margin-bottom: 16px; color: var(--muted); }
.cart-summary .button + .button { margin-top: 8px; }
.modal { position: fixed; z-index: 110; inset: 0; overflow: auto; display: grid; place-items: center; padding: 24px; background: rgba(46,34,48,.62); backdrop-filter: blur(4px); }
.modal[hidden] { display: none; }
.modal-card { position: relative; width: min(660px, 100%); max-height: calc(100vh - 48px); overflow: auto; padding: clamp(24px, 5vw, 44px); border-radius: 26px; background: white; box-shadow: var(--shadow); }
.modal-close { position: absolute; top: 15px; right: 15px; }
.product-modal-visual { min-height: 220px; display: grid; place-items: center; margin: -44px -44px 30px; border-radius: 26px 26px 0 0; font-size: 5rem; }
.product-modal-card h2, .checkout-card h2 { color: var(--plum-dark); }
.product-modal-card ul { padding-left: 20px; color: var(--muted); }
.modal-price-row { display: grid; grid-template-columns: minmax(170px, .75fr) minmax(220px, 1.25fr); align-items: stretch; gap: 16px; margin-top: 30px; padding: 18px; border: 2px solid rgba(111,39,85,.14); border-radius: 20px; background: linear-gradient(135deg,#fff8ee,#faedf5); box-shadow: 0 16px 34px rgba(111,39,85,.09); }
.product-pricing-modal { align-content: center; }
.product-pricing-modal .product-original-price { font-size: .92rem; }
.product-pricing-modal .product-sale-line { gap: 9px; }
.product-pricing-modal .product-sale-line small { font-size: .86rem; }
.product-pricing-modal .product-sale-price { font-size: clamp(2rem,5vw,2.7rem); }
.modal-buy-button { width: 100%; min-height: 66px; border-radius: 16px; background: linear-gradient(135deg,var(--plum),#96386f); font-size: 1.08rem; box-shadow: 0 15px 30px rgba(111,39,85,.28); }
.modal-buy-button:hover { background: linear-gradient(135deg,var(--plum-dark),var(--plum)); box-shadow: 0 18px 34px rgba(111,39,85,.34); }
.checkout-card fieldset { margin: 20px 0; padding: 16px; border: 1px solid var(--line); border-radius: 12px; }
.checkout-card legend { padding: 0 5px; font-size: .82rem; font-weight: 800; }
.checkout-total { display: flex; justify-content: space-between; padding: 16px 0; border-top: 1px solid var(--line); font-size: 1.15rem; }
.checkout-card .button { margin-top: 22px; }
.cookie-banner { position: fixed; z-index: 120; left: 20px; right: 20px; bottom: 20px; max-width: 900px; display: flex; align-items: center; justify-content: space-between; gap: 25px; margin: auto; padding: 18px 20px; border: 1px solid var(--line); border-radius: 18px; background: white; box-shadow: 0 18px 55px rgba(45,24,40,.22); }
.cookie-banner p { margin: 3px 0 0; color: var(--muted); font-size: .82rem; }
.cookie-banner > div:last-child { display: flex; gap: 8px; flex-shrink: 0; }
.toast { position: fixed; z-index: 150; top: 112px; left: 50%; max-width: min(420px, calc(100% - 30px)); padding: 13px 18px; border-radius: 999px; background: var(--plum-dark); color: white; box-shadow: var(--shadow); transform: translateX(-50%); font-weight: 750; text-align: center; }

@media (max-width: 1080px) {
  .desktop-nav { display: none; }
  .header-user-greeting { display: none; }
  .menu-button { display: grid; place-items: center; }
  .mobile-nav { display: block; }
  .header-inner { min-height: 78px; }
  .brand { margin-right: auto; }
  .feature-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 860px) {
  .hero-grid, .inner-hero-grid, .inner-hero-grid.reverse, .content-grid, .about-preview, .about-full, .contact-layout, .newsletter-inner { grid-template-columns: 1fr; }
  .hero { min-height: auto; }
  .hero-copy { text-align: center; }
  .hero-copy .eyebrow { justify-content: center; }
  .hero-copy > p, .hero-copy h1 { margin-inline: auto; }
  .hero-actions, .hero-checks { justify-content: center; }
  .portrait-frame { margin-inline: auto; }
  .trust-grid { grid-template-columns: repeat(2, 1fr); padding-block: 18px; }
  .trust-grid > div:nth-child(2) { border-right: 0; }
  .product-grid, .service-grid, .testimonial-grid { grid-template-columns: repeat(2, 1fr); }
  .shop-layout { grid-template-columns: 1fr; }
  .filters { position: static; }
  .category-filters { grid-template-columns: repeat(2, 1fr); }
  .inner-hero-grid.reverse img { order: 2; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .photo-gallery { grid-template-columns: repeat(2, 1fr); }
  .newsletter-form { grid-template-columns: 1fr; }
  .newsletter-form small { grid-column: auto; }
  .product-page-hero-grid, .product-page-details-grid { grid-template-columns: 1fr; }
  .product-page-purchase { position: static; }
  .product-page-visual { min-height: 440px; aspect-ratio: auto; }
}

@media (max-width: 580px) {
  .container { width: min(calc(100% - 28px), var(--container)); }
  .announcement { font-size: .72rem; gap: 8px; }
  .announcement-separator { display: none; }
  .brand { min-width: 0; }
  .brand img { width: 50px; height: 50px; }
  .brand span { display: none; }
  .icon-button { width: 39px; height: 39px; }
  .account-button { min-height: 39px; padding: 7px 10px; font-size: .78rem; }
  .cart-label { display: none; }
  .header-actions { gap: 4px; }
  .search-form { grid-template-columns: 1fr 1fr; }
  .search-form input { grid-column: 1 / -1; }
  .hero-grid { padding-block: 48px 70px; }
  .hero h1 { font-size: 2.7rem; }
  .hero-actions .button { width: 100%; }
  .hero-checks { display: grid; }
  .portrait-frame { width: calc(100% - 22px); }
  .floating-card { min-width: 160px; padding: 10px 12px; }
  .floating-card-top { left: -12px; }
  .floating-card-bottom { right: -12px; }
  .trust-grid { grid-template-columns: 1fr 1fr; }
  .trust-grid > div { padding-inline: 8px; }
  .split-heading { display: block; }
  .split-heading .text-link { margin-top: 10px; }
  .product-grid, .service-grid, .testimonial-grid, .feature-grid, .values, .footer-grid { grid-template-columns: 1fr; }
  .product-cover { min-height: 210px; }
  .product-page-shell { width: calc(100% - 24px); padding: 20px 0 58px; }
  .product-page-back { margin-bottom: 16px; }
  .product-page-hero-grid { gap: 22px; }
  .product-page-visual { min-height: 310px; border-radius: 22px; }
  .product-page-purchase, .product-page-description, .product-page-includes { padding: 23px; border-radius: 22px; }
  .product-page-purchase h1 { font-size: 2.35rem; }
  .product-page-offer { padding: 18px; }
  .product-pricing-page .product-sale-price { font-size: 2.75rem; }
  .product-page-details-grid { gap: 18px; margin-top: 28px; }
  .product-page-gallery .gallery-thumb { flex-basis: 76px; height: 62px; }
  .photo-note { right: -8px; }
  .results-toolbar { align-items: start; flex-direction: column; }
  .category-filters { grid-template-columns: 1fr 1fr; }
  .photo-gallery { grid-template-columns: 1fr; grid-auto-rows: 380px; }
  .photo-gallery figure.gallery-tall { grid-row: span 1; }
  .footer-bottom { flex-direction: column; }
  .profile-grid { grid-template-columns: 1fr; }
  .profile-heading { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .profile-actions .button { width: 100%; }
  .floating-contact { right: 12px; bottom: 12px; padding: 12px 14px; }
  .cookie-banner { align-items: stretch; flex-direction: column; left: 10px; right: 10px; bottom: 10px; }
  .cookie-banner > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }
  .download-item { grid-template-columns: 48px 1fr; }
  .download-item .button { grid-column: 1 / -1; }
  .product-modal-gallery { margin: -24px -24px 25px; }
  .product-modal-gallery .product-modal-visual { min-height: 220px; }
  .gallery-thumb { flex-basis: 72px; height: 60px; }
  .gallery-nav { width: 36px; height: 36px; font-size: 1.5rem; }
  .modal-price-row { align-items: stretch; flex-direction: column; }
  .modal-price-row { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Divulgação dos materiais com fotos da profissional */
.shop-showcase { padding-block: clamp(56px, 8vw, 92px); }
.shop-showcase-top { background: #fffdf9; border-bottom: 1px solid var(--line); }
.shop-showcase-bottom { background: linear-gradient(120deg, #f9edf4, #fff8ea); border-top: 1px solid var(--line); }
.shop-showcase-grid { display: grid; grid-template-columns: .86fr 1.14fr; align-items: center; gap: clamp(34px, 7vw, 82px); }
.shop-showcase-grid-reverse { grid-template-columns: 1.14fr .86fr; }
.shop-showcase-photo { position: relative; max-width: 460px; }
.shop-showcase-top .shop-showcase-photo { margin-left: auto; }
.shop-showcase-bottom .shop-showcase-photo { margin-right: auto; }
.shop-showcase-photo::before { content: ""; position: absolute; inset: 18px -18px -18px 18px; z-index: 0; border-radius: 30px; background: var(--yellow); opacity: .55; transform: rotate(2deg); }
.shop-showcase-bottom .shop-showcase-photo::before { background: #bfe7e2; transform: rotate(-2deg); }
.shop-showcase-photo img { position: relative; z-index: 1; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: center top; border-radius: 30px; box-shadow: var(--shadow); }
.shop-showcase-tag { position: absolute; z-index: 2; right: -18px; bottom: 24px; max-width: 210px; padding: 12px 16px; border-radius: 14px; background: white; color: var(--plum-dark); box-shadow: 0 12px 28px rgba(69,24,52,.16); font-size: .76rem; font-weight: 850; text-align: center; transform: rotate(2deg); }
.shop-showcase-bottom .shop-showcase-tag { right: auto; left: -18px; transform: rotate(-2deg); }
.shop-showcase-copy h2 { max-width: 760px; margin-bottom: 18px; color: var(--plum-dark); font-size: clamp(2rem, 4vw, 3.4rem); }
.shop-showcase-copy p { max-width: 690px; margin-bottom: 28px; color: var(--muted); font-size: 1.05rem; }

@media (max-width: 900px) {
  .shop-showcase-grid,
  .shop-showcase-grid-reverse { grid-template-columns: 1fr; }
  .shop-showcase-photo,
  .shop-showcase-top .shop-showcase-photo,
  .shop-showcase-bottom .shop-showcase-photo { width: min(100%, 520px); margin-inline: auto; }
  .shop-showcase-grid-reverse .shop-showcase-copy { order: 2; }
  .shop-showcase-grid-reverse .shop-showcase-photo { order: 1; }
}

@media (max-width: 560px) {
  .shop-showcase { padding-block: 48px; }
  .shop-showcase-tag { right: 10px; bottom: 14px; }
  .shop-showcase-bottom .shop-showcase-tag { left: 10px; }
  .shop-showcase-photo::before { inset: 12px -8px -12px 8px; }
}

/* Checkout real — Asaas */
.checkout-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
#checkout-form select{width:100%;min-height:46px;border:1px solid var(--line,#ded8df);border-radius:12px;background:#fff;padding:0 12px;font:inherit;color:inherit}
.secure-payment-note{font-size:.9rem;line-height:1.5;padding:12px 14px;border-radius:12px;background:rgba(21,128,61,.07);border:1px solid rgba(21,128,61,.16)}
@media (max-width:640px){.checkout-fields{grid-template-columns:1fr}}


/* V7.4 — jornada de pagamento e confirmação */
.payment-journey-wrap{min-height:calc(100vh - 190px);display:grid;place-items:center;padding-block:clamp(48px,8vw,92px)}
.payment-journey-card{width:min(900px,100%);padding:clamp(34px,7vw,72px);border:1px dashed #ead8e2;border-radius:30px;background:linear-gradient(145deg,#fff,#fffafc);box-shadow:0 22px 60px rgba(73,25,55,.07);text-align:center}
.payment-status-icon{width:72px;height:72px;display:grid;place-items:center;margin:0 auto 10px;border-radius:50%;background:#f7eaf1;color:var(--plum);font-size:2rem;font-weight:900}
.payment-journey-card h1{max-width:760px;margin:10px auto 20px;color:var(--plum-dark);font-size:clamp(2rem,5vw,3.4rem)}
.payment-journey-card>p{max-width:720px;margin-inline:auto;line-height:1.65}
.payment-status-detail{margin-top:14px!important;color:var(--muted);font-size:.92rem}
.payment-status-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:28px}
.payment-status-spinner{width:28px;height:28px;margin:0 auto 10px;border:3px solid #ead8e2;border-top-color:var(--plum);border-radius:50%;animation:paymentSpin .9s linear infinite}
.payment-status-spinner[hidden]{display:none}
@keyframes paymentSpin{to{transform:rotate(360deg)}}
@media(max-width:580px){.payment-journey-card{padding:32px 20px}.payment-status-actions{display:grid}.payment-status-actions .button{width:100%}}

/* V7.5 — Pix dentro do site e jornada de pagamento */
.pix-payment-panel{max-width:600px;margin:26px auto 6px;padding:22px;border:1px solid rgba(29,122,105,.18);border-radius:20px;background:#f4fbf8;text-align:center}
.pix-payment-panel[hidden]{display:none}
.pix-payment-panel h2{margin:0 0 7px;color:var(--plum-dark);font-size:1.35rem}
.pix-payment-panel p{margin:0 auto 16px;color:var(--muted);font-size:.92rem}
.pix-payment-panel img{display:block;width:min(230px,72vw);height:auto;aspect-ratio:1;margin:0 auto 16px;padding:10px;border-radius:16px;background:#fff;border:1px solid var(--line)}
.pix-payment-panel label{display:block;margin-bottom:7px;text-align:left;font-size:.78rem;font-weight:800;color:var(--plum-dark)}
.pix-payment-panel textarea{width:100%;resize:none;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff;font:500 .78rem/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
.pix-payment-panel .button{margin-top:12px}


/* V7.6 — produtos digitais unitários + cartão dentro do site */
.product-owned{outline:2px solid rgba(74,139,111,.18)}
.owned-button{background:#e5f4eb!important;color:#2c7b5d!important;cursor:default!important}
.single-license-note{display:block;margin-top:6px;color:var(--muted);font-size:.75rem}
.saved-profile-note{margin:10px 0 0;color:var(--muted);font-size:.78rem}
.credit-card-fields{margin:18px 0;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fffafc}
.credit-card-fields h3{margin:0 0 6px;color:var(--plum-dark)}
.credit-card-fields>label{display:grid;gap:7px;margin-top:14px;font-size:.82rem;font-weight:750}
.card-mini-fields{grid-template-columns:1fr 1fr 1fr}
.card-security-note{margin:12px 0 0;padding:11px 13px;border-radius:10px;background:#eef8f3;color:#2f735c;font-size:.78rem;font-weight:650}
.checkout-card input[readonly]{background:#f7f3f6;color:#6f6570}
@media(max-width:640px){.card-mini-fields{grid-template-columns:1fr 1fr}.card-mini-fields label:last-child{grid-column:1/-1}}

/* V7.10 - Loja mobile: filtros ocultos e produtos em 2 colunas */
@media (max-width: 580px) {
  /* No celular, a área lateral de busca/categorias fica oculta para priorizar os produtos. */
  .shop-layout .filters { display: none !important; }
  .shop-layout { display: block; }

  /* Grade compacta: dois produtos lado a lado, como uma vitrine mobile. */
  #shop-products.product-grid,
  #featured-products.product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  #shop-products .product-card,
  #featured-products .product-card {
    min-width: 0;
    border-radius: 14px;
  }

  #shop-products .product-cover,
  #featured-products .product-cover {
    min-height: 0;
    aspect-ratio: 1 / 1;
    padding: 10px;
  }

  #shop-products .product-badge,
  #featured-products .product-badge {
    top: 7px;
    left: 7px;
    max-width: calc(100% - 14px);
    padding: 4px 6px;
    font-size: .52rem;
    line-height: 1.15;
    white-space: normal;
  }

  #shop-products .product-body,
  #featured-products .product-body {
    padding: 10px;
  }

  #shop-products .product-category,
  #featured-products .product-category {
    font-size: .56rem;
    letter-spacing: .05em;
  }

  #shop-products .product-body h3,
  #featured-products .product-body h3 {
    margin: 4px 0 6px;
    min-height: 2.45em;
    font-size: .88rem;
    line-height: 1.22;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* A descrição completa continua disponível ao tocar no produto. */
  #shop-products .product-body > p,
  #featured-products .product-body > p { display: none; }

  #shop-products .product-meta,
  #featured-products .product-meta {
    gap: 6px;
    margin-top: 4px;
  }

  #shop-products .product-original-price,
  #featured-products .product-original-price { font-size: .65rem; }

  #shop-products .product-sale-line,
  #featured-products .product-sale-line { display: grid; gap: 0; }

  #shop-products .product-sale-line small,
  #featured-products .product-sale-line small { font-size: .62rem; }

  #shop-products .product-sale-price,
  #featured-products .product-sale-price { font-size: 1.08rem; }

  #shop-products .product-actions,
  #featured-products .product-actions { grid-template-columns: 1fr; gap: 6px; margin-top: 8px; }

  #shop-products .product-actions .button,
  #featured-products .product-actions .button { min-height: 36px; padding: 7px 5px; font-size: .66rem; }

  .shop-layout .results-toolbar {
    margin-bottom: 14px;
    gap: 8px;
  }

  .shop-layout .results-toolbar p { font-size: .78rem; }
  .shop-layout .results-toolbar label { font-size: .68rem; }
  .shop-layout .results-toolbar select {
    min-height: 34px;
    max-width: 125px;
    margin-left: 3px;
    padding: 0 5px;
    font-size: .72rem;
  }
}


/* V7.17 — transparência legal, checkout e privacidade */
.legal-highlight{color:var(--plum-dark);font-weight:850}
.optional-label{color:var(--muted);font-size:.72rem;font-weight:650}
.legal-notice{margin:16px 0 4px;padding:14px 16px;border:1px solid #f0d7a5;border-radius:14px;background:#fff9ea;color:#654b1c}
.legal-notice strong{display:block;margin-bottom:4px;color:#5b3f0d}
.legal-notice p{margin:0;font-size:.82rem;line-height:1.5}
.guardian-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.guardian-fields[hidden]{display:none}
.button-refund{background:#fff0ed;color:#8f3d45;border:1px solid #e9bfc2}
.button-refund:hover{background:#ffe5e0}
.legal-copy{line-height:1.72}
.legal-copy a:not(.button){color:var(--plum);text-decoration:underline;text-underline-offset:3px}
.legal-updated{padding:10px 12px;border-left:3px solid var(--teal);background:#f5fbfa;font-size:.82rem}
.legal-action-box{margin:26px 0;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fffafc}
.legal-action-box strong{display:block;color:var(--plum-dark);font-size:1.05rem}
.legal-action-box p{margin:7px 0 0}
.legal-nav-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.supplier-identification{margin-top:42px;padding:26px 0;border-top:1px solid rgba(255,255,255,.13);border-bottom:1px solid rgba(255,255,255,.13)}
.supplier-identification h2{margin:0 0 18px;color:var(--yellow);font-size:1rem;text-transform:uppercase;letter-spacing:.05em}
.supplier-grid{display:grid;grid-template-columns:1.1fr 1.3fr 1fr;gap:28px}
.supplier-grid>div{display:grid;gap:6px}
.supplier-grid span,.supplier-grid a{font-size:.84rem;opacity:.82}
.supplier-grid a:hover{color:var(--yellow);opacity:1}
.checkout-order-summary{margin:18px 0 22px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fffafc}
.checkout-order-summary h3{margin:0 0 12px;color:var(--plum-dark);font-size:1rem}
.checkout-summary-item,.checkout-summary-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:9px 0;border-top:1px solid #eee4ea;font-size:.82rem}
.checkout-summary-item:first-of-type{border-top:0}
.checkout-summary-row span{color:var(--muted)}
.checkout-summary-row strong,.checkout-summary-item strong{text-align:right}
.optional-save{margin-top:12px!important;padding:12px 14px;border-radius:12px;background:#f6faf9}
.legal-acceptance a{color:var(--plum);text-decoration:underline;font-weight:800}
.refund-request-form{max-width:680px;margin-top:16px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}
.cookie-banner>div:first-child strong{display:block;color:var(--plum-dark);margin-bottom:4px}
.cookie-banner>div:first-child>a{display:inline-block;margin-top:6px;color:var(--plum);font-size:.78rem;font-weight:750;text-decoration:underline}
@media(max-width:720px){.supplier-grid{grid-template-columns:1fr}.guardian-fields{grid-template-columns:1fr}.legal-nav-actions{display:grid}.legal-nav-actions .button{width:100%}}


.checkout-trust-strip{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;margin:18px 0 4px;border:1px solid rgba(123,45,95,.14);border-radius:16px;background:linear-gradient(135deg,#fffdfd,#f8f4f8)}
.checkout-trust-copy{display:grid;gap:4px}
.checkout-trust-copy strong{color:var(--plum-dark);font-size:.96rem}
.checkout-trust-copy span{font-size:.82rem;color:var(--muted);line-height:1.45}
.checkout-trust-logos{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.checkout-trust-logos img{display:block;max-height:42px;max-width:170px;width:auto;height:auto;object-fit:contain;background:#fff;border-radius:10px;padding:4px 6px}
@media(max-width:720px){.checkout-trust-strip{flex-direction:column;align-items:flex-start}.checkout-trust-logos{justify-content:flex-start}}


.checkout-legal-box{display:grid;gap:10px;margin-top:18px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fcf8fb}
.checkout-checkbox-row{margin-top:0 !important;padding:0;font-size:.92rem;line-height:1.55;color:var(--ink)}
.checkout-checkbox-row span{display:block}
.checkout-checkbox-row input{margin-top:4px;flex:0 0 auto}
.legal-acceptance{padding-top:10px;border-top:1px solid rgba(123,45,95,.14)}
.legal-acceptance a{display:inline;color:var(--plum);text-decoration:none;font-weight:800;border-bottom:1px solid rgba(123,45,95,.28)}
.legal-acceptance a:hover{border-color:var(--plum)}
.downloads-loading-card{display:grid;gap:6px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fffafc;color:var(--muted)}
.downloads-loading-card strong{color:var(--plum-dark)}


/* V7.20 - refinamento visual do checkout, com foco em mobile */
.checkout-card{background:linear-gradient(180deg,#fff 0%,#fff9fc 100%);border:1px solid rgba(123,45,95,.08)}
.checkout-card .eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#f8edf5;color:var(--plum-dark);font-weight:800;margin-bottom:10px}
.checkout-card h2{margin-bottom:6px;font-size:clamp(1.55rem,4vw,2rem);line-height:1.1}
.checkout-card form > label{font-size:.84rem}
.checkout-card fieldset{display:grid;gap:10px;background:#fff;box-shadow:inset 0 0 0 1px rgba(123,45,95,.03)}
.checkout-card fieldset .radio-label{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:#fffafc;transition:.2s ease}
.checkout-card fieldset .radio-label:hover{border-color:rgba(123,45,95,.25);background:#fff}
.checkout-card fieldset .radio-label:has(input:checked){border-color:rgba(123,45,95,.45);background:#f9eff7;box-shadow:0 0 0 3px rgba(123,45,95,.08)}
.checkout-card input:focus,#checkout-form select:focus{outline:none;border-color:rgba(123,45,95,.45);box-shadow:0 0 0 4px rgba(123,45,95,.08)}
.checkout-order-summary{box-shadow:0 10px 24px rgba(81,31,66,.04)}
.checkout-summary-item strong,.checkout-summary-row strong{color:var(--plum-dark)}
.checkout-total strong{color:var(--plum-dark);font-size:1.3rem}
.checkout-trust-strip{box-shadow:0 12px 26px rgba(81,31,66,.04)}
.checkout-trust-logos img{box-shadow:0 10px 20px rgba(81,31,66,.05)}
.checkout-legal-box{box-shadow:0 10px 24px rgba(81,31,66,.03)}

@media (max-width:640px){
  .modal-card.checkout-card{width:min(100%,100vw);max-height:100dvh;border-radius:24px 24px 0 0;padding:22px 18px 26px}
  .checkout-card h2{max-width:85%;font-size:1.6rem}
  .checkout-trust-strip{padding:12px;gap:12px;margin:14px 0 2px}
  .checkout-trust-copy strong{font-size:.92rem}
  .checkout-trust-copy span{font-size:.8rem}
  .checkout-trust-logos{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .checkout-trust-logos img{width:100%;max-width:none;max-height:46px}
  .checkout-card fieldset{padding:12px}
  .checkout-card fieldset .radio-label{font-size:.94rem;padding:11px 12px}
  .checkout-order-summary{margin:16px 0 18px;padding:14px}
  .checkout-summary-item,.checkout-summary-row{gap:10px;padding:10px 0;font-size:.87rem}
  .checkout-total{padding:14px 0 2px;font-size:1.04rem}
  .checkout-total strong{font-size:1.22rem}
  .checkout-card .button{width:100%;margin-top:18px}
  .checkout-legal-box{margin-top:16px;padding:12px 14px;gap:12px}
  .checkout-checkbox-row{font-size:.88rem;line-height:1.5}
}


/* V7.31 — identidade visual moderna, Home essencial e experiência unificada */
:root {
  --plum: #7a315f;
  --plum-dark: #32182e;
  --plum-light: #f8edf4;
  --coral: #ee7c68;
  --teal: #176f6b;
  --teal-dark: #104f4d;
  --yellow: #f4c95f;
  --gold: #b98522;
  --cream: #faf6f0;
  --paper: #fdfbf8;
  --ink: #2d252d;
  --muted: #716872;
  --line: #e9e1e5;
  --success: #237a57;
  --surface: rgba(255,255,255,.92);
  --shadow: 0 24px 70px rgba(55,26,48,.11);
  --shadow-soft: 0 14px 40px rgba(55,26,48,.075);
  --radius: 30px;
  --radius-sm: 16px;
  --container: 1240px;
}

html { background: var(--paper); }
body {
  color: var(--ink);
  background:
    radial-gradient(circle at 8% 8%, rgba(238,124,104,.075), transparent 25rem),
    radial-gradient(circle at 92% 34%, rgba(23,111,107,.065), transparent 30rem),
    var(--paper);
  font-family: "Segoe UI Variable Text", "Segoe UI", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 16px;
  line-height: 1.68;
  text-rendering: optimizeLegibility;
}
::selection { background: rgba(122,49,95,.18); color: var(--plum-dark); }
h1, h2, h3 {
  color: var(--plum-dark);
  font-family: "Segoe UI Variable Display", "Segoe UI", Inter, ui-sans-serif, system-ui, sans-serif;
  font-weight: 760;
  letter-spacing: -.045em;
}
h1 { font-size: clamp(2.65rem, 5.7vw, 5.25rem); }
h2 { font-size: clamp(2rem, 3.8vw, 3.35rem); }
p { text-wrap: pretty; }
.container { width: min(calc(100% - 48px), var(--container)); }
.section { padding-block: clamp(76px, 9vw, 118px); }

.announcement {
  min-height: 34px;
  padding-block: 6px;
  background: linear-gradient(90deg, #281126, var(--plum-dark) 50%, #422039);
  font-size: .76rem;
  letter-spacing: .045em;
}
.site-header {
  background: rgba(253,251,248,.88);
  border-color: rgba(71,40,62,.09);
  box-shadow: 0 8px 30px rgba(49,24,44,.035);
  backdrop-filter: blur(22px) saturate(145%);
}
.header-inner { min-height: 78px; gap: 22px; }
.brand { min-width: 215px; gap: 10px; }
.brand img { width: 54px; height: 54px; }
.brand strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.18rem; }
.brand small { font-size: .62rem; letter-spacing: .075em; }
.desktop-nav { gap: clamp(11px, 1.65vw, 24px); }
.desktop-nav a {
  padding: 8px 2px;
  color: #473a44;
  font-size: .86rem;
  font-weight: 720;
}
.desktop-nav a::after { bottom: 2px; height: 2px; background: linear-gradient(90deg, var(--coral), var(--plum)); }
.icon-button,
.account-button,
.cart-button {
  border: 1px solid rgba(78,40,67,.09);
  box-shadow: 0 8px 22px rgba(55,26,48,.055);
}
.icon-button { width: 40px; height: 40px; background: rgba(255,255,255,.88); font-size: 1.15rem; }
.icon-button:hover { background: var(--plum-light); }
.account-button { min-height: 40px; background: rgba(255,255,255,.86); }
.account-button:hover,
.account-button[aria-expanded="true"] { background: var(--plum-light); }
.cart-button { min-height: 42px; background: linear-gradient(135deg, var(--plum), #933d70); }
.cart-button:hover { background: linear-gradient(135deg, var(--plum-dark), var(--plum)); }
.account-dropdown,
.search-panel,
.mobile-nav { border-color: rgba(78,40,67,.1); background: rgba(255,255,255,.97); backdrop-filter: blur(20px); }
.account-dropdown { border-radius: 18px; box-shadow: var(--shadow-soft); }

.button {
  min-height: 48px;
  padding: 11px 21px;
  border-radius: 999px;
  font-size: .9rem;
  font-weight: 780;
  letter-spacing: -.01em;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;
}
.button-primary { background: linear-gradient(135deg, var(--plum), #963f72); box-shadow: 0 13px 28px rgba(122,49,95,.21); }
.button-primary:hover { background: linear-gradient(135deg, var(--plum-dark), var(--plum)); box-shadow: 0 16px 34px rgba(64,26,52,.25); }
.button-teal { background: linear-gradient(135deg, var(--teal), #238a83); box-shadow: 0 13px 28px rgba(23,111,107,.17); }
.button-outline { border-color: rgba(122,49,95,.42); background: rgba(255,255,255,.68); }
.button-outline:hover { border-color: var(--plum); background: var(--plum-light); }
.button-ghost { background: #f6f1f4; }
.button-yellow { background: linear-gradient(135deg, var(--yellow), #f7d982); }
.button-large { min-height: 58px; padding-inline: 27px; }
.text-link { border-bottom-width: 1px; }
.button:focus-visible,
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
h1[tabindex="-1"]:focus { outline: none; }

.page-view:not([data-page="home"]) { min-height: 62vh; }
.page-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(74px, 9vw, 122px) 0;
  border-bottom: 1px solid rgba(93,49,77,.08);
  background:
    radial-gradient(circle at 86% 22%, rgba(244,201,95,.32), transparent 16rem),
    radial-gradient(circle at 8% 88%, rgba(23,111,107,.13), transparent 20rem),
    linear-gradient(135deg, #fffaf5, #fbf0f6 55%, #f3f8f6);
}
.page-hero::after {
  content: "";
  position: absolute;
  top: 28px;
  right: max(24px, calc((100% - var(--container))/2));
  width: 90px;
  height: 90px;
  border: 1px solid rgba(122,49,95,.13);
  border-radius: 50%;
  box-shadow: 30px 38px 0 -18px rgba(238,124,104,.13);
}
.page-hero .container { position: relative; z-index: 1; }
.page-hero h1 { max-width: 900px; margin-bottom: 18px; font-size: clamp(2.7rem, 5.2vw, 4.85rem); }
.page-hero p { max-width: 680px; margin-bottom: 0; color: var(--muted); font-size: clamp(1rem, 1.6vw, 1.16rem); }
.eyebrow { margin-bottom: 18px; color: var(--plum); font-size: .72rem; letter-spacing: .16em; }
.eyebrow::before { width: 24px; height: 2px; background: linear-gradient(90deg, var(--coral), var(--yellow)); }
.section-heading { margin-bottom: 46px; }
.section-heading h2 { margin-bottom: 15px; }

/* Home: apenas a porta de entrada para os três caminhos */
.page-view[data-page="home"] { background: #fdfbf8; }
.home-portal {
  position: relative;
  isolation: isolate;
  min-height: calc(100svh - 112px);
  display: grid;
  align-items: center;
  overflow: hidden;
  padding: clamp(58px, 7vw, 96px) 0 clamp(48px, 6vw, 78px);
  background:
    linear-gradient(120deg, rgba(255,252,247,.98), rgba(250,239,246,.88) 54%, rgba(237,248,246,.94));
}
.home-portal::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .4;
  background-image: radial-gradient(rgba(122,49,95,.15) .7px, transparent .7px);
  background-size: 22px 22px;
  mask-image: linear-gradient(to bottom, black, transparent 75%);
  -webkit-mask-image: linear-gradient(to bottom, black, transparent 75%);
}
.home-portal-orb { position: absolute; z-index: -1; border-radius: 50%; filter: blur(2px); }
.home-portal-orb-one { width: 390px; height: 390px; top: -170px; right: -100px; background: rgba(244,201,95,.34); }
.home-portal-orb-two { width: 310px; height: 310px; left: -170px; bottom: -110px; background: rgba(23,111,107,.14); }
.home-portal-inner { position: relative; z-index: 1; }
.home-portal-intro { max-width: 900px; margin: 0 auto clamp(38px, 5vw, 58px); text-align: center; }
.home-portal-kicker {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 20px;
  padding: 8px 13px;
  border: 1px solid rgba(122,49,95,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.65);
  color: var(--plum);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  backdrop-filter: blur(12px);
}
.home-portal-kicker::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 5px rgba(238,124,104,.12); }
.home-portal h1 { max-width: 880px; margin: 0 auto 20px; font-size: clamp(2.75rem, 6vw, 5.35rem); line-height: .98; text-wrap: balance; }
.home-portal-intro > p { max-width: 750px; margin: 0 auto; color: #665b65; font-size: clamp(1rem, 1.7vw, 1.18rem); }
.home-portal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.home-path-card {
  position: relative;
  min-height: 330px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: clamp(25px, 2.8vw, 34px);
  border: 1px solid rgba(65,33,55,.1);
  border-radius: 30px;
  background: rgba(255,255,255,.79);
  box-shadow: 0 17px 48px rgba(55,26,48,.075);
  backdrop-filter: blur(14px);
  transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.home-path-card::after {
  content: "";
  position: absolute;
  width: 145px;
  height: 145px;
  right: -60px;
  bottom: -72px;
  border-radius: 50%;
  background: var(--path-accent, rgba(122,49,95,.1));
  transition: transform .3s ease;
}
.home-path-card:hover { transform: translateY(-8px); border-color: rgba(122,49,95,.2); box-shadow: 0 26px 65px rgba(55,26,48,.13); }
.home-path-card:hover::after { transform: scale(1.22); }
.home-path-therapy { --path-accent: rgba(238,124,104,.18); }
.home-path-school { --path-accent: rgba(23,111,107,.16); }
.home-path-materials { --path-accent: rgba(244,201,95,.26); }
.home-path-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 40px; }
.home-path-number { color: rgba(50,24,46,.6); font-size: .73rem; font-weight: 850; letter-spacing: .16em; }
.home-path-icon { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(55,26,48,.1); border-radius: 50%; background: rgba(255,255,255,.72); color: var(--plum); font-size: 1.35rem; }
.home-path-card small { color: var(--teal-dark); font-size: .7rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.home-path-card h2 { margin: 9px 0 13px; font-size: clamp(1.65rem, 2.7vw, 2.25rem); }
.home-path-card p { flex: 1; margin-bottom: 25px; color: var(--muted); font-size: .93rem; line-height: 1.65; }
.home-path-link {
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 49px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 17px;
  border: 1px solid rgba(122,49,95,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.75);
  color: var(--plum-dark);
  cursor: pointer;
  font-weight: 800;
}
.home-path-link:hover { border-color: var(--plum); background: var(--plum); color: #fff; }
.home-path-link span { font-size: 1.12rem; }
.home-portal-signature { display: flex; align-items: center; justify-content: center; gap: 11px; margin-top: 32px; color: var(--muted); font-size: .74rem; letter-spacing: .055em; text-transform: uppercase; }
.home-portal-signature strong { color: var(--plum-dark); font-family: Georgia, serif; font-size: .98rem; font-weight: 700; letter-spacing: 0; text-transform: none; }

/* Loja e produtos */
.celebration-section { padding-block: clamp(64px, 8vw, 96px); }
.celebration-heading { margin-bottom: 30px; }
.celebration-carousel { overflow: hidden; border: 1px solid rgba(75,43,63,.1); border-radius: 34px; background: #fff; box-shadow: var(--shadow); }
.celebration-slide-link { border-radius: 34px; }
.celebration-arrow,
.celebration-pause { border: 1px solid rgba(66,35,56,.09); box-shadow: 0 10px 24px rgba(42,23,37,.12); }
.shop-showcase { padding-block: clamp(70px, 8vw, 104px); }
.shop-showcase-grid { gap: clamp(42px, 7vw, 90px); }
.shop-showcase-photo { overflow: visible; border-radius: 30px; }
.shop-showcase-photo::before { inset: 14px 8px -14px 14px; }
.shop-showcase-photo img { transition: transform .6s ease; }
.shop-showcase-photo:hover img { transform: none; }
.shop-showcase-tag { right: 14px; border-radius: 999px; box-shadow: 0 10px 24px rgba(44,24,38,.14); }
.shop-showcase-bottom .shop-showcase-tag { right: auto; left: 14px; }
.shop-showcase-copy h2 { font-size: clamp(2rem, 3.6vw, 3.25rem); }
.shop-layout { grid-template-columns: 270px minmax(0, 1fr); gap: 38px; padding-top: 70px; }
.filters {
  top: 98px;
  padding: 25px;
  border-color: rgba(75,43,63,.1);
  border-radius: 24px;
  background: rgba(255,255,255,.9);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(16px);
}
.filters input,
.results-toolbar select,
.contact-form input,
.contact-form select,
.contact-form textarea,
.account-box input,
.checkout-page-form input,
.checkout-page-form select {
  border-color: rgba(90,55,78,.15);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(51,28,44,.025);
}
.filters input:focus,
.results-toolbar select:focus,
.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus,
.account-box input:focus,
.checkout-page-form input:focus,
.checkout-page-form select:focus { border-color: rgba(122,49,95,.45); box-shadow: 0 0 0 4px rgba(122,49,95,.075); }
.category-filters button { min-height: 41px; padding: 9px 12px; border-radius: 12px; }
.category-filters button:hover,
.category-filters button.active { background: linear-gradient(135deg, var(--plum-light), #fff4ef); }
.results-toolbar { min-height: 48px; margin-bottom: 22px; padding: 0 3px; }
.product-grid { gap: 20px; }
.product-card {
  border-color: rgba(75,43,63,.1);
  border-radius: 25px;
  box-shadow: 0 14px 40px rgba(55,26,48,.065);
}
.product-card:hover { transform: translateY(-7px); box-shadow: 0 25px 58px rgba(55,26,48,.13); }
.product-cover { min-height: 245px; padding: 0; background: #f7f2ef; }
.product-cover-image { transition: transform .42s ease; }
.product-card:hover .product-cover-image { transform: scale(1.025); }
.product-badge { top: 13px; left: 13px; border: 1px solid rgba(63,35,54,.08); box-shadow: 0 7px 18px rgba(48,26,41,.1); }
.product-body { padding: 22px 21px 21px; }
.product-category { color: var(--teal-dark); }
.product-body h3 { font-size: 1.28rem; }
.product-sale-price { color: var(--plum); font-family: Georgia, "Times New Roman", serif; }
.product-actions .button { border-radius: 999px; }
.product-cart-button { background: linear-gradient(135deg, var(--plum), #963f72); }
.product-buy-button { border-color: rgba(122,49,95,.38); }

.product-page-view { background: linear-gradient(180deg, #faf6f1, #fff 54%, #faf6f1); }
.product-page-shell { width: min(calc(100% - 48px), var(--container)); padding: 34px 0 96px; }
.product-page-hero-grid { gap: clamp(32px, 5vw, 70px); }
.product-page-visual { border-color: rgba(75,43,63,.09); border-radius: 32px; background: #fff; box-shadow: var(--shadow); }
.product-page-purchase { top: 94px; border-color: rgba(75,43,63,.1); border-radius: 30px; box-shadow: var(--shadow); }
.product-page-purchase h1 { font-size: clamp(2.25rem, 4vw, 3.6rem); }
.product-page-offer { border: 1px solid rgba(122,49,95,.13); border-radius: 22px; background: linear-gradient(135deg, #fffaf2, #f9eef5); }
.product-page-selling-points li { border-radius: 15px; background: #f4faf8; }
.product-page-description,
.product-page-includes,
.product-page-presentation-note { border-color: rgba(75,43,63,.1); border-radius: 24px; box-shadow: var(--shadow-soft); }
.product-recommendations { margin-top: 72px; padding-top: 66px; border-top-color: rgba(75,43,63,.1); }
.product-recommendation-card { border-color: rgba(75,43,63,.1); border-radius: 22px; box-shadow: var(--shadow-soft); }
.button-store-highlight { border-radius: 999px; background: linear-gradient(135deg, var(--teal-dark), var(--teal)); color: #fff; box-shadow: 0 12px 26px rgba(23,111,107,.18); }
.button-store-highlight:hover { background: linear-gradient(135deg, #0b4140, var(--teal-dark)); color: #fff; }

/* Serviços, apresentação e contato */
.inner-hero { position: relative; overflow: hidden; padding: clamp(76px, 9vw, 120px) 0; }
.therapy-hero { background: linear-gradient(135deg, #fff9f3, #f9eaf2 58%, #f3f8f6); }
.school-hero { background: linear-gradient(135deg, #eef9f6, #fff8e5 58%, #faf0f5); }
.inner-hero-grid { gap: clamp(45px, 8vw, 106px); }
.inner-hero-grid h1 { font-size: clamp(2.7rem, 5vw, 4.85rem); text-wrap: balance; }
.inner-hero-grid img { max-height: 590px; border: 8px solid rgba(255,255,255,.74); border-radius: 30px; box-shadow: var(--shadow); }
.content-grid { gap: clamp(48px, 8vw, 104px); }
.steps > div { padding: 15px 0; border-bottom: 1px solid var(--line); }
.steps strong { border-radius: 50%; background: linear-gradient(135deg, var(--plum-light), #fff0ea); }
.ethics-note { border-left-width: 3px; background: #fff7f3; }
.contact-form,
.account-box {
  border-color: rgba(75,43,63,.1);
  border-radius: 28px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow);
}
.contact-form input,
.contact-form select,
.contact-form textarea,
.account-box input { min-height: 48px; padding-inline: 15px; }
.contact-form textarea { min-height: 125px; padding-block: 13px; }
.faq-section,
.gallery-section,
.school-contact { background: linear-gradient(135deg, #faf6f0, #fbf4f8); }
.faq-list { gap: 10px; }
.faq-list article { overflow: hidden; border-color: rgba(75,43,63,.1); border-radius: 18px; box-shadow: 0 8px 26px rgba(55,26,48,.04); }
.faq-list button { min-height: 64px; padding: 19px 22px; }
.feature-grid { gap: 16px; }
.feature-grid article { border-color: rgba(75,43,63,.1); border-radius: 24px; box-shadow: var(--shadow-soft); transition: transform .22s ease, box-shadow .22s ease; }
.feature-grid article:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.rounded-photo { border-radius: 26px; }
.about-full { gap: clamp(48px, 8vw, 108px); }
.about-main-photo img { border: 8px solid rgba(255,255,255,.82); border-radius: 30px; }
.about-main-photo span { right: -12px; border-radius: 999px; transform: none; box-shadow: 0 10px 24px rgba(55,26,48,.13); }
.values { gap: 12px; }
.values > div { min-height: 95px; justify-content: center; border: 1px solid rgba(122,49,95,.08); border-radius: 18px; background: linear-gradient(135deg, var(--plum-light), #fff8f2); }
.photo-gallery { gap: 14px; }
.photo-gallery figure { border-radius: 25px; box-shadow: var(--shadow-soft); }
.contact-options > button { min-height: 88px; border-color: rgba(75,43,63,.1); border-radius: 20px; box-shadow: 0 10px 28px rgba(55,26,48,.045); }
.contact-options > button:hover { transform: translateY(-2px); border-color: rgba(122,49,95,.28); box-shadow: var(--shadow-soft); }
.availability-card { border-radius: 24px; background: linear-gradient(135deg, var(--plum-dark), var(--plum)); box-shadow: var(--shadow-soft); }
.account-box { min-height: 450px; }
.tab-buttons { border-radius: 999px; background: #f6f0f4; }
.tab-buttons button { border-radius: 999px; }
.profile-avatar { background: linear-gradient(135deg, var(--plum-light), #fff0e9); }
.downloads-list { gap: 12px; }
.download-item { border-color: rgba(75,43,63,.1); border-radius: 20px; box-shadow: var(--shadow-soft); }
.legal-copy { max-width: 920px; }
.legal-copy > p:not(.legal-updated),
.legal-copy li { font-size: 1rem; line-height: 1.75; }
.legal-updated { border-left-color: var(--teal); border-radius: 0 13px 13px 0; }
.legal-action-box { border-radius: 22px; box-shadow: var(--shadow-soft); }

/* Checkout, pagamento e pós-compra */
.checkout-page-view { background: linear-gradient(180deg, #faf6f1, #fff 48%, #faf6f1); }
.checkout-page-shell { padding-block: 34px 94px; }
.checkout-page-topbar { margin-bottom: 38px; }
.checkout-page-heading { max-width: 760px; margin-bottom: 28px; }
.checkout-page-heading h1 { margin-bottom: 12px; font-size: clamp(2.65rem, 5vw, 4.5rem); }
.checkout-page-fields { gap: clamp(26px, 4vw, 48px); }
.checkout-panel,
.checkout-page-sidebar,
.checkout-addons,
.checkout-trust-strip,
.payment-journey-card,
.pix-payment-panel {
  border-color: rgba(75,43,63,.1);
  border-radius: 26px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-soft);
}
.checkout-step { border-radius: 18px; }
.checkout-extra-card { border-color: rgba(75,43,63,.1); border-radius: 18px; box-shadow: 0 8px 22px rgba(55,26,48,.04); }
.checkout-extra-card.selected { border-color: rgba(23,111,107,.48); background: #f2faf8; box-shadow: 0 0 0 3px rgba(23,111,107,.07); }
.checkout-pay-button { min-height: 58px; }
.checkout-order-summary,
.checkout-legal-box { border-radius: 18px; }
.checkout-trust-strip { padding: 17px 19px; }
.payment-journey-wrap { padding-block: clamp(62px, 8vw, 100px); }
.payment-status-icon { box-shadow: 0 15px 35px rgba(55,26,48,.12); }
.pix-payment-panel img { border-radius: 18px; }

/* Rodapé e elementos flutuantes */
.site-footer { padding-top: 78px; background: linear-gradient(140deg, #251023, var(--plum-dark) 56%, #173e3b); }
.footer-grid { gap: 42px; }
.footer-brand img { border: 1px solid rgba(255,255,255,.2); box-shadow: 0 12px 34px rgba(0,0,0,.18); }
.supplier-identification { border-color: rgba(255,255,255,.12); }
.floating-contact { right: 22px; bottom: 22px; border: 1px solid rgba(255,255,255,.2); background: linear-gradient(135deg, var(--teal), #238a83); box-shadow: 0 16px 36px rgba(16,79,77,.28); }
.cart-drawer { padding: 28px; background: rgba(255,255,255,.98); box-shadow: -24px 0 70px rgba(40,20,34,.2); }
.close-button { background: #f5eff3; }
.cookie-banner { border-color: rgba(75,43,63,.1); border-radius: 22px; box-shadow: 0 24px 65px rgba(40,20,34,.2); }
.toast { top: 102px; background: linear-gradient(135deg, var(--plum-dark), var(--plum)); }

@media (max-width: 1080px) {
  .header-inner { min-height: 72px; }
  .brand { min-width: 0; margin-right: auto; }
  .home-portal { min-height: auto; }
  .home-portal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-path-card { min-height: 350px; }
  .feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shop-layout { grid-template-columns: 235px minmax(0, 1fr); gap: 28px; }
}

@media (max-width: 860px) {
  .container,
  .product-page-shell { width: min(calc(100% - 34px), var(--container)); }
  .announcement { font-size: .7rem; }
  .home-portal { display: block; padding-top: 54px; }
  .home-portal-grid { grid-template-columns: 1fr; max-width: 720px; margin-inline: auto; }
  .home-path-card { min-height: 0; }
  .home-path-top { margin-bottom: 24px; }
  .home-portal-signature { flex-wrap: wrap; }
  .inner-hero-grid,
  .inner-hero-grid.reverse,
  .content-grid,
  .about-full,
  .contact-layout { grid-template-columns: 1fr; }
  .inner-hero-grid.reverse img { order: 2; }
  .inner-hero-grid img { width: min(100%, 620px); max-height: 520px; }
  .about-main-photo { width: min(100%, 560px); }
  .about-main-photo img { max-height: 650px; }
  .shop-layout { display: block; padding-top: 48px; }
  .shop-layout .filters { position: static; display: block; overflow: hidden; margin-bottom: 28px; padding: 19px; }
  .shop-layout,
  .shop-results,
  .shop-layout .filters,
  .filters fieldset,
  .category-filters { min-width: 0; max-width: 100%; }
  .filters fieldset { width: 100%; min-inline-size: 0; margin: 18px 0; }
  .category-filters { width: 100%; display: flex; gap: 8px; overflow-x: auto; padding-bottom: 7px; scrollbar-width: thin; }
  .category-filters button { flex: 0 0 auto; padding-inline: 15px; border: 1px solid var(--line); background: #fff; }
  .product-page-hero-grid { grid-template-columns: 1fr; }
  .product-page-purchase { position: static; }
  .product-page-details-grid { grid-template-columns: 1fr; }
  .checkout-page-fields { grid-template-columns: 1fr; }
  .checkout-page-form { grid-template-columns: 1fr; }
  .checkout-page-sidebar { position: static; }
}

@media (max-width: 700px) {
  body { font-size: 15.5px; }
  .container,
  .product-page-shell { width: min(calc(100% - 28px), var(--container)); }
  .section { padding-block: 66px; }
  .announcement-separator { display: none; }
  .announcement span:last-child { display: none; }
  .header-inner { min-height: 66px; gap: 9px; }
  .brand img { width: 47px; height: 47px; }
  .brand strong { font-size: 1.02rem; }
  .brand small { display: none; }
  .account-header { display: none; }
  .cart-button { min-width: 43px; justify-content: center; padding-inline: 10px; font-size: inherit; }
  .cart-button .cart-label { display: none; }
  .cart-button > span:first-child { font-size: 1rem; }
  .cart-button strong { font-size: .72rem; }
  .menu-button { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: #f6f0f4; }
  .mobile-nav { padding-inline: 16px; box-shadow: 0 20px 34px rgba(55,26,48,.08); }
  .mobile-nav a { min-height: 48px; padding-inline: 10px; }
  .page-hero { padding-block: 66px; }
  .page-hero::after { width: 62px; height: 62px; }
  .page-hero h1 { font-size: clamp(2.35rem, 11vw, 3.5rem); }
  .home-portal { padding: 48px 0 54px; }
  .home-portal-intro { margin-bottom: 34px; }
  .home-portal h1 { font-size: clamp(2.5rem, 12vw, 4.1rem); }
  .home-portal-intro > p { font-size: .98rem; }
  .home-path-card { padding: 25px; border-radius: 25px; }
  .home-portal-signature { gap: 7px 10px; margin-top: 25px; }
  .home-portal-signature span:first-child::after { content: " •"; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .product-card { border-radius: 19px; }
  .product-cover { min-height: 190px; }
  .product-body { padding: 15px 14px 14px; }
  .product-body h3 { margin: 6px 0 9px; font-size: 1rem; line-height: 1.12; }
  .product-body > p { display: none; }
  .product-original-price { font-size: .7rem; }
  .product-sale-line { display: grid; gap: 0; }
  .product-sale-line small { font-size: .65rem; }
  .product-sale-price { font-size: 1.2rem; }
  .product-actions { grid-template-columns: 1fr; gap: 7px; margin-top: 10px; }
  .product-actions .button { min-height: 41px; padding: 8px 6px; font-size: .7rem; }
  .results-toolbar { align-items: flex-start; flex-direction: column; gap: 8px; }
  .results-toolbar label { width: 100%; display: flex; align-items: center; justify-content: space-between; }
  .results-toolbar select { max-width: 62%; }
  .shop-showcase-grid,
  .shop-showcase-grid-reverse { grid-template-columns: 1fr; }
  .shop-showcase-grid-reverse .shop-showcase-photo { order: -1; }
  .celebration-carousel { border-radius: 25px; }
  .feature-grid { grid-template-columns: 1fr; }
  .values { grid-template-columns: 1fr; }
  .photo-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 230px; }
  .photo-gallery figure.gallery-tall { grid-row: span 1; }
  .profile-grid { grid-template-columns: 1fr; }
  .profile-actions,
  .dashboard-actions { display: grid; width: 100%; }
  .profile-actions .button,
  .dashboard-actions .button { width: 100%; }
  .download-item { grid-template-columns: 48px 1fr; }
  .download-item .button { grid-column: 1 / -1; width: 100%; }
  .product-page-shell { padding-top: 24px; }
  .product-page-visual { min-height: 0; aspect-ratio: 1 / 1; border-radius: 24px; }
  .product-page-purchase { padding: 23px; border-radius: 24px; }
  .product-recommendations-heading { align-items: stretch; flex-direction: column; }
  .product-recommendations-heading .button { width: 100%; }
  .product-recommendations-track { grid-auto-columns: minmax(235px, 78vw); }
  .checkout-page-topbar { align-items: stretch; flex-direction: column; gap: 8px; margin-bottom: 28px; }
  .checkout-page-topbar .button { width: 100%; }
  .checkout-panel,
  .checkout-page-sidebar,
  .checkout-addons { padding: 20px; border-radius: 22px; }
  .checkout-trust-logos { width: 100%; }
  .payment-journey-card { padding: 24px 19px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 38px 24px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; }
  .supplier-grid { grid-template-columns: 1fr; }
  .cookie-banner { left: 10px; right: 10px; bottom: 10px; align-items: stretch; flex-direction: column; gap: 14px; padding: 17px; }
  .cookie-banner > div:last-child { display: grid; grid-template-columns: 1fr 1fr; }
  .cookie-banner .button { min-height: 44px; padding-inline: 12px; font-size: .76rem; }
  .floating-contact { right: 14px; bottom: 14px; width: 48px; height: 48px; justify-content: center; overflow: hidden; padding: 0; font-size: 0; }
  .floating-contact span { font-size: 1.25rem; }
}

@media (max-width: 480px) {
  .container,
  .product-page-shell { width: min(calc(100% - 22px), var(--container)); }
  .brand span { display: none; }
  .brand img { width: 54px; height: 54px; }
  .home-portal-kicker { max-width: 100%; font-size: .68rem; }
  .home-portal h1 { font-size: clamp(2.35rem, 13vw, 3.35rem); }
  .home-path-card { padding: 22px; }
  .home-path-card h2 { font-size: 1.65rem; }
  .home-portal-signature { display: grid; justify-items: center; }
  .home-portal-signature span:first-child::after { content: ""; }
  .shop-layout .filters { margin-inline: -1px; padding: 16px; border-radius: 20px; }
  .product-grid { gap: 9px; }
  .product-cover { min-height: 160px; }
  .product-body { padding: 12px 10px 11px; }
  .product-category { font-size: .6rem; }
  .product-body h3 { font-size: .9rem; }
  .product-sale-price { font-size: 1.06rem; }
  .product-actions .button { min-height: 40px; font-size: .66rem; }
  .photo-gallery { grid-template-columns: 1fr; }
  .about-main-photo span { right: 8px; bottom: 14px; }
  .footer-grid { grid-template-columns: 1fr; }
  .cart-drawer { padding: 21px 17px; }
  .checkout-page-shell { padding-top: 24px; }
  .checkout-page-heading h1 { font-size: 2.5rem; }
}

/* Sobrescreve com segurança a vitrine compacta legada da V7.10. */
@media (max-width: 580px) {
  .shop-layout .filters { display: block !important; }
  #shop-products.product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  #shop-products .product-card { min-width: 0; border-radius: 19px; }
  #shop-products .product-cover { min-height: 0; aspect-ratio: 1 / 1; padding: 0; }
  #shop-products .product-badge { top: 8px; left: 8px; max-width: calc(100% - 16px); padding: 5px 7px; font-size: .56rem; }
  #shop-products .product-body { padding: 12px 10px 11px; }
  #shop-products .product-category { font-size: .6rem; letter-spacing: .06em; }
  #shop-products .product-body h3 { min-height: 2.35em; margin: 5px 0 7px; font-size: .9rem; line-height: 1.18; }
  #shop-products .product-original-price { font-size: .69rem; }
  #shop-products .product-sale-line small { font-size: .65rem; }
  #shop-products .product-sale-price { font-size: 1.08rem; }
  #shop-products .product-actions { grid-template-columns: 1fr; gap: 7px; margin-top: 10px; }
  #shop-products .product-actions .button { min-height: 44px; padding: 8px 5px; border-radius: 999px; font-size: .7rem; }
  .shop-layout .results-toolbar select { min-height: 40px; max-width: 62%; padding-inline: 9px; font-size: .76rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* V7.32 — experiência móvel compacta, loja infantil e rodapé resumido */
.site-footer {
  padding: 34px 0 14px;
}
.footer-compact {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 34px;
}
.footer-summary h2 {
  margin: 0 0 3px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.18rem;
  letter-spacing: -.02em;
}
.footer-summary p {
  margin: 0 0 3px;
  color: rgba(255,255,255,.82);
  font-size: .83rem;
}
.footer-summary span {
  color: rgba(255,255,255,.62);
  font-size: .7rem;
}
.footer-contact-block {
  display: grid;
  justify-items: end;
  gap: 9px;
}
.footer-contact-button {
  min-height: 41px;
  padding: 8px 19px;
  font-size: .8rem;
}
.footer-legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px 16px;
  color: rgba(255,255,255,.72);
  font-size: .72rem;
}
.footer-legal a { min-height: 34px; display: inline-flex; align-items: center; padding-block: 4px; }
.footer-legal a:hover,
.footer-credit-link:hover { color: var(--yellow); }
.footer-bottom {
  align-items: center;
  margin-top: 18px;
  padding-top: 11px;
  opacity: .68;
  font-size: .7rem;
}
.footer-credit-link { color: #fff; font-weight: 750; }
.shop-products-title { margin: 0 0 5px; font-size: clamp(1.7rem, 2.7vw, 2.3rem); }

@media (max-width: 860px) {
  /* Na Home, os três caminhos cabem juntos na primeira tela do celular. */
  body.home-page-open .announcement { display: none; }
  .home-portal {
    min-height: calc(100svh - 66px);
    display: flex;
    align-items: center;
    padding: 16px 0;
  }
  .home-portal-inner { width: min(calc(100% - 28px), var(--container)); }
  .home-portal-intro { margin-bottom: 12px; }
  .home-portal-kicker {
    gap: 6px;
    margin-bottom: 9px;
    padding: 5px 9px;
    font-size: .61rem;
    letter-spacing: .08em;
  }
  .home-portal-kicker::before { width: 5px; height: 5px; box-shadow: 0 0 0 3px rgba(238,124,104,.12); }
  .home-portal h1 {
    max-width: 560px;
    margin-bottom: 7px;
    font-size: clamp(1.9rem, 9vw, 2.35rem);
    line-height: 1.02;
  }
  .home-portal-intro > p {
    max-width: 520px;
    font-size: .8rem;
    line-height: 1.35;
  }
  .home-portal-grid { gap: 8px; }
  .home-path-card {
    min-height: 0;
    display: grid;
    grid-template-columns: 36px minmax(0,1fr) 42px;
    align-items: center;
    gap: 10px;
    padding: 11px 13px;
    border-radius: 18px;
  }
  .home-path-card::after { width: 78px; height: 78px; right: -34px; bottom: -45px; }
  .home-path-top {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
  }
  .home-path-number,
  .home-path-card > small,
  .home-path-card > p,
  .home-portal-signature { display: none; }
  .home-path-icon { width: 36px; height: 36px; font-size: 1rem; }
  .home-path-card h2 {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    font-size: 1.12rem;
    line-height: 1.08;
  }
  .home-path-link {
    position: absolute;
    z-index: 2;
    inset: 0;
    width: auto;
    height: auto;
    min-height: 0;
    justify-content: flex-end;
    padding: 0 13px;
    border: 0;
    border-radius: 18px;
    background: transparent;
    font-size: 0;
  }
  .home-path-link:hover { border-color: transparent; background: transparent; color: var(--plum-dark); }
  .home-path-link:focus-visible { outline-offset: -4px; }
  .home-path-card:focus-within { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(23,111,107,.16), 0 17px 48px rgba(55,26,48,.075); }
  .home-path-link > span {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(122,49,95,.18);
    border-radius: 50%;
    background: rgba(255,255,255,.76);
    font-size: 1.05rem;
  }

  /* No celular, a vitrine vem logo após uma abertura curta. */
  [data-page="loja"] > .page-hero-playful {
    padding: 22px 0 19px;
    background:
      radial-gradient(circle at 9% 20%, rgba(255,154,198,.38) 0 24px, transparent 25px),
      radial-gradient(circle at 92% 24%, rgba(103,211,199,.34) 0 32px, transparent 33px),
      radial-gradient(circle at 83% 92%, rgba(255,211,92,.38) 0 18px, transparent 19px),
      linear-gradient(135deg, #fff6db, #ffeef6 52%, #e9faf7);
  }
  [data-page="loja"] > .page-hero-playful::before {
    content: "✦  ♡  ✿";
    position: absolute;
    top: 9px;
    left: max(14px, calc((100% - var(--container))/2));
    color: rgba(122,49,95,.36);
    font-size: .9rem;
    letter-spacing: .42rem;
    transform: rotate(-5deg);
  }
  [data-page="loja"] > .page-hero .eyebrow { margin-bottom: 5px; font-size: .61rem; }
  [data-page="loja"] > .page-hero h1 { margin-bottom: 6px; font-size: 2rem; }
  [data-page="loja"] > .page-hero p { max-width: 390px; font-size: .82rem; line-height: 1.35; }
  [data-page="loja"] > .page-hero::after { top: 12px; right: 12px; width: 46px; height: 46px; }

  [data-page="loja"] > .shop-layout {
    width: 100%;
    margin: 0;
    padding: 18px max(14px, calc((100% - var(--container))/2)) 42px;
    background:
      radial-gradient(rgba(238,124,104,.13) .8px, transparent .8px),
      linear-gradient(180deg, #fffdf8, #fff);
    background-size: 18px 18px, auto;
  }
  [data-page="loja"] .shop-layout .filters {
    margin: 0 0 13px;
    padding: 12px;
    border-radius: 18px;
    background: rgba(255,255,255,.95);
  }
  [data-page="loja"] .filters > h2 { display: none; }
  [data-page="loja"] .filters > label {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
  }
  [data-page="loja"] .filters input { min-height: 43px; padding: 9px 12px; }
  [data-page="loja"] .filters fieldset { margin: 10px 0 0; }
  [data-page="loja"] .filters legend { margin-bottom: 6px; font-size: .68rem; }
  [data-page="loja"] .category-filters { gap: 6px; padding-bottom: 2px; }
  [data-page="loja"] .category-filters button {
    min-height: 36px;
    padding: 7px 12px;
    border-color: rgba(122,49,95,.13);
    background: #fff8ed;
    font-size: .72rem;
  }
  [data-page="loja"] .category-filters button:nth-child(3n+2) { background: #fff0f6; }
  [data-page="loja"] .category-filters button:nth-child(3n+3) { background: #eaf8f5; }
  [data-page="loja"] .category-filters button.active { border-color: var(--plum); background: var(--plum); color: #fff; }
  [data-page="loja"] .filters > .button { display: none; }
  [data-page="loja"] .shop-products-title { margin-bottom: 2px; font-size: 1.35rem; }
  [data-page="loja"] .results-toolbar { min-height: 0; margin-bottom: 13px; }
  [data-page="loja"] .results-toolbar p { margin: 0; }

  [data-page="loja"] > .celebration-section { padding: 34px 0; }
  [data-page="loja"] .celebration-heading { gap: 6px; margin-bottom: 14px; }
  [data-page="loja"] .celebration-heading .eyebrow { display: none; }
  [data-page="loja"] .celebration-heading h2 { font-size: 1.55rem; line-height: 1.08; }
  [data-page="loja"] .celebration-heading > p { font-size: .8rem; line-height: 1.42; }
  [data-page="loja"] .celebration-carousel { height: 520px; border-radius: 22px; }
  [data-page="loja"] .celebration-copy { min-height: 64%; padding: 22px 18px 62px; }
  [data-page="loja"] .celebration-copy h3 { font-size: 2.05rem; }
  [data-page="loja"] .celebration-arrow { top: 28%; }
  [data-page="loja"] > .shop-showcase-top { display: none; }
  [data-page="loja"] > .shop-showcase-bottom { padding-block: 38px; }

  /* Consentimento legível sem esconder os caminhos da Home. */
  .cookie-banner {
    left: 6px;
    right: 6px;
    bottom: 6px;
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
    padding: 10px;
    border-radius: 16px;
  }
  .cookie-banner > div:first-child strong { margin-bottom: 2px; font-size: .8rem; }
  .cookie-banner p { margin: 0; font-size: .71rem; line-height: 1.35; }
  .cookie-banner > div:first-child > a { margin-top: 3px; font-size: .68rem; }
  .cookie-banner > div:last-child { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  .cookie-banner .button { min-height: 38px; padding: 7px 8px; font-size: .67rem; }
  body.home-page-open:has(#cookie-banner:not([hidden])) .home-portal { align-items: flex-start; padding-block: 10px; }
  body.home-page-open:has(#cookie-banner:not([hidden])) .home-portal-kicker,
  body.home-page-open:has(#cookie-banner:not([hidden])) .home-portal-intro > p { display: none; }
  body.home-page-open:has(#cookie-banner:not([hidden])) .home-portal h1 { margin-bottom: 10px; font-size: clamp(1.72rem, 8vw, 2.05rem); }
  body.home-page-open:has(#cookie-banner:not([hidden])) .home-path-card { padding-block: 8px; }

  /* Rodapé curto: identificação, contato e links legais essenciais. */
  .site-footer { padding: 20px 0 10px; }
  .footer-compact {
    align-items: flex-start;
    flex-direction: column;
    gap: 9px;
  }
  .footer-summary h2 { font-size: 1.05rem; }
  .footer-summary p { font-size: .76rem; }
  .footer-summary span { font-size: .64rem; }
  .footer-contact-block { width: 100%; justify-items: start; gap: 5px; }
  .footer-contact-button { width: auto; min-height: 38px; }
  .footer-legal { justify-content: flex-start; gap: 3px 13px; font-size: .7rem; }
  .footer-legal a { min-height: 32px; }
  .footer-bottom {
    align-items: flex-start;
    gap: 3px;
    margin-top: 9px;
    padding-top: 8px;
    font-size: .68rem;
    line-height: 1.4;
  }
}

@media (max-width: 860px) and (max-height: 650px) {
  .home-portal { padding-block: 10px; }
  .home-portal-intro > p { display: none; }
  .home-portal h1 { margin-bottom: 0; font-size: 1.82rem; }
  .home-path-card { padding-block: 9px; }
}

@media (max-width: 360px) {
  .footer-summary p { display: none; }
  .footer-legal { gap-inline: 10px; font-size: .68rem; }
  .footer-legal a { min-height: 30px; }
  .footer-bottom { font-size: .66rem; }
}
