:root{
  --bg:#eaeaea;
  --surface:#ffffff;
  --surface-alt:#dfe7ec;
  --text:#1d2b36;
  --muted:#5f7485;

  --navy:#00468c;
  --blue:#0290d4;
  --accent:#7fa5ba;

  --border:#c7d4dc;
  --shadow:0 18px 50px rgba(0,70,140,.12);

  --radius:22px;
  --header-h:72px;
  --sidebar-w:290px;
}

[data-theme="dark"]{
  --bg:#0f1d2b;
  --surface:#162636;
  --surface-alt:#213548;
  --text:#eaeaea;
  --muted:#a8bcc9;

  --navy:#4fa9e0;
  --blue:#0290d4;
  --accent:#7fa5ba;

  --border:#30485b;
  --shadow:0 18px 50px rgba(0,0,0,.35);
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  scroll-padding-top:88px;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:'Open Sans',Arial,sans-serif;
  font-size:14px;
  line-height:1.5;
}

h1,h2,h3,h4,h5,h6{
  font-weight:600;
}

a{
  color:inherit;
}

button,
input{
  font:inherit;
}

.reading-progress{
  position:fixed;
  z-index:9999;
  top:0;
  left:0;
  height:4px;
  background:linear-gradient(90deg,var(--navy),var(--blue));
  width:0;
}

.site-header{
  position:fixed;
  z-index:1000;
  top:0;
  left:0;
  right:0;
  height:var(--header-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 22px;
  background:color-mix(in srgb,var(--surface) 92%,transparent);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--border);
}

.brand img{
  height:50px;
  width:auto;
  display:block;
}

.brand span:last-child{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.brand{
  display:flex;
  gap:10px;
  align-items:center;
  text-decoration:none;
}

.brand-mark{
  font-size:2rem;
}

.brand strong,
.brand small{
  display:block;
}

.brand strong{
  color:var(--navy);
  font-size:1.1rem;
}

.brand small{
  color:var(--muted);
  font-size:.75rem;
}

.header-actions{
  display:flex;
  gap:8px;
}

.icon-button,
.menu-button{
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  width:42px;
  height:42px;
  border-radius:12px;
  cursor:pointer;
}

.menu-button{
  display:none;
}

.sidebar{
  position:fixed;
  z-index:900;
  top:var(--header-h);
  bottom:0;
  left:0;
  width:var(--sidebar-w);
  background:var(--surface);
  border-right:1px solid var(--border);
  overflow:auto;
  padding:18px;
}

.sidebar-nav{
  display:grid;
  gap:10px;
}

.sidebar-home,
.sidebar-nav summary,
.sidebar-nav details a{
  display:block;
  padding:10px 12px;
  border-radius:10px;
  text-decoration:none;
}

.sidebar-home,
.sidebar-nav summary{
  font-weight:900;
  color:var(--navy);
}

.sidebar-nav summary{
  cursor:pointer;
}

.sidebar-nav details a{
  margin-left:10px;
  color:var(--muted);
  font-size:.92rem;
}

.sidebar-nav a:hover,
.sidebar-nav a.active{
  background:var(--surface-alt);
  color:var(--navy);
}

.content{
  margin-left:var(--sidebar-w);
  padding-top:var(--header-h);
}

.hero{
  min-height:calc(100vh - var(--header-h));
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:center;
  gap:50px;
  padding:80px clamp(28px,6vw,90px);
  background:
    radial-gradient(circle at 85% 20%,rgba(2,144,212,.25),transparent 30%),
    linear-gradient(135deg,#00468c,#005aa8 60%,#0290d4);
  color:#fff;
}

.eyebrow{
  display:inline-block;
  background:#7fa5ba;
  color:#00315f;
  padding:7px 14px;
  border-radius:999px;
  font-weight:900;
  font-size:.8rem;
}

.hero h1{
  font-family:'Montserrat',sans-serif;
  font-size:clamp(2.2rem,4vw,3.6rem);
  line-height:1.1;
  margin:16px 0;
  font-weight:700;
}

.hero-lead{
  font-size:1.35rem;
  max-width:700px;
}

.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:28px;
}

.button{
  border:0;
  border-radius:14px;
  padding:14px 20px;
  font-weight:900;
  cursor:pointer;
  text-decoration:none;
}

.button.primary{
  background:var(--blue);
  color:#fff;
}

.button.secondary{
  background:transparent;
  color:#fff;
  border:1px solid rgba(255,255,255,.5);
}

.hero-visual{
  position:relative;
  display:grid;
  place-items:center;
}

.hero-map{
  font-size:13rem;
  filter:drop-shadow(0 25px 25px rgba(0,0,0,.25));
}

.hero-pin{
  position:absolute;
  font-size:4rem;
  top:28%;
  left:53%;
  animation:bob 2.4s ease-in-out infinite;
}

@keyframes bob{
  50%{
    transform:translateY(-10px);
  }
}

.overview-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  padding:28px clamp(28px,6vw,90px);
  background:var(--surface-alt);
}

.overview-grid a{
  background:var(--surface);
  padding:22px;
  border-radius:18px;
  text-decoration:none;
  box-shadow:var(--shadow);
}

.overview-grid span{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  background:var(--navy);
  color:#fff;
  border-radius:50%;
  font-weight:900;
}

.overview-grid strong,
.overview-grid small{
  display:block;
}

.overview-grid strong{
  margin-top:14px;
  color:var(--navy);
}

.overview-grid small{
  color:var(--muted);
}

.part-intro{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:22px;
  align-items:center;
  padding:36px clamp(28px,6vw,90px);
  color:#fff;
}

.part-intro span{
  border:2px solid currentColor;
  border-radius:16px;
  padding:10px 14px;
  font-weight:900;
}

.part-intro h2{
  font-family:"Montserrat";
  font-size:2rem;
  line-height:1.2;
  margin:0;
  font-weight:700;
}

.part-intro p{
  margin:6px 0 0;
}

.part-one{
  background:linear-gradient(100deg,#00468c,#0290d4);
}

.part-two{
  background:linear-gradient(100deg,#005aa8,#7fa5ba);
}

.part-three{
  background:linear-gradient(100deg,#005aa8,#7fa5ba);
}

.part-four{
  background:linear-gradient(100deg,#00468c,#0290d4);
}

.section{
  padding:82px clamp(28px,6vw,90px);
  font-family: 'Montserrat';
}

.section.alt{
  background:var(--surface-alt);
}

.section-heading{
  text-align:center;
  margin-bottom:34px;
}

.section-heading span{
  display:inline-block;
  background:var(--blue);
  color:#fff;
  padding:7px 15px;
  border-radius:999px;
  font-weight:900;
}

.section-heading h2{
  font-family:"Montserrat";
  font-size:clamp(1.8rem,3vw,3rem);
  line-height:1.2;
  margin:14px 0;
  color:var(--navy);
  font-weight:700;
}

.section-heading h2,
.category-heading h2,
.part-intro h2{
  font-family:'Montserrat',sans-serif !important;
  font-size:clamp(1.5rem,2.5vw,2.4rem) !important;
  line-height:1.2 !important;
  font-weight:700 !important;
}

h3{
  font-size:1.15rem;
  font-weight:700;
}

p,
li{
  font-size:.95rem;
}

.category-heading h2{
  font-family:"Montserrat",sans-serif;
  font-size:clamp(1.6rem,2.5vw,2.5rem);
  font-weight:700;
}

h2{
    font-family:"Montserrat";
}

.lead{
  max-width:880px;
  margin:0 auto 36px;
  text-align:center;
  font-size:1.18rem;
}

.site-footer{
  padding:48px;
  text-align:center;
  background:#00468c;
  color:#fff;
}

.site-footer a{
  color:#7fa5ba;
}

.search-overlay{
  position:fixed;
  z-index:2000;
  inset:0;
  background:rgba(0,0,0,.6);
  padding:8vh 20px;
}

.search-dialog{
  max-width:760px;
  margin:auto;
  background:var(--surface);
  border-radius:22px;
  box-shadow:var(--shadow);
  max-height:84vh;
  overflow:auto;
}

.search-header{
  display:flex;
  gap:10px;
  padding:16px;
  border-bottom:1px solid var(--border);
}

.search-header input{
  flex:1;
  padding:13px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--bg);
  color:var(--text);
}

.search-results{
  padding:12px;
}

.search-results a{
  display:block;
  padding:13px;
  border-radius:12px;
  text-decoration:none;
}

.search-results a:hover{
  background:var(--surface-alt);
}

.search-results strong,
.search-results small{
  display:block;
}

.search-results small{
  color:var(--muted);
}

@media(max-width:1020px){
  .menu-button{
    display:block;
  }

  .sidebar{
    transform:translateX(-100%);
    transition:.25s;
  }

  .sidebar.open{
    transform:translateX(0);
  }

  .content{
    margin-left:0;
  }

  .overview-grid{
    grid-template-columns:repeat(2,1fr);
  }
}

@media(max-width:720px){
  .hero{
    grid-template-columns:1fr;
    padding-top:55px;
  }

  .hero-visual{
    display:none;
  }

  .overview-grid{
    grid-template-columns:1fr;
  }

  .part-intro{
    grid-template-columns:1fr;
  }

  .part-intro h2{
    font-size:2.3rem;
  }
}

@media print{
  .site-header,
  .sidebar,
  .reading-progress,
  .search-overlay,
  .hero-actions{
    display:none !important;
  }

  .content{
    margin:0;
    padding:0;
  }

  .hero{
    min-height:auto;
    color:#000;
    background:#fff;
  }

  .section,
  .part-intro{
    break-inside:avoid;
  }

  .part-intro{
    color:#000;
    background:#fff !important;
    border-top:3px solid #000;
  }
}
/* Guia preservado com identidade tipográfica e navegação mobile compatíveis com o site institucional. */
@media(max-width:600px){
 .site-header{padding:0 10px;gap:4px}
 .site-header .brand{flex:0 1 auto;min-width:0;gap:0}
 .site-header .brand img{height:41px;width:auto;max-width:145px;object-fit:contain}
 .site-header .brand span:last-child{display:none}
 .header-actions{margin-left:auto;flex:none;gap:4px}
 .header-actions .icon-button,.header-actions .menu-button{width:34px;height:34px;border-radius:9px;padding:0;font-size:17px}
 .hero{min-height:auto;align-items:start;padding:50px 22px 55px}
}
@media(max-width:370px){
 .site-header{padding:0 8px}
 .site-header .brand img{height:37px;max-width:135px}
 .header-actions{gap:3px}
 .header-actions .icon-button,.header-actions .menu-button{width:32px;height:32px}
}
