/* =========================================================================
   Tema das paginas de agendamento do consultorio adulto (medical_adult).

   O MOTOR do agendamento e compartilhado: /marcar_consulta, /agendamento e
   /cancelar rodam o mesmo HTML `.ie-*` e o mesmo public_profile.css, que
   foram desenhados na paleta lilas/vinho da Dra. Ingrid. So a APARENCIA e
   por clinica, e ela vive aqui.

   Espelha a home oficial (medical_adult_profile.html, estilo inline):
     paper #FCFAF6 · paper-2 #F6F1E7 · line #E3D9C6 · line-2 #CDBB9B
     gold #B9985A · gold-deep #806127 · ink #2C2721 · muted #6E665B
     moss #3F5D4E · moss-deep #2F4A3C
   Titulo em Fraunces 300 com -.02em; rotulo de secao em caixa alta de 11px
   com um fio de ouro de 22px; acao primaria em musgo solido, sem aro; cartao
   de raio 10px sobre papel. O papel do "vinho" (cor de acao do motor) passa
   a ser o musgo; o ouro fica nos fios e rotulos.

   ESCOPO: `:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking)`.
   O 1o ramo sao as telas inteiras (.ie-body). O 2o e o POP-UP de agendamento
   dentro da home, que NAO e `.ie-body`: os tokens `--ie-*` do motor nascem em
   `.ie-body` (public_profile.css), entao na home eles chegavam VAZIOS e o
   dialogo abria sem fundo, sem borda e com o botao lilas da Dra. Ingrid solto
   por cima da pagina. Declarar os tokens no proprio `.ie-booking` resolve sem
   tocar na home: o 2o ramo casa so o modal, nunca o conteudo dela — era isso
   que o `.ie-body` protegia (sem ele, fundo, peso de titulo e anel de foco
   daqui venceriam o CSS inline da home por especificidade).
   ========================================================================= */

:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) {
    --ma-paper: #fcfaf6;
    --ma-paper-2: #f6f1e7;
    --ma-line: #e3d9c6;
    --ma-line-2: #cdbb9b;
    --ma-gold: #b9985a;
    --ma-gold-deep: #806127;
    --ma-ink: #2c2721;
    --ma-muted: #6e665b;
    --ma-moss: #3f5d4e;
    --ma-moss-deep: #2f4a3c;
    --ma-clay: #8a4b3a;

    /* Remapeamento dos tokens do motor .ie-* */
    --ie-nude: #f6f1e7;
    --ie-cream: #fcfaf6;
    --ie-paper: #fffdf9;
    --ie-wine: #3f5d4e;
    --ie-wine-soft: #806127;
    --ie-bordo: #2c2721;
    --ie-rose: #cdbb9b;
    --ie-rose-tint: #f6f1e7;
    --ie-rose-wash: #f6f1e7;
    --ie-gold: #b9985a;
    --ie-gold-text: #806127;
    --ie-gold-soft: rgba(185, 152, 90, 0.5);
    --ie-star: #b9985a;
    --ie-ink: #2c2721;
    --ie-text: #6e665b;
    /* Cinza de apoio do agendamento (03/11/2026): mais escuro que o texto, porque
       aparece em 12 a 14 px (dias da semana, vagas, legenda). 6,6:1 no papel. */
    --ie-muted: #5f574d;
    --ie-line: #e3d9c6;
    --ie-line-strong: #cdbb9b;
    --ie-shadow: 0 24px 56px -30px rgba(47, 74, 60, 0.4);
    --ie-shadow-soft: 0 10px 24px -14px rgba(47, 74, 60, 0.35);
}

/* Fundo/cor de PAGINA: so nas telas .ie-body. No modal da home o mesmo bloco
   pintaria o overlay inteiro de papel e comeria o backdrop escurecido. */
body.ie-body.ma-booking-theme {
    background: var(--ma-paper);
    color: var(--ma-ink);
}

/* ===== Cabecalho ===== */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-nav {
    min-height: 72px;
    background: rgba(252, 250, 246, 0.88);
    border-bottom: 1px solid var(--ma-line);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-logo-type span {
    font-family: "Avie Fraunces", Georgia, serif;
    font-size: 1.2rem;
    font-weight: 400;
    letter-spacing: -0.02em;
    color: var(--ma-ink);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-logo-type small {
    color: var(--ma-gold-deep);
    letter-spacing: 0.16em;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-logo-icon {
    background: var(--ma-moss);
    box-shadow: none;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-nav-links a:hover {
    color: var(--ma-gold-deep);
    background: var(--ma-paper-2);
}

/* ===== Tipografia editorial da home ===== */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(h1, h2, h3) {
    font-family: "Avie Fraunces", Georgia, serif;
    font-weight: 300;
    letter-spacing: -0.02em;
    line-height: 1.1;
    text-wrap: balance;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-intro h1 {
    font-size: clamp(1.9rem, 3.4vw, 3rem);
}
/* Na home o rotulo de secao e o `.cap`: caixa alta de 11px, entrelinha larga,
   ouro escuro e um fio de 22px antes. O motor tem dois rotulos diferentes
   (`.ie-script`, um serif italico vinho, e `.ie-eyebrow`); os dois passam a
   usar o mesmo `.cap` para as paginas falarem a mesma lingua. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-script, .ie-eyebrow) {
    /* `flex` e nao `inline-flex`: na intro do agendamento o cartao da medica
       (`.ie-booking-intro-doc`) e inline-flex, e um rotulo inline colava do
       lado dele em vez de abrir a propria linha acima do titulo. */
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 16px;
    color: var(--ma-gold-deep);
    font-family: "Avie Instrument Sans", sans-serif;
    font-style: normal;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-script, .ie-eyebrow)::before {
    content: "";
    width: 22px;
    height: 1px;
    background: var(--ma-gold);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-confirm-hero .ie-eyebrow { justify-content: center; }

/* ===== Botoes ===== */
/* Primario = o `.btn` da home: musgo solido, sem aro e sem gradiente. O
   `.ie-btn` do motor traz gradiente lilas e ::before/::after decorativos. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-btn, .ie-nav-cta, .ie-booking-submit) {
    background: var(--ma-moss) !important;
    background-image: none !important;
    border: 1px solid transparent !important;
    border-radius: 999px;
    color: #fbf8f1 !important;
    font-weight: 500;
    letter-spacing: 0;
    text-shadow: none;
    box-shadow: none;
    transition: background 0.25s, transform 0.25s, box-shadow 0.25s;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-btn, .ie-nav-cta)::before,
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-btn, .ie-nav-cta)::after {
    background: none !important;
    display: none;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-btn, .ie-nav-cta, .ie-booking-submit):hover {
    background: var(--ma-moss-deep) !important;
    transform: translateY(-1px);
    box-shadow: 0 10px 24px -12px rgba(47, 74, 60, 0.6);
}
/* Secundario: o `.btn-ghost` da home — transparente, tinta e fio claro. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-btn-ghost, .ie-btn-ghost:visited, .ie-btn-ghost:hover, .ie-btn-ghost:focus) {
    background: transparent !important;
    background-image: none !important;
    color: var(--ma-ink) !important;
    border: 1px solid var(--ma-line-2) !important;
    box-shadow: none;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-btn-ghost:hover {
    background: var(--ma-paper-2) !important;
    box-shadow: none;
}
/* Acao destrutiva: nao existe vermelho nesta paleta. Terracota queimada, que
   convive com ouro e papel e mesmo assim nao se confunde com o primario. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-btn-danger {
    background: var(--ma-clay) !important;
    background-image: none !important;
    border-color: transparent !important;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-btn-danger:hover {
    background: #77402f !important;
    box-shadow: 0 10px 24px -12px rgba(119, 64, 47, 0.7);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-alert {
    background: rgba(138, 75, 58, 0.07);
    border-color: rgba(138, 75, 58, 0.26);
    color: #6f3b2d;
}

/* ===== Cartoes (dados da consulta, lembrete, cancelamento) ===== */
/* Na home o cartao e sobrio: papel, fio fino e raio 10. O motor usa 22 e uma
   sombra grande, que ao lado da home parecia outro produto. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-confirm-pass, .ie-cancel-form, .tk-ticket) {
    background: var(--ma-paper);
    border: 1px solid var(--ma-line);
    border-radius: 10px;
    box-shadow: none;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-pass-date {
    background: var(--ma-paper-2);
    border: 1px solid var(--ma-line);
    border-radius: 10px;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-pass-date span {
    color: var(--ma-gold-deep);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.14em;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-pass-date strong { font-weight: 300; }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-pass-details dt, .ie-cancel-form label) {
    letter-spacing: 0.14em;
    color: var(--ma-muted);
}
/* Selo de estado: musgo quando deu certo; papel com fio e glifo de ouro no
   cancelamento (aviso, nunca alarme). */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-confirm-check {
    background: var(--ma-moss);
    border: 1px solid transparent;
    color: #fbf8f1;
    box-shadow: none;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-confirm-hero.is-cancelled .ie-confirm-check {
    background: var(--ma-paper-2);
    border-color: var(--ma-line-2);
    color: var(--ma-gold-deep);
    box-shadow: none;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-confirm-back { color: var(--ma-gold-deep); }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-confirm-back:hover { color: var(--ma-ink); }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-confirm-cancel:hover { color: var(--ma-gold-deep); }
/* Pagina da consulta (ingresso .tk-*, 2026-09-25): canhoto em papel creme,
   data e botao principal no musgo da identidade. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) { --ie-stub: #faf6ee; }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .tk-datebox { border-radius: 10px; }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .tk-datebox span { background: var(--ma-moss); }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .tk-btn-pri { background: var(--ma-moss); }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .tk-btn-pri:hover { background: var(--ma-moss-deep); }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .tk-mono:not(.has-img) { background: var(--ma-moss); }

/* ===== Wizard de agendamento ===== */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-inline {
    border-radius: 10px;
    border-color: var(--ma-line);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-aside {
    background: var(--ma-paper-2);
    color: var(--ma-ink);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-aside :is(p, small, span, strong, h2) { color: inherit; }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-intro { background: none; }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-booking-doc, .ie-booking-intro-doc) img {
    border: 1px solid var(--ma-line-2);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-modality:not(.ie-booking-seg) label:has(input:checked) {
    border-color: var(--ma-moss);
    background: var(--ma-paper-2);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-steps li.is-done span {
    background: var(--ma-gold);
    border-color: var(--ma-gold);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-time:hover { border-color: var(--ma-gold-deep); }
/* Continuar sem horario: legivel, com o motivo no toque (ie_booking.js). Vence
   o musgo solido do `.ie-btn` deste tema. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-next[aria-disabled="true"] {
    background: var(--ma-paper-2) !important;
    color: var(--ma-muted) !important;
    border: 1px solid var(--ma-line-2) !important;
    transform: none;
    box-shadow: none;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :is(.ie-field > input, .ie-field > textarea, .ie-field > select, .ie-cancel-form select):focus {
    border-color: var(--ma-gold-deep);
    box-shadow: 0 0 0 3px rgba(185, 152, 90, 0.2);
    outline: none;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) [hidden] { display: none !important; }

/* ===== WhatsApp flutuante ===== */
/* O FAB do motor e verde-WhatsApp com halo; ao lado desta paleta ele parecia
   um adesivo colado por cima. Aqui ele e a mesma pilula musgo da home. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-wa-fab {
    background: var(--ma-moss) !important;
    border: 1px solid transparent;
    box-shadow: 0 10px 24px -12px rgba(47, 74, 60, 0.7);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-wa-fab::before { display: none; }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-wa-fab:hover {
    background: var(--ma-moss-deep) !important;
    box-shadow: 0 14px 30px -12px rgba(47, 74, 60, 0.8);
}

/* ===== Foco visivel (mesmo anel da home) ===== */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) :focus-visible {
    outline: 2px solid var(--ma-gold-deep);
    outline-offset: 4px;
    border-radius: 2px;
}

/* No toque o motor encolhe o cabecalho do resumo para uma faixa fina (o titulo
   e o rotulo somem para sobrar tela para o calendario). O `.cap` do tema tem
   especificidade maior e ressuscitava o rotulo — e a folha comecava com meia
   tela de cabecalho. */
@media (max-width: 760px) {
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-aside :is(.ie-script, h2) {
        display: none;
    }
    /* Valor no resumo: divide a faixa com o Horario em vez de abrir outra. */
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-meta li:has(+ .ie-sum-price:not([hidden])) {
        flex: 1 1 0;
        min-width: 0;
    }
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-meta .ie-sum-price { flex: 0 0 auto; }
}

@media (max-width: 600px) {
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-logo-type span { font-size: 1rem; }
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-nav { min-height: 64px; padding-inline: 20px; }
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-intro { padding-top: 24px; }
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-intro h1 { font-size: clamp(1.5rem, 6vw, 1.9rem); }
}

/* ===== Como prefere a consulta? (dois enderecos, 2026-09-27) =====
   Uma opcao por forma de atendimento (Online, Presencial em cada endereco),
   no mesmo cartao da escolha de modalidade do motor. Cada opcao tem o seu
   calendario; antes de escolher, so o convite para escolher. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agendas {
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agendas label > span { height: 100%; }
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agenda-top {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 0;
    border: 0;
    background: none;
    height: auto;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agenda-top svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    color: var(--ma-gold-deep);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agendas small {
    display: block;
    margin-top: 4px;
    padding-left: 26px;
}
/* Valor da opcao (18/10/2026). Lado a lado, no pe do cartao: os cartoes tem a
   mesma altura e a 3a linha da grade empurra o valor para baixo, entao os
   valores ficam alinhados entre si, com um fio fino separando do texto. No
   celular (cartoes empilhados) sobe para a direita do titulo e nao custa
   altura. E um `em` porque todo `span` do motor ganha borda e fundo. */
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agendas label > span {
    display: grid;
    grid-template-rows: auto auto 1fr;
    align-content: start;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agenda-price {
    grid-row: 3;
    align-self: end;
    margin-top: 10px;
    padding: 9px 0 0 26px;
    border-top: 1px solid var(--ma-line);
    font-family: "Avie Fraunces", Georgia, serif;
    font-style: normal;
    font-weight: 400;
    font-size: 1.12rem;
    line-height: 1.2;
    letter-spacing: -0.01em;
    font-variant-numeric: lining-nums tabular-nums;
    color: var(--ma-ink);
    white-space: nowrap;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agendas label:has(input:checked) .ie-agenda-price {
    border-top-color: var(--ma-line-2);
    color: var(--ma-moss-deep);
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agenda-wait {
    margin: 4px 0 12px;
    padding: 14px 16px;
    border: 1px dashed var(--ma-line-2);
    border-radius: 10px;
    color: var(--ma-muted);
    font-size: 0.9rem;
}
:is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agenda-note {
    margin: 8px 0 0;
    color: var(--ma-muted);
    font-size: 0.84rem;
}
@media (max-width: 600px) {
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agendas { grid-template-columns: 1fr; gap: 8px; }
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agendas label > span {
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        column-gap: 12px;
    }
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agenda-top { grid-area: 1 / 1; }
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agendas small { grid-area: 2 / 1 / 3 / 3; }
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-agenda-price {
        grid-area: 1 / 2;
        align-self: start;
        margin: 2px 0 0;
        padding: 0;
        border: 0;
    }
}

/* Agendamento no celular (03/11/2026): o rotulo de cada passo repetia o titulo
   logo abaixo dele (o `.cap` deste tema ressuscitava o rotulo escondido). */
@media (max-width: 760px) {
    :is(body.ie-body.ma-booking-theme, body.ma-booking-theme .ie-booking) .ie-booking-panel .ie-booking-head .ie-script { display: none; }
}
