/**
 * Favo LP — responsividade mobile (telas até ~900px)
 */

html {
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
  -webkit-tap-highlight-color: transparent;
}

@media (max-width: 899px) {
  a,
  button,
  input,
  select,
  textarea,
  summary,
  label,
  [role="button"],
  .favo-btn,
  .favo-nav-toggle,
  .favo-toc-toggle,
  .favo-playbook-nav-toggle,
  .favo-drawer-close,
  .favo-chat-chip,
  .favo-scroll-hint {
    -webkit-tap-highlight-color: transparent;
    tap-highlight-color: transparent;
  }

  button:focus-visible,
  a:focus-visible,
  .favo-nav-toggle:focus-visible,
  .favo-toc-toggle:focus-visible,
  .favo-drawer-close:focus-visible {
    outline: 2px solid rgba(197, 160, 125, 0.55);
    outline-offset: 2px;
  }
}

body.favo-lp-page {
  overflow-x: clip;
  max-width: 100%;
}

/* Fundo animado: menos overflow horizontal em telas estreitas */
@media (max-width: 899px) {
  body.favo-lp-page::before,
  body.favo-lp-page::after {
    width: min(240vmin, 1800px);
    height: min(240vmin, 1800px);
  }
}

/* Layout geral */
@media (max-width: 899px) {
  .favo-container {
    width: 100%;
    max-width: 100%;
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
    box-sizing: border-box;
  }

  .favo-section {
    padding-top: clamp(2.25rem, 9vw, 3.5rem);
    padding-bottom: clamp(2.25rem, 9vw, 3.5rem);
  }

  .favo-section h2 {
    font-size: clamp(1.4rem, 6.2vw, 2rem);
    max-width: 100%;
    overflow-wrap: break-word;
    word-wrap: break-word;
  }

  .favo-section-intro,
  .favo-section-intro--bold {
    max-width: 100%;
    margin-bottom: 1.5rem;
    font-size: 0.95rem;
    line-height: 1.55;
  }

  .favo-kicker {
    font-size: 0.68rem;
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
  }

  .favo-section h2,
  .favo-section-intro,
  .favo-section-intro--bold {
    text-align: center;
    margin-inline: auto;
  }
}

/* Header */
@media (max-width: 899px) {
  .favo-header-shell {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding-left: 0;
    padding-right: 0;
    overflow: visible;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .favo-header {
    flex: 1 1 auto;
    min-width: 0;
    gap: 0.4rem;
    padding-left: max(0.75rem, env(safe-area-inset-left));
    padding-right: 0;
  }

  .favo-header-shell > .favo-header-cta {
    flex-shrink: 0;
    margin-right: max(0.75rem, env(safe-area-inset-right));
    font-size: 0.78rem;
    padding: 0.5rem 0.75rem;
  }

  .favo-header-logo {
    min-width: 0;
    max-width: 38vw;
  }

  .favo-wordmark {
    font-size: clamp(1.2rem, 5.5vw, 1.55rem);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .favo-nav-toggle {
    flex-shrink: 0;
  }

  /* CTA compacto no header: só "favo." (rem, não em — evita sumir com font-size do pai) */
  .favo-header-cta.favo-btn-brand {
    flex-shrink: 0;
    min-height: 44px;
    min-width: 3.1rem;
    padding: 0.5rem 0.75rem;
    font-size: 0.78rem;
    gap: 0;
    overflow: visible;
  }

  .favo-header-cta .favo-btn-prefix {
    display: none;
  }

  .favo-header-cta.favo-btn-brand .favo-btn-logo {
    font-size: 1.05rem;
    margin: 0;
    line-height: 1;
    color: var(--favo-btn-text);
    -webkit-text-fill-color: var(--favo-btn-text);
  }
}

@media (max-width: 360px) {
  .favo-header-cta.favo-btn-brand {
    display: none;
  }
}

/* Tablet e mobile: hero legível, sem cortar copy */
@media (max-width: 1024px) {
  .favo-hero {
    height: auto;
    min-height: 100svh;
    max-height: none;
    overflow: visible;
  }

  .favo-hero-inner,
  .favo-hero-body {
    overflow: visible;
    max-height: none;
  }

  .favo-hero h1,
  .favo-headline-sales {
    max-width: 100%;
    overflow-wrap: break-word;
    word-wrap: break-word;
    hyphens: none;
  }

  .favo-hero-lead {
    max-width: min(100%, 26rem);
  }

  .favo-section h2 {
    hyphens: none;
    line-height: 1.22;
  }

  .favo-section-intro,
  .favo-section-intro--bold {
    line-height: 1.6;
  }

  .favo-pain-card p,
  .favo-flow-pain,
  .favo-flow-win {
    line-height: 1.55;
  }
}

/* Hero — 1 viewport; copy centralizada; pílula no rodapé do inner */
@media (max-width: 899px) {
  .favo-hero.favo-container {
    width: 100%;
    max-width: none;
    margin: 0;
    padding-left: max(0.6rem, env(safe-area-inset-left));
    padding-right: max(0.6rem, env(safe-area-inset-right));
  }

  .favo-hero-inner {
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 0;
    flex: 1 1 auto;
    margin-inline: auto;
  }

  .favo-hero {
    height: auto;
    min-height: 100svh;
    max-height: none;
    overflow: visible;
    padding-top: calc(var(--header-h) + clamp(1.25rem, 3vh, 1.85rem));
    padding-bottom: var(--hero-scroll-reserve);
    grid-template-rows: minmax(0, 1fr);
  }

  .favo-hero-inner {
    width: 100%;
    max-width: 100%;
  }

  .favo-hero-inner {
    justify-content: flex-start;
  }

  .favo-hero-body {
    align-items: center;
    text-align: center;
    justify-content: flex-start;
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
    padding-inline: clamp(0.25rem, 2vw, 0.65rem);
    padding-top: clamp(2rem, 7vh, 3.75rem);
    padding-bottom: 0.35rem;
    gap: clamp(0.5rem, 2.4vw, 0.95rem);
    max-height: calc(100% - 0.25rem);
  }

  .favo-hero .favo-badge,
  .favo-motif,
  .favo-hero h1,
  .favo-hero-lead {
    text-align: center;
    width: 100%;
  }

  .favo-headline-sales {
    max-width: 100%;
  }

  .favo-hero .favo-badge {
    font-size: clamp(1.4rem, 6.8vw, 1.9rem);
    margin-bottom: 0;
    opacity: 1;
  }

  .favo-motif {
    margin-bottom: 0;
    font-size: clamp(0.8rem, 3.4vw, 0.95rem);
    letter-spacing: 0.14em;
    opacity: 0.9;
  }

  .favo-hero h1 {
    font-size: clamp(1.45rem, 6.2vw + 0.4vh, 2.35rem);
    max-width: 100%;
    line-height: 1.08;
    margin: 0;
    overflow-wrap: break-word;
    hyphens: manual;
    letter-spacing: -0.02em;
  }

  .favo-hero h1 .gold {
    display: inline;
  }

  .favo-hero-lead {
    max-width: min(100%, 22rem);
    font-size: clamp(0.92rem, 3.6vw + 0.2vh, 1.12rem);
    line-height: 1.45;
    margin: 0 auto;
    opacity: 1;
    color: var(--favo-text);
  }

  .favo-hero-enter-item {
    margin-bottom: 0;
  }

  .favo-cta-stack {
    width: 100%;
    max-width: 100%;
    margin-top: clamp(0.2rem, 1vh, 0.5rem);
    margin-bottom: 0.15rem;
    gap: 0.55rem;
    align-items: center;
  }

  .favo-hero .favo-consent-camouflage {
    text-align: center;
  }

  .favo-btn.favo-btn-lg {
    width: 100%;
    max-width: 100%;
    min-height: 54px;
    padding: 1rem 1.2rem;
    font-size: 1rem;
  }

  .favo-btn.favo-btn-brand .favo-btn-logo {
    font-size: 1.2em;
  }

  .favo-consent-camouflage {
    font-size: clamp(0.6rem, 2.5vw, 0.68rem);
    line-height: 1.45;
    padding: 0 0.2rem;
    opacity: 0.88;
    max-width: 22rem;
    margin-inline: auto;
  }

  :root {
    --scroll-hint-bottom: max(0.5rem, env(safe-area-inset-bottom));
    --scroll-hint-h: 40px;
    --hero-scroll-reserve: calc(var(--scroll-hint-h) + var(--scroll-hint-bottom) + 1.25rem);
  }

  .favo-scroll-hint {
    position: fixed;
    left: 50%;
    bottom: var(--scroll-hint-bottom);
    transform: translateX(-50%);
    z-index: 90;
  }

  .favo-scroll-hint.js-scroll-hint:not(.is-hero-visible) {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .favo-nav.is-open {
    display: flex !important;
    visibility: visible !important;
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    right: 0 !important;
    width: min(88vw, 320px) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    z-index: 260 !important;
    border-left: 1px solid var(--favo-border);
    border-right: none;
    box-shadow: -8px 0 40px rgba(0, 0, 0, 0.55);
  }

  .favo-nav.is-open .favo-drawer-head {
    display: flex !important;
  }

  .favo-nav.is-open .favo-drawer-close {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.favo-nav-open .favo-nav-toggle {
    opacity: 0;
    pointer-events: none;
  }

  .favo-nav.is-open > a {
    display: block !important;
    color: var(--favo-nav-link-on-drawer) !important;
    -webkit-text-fill-color: var(--favo-nav-link-on-drawer);
    font-size: 1.1rem !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.favo-nav-open .favo-header-shell {
    z-index: 270;
  }

  .favo-nav-backdrop.is-visible {
    z-index: 250 !important;
    background: var(--favo-nav-backdrop-bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .favo-nav.is-open .favo-drawer-head-title {
    color: var(--favo-gold) !important;
    -webkit-text-fill-color: var(--favo-gold);
  }

  .favo-scroll-hint-pill {
    width: clamp(20px, 5.5vw, 24px);
    height: clamp(34px, 9vw, 40px);
    border-color: #fff;
    box-shadow: 0 0 12px rgba(255, 255, 255, 0.15);
  }
}

@media (max-width: 899px) and (max-height: 680px) {
  .favo-hero h1 {
    font-size: clamp(1.5rem, 6.5vw + 0.5vh, 2.05rem);
  }

  .favo-hero-lead {
    font-size: clamp(1rem, 4.2vw, 1.12rem);
    line-height: 1.45;
  }

  .favo-hero .favo-badge {
    font-size: clamp(1.2rem, 6vw, 1.5rem);
  }

  .favo-btn.favo-btn-lg {
    min-height: 48px;
    padding: 0.8rem 1rem;
  }

  .favo-consent-camouflage {
    font-size: 0.62rem;
    line-height: 1.35;
  }
}

/* Botões e cards */
@media (max-width: 899px) {
  .favo-card {
    padding: 1rem 1.1rem;
  }

  .favo-pain-card h3 {
    font-size: 0.95rem;
  }

  .favo-compare-diagram {
    gap: 0.75rem;
  }

  .favo-compare-arrow {
    padding: 0.25rem 0;
  }

  .favo-flow-pain,
  .favo-flow-win {
    font-size: 0.86rem;
    line-height: 1.5;
  }

  .favo-cta-block {
    padding-left: 0;
    padding-right: 0;
  }

  .favo-cta-block h2 {
    max-width: 100%;
    font-size: clamp(1.35rem, 5.5vw, 1.85rem);
  }

  .favo-profile-grid .favo-check-list li,
  .favo-profile-grid .favo-x-list li {
    font-size: 0.9rem;
    line-height: 1.5;
  }
}

/* Funil — coluna única: etapa → problema → solução (agrupados por etapa) */
@media (max-width: 899px) {
  .favo-funnel-copy--long {
    display: none !important;
  }

  .favo-funnel-copy--short {
    display: inline;
  }

  .favo-section--funnel {
    padding-top: clamp(1.5rem, 5vw, 2.25rem);
    padding-bottom: clamp(1.75rem, 5vw, 2.5rem);
  }

  .favo-funnel-unified {
    padding-left: max(0.75rem, env(safe-area-inset-left));
    padding-right: max(0.75rem, env(safe-area-inset-right));
  }

  .favo-funnel-intro {
    margin-bottom: 0.85rem;
    padding-left: 0.15rem;
    padding-right: 0.15rem;
  }

  .favo-funnel-intro h2 {
    font-size: clamp(1.4rem, 6vw, 1.9rem);
    line-height: 1.2;
  }

  .favo-funnel-intro .favo-section-intro {
    font-size: clamp(0.92rem, 3.8vw, 1.02rem);
    line-height: 1.55;
  }

  .favo-funnel-rail {
    gap: 0.4rem;
    margin-bottom: 1rem;
    max-width: 100%;
  }

  .favo-funnel-rail-item {
    padding: 0.5rem 0.2rem;
    min-height: 44px;
  }

  .favo-funnel-rail-item span {
    font-size: 0.8rem;
  }

  .favo-funnel-rail-item em {
    font-size: 0.58rem;
  }

  .favo-funnel-stack {
    display: flex;
    flex-direction: column;
    gap: 1.35rem;
    padding: 0.25rem 0 1.5rem;
  }

  .favo-funnel-step {
    min-height: 0;
    margin-top: 0;
    padding: 0;
  }

  .favo-funnel-step::after {
    display: none;
  }

  .favo-funnel-step-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: 0.45rem;
    align-items: stretch;
  }

  .favo-funnel-core {
    grid-column: 1;
    grid-row: 1;
    max-width: 100%;
    margin-bottom: 0.35rem;
  }

  .favo-funnel-flank--dor {
    grid-column: 1;
    grid-row: 2;
  }

  .favo-funnel-flank--sol {
    grid-column: 1;
    grid-row: 3;
    border-right: none;
    border-left: 3px solid var(--favo-gold);
    margin-top: 0;
  }

  .favo-funnel-flank {
    padding: 0.85rem 0.9rem;
    opacity: 1;
    transform: none;
  }

  .favo-funnel-flank-label {
    font-size: 0.62rem;
    margin-bottom: 0.4rem;
    letter-spacing: 0.09em;
  }

  .favo-funnel-flank .favo-funnel-dor,
  .favo-funnel-flank .favo-funnel-sol {
    font-size: 0.95rem;
    line-height: 1.45;
    font-weight: 500;
  }

  .favo-funnel-step--1 .favo-funnel-core .favo-funnel-slice,
  .favo-funnel-step--2 .favo-funnel-core .favo-funnel-slice,
  .favo-funnel-step--3 .favo-funnel-core .favo-funnel-slice {
    width: 100%;
    max-width: 16.5rem;
    margin-inline: auto;
  }

  .favo-funnel-slice {
    padding: 0.85rem 0.75rem 0.95rem;
  }

  .favo-funnel-slice-num {
    width: 1.75rem;
    height: 1.75rem;
    font-size: 0.85rem;
    margin-bottom: 0.35rem;
  }

  .favo-funnel-meta {
    font-size: 0.58rem;
    letter-spacing: 0.1em;
    margin-bottom: 0.25rem;
  }

  .favo-funnel-slice h3 {
    font-size: clamp(1rem, 4.5vw, 1.15rem);
    line-height: 1.2;
  }

  .favo-funnel-channels {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.55rem;
  }

  .favo-funnel-channels span {
    font-size: 0.58rem;
    padding: 0.22rem 0.45rem;
  }

  .favo-funnel-step.is-active .favo-funnel-slice {
    transform: scale(calc(0.96 + var(--funnel-proximity) * 0.06));
  }
}

@media (min-width: 900px) {
  .favo-funnel-copy--short {
    display: none !important;
  }

  .favo-funnel-copy--long {
    display: inline;
  }
}

/* Tabela comparativa — cards empilhados, sem scroll horizontal */
@media (max-width: 899px) {
  .favo-table-wrap.favo-table-wrap--sales {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    border-radius: 0;
  }

  .favo-table--sales {
    min-width: 0;
    width: 100%;
    font-size: 0.88rem;
    display: block;
  }

  .favo-table--sales thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .favo-table--sales tbody {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }

  .favo-table--sales tbody tr {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.85rem 0.9rem;
    border: 1px solid var(--favo-border);
    border-radius: 0.65rem;
    background: var(--favo-surface);
  }

  .favo-table--sales tbody th[scope="row"] {
    display: block;
    padding: 0 0 0.15rem;
    border: none;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--favo-muted);
    background: transparent;
  }

  .favo-table--sales tbody td {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--favo-border);
    border-radius: 0.5rem;
    vertical-align: top;
    text-align: left;
    word-wrap: break-word;
    overflow-wrap: anywhere;
  }

  .favo-table--sales tbody td.cell-pain {
    border-left: 3px solid var(--favo-pain);
    background: transparent;
  }

  .favo-table--sales tbody td.cell-win {
    border-left: 3px solid var(--favo-gold);
    background: rgba(197, 160, 125, 0.08);
    font-weight: 600;
  }

  .favo-table--sales tbody td::before {
    display: block;
    margin-bottom: 0.35rem;
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-family: var(--favo-font-serif);
    color: var(--favo-gold);
  }

  .favo-table--sales tbody td.cell-pain::before {
    content: "Agência comum";
  }

  .favo-table--sales tbody td.cell-win::before {
    content: "Favo";
  }
}

/* FAQ */
@media (max-width: 899px) {
  .favo-faq-q {
    font-size: 0.9rem;
    padding: 1rem 2.25rem 1rem 1rem;
    text-align: left;
    line-height: 1.4;
  }

  .favo-faq-pain,
  .favo-faq-sol {
    font-size: 0.86rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .favo-faq-sol {
    margin-left: 0;
    border-left-width: 2px;
    padding-left: 0.85rem;
  }
}

/* Footer */
@media (max-width: 899px) {
  .favo-footer {
    padding: 1.75rem max(1rem, env(safe-area-inset-right))
      max(2rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  }

  .favo-footer-tagline {
    font-size: 0.75rem;
    line-height: 1.45;
    padding: 0 0.25rem;
  }

  .favo-footer-links {
    flex-wrap: wrap;
    gap: 0.65rem 1rem;
    padding: 0 0.5rem;
  }

  .favo-footer-legal {
    line-height: 1.5;
    padding: 0 0.25rem;
  }
}

/* Modal / chat */
@media (max-width: 899px) {
  .favo-chat-input,
  .favo-chat-select {
    font-size: 16px;
    transition: none;
    -webkit-appearance: none;
    appearance: none;
  }

  .favo-chat-composer,
  .favo-chat-composer-form,
  .favo-chat-input-row {
    transition: none;
  }

  .favo-chat-chip {
    width: 100%;
    justify-content: center;
    text-align: center;
    min-height: 44px;
  }

  .favo-chat-chips {
    flex-direction: column;
  }

  .favo-chat-bubble {
    max-width: min(88%, 320px);
  }

  .favo-chat-bubble--user {
    min-width: min(55%, 200px);
    max-width: min(88%, 320px);
    margin-left: auto;
  }

  /* Barra externa: undo + composer (chips ou campo) */
  .favo-chat-shell > .favo-chat-input-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
  }

  .favo-chat-shell > .favo-chat-input-row > .favo-chat-undo {
    flex-shrink: 0;
    align-self: center;
  }

  .favo-chat-shell > .favo-chat-input-row > .favo-chat-composer {
    flex: 1 1 auto;
    min-width: 0;
    align-self: center;
  }

  .favo-modal--chat .favo-chat-composer {
    padding-bottom: 0;
  }

  .favo-chat-composer .favo-chat-input-row--wa,
  .favo-chat-composer-form .favo-chat-input-row--wa {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    padding: 0;
    border-top: none;
    background: transparent;
    width: 100%;
  }

  .favo-chat-input-row--wa > .favo-chat-undo.favo-chat-undo--in-row {
    display: grid !important;
    place-items: center !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    flex-shrink: 0;
    align-self: center;
    justify-self: center;
  }

  .favo-chat-input-row--wa > .favo-chat-undo.favo-chat-undo--in-row .favo-chat-undo-icon,
  .favo-chat-input-row--wa > .favo-chat-send-wa svg {
    display: block;
    width: 20px;
    height: 20px;
    margin: 0;
  }

  .favo-chat-input-row--wa > .favo-chat-send-wa {
    display: none;
  }

  .favo-chat-input-row--wa.favo-chat-input-row--has-text > .favo-chat-send-wa {
    display: grid !important;
  }

  .favo-chat-input-row--wa > .favo-chat-input,
  .favo-chat-composer-form .favo-chat-input-row--wa > .favo-chat-input {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
  }

  .favo-chat-shell > .favo-chat-input-row:has(.favo-chat-composer .favo-chat-undo--in-row) > .favo-chat-undo {
    display: none !important;
  }

  .favo-chat-chips {
    width: 100%;
  }

  .favo-chat-input-row:has(.favo-chat-composer-form) .favo-chat-composer,
  .favo-chat-input-row:has(.favo-chat-input-row--wa) .favo-chat-composer {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
  }

  .favo-chat-composer-form .favo-chat-input {
    min-width: 0;
    width: 100%;
  }

  .favo-chat-undo {
    display: grid !important;
    place-items: center !important;
    flex-shrink: 0;
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    margin: 0;
    padding: 0;
    align-self: center;
    justify-self: center;
  }

  .favo-chat-undo[hidden] {
    display: none !important;
  }

  .favo-chat-send-wa {
    width: 42px;
    height: 42px;
    min-width: 42px;
    min-height: 42px;
    flex-shrink: 0;
    align-self: center;
  }

  .favo-chat-send-wa svg {
    display: block;
    margin: 0;
  }

  .favo-chat-header-meta {
    font-size: 0.65rem;
  }

  .favo-chat-calendly-title {
    font-size: 0.78rem;
    line-height: 1.35;
    padding: 0 0.25rem;
  }

  .favo-modal--chat.is-open .favo-modal-panel {
    height: min(94dvh, 100dvh);
    max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    animation: favoModalInMobile 0.18s ease-out;
  }

  @keyframes favoModalInMobile {
    from {
      opacity: 0;
      transform: translateY(8px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  /* Teclado mobile: modal fixo em tela cheia; composer sobe com inset (sem reposicionar o modal) */
  .favo-modal--chat.is-open {
    align-items: stretch;
    justify-content: stretch;
    padding: 0;
  }

  .favo-modal--chat.is-open .favo-modal-panel {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100dvh;
    min-height: 0;
    border-radius: 0;
  }

  .favo-modal--chat .favo-chat-input-row,
  .favo-modal--chat .favo-chat-composer {
    flex-shrink: 0;
    position: relative;
    z-index: 6;
    padding-bottom: max(
      0.75rem,
      env(safe-area-inset-bottom),
      var(--favo-keyboard-inset, 0px)
    );
  }

  .favo-modal--calendly.is-open .favo-modal-panel {
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }

  .favo-modal--calendly #chat-calendly-slot,
  .favo-modal--calendly .favo-chat-shell {
    min-height: 0;
    flex: 1 1 0;
    width: 100%;
    height: 100%;
  }

  .favo-modal--calendly-intro .favo-chat-calendly-header {
    min-height: 0;
    max-height: 7.5rem;
    padding: 0.4rem 0.65rem;
  }

  .favo-chat-calendly-hero-text {
    font-size: 0.88rem;
    line-height: 1.4;
  }

  .favo-modal--calendly .favo-chat-calendly-header,
  .favo-modal--calendly-intro .favo-chat-calendly-header {
    max-height: 3.5rem;
    flex-shrink: 0;
  }

  .favo-modal--calendly .favo-chat-calendly-hero-text,
  .favo-modal--calendly-intro .favo-chat-calendly-hero-text {
    font-size: 0.8rem;
    line-height: 1.32;
    -webkit-line-clamp: 2;
  }

  .favo-modal--calendly .favo-modal-body--chat,
  .favo-modal--calendly-intro .favo-modal-body--chat {
    display: flex;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
  }

  .favo-modal--calendly #chat-calendly-slot.favo-chat-calendly--docked,
  .favo-modal--calendly-intro #chat-calendly-slot.favo-chat-calendly--docked {
    position: relative !important;
    inset: auto !important;
    flex: 1 1 0;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto;
    touch-action: pan-y;
  }

  .favo-modal--calendly .favo-chat-input-row {
    display: none !important;
    pointer-events: none !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }

  .favo-modal--calendly iframe,
  .favo-modal--calendly-intro iframe {
    pointer-events: auto !important;
    touch-action: pan-y;
  }
}

/* Retrato: mais área útil pro iframe (landscape já funcionava) */
@media (max-width: 899px) and (orientation: portrait) {
  .favo-modal--calendly.is-open .favo-modal-panel,
  .favo-modal--calendly-intro.is-open .favo-modal-panel {
    height: 100dvh;
    max-height: calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }

  .favo-modal--calendly .favo-chat-header,
  .favo-modal--calendly-intro .favo-chat-header {
    flex-shrink: 0;
    padding-top: max(0.45rem, env(safe-area-inset-top));
    padding-bottom: 0.35rem;
  }

  .favo-modal--calendly .favo-chat-calendly-header,
  .favo-modal--calendly-intro .favo-chat-calendly-header {
    max-height: 3rem;
    padding: 0.35rem 0.6rem;
  }

  .favo-modal--calendly #chat-calendly-slot.favo-chat-calendly--docked,
  .favo-modal--calendly-intro #chat-calendly-slot.favo-chat-calendly--docked {
    flex: 1 1 0;
    min-height: 0;
    max-height: none;
    height: 100%;
  }

  .favo-modal--calendly #chat-calendly-slot iframe,
  .favo-modal--calendly-intro #chat-calendly-slot iframe {
    min-height: 0 !important;
    height: 100% !important;
    max-height: none !important;
  }

  .favo-chat-calendly-portrait-msg {
    font-size: 1rem;
    line-height: 1.55;
    color: var(--favo-chat-pill-text);
  }

  .favo-chat-calendly-portrait-ui {
    flex: 1 1 auto;
    min-height: min(52dvh, calc(100dvh - 9.5rem));
    justify-content: center;
    padding: 2.25rem 1.25rem 2rem;
    background: var(--favo-chat-bg);
    background-image: var(--favo-chat-bg-image);
  }

  .favo-chat-calendly-portrait-motif {
    font-size: 0.78rem;
  }

  .favo-chat-calendly-open-btn {
    max-width: min(100%, 300px);
  }
}

@media (max-height: 500px) and (max-width: 899px) {
  .favo-modal--calendly .favo-chat-calendly-header,
  .favo-modal--calendly-intro .favo-chat-calendly-header {
    max-height: 3.5rem;
    padding: 0.3rem 0.5rem;
  }

  .favo-modal--calendly .favo-chat-calendly-hero-text {
    font-size: 0.72rem;
    line-height: 1.28;
    -webkit-line-clamp: 2;
  }
}

/* Landscape curto (celular deitado) */
@media (max-height: 500px) and (max-width: 899px) {
  .favo-hero {
    height: 100svh;
    max-height: 100svh;
    padding-top: calc(var(--header-h) + 0.35rem);
    padding-bottom: max(0.35rem, env(safe-area-inset-bottom));
  }

  .favo-hero-body {
    justify-content: flex-start;
  }

  :root {
    --scroll-hint-h: 34px;
    --scroll-hint-bottom: max(0.5rem, env(safe-area-inset-bottom));
    --hero-scroll-reserve: calc(var(--scroll-hint-h) + var(--scroll-hint-bottom) + 1.1rem);
  }

  .favo-hero h1 {
    font-size: clamp(1.2rem, 5vw, 1.65rem);
  }

  .favo-hero-lead {
    font-size: 0.82rem;
    line-height: 1.4;
  }
}

/* Calendly — tela cheia no mobile (só barra com ×) */
@media (max-width: 899px) {
  .favo-modal--calendly-immersive.is-open .favo-modal-panel {
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
    margin: 0;
    background: #0a0a0a;
  }

  .favo-modal--calendly-immersive .favo-modal-backdrop {
    background: #0a0a0a;
    opacity: 1;
  }

  .favo-modal--calendly-immersive .favo-chat-header {
    flex-shrink: 0;
    min-height: 48px;
    max-height: calc(48px + env(safe-area-inset-top));
    padding: max(0.4rem, env(safe-area-inset-top)) 0.65rem 0.4rem;
    background: #0a0a0a;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }

  .favo-modal--calendly-immersive .favo-chat-header-avatar,
  .favo-modal--calendly-immersive .favo-chat-header-text,
  .favo-modal--calendly-immersive .favo-chat-progress {
    display: none !important;
  }

  .favo-modal--calendly-immersive .favo-chat-header-actions {
    width: 100%;
    justify-content: flex-end;
    margin-left: 0;
  }

  .favo-modal--calendly-immersive #chat-calendly-header,
  .favo-modal--calendly-immersive .favo-chat-calendly-header {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: none !important;
  }

  .favo-modal--calendly-immersive .favo-modal-body--chat,
  .favo-modal--calendly-immersive .favo-chat-shell {
    flex: 1 1 0;
    min-height: 0;
    background: var(--favo-chat-bg, #0b141a);
    gap: 0;
    padding: 0;
  }

  .favo-modal--calendly-immersive #chat-calendly-slot.favo-chat-calendly--docked,
  .favo-modal--calendly-immersive #chat-calendly-slot {
    flex: 1 1 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    height: 100% !important;
    background: var(--favo-chat-bg, #0b141a);
  }

  .favo-modal--calendly-immersive #chat-calendly-slot iframe,
  .favo-modal--calendly-immersive #chat-calendly-slot .calendly-inline-widget {
    background: #fff;
  }

  .favo-modal--calendly.is-open .favo-modal-panel,
  .favo-modal--calendly-intro.is-open .favo-modal-panel {
    background: var(--favo-chat-bg, #0b141a);
    background-image: var(--favo-chat-bg-image);
  }

  .favo-modal--calendly:not(.favo-modal--calendly-immersive) .favo-modal-body--chat,
  .favo-modal--calendly:not(.favo-modal--calendly-immersive) .favo-chat-shell {
    background: var(--favo-chat-bg, #0b141a);
  }

  .favo-chat-booking-success {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1rem;
    padding: 2rem 1.25rem;
    min-height: min(70dvh, 100%);
    color: var(--favo-chat-header-text);
  }

  .favo-chat-booking-success h2 {
    font-family: var(--favo-font-serif);
    font-size: clamp(1.35rem, 5vw, 1.65rem);
    margin: 0;
    line-height: 1.25;
    color: var(--favo-text);
  }

  .favo-chat-booking-success h2 .gold {
    color: var(--favo-gold);
    font-style: italic;
  }

  .favo-chat-booking-success p {
    margin: 0;
    font-size: 0.95rem;
    line-height: 1.5;
    color: var(--favo-muted);
    max-width: 28ch;
  }

  .favo-chat-booking-success .favo-btn {
    margin-top: 0.5rem;
    width: 100%;
    max-width: 280px;
  }

  .favo-modal--calendly-immersive #chat-calendly-slot iframe,
  .favo-modal--calendly-immersive #chat-calendly-slot .calendly-inline-widget {
    min-height: 0 !important;
    height: 100% !important;
    max-height: none !important;
  }

  .favo-testimonials {
    max-width: min(22rem, 92vw);
  }

  .favo-wa-tags {
    gap: 0.28rem 0.32rem;
    padding: 0.38rem 0.42rem 0.34rem;
  }

  .favo-wa-tag {
    padding: 0.18rem 0.34rem;
  }

  .favo-wa-tag-value {
    font-size: clamp(0.58rem, 2.6vw, 0.68rem);
  }

  .favo-wa-detail--compact {
    padding: 0.38rem 0.48rem 0.32rem;
  }

  .favo-wa-detail-head {
    font-size: 0.68rem;
  }

  .favo-wa-detail-cell-value {
    font-size: 0.72rem;
  }

  .favo-wa-detail-cell--highlight .favo-wa-detail-cell-value {
    font-size: 0.78rem;
  }

  .favo-wa-detail-video-line {
    font-size: 0.7rem;
  }

  .favo-wa-detail-video-sub {
    font-size: 0.72rem;
  }
}
