/* ==========================================================================
   SEGURO DIREITO — portal de seguros e direitos do segurado
   Identidade: portal editorial claro, confiável, content-first.
   Conteúdo 100% visível sem JS (html.js ativa os aprimoramentos).
   ========================================================================== */

:root{
  --ink:#152A42;          /* azul-tinta principal */
  --deep:#0D1E31;         /* azul profundo (footer/hero de página) */
  --paper:#F8F5EF;        /* fundo geral */
  --card:#FFFFFF;
  --teal:#166B57;         /* verde proteção (accent) */
  --teal-dark:#0F5544;
  --teal-soft:#E2EEE8;
  --amber:#D99C2B;        /* destaque pontual */
  --red:#B4443C;          /* só para o tema "negativa" */
  --text:#2A3648;
  --muted:#6B7686;
  --line:#E4DFD4;
  --line-dark:rgba(248,245,239,.14);
  --wa:#1FAF57;
  --max:1180px;
  --pad:clamp(20px, 5vw, 44px);
  --serif:'Source Serif 4', Georgia, serif;
  --sans:'Inter', sans-serif;
  --mono:'IBM Plex Mono', monospace;
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html, body{ overflow-x:hidden; }
body{
  font-family:var(--sans); background:var(--paper); color:var(--text);
  line-height:1.65; word-break:break-word; -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul, ol{ list-style:none; }
.mono{ font-family:var(--mono); letter-spacing:.12em; }
.container{ max-width:var(--max); margin:0 auto; padding-inline:var(--pad); }
.section{ padding-block:clamp(56px, 9vw, 104px); }

/* ---------- marca ---------- */
.brand{ display:inline-flex; align-items:center; gap:10px; }
.brand__mark{ flex:0 0 auto; width:34px; height:34px; }
.brand__text{ line-height:1.05; }
.brand__name{ font-family:var(--serif); font-weight:600; font-size:1.14rem; color:var(--ink); display:block; white-space:nowrap; }
.brand__name em{ font-style:normal; color:var(--teal); }
.brand__tag{ font-family:var(--mono); font-size:.5rem; letter-spacing:.3em; color:var(--muted); }

/* ---------- topo ---------- */
.topbar{
  background:var(--deep); color:#fff;
  font-size:.72rem; padding:7px 0;
}
.topbar .container{ display:flex; justify-content:space-between; gap:14px; align-items:center; }
.topbar__note{ opacity:.85; font-weight:300; }
.topbar__links{ display:flex; gap:16px; flex:0 0 auto; }
.topbar__links a{ display:inline-flex; align-items:center; gap:6px; opacity:.9; }
.topbar__links a:hover{ opacity:1; }
@media (max-width:640px){ .topbar__note{ display:none; } .topbar .container{ justify-content:center; } }

.header{
  position:sticky; top:0; z-index:50;
  background:rgba(248,245,239,.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header__inner{
  max-width:var(--max); margin:0 auto; padding:12px var(--pad);
  display:flex; align-items:center; justify-content:space-between; gap:18px;
}
.nav{ display:flex; align-items:center; gap:clamp(10px, 1.2vw, 18px); }
.nav__link{ font-size:.84rem; font-weight:500; color:var(--ink); position:relative; padding:6px 0; white-space:nowrap; }
.nav__link::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:2px;
  background:var(--teal); transition:right .3s ease;
}
.nav__link:hover::after, .nav__link[aria-current="page"]::after{ right:0; }
.nav__link[aria-current="page"]{ color:var(--teal-dark); }

.header__ctas{ display:flex; gap:10px; align-items:center; }
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px; white-space:nowrap;
  min-height:48px; padding:12px 20px; border-radius:8px;
  font-size:.92rem; font-weight:600; text-align:center; border:0; cursor:pointer;
  transition:transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.btn--wa{ background:var(--wa); color:#fff; }
.btn--wa:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(31,175,87,.35); }
.btn--ink{ background:var(--ink); color:#fff; }
.btn--ink:hover{ transform:translateY(-2px); box-shadow:0 10px 26px rgba(21,42,66,.3); }
.btn--ghost{ border:1.5px solid var(--ink); color:var(--ink); background:transparent; }
.btn--ghost:hover{ background:var(--ink); color:#fff; transform:translateY(-2px); }
.btn--light{ background:#fff; color:var(--ink); border:1px solid var(--line); }
.btn--light:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(21,42,66,.12); }
.btn--big{ min-height:56px; padding:16px 28px; font-size:1rem; }
.btn svg{ flex:0 0 auto; }

/* menu mobile */
.menu-btn{
  display:none; background:none; border:1.5px solid var(--line); border-radius:8px;
  width:48px; height:48px; align-items:center; justify-content:center; cursor:pointer;
  color:var(--ink);
}
@media (max-width:1300px){
  .menu-btn{ display:inline-flex; }
  .nav{
    position:fixed; inset:0; top:0; z-index:60;
    background:var(--deep); color:#fff;
    flex-direction:column; justify-content:center; gap:8px;
    transform:translateX(100%); transition:transform .35s ease;
    padding:40px var(--pad);
  }
  html.js .nav.is-open{ transform:none; }
  .nav__link{ color:#fff; font-size:1.3rem; font-family:var(--serif); padding:10px 0; }
  .nav__link[aria-current="page"]{ color:#8FD3B8; }
  .nav__close{
    position:absolute; top:18px; right:18px;
    background:none; border:1px solid var(--line-dark); border-radius:8px;
    width:48px; height:48px; color:#fff; font-size:1.3rem; cursor:pointer;
  }
  .header__ctas .btn--wa span{ display:none; }
  .header__ctas .btn--wa{ padding:12px 14px; }
}
@media (min-width:1301px){ .nav__close{ display:none; } }

/* ---------- hero (home) ---------- */
.hero{
  position:relative; overflow:hidden;
  padding:clamp(64px, 10vw, 120px) 0 clamp(56px, 8vw, 96px);
  background:
    radial-gradient(900px 480px at 88% -20%, var(--teal-soft), transparent 62%),
    var(--paper);
}
.hero__kicker{
  font-family:var(--mono); font-size:.66rem; letter-spacing:.24em;
  color:var(--teal-dark); margin-bottom:22px; display:flex; align-items:center; gap:12px;
}
.hero__kicker::before{ content:""; width:34px; height:1.5px; background:var(--teal); }
.hero__title{
  font-family:var(--serif); font-weight:600; color:var(--ink);
  font-size:clamp(2.3rem, 6.4vw, 4.3rem); line-height:1.08; letter-spacing:-.015em;
  max-width:15em;
}
.hero__title em{ font-style:italic; color:var(--teal-dark); }
.hero__lead{
  margin-top:22px; max-width:38em; font-weight:300;
  font-size:clamp(1rem, 2.2vw, 1.18rem); color:var(--text);
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
@media (max-width:520px){ .hero__actions .btn{ width:100%; } }
.hero__points{
  display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:38px;
  padding-top:24px; border-top:1px solid var(--line);
}
.hero__points li{
  font-size:.8rem; color:var(--muted); display:flex; align-items:center; gap:8px;
}
.hero__points li svg{ color:var(--teal); flex:0 0 auto; }

/* ---------- headings ---------- */
.sec-head{ margin-bottom:clamp(30px, 5vw, 52px); max-width:44em; }
.sec-kicker{
  font-family:var(--mono); font-size:.62rem; letter-spacing:.24em;
  color:var(--teal-dark); display:block; margin-bottom:12px;
}
.sec-title{
  font-family:var(--serif); font-weight:600; color:var(--ink);
  font-size:clamp(1.7rem, 4.4vw, 2.7rem); line-height:1.12; letter-spacing:-.012em;
}
.sec-lead{ margin-top:14px; font-weight:300; color:var(--muted); font-size:clamp(.95rem, 2vw, 1.06rem); }
.sec-head--center{ margin-inline:auto; text-align:center; }
.sec-head--light .sec-title{ color:#fff; }
.sec-head--light .sec-lead{ color:rgba(248,245,239,.7); }
.sec-head--light .sec-kicker{ color:#8FD3B8; }

/* ---------- cards de seguros ---------- */
.tipos{ background:#fff; border-block:1px solid var(--line); }
.tipos__grid{
  display:grid; grid-template-columns:1fr; gap:16px;
}
@media (min-width:680px){ .tipos__grid{ grid-template-columns:1fr 1fr; } }
@media (min-width:1024px){ .tipos__grid{ grid-template-columns:repeat(3, 1fr); } }
.tipo{
  background:var(--paper); border:1px solid var(--line); border-radius:12px;
  padding:clamp(22px, 3.4vw, 32px); display:flex; flex-direction:column; gap:14px;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.tipo:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(21,42,66,.1); border-color:transparent; }
.tipo__icon{
  width:52px; height:52px; border-radius:10px; background:var(--teal-soft);
  display:flex; align-items:center; justify-content:center; color:var(--teal-dark);
}
.tipo__name{ font-family:var(--serif); font-weight:600; font-size:1.28rem; color:var(--ink); }
.tipo__desc{ font-weight:300; font-size:.93rem; flex:1; }
.tipo__link{
  font-weight:600; font-size:.86rem; color:var(--teal-dark);
  display:inline-flex; align-items:center; gap:7px;
}
.tipo__link:hover{ gap:11px; } .tipo__link{ transition:gap .25s ease; }

/* ---------- faixa cotação ---------- */
.cta-band{
  background:linear-gradient(120deg, var(--teal-dark), var(--teal));
  color:#fff; border-radius:16px;
  padding:clamp(30px, 5.5vw, 56px);
  display:flex; flex-wrap:wrap; align-items:center; gap:22px 40px; justify-content:space-between;
}
.cta-band__title{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.5rem, 3.6vw, 2.2rem); line-height:1.15; max-width:16em;
}
.cta-band__sub{ margin-top:10px; font-weight:300; opacity:.88; max-width:36em; }
.cta-band .btn{ flex:0 0 auto; }
@media (max-width:640px){ .cta-band .btn{ width:100%; } }

/* ---------- teasers de conteúdo (home) ---------- */
.teasers{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:900px){ .teasers{ grid-template-columns:1fr 1fr 1fr; } }
.teaser{
  border:1px solid var(--line); border-radius:12px; background:#fff;
  padding:clamp(22px, 3.4vw, 30px);
  display:flex; flex-direction:column; gap:12px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.teaser:hover{ transform:translateY(-4px); box-shadow:0 18px 40px rgba(21,42,66,.1); }
.teaser__label{ font-family:var(--mono); font-size:.58rem; letter-spacing:.24em; color:var(--teal-dark); }
.teaser__title{ font-family:var(--serif); font-weight:600; font-size:1.3rem; color:var(--ink); line-height:1.2; }
.teaser__desc{ font-weight:300; font-size:.92rem; flex:1; }
.teaser--dark{ background:var(--deep); border-color:transparent; }
.teaser--dark .teaser__title{ color:#fff; }
.teaser--dark .teaser__desc{ color:rgba(248,245,239,.72); }
.teaser--dark .teaser__label{ color:#8FD3B8; }
.teaser--dark .tipo__link{ color:#8FD3B8; }

/* ---------- página: cabeçalho interno ---------- */
.page-hero{
  background:var(--deep); color:#fff;
  padding:clamp(52px, 8vw, 92px) 0;
  position:relative; overflow:hidden;
}
.page-hero::after{
  content:""; position:absolute; right:-140px; top:-140px; width:420px; height:420px;
  border-radius:50%; background:radial-gradient(circle, rgba(22,107,87,.35), transparent 65%);
}
.page-hero__crumb{
  font-family:var(--mono); font-size:.6rem; letter-spacing:.24em;
  color:#8FD3B8; margin-bottom:16px;
}
.page-hero__title{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(2rem, 5.6vw, 3.4rem); line-height:1.08; letter-spacing:-.014em;
  max-width:18em; position:relative; z-index:1;
}
.page-hero__lead{
  margin-top:16px; max-width:44em; font-weight:300;
  color:rgba(248,245,239,.75); font-size:clamp(.95rem, 2vw, 1.08rem);
  position:relative; z-index:1;
}

/* ---------- artigos / prosa ---------- */
.prose{ max-width:46em; }
.prose > * + *{ margin-top:1.05em; }
.prose p{ font-weight:300; font-size:clamp(.97rem, 2vw, 1.05rem); }
.prose strong{ font-weight:600; color:var(--ink); }
.prose h3{
  font-family:var(--serif); font-weight:600; color:var(--ink);
  font-size:clamp(1.3rem, 3vw, 1.7rem); margin-top:1.8em;
}
.prose ul{ padding-left:0; }
.prose ul li{
  padding:10px 0 10px 30px; position:relative; font-weight:300;
  border-bottom:1px solid var(--line);
}
.prose ul li::before{
  content:"✓"; position:absolute; left:4px; color:var(--teal); font-weight:700;
}

/* bloco artigo (informações) */
.artigos{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:860px){ .artigos{ grid-template-columns:1fr 1fr; } }
.artigo{
  background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:clamp(22px, 3.4vw, 32px);
}
.artigo__num{ font-family:var(--mono); font-size:.6rem; letter-spacing:.22em; color:var(--teal-dark); }
.artigo__title{
  font-family:var(--serif); font-weight:600; font-size:1.32rem; color:var(--ink);
  margin:10px 0 12px; line-height:1.22;
}
.artigo p{ font-weight:300; font-size:.94rem; }
.artigo p + p{ margin-top:.8em; }
.artigo ul{ margin-top:.8em; }
.artigo ul li{
  font-weight:300; font-size:.92rem; padding:7px 0 7px 24px; position:relative;
}
.artigo ul li::before{ content:"—"; position:absolute; left:2px; color:var(--teal); }

/* ---------- seguro direito (negativas) ---------- */
.sd-intro{ background:#fff; border-block:1px solid var(--line); }
.sd-quote{
  font-family:var(--serif); font-style:italic; font-weight:500;
  font-size:clamp(1.3rem, 3.4vw, 2rem); color:var(--ink); line-height:1.35;
  border-left:3px solid var(--teal); padding-left:clamp(18px, 3vw, 30px);
  max-width:30em; margin-block:1.6em;
}
.sd-quote strong{ color:var(--red); font-style:normal; }
.caso{
  border:1px solid var(--line); border-radius:14px; background:#fff;
  padding:clamp(24px, 4vw, 40px); margin-bottom:20px;
}
.caso__head{ display:flex; align-items:center; gap:14px; margin-bottom:16px; flex-wrap:wrap; }
.caso__tag{
  font-family:var(--mono); font-size:.58rem; letter-spacing:.22em;
  background:var(--teal-soft); color:var(--teal-dark);
  padding:6px 11px; border-radius:6px;
}
.caso__title{
  font-family:var(--serif); font-weight:600; color:var(--ink);
  font-size:clamp(1.35rem, 3.2vw, 1.85rem);
}
.caso p{ font-weight:300; font-size:.96rem; max-width:52em; }
.caso p + p{ margin-top:.85em; }
.caso ul{ margin:1em 0; }
.caso ul li{
  font-weight:300; font-size:.94rem; padding:8px 0 8px 26px; position:relative;
}
.caso ul li::before{ content:"✕"; position:absolute; left:2px; color:var(--red); font-weight:700; }
.caso__cta{ margin-top:20px; }

/* ---------- jurisprudência ---------- */
.juris-grid{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:860px){ .juris-grid{ grid-template-columns:1fr 1fr; } }
.julgado{
  background:#fff; border:1px solid var(--line); border-radius:12px;
  padding:clamp(22px, 3.4vw, 30px);
  display:flex; flex-direction:column; gap:12px;
  transition:transform .25s ease, box-shadow .25s ease;
}
.julgado:hover{ transform:translateY(-3px); box-shadow:0 16px 38px rgba(21,42,66,.1); }
.julgado__meta{ display:flex; gap:8px; flex-wrap:wrap; }
.julgado__tag{
  font-family:var(--mono); font-size:.56rem; letter-spacing:.2em;
  padding:5px 10px; border-radius:6px;
  background:var(--teal-soft); color:var(--teal-dark);
}
.julgado__tag--court{ background:#EFE8DA; color:#7A6230; }
.julgado__title{
  font-family:var(--serif); font-weight:600; font-size:1.16rem; color:var(--ink); line-height:1.3;
}
.julgado__sum{ font-weight:300; font-size:.92rem; flex:1; }
.julgado__ref{ font-family:var(--mono); font-size:.62rem; color:var(--muted); letter-spacing:.06em; line-height:1.7; }
.julgado__link{
  font-weight:600; font-size:.84rem; color:var(--teal-dark);
  display:inline-flex; align-items:center; gap:7px; transition:gap .25s ease;
}
.julgado__link:hover{ gap:11px; }
.aviso{
  margin-top:34px; border-left:3px solid var(--amber); background:#fff;
  border-radius:0 10px 10px 0; padding:18px 22px;
  font-size:.86rem; font-weight:300; color:var(--muted); max-width:60em;
}

/* ---------- instagram / contato ---------- */
.insta{
  background:var(--deep); color:#fff;
}
.insta .container{
  display:flex; flex-wrap:wrap; gap:24px 44px; align-items:center; justify-content:space-between;
}
.insta__title{ font-family:var(--serif); font-weight:600; font-size:clamp(1.5rem, 3.6vw, 2.2rem); }
.insta__sub{ margin-top:8px; font-weight:300; color:rgba(248,245,239,.7); max-width:34em; }
@media (max-width:640px){ .insta .btn{ width:100%; } }

.contato-cards{ display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width:760px){ .contato-cards{ grid-template-columns:1fr 1fr; } }
.ccard{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:clamp(26px, 4.4vw, 40px); text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:14px;
}
.ccard__icon{
  width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center;
}
.ccard__icon--wa{ background:rgba(31,175,87,.12); color:var(--wa); }
.ccard__icon--ig{ background:rgba(180,68,140,.1); color:#B4448C; }
.ccard__title{ font-family:var(--serif); font-weight:600; font-size:1.3rem; color:var(--ink); }
.ccard p{ font-weight:300; font-size:.94rem; max-width:30em; }

/* ---------- footer ---------- */
.footer{ background:var(--deep); color:#fff; padding:56px 0 30px; }
.footer__grid{
  display:grid; grid-template-columns:1fr; gap:34px;
  padding-bottom:38px; border-bottom:1px solid var(--line-dark);
}
@media (min-width:860px){ .footer__grid{ grid-template-columns:1.3fr 1fr 1fr; } }
.footer .brand__name{ color:#fff; }
.footer__tagline{ margin-top:12px; font-weight:300; color:rgba(248,245,239,.65); font-size:.92rem; max-width:24em; }
.footer__h{ font-family:var(--mono); font-size:.6rem; letter-spacing:.26em; color:#8FD3B8; margin-bottom:16px; }
.footer__links{ display:grid; gap:9px; }
.footer__links a{ font-size:.88rem; font-weight:300; color:rgba(248,245,239,.78); }
.footer__links a:hover{ color:#fff; }
.footer__social{ display:flex; gap:12px; }
.footer__social a{
  width:44px; height:44px; border:1px solid var(--line-dark); border-radius:10px;
  display:flex; align-items:center; justify-content:center; color:rgba(248,245,239,.8);
  transition:border-color .25s, color .25s;
}
.footer__social a:hover{ border-color:#8FD3B8; color:#8FD3B8; }
.footer__legal{
  padding-top:24px; font-size:.74rem; font-weight:300;
  color:rgba(248,245,239,.5); line-height:1.7; max-width:74em;
}
.footer__base{
  margin-top:14px; display:flex; flex-wrap:wrap; gap:8px 24px;
  justify-content:space-between; align-items:baseline;
}
.footer__copy{ font-family:var(--mono); font-size:.62rem; letter-spacing:.14em; color:rgba(248,245,239,.4); }
.footer__credit{
  font-family:var(--mono); font-size:.62rem; letter-spacing:.18em;
  color:rgba(248,245,239,.45);
}
.footer__credit strong{ font-weight:500; color:#8FD3B8; }

/* ---------- whatsapp flutuante ---------- */
.wa-float{
  position:fixed; right:18px; bottom:18px; z-index:55;
  width:58px; height:58px; border-radius:50%;
  background:var(--wa); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 30px rgba(31,175,87,.42);
  transition:transform .3s ease;
}
.wa-float:hover{ transform:scale(1.08); }

/* ---------- reveals (progressive enhancement) ---------- */
html.js .reveal{
  opacity:0; transform:translateY(22px);
  transition:opacity .7s cubic-bezier(.22,.7,.3,1), transform .7s cubic-bezier(.22,.7,.3,1);
}
html.js .reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: no-preference){
  html.js .reveal{ animation:forceIn 0s 2.5s forwards; }
}
@keyframes forceIn{ to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){
  html.js .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  html{ scroll-behavior:auto; }
}

/* ---------- quem somos ---------- */
@media (min-width:760px){ .ceo-grid{ grid-template-columns:300px 1fr !important; } }
.ceo-grid.no-photo{ grid-template-columns:1fr !important; }
.ceo-grid.no-photo .ceo-photo{ display:none; }
