/* Institucional Fin Farma: ritmo comum, texto no topo e mídia em fluxo normal. */
.ff-layout-proposta {
  --navy: #16305e;
  --ink: #0f1b33;
  --muted: #526079;
  --line: #dce5f0;
  --ff-wave-light: #eaf3ff;
  --ff-wave-soft: #dcebfe;
  --ff-section-space: 64px;
  --ff-column-gap: 40px;
  color: var(--ink);
  background: #fff;
}
.ff-layout-proposta .wrap { width: min(1240px, calc(100% - 80px)); }
.ff-layout-proposta .site-header { background: #fff; backdrop-filter: none; border-color: #e7edf5; }
.ff-layout-proposta .header-inner { min-height: 76px; }
.ff-layout-proposta h1, .ff-layout-proposta h2, .ff-layout-proposta h3 { color: var(--navy); }
.ff-layout-proposta .eyebrow { color: #45658f; font-size: 12px; font-weight: 600; letter-spacing: .055em; }
.ff-layout-proposta .button, .ff-layout-proposta .hero .button { background: var(--navy); border-color: var(--navy); border-radius: 10px; font-weight: 600; }
.ff-layout-proposta .button:hover { background: #214473; }
.ff-layout-proposta .button.outline { background: transparent; color: var(--navy); border-color: #bdcde0; }
.ff-layout-proposta .button.outline:hover { background: #edf4fd; }
.ff-layout-proposta :is(a,button,summary):focus-visible { outline: 3px solid #315d9e; outline-offset: 4px; }
.ff-layout-proposta .nav-item>.icon, .ff-layout-proposta .module-card-top>.icon,
.ff-layout-proposta .orbit-label .icon, .ff-layout-proposta .integration-steps li>span { color: var(--navy); }
.ff-layout-proposta .hero { position: relative; background: #f6faff; padding: 48px 0 56px; overflow: hidden; }
.ff-layout-proposta .hero:before { content: ""; position: absolute; width: 64%; height: 110%; right: -10%; top: -15%; border-radius: 50% 0 0 50%; background: var(--ff-wave-light); pointer-events: none; }
.ff-layout-proposta .hero:after { content: ""; position: absolute; width: 62%; height: 56%; right: -20%; bottom: -32%; border-radius: 50%; background: var(--ff-wave-soft); pointer-events: none; }
.ff-layout-proposta .hero-grid { position: relative; z-index: 1; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: var(--ff-column-gap); align-items: start; }
.ff-layout-proposta .hero-copy { max-width: 535px; min-width: 0; }
.ff-layout-proposta .hero h1 { font-weight: 600; font-size: clamp(38px, 3.7vw, 52px); line-height: 1.1; letter-spacing: -.04em; }
.ff-layout-proposta .hero h1 span { color: #2563eb; }
.ff-layout-proposta .lead { font-size: 17px; line-height: 1.65; max-width: 500px; }
.ff-layout-proposta .hero-proof { max-width: 470px; }
.ff-hero-visual { display: grid; gap: 10px; min-width: 0; margin: 0; padding: 0; align-self: start; }
.ff-hero-scene { width: 100%; overflow: hidden; border-radius: 18px; }
.ff-hero-scene img { display: block; width: 100%; height: auto; object-fit: contain; }
.ff-hero-visual figcaption, .ff-layout-proposta .premium-visual figcaption { color: #526b8e; font-size: 12px; line-height: 1.5; padding: 0 2px; }
.ff-layout-proposta .hero h1 .ff-hero-answer { display:block; margin-top:16px; font-size:clamp(25px,2.4vw,33px); line-height:1.25; letter-spacing:-.025em; color:var(--navy); }
.ff-hero-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; list-style:none; padding:0; margin:10px 0 0; }
.ff-hero-flow li { display:flex; align-items:flex-start; gap:9px; min-width:0; padding:15px 12px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.ff-hero-flow li>span { flex:none; color:#45658f; font:600 14px/1.5 Jost,Archivo,sans-serif; }
.ff-hero-flow strong { display:block; color:var(--navy); font-size:15px; line-height:1.35; font-weight:600; }
.ff-hero-flow small { display:block; margin-top:5px; color:var(--muted); font-size:14px; line-height:1.4; }
.ff-chat-module { margin:36px 0 56px; }
.ff-chat-module-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:24px; }
.ff-chat-module-heading>div { max-width:740px; }
.ff-chat-module-heading h3 { font-size:clamp(27px,2.5vw,34px); line-height:1.2; font-weight:600; }
.ff-chat-module-heading p:not(.eyebrow) { margin-top:14px; color:var(--muted); font-size:17px; line-height:1.65; }
.ff-chat-module-heading>a { flex:none; }
.ff-chat-demo-stage { margin-bottom:32px; scroll-margin-top:96px; }
.ff-preview-intro { display:grid; justify-items:start; gap:16px; padding:28px; background:#f8fbff; }
.ff-preview-intro h3 { font-size:24px; line-height:1.3; font-weight:600; }
.ff-preview-intro p { max-width:760px; font-size:16px; line-height:1.6; color:var(--muted); }
.ff-shared-preview-close { min-height:44px; padding:10px 14px; border:1px solid #c8d6e9; border-radius:9px; background:#fff; color:var(--navy); font:600 14px/1.4 Archivo,sans-serif; cursor:pointer; }
.ff-shared-preview-header { flex-wrap:wrap; }
@media (max-width:760px) {
 .ff-chat-module-heading { flex-direction:column; align-items:flex-start; }
 .ff-preview-intro { padding:22px 18px; }
 .ff-hero-flow { grid-template-columns:1fr; gap:8px; }
 .ff-hero-flow li { align-items:center; padding:12px 16px; }
 .ff-hero-flow li>div { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 12px; }
 .ff-hero-flow small { margin-top:0; }
}
.ff-preview-row { position: relative; z-index: 1; margin-top: 28px; min-width: 0; }
.ff-screen-card { min-width: 0; overflow: hidden; border: 1px solid #dbe4f0; border-radius: 14px; background: #fff; }
.ff-screen-label { color: #486182; font-size: 12px; line-height: 1.5; letter-spacing: .015em; }
.ff-screen-card .ff-screen-label { padding: 11px 16px; background: #f8faff; border-bottom: 1px solid #e4ebf5; }
.ff-screen-card>img { width: 100%; height: auto; display: block; }
.ff-layout-proposta .section, .ff-layout-proposta .modules-section { padding-block: var(--ff-section-space); }
.ff-layout-proposta .section-heading { margin-bottom: 32px; }
.ff-layout-proposta .section-heading h2, .ff-layout-proposta h2 { font-weight: 600; line-height: 1.18; }
.ff-layout-proposta .section-heading>p:not(.eyebrow) { font-size: 17px; line-height: 1.65; }
.ff-layout-proposta .partner-story { background: #fff; }
.ff-layout-proposta .operation-grid, .ff-layout-proposta .integration-grid, .ff-layout-proposta .intelligence-grid, .ff-layout-proposta .about-section { gap: var(--ff-column-gap); align-items: start; }
.ff-layout-proposta .partner-photo-media { border-radius: 18px; }
.ff-layout-proposta .partner-photo-media:after { opacity: .1; }
.ff-layout-proposta .partner-photo-media>img { filter: saturate(.75) contrast(.97); }
.ff-layout-proposta .integration-section { background: #f8fbff; }
.ff-layout-proposta .ff-erp-visual { display: grid; gap: 12px; background: transparent; border-radius: 0; padding: 0; }
.ff-layout-proposta .ff-erp-visual>img { width: 100%; height: auto; object-fit: contain; }
.ff-layout-proposta .integration-steps { gap: 16px; margin-block: 24px 16px; }
.ff-layout-proposta .intelligence-section { background: #fff; }
.ff-layout-proposta .ai-core { box-shadow: none!important; }
.ff-layout-proposta .orbit-label { border-radius: 8px; }
.ff-layout-proposta .trust-strip { background: #f5f9ff; border-color: #e3ebf7; }
.ff-layout-proposta .modules-section { background: #fff; }
.ff-layout-proposta .module-feature { gap: 24px var(--ff-column-gap); margin-block: 40px 56px; align-items: start; }
.ff-layout-proposta .module-feature-copy { min-width: 0; }
.ff-layout-proposta .module-feature-copy h3 { font-size: 34px; line-height: 1.2; font-weight: 600; max-width: 470px; }
.ff-layout-proposta .module-feature-copy>p:not(.eyebrow) { max-width: 470px; font-size: 17px; line-height: 1.65; }
.ff-layout-proposta .module-feature-copy .text-link { margin-top: 18px; }
.ff-layout-proposta .ff-purchases-visual, .ff-layout-proposta .ff-sales-visual, .ff-layout-proposta .ff-stock-visual, .ff-layout-proposta .ff-marketing-visual { display: grid; gap: 10px; overflow: visible; border-radius: 0; background: transparent; min-width: 0; }
.ff-context-scene { display: block; width: 100%; height: auto; border-radius: 18px; object-fit: contain; }
/* O lado faz parte da composição de cada módulo, sem depender da ordem do DOM. */
@media (min-width: 761px) {
  .ff-layout-proposta .ff-sales-feature>.ff-sales-visual,
  .ff-layout-proposta .ff-stock-feature>.ff-stock-visual { grid-column: 1; grid-row: 1; }
  .ff-layout-proposta .ff-sales-feature>.module-feature-copy,
  .ff-layout-proposta .ff-stock-feature>.module-feature-copy { grid-column: 2; grid-row: 1; }
  .ff-layout-proposta .ff-team-feature>.team-premium-visual,
  .ff-layout-proposta .ff-marketing-feature>.ff-marketing-visual { grid-column: 2; grid-row: 1; }
  .ff-layout-proposta .ff-team-feature>.module-feature-copy,
  .ff-layout-proposta .ff-marketing-feature>.module-feature-copy { grid-column: 1; grid-row: 1; }
}

/* Institucional: grupo Equipe em evidência, sem distorcer sua ilustração aprovada. */
.ff-layout-proposta .ff-team-feature.ff-team-centered {
  display: grid;
  grid-template-columns: minmax(0,1fr);
  justify-items: center;
  align-items: center;
  gap: 20px;
  margin-block: 52px 70px;
}
.ff-layout-proposta .ff-team-feature.ff-team-centered > .module-feature-copy {
  grid-column: 1;
  grid-row: 1;
  max-width: 740px;
  width: 100%;
  text-align: center;
}
.ff-layout-proposta .ff-team-feature.ff-team-centered > .module-feature-copy h3,
.ff-layout-proposta .ff-team-feature.ff-team-centered > .module-feature-copy > p:not(.eyebrow) {
  max-width: 100%;
}
.ff-layout-proposta .ff-team-feature.ff-team-centered > .team-premium-visual {
  grid-column: 1;
  grid-row: 2;
  width: min(100%,1050px);
  max-width: 1050px;
  margin-inline: auto;
  justify-self: center;
}
.ff-layout-proposta .ff-team-feature.ff-team-centered > .team-premium-visual img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  object-position: center;
}
@media (min-width:761px) {
  /* Vendas: imagem esquerda. Estoque: imagem direita. */
  .ff-layout-proposta .ff-sales-feature > .ff-sales-visual { grid-column:1;grid-row:1; }
  .ff-layout-proposta .ff-sales-feature > .module-feature-copy { grid-column:2;grid-row:1; }
  .ff-layout-proposta .ff-stock-feature > .ff-stock-visual { grid-column:2;grid-row:1; }
  .ff-layout-proposta .ff-stock-feature > .module-feature-copy { grid-column:1;grid-row:1; }
}
@media (max-width:760px) {
  .ff-layout-proposta .ff-team-feature.ff-team-centered { margin-block:32px 48px;gap:18px; }
  .ff-layout-proposta .ff-team-feature.ff-team-centered > .module-feature-copy { order:0;text-align:center; }
  .ff-layout-proposta .ff-team-feature.ff-team-centered > .team-premium-visual { order:0; }
}

.ff-feature-preview { grid-column: 1 / -1; grid-row: 2; min-width: 0; padding: 24px; border: 1px solid #dbe4f0; border-radius: 16px; background: #fff; color: var(--ink); }
.ff-feature-preview>p { margin-bottom: 12px; font-size: 15px; line-height: 1.6; }
.ff-feature-preview-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.ff-feature-preview-head h3 { font-size: 22px; line-height: 1.3; font-weight: 600; }
.ff-feature-preview-head .ff-screen-label { margin-bottom: 6px; }
.ff-preview-note { flex: 0 1 360px; max-width: 360px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.ff-preview-choices { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }
.ff-preview-choice { display: flex; align-items: center; gap: 12px; min-height: 58px; padding: 14px; background: #f8fbff; color: var(--navy); border: 1px solid #d3dfec; border-radius: 10px; text-align: left; font: 600 15px/1.4 Archivo,sans-serif; cursor: pointer; }
.ff-preview-choice:hover { background: #edf4fd; }
.ff-preview-choice[aria-pressed="true"] { background: var(--navy); color: #fff; border-color: var(--navy); }
.ff-preview-choice .icon { flex: none; width: 22px; height: 22px; }
.ff-preview-detail { display: grid; grid-template-columns: 1fr auto; gap: 16px 28px; align-items: start; padding: 18px 20px; background: #f8fbff; border-radius: 10px; }
.ff-preview-detail h4 { color: var(--navy); font-size: 17px; line-height: 1.4; margin-bottom: 6px; }
.ff-preview-detail p { color: var(--muted); font-size: 15px; line-height: 1.6; max-width: 760px; }
.ff-preview-detail a { align-self: center; white-space: nowrap; }
.ff-layout-proposta .module-journey { column-gap: 16px; row-gap: 16px; border: 0; }
.ff-layout-proposta .module-card { border: 1px solid #e1e8f2; border-radius: 14px; padding: 24px; background: #fbfcff; }
.ff-layout-proposta .module-card:hover { background: #edf4fe; }
.ff-layout-proposta .module-card h3 { font-weight: 600; max-width: none; }
.ff-layout-proposta .role-section { position: relative; background: var(--ff-wave-light); overflow: hidden; }
.ff-layout-proposta .role-section:after { content: ""; position: absolute; width: 120%; height: 48%; left: -10%; bottom: -25%; background: var(--ff-wave-soft); border-radius: 50%; pointer-events: none; }
.ff-layout-proposta .role-grid { position: relative; z-index: 1; display: block; }
.ff-layout-proposta .role-grid>div { max-width: 720px; margin: 0 auto 28px; text-align: center; }
.ff-layout-proposta .role-grid>div>p:not(.eyebrow) { font-size: 17px; line-height: 1.65; }
.ff-layout-proposta .team-premium-visual { background: transparent; border-radius: 18px; max-width: 1050px; margin-inline: auto; }
.ff-layout-proposta .team-premium-visual img { display: block; width: 100%; height: auto; object-fit: contain; }
.ff-layout-proposta .team-premium-visual figcaption { padding: 10px 4px 0; text-align: center; }
.ff-role-choices { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.ff-role-choice { display: flex; flex-direction: column; align-items: center; padding: 16px 16px 18px; gap: 12px; border: 1px solid #c8d6e9; border-radius: 14px; background: #f8fbff; color: var(--navy); font: 500 16px/1.5 Archivo,sans-serif; cursor: pointer; }
.ff-role-choice:hover { background: #edf4fd; }
.ff-role-choice[aria-pressed="true"] { border: 2px solid var(--navy); padding: 15px 15px 17px; background: #eaf3ff; }
.ff-role-choice>img { display: block; width: 100%; height: 210px; object-fit: contain; }
.ff-role-choice span { display: grid; gap: 2px; text-align: center; }
.ff-role-choice small { font-size: 14px; color: var(--muted); }
.ff-role-detail { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 16px 32px; margin-top: 18px; padding: 24px; border: 1px solid #dbe4f0; border-radius: 14px; background: #f8fbff; }
.ff-role-detail h3 { font-size: 23px; line-height: 1.3; font-weight: 600; }
.ff-role-detail p:not(.eyebrow) { margin-top: 10px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.ff-role-detail .eyebrow { margin-bottom: 8px; }
.ff-role-detail .button { align-self: center; }
.ff-layout-proposta #planos { padding-top: var(--ff-section-space); }
.ff-layout-proposta .plans article { border-radius: 16px; padding: 28px 24px; }
.ff-layout-proposta .plans h3 { font-weight: 600; }
.ff-layout-proposta .price strong { font-family: Jost,Archivo,sans-serif; font-weight: 600; font-variant-numeric: tabular-nums; }
.ff-layout-proposta .plan-featured { background: #f4f8ff; border-color: #a1b8d9!important; }
.ff-layout-proposta .faq { padding-top: 24px; }
.ff-layout-proposta .about-section { padding-top: 56px; }
.ff-layout-proposta .closing { position: relative; overflow: hidden; padding: 44px; background: var(--ff-wave-light); color: var(--navy); border: 1px solid #dbe7f7; gap: 36px; }
.ff-layout-proposta .closing:after { content: ""; position: absolute; width: 64%; height: 220%; right: -25%; top: -60%; border-radius: 50%; background: var(--ff-wave-soft); pointer-events: none; }
.ff-layout-proposta .closing>div { position: relative; z-index: 1; }
.ff-layout-proposta .closing .eyebrow { color: #45658f; }
.ff-layout-proposta .closing-actions .button { background: var(--navy); color: #fff; }
.ff-layout-proposta .closing-actions .button.outline { background: transparent; color: var(--navy); }
.ff-layout-proposta .footer { border-color: #e1e8f2; }
@media (max-width: 1100px) {
  .ff-layout-proposta { --ff-column-gap: 32px; }
  .ff-layout-proposta .wrap { width: calc(100% - 64px); }
  .ff-layout-proposta .hero h1 { font-size: 42px; }
  .ff-layout-proposta .hero .lead { font-size: 16px; }
  .ff-layout-proposta .module-feature-copy h3 { font-size: 31px; }
  .ff-role-choice>img { height: 180px; }
}
@media (max-width: 760px) {
  .ff-layout-proposta { --ff-section-space: 44px; --ff-column-gap: 24px; }
  .ff-layout-proposta .wrap { width: calc(100% - 40px); }
  .ff-layout-proposta .header-inner { min-height: 70px; }
  .ff-layout-proposta .hero { padding: 32px 0 40px; }
  .ff-layout-proposta .hero:before { width: 115%; right: -58%; }
  .ff-layout-proposta .hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .ff-layout-proposta .hero h1 { font-size: 38px; }
  .ff-layout-proposta .hero .lead { font-size: 16px; }
  .ff-hero-visual { gap: 8px; }
  .ff-preview-row { margin-top: 20px; }
  .ff-layout-proposta .module-feature { margin: 28px 0 40px; gap: 20px; }
  .ff-layout-proposta .module-feature-copy h3 { font-size: 29px; }
  .ff-layout-proposta .module-feature-copy .eyebrow { display: block; }
  .ff-layout-proposta .module-feature>.premium-visual,
  .ff-layout-proposta .module-feature>.module-feature-copy { grid-column: auto; grid-row: auto; }
  .ff-layout-proposta .module-feature>.module-feature-copy { order: -1; }
  .ff-feature-preview { grid-column: auto; grid-row: auto; padding: 18px; }
  .ff-feature-preview-head { display: block; }
  .ff-preview-note { margin-top: 10px; max-width: none; }
  .ff-preview-choices { grid-template-columns: 1fr; gap: 8px; margin-bottom: 12px; }
  .ff-preview-choice { min-height: 48px; padding: 12px; }
  .ff-preview-detail, .ff-role-detail { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
  .ff-preview-detail a { white-space: normal; }
  .ff-layout-proposta .role-grid>div { margin-bottom: 24px; text-align: left; }
  .ff-layout-proposta .team-premium-visual { border-radius: 14px; }
  .ff-role-choices { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .ff-role-choice { padding: 12px 10px 14px; gap: 8px; }
  .ff-role-choice[aria-pressed="true"] { padding: 11px 9px 13px; }
  .ff-role-choice>img { height: 155px; }
  .ff-role-detail h3 { font-size: 21px; }
  .ff-role-detail .button { justify-self: start; }
  .ff-layout-proposta .closing { padding: 30px 24px; }
  .ff-layout-proposta .plans article { padding: 25px 20px; }
  .ff-layout-proposta .about-section { padding-top: 40px; }
}
@media (max-width: 360px) {
  .ff-layout-proposta .hero h1 { font-size: 34px; }
  .ff-role-choice>img { height: 130px; }
}
