/* =========================================================================
   Freedom Saúde — identidade visual (Bootstrap 5 + custom)
   Paleta do kit Elementor original: azul #3A549E + teal #4E9D9E.
   ========================================================================= */

:root {
  --fs-blue: #3A549E;
  --fs-blue-dark: #2c4280;
  --fs-blue-light: #5570c0;
  --fs-teal: #4E9D9E;
  --fs-teal-dark: #3c8081;
  --fs-teal-light: #6fb8b9;
  --fs-grad: linear-gradient(120deg, var(--fs-teal) 0%, var(--fs-blue) 100%);
  --fs-grad-soft: linear-gradient(120deg, #eef6f6 0%, #eef1fa 100%);
  --fs-text: #333b4a;
  --fs-muted: #6b7486;
  --fs-surface: #f4f8f9;
  --fs-border: #e3e9ef;
  --fs-radius: 18px;
  --fs-shadow: 0 18px 46px -22px rgba(42, 66, 128, .35);
  --fs-shadow-sm: 0 10px 30px -18px rgba(42, 66, 128, .4);
  --fs-font-body: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --fs-font-head: 'Poppins', 'Open Sans', -apple-system, 'Segoe UI', Arial, sans-serif;
}

* { scroll-behavior: smooth; }

body {
  font-family: var(--fs-font-body);
  color: var(--fs-text);
  background: #fff;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, .fs-font-head { font-family: var(--fs-font-head); font-weight: 700; color: var(--fs-blue); }

a { color: var(--fs-teal-dark); }
a:hover { color: var(--fs-blue); }

.fs-skip {
  position: absolute; left: -999px; top: 0; z-index: 2000;
  background: var(--fs-blue); color: #fff; padding: .6rem 1rem; border-radius: 0 0 8px 0;
}
.fs-skip:focus { left: 0; color: #fff; }

section { scroll-margin-top: 86px; }

/* ---- Botões -------------------------------------------------------------- */
.fs-btn-cta,
.fs-btn {
  --bs-btn-focus-shadow-rgb: 78,157,158;
  display: inline-flex; align-items: center; gap: .5rem;
  background: var(--fs-grad); color: #fff; border: 0;
  font-family: var(--fs-font-head); font-weight: 600; letter-spacing: .2px;
  padding: .72rem 1.6rem; border-radius: 999px; box-shadow: var(--fs-shadow-sm);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.fs-btn-cta:hover, .fs-btn:hover { color: #fff; transform: translateY(-2px); filter: brightness(1.05); box-shadow: var(--fs-shadow); }
.fs-btn-outline {
  display: inline-flex; align-items: center; gap: .5rem;
  background: transparent; color: var(--fs-blue); border: 2px solid var(--fs-blue);
  font-family: var(--fs-font-head); font-weight: 600;
  padding: .66rem 1.5rem; border-radius: 999px; transition: all .18s ease;
}
.fs-btn-outline:hover { background: var(--fs-blue); color: #fff; }
.fs-btn-light {
  background: #fff; color: var(--fs-blue); border: 0;
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--fs-font-head); font-weight: 600;
  padding: .72rem 1.6rem; border-radius: 999px; box-shadow: var(--fs-shadow-sm);
  transition: transform .18s ease;
}
.fs-btn-light:hover { color: var(--fs-blue-dark); transform: translateY(-2px); }

/* ---- Header -------------------------------------------------------------- */
.fs-header { position: sticky; top: 0; z-index: 1030; background: #fff; box-shadow: 0 2px 20px -12px rgba(42,66,128,.5); }
.fs-navbar { padding: .55rem 0; }
.fs-logo { height: 46px; width: auto; }
.fs-navbar .nav-link { font-family: var(--fs-font-head); font-weight: 500; color: var(--fs-text); padding: .4rem .85rem; position: relative; }
.fs-navbar .nav-link:hover { color: var(--fs-teal-dark); }
.fs-nav-entrar { color: var(--fs-blue) !important; font-weight: 600 !important; }
.fs-navbar .fs-btn-cta { padding: .55rem 1.3rem; }
@media (max-width: 991px){
  .fs-navbar .navbar-nav { padding-top: .5rem; gap: .1rem; }
  .fs-navbar .fs-btn-cta { margin-top: .5rem; width: fit-content; }
}

/* ---- Hero ---------------------------------------------------------------- */
.fs-hero { position: relative; background: var(--fs-grad); color: #fff; overflow: hidden; padding: 3.5rem 0 0; }
.fs-hero::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(900px 500px at 85% 10%, rgba(255,255,255,.14), transparent 60%);
}
.fs-hero .container { position: relative; z-index: 2; }
.fs-hero-eyebrow { display:inline-flex; align-items:center; gap:.5rem; background: rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.3); color:#fff; font-weight:600; font-family:var(--fs-font-head); padding:.35rem 1rem; border-radius:999px; font-size:.86rem; margin-bottom:1.1rem; }
.fs-hero h1 { color: #fff; font-size: clamp(2rem, 4.2vw, 3.3rem); font-weight: 800; line-height: 1.08; }
.fs-hero h1 .fs-accent { color: #d8f3f0; }
.fs-hero p.lead { color: rgba(255,255,255,.92); font-size: 1.12rem; max-width: 34rem; }
.fs-hero-80 { font-family: var(--fs-font-head); font-weight: 800; font-size: 1.05rem; background: rgba(255,255,255,.14); display:inline-block; padding:.5rem 1.1rem; border-radius: 12px; }
.fs-hero-img { position: relative; z-index: 2; max-width: 100%; filter: drop-shadow(0 30px 40px rgba(0,0,0,.25)); }
.fs-hero-badges { display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; margin-top:1.4rem; }
.fs-hero-badges span { display:inline-flex; align-items:center; gap:.45rem; font-weight:600; font-family:var(--fs-font-head); }
.fs-hero-badges i { font-size:1.2rem; color:#d8f3f0; }
.fs-hero-wave { display:block; width:100%; height:auto; margin-top:1rem; }

/* ---- Blocos de seção ----------------------------------------------------- */
.fs-section { padding: 4.5rem 0; }
.fs-section--soft { background: var(--fs-surface); }
.fs-section--grad { background: var(--fs-grad); color: #fff; }
.fs-eyebrow { font-family: var(--fs-font-head); font-weight: 700; text-transform: uppercase; letter-spacing: 2px; color: var(--fs-teal-dark); font-size: .82rem; }
.fs-section--grad .fs-eyebrow { color: #d8f3f0; }
.fs-title { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; }
.fs-section--grad .fs-title, .fs-section--grad h2, .fs-section--grad h3 { color: #fff; }
.fs-lead { color: var(--fs-muted); font-size: 1.05rem; }
.fs-section--grad .fs-lead { color: rgba(255,255,255,.9); }

/* ---- Sobre --------------------------------------------------------------- */
.fs-sobre-img { border-radius: var(--fs-radius); box-shadow: var(--fs-shadow); width: 100%; object-fit: cover; }
.fs-pill-25 { position:absolute; right: 8%; bottom: -24px; background:#fff; color:var(--fs-blue); border-radius:16px; padding:.9rem 1.2rem; box-shadow: var(--fs-shadow); font-family:var(--fs-font-head); }
.fs-pill-25 strong { display:block; font-size:1.9rem; line-height:1; color:var(--fs-teal-dark); }

/* ---- Stats rede credenciada --------------------------------------------- */
.fs-stats { display:grid; grid-template-columns: repeat(5, 1fr); gap:1rem; }
.fs-stat { text-align:center; background:#fff; border:1px solid var(--fs-border); border-radius:var(--fs-radius); padding:1.6rem 1rem; box-shadow: var(--fs-shadow-sm); }
.fs-stat img { height:46px; margin-bottom:.6rem; }
.fs-stat .fs-stat-num { font-family:var(--fs-font-head); font-weight:800; font-size:1.7rem; color:var(--fs-blue); line-height:1; }
.fs-stat .fs-stat-num small { font-size:.9rem; color:var(--fs-teal-dark); display:block; font-weight:600; }
.fs-stat .fs-stat-label { color:var(--fs-muted); font-size:.92rem; margin-top:.3rem; }
@media (max-width: 991px){ .fs-stats{ grid-template-columns: repeat(2,1fr);} }

/* ---- Serviços ------------------------------------------------------------ */
.fs-serv-grid { display:grid; grid-template-columns: repeat(4,1fr); gap:1rem; }
@media (max-width: 991px){ .fs-serv-grid{ grid-template-columns: repeat(2,1fr);} }
@media (max-width: 575px){ .fs-serv-grid{ grid-template-columns: repeat(2,1fr);} }
.fs-serv {
  background: rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); border-radius: 16px;
  padding: 1.3rem 1rem; text-align:center; color:#fff; transition: transform .18s ease, background .18s ease;
}
.fs-serv:hover { transform: translateY(-4px); background: rgba(255,255,255,.18); }
.fs-serv-ico { width:62px; height:62px; margin:0 auto .8rem; background:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.fs-serv-ico img { width:34px; height:34px; object-fit:contain; }
.fs-serv h3 { color:#fff; font-size:.98rem; font-weight:600; margin:0; line-height:1.25; }

/* ---- Planos -------------------------------------------------------------- */
.fs-plan { background:#fff; border:1px solid var(--fs-border); border-radius: var(--fs-radius); overflow:hidden; height:100%; display:flex; flex-direction:column; box-shadow: var(--fs-shadow-sm); transition: transform .2s ease, box-shadow .2s ease; }
.fs-plan:hover { transform: translateY(-6px); box-shadow: var(--fs-shadow); }
.fs-plan--destaque { border: 2px solid var(--fs-teal); }
.fs-plan-head { background: var(--fs-grad); color:#fff; padding:1.6rem 1.5rem 1.4rem; position:relative; }
.fs-plan--destaque .fs-plan-head { background: linear-gradient(120deg, var(--fs-blue) 0%, var(--fs-teal) 100%); }
.fs-plan-badge { position:absolute; top:1rem; right:1rem; background:#fff; color:var(--fs-blue); font-family:var(--fs-font-head); font-weight:700; font-size:.72rem; padding:.25rem .7rem; border-radius:999px; text-transform:uppercase; letter-spacing:.5px; }
.fs-plan-head h3 { color:#fff; margin:0 0 .4rem; font-size:1.3rem; }
.fs-plan-price { font-family:var(--fs-font-head); }
.fs-plan-price .fs-money { font-size:2.2rem; font-weight:800; }
.fs-plan-price .fs-cents { font-size:1.1rem; }
.fs-plan-price small { display:block; opacity:.9; font-weight:500; }
.fs-plan-body { padding:1.4rem 1.5rem; flex:1; display:flex; flex-direction:column; }
.fs-plan-cob { list-style:none; padding:0; margin:0 0 1rem; }
.fs-plan-cob li { position:relative; padding:.35rem 0 .35rem 1.7rem; font-size:.94rem; border-bottom:1px dashed var(--fs-border); }
.fs-plan-cob li::before { content:"\F26E"; font-family:"bootstrap-icons"; position:absolute; left:0; top:.35rem; color:var(--fs-teal); }
.fs-plan-anual { background:var(--fs-surface); border-radius:12px; padding:.7rem 1rem; margin-bottom:1rem; font-size:.9rem; }
.fs-plan-anual strong { color:var(--fs-blue); font-family:var(--fs-font-head); }
.fs-plan .fs-btn-cta, .fs-plan .fs-btn-outline { width:100%; justify-content:center; margin-top:auto; }

/* ---- Depoimentos --------------------------------------------------------- */
.fs-depo { background:#fff; border:1px solid var(--fs-border); border-radius:var(--fs-radius); padding:1.6rem; height:100%; box-shadow:var(--fs-shadow-sm); }
.fs-depo-stars { color:#f6b100; margin-bottom:.6rem; }
.fs-depo p { color:var(--fs-text); font-style:italic; }
.fs-depo .fs-depo-nome { font-family:var(--fs-font-head); font-weight:600; color:var(--fs-blue); margin:0; }

/* ---- CTA cobertura ------------------------------------------------------- */
.fs-mapa { max-width:100%; }

/* ---- Linha Freedom ------------------------------------------------------- */
.fs-linha-grid { display:grid; grid-template-columns: repeat(4,1fr); gap:1.1rem; }
@media (max-width: 991px){ .fs-linha-grid{ grid-template-columns: repeat(2,1fr);} }
@media (max-width: 479px){ .fs-linha-grid{ grid-template-columns: 1fr;} }
.fs-linha-card { border-radius:var(--fs-radius); overflow:hidden; background:#fff; border:1px solid var(--fs-border); box-shadow:var(--fs-shadow-sm); transition:transform .2s ease; }
.fs-linha-card:hover { transform:translateY(-4px); }
.fs-linha-card img { width:100%; height:180px; object-fit:cover; display:block; }
.fs-linha-card .fs-linha-cap { padding:.9rem 1rem; font-family:var(--fs-font-head); font-weight:600; color:var(--fs-blue); text-align:center; }

/* ---- Faixa CTA ----------------------------------------------------------- */
.fs-cta-faixa { background: var(--fs-grad); color:#fff; border-radius: 24px; padding: 2.6rem; box-shadow: var(--fs-shadow); }
.fs-cta-faixa h2 { color:#fff; }

/* ---- Footer -------------------------------------------------------------- */
.fs-footer { background: linear-gradient(160deg, #26304f 0%, #203a52 100%); color: rgba(255,255,255,.82); padding: 3.4rem 0 1.4rem; }
.fs-footer-top { padding-bottom: 2rem; border-bottom:1px solid rgba(255,255,255,.12); }
.fs-footer-logo { height:46px; margin-bottom:1rem; }
.fs-footer-logo--color { background:#fff; padding:6px 10px; border-radius:10px; }
.fs-footer-sobre { font-size:.92rem; line-height:1.6; }
.fs-footer h3 { color:#fff; font-size:1rem; font-weight:600; margin-bottom:1rem; }
.fs-footer-links { list-style:none; padding:0; margin:0; }
.fs-footer-links li { margin-bottom:.7rem; display:flex; flex-direction:column; font-size:.92rem; }
.fs-footer-links li span { color: rgba(255,255,255,.55); font-size:.78rem; text-transform:uppercase; letter-spacing:.5px; }
.fs-footer-links a { color:#fff; text-decoration:none; }
.fs-footer-links a:hover { color: var(--fs-teal-light); }
.fs-footer-produtos li { flex-direction:row; }
.fs-footer-produtos a { color: rgba(255,255,255,.82); }
.fs-footer-wpp { display:inline-flex; align-items:center; gap:.5rem; margin-top:1rem; color:#fff; background: rgba(78,157,158,.28); border:1px solid rgba(78,157,158,.5); padding:.5rem 1.1rem; border-radius:999px; text-decoration:none; font-weight:600; }
.fs-footer-wpp:hover { background: var(--fs-teal); color:#fff; }
.fs-footer-mount img { height:34px; margin-top:1rem; opacity:.9; }
.fs-footer-bar { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; justify-content:space-between; align-items:center; padding-top:1.4rem; font-size:.85rem; }
.fs-footer-bar p { margin:0; }
.fs-footer-bar a { color: var(--fs-teal-light); }

/* ---- WhatsApp float ------------------------------------------------------ */
.fs-wpp-float { position:fixed; right:18px; bottom:18px; z-index:1040; width:56px; height:56px; border-radius:50%; background:#25d366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.7rem; box-shadow:0 10px 26px -8px rgba(37,211,102,.7); transition:transform .18s ease; }
.fs-wpp-float:hover { transform:scale(1.08); color:#fff; }

/* ---- Páginas internas ---------------------------------------------------- */
.fs-page-hero { background: var(--fs-grad); color:#fff; padding: 3rem 0; }
.fs-page-hero h1 { color:#fff; }
.fs-page-hero .fs-breadcrumb { color: rgba(255,255,255,.8); font-size:.9rem; }
.fs-page-hero .fs-breadcrumb a { color:#fff; }
.fs-prose { max-width: 56rem; }
.fs-prose h2 { margin-top:2rem; font-size:1.4rem; }
.fs-prose h3 { margin-top:1.4rem; font-size:1.15rem; color:var(--fs-teal-dark); }
.fs-prose ul { padding-left:1.2rem; }
.fs-prose li { margin-bottom:.4rem; }

/* ---- Formulário de adesão ------------------------------------------------ */
.fs-form-wrap { background:#fff; border:1px solid var(--fs-border); border-radius:var(--fs-radius); box-shadow:var(--fs-shadow-sm); padding: 2rem; }
.fs-form-step-title { font-family:var(--fs-font-head); color:var(--fs-blue); font-weight:700; font-size:1.15rem; display:flex; align-items:center; gap:.6rem; margin: 1.6rem 0 1rem; padding-bottom:.5rem; border-bottom:2px solid var(--fs-surface); }
.fs-form-step-title:first-child { margin-top:0; }
.fs-form-step-title .fs-step-n { width:30px; height:30px; flex:none; background:var(--fs-grad); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.9rem; }
.fs-form-wrap label { font-weight:600; font-size:.88rem; color:var(--fs-text); margin-bottom:.25rem; }
.fs-form-wrap .form-control, .fs-form-wrap .form-select { border-radius:12px; border:1px solid var(--fs-border); padding:.6rem .85rem; }
.fs-form-wrap .form-control:focus, .fs-form-wrap .form-select:focus { border-color:var(--fs-teal); box-shadow:0 0 0 .2rem rgba(78,157,158,.18); }
.fs-plano-resumo { background: var(--fs-grad); color:#fff; border-radius:var(--fs-radius); padding:2.6rem 1.6rem 1.6rem; position:sticky; top:96px; }
.fs-plano-resumo h3 { color:#fff; }
.fs-plano-resumo .fs-money { font-family:var(--fs-font-head); font-size:2rem; font-weight:800; }
.fs-dep-card { border:1px dashed var(--fs-border); border-radius:14px; padding:1.1rem; margin-bottom:1rem; position:relative; background:var(--fs-surface); }
.fs-dep-remove { position:absolute; top:.6rem; right:.6rem; background:none; border:0; color:#c0392b; font-size:1.2rem; cursor:pointer; }
.fs-hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.fs-flash { border-radius:12px; padding:.9rem 1.2rem; margin-bottom:1.2rem; }
.fs-flash--err { background:#fdecea; color:#a93226; border:1px solid #f5c6cb; }

/* ---- Blog CTA na home ---------------------------------------------------- */
.fs-blog-sec { background: var(--fs-surface); }

/* ---- Utilidades ---------------------------------------------------------- */
.fs-anchor { position:relative; top:-80px; visibility:hidden; }
