/* The existing ambient film becomes the stage, with an optional clear view. */
.hero-film { transition: background .8s; }
.hero-film video { transform: none; object-position: center; }
.hero-shade { transition: opacity 1s ease; }
.hero-copy { transition: opacity .75s ease, visibility .75s; }
.hero-copy h1 { text-shadow: 0 4px 35px #0b181924; }
.hero-copy p { text-shadow: 0 2px 14px #0b181950; }
.hero-copy h1 { max-width: 11.8em; }
.hero-product { transition: opacity .9s ease, visibility .9s; }
.hero-topline { transition: opacity .7s ease, visibility .7s; text-shadow: 0 2px 12px #10272566; }
.hero-annotation, .hero-model-index, .hero-orbit { display: none; }
.hero .product-invite { padding: 16px 18px; border: 1px solid #e7efe43b; border-radius: 3px; background: #17352c55; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.hero .product-invite small { font-size: 8px; letter-spacing: .14em; }
.hero .product-invite strong { font-size: 17px; }
.hero .invite-icon { width: 33px; height: 33px; }
.hero .invite-icon svg { width: 17px; }
.hero .product-invite > svg { width: 16px; }
.hero-bottom { color: #f1f5eb; gap: 20px; }
.hero .scroll-cue, .hero #motion-toggle { text-shadow: 0 2px 12px #071710; }
.scene-toggle { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 4px 16px 4px 5px; border-radius: 50px; border: 1px solid #e6eee451; background: #11272145; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: #f7faef; transition: background .3s, border-color .3s; }
.scene-toggle:hover { background: #2c514479; border-color: #d9ead0a8; }
.scene-toggle-icon { border: 1px solid #e7efd58c; border-radius: 50%; width: 36px; height: 36px; display: grid; place-items: center; flex-shrink: 0; }
.scene-toggle-icon svg { width: 13px; height: 13px; transition: transform .5s; }
.scene-toggle-label { font-size: 12px; white-space: nowrap; }
.scene-toggle-note { font-size: 7px; letter-spacing: .12em; border-left: 1px solid #e6eee43b; padding-left: 12px; color: #d6e3d3; }
.scene-toggle[aria-pressed=true] .scene-toggle-icon svg { transform: rotate(45deg); }
.film-caption { position: absolute; left: 7.2%; bottom: 18%; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity 1s .2s, transform 1s .2s, visibility 1s; pointer-events: none; }
.film-caption > span { font-size: 9px; letter-spacing: .22em; color: #dce8d7; }
.film-caption p { font-size: clamp(27px, 3vw, 46px); line-height: 1.1; letter-spacing: -.045em; font-weight: 350; margin-top: 16px; color: #fff; text-shadow: 0 2px 22px #06160c75; }
.hero.is-film-focused .hero-copy, .hero.is-film-focused .hero-product, .hero.is-film-focused .hero-topline { opacity: 0 !important; visibility: hidden; pointer-events: none; }
.hero.is-film-focused .hero-film { transform: none !important; }
.hero.is-film-focused .hero-shade { opacity: .2; }
.hero.is-film-focused .film-caption { opacity: 1; visibility: visible; transform: none; }
.hero.is-film-focused .scene-toggle { background: #143328ab; border-color: #d9ead08c; }
@media (min-width: 761px) {
  .hero h1 { font-size: clamp(48px, 4.8vw, 82px); }
  .hero-product { left: 62%; width: 34%; top: 25%; height: 64%; }
  .hero-object { left: 22%; width: 52%; height: 78%; }
  .hero .product-invite { width: 88%; left: 6%; bottom: 3%; }
}
@media (min-width: 1600px) {
  .hero-product { left: 64%; width: 30%; top: 25%; height: 65%; }
}
@media (max-width: 1100px) and (min-width: 761px) {
  .hero h1 { font-size: 4.8vw; }
  .hero-product { left: 59%; width: 38%; }
  .hero .product-invite strong { font-size: 15px; }
  .scene-toggle-note { display: none; }
}
@media (max-width: 760px) {
  .hero-film video { object-position: 55% center; }
  .hero-product { top: 465px; left: 14%; width: 74%; height: 310px; }
  .hero-object { height: 88%; width: 44%; left: 30%; }
  .hero .product-invite { bottom: -38px; left: 0; width: 100%; padding: 12px 13px; gap: 10px; }
  .hero .product-invite strong { font-size: 15px; }
  .hero .product-invite small { font-size: 7px; }
  .hero-bottom { left: 7%; right: 7%; bottom: 18px; gap: 12px; }
  .hero-bottom .scroll-cue { display: none; }
  .scene-toggle { padding-right: 14px; gap: 10px; }
  .scene-toggle-label { font-size: 11px; }
  .scene-toggle-note { display: none; }
  .hero.is-film-focused .hero-film { background: #233a32; height: 100svh; max-height: 100%; bottom: auto; }
  .hero.is-film-focused .hero-film video { object-fit: contain; object-position: center 40%; }
  .hero.is-film-focused .hero-shade { opacity: 0; }
  .film-caption { left: 7%; right: 7%; bottom: 22%; }
  .film-caption p { font-size: 30px; }
  .hero.is-film-focused .hero-bottom { top: calc(min(100svh, 100%) - 72px); bottom: auto; }
  .hero.is-film-focused .film-caption { top: calc(min(100svh, 100%) - 215px); bottom: auto; }
}
@media (max-width: 370px) {
  .hero-product { top: 435px; height: 300px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-copy, .hero-product, .hero-topline, .hero-shade, .film-caption { transition: none; }
}

/* Endereço e contato da Vicom Group. */
.site-footer { align-items: flex-start; gap: clamp(25px, 5vw, 90px); padding-top: 55px; padding-bottom: 55px; }
.footer-address { font-style: normal; font-size: 13px; line-height: 1.85; color: #edf3e7; }
.footer-address strong { display: block; font-weight: 500; color: #fff; }
.site-footer .footer-label { display: block; margin-bottom: 14px; font-size: 9px; letter-spacing: .16em; color: #d1e3c8; }
.footer-map { display: flex; width: fit-content; align-items: center; gap: 14px; margin-top: 12px; padding-bottom: 3px; border-bottom: 1px solid #d5e5c977; }
.footer-map svg { width: 13px; height: 13px; }
.site-footer .footer-contact { flex: 1; max-width: 340px; }
.footer-contact > a { color: #fff; font-size: 19px; }
.site-footer .footer-contact > p { font-size: 13px; line-height: 1.7; margin-top: 14px; }
.site-footer .footer-contact .footer-note { font-size: 10px; opacity: .8; margin-top: 20px; }
.site-footer .back-top { flex-shrink: 0; margin-left: auto; }
@media (max-width: 760px) {
  .hero-scroll .hero .hero-copy h1 { font-size: clamp(30px, 9.4vw, 60px); }
  .site-footer { display: grid; grid-template-columns: 1fr auto; gap: 35px 20px; padding: 40px 7%; }
  .site-footer .brand { grid-column: 1; grid-row: 1; }
  .site-footer .back-top { grid-column: 2; grid-row: 1; }
  .footer-address, .site-footer .footer-contact { grid-column: 1 / -1; }
}

/* Unidades da Vicom Group: endereços independentes, próximos ao contato. */
.site-footer { display: grid; grid-template-columns: minmax(85px, .45fr) minmax(0, 2.4fr) minmax(175px, .9fr) auto; align-items: start; gap: 32px clamp(25px, 3vw, 50px); }
.site-footer > .footer-offices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; width: 100%; min-width: 0; max-width: none; }
.footer-address > span { display: block; }
.footer-address { min-width: 0; font-size: 12px; line-height: 1.8; }
.footer-address .footer-label { margin-bottom: 8px; text-transform: uppercase; }
.site-footer .footer-contact { min-width: 0; max-width: none; }
.site-footer .back-top { margin-left: 0; }
@media (max-width: 1100px) {
  .site-footer { grid-template-columns: minmax(0, 1fr) auto; gap: 32px 25px; }
  .site-footer > .brand { grid-column: 1; grid-row: 1; }
  .site-footer > .back-top { grid-column: 2; grid-row: 1; }
  .site-footer > .footer-offices { grid-column: 1 / -1; grid-row: 2; }
  .site-footer > .footer-contact { grid-column: 1 / -1; grid-row: 3; max-width: 340px; }
}
@media (max-width: 600px) {
  .site-footer > .footer-offices { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .footer-address + .footer-address { border-top: 1px solid #d5e5c933; padding-top: 24px; }
}
