.ap-public-agenda {
    --ap-rose: #bb88ac;
    --ap-rose-light: #eed7d6;
    --ap-wine: #755553;
    --ap-wine-dark: #553d42;
    --ap-green: #17613f;
    --ap-green-light: #e8f2ec;
    --ap-text: #514342;
    --ap-muted: #746461;
    --ap-border: rgba(117, 85, 83, .15);
    --ap-shadow: 0 22px 64px rgba(75, 52, 54, .12);
    width: 100%;
    padding: 74px 0;
    color: var(--ap-text);
    background: linear-gradient(180deg, rgba(238, 215, 214, .30), rgba(255, 250, 247, .96));
    font-family: Inter, "Segoe UI", Arial, sans-serif;
    line-height: 1.55;
}

.ap-public-agenda *,
.ap-public-agenda *::before,
.ap-public-agenda *::after { box-sizing: border-box; }

.ap-public-agenda button,
.ap-public-agenda input { font: inherit; }

.ap-public-container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }

.ap-public-heading { max-width: 980px; margin: 0 auto 42px; text-align: center; }
.ap-public-tag,
.ap-public-mini-tag {
    display: inline-flex;
    padding: 9px 15px;
    border-radius: 999px;
    background: var(--ap-rose-light);
    color: var(--ap-wine);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}
.ap-public-mini-tag { padding: 7px 11px; font-size: 10px; }

.ap-public-heading h2 {
    margin: 18px 0 0;
    color: var(--ap-wine);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(35px, 4.7vw, 56px);
    font-weight: 400;
    line-height: 1.08;
}

.ap-public-heading p { margin: 16px auto 0; color: var(--ap-muted); font-size: 17px; }
.ap-public-shell { display: grid; grid-template-columns: .72fr 1.28fr; gap: 26px; align-items: start; }
.ap-public-summary,
.ap-public-schedule {
    border: 1px solid var(--ap-border);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 14px 42px rgba(75, 52, 54, .08);
}
.ap-public-summary { padding: 30px; }
.ap-public-summary h3 {
    margin: 17px 0 0;
    color: var(--ap-wine);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(29px, 3vw, 35px);
    font-weight: 400;
    line-height: 1.08;
    white-space: nowrap;
}
.ap-public-summary > p { margin: 14px 0 0; color: var(--ap-muted); font-size: 15px; }
.ap-public-summary-list { display: grid; gap: 11px; margin-top: 24px; }
.ap-public-summary-item {
    display: grid;
    grid-template-columns: 74px 1fr;
    gap: 16px;
    align-items: center;
    padding: 16px 17px;
    border-radius: 18px;
    background: #fbf4f2;
}
.ap-public-summary-icon {
    width: 74px;
    height: 74px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    background: var(--ap-rose-light);
    font-size: 34px;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.35);
}
.ap-public-summary-icon svg {
    width: 38px;
    height: 38px;
    fill: none;
    stroke: var(--ap-wine);
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.ap-public-summary-icon svg path[fill],
.ap-public-summary-icon svg rect { fill: rgba(117,85,83,.08); }
.ap-public-summary-item strong { display: block; color: var(--ap-wine); font-size: 15px; }
.ap-public-summary-item span { display: block; margin-top: 3px; color: var(--ap-muted); font-size: 13px; }
.ap-public-note { margin-top: 20px; padding: 14px 13px; border-radius: 15px; background: #fff5e7; color: #745b35; font-size: 12px; font-weight: 800; white-space: nowrap; text-align: center; }
.ap-public-map {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 50px;
    margin-top: 18px;
    padding: 12px 18px;
    border: 1px solid rgba(23, 97, 63, .18);
    border-radius: 999px;
    background: #fff;
    color: var(--ap-green);
    font-size: 14px;
    font-weight: 900;
    text-decoration: none;
}
.ap-public-schedule { padding: 30px; }
.ap-public-schedule-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.ap-public-schedule-top h3 { margin: 0; color: var(--ap-wine); font-family: Georgia, "Times New Roman", serif; font-size: 31px; font-weight: 400; }
.ap-public-schedule-top p { margin: 6px 0 0; color: var(--ap-muted); font-size: 14px; max-width: 420px; }
.ap-public-live { flex: 0 0 auto; padding: 6px 10px; border-radius: 999px; background: var(--ap-green-light); color: var(--ap-green); font-size: 10px; font-weight: 800; opacity: .88; }
.ap-public-alert,
.ap-public-form-alert { margin-bottom: 16px; padding: 12px 14px; border-radius: 14px; background: #fff1d8; color: #715329; font-size: 13px; font-weight: 700; }
.ap-public-alert.is-error,
.ap-public-form-alert.is-error { background: #fde8e8; color: #8b2d2d; }
.ap-public-slots { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; align-items: stretch; }
.ap-public-time {
    position: relative;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 62px;
    padding: 10px 14px 10px 16px;
    border: 1px solid rgba(23, 97, 63, .18);
    border-radius: 18px;
    background: #fff;
    color: var(--ap-green);
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ap-public-time:hover:not(:disabled) { transform: translateY(-2px); border-color: rgba(23, 97, 63, .46); box-shadow: 0 10px 22px rgba(23, 97, 63, .10); }
.ap-public-time strong { font-size: 18px; line-height: 1; font-weight: 800; letter-spacing: .01em; }
.ap-public-time-badge {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 900;
    line-height: 1;
    color: #fff;
    box-shadow: 0 8px 16px rgba(0, 0, 0, .08);
}
.ap-public-time-badge.is-available { background: var(--ap-green); }
.ap-public-time-badge.is-last { background: #b37a22; }
.ap-public-time-badge.is-unavailable { background: #b8adac; }
.ap-public-time.is-last { border-color: rgba(23, 97, 63, .18); background: #fff; color: var(--ap-green); }
.ap-public-time.is-unavailable { border-color: rgba(117, 85, 83, .12); background: #f3efef; color: #958785; cursor: not-allowed; opacity: .95; }
.ap-public-time.is-unavailable strong { color: #9f9391; }
.ap-public-time.is-selected { border-color: rgba(187, 136, 172, .48); box-shadow: 0 12px 24px rgba(187, 136, 172, .18); background: #fffafc; }
.ap-public-time.is-selected strong { color: var(--ap-wine); }
.ap-public-time.is-loading { opacity: .55; pointer-events: none; }
.ap-public-legend { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 20px; color: var(--ap-muted); font-size: 12px; }
.ap-public-legend span { display: inline-flex; align-items: center; gap: 7px; }
.ap-public-legend i { width: 10px; height: 10px; border-radius: 50%; background: var(--ap-green); }
.ap-public-legend i.is-last { background: #b37a22; }
.ap-public-legend i.is-unavailable { background: #b8adac; }
.ap-public-empty { grid-column: 1 / -1; padding: 28px; border-radius: 18px; background: #f8f3f2; text-align: center; color: var(--ap-muted); }

.ap-public-modal[hidden] { display: none !important; }
.ap-public-modal { position: fixed; inset: 0; z-index: 999999; display: grid; place-items: center; padding: 20px; }
.ap-public-modal-backdrop { position: absolute; inset: 0; background: rgba(39, 27, 30, .64); backdrop-filter: blur(5px); }
.ap-public-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(560px, 100%);
    max-height: calc(100vh - 40px);
    overflow: auto;
    padding: 34px;
    border-radius: 26px;
    background: #fff;
    box-shadow: var(--ap-shadow);
}
.ap-public-close {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(117, 85, 83, .14);
    border-radius: 50%;
    background: #fff;
    color: var(--ap-wine);
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 7px 20px rgba(75, 52, 54, .10);
}
.ap-public-modal h3 { margin: 15px 0 8px; color: var(--ap-wine); font-family: Georgia, "Times New Roman", serif; font-size: 36px; font-weight: 400; }
.ap-public-selected { margin: 0; color: var(--ap-muted); }
.ap-public-countdown { margin: 18px 0; padding: 13px 15px; border-radius: 15px; background: #fff5e7; color: #745b35; font-size: 14px; text-align: center; }
.ap-public-countdown strong { font-size: 18px; }
.ap-public-countdown.is-ending { background: #fde8e8; color: #8b2d2d; }
.ap-public-modal form { display: grid; gap: 14px; }
.ap-public-modal label > span:first-child { display: block; margin-bottom: 6px; color: var(--ap-wine); font-size: 13px; font-weight: 800; }
.ap-public-modal input[type="text"],
.ap-public-modal input[type="email"],
.ap-public-modal input[type="tel"] {
    width: 100%;
    min-height: 50px;
    padding: 11px 14px;
    border: 1px solid rgba(117, 85, 83, .22);
    border-radius: 14px;
    outline: none;
    background: #fff;
    color: var(--ap-text);
}
.ap-public-modal input:focus { border-color: var(--ap-rose); box-shadow: 0 0 0 3px rgba(187, 136, 172, .14); }
.ap-public-modal small { display: block; min-height: 0; margin-top: 4px; color: #9a3434; font-size: 11px; }
.ap-public-consent { display: grid !important; grid-template-columns: 20px 1fr; gap: 9px; align-items: start; padding: 12px; border-radius: 14px; background: #fbf4f2; cursor: pointer; }
.ap-public-consent input { margin-top: 3px; }
.ap-public-consent span { margin: 0 !important; color: var(--ap-muted) !important; font-size: 12px !important; font-weight: 600 !important; }
.ap-public-honeypot { position: absolute !important; left: -99999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.ap-public-submit {
    width: 100%;
    min-height: 52px;
    padding: 12px 20px;
    border: 0;
    border-radius: 999px;
    background: var(--ap-green);
    color: #fff;
    font-weight: 900;
    cursor: pointer;
    box-shadow: 0 12px 28px rgba(23, 97, 63, .18);
}
.ap-public-submit:disabled { opacity: .60; cursor: wait; }
.ap-public-success-view { text-align: center; }
.ap-public-success-icon { width: 76px; height: 76px; display: grid; place-items: center; margin: 0 auto 18px; border-radius: 50%; background: var(--ap-green-light); color: var(--ap-green); font-size: 42px; font-weight: 900; }
.ap-public-success-main { margin: 18px 0 10px; font-size: 17px; line-height: 1.55; }
.ap-public-success-view > p { color: var(--ap-muted); line-height: 1.55; }
.ap-public-confirmation-notice {
    margin: 18px 0 12px;
    padding: 15px 16px;
    border-radius: 15px;
    background: #fbf4f2;
    color: var(--ap-wine);
    line-height: 1.55;
    text-align: left;
}
.ap-public-confirmation-notice strong { color: var(--ap-green); }
.ap-public-success-small { margin-bottom: 20px; font-size: 13px; }
body.ap-modal-open { overflow: hidden; }
.ap-public-message { padding: 24px; border-radius: 16px; background: #fff5e7; color: #745b35; text-align: center; }

@media (max-width: 920px) {
    .ap-public-shell { grid-template-columns: 1fr; }
    .ap-public-slots { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
    .ap-public-agenda { padding: 54px 0; }
    .ap-public-container { width: min(100% - 24px, 1180px); }
    .ap-public-heading h2 { font-size: 38px; }
    .ap-public-heading p { font-size: 15px; }
    .ap-public-summary h3 { white-space: normal; }
    .ap-public-summary-item { grid-template-columns: 62px 1fr; }
    .ap-public-summary-icon { width: 62px; height: 62px; }
    .ap-public-summary-icon svg { width: 32px; height: 32px; }
    .ap-public-note { white-space: normal; }
    .ap-public-summary,
    .ap-public-schedule { padding: 22px; border-radius: 22px; }
    .ap-public-schedule-top { display: block; }
    .ap-public-live { display: inline-flex; margin-top: 12px; }
    .ap-public-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ap-public-modal { padding: 10px; align-items: end; }
    .ap-public-modal-dialog { width: 100%; max-height: 92vh; padding: 28px 20px 22px; border-radius: 24px 24px 0 0; }
    .ap-public-modal h3 { font-size: 31px; }
}

.ap-public-map { border: 1px solid rgba(23, 97, 63, .18); cursor: pointer; }
.ap-public-map-dialog { width: min(760px, 100%); }
.ap-public-map-frame { overflow: hidden; margin-top: 20px; border-radius: 18px; background: #eee; aspect-ratio: 4 / 3; }
.ap-public-map-frame iframe { display: block; width: 100%; height: 100%; }
.ap-public-map-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; }
.ap-public-map-actions .ap-public-submit { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.ap-public-map-share {
    min-height: 52px;
    padding: 12px 20px;
    border: 1px solid rgba(117, 85, 83, .20);
    border-radius: 999px;
    background: #fff;
    color: var(--ap-wine);
    font-weight: 900;
    cursor: pointer;
}
@media (max-width: 620px) {
    .ap-public-map-actions { grid-template-columns: 1fr; }
}

/* Modo compacto para incorporação em páginas que já apresentam a ação. */
html:has(body.ap-embed-body),
body.ap-embed-body { background: transparent !important; }
body.ap-embed-body { overflow-x: hidden; }

.ap-public-agenda--compact {
    padding: 0;
    background: transparent;
}
.ap-public-agenda--compact .ap-public-container {
    width: 100%;
    max-width: none;
    margin: 0;
}
.ap-public-compact-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}
.ap-public-compact-date {
    display: inline-flex;
    margin-bottom: 7px;
    color: var(--ap-green);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .01em;
}
.ap-public-compact-head h3 {
    margin: 0;
    color: var(--ap-wine);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(25px, 5vw, 31px);
    font-weight: 400;
    line-height: 1.1;
}
.ap-public-compact-head p {
    max-width: 640px;
    margin: 7px 0 0;
    color: var(--ap-muted);
    font-size: 13px;
    line-height: 1.55;
}
.ap-public-agenda--compact .ap-public-schedule--compact {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.ap-public-agenda--compact .ap-public-slots {
    grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
    gap: 9px;
}
.ap-public-agenda--compact .ap-public-time {
    min-height: 58px;
    padding: 9px 12px 9px 14px;
    border-radius: 16px;
    box-shadow: 0 7px 18px rgba(75, 52, 54, .06);
}
.ap-public-agenda--compact .ap-public-time strong { font-size: 17px; }
.ap-public-agenda--compact .ap-public-time-badge {
    width: 27px;
    height: 27px;
}
.ap-public-agenda--compact .ap-public-legend {
    gap: 13px;
    margin-top: 14px;
    font-size: 10px;
}
.ap-public-agenda--compact .ap-public-alert { margin-bottom: 12px; }

/* No modo compacto o formulário abre dentro do fluxo do iframe. */
.ap-public-agenda--compact .ap-public-inline-booking {
    position: static;
    inset: auto;
    z-index: auto;
    display: block;
    width: 100%;
    margin-top: 20px;
    padding: 0;
}
.ap-public-agenda--compact .ap-public-inline-booking .ap-public-modal-backdrop { display: none; }
.ap-public-agenda--compact .ap-public-inline-booking .ap-public-modal-dialog {
    width: 100%;
    max-height: none;
    overflow: visible;
    padding: 27px;
    border: 1px solid rgba(117, 85, 83, .16);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(75, 52, 54, .10);
}
.ap-public-agenda--compact .ap-public-inline-booking .ap-public-close {
    top: 12px;
    right: 12px;
    width: 38px;
    height: 38px;
    font-size: 24px;
}
.ap-public-agenda--compact .ap-public-inline-booking h3 {
    padding-right: 36px;
    font-size: clamp(28px, 6vw, 35px);
}
.ap-public-agenda--compact .ap-public-inline-booking form { gap: 12px; }
.ap-public-agenda--compact .ap-public-inline-booking input[type="text"],
.ap-public-agenda--compact .ap-public-inline-booking input[type="email"],
.ap-public-agenda--compact .ap-public-inline-booking input[type="tel"] { min-height: 48px; }
.ap-public-agenda--compact .ap-public-success-view { padding-top: 4px; }

@media (max-width: 520px) {
    .ap-public-compact-head { display: block; }
    .ap-public-compact-head .ap-public-live { margin-top: 11px; }
    .ap-public-agenda--compact .ap-public-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ap-public-agenda--compact .ap-public-inline-booking .ap-public-modal-dialog {
        padding: 24px 18px 20px;
        border-radius: 19px;
    }
    .ap-public-agenda--compact .ap-public-inline-booking h3 { font-size: 29px; }
}

@media (max-width: 330px) {
    .ap-public-agenda--compact .ap-public-slots { grid-template-columns: 1fr; }
}
