@font-face {
    font-family: "Avie Fraunces";
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
    src: url("/static/fonts/avie/fraunces-latin.woff2?v=20260613-type") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Avie Fraunces";
    font-style: normal;
    font-weight: 300 900;
    font-display: swap;
    src: url("/static/fonts/avie/fraunces-latin-ext.woff2?v=20260613-type") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Avie Instrument Sans";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("/static/fonts/avie/instrument-sans-latin.woff2?v=20260613-type") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Avie Instrument Sans";
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url("/static/fonts/avie/instrument-sans-latin-ext.woff2?v=20260613-type") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: "Avie Instrument Sans";
    font-style: italic;
    font-weight: 400 700;
    font-display: swap;
    src: url("/static/fonts/avie/instrument-sans-italic-latin.woff2?v=20260613-type") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: "Avie Instrument Sans";
    font-style: italic;
    font-weight: 400 700;
    font-display: swap;
    src: url("/static/fonts/avie/instrument-sans-italic-latin-ext.woff2?v=20260613-type") format("woff2");
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
    color-scheme: light;
    /* Paleta 4 "Vinho / Luxo emocional" (oficial 2026-06). Os nomes de token
       legados (lilac/green/blue/sage) são reancorados para a nova paleta — assim
       toda a landing herda a marca sem reescrever cada regra. */
    --landing-bg: #f5ece4;          /* nude quente */
    --landing-bg-alt: #efe2da;
    --landing-surface: #ffffff;
    --landing-surface-warm: #fbf4ec;
    --landing-ink: #351a24;          /* bordô escuro */
    --landing-text: #5a4048;
    --landing-muted: #8a6e74;
    --landing-border: #e6d6ce;
    --landing-border-strong: #c9a7a0; /* rosa queimado */
    /* Accent principal: vinho acetinado (reancora o antigo "lilac"/"sage"). */
    --landing-lilac: #6d3746;
    --landing-lilac-dark: #4f2632;
    --landing-lilac-soft: #f3e6e2;
    /* "green" vira realce ouro envelhecido (badges premium tipo "ao vivo"). */
    --landing-green: #8a6a2e;
    --landing-green-soft: #f3ebdb;
    /* "blue" vira bordô profundo (detalhes de contraste). */
    --landing-blue: #351a24;
    --landing-blue-soft: #f1e4e1;
    /* coral aquecido, harmoniza com vinho/nude. */
    --landing-coral: #b2674f;
    --landing-coral-soft: #f6e6df;
    --landing-sage: #6d3746;
    --landing-sage-deep: #4f2632;
    /* Ouro envelhecido — realce premium (linhas finas, ícones, detalhes). */
    --landing-gold: #b9985a;
    --landing-gold-soft: rgba(185, 152, 90, 0.16);
    --landing-gold-line: rgba(185, 152, 90, 0.45);
    --landing-shadow: 0 24px 70px rgba(53, 26, 36, 0.14);
    --landing-shadow-soft: 0 12px 34px rgba(53, 26, 36, 0.08);
    --landing-width: 1180px;
    --font-ui: "Avie Instrument Sans", Inter, "Aptos", "Segoe UI", Arial, sans-serif;
    --font-display: "Avie Fraunces", Georgia, "Times New Roman", serif;
    background: var(--landing-bg);
    color: var(--landing-ink);
    font-family: var(--font-ui);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
    background: var(--landing-bg);
}

body.landing-body {
    margin: 0;
    overflow-x: hidden;
    background: var(--landing-bg);
    color: var(--landing-ink);
    font-family: var(--font-ui);
    font-feature-settings: "ss01" 1, "ss02" 1;
    font-size: 16px;
    line-height: 1.5;
}

body.landing-body a {
    color: inherit;
}

.landing-header {
    position: sticky;
    top: 0;
    z-index: 50;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 72px;
    padding: 14px 40px;
    border-bottom: 1px solid rgba(221, 216, 206, 0.86);
    background: rgba(246, 244, 239, 0.92);
    backdrop-filter: blur(18px);
}

.landing-logo,
.footer-brand {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--landing-ink);
    font-size: 1.48rem;
    font-weight: 780;
    line-height: 1;
    letter-spacing: 0;
    text-decoration: none;
    white-space: nowrap;
}

.landing-logo img,
.footer-brand img {
    display: block;
}

.landing-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-width: 0;
    flex-wrap: nowrap;
}

.landing-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 11px;
    border-radius: 8px;
    color: #351a24;
    font-size: 0.9rem;
    font-weight: 720;
    text-decoration: none;
    white-space: nowrap;
    transition: background 160ms ease, color 160ms ease, transform 160ms ease;
}

.landing-nav a:hover {
    background: #ffffff;
    color: var(--landing-ink);
    transform: translateY(-1px);
}

.landing-nav .landing-login,
.landing-nav .nav-contact {
    border: 1px solid var(--landing-border);
    background: #ffffff;
    color: var(--landing-ink);
}

.landing-nav .nav-contact {
    border-color: var(--landing-ink);
    background: var(--landing-ink);
    color: #ffffff;
}

.landing-hero,
.landing-section,
.contact-section,
.company-hero,
.company-story {
    scroll-margin-top: 92px;
}

.landing-hero {
    display: grid;
    gap: 14px;
    min-height: 0;
    padding: clamp(22px, 3vw, 30px) 40px 18px;
    border-bottom: 1px solid var(--landing-border);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.78), rgba(245, 244, 239, 0.96)),
        linear-gradient(90deg, rgba(53, 26, 36, 0.045) 1px, transparent 1px),
        linear-gradient(0deg, rgba(109, 55, 70, 0.07) 1px, transparent 1px);
    background-size: auto, 108px 108px, 108px 108px;
}

.hero-copy {
    max-width: 860px;
    margin: 0 auto;
    text-align: center;
}

.landing-kicker {
    margin: 0 0 8px;
    color: var(--landing-lilac-dark);
    font-size: 0.76rem;
    font-weight: 820;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.hero-kicker {
    display: inline-flex;
    max-width: 100%;
    padding: 6px 10px;
    border: 1px solid rgba(109, 55, 70, 0.28);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.88);
    color: #351a24;
    box-shadow: 0 8px 24px rgba(53, 26, 36, 0.05);
}

.hero-copy h1 {
    max-width: 820px;
    margin: 0 auto;
    color: var(--landing-ink);
    font-size: clamp(2.4rem, 4.1vw, 3.4rem);
    font-weight: 760;
    line-height: 1;
    letter-spacing: 0;
}

.hero-subtitle {
    max-width: 690px;
    margin: 12px auto 0;
    color: var(--landing-text);
    font-size: 1rem;
    line-height: 1.56;
}

.hero-actions,
.contact-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.landing-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 8px;
    font-weight: 780;
    text-decoration: none;
    transition: transform 150ms ease, box-shadow 150ms ease, background 150ms ease, border-color 150ms ease;
}

.landing-button:hover {
    transform: translateY(-2px);
}

.landing-button-primary {
    background: var(--landing-ink);
    color: #ffffff;
    box-shadow: 0 14px 30px rgba(53, 26, 36, 0.18);
}

.landing-button.landing-button-primary,
.landing-button.landing-button-primary:visited {
    color: #ffffff;
}

.landing-button-secondary {
    border-color: var(--landing-border-strong);
    background: #ffffff;
    color: var(--landing-ink);
}

.hero-product {
    width: min(100%, 1160px);
    margin: 0 auto;
}

.portal-window,
.portal-menu-preview,
.price-card,
.buying-options,
.option-card,
.implementation-step,
.safety-grid div,
.faq-list,
.company-story-card {
    border: 1px solid var(--landing-border);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--landing-shadow-soft);
}

.portal-window {
    overflow: hidden;
    box-shadow: var(--landing-shadow);
}

.portal-window-topbar {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    padding: 7px 12px;
    border-bottom: 1px solid var(--landing-border);
    background: #f9f4ec;
}

.portal-window-topbar span {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: #d9cfc1;
}

.portal-window-topbar span:nth-child(1) {
    background: var(--landing-coral);
}

.portal-window-topbar span:nth-child(2) {
    background: #e7b85b;
}

.portal-window-topbar span:nth-child(3) {
    background: var(--landing-green);
}

.portal-window-topbar strong {
    margin-left: 6px;
    color: var(--landing-muted);
    font-size: 0.78rem;
    font-weight: 760;
}

.portal-preview-grid {
    display: grid;
    grid-template-columns: 240px minmax(340px, 1fr) 270px;
    min-height: 270px;
    background: #fbfaf7;
}

.portal-mini-inbox,
.portal-thread,
.portal-suggestion {
    min-width: 0;
}

.portal-mini-inbox {
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 14px;
    border-right: 1px solid var(--landing-border);
    background: #f4efe7;
}

.portal-panel-title {
    display: block;
    color: var(--landing-muted);
    font-size: 0.72rem;
    font-weight: 820;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-chat-row {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) auto;
    gap: 8px;
    align-items: center;
    padding: 8px;
    border: 1px solid var(--landing-border);
    border-radius: 8px;
    background: #ffffff;
}

.portal-chat-row.active {
    border-color: rgba(109, 55, 70, 0.38);
    background: var(--landing-lilac-soft);
    box-shadow: inset 3px 0 0 var(--landing-lilac);
}

.portal-chat-row.warning {
    border-color: rgba(204, 96, 79, 0.28);
    background: var(--landing-coral-soft);
}

.portal-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border: 1px solid var(--landing-border);
    border-radius: 50%;
    background: #ffffff;
    color: var(--landing-lilac-dark);
    font-size: 0.78rem;
    font-weight: 760;
}

.portal-avatar.muted {
    color: var(--landing-blue);
}

.portal-avatar.warn {
    color: var(--landing-coral);
}

.portal-chat-row strong,
.portal-chat-row p,
.portal-chat-row em {
    display: block;
    margin: 0;
}

.portal-chat-row strong {
    overflow: hidden;
    color: var(--landing-ink);
    font-size: 0.85rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-chat-row p,
.portal-chat-row em {
    color: var(--landing-muted);
    font-size: 0.74rem;
    font-style: normal;
}

.portal-thread {
    display: flex;
    flex-direction: column;
    padding: 0;
    background:
        linear-gradient(rgba(255, 255, 255, 0.78), rgba(255, 255, 255, 0.78)),
        linear-gradient(135deg, rgba(109, 55, 70, 0.12) 1px, transparent 1px);
    background-size: auto, 24px 24px;
}

.portal-thread-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 50px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--landing-border);
    background: #ffffff;
}

.portal-thread-header strong,
.portal-thread-header span {
    display: block;
}

.portal-thread-header strong {
    color: var(--landing-ink);
    line-height: 1.1;
}

.portal-thread-header span:not(.portal-badge) {
    color: var(--landing-muted);
    font-size: 0.78rem;
}

.portal-badge {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 4px 8px;
    border: 1px solid rgba(109, 55, 70, 0.34);
    border-radius: 8px;
    background: var(--landing-lilac-soft);
    color: var(--landing-lilac-dark);
    font-size: 0.72rem;
    font-weight: 760;
    white-space: nowrap;
}

.portal-messages {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
    padding: 10px 16px;
}

.msg {
    display: grid;
    gap: 4px;
    max-width: 76%;
}

.msg.in {
    align-self: flex-start;
}

.msg.out {
    align-self: flex-end;
}

.msg-name {
    margin: 0 8px;
    color: var(--landing-muted);
    font-size: 0.66rem;
    font-weight: 700;
}

.msg.out .msg-name {
    text-align: right;
    color: var(--landing-ink);
}

.msg p {
    margin: 0;
    padding: 7px 9px;
    border-radius: 10px;
    color: var(--landing-ink);
    font-size: 0.78rem;
    line-height: 1.3;
}

.msg.in p {
    border: 1px solid var(--landing-border);
    border-bottom-left-radius: 4px;
    background: #ffffff;
}

.msg.out p {
    border-bottom-right-radius: 4px;
    background: var(--landing-ink);
    color: #fffaf2;
}

.portal-composer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 12px;
    border-top: 1px solid var(--landing-border);
    background: #ffffff;
}

.portal-composer span {
    overflow: hidden;
    color: var(--landing-muted);
    font-size: 0.78rem;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.portal-composer button {
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid var(--landing-lilac);
    border-radius: 8px;
    background: var(--landing-lilac);
    color: #ffffff;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 780;
}

.portal-suggestion {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 9px;
    padding: 16px;
    border-left: 1px solid var(--landing-border);
    background: #ffffff;
}

.portal-suggestion h3,
.portal-suggestion p {
    margin: 0;
}

.portal-suggestion h3 {
    color: var(--landing-ink);
    font-size: 1.22rem;
    line-height: 1.1;
}

.portal-suggestion p {
    color: var(--landing-text);
    font-size: 0.84rem;
}

.portal-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.portal-tags span {
    display: inline-flex;
    padding: 4px 8px;
    border: 1px solid var(--landing-border);
    border-radius: 8px;
    background: var(--landing-bg-alt);
    color: var(--landing-text);
    font-size: 0.72rem;
    font-weight: 700;
}

.landing-section {
    position: relative;
    padding: 68px 40px;
    border-bottom: 1px solid var(--landing-border);
}

.portal-section,
.pricing-section,
.faq-section {
    background: var(--landing-surface);
}

.flow-section {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.74), rgba(246, 244, 239, 0.94)),
        linear-gradient(90deg, rgba(109, 55, 70, 0.06) 1px, transparent 1px);
    background-size: auto, 110px 110px;
}

.safety-section {
    background: var(--landing-bg-alt);
}

.section-heading {
    max-width: 850px;
    margin: 0 auto 30px;
    text-align: center;
}

.split-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.54fr);
    gap: 30px;
    align-items: end;
    max-width: var(--landing-width);
    margin: 0 auto 28px;
}

.section-heading h2,
.split-heading h2,
.contact-section h2,
.company-hero h1 {
    margin: 0;
    color: var(--landing-ink);
    font-size: clamp(2.1rem, 3.4vw, 3.36rem);
    font-weight: 740;
    line-height: 1.04;
    letter-spacing: 0;
}

.section-heading p:not(.landing-kicker),
.split-heading p,
.contact-section p,
.company-hero p,
.company-story p {
    color: var(--landing-text);
    font-size: 1.06rem;
}

.split-heading > p {
    margin: 0;
}

.portal-menu-preview {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 0;
    max-width: var(--landing-width);
    margin: 0 auto;
    overflow: hidden;
}

.portal-menu-card {
    padding: 18px;
    border-right: 1px solid var(--landing-border);
    background: #f4efe7;
}

.menu-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--landing-border);
}

.menu-brand strong,
.menu-brand span {
    display: block;
}

.menu-brand strong {
    color: var(--landing-ink);
    font-size: 1.16rem;
    line-height: 1;
}

.menu-brand span {
    color: var(--landing-muted);
    font-size: 0.78rem;
}

.portal-menu-card nav {
    display: grid;
    gap: 4px;
    margin-top: 14px;
}

.menu-section-label {
    margin: 12px 0 4px;
    color: var(--landing-muted);
    font-size: 0.68rem;
    font-weight: 820;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-menu-card a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-height: 34px;
    padding: 7px 10px;
    border-radius: 8px;
    color: var(--landing-text);
    font-size: 0.88rem;
    font-weight: 700;
    text-decoration: none;
}

.portal-menu-card a.active,
.portal-menu-card a:hover {
    background: var(--landing-lilac-soft);
    color: var(--landing-lilac-dark);
}

.portal-menu-card a em {
    display: inline-flex;
    min-width: 22px;
    justify-content: center;
    padding: 1px 6px;
    border-radius: 999px;
    background: var(--landing-lilac);
    color: #ffffff;
    font-size: 0.68rem;
    font-style: normal;
}

.portal-feature-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--landing-border);
}

.portal-feature-cards article {
    min-height: 210px;
    padding: 26px;
    background: #ffffff;
}

.portal-feature-cards span,
.price-label,
.option-eyebrow {
    color: var(--landing-lilac-dark);
    font-size: 0.72rem;
    font-weight: 820;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.portal-feature-cards h3 {
    margin: 12px 0 10px;
    color: var(--landing-ink);
    font-size: 1.46rem;
    line-height: 1.08;
}

.portal-feature-cards p {
    margin: 0;
    color: var(--landing-text);
}

.implementation-grid,
.safety-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    max-width: var(--landing-width);
    margin: 0 auto;
}

.implementation-step {
    min-height: 218px;
    padding: 24px;
    background: rgba(255, 255, 255, 0.94);
}

.implementation-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin-bottom: 28px;
    border-radius: 8px;
    background: var(--landing-ink);
    color: #ffffff;
    font-weight: 820;
}

.implementation-step h3,
.safety-grid strong {
    margin: 0 0 10px;
    color: var(--landing-ink);
    font-size: 1.22rem;
}

.implementation-step p,
.safety-grid span {
    margin: 0;
    color: var(--landing-text);
}

.safety-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.safety-grid div {
    min-height: 140px;
    padding: 22px;
    box-shadow: none;
}

.safety-grid strong,
.safety-grid span {
    display: block;
}

.pricing-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 340px;
    gap: 16px;
    max-width: var(--landing-width);
    margin: 0 auto;
    align-items: stretch;
}

.price-card,
.buying-options {
    padding: 24px;
}

.price-card.highlighted {
    border-color: rgba(109, 55, 70, 0.38);
    background: linear-gradient(180deg, #ffffff, #efe2da);
}

.price-card h3 {
    margin: 14px 0 12px;
    color: var(--landing-ink);
    font-size: 2.1rem;
    line-height: 1.08;
}

.price-card del {
    display: inline-block;
    margin-right: 8px;
    color: var(--landing-muted);
    font-size: 1.03rem;
    font-weight: 720;
    text-decoration-color: var(--landing-coral);
    text-decoration-thickness: 2px;
}

.price-card p,
.price-card li,
.buying-options p,
.option-card span {
    color: var(--landing-text);
}

.price-card ul {
    display: grid;
    gap: 10px;
    margin: 20px 0 0;
    padding-left: 18px;
}

.buying-options {
    display: grid;
    align-content: start;
    gap: 12px;
    background: var(--landing-ink);
    color: #ffffff;
}

.buying-options h3 {
    margin: 0;
    color: #ffffff;
    font-size: 1.58rem;
    line-height: 1.12;
}

.buying-options p,
.buying-options .option-eyebrow {
    color: #e6d6ce;
}

.option-card {
    display: block;
    padding: 16px;
    text-decoration: none;
    box-shadow: none;
    transition: transform 150ms ease, border-color 150ms ease, background 150ms ease;
}

.option-card:hover {
    transform: translateY(-2px);
}

.option-card strong,
.option-card span {
    display: block;
}

.option-card strong {
    margin-bottom: 7px;
    color: var(--landing-ink);
    font-size: 1rem;
}

.primary-option {
    border-color: rgba(255, 255, 255, 0.2);
    background: #ffffff;
}

.primary-option strong,
.primary-option span {
    color: var(--landing-ink);
}

.buying-options .option-card:not(.primary-option) {
    border-color: rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.08);
}

.buying-options .option-card:not(.primary-option) strong,
.buying-options .option-card:not(.primary-option) span {
    color: #ffffff;
}

.faq-list {
    max-width: 900px;
    margin: 0 auto;
    box-shadow: none;
}

.faq-list details {
    border-bottom: 1px solid var(--landing-border);
}

.faq-list details:last-child {
    border-bottom: 0;
}

.faq-list summary {
    padding: 20px 24px;
    color: var(--landing-ink);
    font-size: 1.06rem;
    font-weight: 780;
    cursor: pointer;
}

.faq-list p {
    margin: 0;
    padding: 0 24px 20px;
    color: var(--landing-text);
}

.contact-section {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 24px;
    align-items: center;
    padding: 58px 40px;
    background: linear-gradient(135deg, #161821, #222733 58%, #24404a);
    color: #ffffff;
}

.contact-section > div:first-child {
    max-width: 760px;
}

.contact-section .landing-kicker,
.contact-section p {
    color: #e6d6ce;
}

.contact-section h2 {
    color: #ffffff;
}

.contact-section .landing-button.landing-button-primary {
    background: #ffffff;
    color: var(--landing-ink);
}

.contact-section .landing-button-secondary {
    border-color: rgba(255, 255, 255, 0.3);
    background: transparent;
    color: #ffffff;
}

.landing-footer {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 18px;
    padding: 24px 40px;
    background: var(--landing-ink);   /* bordô escuro da marca */
    color: #f1e4e1;
    border-top: 1px solid var(--landing-gold-line);
}

.footer-brand {
    color: #efe2da;
    font-size: 1.3rem;
}

.footer-brand img {
    filter: invert(1);
}

.landing-footer p {
    margin: 0;
    color: #c9a7a0;
}

.landing-footer a {
    color: #efe2da;
    font-weight: 780;
    text-decoration: none;
}

.language-switch {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border: 1px solid rgba(243, 230, 226, 0.22);
    border-radius: 8px;
}

.language-switch button {
    min-height: 32px;
    padding: 6px 9px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #c9a7a0;
    font: inherit;
    font-size: 0.8rem;
    font-weight: 780;
    cursor: pointer;
}

.language-switch button[aria-pressed="true"] {
    background: #efe2da;
    color: #101219;
}

.reveal {
    opacity: 1;
    transform: none;
}

.js-enabled .reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 520ms ease, transform 520ms ease;
}

.js-enabled .reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

[data-reveal-delay="2"] {
    transition-delay: 120ms;
}

.company-hero {
    display: grid;
    grid-template-columns: 90px minmax(0, 760px);
    gap: 22px;
    align-items: center;
    max-width: 980px;
    margin: 0 auto;
    padding: 86px 40px 54px;
}

.company-hero img {
    width: 90px;
    height: 90px;
}

.company-hero p {
    margin: 18px 0 0;
}

.company-story {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 40px 86px;
}

.company-story-card {
    padding: 34px;
}

.company-story p {
    margin: 0 0 18px;
}

.company-story p:last-child {
    margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 1ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 1ms !important;
    }

    .js-enabled .reveal {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 1180px) {
    .portal-preview-grid,
    .pricing-layout {
        grid-template-columns: 1fr;
    }

    .portal-mini-inbox,
    .portal-suggestion {
        border: 0;
    }

    .portal-mini-inbox {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .portal-mini-inbox .portal-panel-title {
        grid-column: 1 / -1;
    }

    .portal-suggestion {
        border-top: 1px solid var(--landing-border);
    }
}

@media (max-width: 900px) {
    .landing-header {
        padding: 12px 20px;
    }

    .landing-hero,
    .landing-section,
    .contact-section {
        padding-left: 22px;
        padding-right: 22px;
    }

    .hero-copy {
        text-align: left;
    }

    .hero-copy h1,
    .hero-subtitle {
        margin-left: 0;
        margin-right: 0;
    }

    .hero-actions,
    .contact-actions {
        justify-content: flex-start;
    }

    .split-heading,
    .portal-menu-preview,
    .contact-section,
    .company-hero {
        grid-template-columns: 1fr;
    }

    .portal-menu-card {
        border-right: 0;
        border-bottom: 1px solid var(--landing-border);
    }

    .implementation-grid,
    .safety-grid,
    .portal-feature-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .landing-footer {
        grid-template-columns: 1fr auto;
    }

    .landing-footer p {
        grid-column: 1 / -1;
        grid-row: 2;
    }
}

@media (max-width: 720px) {
    body.landing-body {
        font-size: 15px;
    }

    .landing-header {
        gap: 10px;
        min-height: 62px;
        padding: 9px 12px;
        overflow: hidden;
    }

    .landing-logo {
        flex: 0 0 auto;
        gap: 8px;
        font-size: 1.22rem;
    }

    .landing-logo img {
        width: 25px;
        height: 25px;
    }

    .landing-nav {
        flex: 1 1 auto;
        justify-content: flex-start;
        gap: 5px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .landing-nav::-webkit-scrollbar {
        display: none;
    }

    .landing-nav a {
        flex: 0 0 auto;
        min-height: 34px;
        padding: 7px 9px;
        font-size: 0.78rem;
    }

    /* Esconde as âncoras de seção (#sec e /#sec) — caberiam só com scroll
       horizontal e empurravam o "Entrar"/"Login" pra fora do header (ficava
       cortado tipo "Logi"). CTA "Conversar"/"Entrar"/"Login" e "Empresa"
       continuam visíveis e sem aperto. */
    .landing-nav a[href^="#"],
    .landing-nav a[href^="/#"] {
        display: none;
    }

    /* Sem âncoras, a navbar não precisa rolar: alinha o CTA à direita. */
    .landing-nav {
        justify-content: flex-end;
        overflow-x: visible;
    }

    .landing-hero {
        min-height: 0;
        gap: 12px;
        padding-top: 24px;
        padding-bottom: 16px;
    }

    .hero-kicker {
        padding: 5px 9px;
    }

    .hero-copy h1 {
        font-size: 2.18rem;
        line-height: 1.02;
    }

    .hero-subtitle {
        margin-top: 10px;
        font-size: 0.94rem;
        line-height: 1.46;
    }

    .hero-actions,
    .contact-actions {
        align-items: stretch;
        gap: 8px;
        margin-top: 14px;
    }

    .landing-button {
        width: 100%;
        min-height: 42px;
        padding: 9px 12px;
    }

    .hero-actions .landing-button-secondary {
        display: none;
    }

    .portal-window-topbar {
        min-height: 34px;
        padding: 7px 10px;
    }

    .portal-preview-grid {
        position: relative;
        display: block;
        min-height: 0;
    }

    .portal-mini-inbox,
    .portal-feature-cards,
    .implementation-grid,
    .safety-grid {
        grid-template-columns: 1fr;
    }

    .portal-mini-inbox {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
        padding: 9px;
    }

    .portal-mini-inbox .portal-panel-title,
    .portal-chat-row.warning {
        display: none;
    }

    .portal-chat-row {
        grid-template-columns: 30px minmax(0, 1fr);
        min-height: 50px;
        gap: 7px;
        padding: 7px;
    }

    .portal-chat-row em {
        display: none;
    }

    .portal-avatar {
        width: 30px;
        height: 30px;
    }

    .portal-thread {
        min-height: 230px;
    }

    .portal-thread-header {
        align-items: center;
        flex-direction: row;
        min-height: 48px;
        padding: 9px 10px;
    }

    .portal-thread-header span:not(.portal-badge) {
        display: none;
    }

    .portal-badge {
        min-height: 24px;
        padding: 4px 7px;
        font-size: 0.68rem;
    }

    .portal-messages {
        padding: 12px 10px 76px;
    }

    .msg {
        max-width: 92%;
    }

    .msg p {
        font-size: 0.76rem;
        line-height: 1.28;
    }

    .portal-composer {
        display: none;
    }

    .portal-feature-cards article,
    .implementation-step,
    .safety-grid div,
    .price-card,
    .buying-options {
        padding: 22px;
    }

    .portal-suggestion {
        position: absolute;
        right: 9px;
        bottom: 9px;
        left: 9px;
        gap: 3px;
        padding: 10px;
        border: 1px solid rgba(109, 55, 70, 0.28);
        border-radius: 8px;
        box-shadow: 0 12px 26px rgba(53, 26, 36, 0.12);
    }

    .portal-suggestion .portal-panel-title {
        font-size: 0.62rem;
    }

    .portal-suggestion h3 {
        font-size: 0.9rem;
        line-height: 1.15;
    }

    .portal-suggestion p,
    .portal-tags {
        display: none;
    }

    .landing-section {
        padding-top: 44px;
        padding-bottom: 44px;
    }

    .section-heading,
    .split-heading {
        margin-bottom: 26px;
        text-align: left;
    }

    .section-heading h2,
    .split-heading h2,
    .contact-section h2,
    .company-hero h1 {
        font-size: 2.02rem;
    }

    .price-card h3 {
        font-size: 1.72rem;
    }

    .faq-list summary {
        padding: 18px;
    }

    .faq-list p {
        padding: 0 18px 18px;
    }

    .contact-section {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .landing-footer {
        grid-template-columns: 1fr;
        padding: 24px 22px;
    }

    .landing-footer p {
        grid-column: auto;
        grid-row: auto;
    }

    .language-switch {
        width: max-content;
    }

    .company-hero,
    .company-story {
        padding-left: 22px;
        padding-right: 22px;
    }

    .company-hero {
        gap: 16px;
        padding-top: 58px;
    }

    .company-hero img {
        width: 62px;
        height: 62px;
    }

    .company-story-card {
        padding: 24px;
    }
}

@media (max-width: 430px) {
    .hero-copy h1 {
        font-size: 2.32rem;
    }
}

@media (prefers-color-scheme: dark) {
    :root {
        color-scheme: light;
    }

    body.landing-body {
        background: var(--landing-bg);
        color: var(--landing-ink);
    }
}

/* Story landing refresh */
.story-hero {
    gap: 10px;
    padding-top: clamp(14px, 2vw, 18px);
    padding-bottom: 34px;
}

.story-hero .hero-copy {
    max-width: 1160px;
}

.story-hero .hero-copy h1 {
    max-width: 1120px;
    font-size: clamp(2.65rem, 3.85vw, 3.62rem);
    line-height: 0.98;
}

.story-hero .hero-subtitle {
    max-width: 760px;
    font-size: 1.08rem;
}

.product-preview {
    width: min(100%, 1180px);
    margin: 0 auto;
}

.product-browser {
    overflow: hidden;
    border: 1px solid var(--landing-border);
    border-radius: 14px;
    background: #fffdf8;
    box-shadow: var(--landing-shadow);
}

.product-browser-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 36px;
    padding: 8px 13px;
    border-bottom: 1px solid var(--landing-border);
    background: #f7f0e6;
}

.product-browser-bar > span {
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: #d8cbb8;
}

.product-browser-bar > span:nth-child(1) { background: var(--landing-sage); }
.product-browser-bar > span:nth-child(2) { background: #c9a7a0; }
.product-browser-bar > span:nth-child(3) { background: var(--landing-border); }

.product-browser-bar strong {
    margin-left: 6px;
    color: var(--landing-muted);
    font-size: 0.78rem;
    font-weight: 760;
}

.product-browser-bar em {
    margin-left: auto;
    padding: 4px 8px;
    border: 1px solid rgba(109, 55, 70, 0.25);
    border-radius: 999px;
    background: var(--landing-green-soft);
    color: var(--landing-green);
    font-size: 0.68rem;
    font-style: normal;
    font-weight: 780;
}

.product-app-shell {
    display: grid;
    grid-template-columns: 230px 245px minmax(360px, 1fr) 270px;
    min-height: 372px;
    background: #fbfaf7;
}

.demo-sidebar,
.demo-inbox,
.demo-thread,
.demo-control {
    min-width: 0;
}

.demo-sidebar {
    display: grid;
    align-content: start;
    gap: 14px;
    padding: 16px;
    border-right: 1px solid var(--landing-border);
    background: #f3eadf;
}

.demo-brand,
.menu-brand {
    display: flex;
    align-items: center;
    gap: 10px;
}

.demo-brand strong,
.menu-brand strong {
    display: block;
    color: var(--landing-ink);
    font-size: 1.05rem;
    line-height: 1.1;
}

.demo-brand span,
.menu-brand span {
    display: block;
    color: var(--landing-muted);
    font-size: 0.76rem;
}

.demo-sidebar-group {
    display: grid;
    gap: 5px;
}

.demo-sidebar-group span,
.menu-section-label {
    color: var(--landing-muted);
    font-size: 0.68rem;
    font-weight: 820;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.demo-sidebar button,
.portal-menu-card button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    width: 100%;
    min-height: 32px;
    padding: 7px 9px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--landing-text);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 720;
    text-align: left;
    cursor: pointer;
}

.demo-sidebar button:hover,
.demo-sidebar button.is-active,
.portal-menu-card button:hover,
.portal-menu-card button.active {
    background: var(--landing-lilac-soft);
    color: var(--landing-lilac-dark);
}

.demo-sidebar button em,
.portal-menu-card button em {
    min-width: 24px;
    padding: 2px 6px;
    border-radius: 999px;
    background: var(--landing-lilac);
    color: #fff;
    font-size: 0.66rem;
    font-style: normal;
    text-align: center;
}

/* Ícones do menu lateral do demo — espelham o sidebar real (svg à esquerda). */
.demo-sidebar button > svg {
    flex: none;
    width: 16px;
    height: 16px;
    opacity: 0.85;
}

.demo-sidebar button > span {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.demo-inbox {
    display: grid;
    align-content: start;
    gap: 9px;
    padding: 16px;
    border-right: 1px solid var(--landing-border);
    background: #f8f3eb;
}

.demo-chat-row {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 64px;
    padding: 9px;
    border: 1px solid var(--landing-border);
    border-radius: 8px;
    background: #fff;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform 160ms ease, border-color 160ms ease, background 160ms ease;
}

.demo-chat-row:hover,
.demo-chat-row.is-active {
    border-color: rgba(109, 55, 70, 0.46);
    background: var(--landing-lilac-soft);
    transform: translateY(-1px);
}

.demo-avatar {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    background: #fff;
    color: var(--landing-lilac-dark);
    font-weight: 820;
}

.demo-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.demo-avatar.success { color: var(--landing-green); }
.demo-avatar.warm { color: #b56b18; }

.demo-chat-row strong,
.demo-chat-row small,
.demo-chat-row em {
    display: block;
}

.demo-chat-row strong {
    overflow: hidden;
    color: var(--landing-ink);
    font-size: 0.84rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.demo-chat-row small,
.demo-chat-row em {
    color: var(--landing-muted);
    font-size: 0.7rem;
    font-style: normal;
}

.demo-thread {
    display: flex;
    flex-direction: column;
    background:
        linear-gradient(rgba(255, 255, 255, 0.82), rgba(255, 255, 255, 0.82)),
        linear-gradient(135deg, rgba(109, 55, 70, 0.12) 1px, transparent 1px);
    background-size: auto, 24px 24px;
}

.demo-thread-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 58px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--landing-border);
    background: #fff;
}

.demo-thread-header strong,
.demo-thread-header span {
    display: block;
}

.demo-thread-header strong {
    color: var(--landing-ink);
    line-height: 1.15;
}

.demo-thread-header span:not(.demo-stage-pill) {
    color: var(--landing-muted);
    font-size: 0.76rem;
}

.demo-stage-pill {
    min-height: 28px;
    padding: 5px 9px;
    border: 1px solid rgba(109, 55, 70, 0.34);
    border-radius: 999px;
    background: var(--landing-lilac-soft);
    color: var(--landing-lilac-dark);
    font-size: 0.72rem;
    font-weight: 780;
    white-space: nowrap;
}

.demo-messages {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 12px;
    justify-content: flex-end;
    padding: 18px 20px;
}

.demo-message {
    display: grid;
    gap: 4px;
    max-width: 82%;
}

.demo-message.in { align-self: flex-start; }
.demo-message.out { align-self: flex-end; }

.demo-message span {
    margin: 0 8px;
    color: var(--landing-muted);
    font-size: 0.66rem;
    font-weight: 760;
}

.demo-message.out span {
    color: var(--landing-ink);
    text-align: right;
}

.demo-message .demo-bubble {
    margin: 0;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 0.84rem;
    line-height: 1.38;
    overflow-wrap: anywhere;
}

.demo-message .demo-bubble > p {
    margin: 0;
}

.demo-message.in .demo-bubble {
    border: 1px solid var(--landing-border);
    border-bottom-left-radius: 4px;
    background: #fff;
    color: var(--landing-ink);
}

.demo-message.out .demo-bubble {
    border-bottom-right-radius: 4px;
    background: var(--landing-ink);
    color: #fffaf2;
}

.demo-compose {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 14px;
    border-top: 1px solid var(--landing-border);
    background: #fff;
}

.demo-compose span {
    overflow: hidden;
    color: var(--landing-muted);
    font-size: 0.76rem;
    font-weight: 740;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.demo-compose button,
.demo-actions button {
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid var(--landing-lilac);
    border-radius: 8px;
    background: var(--landing-lilac);
    color: #fff;
    font: inherit;
    font-size: 0.74rem;
    font-weight: 780;
}

.demo-control {
    display: grid;
    align-content: center;
    gap: 12px;
    padding: 16px;
    border-left: 1px solid var(--landing-border);
    background: #fff;
}

.demo-control-card,
.demo-mode-card,
.mode-card,
.story-step,
.menu-preview-panel {
    border: 1px solid var(--landing-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--landing-shadow-soft);
}

.demo-control-card {
    display: grid;
    gap: 8px;
    padding: 14px;
}

.demo-control-card span,
.demo-mode-card span,
.mode-card span,
.menu-preview-panel > span {
    color: var(--landing-lilac-dark);
    font-size: 0.68rem;
    font-weight: 820;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.demo-control-card strong {
    color: var(--landing-ink);
    font-size: 1.04rem;
    line-height: 1.15;
}

.demo-control-card p,
.demo-mode-card p {
    margin: 0;
    color: var(--landing-text);
    font-size: 0.82rem;
}

.demo-actions {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
}

.demo-actions button + button {
    border-color: var(--landing-border-strong);
    background: #fff;
    color: var(--landing-ink);
}

.demo-mode-card {
    display: grid;
    gap: 5px;
    padding: 12px;
    background: var(--landing-green-soft);
}

.demo-fade {
    animation: demo-panel-in 280ms ease both;
}

@keyframes demo-panel-in {
    from { opacity: 0.55; transform: translateY(4px); }
    to { opacity: 1; transform: none; }
}

.story-steps,
.mode-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    max-width: var(--landing-width);
    margin: 0 auto;
}

.operation-story {
    padding-top: 10px;
}

.story-step,
.mode-card {
    display: grid;
    gap: 10px;
    padding: 22px;
}

.story-step span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--landing-ink);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 820;
}

.story-step h3,
.mode-card h3,
.menu-preview-panel h3 {
    margin: 0;
    color: var(--landing-ink);
    line-height: 1.15;
}

.story-step p,
.mode-card p,
.menu-preview-panel p {
    margin: 0;
    color: var(--landing-text);
}

.mode-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mode-card {
    min-height: 330px;
    padding: 28px;
}

.mode-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--landing-ink);
    color: #fff;
    font-weight: 820;
}

.mode-icon svg {
    width: 23px;
    height: 23px;
}

.mode-card ul {
    display: grid;
    gap: 8px;
    margin: 6px 0 0;
    padding: 0;
    list-style: none;
}

.mode-card li {
    position: relative;
    padding-left: 18px;
    color: var(--landing-text);
    font-size: 0.92rem;
}

.mode-card li::before {
    content: "";
    position: absolute;
    top: 0.62em;
    left: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--landing-green);
}

.interactive-menu {
    grid-template-columns: 300px minmax(0, 1fr);
}

.portal-menu-card nav button {
    text-decoration: none;
}

.menu-preview-panel {
    display: grid;
    align-content: center;
    gap: 13px;
    min-height: 430px;
    padding: 28px;
}

.menu-preview-panel h3 {
    max-width: 650px;
    font-size: clamp(1.9rem, 3vw, 3.15rem);
    letter-spacing: 0;
}

.menu-preview-panel p {
    max-width: 620px;
    font-size: 1.02rem;
}

.menu-preview-list {
    display: grid;
    gap: 8px;
    max-width: 520px;
    margin-top: 8px;
}

.menu-preview-list div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 12px;
    border: 1px solid var(--landing-border);
    border-radius: 8px;
    background: #fbfaf7;
}

.menu-preview-list strong {
    color: var(--landing-ink);
}

.menu-preview-list em {
    color: var(--landing-muted);
    font-style: normal;
}

@media (max-width: 1180px) {
    .product-app-shell {
        grid-template-columns: 210px minmax(230px, 0.72fr) minmax(330px, 1fr);
    }

    .demo-control {
        grid-column: 1 / -1;
        grid-template-columns: minmax(0, 1fr) minmax(220px, 0.6fr);
        border-top: 1px solid var(--landing-border);
        border-left: 0;
    }

    .story-steps {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .story-hero .hero-copy h1 {
        font-size: clamp(2.4rem, 8vw, 3.6rem);
    }

    .product-app-shell,
    .interactive-menu,
    .mode-grid {
        grid-template-columns: 1fr;
    }

    .demo-sidebar {
        display: none;
    }

    .demo-inbox {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        border-right: 0;
        border-bottom: 1px solid var(--landing-border);
    }

    .demo-chat-row {
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .demo-chat-row em {
        display: none;
    }

    .demo-control {
        grid-template-columns: 1fr;
    }

    .mode-card {
        min-height: 0;
    }
}

@media (max-width: 720px) {
    .story-hero {
        gap: 12px;
        padding-top: 22px;
    }

    .story-hero .hero-copy h1 {
        font-size: 2.24rem;
        line-height: 1.02;
    }

    .story-hero .hero-subtitle {
        font-size: 0.95rem;
    }

    .story-hero .hero-actions .landing-button-secondary {
        display: none;
    }

    .product-browser-bar em {
        display: none;
    }

    .demo-inbox {
        grid-template-columns: 1fr;
        gap: 7px;
        padding: 9px;
    }

    .demo-chat-row {
        min-height: 50px;
        padding: 7px;
    }

    .demo-chat-row:nth-child(3) {
        display: none;
    }

    .demo-thread-header {
        min-height: 48px;
        padding: 9px 10px;
    }

    .demo-thread-header span:not(.demo-stage-pill) {
        display: none;
    }

    .demo-stage-pill {
        font-size: 0.68rem;
    }

    .demo-messages {
        min-height: 230px;
        padding: 12px 10px 70px;
    }

    .demo-message {
        max-width: 92%;
    }

    .demo-message .demo-bubble {
        font-size: 0.76rem;
        line-height: 1.28;
    }

    .demo-compose {
        display: none;
    }

    .demo-control {
        position: relative;
        margin-top: -66px;
        padding: 0 9px 9px;
        border: 0;
        background: transparent;
    }

    .demo-control-card {
        gap: 3px;
        padding: 10px;
        box-shadow: 0 12px 26px rgba(53, 26, 36, 0.12);
    }

    .demo-control-card p,
    .demo-actions,
    .demo-mode-card {
        display: none;
    }

    .demo-control-card strong {
        font-size: 0.92rem;
    }

    .operation-story .section-heading,
    .modes-section .split-heading,
    .portal-section .split-heading {
        margin-bottom: 22px;
    }

    .story-step,
    .mode-card,
    .menu-preview-panel {
        padding: 20px;
    }

    .portal-menu-card {
        padding: 14px;
    }

    .portal-menu-card nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .portal-menu-card button {
        min-height: 38px;
        padding: 7px 8px;
        font-size: 0.76rem;
    }

    .menu-section-label {
        grid-column: 1 / -1;
        margin: 10px 0 0;
    }

    .menu-preview-panel {
        min-height: 340px;
    }

    .menu-preview-panel h3 {
        font-size: 1.8rem;
    }

    .menu-preview-list div {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }
}

@media (max-width: 430px) {
    .story-hero .hero-copy h1 {
        font-size: 2.08rem;
    }

    .demo-chat-row:nth-child(2) {
        display: none;
    }
}

/* ============================================================
   Brand re-anchor: logo lockups + new sections (brand1)
   ============================================================ */

/* The avie lockup is the brand hero — keep it crisp at real size */
.landing-logo.has-lockup {
    gap: 0;
}

.landing-logo.has-lockup img.brand-lockup {
    height: 40px;
    width: auto;
}

.landing-footer .landing-logo.has-lockup img.brand-lockup-light {
    height: 32px;
    width: auto;
}

.brand-mark {
    width: auto;
}

/* Capabilities — proof of completeness (off-white band so white cards pop) */
.capability-section {
    background: var(--landing-bg);
}

.capability-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    max-width: var(--landing-width);
    margin: 0 auto;
}

.capability-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    padding: 20px;
    border: 1px solid var(--landing-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: var(--landing-shadow-soft);
}

.cap-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: var(--landing-lilac-soft);
    color: var(--landing-sage-deep);
}

.cap-icon svg {
    width: 23px;
    height: 23px;
}

.capability-card h3 {
    margin: 1px 0 7px;
    color: var(--landing-ink);
    font-size: 1.12rem;
    line-height: 1.18;
}

.capability-card p {
    margin: 0;
    color: var(--landing-text);
    font-size: 0.94rem;
    line-height: 1.5;
}

/* Roadmap — "Em breve" */
.roadmap-section {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(239, 226, 218, 0.7)),
        var(--landing-bg-alt);
}

.roadmap-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    max-width: var(--landing-width);
    margin: 0 auto;
}

.roadmap-card {
    display: grid;
    gap: 9px;
    align-content: start;
    padding: 22px;
    border: 1px dashed var(--landing-border-strong);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.72);
}

.soon-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    justify-self: start;
    padding: 4px 11px 4px 8px;
    border-radius: 999px;
    background: var(--landing-sage);
    color: #fff;
    font-size: 0.66rem;
    font-weight: 820;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.soon-pill .pill-icon {
    width: 13px;
    height: 13px;
}

.roadmap-card h3 {
    margin: 0;
    color: var(--landing-ink);
    font-size: 1.16rem;
    line-height: 1.16;
}

.roadmap-card p {
    margin: 0;
    color: var(--landing-text);
    font-size: 0.94rem;
    line-height: 1.5;
}

@media (max-width: 900px) {
    .capability-grid,
    .roadmap-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .landing-logo.has-lockup img.brand-lockup {
        height: 32px;
    }

    .capability-grid,
    .roadmap-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   Section rhythm + brand watermark + icons (polish1)
   ============================================================ */

/* Hero: the brand wave as an oversized, faint watermark behind the copy */
.story-hero {
    position: relative;
    overflow: hidden;
}

.story-hero::before {
    content: "";
    position: absolute;
    top: -90px;
    right: -120px;
    width: 560px;
    height: 560px;
    background: url("/static/brand/icon-only.svg") no-repeat center / contain;
    opacity: 0.05;
    pointer-events: none;
    z-index: 0;
}

.story-hero .hero-copy,
.story-hero .product-preview {
    position: relative;
    z-index: 1;
}

/* Operation: faint grid so it reads different from the white portal/modes */
.operation-story {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(245, 244, 239, 0.92)),
        linear-gradient(90deg, rgba(53, 26, 36, 0.04) 1px, transparent 1px),
        linear-gradient(0deg, rgba(109, 55, 70, 0.06) 1px, transparent 1px);
    background-size: auto, 120px 120px, 120px 120px;
}

/* Story steps as a connected timeline (desktop only, 3-up) */
@media (min-width: 1181px) {
    .story-steps {
        position: relative;
    }

    .story-steps::before {
        content: "";
        position: absolute;
        top: 42px;
        left: 16%;
        right: 16%;
        height: 2px;
        background: linear-gradient(90deg, transparent, var(--landing-border-strong) 18%, var(--landing-border-strong) 82%, transparent);
        z-index: 0;
    }

    .story-step {
        position: relative;
        z-index: 1;
    }
}

/* Safety items get a small brand-tinted icon */
.safety-grid div {
    display: grid;
    align-content: start;
    gap: 8px;
}

.safe-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--landing-surface);
    border: 1px solid var(--landing-border);
    color: var(--landing-sage-deep);
}

.safe-icon svg {
    width: 20px;
    height: 20px;
}

.safety-grid strong {
    margin: 2px 0 4px;
}

/* ============================================================
   Public home redesign (home3)
   Scoped to .landing-home so /empresa keeps the previous layout.
   ============================================================ */

.landing-home {
    /* Paleta 4 "Vinho / Luxo emocional" — reancora a home (antes sage/verde).
       Mantém os mesmos nomes de token, então o layout inteiro herda a marca. */
    --home-bg: #f5ece4;          /* nude quente */
    --home-bg-alt: #efe2da;
    --home-surface: #ffffff;
    --home-ink: #351a24;          /* bordô escuro */
    --home-text: #5a4048;
    /* Escurecido p/ passar AA (>=4.5:1) nos rótulos pequenos (<0.8rem):
       labels de ficha, confiança, trace, ids do telefone. Era #8a6e74 (~3.9:1). */
    --home-muted: #75555c;
    --home-border: #e6d6ce;
    --home-border-strong: #c9a7a0; /* rosa queimado */
    --home-sage: #6d3746;         /* accent principal: vinho */
    --home-sage-soft: #f3e6e2;
    --home-blue: #351a24;         /* bordô (contraste) */
    --home-blue-soft: #f1e4e1;
    --home-coral: #b2674f;        /* terracota aquecido */
    --home-coral-soft: #f6e6df;
    --home-plum: #6d3746;         /* vinho */
    --home-plum-soft: #f3e6e2;
    --home-amber: #b9985a;        /* ouro envelhecido (premium) */
    --home-amber-soft: #f3ebdb;
    --home-danger: #c2413f;
    --home-danger-soft: #f8e6e4;
    --home-gold: #b9985a;
    --home-gold-line: rgba(185, 152, 90, 0.45);
    --home-shadow: 0 24px 70px rgba(53, 26, 36, 0.12);
    --home-shadow-soft: 0 12px 32px rgba(53, 26, 36, 0.08);
    --home-width: 1180px;
    background: var(--home-bg);
    color: var(--home-ink);
}

.landing-home .skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 100;
    transform: translateY(-160%);
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--home-ink);
    color: #fff;
    font-weight: 800;
    text-decoration: none;
    transition: transform 160ms ease;
}

.landing-home .skip-link:focus {
    transform: translateY(0);
}

.landing-home .home-header {
    min-height: 86px;
    border-bottom-color: rgba(226, 212, 204, 0.92);
    background: rgba(245, 236, 228, 0.9);
}

/* Logo é o herói da marca — domina a barra (~95% da altura útil) */
.landing-home .landing-logo.has-lockup img.brand-lockup {
    height: 64px;
}

.landing-home .home-nav a {
    color: #2d383d;
}

.landing-home .home-nav .nav-contact {
    border-color: var(--home-ink);
    background: var(--home-ink);
    color: #fff;
}

/* Header lifts off the page with a soft shadow once you scroll */
.landing-home .home-header {
    transition: box-shadow 200ms ease, background 200ms ease;
}

.landing-home .home-header.is-scrolled {
    background: rgba(245, 236, 228, 0.97);
    box-shadow: 0 12px 30px rgba(53, 26, 36, 0.09);
}

/* Login stays visible and reads as a clear secondary CTA up top */
.landing-home .home-nav .landing-login {
    border-color: var(--home-sage);
    background: var(--home-sage);
    color: #fff;
}

.landing-home .home-nav .landing-login:hover {
    background: #6d3746;
    border-color: #6d3746;
    color: #fff;
    transform: translateY(-1px);
}

.landing-home .home-main {
    background: var(--home-bg);
}

/* Scroll-reveal: content eases in as it enters the viewport */
.js-enabled .landing-home .reveal {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity 680ms cubic-bezier(0.16, 0.84, 0.44, 1), transform 680ms cubic-bezier(0.16, 0.84, 0.44, 1);
    will-change: opacity, transform;
}

.js-enabled .landing-home .reveal.is-visible {
    opacity: 1;
    transform: none;
}

/* Stagger grouped grid children so they cascade instead of popping together */
.js-enabled .landing-home .problem-grid .reveal:nth-child(2),
.js-enabled .landing-home .value-list .reveal:nth-child(2),
.js-enabled .landing-home .implementation-track .reveal:nth-child(2) {
    transition-delay: 90ms;
}

.js-enabled .landing-home .problem-grid .reveal:nth-child(3),
.js-enabled .landing-home .value-list .reveal:nth-child(3),
.js-enabled .landing-home .implementation-track .reveal:nth-child(3) {
    transition-delay: 180ms;
}

.js-enabled .landing-home .value-list .reveal:nth-child(4),
.js-enabled .landing-home .implementation-track .reveal:nth-child(4) {
    transition-delay: 270ms;
}

.js-enabled .landing-home .implementation-track .reveal:nth-child(5) {
    transition-delay: 360ms;
}

@media (prefers-reduced-motion: reduce) {
    .js-enabled .landing-home .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.landing-home .home-hero,
.landing-home .home-section,
.landing-home .home-final-cta {
    scroll-margin-top: 90px;
}

.landing-home .home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(400px, 0.78fr);
    gap: clamp(24px, 4vw, 56px);
    align-items: stretch;
    max-width: var(--home-width);
    margin: 0 auto;
    padding: clamp(34px, 4.6vw, 54px) 40px clamp(30px, 4vw, 46px);
}

.landing-home .home-hero-copy {
    max-width: 720px;
}

.landing-home .landing-kicker {
    color: var(--home-sage);
    letter-spacing: 0.06em;
}

.landing-home .hero-kicker {
    margin-bottom: 16px;
    border-color: rgba(109, 55, 70, 0.26);
    background: rgba(255, 255, 255, 0.82);
    color: var(--home-sage);
    box-shadow: none;
}

.landing-home .home-hero h1 {
    margin: 0;
    color: var(--home-ink);
    font-size: clamp(2.65rem, 4vw, 3.75rem);
    font-weight: 760;
    letter-spacing: 0;
    line-height: 0.98;
}

.landing-home .hero-subtitle {
    max-width: 600px;
    margin: 20px 0 0;
    color: var(--home-text);
    font-size: clamp(1.02rem, 1.3vw, 1.18rem);
    line-height: 1.65;
}

.landing-home .hero-actions {
    justify-content: flex-start;
    margin-top: 26px;
}

.landing-home .hero-cta-note {
    margin: 13px 0 0;
    color: var(--home-muted);
    font-size: 0.92rem;
    line-height: 1.5;
    max-width: 46ch;
}

.landing-home .home-final-cta .hero-cta-note {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.landing-home .landing-button {
    min-height: 46px;
    border-radius: 8px;
}

.landing-home .landing-button-primary {
    background: var(--home-ink);
    box-shadow: 0 14px 28px rgba(53, 26, 36, 0.18);
}

.landing-home .landing-button-secondary {
    border-color: var(--home-border-strong);
    background: rgba(255, 255, 255, 0.86);
}

.landing-home .landing-button:focus-visible,
.landing-home a:focus-visible,
.landing-home button:focus-visible,
.landing-home summary:focus-visible {
    outline: 3px solid rgba(189, 114, 95, 0.55);
    outline-offset: 3px;
}

.landing-home .hero-trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

.landing-home .hero-trust-row span {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 10px;
    border: 1px solid var(--home-border);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--home-text);
    font-size: 0.82rem;
    font-weight: 760;
}

.landing-home .home-hero-visual {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* Hero conversation carousel */
.landing-home .hero-carousel {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 1fr auto;
    gap: 14px;
    min-width: 0;
    height: 100%;
}

.landing-home .hero-phone {
    display: grid;
    grid-template-rows: auto 1fr;
    overflow: hidden;
    border: 1px solid var(--home-border);
    border-radius: 16px;
    background: var(--home-surface);
    box-shadow: var(--home-shadow);
}

.landing-home .hero-phone-head {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--home-border);
    background: #f3e6e2;
}

.landing-home .hero-phone-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--home-sage-soft);
    flex: 0 0 auto;
}

.landing-home .hero-phone-id {
    display: grid;
    gap: 2px;
    margin-right: auto;
    min-width: 0;
}

.landing-home .hero-phone-id strong {
    color: var(--home-ink);
    font-size: 0.95rem;
    line-height: 1.1;
}

.landing-home .hero-phone-id span {
    color: var(--home-muted);
    font-size: 0.78rem;
}

.landing-home .hero-phone-badge {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 5px 11px;
    border: 1px solid rgba(109, 55, 70, 0.28);
    border-radius: 999px;
    background: var(--home-sage-soft);
    color: var(--home-sage);
    font-size: 0.72rem;
    font-weight: 820;
}

.landing-home .hero-phone-badge[data-tone="blue"] {
    border-color: rgba(53, 26, 36, 0.28);
    background: var(--home-blue-soft);
    color: var(--home-blue);
}

.landing-home .hero-phone-badge[data-tone="danger"] {
    border-color: rgba(194, 65, 63, 0.32);
    background: var(--home-danger-soft);
    color: var(--home-danger);
}

.landing-home .hero-chat {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: end;
    gap: 9px;
    min-height: 252px;
    padding: 20px 18px;
    background:
        linear-gradient(rgba(255, 255, 255, 0.86), rgba(255, 255, 255, 0.86)),
        radial-gradient(circle at 1px 1px, rgba(109, 55, 70, 0.12) 1px, transparent 0);
    background-size: auto, 22px 22px;
}

.landing-home .hero-bubble {
    display: grid;
    gap: 4px;
    max-width: 90%;
    margin: 0;
    padding: 10px 14px;
    border-radius: 14px;
    color: var(--home-ink);
    font-size: 0.86rem;
    line-height: 1.45;
}

/* Wrap the message text in a normal block so inline <strong> flows as part of
   the sentence. (When .hero-bubble itself is a grid, loose inline nodes each
   become a grid item and break onto their own line — this body fixes that.) */
.landing-home .hero-bubble-body {
    display: block;
}

.landing-home .hero-bubble-body p {
    margin: 0;
}

.landing-home .hero-bubble-body p + ul {
    margin-top: 6px;
}

.landing-home .hero-bubble span {
    color: var(--home-muted);
    font-size: 0.64rem;
    font-weight: 820;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.landing-home .hero-bubble p {
    margin: 0;
}

.landing-home .hero-bubble.patient {
    justify-self: start;
    border: 1px solid var(--home-border);
    border-bottom-left-radius: 5px;
    background: #fff;
}

.landing-home .hero-bubble.avie {
    justify-self: end;
    border-bottom-right-radius: 5px;
    background: var(--home-ink);
    color: #fff;
}

.landing-home .hero-bubble.avie span {
    color: rgba(255, 255, 255, 0.66);
    text-align: right;
}

.landing-home .hero-bubble ul {
    display: grid;
    gap: 3px;
    margin: 6px 0 0;
    padding-left: 17px;
}

.landing-home .hero-carousel-controls {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.landing-home .hero-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border: 1px solid var(--home-border-strong);
    border-radius: 50%;
    background: var(--home-surface);
    color: var(--home-ink);
    cursor: pointer;
    transition: transform 150ms ease, background 150ms ease, border-color 150ms ease;
}

.landing-home .hero-arrow svg {
    width: 19px;
    height: 19px;
}

.landing-home .hero-arrow:hover {
    border-color: var(--home-sage);
    background: var(--home-sage-soft);
    color: var(--home-sage);
    transform: translateY(-1px);
}

.landing-home .hero-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    flex: 1;
    min-width: 0;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    scrollbar-width: none;
}

.landing-home .hero-tabs::-webkit-scrollbar {
    display: none;
}

.landing-home .hero-tabs button {
    flex: 0 0 auto;
    scroll-snap-align: start;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--home-border);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.78);
    color: var(--home-text);
    font: inherit;
    font-size: 0.8rem;
    font-weight: 760;
    white-space: nowrap;
    cursor: pointer;
    transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
}

.landing-home .hero-tabs button.is-active {
    border-color: var(--home-sage);
    background: var(--home-sage);
    color: #fff;
}

.landing-home .care-console {
    overflow: hidden;
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: var(--home-surface);
    box-shadow: var(--home-shadow);
}

.landing-home .care-console-top,
.landing-home .care-review {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
}

.landing-home .care-console-top {
    border-bottom: 1px solid var(--home-border);
    background: #f3e6e2;
}

.landing-home .care-brand {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--home-ink);
    font-size: 1.08rem;
    font-weight: 820;
}

.landing-home .status-soft {
    padding: 5px 10px;
    border: 1px solid rgba(109, 55, 70, 0.25);
    border-radius: 999px;
    background: var(--home-sage-soft);
    color: var(--home-sage);
    font-size: 0.72rem;
    font-weight: 820;
}

.landing-home .care-chat {
    display: grid;
    gap: 14px;
    min-height: 220px;
    padding: 24px;
    background:
        linear-gradient(rgba(255, 255, 255, 0.84), rgba(255, 255, 255, 0.84)),
        linear-gradient(135deg, rgba(53, 26, 36, 0.12) 1px, transparent 1px);
    background-size: auto, 28px 28px;
}

.landing-home .care-bubble {
    display: grid;
    gap: 5px;
    max-width: 86%;
}

.landing-home .care-bubble span {
    color: var(--home-muted);
    font-size: 0.72rem;
    font-weight: 760;
}

.landing-home .care-bubble p {
    margin: 0;
    padding: 13px 14px;
    border-radius: 8px;
    line-height: 1.45;
}

.landing-home .care-bubble.patient {
    justify-self: start;
}

.landing-home .care-bubble.patient p {
    border: 1px solid var(--home-border);
    background: #fff;
}

.landing-home .care-bubble.avie {
    justify-self: end;
}

.landing-home .care-bubble.avie span {
    text-align: right;
}

.landing-home .care-bubble.avie p {
    background: var(--home-ink);
    color: #fff;
}

.landing-home .care-review {
    border-top: 1px solid var(--home-border);
    background: #fff;
}

.landing-home .care-review span,
.landing-home .care-review strong {
    display: block;
}

.landing-home .care-review span {
    color: var(--home-sage);
    font-size: 0.7rem;
    font-weight: 820;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.landing-home .care-review strong {
    margin-top: 4px;
    color: var(--home-ink);
    line-height: 1.2;
}

.landing-home .care-review button {
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid var(--home-sage);
    border-radius: 8px;
    background: var(--home-sage);
    color: #fff;
    font: inherit;
    font-weight: 800;
}

.landing-home .home-section {
    padding: clamp(58px, 7vw, 92px) 40px;
    border-top: 1px solid rgba(226, 212, 204, 0.78);
}

.landing-home .home-section-heading {
    max-width: 790px;
    margin: 0 auto 34px;
    text-align: center;
}

.landing-home .home-section-heading h2,
.landing-home .solution-copy h2,
.landing-home .split-heading h2,
.landing-home .home-final-cta h2 {
    margin: 0;
    color: var(--home-ink);
    font-size: clamp(2.1rem, 3.6vw, 3.45rem);
    font-weight: 740;
    letter-spacing: 0;
    line-height: 1.03;
}

.landing-home .home-section-heading p:not(.landing-kicker),
.landing-home .solution-copy p,
.landing-home .split-heading > p,
.landing-home .home-final-cta p {
    color: var(--home-text);
    font-size: 1.06rem;
    line-height: 1.62;
}

.landing-home .resources-section {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.72), rgba(245, 236, 228, 0.78)),
        var(--home-bg);
}

.landing-home .home-resources-list {
    padding: 28px 0 16px;
}

.landing-home .resources-more {
    display: flex;
    justify-content: center;
}

.landing-home .problem-section {
    background: #fff;
}

.landing-home .problem-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    max-width: var(--home-width);
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: var(--home-border);
}

.landing-home .problem-item {
    padding: 28px;
    background: #fff;
}

.landing-home .problem-item span,
.landing-home .implementation-node span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    margin-bottom: 18px;
    border-radius: 8px;
    background: var(--home-sage-soft);
    color: var(--home-sage);
    font-weight: 850;
}

.landing-home .problem-item h3,
.landing-home .value-item h3,
.landing-home .implementation-node h3,
.landing-home .trust-item h3 {
    margin: 0;
    color: var(--home-ink);
    font-size: 1.18rem;
    line-height: 1.2;
}

.landing-home .problem-item p,
.landing-home .value-item p,
.landing-home .implementation-node p,
.landing-home .trust-item p,
.landing-home .comparison-card p {
    margin: 10px 0 0;
    color: var(--home-text);
    line-height: 1.55;
}

.landing-home .simulation-section {
    background:
        linear-gradient(135deg, rgba(185, 152, 90, 0.11), transparent 44%),
        #fbf4ec;
}

.landing-home .simulation-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.86fr) minmax(360px, 0.92fr);
    gap: clamp(28px, 5vw, 64px);
    align-items: center;
    max-width: var(--home-width);
    margin: 0 auto;
}

.landing-home .simulation-copy h2 {
    margin: 0;
    color: var(--home-ink);
    font-size: clamp(2.1rem, 3.6vw, 3.45rem);
    line-height: 1.03;
    text-wrap: balance;
}

.landing-home .simulation-copy p:not(.landing-kicker) {
    color: var(--home-text);
    font-size: 1.06rem;
    line-height: 1.62;
}

.landing-home .simulation-points {
    display: grid;
    gap: 10px;
    margin: 22px 0 24px;
    padding: 0;
    list-style: none;
}

.landing-home .simulation-points li {
    position: relative;
    padding-left: 28px;
    color: var(--home-text);
    line-height: 1.45;
}

.landing-home .simulation-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.52em;
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: var(--home-gold);
    box-shadow: 0 0 0 5px rgba(185, 152, 90, 0.14);
}

.landing-home .simulation-card {
    overflow: hidden;
    border: 1px solid rgba(185, 152, 90, 0.36);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 28px 74px rgba(53, 26, 36, 0.14);
}

.landing-home .simulation-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 18px 20px;
    border-bottom: 1px solid rgba(185, 152, 90, 0.32);
    background:
        linear-gradient(90deg, rgba(185, 152, 90, 0.16), transparent 58%),
        #f3e6e2;
}

.landing-home .simulation-card-head span,
.landing-home .simulation-card-head strong {
    display: block;
}

.landing-home .simulation-card-head span {
    color: var(--home-muted);
    font-family: var(--font-ui);
    font-size: 0.78rem;
    font-weight: 820;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.landing-home .simulation-card-head strong {
    color: var(--home-ink);
    font-size: 1.12rem;
}

.landing-home .simulation-chat {
    display: grid;
    gap: 13px;
    padding: 22px 20px;
    background:
        radial-gradient(circle at 12px 12px, rgba(185, 152, 90, 0.08) 1px, transparent 1px),
        #fff;
    background-size: 18px 18px;
}

.landing-home .simulation-bubble {
    max-width: 82%;
    padding: 13px 15px;
    border: 1px solid rgba(201, 167, 160, 0.54);
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 10px 24px rgba(53, 26, 36, 0.06);
}

.landing-home .simulation-bubble.avie {
    justify-self: end;
    border-color: rgba(185, 152, 90, 0.44);
    background: var(--home-ink);
    color: #fff;
}

.landing-home .simulation-bubble span {
    display: block;
    margin-bottom: 5px;
    color: var(--home-sage);
    font-size: 0.78rem;
    font-weight: 820;
}

.landing-home .simulation-bubble.avie span {
    color: #e7cfa8;
}

.landing-home .simulation-bubble p {
    margin: 0;
    line-height: 1.45;
}

.landing-home .simulation-next-step {
    margin: 0 20px 20px;
    padding: 14px 16px;
    border: 1px solid rgba(185, 152, 90, 0.34);
    border-left: 3px solid var(--home-gold);
    border-radius: 12px;
    background: #fbf4ec;
}

.landing-home .simulation-next-step strong,
.landing-home .simulation-next-step span {
    display: block;
}

.landing-home .simulation-next-step strong {
    color: var(--home-ink);
}

.landing-home .simulation-next-step span {
    margin-top: 4px;
    color: var(--home-text);
    font-size: 0.9rem;
    line-height: 1.4;
}

.landing-home .solution-section {
    background:
        linear-gradient(180deg, rgba(243, 230, 226, 0.72), rgba(245, 236, 228, 0.96)),
        var(--home-bg-alt);
}

.landing-home .solution-layout {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.72fr);
    gap: 40px;
    align-items: center;
    max-width: var(--home-width);
    margin: 0 auto;
}

.landing-home .solution-copy p {
    max-width: 620px;
    margin: 18px 0 0;
}

.landing-home .solution-principles {
    display: grid;
    gap: 12px;
}

.landing-home .solution-principles div,
.landing-home .value-item,
.landing-home .trust-item,
.landing-home .comparison-card {
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: var(--home-shadow-soft);
}

.landing-home .solution-principles div {
    padding: 20px;
}

.landing-home .solution-principles strong,
.landing-home .solution-principles span {
    display: block;
}

.landing-home .solution-principles strong {
    color: var(--home-ink);
    font-size: 1.1rem;
}

.landing-home .solution-principles span {
    margin-top: 5px;
    color: var(--home-text);
}

.landing-home .value-section,
.landing-home .product-section,
.landing-home .differentiation-section,
.landing-home .home-faq-section {
    background: #fff;
}

.landing-home .value-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    max-width: var(--home-width);
    margin: 0 auto;
}

.landing-home .value-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 15px;
    padding: 22px;
    box-shadow: none;
}

.landing-home .value-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    background: var(--home-coral-soft);
    color: var(--home-coral);
    font-weight: 900;
}

.landing-home .value-icon svg {
    width: 22px;
    height: 22px;
}

.landing-home .value-icon svg :is(path, rect, circle, polyline, line, ellipse) {
    stroke-width: 1.0;
}

.landing-home .value-icon.blue {
    background: var(--home-blue-soft);
    color: var(--home-blue);
}

.landing-home .value-icon.sage {
    background: var(--home-sage-soft);
    color: var(--home-sage);
}

.landing-home .value-icon.plum {
    background: var(--home-plum-soft);
    color: var(--home-plum);
}

.landing-home .implementation-section {
    background:
        linear-gradient(180deg, rgba(53, 26, 36, 0.96), rgba(53, 26, 36, 0.97)),
        var(--home-ink);
    color: #fff;
}

.landing-home .implementation-section .landing-kicker {
    color: #c9a7a0;
}

.landing-home .implementation-section .home-section-heading p:not(.landing-kicker) {
    color: #ecdcd4;
}

.landing-home .implementation-section .home-section-heading h2 {
    color: #fff;
}

.landing-home .implementation-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    max-width: var(--home-width);
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.14);
}

.landing-home .implementation-node {
    min-height: 248px;
    padding: 24px;
    background: rgba(255, 255, 255, 0.05);
}

.landing-home .implementation-node span {
    background: rgba(255, 255, 255, 0.14);
    color: #efe2da;
}

.landing-home .implementation-node h3 {
    color: #fff;
}

.landing-home .implementation-node p {
    color: #e6d6ce;
}

.landing-home .product-heading {
    align-items: start;
}

.landing-home .home-product-preview {
    width: min(100%, var(--home-width));
}

.landing-home .product-legend {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
    overflow: hidden;
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: var(--home-border);
}

.landing-home .product-legend li {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 16px 18px;
    background: #fff;
}

.landing-home .product-legend li > div {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.landing-home .legend-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background: var(--home-sage-soft);
    color: var(--home-sage);
}

.landing-home .legend-icon svg {
    width: 18px;
    height: 18px;
}

.landing-home .legend-icon svg :is(path, rect, circle, polyline, line, ellipse) {
    stroke-width: 1.2;
}

.landing-home .product-legend strong {
    color: var(--home-ink);
    font-size: 0.94rem;
    font-weight: 740;
}

.landing-home .product-legend span {
    color: var(--home-text);
    font-size: 0.84rem;
    line-height: 1.4;
}

.landing-home .product-browser {
    border-color: var(--home-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--home-shadow);
}

.landing-home .product-browser-bar {
    border-bottom-color: var(--home-border);
    background: #f3e6e2;
}

.landing-home .product-browser-bar em {
    border-color: rgba(109, 55, 70, 0.28);
    background: var(--home-sage-soft);
    color: var(--home-sage);
}

.landing-home .product-app-shell {
    grid-template-columns: 220px 250px minmax(0, 1fr);
    background: #fbf4ec;
}

.landing-home .demo-stage {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.landing-home .demo-stage .demo-thread {
    flex: 1;
    min-height: 0;
}

/* Mobile-only chrome (back button, bottom tab bar) hidden on desktop */
.landing-home .demo-back,
.landing-home .demo-bottom-nav {
    display: none;
}

.landing-home .demo-sidebar {
    background: #efe2da;
}

.landing-home .demo-inbox {
    background: #f5ece4;
}

.landing-home .demo-avatar.photo {
    border: 1px solid rgba(255, 255, 255, 0.62);
    background: linear-gradient(135deg, var(--home-sage), #c9a7a0);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(53, 26, 36, 0.08);
}

.landing-home .demo-avatar.avatar-bruno {
    background: linear-gradient(135deg, var(--home-blue), #c9a7a0);
}

.landing-home .demo-avatar.avatar-clara {
    background: linear-gradient(135deg, var(--home-plum), #c9a7a0);
}

.landing-home .demo-avatar.avatar-daniela {
    background: linear-gradient(135deg, var(--home-danger), #e3a19a);
}

.landing-home .demo-chat-row.is-pending {
    border-color: rgba(194, 65, 63, 0.42);
    background: rgba(194, 65, 63, 0.12);
    box-shadow: inset 3px 0 0 var(--home-danger);
}

.landing-home .demo-chat-row.is-pending strong {
    color: #982f31;
}

.landing-home .demo-chat-row.is-pending small,
.landing-home .demo-chat-row.is-pending em {
    color: #a24a49;
}

.landing-home .demo-sidebar,
.landing-home .demo-inbox,
.landing-home .demo-control,
.landing-home .demo-thread-header,
.landing-home .demo-compose {
    border-color: var(--home-border);
}

.landing-home .demo-chat-row,
.landing-home .demo-control-card,
.landing-home .demo-mode-card,
.landing-home .menu-preview-panel {
    border-color: var(--home-border);
    border-radius: 8px;
}

.landing-home .demo-chat-row:hover,
.landing-home .demo-chat-row.is-active,
.landing-home .demo-sidebar button:hover,
.landing-home .demo-sidebar button.is-active,
.landing-home .portal-menu-card button:hover,
.landing-home .portal-menu-card button.active {
    background: var(--home-sage-soft);
    color: var(--home-sage);
}

.landing-home .demo-sidebar button em,
.landing-home .portal-menu-card button em {
    background: var(--home-sage);
}

/* Sidebar items are presentational only — just the inbox is "open". */
.landing-home .demo-sidebar button.is-static {
    cursor: default;
    opacity: 1;
}

.landing-home .demo-sidebar button.is-static:disabled {
    color: var(--home-text);
}

.landing-home .demo-sidebar button.is-static:not(.is-active):hover {
    background: transparent;
    color: var(--home-text);
}

.landing-home .demo-message.out .demo-bubble,
.landing-home .demo-compose button,
.landing-home .demo-actions button {
    background: var(--home-ink);
    border-color: var(--home-ink);
}

.landing-home .demo-thread {
    background: #fbfaf7;
}

.landing-home .demo-tabs {
    display: flex;
    gap: 4px;
    padding: 8px 12px 0;
    border-bottom: 1px solid var(--home-border);
    background: #fff;
    overflow-x: auto;
}

.landing-home .demo-tabs button {
    min-height: 32px;
    padding: 7px 10px;
    border: 0;
    border-radius: 7px 7px 0 0;
    background: transparent;
    color: var(--home-muted);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 780;
    white-space: nowrap;
}

.landing-home .demo-tabs button.active {
    background: var(--home-sage-soft);
    color: var(--home-sage);
}

.landing-home .demo-panel.active {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 0;
}

.landing-home .demo-messages {
    min-height: 278px;
    justify-content: flex-start;
    overflow-y: auto;
}

.landing-home .demo-message .demo-bubble ul {
    display: grid;
    gap: 3px;
    margin: 6px 0 0;
    padding-left: 18px;
}

.landing-home .demo-stage-pill.is-pending {
    border-color: rgba(194, 65, 63, 0.34);
    background: var(--home-danger-soft);
    color: #982f31;
}

.landing-home .demo-patient-profile,
.landing-home .demo-history {
    display: grid;
    gap: 12px;
    min-height: 278px;
    padding: 16px;
    background: #fbfaf7;
}

.landing-home .patient-profile-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: #fff;
}

.landing-home .patient-profile-head strong,
.landing-home .patient-profile-head span {
    display: block;
}

.landing-home .patient-profile-head strong {
    color: var(--home-ink);
}

.landing-home .patient-profile-head span {
    color: var(--home-muted);
    font-size: 0.76rem;
}

.landing-home .patient-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.landing-home .patient-fields div,
.landing-home .patient-notes,
.landing-home .demo-history div {
    padding: 11px;
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: #fff;
}

.landing-home .patient-fields span,
.landing-home .patient-notes strong,
.landing-home .demo-history strong {
    display: block;
    color: var(--home-muted);
    font-size: 0.68rem;
    font-weight: 820;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.landing-home .patient-fields strong,
.landing-home .demo-history span {
    display: block;
    margin-top: 4px;
    color: var(--home-ink);
    font-size: 0.82rem;
    line-height: 1.25;
}

.landing-home .patient-notes p {
    margin: 6px 0 0;
    color: var(--home-text);
    font-size: 0.82rem;
    line-height: 1.4;
}

/* Logo-forward brand block — espelha o menu lateral do app real (logo em destaque) */
.demo-brand {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.demo-brand-logo {
    width: 78%;
    max-width: 132px;
    height: auto;
}

/* ✨ Resumo — card de sugestão da IA (feature-assinatura) + resumo curto */
.landing-home .demo-resumo-wrap,
.landing-home [data-demo-panel="resumo"],
.landing-home [data-demo-panel="confianca"] {
    min-height: 278px;
}

.landing-home [data-demo-panel="resumo"],
.landing-home [data-demo-panel="confianca"] {
    gap: 12px;
    padding: 16px;
    background: #fbfaf7;
    overflow-y: auto;
}

.landing-home .demo-suggestion {
    padding: 14px;
    border: 1px solid var(--home-border-strong);
    border-radius: 10px;
    background: #fff;
    box-shadow: var(--home-shadow-soft);
}

.landing-home .demo-suggestion-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.landing-home .demo-suggestion-tag {
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--home-sage);
    color: #fff;
    font-size: 0.68rem;
    font-weight: 820;
    letter-spacing: 0.04em;
}

.landing-home .demo-suggestion-stage {
    color: var(--home-muted);
    font-size: 0.7rem;
    font-weight: 720;
}

.landing-home .demo-suggestion-text {
    margin: 0 0 12px;
    color: var(--home-ink);
    font-size: 0.86rem;
    line-height: 1.45;
}

.landing-home .demo-suggestion-actions {
    display: flex;
    gap: 8px;
}

.landing-home .demo-suggestion-actions button {
    min-height: 32px;
    padding: 7px 12px;
    border: 1px solid var(--home-border-strong);
    border-radius: 8px;
    background: #fff;
    color: var(--home-text);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 760;
    cursor: default;
}

.landing-home .demo-suggestion-actions button.is-primary {
    border-color: var(--home-sage);
    background: var(--home-sage);
    color: #fff;
}

/* 📈 Confiança — score + fatos usados na resposta */
.landing-home .demo-confidence {
    display: grid;
    gap: 12px;
}

.landing-home .demo-confidence-score {
    padding: 13px;
    border: 1px solid var(--home-border);
    border-radius: 10px;
    background: #fff;
}

.landing-home .demo-confidence-label {
    display: block;
    color: var(--home-muted);
    font-size: 0.68rem;
    font-weight: 820;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.landing-home .demo-confidence-value {
    display: block;
    margin: 4px 0 8px;
    color: var(--home-sage);
    font-size: 1.05rem;
    font-weight: 820;
}

.landing-home .demo-confidence-bar {
    height: 7px;
    border-radius: 999px;
    background: var(--home-sage-soft);
    overflow: hidden;
}

.landing-home .demo-confidence-bar i {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--home-sage), var(--home-gold));
}

.landing-home .demo-confidence-facts {
    display: grid;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.landing-home .demo-confidence-facts li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 9px 11px;
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: #fff;
    color: var(--home-ink);
    font-size: 0.8rem;
    font-weight: 700;
}

.landing-home .demo-confidence-facts em {
    color: var(--home-sage);
    font-style: normal;
    font-size: 0.74rem;
    font-weight: 800;
}

/* The AI trace lives in the conversation, right under the last Avie bubble:
   a quiet "Gerado por IA · horário" line that unfolds the reasoning on tap. */
.landing-home .ai-trace {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
    margin-top: 2px;
}

.landing-home .ai-trace-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border: 1px solid var(--home-border);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--home-muted);
    font: inherit;
    font-size: 0.68rem;
    font-weight: 760;
    cursor: pointer;
    transition: background 150ms ease, border-color 150ms ease, color 150ms ease;
}

.landing-home .ai-trace-toggle:hover {
    border-color: rgba(109, 55, 70, 0.42);
    background: var(--home-plum-soft);
    color: var(--home-plum);
}

.landing-home .ai-trace-toggle .ai-spark {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    color: var(--home-plum);
}

.landing-home .ai-trace-tag {
    font-weight: 820;
}

.landing-home .ai-trace-dot {
    opacity: 0.55;
}

.landing-home .ai-trace-time {
    font-variant-numeric: tabular-nums;
}

.landing-home .ai-trace-toggle .ai-chevron {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    transition: transform 220ms ease;
}

.landing-home .ai-trace-toggle[aria-expanded="true"] .ai-chevron {
    transform: rotate(180deg);
}

.landing-home .ai-trace-label {
    display: block;
    color: var(--home-muted);
    font-size: 0.64rem;
    font-weight: 820;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.landing-home .ai-trace-detail {
    width: 100%;
    display: grid;
    gap: 9px;
    padding: 12px;
    border: 1px solid var(--home-border);
    border-radius: 10px;
    background: #fbf4ec;
    animation: demo-panel-in 220ms ease both;
}

.landing-home .ai-trace-detail.is-collapsed {
    display: none;
}

.landing-home .ai-trace-lead {
    margin: 0;
    color: var(--home-muted);
    font-size: 0.72rem;
    font-weight: 780;
}

.landing-home .ai-trace-row {
    display: grid;
    gap: 3px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--home-border);
}

.landing-home .ai-trace-row:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.landing-home .ai-trace-row p {
    margin: 0;
    color: var(--home-text);
    font-size: 0.78rem;
    line-height: 1.4;
}

.landing-home .ai-trace-row.accent {
    padding: 9px 10px;
    border: 0;
    border-radius: 7px;
    background: var(--home-blue-soft);
}

.landing-home .ai-trace-row.accent p {
    color: var(--home-ink);
    font-weight: 600;
}

.landing-home .ai-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 2px;
}

.landing-home .ai-chip {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    border: 1px solid rgba(109, 55, 70, 0.26);
    border-radius: 6px;
    background: var(--home-plum-soft);
    color: var(--home-plum);
    font-family: "SFMono-Regular", "JetBrains Mono", Consolas, monospace;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.landing-home .demo-actions button + button {
    border-color: var(--home-border-strong);
    background: #fff;
    color: var(--home-ink);
}

.landing-home .demo-mode-card {
    background: var(--home-blue-soft);
}

.landing-home .comparison-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    max-width: var(--home-width);
    margin: 0 auto;
}

.landing-home .comparison-card {
    min-height: 245px;
    padding: 24px;
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: #fff;
    box-shadow: var(--home-shadow-soft);
}

.landing-home .comparison-card span {
    display: inline-flex;
    margin-bottom: 18px;
    padding: 7px 10px;
    border: 1px solid rgba(185, 152, 90, 0.36);
    border-radius: 999px;
    background: #fbf4ec;
    color: var(--home-sage);
    font-family: var(--font-ui);
    font-size: 0.76rem;
    font-weight: 820;
}

.landing-home .comparison-card h3 {
    margin: 0;
    color: var(--home-ink);
    font-size: 1.22rem;
    line-height: 1.18;
}

.landing-home .comparison-card.avie {
    border-color: rgba(109, 55, 70, 0.38);
    background:
        linear-gradient(180deg, rgba(109, 55, 70, 0.08), rgba(185, 152, 90, 0.12)),
        #fff;
}

.landing-home .comparison-card.avie span {
    border-color: rgba(109, 55, 70, 0.28);
    background: var(--home-sage);
    color: #fff;
}

.landing-home .pricing-section {
    background:
        linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(243, 230, 226, 0.72) 46%, rgba(247, 236, 215, 0.72)),
        #fff;
}

.landing-home .pricing-layout {
    max-width: var(--home-width);
}

.landing-home .price-card,
.landing-home .buying-options {
    border-color: var(--home-border);
    border-radius: 8px;
}

.landing-home .price-label,
.landing-home .option-eyebrow {
    color: var(--home-plum);
    font-size: 0.72rem;
    font-weight: 840;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.landing-home .price-card.highlighted {
    border-color: rgba(109, 55, 70, 0.38);
    background: linear-gradient(180deg, #ffffff, #efe2da);
}

/* Preço fundador como o preço (sem <del> promocional); âncora discreta abaixo. */
.landing-home .price-card h3 {
    margin: 14px 0 4px;
}

.landing-home .price-card h3 span {
    color: var(--home-muted);
    font-family: var(--font-ui);
    font-size: 1.05rem;
    font-weight: 720;
}

.landing-home .price-anchor {
    margin: 0 0 4px;
    color: var(--home-muted);
    font-size: 0.82rem;
    font-weight: 640;
}

.landing-home .price-intro {
    font-size: 0.96rem;
    line-height: 1.5;
}

.landing-home .price-benefits {
    display: grid;
    gap: 0;
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

/* A long divider line between each benefit, with one icon per bullet. */
.landing-home .price-benefits li {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 12px 0;
    border-top: 1px solid var(--home-border);
    color: var(--home-text);
    font-size: 0.9rem;
    line-height: 1.45;
}

.landing-home .price-benefits li:first-child {
    padding-top: 4px;
    border-top: 0;
}

.landing-home .price-benefits .bullet-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: var(--home-sage-soft);
    color: var(--home-sage);
}

.landing-home .price-card.highlighted .price-benefits .bullet-icon {
    background: rgba(109, 55, 70, 0.16);
}

.landing-home .price-benefits .bullet-icon svg {
    width: 16px;
    height: 16px;
}

.landing-home .price-benefits .bullet-icon svg :is(path, rect, circle, polyline, line, ellipse) {
    stroke-width: 1.25;
}

.landing-home .price-benefits li strong {
    color: var(--home-ink);
    font-weight: 800;
}

.landing-home .price-note {
    margin: 16px 0 0;
    padding: 12px 14px;
    border-radius: 10px;
    background: var(--home-sage-soft);
    color: var(--home-ink);
    font-size: 0.88rem;
    line-height: 1.45;
}

.landing-home .price-note a {
    color: var(--home-sage);
    font-weight: 820;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.landing-home .home-portal-section {
    background: var(--home-bg-alt);
}

.landing-home .portal-menu-preview {
    border-color: var(--home-border);
    border-radius: 8px;
    box-shadow: var(--home-shadow-soft);
}

.landing-home .portal-menu-card {
    border-right-color: var(--home-border);
    background: #efe2da;
}

.landing-home .menu-preview-panel {
    background: #fff;
}

.landing-home .menu-preview-panel h3 {
    max-width: 650px;
    font-size: clamp(1.85rem, 2.8vw, 3rem);
}

.landing-home .menu-preview-list div {
    border-color: var(--home-border);
    border-radius: 8px;
    background: #fbf4ec;
}

.landing-home .trust-section {
    background:
        linear-gradient(180deg, rgba(53, 26, 36, 0.96), rgba(53, 26, 36, 0.97)),
        var(--home-ink);
    color: #fff;
}

.landing-home .trust-section .landing-kicker,
.landing-home .trust-section .home-section-heading p:not(.landing-kicker) {
    color: #ecdcd4;
}

.landing-home .trust-section .home-section-heading h2 {
    color: #fff;
}

.landing-home .trust-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    max-width: var(--home-width);
    margin: 0 auto;
}

.landing-home .trust-item {
    padding: 22px;
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.08);
    box-shadow: none;
}

.landing-home .trust-item h3 {
    color: #fff;
}

.landing-home .trust-item p {
    color: #e6d6ce;
}

.landing-home .faq-list {
    max-width: 900px;
    border-color: var(--home-border);
    border-radius: 8px;
    background: #fff;
}

.landing-home .faq-list details {
    border-bottom-color: var(--home-border);
}

.landing-home .faq-list summary {
    color: var(--home-ink);
}

.landing-home .home-final-cta {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: center;
    padding: clamp(54px, 7vw, 78px) 40px;
    background:
        linear-gradient(135deg, #fbf4ec 0%, #efe2da 54%, #f8eee9 100%);
    border-top: 1px solid var(--home-border);
}

.landing-home .home-final-cta > div:first-child {
    max-width: 780px;
}

.landing-home .home-final-cta h2 {
    max-width: 760px;
}

.landing-home .home-final-cta p {
    max-width: 660px;
}

.landing-home .contact-actions {
    justify-content: flex-end;
    margin-top: 0;
}

/* Rodapé quente (bordô da marca, não o #182226 frio de antes), em colunas. */
.landing-home .home-footer {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) auto auto;
    gap: 30px 56px;
    align-items: start;
    padding: clamp(42px, 5vw, 64px) 40px 28px;
    background: var(--home-ink);
    color: #efe2da;
    border-top: 1px solid var(--home-gold-line);
    text-align: left;
}

.landing-home .home-footer-brand {
    display: grid;
    gap: 12px;
    max-width: 380px;
}

.landing-home .home-footer-brand p {
    margin: 0;
    color: #c9a7a0;
    line-height: 1.5;
}

.landing-home .home-footer-contact {
    justify-self: start;
    margin-top: 2px;
    padding: 9px 17px;
    border: 1px solid rgba(185, 152, 90, 0.5);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
    font-weight: 760;
    text-decoration: none;
    transition: background 180ms ease, border-color 180ms ease;
}

.landing-home .home-footer-contact:hover {
    border-color: rgba(185, 152, 90, 0.8);
    background: rgba(255, 255, 255, 0.12);
}

.landing-home .home-footer-col {
    display: grid;
    gap: 11px;
    align-content: start;
}

.landing-home .home-footer-col span {
    color: var(--home-gold);
    font-size: 0.72rem;
    font-weight: 820;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.landing-home .home-footer-col a {
    color: #e6d6ce;
    font-size: 0.94rem;
    font-weight: 600;
    text-decoration: none;
    transition: color 150ms ease;
}

.landing-home .home-footer-col a:hover {
    color: #fff;
}

.landing-home .home-footer-legal {
    grid-column: 1 / -1;
    margin: 6px 0 0;
    padding-top: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: #b48f93;
    font-size: 0.84rem;
}

/* Stack the portal demo before its four fixed columns would clip. */
@media (max-width: 1080px) {
    .landing-home .product-app-shell {
        grid-template-columns: 1fr;
    }

    .landing-home .demo-stage {
        grid-template-columns: 1fr;
    }

    .landing-home .demo-sidebar {
        display: none;
    }

    .landing-home .demo-inbox {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        padding: 12px;
        border-right: 0;
        border-bottom: 1px solid var(--home-border);
    }

    .landing-home .demo-thread {
        border-bottom: 1px solid var(--home-border);
    }

    .landing-home .demo-control {
        align-content: start;
        border-top: 1px solid var(--home-border);
        border-left: 0;
    }
}

@media (max-width: 1180px) {
    .landing-home .home-hero {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .landing-home .home-hero-copy {
        max-width: 850px;
    }

    .landing-home .home-hero h1 {
        max-width: 900px;
    }

    .landing-home .hero-subtitle {
        max-width: 720px;
    }

    .landing-home .home-hero-visual {
        max-width: 900px;
    }

    .landing-home .problem-grid,
    .landing-home .implementation-track,
    .landing-home .trust-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .landing-home .home-header {
        padding-left: 22px;
        padding-right: 22px;
    }

    .landing-home .home-nav {
        overflow-x: auto;
        justify-content: flex-start;
        max-width: 100%;
        padding-bottom: 2px;
    }

    .landing-home .home-hero,
    .landing-home .home-section,
    .landing-home .home-final-cta {
        padding-left: 22px;
        padding-right: 22px;
    }

    .landing-home .solution-layout,
    .landing-home .simulation-layout,
    .landing-home .split-heading,
    .landing-home .home-final-cta {
        grid-template-columns: 1fr;
    }

    .landing-home .value-list,
    .landing-home .problem-grid,
    .landing-home .comparison-grid,
    .landing-home .implementation-track,
    .landing-home .trust-grid {
        grid-template-columns: 1fr;
    }

    .landing-home .product-legend {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .landing-home .contact-actions {
        justify-content: flex-start;
    }
}

@media (max-width: 720px) {
    .landing-home .home-header {
        min-height: 72px;
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .landing-home .landing-logo.has-lockup img.brand-lockup {
        height: 50px;
    }

    .landing-home .home-nav a:not(.nav-contact):not(.landing-login) {
        display: none;
    }

    .landing-home .home-nav {
        flex: 0 0 auto;
    }

    .landing-home .home-nav a {
        min-height: 36px;
        padding: 7px 10px;
        font-size: 0.84rem;
    }

    .landing-home .home-hero {
        gap: 18px;
        padding-top: 24px;
        padding-bottom: 28px;
    }

    .landing-home .home-hero h1 {
        font-size: clamp(2.35rem, 12vw, 3.25rem);
        line-height: 0.98;
    }

    .landing-home .hero-subtitle {
        margin-top: 16px;
        font-size: 0.98rem;
        line-height: 1.54;
    }

    .landing-home .hero-actions {
        align-items: stretch;
        flex-direction: column;
        margin-top: 20px;
    }

    .landing-home .hero-actions .landing-button {
        width: 100%;
    }

    .landing-home .hero-trust-row {
        display: none;
    }

    .landing-home .hero-kicker {
        display: block;
        width: auto;
        margin-bottom: 10px;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .landing-home .hero-chat {
        min-height: 208px;
        padding: 16px 14px;
    }

    .landing-home .hero-bubble {
        max-width: 92%;
        font-size: 0.84rem;
    }

    .landing-home .hero-phone-head {
        padding: 11px 13px;
    }

    .landing-home .hero-arrow {
        width: 36px;
        height: 36px;
    }

    .landing-home .hero-tabs button {
        flex: 0 0 auto;
        font-size: 0.78rem;
    }

    .landing-home .product-legend {
        grid-template-columns: 1fr;
    }

    .landing-home .simulation-card {
        border-radius: 14px;
    }

    .landing-home .simulation-chat {
        padding: 16px 14px;
    }

    .landing-home .simulation-bubble {
        max-width: 94%;
        font-size: 0.9rem;
    }

    .landing-home .home-section-heading {
        margin-bottom: 24px;
        text-align: left;
    }

    .landing-home .problem-section {
        padding-top: 28px;
    }

    .landing-home .home-section-heading h2,
    .landing-home .solution-copy h2,
    .landing-home .split-heading h2,
    .landing-home .home-final-cta h2 {
        font-size: clamp(1.82rem, 9vw, 2.38rem);
    }

    .landing-home .home-section-heading p:not(.landing-kicker),
    .landing-home .solution-copy p,
    .landing-home .split-heading > p,
    .landing-home .home-final-cta p {
        font-size: 0.98rem;
        line-height: 1.54;
    }

    .landing-home .problem-item,
    .landing-home .implementation-node,
    .landing-home .trust-item,
    .landing-home .value-item {
        padding: 18px;
    }

    .landing-home .implementation-node {
        min-height: 0;
    }

    .landing-home .value-item {
        grid-template-columns: 1fr;
    }

    .landing-home .value-icon {
        width: 36px;
        height: 36px;
    }

    .landing-home .home-product-preview .product-browser-bar strong {
        font-size: 0.72rem;
    }

    .landing-home .home-product-preview .product-browser-bar em {
        display: inline-flex;
    }

    .landing-home .product-app-shell {
        grid-template-columns: 1fr;
    }

    .landing-home .demo-sidebar {
        display: none;
    }

    .landing-home .demo-inbox {
        grid-template-columns: 1fr;
        gap: 7px;
        padding: 10px;
    }

    .landing-home .demo-chat-row {
        min-height: 52px;
    }

    .landing-home .demo-chat-row:nth-child(2),
    .landing-home .demo-chat-row:nth-child(3),
    .landing-home .demo-chat-row:nth-child(4) {
        display: grid;
    }

    .landing-home .demo-thread-header {
        min-height: 52px;
        padding: 10px 12px;
    }

    .landing-home .demo-thread-header span:not(.demo-stage-pill) {
        display: block;
    }

    .landing-home .demo-messages {
        min-height: 230px;
        padding: 14px 12px;
    }

    .landing-home .patient-fields {
        grid-template-columns: 1fr;
    }

    .landing-home .demo-message .demo-bubble {
        font-size: 0.82rem;
        line-height: 1.36;
    }

    .landing-home .demo-compose {
        display: none;
    }

    .landing-home .demo-control {
        position: static;
        margin-top: 0;
        padding: 10px;
        border: 0;
        border-top: 1px solid var(--home-border);
        background: #fff;
    }

    .landing-home .demo-control-card {
        gap: 7px;
        padding: 12px;
        box-shadow: none;
    }

    .landing-home .demo-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .landing-home .demo-actions button {
        width: 100%;
    }

    /* Keep the full AI traceability visible on mobile (override legacy collapse). */
    .landing-home .demo-control-card p {
        display: block;
    }

    .landing-home .demo-mode-card {
        display: grid;
    }

    .landing-home .portal-menu-card nav {
        grid-template-columns: 1fr;
    }

    .landing-home .menu-preview-panel {
        min-height: 280px;
        padding: 20px;
    }

    .landing-home .menu-preview-panel h3 {
        font-size: 1.65rem;
    }

    .landing-home .home-final-cta .landing-button {
        width: 100%;
    }

    .landing-home .contact-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .landing-home .home-footer {
        grid-template-columns: 1fr;
        text-align: left;
    }
}

@media (max-width: 430px) {
    .landing-home .home-hero h1 {
        font-size: 1.95rem;
    }

    .landing-home .care-chat {
        min-height: 150px;
    }

    .landing-home .demo-chat-row:nth-child(2),
    .landing-home .demo-chat-row:nth-child(3),
    .landing-home .demo-chat-row:nth-child(4) {
        display: grid;
    }
}

/* ============================================================
   Mobile portal as an app-like device (home17)
   The shell stays ~half the screen so the page keeps scrolling;
   the inbox and the conversation are two sliding screens, with a
   presentational bottom tab bar — tapping a chat opens it.
   ============================================================ */
@media (max-width: 720px) {
    .landing-home .product-app-shell {
        position: relative;
        display: block;
        height: min(58vh, 500px);
        padding-bottom: 56px;
        overflow: hidden;
        background: #fff;
    }

    .landing-home .demo-inbox,
    .landing-home .demo-stage {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 56px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        transition: transform 320ms cubic-bezier(0.22, 0.61, 0.36, 1);
    }

    .landing-home .demo-inbox {
        display: grid;
        grid-template-columns: 1fr;
        align-content: start;
        gap: 8px;
        padding: 12px;
        border: 0;
        background: #f5ece4;
        transform: translateX(0);
        z-index: 1;
    }

    .landing-home .demo-stage {
        display: flex;
        flex-direction: column;
        grid-template-columns: none;
        transform: translateX(100%);
        background: #fff;
        z-index: 2;
    }

    .landing-home .product-app-shell.show-thread .demo-inbox {
        transform: translateX(-14%);
    }

    .landing-home .product-app-shell.show-thread .demo-stage {
        transform: translateX(0);
    }

    .landing-home .demo-thread {
        flex: 0 0 auto;
        border-bottom: 1px solid var(--home-border);
    }

    .landing-home .demo-messages {
        min-height: 190px;
    }

    .landing-home .demo-control {
        position: static;
        margin: 0;
        padding: 12px;
        border: 0;
        background: #fff;
        align-content: start;
    }

    .landing-home .demo-control-card {
        box-shadow: none;
    }

    /* Back chevron in the thread header (mobile only) */
    .landing-home .demo-back {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
        width: 34px;
        height: 34px;
        margin-right: 4px;
        border: 1px solid var(--home-border);
        border-radius: 9px;
        background: #fff;
        color: var(--home-ink);
        cursor: pointer;
    }

    .landing-home .demo-back svg {
        width: 18px;
        height: 18px;
    }

    /* App-style bottom tab bar — presentational, not clickable */
    .landing-home .demo-bottom-nav {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 3;
        display: flex;
        align-items: stretch;
        height: 56px;
        border-top: 1px solid var(--home-border);
        background: #fff;
    }

    .landing-home .demo-bottom-nav span {
        display: flex;
        flex: 1;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 3px;
        color: var(--home-muted);
        font-size: 0.62rem;
        font-weight: 760;
    }

    .landing-home .demo-bottom-nav span.is-active {
        color: var(--home-sage);
    }

    .landing-home .demo-bottom-nav svg {
        width: 20px;
        height: 20px;
    }

    .landing-home .demo-bottom-nav em {
        font-style: normal;
    }
}

/* ============================================================================
   CAMADA DE INTERAÇÃO (Fase 2) — espelha a do app.css. Apêndice no fim de
   propósito: vem depois das regras de :hover espalhadas, então :active e os
   resets de hover-no-touch ganham por ordem de cascata. Resolve "clico e não
   parece que cliquei" no celular + reduz custo de pintura no mobile.
   ========================================================================== */

/* 1) Defaults de toque: sem highlight cinza do browser, sem delay de 300ms. */
.landing-button, .landing-nav a, .home-nav a, .hero-arrow, .option-card,
.demo-back, button, [role="button"], summary {
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
}

/* 2) No touch o :hover nunca dispara (ou fica grudado depois do tap). Aqui
   neutralizamos os transforms decorativos de hover em telas sem ponteiro fino,
   pra não ficarem "presos" elevados depois de tocar. */
@media (hover: none), (pointer: coarse) {
    .landing-button:hover,
    .landing-nav a:hover,
    .landing-home .home-nav a:hover,
    .landing-home .hero-arrow:hover,
    .option-card:hover {
        transform: none;
    }
}

/* 3) Feedback de press (:active) — o sinal que faltava no toque. Cor/opacidade
   sempre; o "afundar" (scale) só quando o usuário não pediu menos movimento. */
@media (prefers-reduced-motion: no-preference) {
    .landing-button:active,
    .landing-nav a:active,
    .landing-home .home-nav a:active,
    .landing-home .hero-arrow:active,
    .option-card:active,
    .demo-back:active {
        transform: scale(0.97);
    }
}
.landing-button:active { filter: brightness(0.95); }
.landing-button-secondary:active { background: var(--landing-bg-alt); }
.landing-nav a:active,
.landing-home .home-nav a:active { background: rgba(0, 0, 0, 0.06); }
.hero-arrow:active { background: var(--home-sage-soft); }

/* 4) Alvos de toque ≥44px no mobile (faltavam alguns). */
@media (max-width: 760px) {
    .landing-button { min-height: 44px; }
    .landing-home .demo-back { min-height: 44px; min-width: 44px; }

    /* 5) Pintura mais barata por frame no mobile: sombras gigantes (70px de blur)
       são caras ao rolar. Re-escopa os tokens de sombra com blur menor — todo
       uso de var(--landing-shadow*) herda automaticamente. */
    body.landing-body {
        --landing-shadow: 0 10px 26px rgba(53, 26, 36, 0.16);
        --landing-shadow-soft: 0 6px 16px rgba(53, 26, 36, 0.09);
    }

    /* 6) backdrop-filter (blur do header sticky) é caro por frame ao rolar em
       celular. Fundo sólido translúcido dá o mesmo visual sem o custo. */
    .landing-header,
    .landing-home .home-header {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        background: rgba(245, 236, 228, 0.98);
    }
}

/* ============================================================================
   TOQUES PREMIUM — Paleta 4 "Vinho / Luxo emocional". Apêndice no fim para
   ganhar por cascata sobre regras anteriores. Ouro envelhecido (#B9985A) só em
   detalhes finos; vinho no CTA principal; nada exagerado.
   ========================================================================== */

/* CTA primário em vinho acetinado, com um fio de ouro no hover (premium sutil). */
.landing-button-primary {
    background: var(--landing-lilac);
    border-color: var(--landing-lilac);
    color: #fff;
}
.landing-button-primary:hover {
    background: var(--landing-lilac-dark);
    border-color: var(--landing-lilac-dark);
    box-shadow: 0 0 0 1px var(--landing-gold-line), var(--landing-shadow-soft);
}

/* Kicker/eyebrow ganha o ouro — assinatura premium da marca. */
.landing-kicker {
    color: var(--landing-gold);
    letter-spacing: 0.14em;
}

/* Fio de ouro discreto sob o header, separando do conteúdo. */
.landing-header::after,
.landing-home .home-header::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--landing-gold-line), transparent);
    pointer-events: none;
}
.landing-header,
.landing-home .home-header { position: sticky; }

/* Foco visível com a cor da marca (acessibilidade + coesão). */
.landing-button:focus-visible,
.landing-nav a:focus-visible,
.option-card:focus-visible {
    outline: 2px solid var(--landing-gold);
    outline-offset: 2px;
}

/* ============================================================================
   CENTRAL DE CONTEÚDO /recursos (SEO). Usa os tokens --landing-* (paleta Vinho)
   porque as páginas usam .landing-body (não .landing-home).
   ========================================================================== */
.recursos-hero {
    max-width: 820px;
    margin: 0 auto;
    padding: clamp(48px, 7vw, 86px) 24px 18px;
    text-align: center;
}
.recursos-hero h1 {
    margin: 8px 0 14px;
    color: var(--landing-ink);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 740;
    line-height: 1.05;
}
.recursos-hero p {
    margin: 0 auto;
    max-width: 640px;
    color: var(--landing-text);
    font-size: 1.02rem;
    line-height: 1.55;
}
.recursos-pillar-link {
    margin-top: 16px;
    font-size: 0.98rem;
}
.recursos-pillar-link a {
    color: var(--landing-accent, #6D3746);
    font-weight: 640;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.recursos-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 18px;
    max-width: var(--landing-width);
    margin: 0 auto;
    padding: 28px 24px 60px;
}
.recursos-empty {
    color: var(--landing-muted);
    text-align: center;
}
.recursos-card {
    border: 1px solid var(--landing-border);
    border-radius: 8px;
    background: var(--landing-surface);
    box-shadow: var(--landing-shadow-soft);
    transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}
.recursos-card:hover {
    transform: translateY(-3px);
    border-color: var(--landing-border-strong);
    box-shadow: var(--landing-shadow);
}
.recursos-card-link {
    display: block;
    padding: 22px 22px 20px;
    text-decoration: none;
}
.recursos-card-link h2,
.recursos-card-link h3 {
    margin: 0 0 8px;
    color: var(--landing-ink);
    font-size: 1.18rem;
    font-weight: 740;
    line-height: 1.25;
}
.recursos-card-link p {
    margin: 0 0 12px;
    color: var(--landing-text);
    font-size: 0.95rem;
    line-height: 1.5;
}
.recursos-card-meta {
    display: block;
    color: var(--landing-muted);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.landing-body:not(.landing-home) .home-final-cta {
    max-width: var(--landing-width);
    margin: 0 auto;
    padding: 28px 24px 72px;
    text-align: center;
}

.landing-body:not(.landing-home) .home-final-cta h2 {
    max-width: 760px;
    margin: 0 auto 18px;
    color: var(--landing-ink);
    font-size: clamp(1.8rem, 3.4vw, 2.6rem);
    font-weight: 740;
    line-height: 1.08;
}

/* ---- Artigo ---- */
.article-body {
    max-width: 760px;
    margin: 0 auto;
    padding: clamp(28px, 5vw, 52px) 24px 8px;
}
.article-breadcrumb {
    margin-bottom: 18px;
    color: var(--landing-muted);
    font-size: 0.82rem;
}
.article-breadcrumb a {
    color: var(--landing-lilac);
    text-decoration: none;
    font-weight: 700;
}
.article-breadcrumb span[aria-hidden] {
    margin: 0 4px;
    opacity: 0.5;
}
.article-header h1 {
    margin: 8px 0 12px;
    color: var(--landing-ink);
    font-size: clamp(2rem, 4.2vw, 3.05rem);
    font-weight: 740;
    line-height: 1.06;
}
.article-meta {
    margin: 0;
    color: var(--landing-muted);
    font-size: 0.86rem;
    font-weight: 600;
}
.article-prose {
    margin-top: 26px;
    color: var(--landing-text);
    font-size: 1.06rem;
    line-height: 1.7;
}
.article-prose h2 {
    margin: 2em 0 0.5em;
    color: var(--landing-ink);
    font-size: 1.6rem;
    font-weight: 740;
    line-height: 1.2;
}
.article-prose h3 {
    margin: 1.6em 0 0.5em;
    color: var(--landing-ink);
    font-size: 1.25rem;
    font-weight: 720;
}
.article-prose p { margin: 0 0 1.1em; }
.article-prose ul,
.article-prose ol {
    margin: 0 0 1.2em;
    padding-left: 1.4em;
}
.article-prose li { margin: 0.35em 0; }
.article-prose a {
    color: var(--landing-lilac);
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 600;
}
.article-prose strong { color: var(--landing-ink); }
.article-prose blockquote {
    margin: 1.4em 0;
    padding: 12px 18px;
    border-left: 3px solid var(--landing-gold-line);
    background: var(--landing-surface-warm);
    border-radius: 0 10px 10px 0;
    color: var(--landing-ink);
}
.article-prose blockquote p:last-child { margin-bottom: 0; }
.article-prose table {
    display: block;
    width: 100%;
    margin: 1.4em 0;
    border-collapse: collapse;
    font-size: 0.94rem;
    line-height: 1.45;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.article-prose th,
.article-prose td {
    padding: 9px 12px;
    border: 1px solid var(--landing-gold-line);
    text-align: left;
    vertical-align: top;
}
.article-prose thead th {
    background: var(--landing-surface-warm);
    color: var(--landing-ink);
    font-weight: 720;
}
.article-prose tbody tr:nth-child(even) { background: var(--landing-surface-warm); }
@media (max-width: 640px) {
    .article-prose table { font-size: 0.78rem; }
    .article-prose th,
    .article-prose td { padding: 7px 7px; }
}

.article-cta {
    margin: 40px auto 0;
    max-width: 760px;
    padding: 26px 24px;
    border: 1px solid var(--landing-border);
    border-radius: 14px;
    background: var(--landing-surface-warm);
    text-align: center;
}
.article-cta p {
    margin: 0 0 16px;
    color: var(--landing-ink);
    font-size: 1.1rem;
    font-weight: 720;
}

.article-related {
    max-width: var(--landing-width);
    margin: 56px auto 0;
    padding: 0 24px 60px;
}
.article-related > h2 {
    margin: 0 0 18px;
    color: var(--landing-ink);
    font-size: 1.4rem;
    font-weight: 740;
    text-align: center;
}

/* ---- Banner de consentimento (LGPD / GA4) ---- */
.consent-banner {
    position: fixed;
    left: auto;
    right: 16px;
    bottom: 16px;
    z-index: 200;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: min(430px, calc(100vw - 32px));
    padding: 10px 12px;
    border: 1px solid var(--landing-border-strong);
    border-radius: 12px;
    background: var(--landing-surface);
    box-shadow: 0 14px 38px rgba(53, 26, 36, 0.16);
}
.consent-banner[hidden] { display: none; }
.consent-banner p {
    margin: 0;
    color: var(--landing-text);
    font-size: 0.78rem;
    line-height: 1.35;
}
.consent-actions { display: flex; gap: 8px; }
.consent-actions button {
    min-height: 34px;
    padding: 7px 12px;
    border-radius: 9px;
    border: 1px solid var(--landing-border-strong);
    background: #fff;
    color: var(--landing-ink);
    font: inherit;
    font-weight: 720;
    cursor: pointer;
}
.consent-actions button[data-consent="accept"] {
    border-color: var(--landing-lilac);
    background: var(--landing-lilac);
    color: #fff;
}

.landing-mobile-actions,
.landing-mobile-menu {
    display: none;
}

/* Mobile overflow guard for the public landing. */
@media (max-width: 720px) {
    html,
    body.landing-body {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    .landing-home .home-header {
        position: sticky;
        display: flex;
        gap: 10px;
        padding: 10px 14px;
        max-width: 100vw;
        overflow: visible;
    }

    .landing-home .landing-logo {
        min-width: 0;
        flex: 1 1 auto;
    }

    .landing-home .landing-logo.has-lockup img.brand-lockup {
        width: min(132px, 42vw);
        height: auto;
        max-height: 46px;
    }

    .landing-home .home-nav {
        display: none;
    }

    .landing-mobile-actions {
        display: inline-flex;
        align-items: center;
        justify-content: flex-end;
        gap: 6px;
        flex: 0 0 auto;
        min-width: 0;
    }

    .landing-mobile-wa,
    .landing-mobile-menu-button,
    .landing-mobile-menu a {
        min-height: 36px;
        border-radius: 8px;
        color: #351a24;
        font-size: 0.82rem;
        font-weight: 760;
        text-decoration: none;
    }

    .landing-mobile-wa,
    .landing-mobile-menu-button {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 7px 10px;
        border: 1px solid rgba(109, 55, 70, 0.18);
        background: #fff;
        white-space: nowrap;
    }

    /* WhatsApp dominante no topo mobile: verde solido, no lugar do antigo
       "Entrar" (login agora vive no menu e no rodape). */
    .landing-mobile-wa {
        gap: 6px;
        border-color: transparent;
        background: linear-gradient(140deg, #2bd566 0%, #128c4e 100%);
        color: #fff;
        box-shadow: 0 8px 18px rgba(18, 140, 78, 0.28);
    }

    .landing-mobile-wa svg {
        width: 18px;
        height: 18px;
        flex: 0 0 18px;
    }

    .landing-mobile-menu-button {
        font: inherit;
        cursor: pointer;
    }

    .landing-mobile-menu {
        position: absolute;
        top: calc(100% + 6px);
        left: 12px;
        right: 12px;
        z-index: 140;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 4px;
        width: auto;
        max-width: calc(100vw - 24px);
        padding: 10px;
        border: 1px solid rgba(109, 55, 70, 0.16);
        border-radius: 10px;
        background: rgba(255, 253, 248, 0.99);
        box-shadow: 0 22px 54px rgba(53, 26, 36, 0.2);
    }

    .landing-mobile-menu[hidden] {
        display: none;
    }

    .landing-mobile-menu a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 8px 10px;
        background: rgba(255, 255, 255, 0.62);
    }

    /* CTA WhatsApp primeiro e destacado; o gradiente vinho dos CTAs primarios
       vem da regra global .landing-home .nav-contact. */
    .landing-mobile-menu .nav-contact {
        justify-content: center;
        min-height: 46px;
        color: #fff;
        font-size: 0.92rem;
    }

    .landing-home .home-hero,
    .landing-home .home-section,
    .landing-home .home-final-cta {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }

    .landing-home .hero-carousel,
    .landing-home .hero-phone,
    .landing-home .hero-carousel-controls {
        min-width: 0;
        max-width: 100%;
    }

    .landing-home .hero-carousel-controls {
        overflow: hidden;
    }

    .landing-home .hero-tabs {
        max-width: 100%;
        padding-bottom: 4px;
        scroll-padding-inline: 6px;
    }

    .landing-home .hero-tabs button {
        max-width: 76vw;
    }

    .landing-home .home-product-preview,
    .landing-home .product-browser,
    .landing-home .product-app-shell {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .landing-home .demo-inbox,
    .landing-home .demo-stage {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .landing-home .demo-stage {
        pointer-events: none;
    }

    .landing-home .product-app-shell.show-thread .demo-stage {
        pointer-events: auto;
    }

    .landing-home .demo-chat-row,
    .landing-home .demo-thread,
    .landing-home .demo-control,
    .landing-home .demo-control-card {
        min-width: 0;
        max-width: 100%;
    }
}

@media (max-width: 390px) {
    .landing-mobile-wa,
    .landing-mobile-menu-button {
        padding-inline: 8px;
        font-size: 0.78rem;
    }
}

/* Premium editorial pass for the public landing. */
.landing-home .home-hero {
    position: relative;
    align-items: center;
    border-bottom: 1px solid rgba(185, 152, 90, 0.24);
}

.landing-home .home-hero::before {
    content: "";
    position: absolute;
    left: 40px;
    right: 40px;
    bottom: 18px;
    height: 1px;
    background: linear-gradient(90deg, rgba(185, 152, 90, 0.5), transparent 72%);
    pointer-events: none;
}

.landing-home .hero-kicker,
.landing-home .landing-kicker {
    font-family: var(--font-ui);
    font-size: 0.82rem;
    font-weight: 720;
    letter-spacing: 0;
    text-transform: none;
}

.landing-home .home-hero #hero-title {
    max-width: 820px;
    font-family: var(--font-display);
    font-size: 3.28rem;
    font-optical-sizing: auto;
    font-variation-settings: "SOFT" 78, "WONK" 0;
    font-weight: 540;
    /* 1.02 era apertado demais p/ Fraunces + acentos PT-BR (ã/ç/í na 1ª linha). */
    line-height: 1.06;
    text-transform: none;
}

.landing-home .home-section-heading h2,
.landing-home .home-final-cta h2 {
    font-family: var(--font-display);
    font-optical-sizing: auto;
    font-variation-settings: "SOFT" 70, "WONK" 0;
    font-weight: 540;
    letter-spacing: 0;
    line-height: 1.08;
}

.landing-home .hero-subtitle {
    max-width: 650px;
    font-size: 1.16rem;
    font-weight: 520;
    margin-top: 17px;
    line-height: 1.56;
}

.landing-home .hero-subtitle strong {
    color: var(--home-ink);
}

/* Linha de prova enxuta — substitui os 6 selos arco-íris (um foco no hero). */
.landing-home .hero-proof {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 20px;
    margin: 24px 0 0;
    padding: 0;
    list-style: none;
}

.landing-home .hero-proof li {
    position: relative;
    padding-left: 24px;
    color: var(--home-text);
    font-size: 0.96rem;
    font-weight: 600;
}

.landing-home .hero-proof li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.18em;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--home-sage-soft);
    /* check em vinho desenhado com gradientes (sem dependência de glyph/fonte) */
    box-shadow: inset 0 0 0 1px rgba(109, 55, 70, 0.28);
}

.landing-home .hero-proof li::after {
    content: "";
    position: absolute;
    left: 5px;
    top: calc(0.18em + 4px);
    width: 4px;
    height: 7px;
    border: solid var(--home-sage);
    border-width: 0 2px 2px 0;
    transform: rotate(40deg);
}

.landing-home .landing-button-primary,
.landing-home .nav-contact,
.landing-home .demo-compose button,
.landing-home .demo-actions button,
.landing-home .home-final-cta .landing-button-primary {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border-color: rgba(185, 152, 90, 0.58);
    background: linear-gradient(135deg, #6d3746 0%, #351a24 62%, #4f2632 100%);
    box-shadow: 0 18px 42px rgba(53, 26, 36, 0.24), 0 0 0 1px rgba(255, 255, 255, 0.18) inset;
}

.landing-home .landing-button-primary {
    min-height: 54px;
    padding-inline: 24px;
    border-radius: 999px;
    font-family: var(--font-ui);
    font-size: 1rem;
    font-weight: 760;
    letter-spacing: 0;
    text-transform: none;
    /* Sem pulso/sheen infinitos: movimento só em hover (premium = restrição). */
    transition: transform 200ms ease, box-shadow 240ms ease, background 200ms ease, border-color 200ms ease;
}

.landing-home .landing-button,
.landing-home .nav-contact,
.landing-home .demo-compose button,
.landing-home .demo-actions button {
    font-family: var(--font-ui);
    font-weight: 720;
    letter-spacing: 0;
    text-transform: none;
}

.landing-home .price-label,
.landing-home .option-eyebrow,
.landing-home .hero-phone-badge,
.landing-home .hero-tabs button,
.landing-home .hero-bubble span,
.landing-home .demo-stage-pill,
.landing-home .demo-suggestion-tag,
.landing-home .demo-suggestion-stage,
.landing-home .patient-fields span,
.landing-home .patient-notes strong,
.landing-home .demo-history strong {
    font-family: var(--font-ui);
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.landing-home .landing-button-primary:hover,
.landing-home .nav-contact:hover {
    border-color: rgba(185, 152, 90, 0.78);
    background: linear-gradient(135deg, #783d4e 0%, #351a24 58%, #5b3040 100%);
}

.landing-home .landing-button-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 22px 48px rgba(53, 26, 36, 0.3), 0 0 0 1px rgba(255, 255, 255, 0.2) inset;
}

.landing-home .landing-button-secondary {
    border-color: rgba(185, 152, 90, 0.5);
    background: rgba(255, 253, 248, 0.88);
    color: var(--home-ink);
}

.landing-home .hero-trust-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 9px;
    max-width: 720px;
    margin-top: 18px;
}

.landing-home .hero-trust-row span {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 76px;
    padding: 12px 14px;
    border: 1px solid rgba(185, 152, 90, 0.38);
    border-radius: 14px;
    background: rgba(255, 253, 248, 0.78);
    color: var(--home-ink);
    box-shadow: 0 14px 34px rgba(53, 26, 36, 0.06);
    transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.landing-home .hero-trust-row span:hover {
    transform: translateY(-3px);
    border-color: rgba(185, 152, 90, 0.62);
    box-shadow: 0 20px 42px rgba(53, 26, 36, 0.12);
}

.landing-home .hero-trust-row svg {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    color: var(--home-gold);
    transition: transform 240ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* IMPORTANTE: o stroke-width precisa mirar os shapes (path/rect/circle/...),
   nao o <svg>. O atributo de apresentacao stroke-width="2" de cada filho vence
   o valor herdado do svg, entao por aqui o traco realmente afina. */
.landing-home .hero-trust-row svg :is(path, rect, circle, polyline, line, ellipse) {
    stroke-width: 0.85;
}

/* O selo do WhatsApp usa viewBox 24 (icone Tabler), os outros usam 32 — entao
   precisa de um stroke menor pra casar visualmente a espessura. */
.landing-home .hero-trust-whatsapp svg :is(path, rect, circle, polyline, line, ellipse) {
    stroke-width: 0.65;
}

.landing-home .hero-trust-row span:hover svg {
    transform: scale(1.12) rotate(-4deg);
}

/* Cada selo com um ícone numa cor da paleta (quente, on-brand) */
.landing-home .hero-trust-row span:nth-child(1) svg,
.landing-home .hero-trust-whatsapp svg { color: #25d366; }
.landing-home .hero-trust-row span:nth-child(2) svg { color: #6d3746; }
.landing-home .hero-trust-row span:nth-child(3) svg { color: #b9985a; }
.landing-home .hero-trust-row span:nth-child(4) svg { color: #b2674f; }
.landing-home .hero-trust-row span:nth-child(5) svg { color: #a85d6b; }
.landing-home .hero-trust-row span:nth-child(6) svg { color: #8a4a5c; }

.landing-home .hero-trust-row strong {
    color: var(--home-ink);
    font-family: var(--font-ui);
    font-size: 0.92rem;
    font-weight: 720;
    line-height: 1.16;
}

.landing-home .home-hero-visual {
    position: relative;
}

.landing-home .hero-phone,
.landing-home .hero-carousel-controls,
.landing-home .product-browser,
.landing-home .price-card,
.landing-home .option-card,
.landing-home .problem-item,
.landing-home .value-item,
.landing-home .comparison-card,
.landing-home .solution-principles > div,
.landing-home .implementation-node,
.landing-home .trust-item {
    border-color: rgba(185, 152, 90, 0.34);
}

.landing-home .hero-phone {
    box-shadow: 0 26px 72px rgba(53, 26, 36, 0.15);
}

.landing-home .hero-phone-head,
.landing-home .product-browser-bar,
.landing-home .care-console-top {
    border-bottom-color: rgba(185, 152, 90, 0.36);
    background:
        linear-gradient(90deg, rgba(185, 152, 90, 0.16), transparent 52%),
        #f3e6e2;
}

.landing-home .hero-phone-badge,
.landing-home .hero-tabs button.is-active,
.landing-home .demo-stage-pill,
.landing-home .demo-suggestion-tag,
.landing-home .demo-suggestion-stage {
    border-color: rgba(185, 152, 90, 0.5);
}

.landing-home .hero-decision-card {
    position: static;
    width: 100%;
    margin-top: 12px;
    padding: 15px 18px 15px 20px;
    border: 1px solid rgba(185, 152, 90, 0.42);
    border-left: 3px solid var(--home-gold);
    border-radius: 14px;
    background:
        linear-gradient(135deg, rgba(185, 152, 90, 0.12), transparent 52%),
        rgba(255, 253, 248, 0.94);
    box-shadow: var(--home-shadow-soft);
    transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.landing-home .hero-decision-card:hover {
    transform: translateY(-2px);
    border-color: rgba(185, 152, 90, 0.7);
    box-shadow: 0 22px 48px rgba(53, 26, 36, 0.12);
}

.landing-home .hero-decision-card span,
.landing-home .hero-decision-card strong,
.landing-home .hero-decision-card small {
    display: block;
}

.landing-home .hero-decision-card span {
    color: var(--home-gold);
    font-family: var(--font-ui);
    font-size: 0.8rem;
    font-weight: 720;
    line-height: 1;
    text-transform: none;
}

.landing-home .hero-decision-card strong {
    margin-top: 7px;
    color: var(--home-ink);
    font-size: 1rem;
    line-height: 1.18;
}

.landing-home .hero-decision-card small {
    margin-top: 6px;
    color: var(--home-text);
    font-size: 0.82rem;
    line-height: 1.35;
}

.landing-home .hero-ops-panel {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
    padding: 13px;
    border: 1px solid rgba(185, 152, 90, 0.38);
    border-radius: 16px;
    background:
        linear-gradient(135deg, rgba(185, 152, 90, 0.14), transparent 46%),
        rgba(255, 253, 248, 0.9);
    box-shadow: 0 22px 54px rgba(53, 26, 36, 0.12);
}

.landing-home .hero-ops-panel div {
    min-width: 0;
    padding: 12px 10px;
    border: 1px solid rgba(185, 152, 90, 0.26);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.72);
}

.landing-home .hero-ops-panel svg {
    width: 25px;
    height: 25px;
    color: var(--home-gold);
}

.landing-home .hero-ops-panel svg :is(path, rect, circle, polyline, line, ellipse) {
    stroke-width: 1.15;
}

.landing-home .hero-ops-panel strong,
.landing-home .hero-ops-panel small {
    display: block;
}

.landing-home .hero-ops-panel strong {
    margin-top: 8px;
    color: var(--home-ink);
    font-family: var(--font-ui);
    font-size: 0.9rem;
    font-weight: 740;
    line-height: 1.1;
}

.landing-home .hero-ops-panel small {
    margin-top: 5px;
    color: var(--home-text);
    font-size: 0.76rem;
    line-height: 1.25;
}

.landing-home .problem-item,
.landing-home .value-item,
.landing-home .comparison-card,
.landing-home .implementation-node,
.landing-home .trust-item,
.landing-home .price-card,
.landing-home .option-card {
    transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.landing-home .problem-item:hover,
.landing-home .value-item:hover,
.landing-home .comparison-card:hover,
.landing-home .implementation-node:hover,
.landing-home .trust-item:hover,
.landing-home .option-card:hover {
    border-color: rgba(185, 152, 90, 0.62);
    box-shadow: 0 24px 52px rgba(53, 26, 36, 0.13);
    transform: translateY(-4px);
}

/* Micro-movimento nos ícones/badges ao passar o mouse (premium, discreto) */
.landing-home .value-item .value-icon,
.landing-home .problem-item span,
.landing-home .implementation-node span {
    transition: transform 260ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

.landing-home .value-item:hover .value-icon,
.landing-home .problem-item:hover span,
.landing-home .implementation-node:hover span {
    transform: scale(1.09) rotate(-4deg);
}

.landing-home .hero-ops-panel div {
    transition: transform 200ms ease, border-color 200ms ease, background 200ms ease;
}

.landing-home .hero-ops-panel div:hover {
    transform: translateY(-2px);
    border-color: rgba(185, 152, 90, 0.52);
    background: rgba(255, 255, 255, 0.95);
}

.landing-home .demo-message.out .demo-bubble,
.landing-home .demo-compose button,
.landing-home .demo-actions button.is-primary {
    border-color: rgba(185, 152, 90, 0.52);
}

.landing-home .demo-suggestion,
.landing-home .demo-confidence-score,
.landing-home .demo-confidence-facts li,
.landing-home .patient-profile-head,
.landing-home .demo-history div {
    border-color: rgba(185, 152, 90, 0.32);
}

.landing-home .home-final-cta {
    border-top-color: rgba(185, 152, 90, 0.38);
    background:
        linear-gradient(135deg, rgba(185, 152, 90, 0.16), transparent 36%),
        linear-gradient(135deg, #fbf4ec 0%, #efe2da 54%, #f8eee9 100%);
}

/* ===== Quebra de linha por frase + destaque em vinho nos títulos ===== */
.landing-home .home-hero h1,
.landing-home .home-section-heading h2,
.landing-home .solution-copy h2,
.landing-home .split-heading h2,
.landing-home .home-final-cta h2 {
    text-wrap: balance;
}

.landing-home .h-sentence {
    display: block;
}

.landing-home .h-wine {
    color: var(--home-sage);
}

/* ===== Negritos do corpo em tom de vinho (destaque) ===== */
.landing-home .hero-subtitle strong,
.landing-home .problem-section .home-section-heading p strong,
.landing-home .problem-item p strong,
.landing-home .value-section .home-section-heading p strong,
.landing-home .value-item p strong,
.landing-home .solution-principles strong,
.landing-home .pricing-section .price-intro strong,
.landing-home .pricing-section .price-benefits li strong,
.landing-home .pricing-section .price-note strong,
.landing-home .buying-options p strong,
.landing-home .home-faq-section p strong,
.landing-home .home-final-cta p strong {
    color: var(--home-sage);
    font-weight: 800;
}

/* ===== Botão flutuante "Fale no WhatsApp" ===== */
.home-wa-fab {
    position: fixed;
    right: max(20px, env(safe-area-inset-right));
    bottom: max(20px, env(safe-area-inset-bottom));
    z-index: 85;
    display: inline-flex;
    align-items: center;
    height: 62px;
    border-radius: 999px;
    background: linear-gradient(140deg, #2bd566 0%, #128c4e 100%);
    color: #fff;
    text-decoration: none;
    box-shadow: 0 18px 40px rgba(18, 140, 78, 0.42), inset 0 0 0 1px rgba(255, 255, 255, 0.16);
    overflow: hidden;
    transition: transform 240ms ease, box-shadow 240ms ease;
}

.home-wa-fab-icon {
    display: grid;
    place-items: center;
    width: 62px;
    height: 62px;
    flex: 0 0 62px;
}

.home-wa-fab-icon svg {
    width: 30px;
    height: 30px;
}

.home-wa-fab-label {
    max-width: 0;
    overflow: hidden;
    white-space: nowrap;
    font-family: var(--font-ui);
    font-weight: 760;
    font-size: 0.98rem;
    opacity: 0;
    transition: max-width 340ms ease, opacity 240ms ease, padding 340ms ease;
}

.home-wa-fab:hover {
    transform: translateY(-3px);
    box-shadow: 0 24px 50px rgba(18, 140, 78, 0.5), inset 0 0 0 1px rgba(255, 255, 255, 0.2);
}

.home-wa-fab:hover .home-wa-fab-label,
.home-wa-fab:focus-visible .home-wa-fab-label {
    max-width: 220px;
    padding-left: 20px;
    opacity: 1;
}

@media (max-width: 720px) {
    .home-wa-fab { height: 56px; }
    .home-wa-fab-icon { width: 56px; height: 56px; flex-basis: 56px; }
    .home-wa-fab-icon svg { width: 27px; height: 27px; }
}

@media (prefers-reduced-motion: reduce) {
    .home-wa-fab,
    .home-wa-fab::before {
        animation: none;
    }
    .landing-home .hero-trust-row span,
    .landing-home .hero-trust-row svg,
    .landing-home .problem-item,
    .landing-home .value-item,
    .landing-home .comparison-card,
    .landing-home .implementation-node,
    .landing-home .option-card,
    .landing-home .value-item .value-icon,
    .landing-home .problem-item span,
    .landing-home .implementation-node span,
    .landing-home .hero-decision-card,
    .landing-home .hero-ops-panel div {
        transition: none;
    }
}

@media (max-width: 1180px) {
    .landing-home .hero-trust-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        max-width: 720px;
    }

    .landing-home .hero-ops-panel {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .landing-home .home-hero::before {
        left: 22px;
        right: 22px;
        bottom: 10px;
    }

    .landing-home .home-hero #hero-title {
        font-size: 2.42rem;
        line-height: 1.06;
        text-transform: none;
    }

    .landing-home .hero-subtitle {
        font-size: 1rem;
        line-height: 1.52;
    }

    .landing-home .hero-trust-row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        margin-top: 16px;
    }

    .landing-home .hero-trust-row span {
        min-height: 92px;
        padding: 10px;
        flex-direction: column;
        gap: 8px;
    }

    .landing-home .hero-trust-row strong {
        font-size: 0.82rem;
        line-height: 1.16;
    }

    .landing-home .hero-decision-card {
        position: static;
        width: 100%;
        margin-top: 12px;
    }

    .landing-home .hero-ops-panel {
        grid-template-columns: 1fr;
        margin-top: 12px;
        padding: 10px;
    }

    .landing-home .hero-ops-panel div {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 10px;
        align-items: center;
    }

    .landing-home .hero-ops-panel svg {
        grid-row: span 2;
    }

    .landing-home .hero-ops-panel strong {
        margin-top: 0;
    }

    .landing-home .landing-button-primary {
        min-height: 52px;
        font-size: 0.98rem;
    }
}

@media (max-width: 390px) {
    .landing-home .home-hero #hero-title {
        font-size: 2.26rem;
        text-transform: none;
    }
}

/* ===== Conversao mobile WhatsApp-first (2026-07) ===== */

/* Link discreto que nao compete com o CTA primario. */
.landing-home .landing-link-secondary {
    display: inline-flex;
    align-items: center;
    align-self: center;
    color: var(--home-ink);
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: underline;
    text-decoration-color: rgba(109, 55, 70, 0.4);
    text-underline-offset: 4px;
}

.landing-home .landing-link-secondary:hover {
    text-decoration-color: currentColor;
}

.landing-home .hero-actions .landing-link-secondary {
    padding: 8px 4px;
}

.landing-home .simulation-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px 22px;
    margin-top: 22px;
}

/* Principios (ex-secao "A solucao") condensados dentro do produto. */
.landing-home .product-principles {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 30px;
}

.landing-home .product-principles > div {
    padding: 18px 20px;
    border: 1px solid var(--home-border);
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.9);
    box-shadow: var(--home-shadow-soft);
}

.landing-home .product-principles strong,
.landing-home .product-principles span {
    display: block;
}

.landing-home .product-principles strong {
    color: var(--home-ink);
    font-size: 1.02rem;
}

.landing-home .product-principles span {
    margin-top: 5px;
    color: var(--home-text);
    font-size: 0.94rem;
}

/* Strip de qualificacao de preco: resumo cedo, secao completa mais abaixo. */
.landing-home .pricing-strip {
    padding-top: clamp(34px, 4.5vw, 52px);
    padding-bottom: clamp(34px, 4.5vw, 52px);
}

.landing-home .pricing-strip-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px 32px;
    max-width: 1080px;
    margin: 0 auto;
}

.landing-home .pricing-strip-copy h2 {
    margin: 8px 0 0;
    font-size: clamp(1.4rem, 2.6vw, 1.8rem);
}

.landing-home .pricing-strip-copy p {
    margin: 10px 0 0;
    color: var(--home-text);
}

.landing-home .pricing-strip-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
}

/* Barra sticky mobile "Testar no WhatsApp" (desktop mantem o FAB). */
.home-sticky-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 90;
    display: none;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
    background: rgba(255, 253, 248, 0.96);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid rgba(109, 55, 70, 0.14);
    box-shadow: 0 -12px 32px rgba(53, 26, 36, 0.14);
    transform: translateY(102%);
    transition: transform 280ms cubic-bezier(0.16, 0.84, 0.44, 1);
}

.home-sticky-cta.is-shown {
    transform: none;
}

.home-sticky-cta-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 52px;
    border-radius: 999px;
    background: linear-gradient(140deg, #2bd566 0%, #128c4e 100%);
    color: #fff;
    font-family: var(--font-ui);
    font-weight: 780;
    font-size: 1rem;
    text-decoration: none;
    box-shadow: 0 12px 28px rgba(18, 140, 78, 0.34), inset 0 0 0 1px rgba(255, 255, 255, 0.16);
}

.home-sticky-cta-button svg {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
}

@media (max-width: 720px) {
    .home-sticky-cta {
        display: block;
    }

    .landing-home .home-wa-fab {
        display: none;
    }

    /* A barra sticky nao pode cobrir o fim da pagina (footer/legal). */
    body.landing-home {
        padding-bottom: calc(78px + env(safe-area-inset-bottom));
    }

    /* Primeira dobra compacta: H1 menor, prova social sai, prévia do phone
       sobe para logo apos o primeiro scroll. */
    .landing-home .home-hero #hero-title {
        font-size: clamp(2rem, 9.5vw, 2.42rem);
    }

    .landing-home .hero-proof {
        display: none;
    }

    .landing-home .hero-cta-note {
        margin-top: 10px;
        font-size: 0.85rem;
    }

    /* Slide pattern (mesma ideia da pagina da Dra. Ingrid): cards em carrossel
       horizontal com swipe; o card cortado a direita sinaliza "arrasta". */
    .landing-home .home-slide {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: min(78vw, 320px);
        grid-template-columns: none;
        gap: 12px;
        overflow-x: auto;
        margin-left: -22px;
        margin-right: -22px;
        padding: 4px 22px 16px;
        scroll-snap-type: x mandatory;
        scroll-padding-left: 22px;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }

    .landing-home .home-slide::-webkit-scrollbar {
        display: none;
    }

    .landing-home .home-slide > * {
        scroll-snap-align: start;
        min-width: 0;
    }

    /* Dentro do scroller horizontal os cards fora da tela nao interseccionam
       o viewport; sem este opt-out ficariam invisiveis pelo reveal. */
    .js-enabled .landing-home .home-slide .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .landing-home .pricing-strip-actions {
        width: 100%;
    }

    .landing-home .pricing-strip-actions .landing-button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-sticky-cta {
        transition: none;
    }
}
