/* Ajustes de independência, acessibilidade e telas pequenas. */
html { scroll-behavior: smooth; scroll-padding-top: 68px; }
.reveal:not(.reveal-ready) { opacity: 1; transform: none; }
header nav .nav-active::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: #f5a623; }
button:focus-visible, a:focus-visible, [tabindex]:focus-visible { outline: 3px solid #0071e3; outline-offset: 4px; }
@media (max-width: 480px) {
  #cores .inline-flex { flex-wrap: wrap; justify-content: center; border-radius: 22px; }
  #cores .inline-flex button { padding: 8px 10px; font-size: 12px; }
  footer .flex.items-center.gap-5 { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
.snap-x::after { content: ''; flex: 0 0 var(--carousel-tail, 0px); }
/* Primeira dobra: composição das fotografias originais, sem recorte do produto. */
.product-hero { background: #f5f3f0; overflow: hidden; }
.hero-layout { max-width: 1320px; margin: auto; padding: 66px 40px 58px; display: grid; grid-template-columns: .85fr 1.35fr; align-items: center; gap: 42px; min-height: min(730px, calc(100svh - 52px)); }
.hero-eyebrow { font-size: 11px; font-weight: 600; letter-spacing: .17em; color: #72645a; margin: 0 0 24px; }
.hero-copy h1 { font-size: clamp(44px, 4.7vw, 68px); line-height: 1.02; letter-spacing: -.055em; font-weight: 650; max-width: 460px; color: #211c19; margin: 0; }
.hero-description { margin-top: 24px; font-size: 17px; line-height: 1.6; color: #746b65; }
.hero-price { margin-top: 30px; font-size: 15px; color: #493c34; }
.hero-price strong { font-weight: 650; }
.hero-price span { display: block; font-size: 13px; margin-top: 3px; color: #746b65; }
.hero-actions { margin-top: 25px; display: flex; align-items: center; flex-wrap: wrap; gap: 20px; }
.hero-actions .btn-primary { background: #251e1b; color: white; }
.hero-more { font-size: 13px; color: #493c34; text-decoration: none; }
.hero-more span { margin-left: 5px; }
.hero-montage { position: relative; display: grid; grid-template-columns: 1fr 1.22fr 1fr; align-items: center; gap: 12px; padding: 42px 0 50px; isolation: isolate; }
.hero-montage::before { content: ''; position: absolute; inset: 12% -12% 0; background: radial-gradient(ellipse, #e4d9cf 0%, transparent 68%); z-index: -1; }
.hero-photo { margin: 0; overflow: hidden; border-radius: 12px; box-shadow: 0 18px 35px -22px #40261980; }
.hero-photo img { display: block; width: 100%; height: auto; }
.hero-photo-black { transform: translateY(-34px); }
.hero-photo-wine { transform: translateY(22px); }
.hero-photo-sand { transform: translateY(-18px); }
.hero-montage-caption { position: absolute; bottom: -5px; width: 100%; text-align: center; color: #8c7c71; font-size: 9px; letter-spacing: .14em; }
@media (min-width: 1600px) { .hero-layout { min-height: 720px; } }
@media (max-width: 900px) {
  .hero-layout { grid-template-columns: 1fr; padding: 38px 24px 32px; gap: 14px; min-height: auto; }
  .hero-copy { text-align: center; }
  .hero-eyebrow { margin-bottom: 16px; font-size: 10px; }
  .hero-copy h1 { font-size: clamp(40px, 7.5vw, 60px); max-width: 620px; margin: auto; }
  .hero-description { margin-top: 16px; font-size: 15px; }
  .hero-price { margin-top: 16px; }
  .hero-price span { display: inline; margin-left: 5px; }
  .hero-actions { justify-content: center; margin-top: 20px; }
  .hero-montage { max-width: 650px; width: 100%; margin: 0 auto; gap: 9px; padding: 34px 0 38px; }
  .hero-photo-black { transform: translateY(-12px); }
  .hero-photo-wine { transform: translateY(8px); }
  .hero-photo-sand { transform: translateY(-7px); }
}
@media (max-width: 480px) {
  .hero-layout { padding: 32px 18px 28px; }
  .hero-copy h1 { font-size: 44px; max-width: 350px; }
  .hero-description { font-size: 14px; }
  .hero-price { font-size: 13px; }
  .hero-price span { font-size: 12px; }
  .hero-actions { gap: 16px; }
  .hero-actions .btn-pill { padding: 11px 18px; font-size: 13px; }
  .hero-more { font-size: 12px; }
  .hero-montage { gap: 7px; }
  .hero-photo { border-radius: 8px; }
  .hero-montage-caption { font-size: 7px; bottom: 0; letter-spacing: .12em; }
}
/* Mantém o produto completo e a marca visível nos cards dos destaques. */
.snap-x article { aspect-ratio: auto; }
.snap-x article > div:first-child { flex: none; aspect-ratio: 4 / 5; }
.snap-x article > div:first-child img { object-fit: contain; }
