/* Home product carousel: native scrolling remains available without JavaScript. */
.product-carousel { min-width: 0; max-width: 100%; }
.product-carousel-toolbar { min-height: 64px; }
.product-carousel-controls { display: flex; min-height: 52px; align-items: center; justify-content: space-between; gap: 16px; }
.product-carousel-counter { color: #3b4966; font-size: .9rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.product-carousel-arrows { display: flex; gap: 10px; }
.product-carousel-arrow { display: grid; width: 48px; height: 48px; place-items: center; padding: 0; border: 1px solid #c4cde2; border-radius: 50%; color: #111d47; background: #fff; cursor: pointer; }
.product-carousel-arrow:hover:not(:disabled) { border-color: #2044ca; color: #2044ca; background: #f2f5ff; }
.product-carousel-arrow:disabled { color: #8b95ad; border-color: #e1e5ef; background: #f7f8fc; cursor: default; }
.product-carousel-arrow svg { flex: none; }
.product-carousel .product-carousel-track { --carousel-gap: clamp(17px, 3vw, 30px); display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - var(--carousel-gap)) / 2); gap: var(--carousel-gap); align-items: stretch; min-width: 0; max-width: 100%; padding-block: 4px 14px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: 0; scrollbar-width: thin; scrollbar-color: #9caedc #f0f3fb; }
.product-carousel-slide { display: flex; flex-direction: column; min-width: 0; scroll-snap-align: start; }
.product-carousel-slide .product-card-visual { flex: none; }
.product-carousel-slide .product-card-visual > img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.product-carousel-slide .product-card-visual > img.product-carousel-image-joy { object-fit: contain; }
.product-carousel-slide .product-card-visual > img.product-carousel-image-contain { object-fit: contain; padding: 16px; background: #fff; }
.product-carousel-slide .product-card-copy { display: flex; flex: 1; flex-direction: column; }
.product-carousel-slide .product-card-copy .text-link { align-self: flex-start; margin-top: auto; padding-top: 20px; }
.product-carousel-pagination-space { min-height: 48px; padding-top: 4px; }
.product-carousel-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px; }
.product-carousel-dot { display: grid; width: 44px; height: 44px; place-items: center; padding: 0; border: 0; border-radius: 50%; color: #2044ca; background: transparent; cursor: pointer; }
.product-carousel-dot span { display: block; width: 10px; height: 10px; border: 1px solid #8c9cc8; border-radius: 50%; background: #fff; }
.product-carousel-dot[data-visible="true"] span { border-color: #2044ca; background: #2044ca; }
.product-carousel-dot:hover { background: #eef2ff; }
@media (max-width: 760px) {
  .product-carousel .product-carousel-track { --carousel-gap: 16px; grid-auto-columns: 88%; }
  .product-carousel-pagination { gap: 0; }
  .product-carousel-slide .product-card-copy { padding: 21px; }
  .product-carousel-slide .product-card-copy h3 { font-size: 1.45rem; }
}

/* FAQ artwork: desktop source only; mobile fallback is an inline empty image. */
.home-faq-art { display:block; width:min(100%,490px); margin:26px auto 0; }
.home-faq-art img { display:block; width:100%; height:auto; }
@media(max-width:980px) { .home-faq-art { display:none; } }

/* Avoid doubling desktop section padding at the carousel-to-Joy transition. */
@media (min-width: 981px) {
  section[aria-labelledby="linhas-title"] { padding-bottom: 24px; }
  section[aria-labelledby="linhas-title"] + section[aria-labelledby="joy-title"] { padding-top: 32px; }
}

/* Fourth review: consistent illustration labels and an additional plain-balloon scene. */
.product-carousel-slide .product-card-visual figcaption { min-height:38px; padding:9px 20px; font-size:.77rem; line-height:1.5; color:#53617a; background:#f5f7fc; }
.joy-showcase { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); align-items:center; gap:0; overflow:hidden; border:1px solid #e4d6ad; border-radius:var(--radius); background:#fffcf3; }
.joy-showcase .joy-band { display:block; min-width:0; border:0; background:transparent; padding:clamp(24px,3vw,36px); }
.joy-showcase .joy-logo { display:block; width:128px; height:67px; margin-top:18px; }
.joy-showcase-photo { min-width:0; margin:24px 24px 24px 0; overflow:hidden; border-radius:16px; background:#fff; }
.joy-showcase-photo img { display:block; width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; }
.joy-showcase-photo figcaption { padding:8px 14px; color:#53617a; background:#f5f7fc; font-size:.77rem; }
@media(max-width:760px) { .joy-showcase { grid-template-columns:minmax(0,1fr); } .joy-showcase-photo { margin:0 23px 23px; } .product-carousel-slide .product-card-visual figcaption { padding-inline:16px; } }
