/* Author: Marcílio Souza. Banner fotografico e navegacao com submenus. */
header #menu { justify-content:center; gap:6px; }
header #menu > a, header #menu summary { min-height:44px; padding:10px 13px; font:14px/1.4 Arial,sans-serif; }
header #menu summary { display:flex; align-items:center; gap:8px; cursor:pointer; list-style:none; color:#fff; border-radius:4px; }
header #menu summary::-webkit-details-marker { display:none; }
header #menu summary > svg:last-child { width:13px; height:13px; transition:transform .2s; }
header #menu details[open] > summary > svg:last-child { transform:rotate(180deg); }
header #menu .nav-dropdown { position:relative; min-width:0; }
header #menu .nav-dropdown[open] > summary, header #menu .has-active-link > summary { background:#e1c28a; color:#183a30; }
header #menu summary:hover { background:#265247; }
header #menu summary:focus-visible { outline:2px solid #f0d7aa; outline-offset:2px; }
header #menu .nav-client > summary { border:1px solid #b29255; }
header #menu .nav-submenu { position:absolute; top:calc(100% + 8px); left:0; min-width:260px; padding:8px; background:#fff; color:#173f36; border:1px solid #d0dcd5; border-top:3px solid #b29255; border-radius:4px; box-shadow:0 14px 30px #102f2926; z-index:50; }
header #menu .nav-client .nav-submenu { left:auto; right:0; }
header #menu .nav-submenu a, header #menu .nav-submenu button { display:flex; align-items:center; gap:10px; width:100%; padding:12px; margin:0; border:0; background:transparent; color:#173f36; text-align:left; font:14px/1.4 Arial,sans-serif; border-radius:3px; white-space:normal; }
header #menu .nav-submenu a:hover, header #menu .nav-submenu button:hover { background:#edf3ef; box-shadow:none; }
header #menu .nav-submenu a.is-active { background:#edf3ef; box-shadow:none; }
.header-navigation { position:relative; }
header #menu .nav-mega { position:static; }
header #menu .mega-panel { left:50%; right:auto; top:100%; transform:translateX(-50%); width:calc(100% - 64px); max-width:1180px; min-width:0; padding:26px 24px; border-radius:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px; }
header #menu .mega-column { min-width:0; }
header #menu .mega-column h2 { margin:0 0 8px; padding:0 0 12px; border-bottom:1px solid #d7e0dc; color:#173f36; font:700 13px/1.4 Arial,sans-serif; text-transform:uppercase; }
header #menu .mega-column a, header #menu .mega-column button { padding:10px 0; min-height:40px; gap:7px; font-size:13px; align-items:flex-start; border-radius:0; }
header #menu .mega-column svg { width:14px; height:14px; color:#ad8844; margin-top:2px; }
header #menu .mega-trigger { display:flex; align-items:center; gap:8px; min-height:44px; padding:10px 13px; border:0; border-radius:4px; background:transparent; color:white; font:14px/1.4 Arial,sans-serif; white-space:nowrap; }
header #menu .mega-trigger svg:last-child { width:13px; height:13px; }
header #menu .mega-trigger:hover { background:#265247; }
header #menu .mega-client-trigger { border:1px solid #b29255; }
header #menu .mega-trigger:focus-visible { outline:2px solid #f0d7aa; outline-offset:2px; }
/* Banner MSOUZA: area principal do carrossel juridico. */
.hero.legal-carousel { position:relative; min-height:520px; height:520px; align-items:center; overflow:hidden; background:#173f36; }

/* ALTERACAO 2026-10-11 - Linha divisoria do banner MSOUZA:
   aparece no topo do banner, depois da Hero Noemia, e na base antes da secao seguinte. */
.hero.legal-carousel { border-top:1px solid #4fd3df; border-bottom:1px solid #4fd3df; box-shadow:inset 0 1px 0 rgba(240,215,170,.5),inset 0 -1px 0 rgba(240,215,170,.5),0 -1px 8px rgba(79,211,223,.22),0 1px 8px rgba(79,211,223,.22); }
.hero.legal-carousel:after { background:rgba(8,25,21,.42); }
.banner-images { position:absolute; inset:0; z-index:-2; }
.banner-image { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center 55%; opacity:0; transition:opacity .7s; }
.banner-image.is-current { opacity:1; }
.legal-carousel .hero-content { max-width:1180px; margin:auto; padding:38px 40px 96px; z-index:1; }
.legal-carousel h1 { max-width:670px; margin-bottom:20px; font-size:52px; }
.legal-carousel .banner-topic { display:block; margin-bottom:20px; font:600 13px/1.5 Arial,sans-serif; color:#f0d7aa; }
.legal-carousel p { max-width:540px; font-size:20px; min-height:62px; margin-bottom:25px; }
.banner-controls { position:absolute; bottom:26px; left:50%; transform:translateX(-50%); width:calc(100% - 80px); max-width:1100px; display:flex; align-items:center; gap:10px; z-index:2; }
.banner-pagination { display:flex; align-items:center; gap:5px; margin-right:auto; }
.banner-dot { display:grid; place-items:center; width:32px; height:44px; border:0; background:transparent; padding:0; }
.banner-dot:after { content:''; width:8px; height:8px; border-radius:50%; border:1px solid #fff; background:transparent; transition:width .2s; }
.banner-dot.is-current:after { width:24px; border-radius:4px; background:#e1c28a; border-color:#e1c28a; }
.banner-counter { font:12px/1 Arial,sans-serif; color:#fff; margin-right:8px; white-space:nowrap; }
.banner-control { display:grid; place-items:center; flex-shrink:0; width:44px; height:44px; border:1px solid #ffffff80; background:#173f3680; border-radius:4px; color:white; padding:0; }
.banner-control:hover { background:#e1c28a; color:#173f36; border-color:#e1c28a; }
.banner-control svg { width:19px; height:19px; }
.banner-control span { display:grid; place-items:center; }
.banner-control [hidden] { display:none; }
@media(max-width:1100px) {
  header #menu.open { display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch; gap:4px; max-height:45vh; overflow-anchor:none; }
  header #menu > a, header #menu > .nav-dropdown { flex-shrink:0; }
  header #menu > a, header #menu summary { min-height:44px; padding:12px; }
  header #menu .nav-submenu { position:static; min-width:0; margin:5px 0; box-shadow:none; }
  header #menu .mega-panel { position:static; transform:none; width:100%; max-width:none; padding:20px; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
  header #menu > .mega-trigger { flex-shrink:0; width:100%; text-align:left; }
  .legal-carousel h1 { font-size:44px; }
}
@media(max-width:760px) {
  .hero.legal-carousel { min-height:460px; height:460px; }
  .legal-carousel .hero-content { padding:30px 22px 100px; }
  .legal-carousel h1 { font-size:36px; max-width:360px; }
  .legal-carousel p { font-size:17px; min-height:80px; max-width:330px; }
  .legal-carousel .banner-topic { font-size:12px; margin-bottom:16px; }
  .banner-image { object-position:65% center; }
  .banner-controls { width:calc(100% - 44px); bottom:20px; gap:6px; }
  .banner-counter { margin-right:2px; font-size:11px; }
  .banner-dot { width:25px; }
}
@media(max-width:360px) {
  header #menu .mega-panel { grid-template-columns:1fr; }
  .legal-carousel h1 { font-size:30px; }
  .banner-controls { gap:4px; }
  .banner-dot { width:20px; }
  .banner-counter { margin:0; }
}
@media(prefers-reduced-motion:reduce) { .banner-image, .banner-dot:after { transition:none; } }
