/* =========================
   Paleta
   ========================= */
:root {
  --og-primary: #355560;     /* Azul escuro do logo */
  --og-primary-600: #2F4B55;
  --og-primary-700: #2A424B;

  --og-secondary: #99E2F1;   /* Azul claro do logo */
  --og-secondary-600: #85CFE0;

  --og-text: #0E1113;
  --og-text-dim: #6F7B83;
  --og-bg: #FFFFFF;
  --og-surface: #FFFFFF;
  --og-border: #E7E9EE;

  --og-success: #2E7D32;
  --og-warning: #B26A00;
  --og-danger:  #B3261E;
  --og-info:    #4F91A9;

  --og-radius: 14px;
  --og-radius-sm: 10px;
  --og-shadow: 0 6px 24px rgba(0,0,0,.06);
  --og-shadow-hover: 0 10px 30px rgba(0,0,0,.10);
  --og-focus: 0 0 0 3px rgba(153,226,241,.55);
}

/* =========================
   Reset
   ========================= */
html, body { height: 100%; }
body {
  background: var(--og-bg);
  color: var(--og-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { color: var(--og-primary); text-decoration: none; transition: color .2s ease; }
a:hover { text-decoration: underline; }
.hr-soft { border: 0; border-top: 1px solid var(--og-border); margin: 1rem 0; }
.container-wide { max-width: 1120px; }

/* =========================
   Navbar
   ========================= */
.og-nav {
  background: #1A2A2F;
  border-bottom: 1px solid rgba(255,255,255,.08);
  min-height: 64px;
  display: flex;
  align-items: center;
}
.og-nav .navbar-brand,
.og-nav .nav-link {
  color: #fff !important;
  opacity: .9;
  transition: opacity .2s ease, color .2s ease;
}
.og-nav .nav-link:hover { opacity: 1; color: var(--og-secondary) !important; }
.og-nav .nav-link.active { font-weight: 600; color: var(--og-secondary) !important; }

.brand-img {
  height: 42px;
  width: auto;
  object-fit: contain;
  display: block;
  margin-top: 4px;
  margin-bottom: 4px;
  transition: transform .25s ease;
}
.brand-img:hover { transform: scale(1.03); }

.navbar-nav .nav-link {
  padding-top: .5rem;
  padding-bottom: .5rem;
}

/* Dropdown */
.og-nav .dropdown-menu {
  background: var(--og-surface);
  border: 1px solid var(--og-border);
  border-radius: var(--og-radius);
  box-shadow: var(--og-shadow);
}
.og-nav .dropdown-item { color: var(--og-text); }
.og-nav .dropdown-item:hover { background: rgba(153,226,241,.14); }
.og-nav .dropdown-item.active {
  background: rgba(153,226,241,.18);
  font-weight: 600;
}

/* =========================
   Botões
   ========================= */
.btn-og {
  background: var(--og-primary); color: #fff;
  border: 1px solid var(--og-primary);
  border-radius: calc(var(--og-radius) - 6px);
  transition: transform .02s ease-in-out, filter .15s ease, background .15s ease;
}
.btn-og:hover { background: var(--og-primary-600); filter: brightness(.99); }
.btn-og:active { background: var(--og-primary-700); transform: translateY(1px); }
.btn-og:focus-visible { outline: none; box-shadow: var(--og-focus); }

.btn-og-secondary {
  background: var(--og-secondary); color: #05313A;
  border: 1px solid var(--og-secondary-600);
  border-radius: calc(var(--og-radius) - 6px);
}
.btn-og-secondary:hover { filter: brightness(.98); }
.btn-og-secondary:active { filter: brightness(.96); }
.btn-og-secondary:focus-visible { outline: none; box-shadow: var(--og-focus); }

.btn-og-outline {
  background: transparent; color: var(--og-primary);
  border: 1px solid var(--og-primary);
  border-radius: calc(var(--og-radius) - 6px);
}
.btn-og-outline:hover { background: rgba(53,85,96,.06); }
.btn-og-outline:active { background: rgba(53,85,96,.10); }
.btn-og-outline:focus-visible { outline: none; box-shadow: var(--og-focus); }

/* =========================
   Formulários
   ========================= */
.form-control, .form-select, .input-group-text {
  border-radius: 12px;
  border: 1px solid var(--og-border);
}
.form-control:focus, .form-select:focus {
  box-shadow: var(--og-focus);
  border-color: var(--og-secondary);
  outline: none;
}

/* Floating labels (globais) */
.og-field {
  position: relative;
  margin-bottom: 1rem;
}
.og-field input,
.og-field textarea,
.og-field select {
  width: 100%;
  padding: 1.05rem .9rem .85rem;
  border-radius: var(--og-radius-sm);
  border: 1px solid var(--og-border);
  background: var(--og-bg);
  color: var(--og-text);
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.og-field input:focus,
.og-field textarea:focus,
.og-field select:focus {
  border-color: var(--og-secondary);
  box-shadow: var(--og-focus);
  outline: none;
  background: var(--og-bg);
}
.og-label {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: var(--og-bg);
  padding: 0 .35rem;
  color: var(--og-text-dim);
  pointer-events: none;
  transition: all .16s ease;
  border-radius: 8px;
  max-width: calc(100% - 24px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Flutua ao focar ou quando há valor */
.og-field.is-active .og-label,
.og-field.is-filled .og-label {
  top: -9px;
  font-size: .78rem;
  color: var(--og-primary);
}

/* =========================
   Tabelas
   ========================= */
.table {
  --bs-table-bg: transparent;
  --bs-table-striped-bg: rgba(153,226,241,.10);
  --bs-table-hover-bg: rgba(153,226,241,.14);
  border-color: var(--og-border);
}
.table thead th {
  font-weight: 600;
  color: var(--og-text);
  border-bottom: 1px solid var(--og-border);
}
.table tbody tr > * { vertical-align: middle; }
.table .cell-tight { white-space: nowrap; }

/* =========================
   Cards
   ========================= */
.og-card {
  background: var(--og-surface);
  color: var(--og-text);
  border: 1px solid var(--og-border);
  border-radius: var(--og-radius);
  box-shadow: var(--og-shadow);
  transition: box-shadow .2s ease, transform .06s ease;
}
.og-card:hover { box-shadow: var(--og-shadow-hover); transform: translateY(-1px); }
.og-card .og-card-header {
  padding: .85rem 1rem;
  border-bottom: 1px solid var(--og-border);
  display: flex; align-items: center; gap: .6rem;
}
.og-card .og-card-title { font-weight: 600; margin: 0; }
.og-card .og-card-body { padding: 1rem; }

/* Card com ícone */
.og-card-icon {
  width: 42px; height: 42px; border-radius: 12px;
  background: rgba(153,226,241,.2);
  display: grid; place-items: center;
  color: #1E5663;
  border: 1px solid rgba(153,226,241,.4);
}

/* Card grid */
.card-grid {
  display: grid; gap: 1rem;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

/* =========================
   Alertas / Mensagens
   ========================= */
.alert {
  border-radius: var(--og-radius);
  border: 1px solid var(--og-border);
}
.alert-info    { background: rgba(79,145,169,.10); color: #2B5C6A; border-color: rgba(79,145,169,.35); }
.alert-success { background: rgba(46,125,50,.10);  color: #1E5A22; border-color: rgba(46,125,50,.35); }
.alert-warning { background: rgba(178,106,0,.10);  color: #6A4000; border-color: rgba(178,106,0,.35); }
.alert-danger  { background: rgba(179,38,30,.10);  color: #6B1D18; border-color: rgba(179,38,30,.35); }

/* =========================
   Utilitários
   ========================= */
.text-dim   { color: var(--og-text-dim) !important; }
.og-shadow  { box-shadow: var(--og-shadow); }
.og-rounded { border-radius: var(--og-radius); }
.og-border  { border: 1px solid var(--og-border); }
.fade-in { animation: fadein .18s ease both; }
@keyframes fadein { from{opacity:0; transform: translateY(2px);} to{opacity:1; transform:none;} }

@media (min-width: 992px) {
  .brand-img { height: 44px; }
}

/* =========================
   Landing / CTA / Institucional
   ========================= */
.home-cta-bar {
  background: #1A2A2F;
  color: #fff !important;
  padding: .9rem 1rem;
  border-radius: var(--og-radius-sm);
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 700;
  border: 1px solid rgba(255,255,255,.08);
  transition: transform .06s ease, background .2s ease, color .2s ease;
}
.home-cta-bar:hover {
  background: var(--og-primary-700);
  color: var(--og-secondary) !important;
  text-decoration: none;
  transform: translateY(-1px);
}

.home-institucional { color: var(--og-text); }
.home-institucional .link-underline {
  color: var(--og-primary);
  text-decoration: none;
  border-bottom: 1px dashed rgba(53,85,96,.4);
}
.home-institucional .link-underline:hover {
  text-decoration: none;
  border-bottom-color: rgba(53,85,96,.8);
}

/* Botão WhatsApp */
.home-whatsapp-btn {
  border-radius: 12px;
  font-weight: 800;
  letter-spacing: .02em;
}

/* Iframe (se não usar .ratio) */
iframe { border: 0; }


.home-whatsapp-btn {
  background: #75afc0 !important;
  color: #ffffff !important;
  border: 1px solid #75afc0;
  font-weight: 700;
}