/* Experiência pública: produto, atendimento, banner e movimento. */
.home-banner { margin: 28px 0 0; position: relative; border-radius: 24px; overflow: hidden; background: #442442; box-shadow: 0 18px 45px #44244218; }
.home-banner-track { aspect-ratio: 1920/500; position: relative; }
.home-banner-slide { display: block; position: absolute; inset: 0; }
.home-banner-slide[hidden] { display: none; }
.home-banner-slide img { display: block; width: 100%; height: 100%; object-fit: contain; }
.home-banner-slide.is-active { animation: bannerEnter .8s ease both; }
.home-banner-controls { display: flex; justify-content: end; align-items: center; gap: 12px; padding: 10px 18px; background: #37243f; color: #fff; font-size: 12px; }
.home-banner-controls button { border: 1px solid #ffffff30; border-radius: 9px; padding: 8px 13px; background: #ffffff0d; color: #fff; cursor: pointer; min-height: 36px; }
.home-banner-controls button:hover { background: #b51b79; }
.storefront .catalog-hero { padding: 36px 0; }
.storefront .catalog-hero h1 { font-size: clamp(30px,3.6vw,43px); }
.product-breadcrumb { display: flex; gap: 10px; flex-wrap: wrap; padding-top: 26px; color: #8b738f; font-size: 12px; }
.product-breadcrumb a { color: #702981; text-decoration: none; }
.storefront .produto-detalhe { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: 40px; align-items: start; margin: 0 0 48px; padding: 28px 0; }
.storefront .produto-detalhe .galeria-container { width: 100%; max-width: none; position: sticky; top: 24px; }
.storefront .produto-detalhe .slider-principal { background: radial-gradient(ellipse at bottom,#ecd2e8,#fff 70%); border: 1px solid #e8e0ec; box-shadow: 0 12px 40px #44244209; border-radius: 26px; }
.storefront .produto-detalhe .produto-img { padding: 20px; }
.storefront .produto-detalhe .info { padding: 30px; border-radius: 24px; box-shadow: 0 12px 36px #44244206; }
.storefront .produto-detalhe .info h1 { color: #442442; font-size: clamp(26px,3vw,38px); line-height: 1.15; margin: 18px 0; }
.availability-badge { display: inline-flex; padding: 6px 10px; background: #f4e6f3; color: #8a276f; font-size: 11px; border-radius: 30px; }
.product-booking { margin: 24px 0 16px; padding: 20px; border: 1px solid #ead7e8; border-radius: 16px; background: linear-gradient(120deg,#f9eef7,#fff); }
.product-booking p { font-weight: 650; color: #442442; margin-bottom: 12px; }
.product-booking .hero-button { width: 100%; text-align: center; padding: 15px; font-size: 15px; }
.product-booking small { display: block; color: #766c7e; font-size: 11px; margin-top: 12px; }
.product-promises { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px solid #e8e0ec; }
.product-promises span { background: #f8f5f9; color: #766c7e; padding: 7px 10px; border-radius: 8px; font-size: 11px; }
.product-description-title { font-size: 18px; color: #442442; }
.storefront .produto-detalhe .descricao { color: #766c7e; font-size: 14px; line-height: 1.9; overflow-wrap: anywhere; }
.storefront .descricao img { max-width: 100%; height: auto; }
.storefront .descricao ul, .storefront .descricao ol { padding-left: 20px; }
.storefront .miniatura { height: 80px; object-fit: contain; background: #fff; padding: 5px; border-radius: 12px; }
.storefront .btn-medidas { border: 1px solid #d5accf; background: #faf5fb; color: #702981; padding: 11px 16px; margin-top: 18px; border-radius: 10px; font-size: 12px; }
.storefront .share-container { padding-top: 18px; }
.storefront .modal-medidas-content { max-height: 85vh; overflow-y: auto; }
.related-products { margin: 32px 0; }
.related-products h2 { color: #442442; font-size: 26px; }
.storefront .contato-hero { position: relative; overflow: hidden; text-align: left; padding: 36px 20px; background: linear-gradient(125deg,#37243f,#702981); color: #eadfeb; border: 0; }
.storefront .contato-hero::after { content: '✦'; position: absolute; right: 5%; top: -30px; font-size: 220px; color: #ffffff0b; animation: starDrift 12s ease-in-out infinite; pointer-events: none; }
.storefront .contato-hero h1 { color: #fff; font-size: clamp(29px,4vw,45px); margin-bottom: 20px; }
.storefront .contato-hero .eyebrow { color: #f0add9; }
.storefront .contato-hero p { font-size: 14px; }
.storefront .contato-grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.3fr); gap: 32px; align-items: start; }
.storefront .contato-info > h2 { font-size: 20px; margin: 4px 0 20px; }
.storefront .info-card { padding: 22px; margin-bottom: 16px; transition: transform .3s,box-shadow .3s; }
.storefront .info-card:hover { transform: translateX(4px); box-shadow: 0 10px 25px #44244209; }
.storefront .info-card h3 { font-size: 15px; margin-bottom: 12px; }
.storefront .info-card p { font-size: 13px; line-height: 1.8; overflow-wrap: anywhere; }
.storefront .contato-form { padding: 32px; border-radius: 24px; }
.storefront .contato-form h2 { font-size: 26px; margin-bottom: 10px; }
.contact-intro { font-size: 13px; line-height: 1.8; color: #766c7e; margin-bottom: 28px; }
.storefront .form-contato { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 22px 18px; padding: 0; box-shadow: none; background: transparent; margin: 0; }
.storefront .form-contato .form-group { margin: 0; min-width: 0; }
.storefront .form-contato label { color: #534258; font-size: 12px; margin-bottom: 9px; }
.storefront .form-contato input, .storefront .form-contato select, .storefront .form-contato textarea { background: #fbf9fc; border: 1px solid #e0d5e6; border-radius: 11px; min-height: 50px; padding: 14px; color: #342a3b; font: inherit; font-size: 14px; transition: border-color .2s,box-shadow .2s,background .2s; }
.storefront .form-contato :is(input,select,textarea):focus { background: #fff; border-color: #b51b79; box-shadow: 0 0 0 4px #b51b7910; outline: none; }
.storefront .form-contato textarea { min-height: 165px; resize: vertical; }
.storefront .form-contato .form-wide, .storefront .form-contato .btn-enviar { grid-column: 1/-1; }
.storefront .form-contato .btn-enviar { padding: 16px; font-size: 14px; margin: 0; }
.storefront .form-info { margin-top: 20px; padding: 0; font-size: 12px; line-height: 1.8; color: #766c7e; }
.storefront .contato-faq { padding: 32px; }
.storefront .contato-faq .container { padding: 0; }
.storefront .faq-item { padding: 24px; margin: 16px 0; }
.storefront .faq-item h3 { font-size: 16px; margin-bottom: 12px; }
.storefront .faq-item p { font-size: 13px; line-height: 1.8; }
.visit-store { position: relative; display: grid; grid-template-columns: .65fr 1fr; gap: 32px; align-items: center; background: linear-gradient(120deg,#442442,#702981); padding: 44px; margin: 56px 0 10px; border-radius: 26px; color: #fff; overflow: hidden; }
.visit-art { height: 210px; display: grid; place-items: center; position: relative; }
.visit-orbit { position: absolute; width: 210px; height: 210px; border: 1px dashed #ffffff35; border-radius: 50%; animation: orbit 35s linear infinite; }
.visit-orbit::before { content: ''; position: absolute; top: -5px; left: 50%; width: 10px; height: 10px; background: #75d5ef; border-radius: 50%; box-shadow: 0 0 28px #75d5ef; }
.visit-pin { display: grid; place-items: center; width: 108px; height: 108px; background: linear-gradient(140deg,#f7dbef,#fff); color: #702981; border-radius: 32px; font-size: 62px; box-shadow: 0 20px 50px #1b102d40; animation: pinFloat 5s ease-in-out infinite; }
.visit-tag { position: absolute; bottom: 0; background: #ffffff15; border: 1px solid #ffffff20; border-radius: 20px; padding: 5px 15px; font-size: 11px; }
.visit-copy .eyebrow { color: #f0add9; }
.visit-copy h2 { color: #fff; font-size: clamp(24px,3vw,34px); line-height: 1.2; margin-bottom: 16px; }
.visit-copy > p:not(.eyebrow) { color: #eadfeb; font-size: 13px; }
.visit-actions { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; margin-top: 24px; }
.visit-actions a { color: #fff; font-size: 12px; text-decoration: none; }
.visit-actions .waze-route { background: #7ae0fa; color: #123e4e; border-radius: 12px; padding: 14px 18px; font-size: 13px; font-weight: 700; box-shadow: 0 8px 24px #132c4120; }
.waze-route i { font-size: 21px; vertical-align: middle; margin-right: 5px; }
.storefront :is(.hero-button,.btn-enviar,.waze-route,.btn-whatsapp) { transition: transform .25s,box-shadow .25s,filter .25s; }
.storefront :is(.hero-button,.btn-enviar,.waze-route,.btn-whatsapp):hover { transform: translateY(-3px); box-shadow: 0 10px 22px #70298120; filter: brightness(1.06); }
.storefront .card-produto { transition: transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s; }
.storefront .card-produto:hover { transform: translateY(-7px); box-shadow: 0 18px 35px #44244216; }
.motion-enter { animation: revealUp .7s cubic-bezier(.2,.8,.2,1) both; animation-delay: var(--motion-delay,0ms); }
@keyframes revealUp { from { opacity: .2; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
@keyframes bannerEnter { from { opacity: .1; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }
@keyframes starDrift { 50% { transform: rotate(18deg) translateY(20px); } }
@keyframes pinFloat { 50% { transform: translateY(-12px) rotate(-5deg); } }
@keyframes orbit { to { transform: rotate(360deg); } }
@media(max-width:768px) {
 .home-banner { border-radius: 16px; margin-top: 20px; }
 .home-banner-controls { padding: 8px 12px; }
 .storefront .produto-detalhe { grid-template-columns: minmax(0,1fr); gap: 24px; }
 .storefront .produto-detalhe .galeria-container { position: static; }
 .storefront .produto-detalhe .info { padding: 22px; }
 .storefront .contato-grid { grid-template-columns: minmax(0,1fr); }
 .storefront .contato-form { grid-row: 1; padding: 24px; }
 .storefront .form-contato { grid-template-columns: minmax(0,1fr); gap: 20px; }
 .storefront .form-contato :is(input,select,textarea) { font-size: 16px; }
 .storefront .contato-hero { padding: 24px 0; }
 .storefront .contato-faq { padding: 20px; }
 .visit-store { grid-template-columns: 1fr; padding: 28px; gap: 24px; }
 .visit-art { height: 160px; }
 .visit-orbit { width: 150px; height: 150px; }
 .visit-pin { width: 85px; height: 85px; font-size: 46px; }
 .visit-tag { bottom: -8px; }
 .visit-actions { gap: 16px; }
}
@media(prefers-reduced-motion:reduce) { .storefront *, .storefront *::before, .storefront *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }