/* Refinamento visual dos componentes existentes, sem novos elementos. */
:root {
  --surface-border: rgba(136, 0, 204, 0.18);
  --surface-shadow: 0 3px 7px rgba(30, 12, 46, 0.07), 0 12px 24px rgba(30, 12, 46, 0.13), 0 28px 48px -16px rgba(66, 0, 99, 0.28);
  --surface-shadow-hover: 0 6px 12px rgba(30, 12, 46, 0.09), 0 22px 40px rgba(136, 0, 204, 0.24), 0 38px 64px -20px rgba(136, 0, 204, 0.34);
  --motion-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

::selection { background: rgba(136, 0, 204, 0.18); color: var(--text-primary); }
.testimonials-section ::selection,
.hero-section ::selection { background: var(--accent-purple); color: #fff; }

.site-header {
  background: rgba(255, 255, 255, 0.94);
  border-bottom-color: rgba(35, 0, 63, 0.08);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
.site-header .navbar { min-height: 78px; }
.nav-link { font-size: 0.88rem; transition: color 220ms ease, box-shadow 220ms ease; }
.nav-link.active { box-shadow: inset 0 -1px 0 var(--accent-purple); }
.site-slogan-bar-wrap {
  background: linear-gradient(105deg, #7800b7, var(--accent-purple) 45%, #9000d5);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
}

.section-spacing { padding: 112px 0; }
.section-soft { background: #f7f5fa; }
.home-signature-section { padding-top: 100px !important; }
.section-header h2 {
  font-family: Poppins, sans-serif;
  font-size: clamp(2rem, 3.5vw, 3.1rem);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.045em;
  max-width: 27ch;
  text-wrap: balance;
  padding-bottom: 1rem;
}
.section-header h2::after { width: 48px; height: 2px; background: var(--accent-purple); }
.section-header.text-center h2::after { left: 50%; transform: translateX(-50%); }
.section-kicker { display: inline-block; font-size: 0.7rem; letter-spacing: 0.2em; font-weight: 600; margin-bottom: 0.85rem; }
.page-hero { padding: 88px 0 60px; background: linear-gradient(180deg, #faf7fc, #fff); }
.page-hero h1 { font-weight: 500; letter-spacing: -0.05em; line-height: 1.15; }
.page-hero p { line-height: 1.8; }
main > .section-spacing > .container > h2 {
  font-family: Poppins, sans-serif;
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 500;
  letter-spacing: -0.04em;
  line-height: 1.25;
}

.stat-card {
  background: linear-gradient(145deg, transparent 55%, rgba(136, 0, 204, 0.035)), #fff;
  border: 1px solid var(--surface-border);
  border-radius: 12px;
  box-shadow: inset 0 2px 0 rgba(136, 0, 204, 0.12), var(--surface-shadow);
  padding: 1.6rem 1.35rem;
}
.stat-card h3 { font-size: clamp(2.3rem, 4vw, 3.5rem); font-weight: 500; letter-spacing: -0.055em; line-height: 1.15; }
.stat-card p { max-width: 25ch; margin-top: 0.85rem; font-size: 0.86rem; line-height: 1.75; }

.institutional-card,
.product-card,
.glass-card,
.feature-card,
.product-detail-gallery-card,
.product-detail-info-card,
.faq-box {
  background: #fff;
  border: 1px solid var(--surface-border);
  border-radius: 10px;
  box-shadow: var(--surface-shadow);
}
.institutional-card,
.product-card,
.glass-card,
.feature-card,
.stat-card,
.process-card {
  transition: transform 350ms var(--motion-ease), border-color 350ms ease, box-shadow 350ms ease, background-color 350ms ease;
}
.institutional-card { padding: 2rem; }
.institutional-card h3 { font-family: Poppins, sans-serif; font-weight: 500; font-size: 1.25rem; letter-spacing: -0.03em; }
.institutional-card p { font-size: 0.9rem; line-height: 1.8; margin: 0.85rem 0 1.8rem; }
.institutional-card span { font-size: 0.8rem; text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.glass-card p { line-height: 1.8; }
.content-title { font-family: Poppins, sans-serif; line-height: 1.45; letter-spacing: -0.025em; }

.collection-card {
  min-height: 440px;
  border: 0;
  border-radius: 10px;
  box-shadow: 0 5px 12px rgba(25, 10, 37, 0.13), 0 20px 36px rgba(25, 10, 37, 0.23);
  transition: transform 500ms var(--motion-ease), filter 650ms ease, box-shadow 500ms ease;
}
.collection-overlay {
  padding: 2rem;
  background: linear-gradient(180deg, transparent 15%, rgba(11, 5, 18, 0.45) 45%, rgba(15, 5, 24, 0.96));
}
.collection-overlay h3 { font-family: Poppins, sans-serif; font-weight: 500; font-size: 1.8rem; letter-spacing: -0.04em; }
.collection-overlay p { color: #e2dce7; font-size: 0.88rem; line-height: 1.75; margin: 0.8rem 0 1.25rem; }
.collection-overlay a { font-size: 0.8rem; color: #f0d4ff; text-decoration: underline; text-underline-offset: 6px; }

.process-card {
  border: 1px solid var(--surface-border);
  border-radius: 12px;
  background: linear-gradient(145deg, transparent 55%, rgba(136, 0, 204, 0.035)), #fff;
  box-shadow: var(--surface-shadow);
  padding: 1.75rem;
}
.process-card span { border: 0; background: transparent; width: auto; height: auto; border-radius: 0; font-family: Poppins, sans-serif; font-size: 2.5rem; letter-spacing: -0.06em; font-weight: 500; margin-bottom: 1.3rem; }
.process-card h3 { font-size: 1.15rem; line-height: 1.45; letter-spacing: -0.025em; }
.process-card p { font-size: 0.9rem; line-height: 1.8; }

.testimonials-section {
  background: radial-gradient(ellipse at 50% 0, rgba(136, 0, 204, 0.24), transparent 65%), #1d102b;
  color: #fff;
}
.testimonials-section .section-kicker { color: #d9a5f1; }
.testimonials-section .section-header h2 { color: #fff; }
.testimonials-section .section-header h2::after { background: #b750eb; }
.testimonials-subtitle { color: #c7bace; font-size: 0.95rem; line-height: 1.8; }
.testimonial-slide-card { border: 1px solid rgba(217, 165, 241, 0.2); border-radius: 16px; background: linear-gradient(135deg, #2f193e, #22112f); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05); padding: 1.5rem 3rem; gap: 1.75rem; }
.testimonials-carousel .carousel-inner { border-radius: 16px; box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2), 0 26px 48px rgba(0, 0, 0, 0.28); }
.testimonial-slide-quote { color: #f4eff8; font-size: clamp(1.15rem, 1.8vw, 1.45rem); line-height: 1.8; font-style: normal; font-weight: 400; }
.testimonial-slide-author strong { color: #fff; }
.testimonial-slide-author span { color: #c7bace; }
.testimonial-slide-photo,
.duo-photo { border: 2px solid #ad56d9; box-shadow: 0 0 0 6px rgba(180, 91, 225, 0.08); }
.testimonials-arrow { background: rgba(255, 255, 255, 0.05) !important; border-color: rgba(226, 189, 246, 0.25) !important; }
.testimonials-arrow-icon { color: #eed4fc; }
.testimonials-dots button { background: rgba(226, 189, 246, 0.25) !important; border-color: transparent !important; width: 7px !important; height: 7px !important; }
.testimonials-dots button.active { background: #c978f2 !important; }

.product-image { transition: filter 650ms ease; }
.product-card:not(.category-product-card) .product-image { height: 270px; }
.product-image--photo > img { transition: transform 700ms var(--motion-ease); }
.product-body { padding: 1.7rem; }
.product-body h3 { font-family: Poppins, sans-serif; font-size: 1.25rem; font-weight: 500; letter-spacing: -0.03em; line-height: 1.4; }
.product-body p { font-size: 0.9rem; line-height: 1.8; }
.category-product-card .product-body { padding: 1.45rem; }
.category-product-tag,
.product-body .category-product-tag,
.category-product-card .product-body .category-product-tag {
  background: transparent;
  border: 0;
  border-radius: 0;
  color: var(--text-primary);
  text-align: left;
  padding: 0.1rem 0 0.75rem;
  font-family: Poppins, sans-serif;
  font-weight: 500;
  font-size: 1.05rem;
  letter-spacing: -0.025em;
  text-transform: none;
  line-height: 1.5;
}
.category-product-card .product-body > .d-grid { padding-top: 0.65rem; }
.product-detail-gallery-card { padding: 1.25rem; }
.product-detail-info-card { padding: 2rem; }
.product-detail-info-card .category-product-tag { font-size: 1.4rem; letter-spacing: -0.035em; padding: 0 0 1rem; }
.product-detail-description { line-height: 1.85; font-size: 0.94rem; }
.product-detail-specs { font-size: 0.9rem; line-height: 1.75; }
.product-detail-specs li::marker { color: var(--accent-purple); }
.product-price-wrap { padding-top: 1.5rem; border-top: 1px solid var(--border-soft); }
.product-price-current { font-family: Poppins, sans-serif; font-weight: 600; font-size: 2.1rem; letter-spacing: -0.045em; }
.product-price-installments { font-size: 0.9rem; }
.product-thumb { border-radius: 7px; }
.product-thumb.is-active { box-shadow: 0 0 0 3px var(--accent-purple-soft); }
.product-breadcrumb { font-size: 0.8rem; line-height: 1.8; }
.subcategory-chip { padding: 0.65rem 1.1rem; }
.subcategory-chip.is-active { background: var(--accent-purple); color: #fff; box-shadow: 0 5px 12px rgba(136, 0, 204, 0.14); }

.btn-primary-custom,
.btn-outline-custom {
  border-radius: 7px;
  padding: 0.95rem 1.4rem;
  font-size: 0.88rem;
  font-weight: 500;
  transition: transform 250ms var(--motion-ease), background-color 250ms ease, box-shadow 250ms ease, border-color 250ms ease;
}
.btn-primary-custom {
  background-color: var(--accent-purple);
  background-image: linear-gradient(110deg, rgba(255, 255, 255, 0.07), transparent 65%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 5px 14px rgba(136, 0, 204, 0.17);
}
.btn-outline-custom { border-color: rgba(136, 0, 204, 0.3); background: transparent; }
.btn-primary-custom:active { transform: translateY(0); box-shadow: inset 0 2px 5px rgba(35, 0, 63, 0.16); }
.hero-content .btn-primary-custom { padding: 1rem 1.8rem; }
.category-back-arrow { padding: 0.5rem 0.9rem; font-size: 0.78rem; }

.contact-box {
  border-radius: 12px;
  background: linear-gradient(125deg, #fcfaff, #f2e8f9);
  border-color: rgba(136, 0, 204, 0.2);
  padding: 3.5rem 2.5rem;
  box-shadow: var(--surface-shadow);
}
.contact-box h2 { font-family: Poppins, sans-serif; font-weight: 500; font-size: clamp(1.8rem, 3vw, 2.5rem); letter-spacing: -0.045em; }
.contact-box p { line-height: 1.8; }
.guarantee-card { background: #fff; border-color: var(--surface-border); border-radius: 12px; box-shadow: var(--surface-shadow); }
.guarantee-badge { box-shadow: 0 0 0 8px rgba(136, 0, 204, 0.04); }
.faq-box details { padding: 1.4rem 1.5rem; transition: background-color 250ms ease; }
.faq-box details[open] { background: #faf6fd; }
.site-footer { background: #f5f2f8; border-top: 1px solid rgba(136, 0, 204, 0.12); }
.footer-title { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; }
.footer-links-col a { font-size: 0.85rem; }
.footer-links-col a,
.social-link,
.text-link { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 5px; transition: color 250ms ease, text-decoration-color 250ms ease; }

.reveal { transition: opacity 700ms ease, transform 700ms var(--motion-ease), box-shadow 350ms ease, border-color 350ms ease, background-color 350ms ease; }
.row > .reveal:nth-child(3n + 2) { transition-delay: 80ms; }
.row > .reveal:nth-child(3n + 3) { transition-delay: 160ms; }

@media (hover: hover) and (pointer: fine) {
  .product-card:hover,
  .institutional-card:hover,
  .glass-card:hover,
  .feature-card:hover,
  .stat-card:hover,
  .process-card:hover { transform: translateY(-5px); background-color: #faf2ff; border-color: rgba(136, 0, 204, 0.62); box-shadow: var(--surface-shadow-hover); }
  .product-card:hover .product-image { filter: grayscale(0); }
  .product-card:hover .product-image--photo > img { transform: scale(1.04); }
  .collection-card:hover { filter: grayscale(0); transform: translateY(-5px); box-shadow: 0 10px 18px rgba(136, 0, 204, 0.2), 0 28px 48px rgba(136, 0, 204, 0.32); }
  .btn-primary-custom:hover { background-color: var(--accent-purple-dark); background-image: linear-gradient(110deg, rgba(255, 255, 255, 0.07), transparent 65%); box-shadow: 0 10px 22px rgba(136, 0, 204, 0.25); }
  .btn-outline-custom:hover,
  .product-thumb:hover { box-shadow: 0 4px 12px rgba(136, 0, 204, 0.1); }
  .nav-link:hover { box-shadow: inset 0 -1px 0 rgba(136, 0, 204, 0.5); }
  .footer-links-col a:hover,
  .social-link:hover,
  .text-link:hover { text-decoration-color: currentColor; }
}

a:focus-visible,
button:focus-visible,
summary:focus-visible,
.nav-link:focus-visible,
.site-header .navbar-toggler:focus-visible { outline: 2px solid var(--accent-purple); outline-offset: 4px; }
.card-link-overlay:focus-visible { outline-offset: -4px; border-radius: inherit; }
.product-card:focus-within { border-color: var(--accent-purple); }
.testimonials-section :focus-visible { outline-color: #d9a5f1; }

@media (min-width: 1200px) {
  .row > .col-xl-3:has(.institutional-card) { width: 33.333333%; }
}
@media (min-width: 1400px) { .container { max-width: 1240px; } }
@media (max-width: 991.98px) {
  .section-spacing { padding: 80px 0; }
  .home-signature-section { padding-top: 80px !important; }
  .collection-card { min-height: 390px; }
}
@media (max-width: 575.98px) {
  .site-footer .row { --bs-gutter-x: 1.5rem; }
  .site-header .navbar { min-height: 70px; }
  .section-spacing { padding: 64px 0; }
  .home-signature-section { padding-top: 64px !important; }
  .section-header h2 { font-size: 1.9rem; }
  .page-hero { padding: 60px 0 40px; }
  .section-kicker { font-size: 0.65rem; }
  .stat-card { padding: 1.15rem 0.8rem; }
  .stat-card h3 { font-size: clamp(1.55rem, 7vw, 2.25rem); }
  .stat-card p { font-size: 0.8rem; }
  .institutional-card { padding: 1.6rem; }
  .collection-card { min-height: 380px; }
  .collection-overlay { padding: 1.5rem; }
  .product-card:not(.category-product-card) .product-image { height: 240px; }
  .product-body,
  .category-product-card .product-body { padding: 1.35rem; }
  .product-detail-info-card { padding: 1.4rem; }
  .product-detail-gallery-card { padding: 0.85rem; }
  .contact-box { padding: 2rem 1.3rem; }
  .testimonials-carousel { padding-left: 14px; padding-right: 14px; }
  .testimonial-slide-card { padding: 1rem 1.5rem; }
  .testimonial-slide-quote { font-size: 1.08rem; }
  .testimonials-arrow { width: 32px; height: 32px; }
  .testimonials-arrow.carousel-control-prev { left: -2px; }
  .testimonials-arrow.carousel-control-next { right: -2px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  .reveal { opacity: 1; transform: none; }
  .product-card:hover,
  .product-card:hover .product-image--photo > img,
  .institutional-card:hover,
  .glass-card:hover,
  .feature-card:hover,
  .stat-card:hover,
  .process-card:hover,
  .collection-card:hover { transform: none; }
}
