/* Detalhes de produto — mantém os tokens e a linguagem editorial do site. */
.product-detail img[hidden], .product-lightbox img[hidden] { display:none; }
.product-detail :is(a,button,input,textarea):focus-visible,.product-lightbox button:focus-visible { outline:3px solid var(--cyan); outline-offset:4px; }
.product-overview { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(1.75rem,4vw,3.5rem); padding-top:2.5rem; padding-bottom:3rem; align-items:start; }
.product-gallery { min-width:0; }
.product-main-image { display:flex; position:relative; justify-content:center; align-items:center; aspect-ratio:4/3; max-height:460px; border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; background:#fff; cursor:zoom-in; }
.product-main-image>img { display:block; width:100%; height:100%; object-fit:cover; padding:0; transition:transform .35s ease; }
.product-main-image:hover>img { transform:scale(1.025); }
.product-zoom-hint { position:absolute; bottom:1rem; right:1rem; display:flex; gap:.4rem; align-items:center; padding:.6rem .85rem; background:var(--white); border:1px solid var(--border); border-radius:2rem; color:var(--navy); font-size:.65rem; }
.product-thumbnails { display:flex; overflow-x:auto; gap:.7rem; padding:.9rem .2rem .3rem; }
.product-thumbnail { display:block; flex:0 0 68px; height:56px; border:1px solid var(--border); border-radius:.65rem; padding:0; overflow:hidden; background:var(--white); transition:border-color .2s; }
.product-thumbnail img { display:block; width:100%; height:100%; object-fit:cover; }
.product-thumbnail.is-selected { border:2px solid var(--navy); }
.product-thumbnail:hover { border-color:var(--salmon); }
.product-image-unavailable { display:grid; place-items:center; min-height:230px; padding:2rem; border-radius:var(--radius-lg); background:var(--secondary); color:var(--muted); font-size:.8rem; }
.product-summary h1 { font-size:clamp(1.6rem,2.3vw,2.2rem); font-weight:400; color:var(--navy-deep); line-height:1.2; letter-spacing:-.02em; margin:0 0 1.25rem; overflow-wrap:anywhere; }
.product-intro { color:var(--muted); font-size:.95rem; line-height:1.7; margin:0; }
.product-facts { margin:0 0 1.25rem; border-top:1px solid var(--border); }
.product-facts>div { display:grid; grid-template-columns:140px minmax(0,1fr); gap:1rem; padding:.7rem 0; border-bottom:1px solid var(--border); font-size:.8rem; }
.product-facts dt { color:var(--muted); }
.product-facts dd { margin:0; color:var(--navy); font-weight:500; overflow-wrap:anywhere; }
.product-quick-highlights { list-style:none; padding:0; margin:1rem 0 0; display:grid; gap:.5rem; font-size:.85rem; color:var(--text); }
.product-quick-highlights li { display:flex; gap:.6rem; align-items:center; }
.product-check { color:var(--navy); background:rgba(8,49,119,.08); border-radius:50%; width:22px; height:22px; flex-shrink:0; display:grid; place-items:center; }
.product-quote-callout { padding:1.15rem 1.25rem; background:var(--secondary); border-radius:var(--radius-md); margin-top:1.25rem; border-left:3px solid var(--salmon); }
.product-quote-callout .eyebrow { color:var(--navy); margin-top:0; }
.product-quote-callout h2 { font-size:1.05rem; color:var(--navy-deep); margin:.15rem 0 .85rem; line-height:1.35; }
.product-quote-button { width:100%; justify-content:center; gap:.7rem; font-size:.72rem; }
/* Página do produto com um só fundo: descrição e informações separadas por divisória só na largura do conteúdo. */
.product-description-section { background:transparent; border:0; }
.product-description-layout { padding-top:0; padding-bottom:2.5rem; background:linear-gradient(var(--border),var(--border)) top left / 100% 1px no-repeat content-box; }
.product-description-layout>div:first-child { padding-top:2.5rem; margin-bottom:1.25rem; }
.product-description-layout .product-rich-content { max-width:880px; }
.product-detail section h2 { font-size:clamp(1.35rem,1.8vw,1.65rem); color:var(--navy-deep); line-height:1.25; letter-spacing:-.015em; }
.product-detail .product-quote-callout h2 { font-size:1.05rem; }
.product-rich-content { font-size:.9rem; line-height:1.75; color:var(--muted); overflow-wrap:anywhere; overflow-x:auto; }
.product-rich-content>:first-child { margin-top:0; }
.product-rich-content p { margin:0 0 1rem; }
.product-rich-content :is(h2,h3,h4) { color:var(--navy); font-weight:500; margin:1.4rem 0 .6rem; }
.product-detail .product-rich-content h2 { font-size:1.2rem; }
.product-rich-content h3 { font-size:1.08rem; }
.product-rich-content h4 { font-size:1rem; }
.product-rich-content hr { border:0; border-top:1px solid var(--border); margin:1.5rem 0; }
.product-rich-content li { margin-bottom:.4rem; }
.product-rich-content table { width:100%; border-collapse:collapse; }
.product-rich-content :is(td,th) { padding:.55rem .7rem; border:1px solid var(--border); text-align:left; }
.product-rich-content blockquote { border-left:3px solid var(--salmon); padding-left:1.2rem; margin-left:0; }
.product-related-section { padding:2.5rem 0 3rem; background:var(--secondary); border-top:1px solid var(--border); }
.product-related-head { display:flex; justify-content:space-between; align-items:end; gap:1.5rem; margin-bottom:1.25rem; }
.product-back-link { color:var(--navy); font-size:.75rem; white-space:nowrap; }
.product-related-grid { margin-top:0; grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:1100px) { .product-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.product-quote-panel { display:grid; grid-template-columns:.75fr 1.25fr; max-width:900px; margin:0 auto 4rem; border:1px solid var(--border); border-radius:var(--radius-xl); overflow:hidden; background:var(--white); text-align:left; }
.quote-brand { padding:2rem; display:flex; flex-direction:column; justify-content:space-between; gap:2rem; color:var(--white); }
.quote-brand>img { width:150px; height:56px; object-fit:contain; object-position:left; }
.product-detail .quote-brand h2,.quote-brand h2 { color:var(--white); font-size:1.6rem; line-height:1.12; letter-spacing:-.035em; }
.quote-brand p:not(.eyebrow) { color:#d7e1f2; font-size:.8rem; line-height:1.8; }
.quote-product-name { display:block; border-top:1px solid rgba(255,255,255,.2); margin-top:1.5rem; padding-top:1.2rem; color:var(--cyan); font-size:.8rem; overflow-wrap:anywhere; }
.quote-form-wrap { padding:2rem; position:relative; min-width:0; }
.quote-form-wrap h3 { color:var(--navy); font-size:1.3rem; padding-right:1.5rem; }
.quote-form-lead { color:var(--muted); font-size:.76rem; margin-bottom:1.5rem; }
.quote-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.quote-field { margin-bottom:1rem; min-width:0; }
.quote-field label { display:block; color:var(--text); font-size:.7rem; font-weight:500; margin-bottom:.4rem; }
.quote-field :is(input,textarea) { width:100%; border:1px solid #ccd6e4; border-radius:.65rem; padding:.8rem .85rem; background:var(--white); color:var(--text); font-size:.8rem; font-family:inherit; }
.quote-field textarea { resize:vertical; }
.quote-field input[readonly] { background:var(--secondary); color:var(--muted); }
.quote-optional { color:var(--muted); font-weight:400; }
#quote-submit { width:100%; justify-content:center; margin-top:.5rem; gap:1rem; }
#quote-submit:disabled { cursor:wait; opacity:.65; }
.quote-privacy { font-size:.64rem; color:var(--muted); line-height:1.6; margin-bottom:0; }
.quote-feedback { display:none; font-size:.78rem; line-height:1.7; background:var(--secondary); color:var(--navy); padding:1rem; border:1px solid var(--border); border-left:3px solid var(--cyan); border-radius:.6rem; margin-bottom:1rem; }
.quote-feedback.is-visible { display:block; }
.quote-feedback.is-error { border-left-color:#c13d3d; color:#8c2525; }
.quote-feedback.is-warning { border-left-color:#c58c20; }
.quote-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.product-quote-dialog { padding:0; border:0; border-radius:var(--radius-xl); width:min(900px,calc(100% - 2rem)); max-width:900px; max-height:calc(100dvh - 2rem); background:var(--white); box-shadow:0 30px 100px #041c4770; }
.product-quote-dialog .product-quote-panel { margin:0; border:0; border-radius:0; }
.product-quote-dialog::backdrop,.product-lightbox::backdrop,.quote-dialog-backdrop { background:rgba(4,18,44,.8); backdrop-filter:blur(5px); }
/* Diálogo não modal (usado com reCAPTCHA): mesmo visual, centralizado na tela. */
.product-quote-dialog.is-nonmodal { position:fixed; inset:0; margin:auto; height:fit-content; overflow:auto; z-index:1001; }
.quote-dialog-backdrop { position:fixed; inset:0; z-index:1000; }
.quote-dialog-backdrop[hidden] { display:none; }
.product-dialog-close { position:absolute; right:1rem; top:1rem; display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--border); background:var(--white); color:var(--navy); border-radius:50%; font-size:1.5rem; z-index:2; }
.product-dialog-close[hidden] { display:none; }
.product-lightbox { padding:3rem; border:0; border-radius:var(--radius-lg); background:var(--white); width:min(1200px,calc(100% - 2rem)); max-width:1200px; max-height:95dvh; }
.product-lightbox[open] { display:flex; align-items:center; justify-content:center; gap:1rem; }
.product-lightbox figure { margin:0; min-width:0; width:100%; text-align:center; }
.product-lightbox figure img { width:100%; height:70dvh; object-fit:contain; }
.product-lightbox figcaption { color:var(--muted); font-size:.75rem; margin-top:.8rem; }
.lightbox-nav { flex-shrink:0; width:36px; height:44px; border:1px solid var(--border); border-radius:.6rem; background:var(--secondary); color:var(--navy); font-size:1.8rem; }
.lightbox-nav[hidden] { display:none; }
.product-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; }
@media(max-width:900px) {
  .product-overview { gap:2rem; }
  .quote-brand,.quote-form-wrap { padding:1.75rem; }
}
@media(max-width:700px) {
  .product-overview { grid-template-columns:1fr; padding-top:1.25rem; padding-bottom:2rem; }
  .product-description-layout { padding-bottom:2rem; }
  .product-description-layout>div:first-child { padding-top:2rem; }
  .product-main-image { aspect-ratio:4/3; max-height:none; border-radius:var(--radius-md); }
  .product-related-grid { grid-template-columns:1fr; }
  .product-related-section { padding-top:2rem; padding-bottom:2rem; }
  .product-related-head { align-items:start; flex-direction:column; }
  .product-quote-panel { grid-template-columns:1fr; margin:0 1rem 2rem; border-radius:var(--radius-lg); }
  .quote-brand { padding:1.6rem; gap:1rem; }
  .quote-brand>img { width:130px; height:44px; }
  .quote-brand h2,.product-detail .quote-brand h2 { font-size:1.35rem; }
  .quote-product-name { margin-top:.8rem; padding-top:.8rem; }
  .quote-form-wrap { padding:1.6rem; }
  .product-quote-dialog .quote-brand { padding-right:3rem; }
  .product-quote-dialog .quote-form-wrap { position:static; }
  .product-lightbox { padding:3.5rem .65rem 1rem; }
  .product-lightbox[open] { gap:.25rem; }
  .product-lightbox figure img { height:60dvh; }
  .lightbox-nav { width:28px; }
}
@media(max-width:420px) { .quote-form-grid { grid-template-columns:1fr; gap:0; } .product-facts>div { grid-template-columns:110px minmax(0,1fr); gap:.5rem; } }
@media(prefers-reduced-motion:reduce) { .product-main-image>img,.product-thumbnail { transition:none; } .product-detail { scroll-behavior:auto; } }
