*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
    color-scheme: dark;
    --dark: #0a0a0b;
    --card: #141416;
    --card-hover: #1c1c1f;
    --border: rgba(255,255,255,.08);
    --border-strong: rgba(255,255,255,.12);
    --gold: #d4af6a;
    --gold-light: #e8c98a;
    --gold-glow: rgba(212,175,106,.18);
    --cream: #f5f0e8;
    --muted: #9ca3af;
    --green: #22c55e;
    --yellow: #eab308;
    --red: #ef4444;
    --on-accent: #0a0a0b;
    --bg-input: #0a0a0b;
    --header-bg: rgba(15,15,15,.95);
    --surface-muted: rgba(15,15,15,.5);
    --chip-bg: rgba(255,255,255,.02);
    --overlay-media: linear-gradient(180deg, transparent 40%, rgba(10,10,11,.85) 100%);
    --overlay-badge: rgba(10,10,11,.75);
    --overlay-badge-text: #e8c98a;
    --summary-bg: rgba(0,0,0,.25);
    --backdrop: rgba(0,0,0,.7);
    --text-soft: #d1d5db;
    --feature-card-end: rgba(20,20,22,.6);
    --panel-shadow: 0 20px 40px rgba(0,0,0,.45);
    --font-display: 'Cormorant Garamond', Georgia, serif;
    --font-body: 'DM Sans', system-ui, -apple-system, sans-serif;
    --radius-sm: .5rem;
    --radius-md: .75rem;
    --radius-lg: 1rem;
    --shadow-card: 0 4px 24px rgba(0,0,0,.35);
    --shadow-elevated: 0 12px 40px rgba(0,0,0,.45);
}

html[data-theme="light"] { color-scheme: light; }
html[data-theme="dark"] { color-scheme: dark; }
@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) { color-scheme: light; }
}

body {
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    background: var(--dark);
    color: var(--cream);
    line-height: 1.6;
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

body.marketplace {
    font-family: var(--font-body);
}

.container { max-width: 72rem; margin: 0 auto; padding: 0 1rem; }
.main { min-height: calc(100vh - 140px); }

/* Header */
.header {
    border-bottom: 1px solid var(--border);
    background: var(--header-bg);
    position: sticky; top: 0; z-index: 50;
    backdrop-filter: blur(8px);
    overflow: visible;
}
.header-inner {
    display: flex; align-items: center; justify-content: space-between;
    padding: 1rem 0; gap: 1rem; flex-wrap: wrap;
    overflow: visible;
}
.logo {
    display: inline-flex; align-items: center; gap: .5rem;
    color: var(--gold); font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.35rem; font-weight: 600; text-decoration: none; letter-spacing: -.01em;
    line-height: 0;
    position: relative;
    z-index: 55;
}
.logo-img {
    height: 3.25rem; width: auto; max-width: min(320px, 62vw);
    display: block; object-fit: contain;
}
.logo-img-light { display: none; }
html[data-theme="light"] .logo-img-dark { display: none; }
html[data-theme="light"] .logo-img-light { display: block; }
@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) .logo-img-dark { display: none; }
    html:not([data-theme="dark"]) .logo-img-light { display: block; }
}
.logo-text-fallback { line-height: 1.2; }
.logo-platform-badge {
    font-size: .6875rem; text-transform: uppercase; letter-spacing: .08em;
    color: var(--gold); margin-left: .15rem; align-self: center;
}
/* Logo maior atravessando a barra (site público) */
body.marketplace .header {
    /* backdrop-filter no próprio header corta overflow; blur fica no ::before */
    backdrop-filter: none;
    background: transparent;
    border-bottom-color: transparent;
}
body.marketplace .header::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--header-bg);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--border);
    z-index: 0;
    pointer-events: none;
}
body.marketplace .header-inner {
    position: relative;
    z-index: 1;
    align-items: center;
    padding-top: .65rem;
    padding-bottom: .65rem;
    min-height: 3.5rem;
}
body.marketplace .logo {
    font-family: var(--font-display);
    align-self: flex-start;
    margin-top: -.2rem;
    margin-bottom: -1.85rem;
}
body.marketplace .logo-img {
    height: 5.1rem;
    max-width: min(400px, 74vw);
    filter: drop-shadow(0 8px 16px rgba(0, 0, 0, .14));
}
body.marketplace .header + * {
    position: relative;
    z-index: 1;
}
@media (max-width: 640px) {
    .logo-img { height: 2.5rem; max-width: 200px; }
    body.marketplace .logo {
        margin-bottom: -1rem;
        margin-top: 0;
    }
    body.marketplace .logo-img {
        height: 3.5rem;
        max-width: min(250px, 60vw);
        filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .1));
    }
}
.nav { display: flex; gap: 1.5rem; }
.nav a { color: var(--muted); text-decoration: none; transition: color .2s; }
.nav a:hover { color: var(--gold); }
.header-actions { display: flex; align-items: center; gap: .75rem; }
.user-name { font-size: .875rem; color: var(--muted); }
.link-muted { color: var(--muted); text-decoration: none; font-size: .875rem; }
.link-muted:hover { color: var(--gold); }

.theme-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2.25rem; height: 2.25rem; padding: 0;
    border-radius: 999px; border: 1px solid var(--border);
    background: var(--chip-bg); color: var(--muted);
    cursor: pointer; transition: border-color .2s, color .2s, background .2s;
}
.theme-toggle:hover { border-color: var(--gold); color: var(--gold); }
.theme-icon { display: block; }
.theme-icon-moon { display: none; }
html[data-theme="light"] .theme-icon-sun { display: none; }
html[data-theme="light"] .theme-icon-moon { display: block; }
@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) .theme-icon-sun { display: none; }
    html:not([data-theme="dark"]) .theme-icon-moon { display: block; }
}

/* Buttons */
.btn {
    display: inline-block; padding: .75rem 1.5rem; border-radius: .5rem;
    font-weight: 600; text-decoration: none; border: none; cursor: pointer;
    font-size: 1rem; transition: all .2s; text-align: center;
}
.btn-primary { background: linear-gradient(135deg, var(--gold), var(--gold-light)); color: var(--on-accent); box-shadow: 0 2px 12px var(--gold-glow); }
.btn-primary:hover { filter: brightness(1.05); transform: translateY(-1px); }
.btn-secondary { background: transparent; color: var(--gold); border: 1px solid var(--gold); }
.btn-secondary:hover { background: var(--gold); color: var(--on-accent); }
.btn-sm { padding: .5rem 1rem; font-size: .875rem; }
.btn-block { width: 100%; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* Cards */
.card {
    background: var(--card); border: 1px solid var(--border);
    border-radius: var(--radius-md); padding: 1.5rem;
    box-shadow: var(--shadow-card);
}
.card-hover { transition: border-color .3s; text-decoration: none; color: inherit; display: block; }
.card-hover:hover { border-color: rgba(201,169,98,.5); }

/* Forms */
.form-group { margin-bottom: 1rem; }
.form-group label { display: block; font-size: .875rem; color: var(--muted); margin-bottom: .25rem; }
.input, .textarea {
    width: 100%; background: var(--bg-input); border: 1px solid var(--border);
    border-radius: .5rem; padding: .75rem 1rem; color: var(--cream);
    font-size: 1rem; transition: border-color .2s;
}
.input:focus, .textarea:focus { outline: none; border-color: var(--gold); }
.textarea { min-height: 80px; resize: vertical; }

:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}
.input:focus-visible,
.textarea:focus-visible,
.btn:focus-visible,
a:focus-visible,
button:focus-visible,
select:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 2px;
}

.form-hint {
    font-size: .75rem;
    color: var(--muted);
    margin-top: .35rem;
    line-height: 1.4;
}

.form-hint {
    font-size: .75rem;
    color: var(--muted);
    margin-top: .35rem;
    line-height: 1.4;
}

.alert {
    padding: .75rem 1rem; border-radius: .5rem; margin-bottom: 1rem; font-size: .875rem;
}
.alert-error { background: rgba(239,68,68,.1); border: 1px solid rgba(239,68,68,.3); color: var(--red); }
.alert-success { background: rgba(34,197,94,.1); border: 1px solid rgba(34,197,94,.3); color: var(--green); }
.alert-info { background: rgba(201,169,98,.1); border: 1px solid rgba(201,169,98,.3); color: var(--gold); }
.alert-success.asb-success-modal-source[hidden],
.alert.asb-toast-source[hidden] { display: none !important; margin: 0; padding: 0; border: 0; }

/* Modal de sucesso (cadastros / salvar) */
.asb-success-modal {
    position: fixed; inset: 0; z-index: 2400;
    display: flex; align-items: center; justify-content: center;
    padding: 1rem;
}
.asb-success-modal[hidden] { display: none !important; }
.asb-success-modal__backdrop {
    position: absolute; inset: 0;
    background: rgba(8, 8, 10, .62);
    backdrop-filter: blur(3px);
}
.asb-success-modal__panel {
    position: relative; width: min(100%, 22rem);
    padding: 1.75rem 1.5rem 1.35rem;
    text-align: center;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: .9rem;
    box-shadow: 0 24px 64px rgba(0, 0, 0, .45);
    animation: asb-success-in .22s ease-out;
}
.asb-success-modal__icon {
    width: 3.25rem; height: 3.25rem; margin: 0 auto .9rem;
    display: grid; place-items: center;
    border-radius: 999px;
    background: rgba(34, 197, 94, .14);
    color: var(--green, #22c55e);
}
.asb-success-modal__title {
    margin: 0 0 .4rem;
    font-family: Georgia, serif;
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--cream);
}
.asb-success-modal__message {
    margin: 0 0 1.25rem;
    font-size: .9375rem;
    line-height: 1.45;
    color: var(--muted);
}
.asb-success-modal__ok { min-width: 7rem; }
body.asb-success-modal-open { overflow: hidden; }

.asb-dialog {
    position: fixed;
    inset: 0;
    z-index: 2600;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}
.asb-dialog[hidden] { display: none !important; }
.asb-dialog__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 8, 10, .62);
    backdrop-filter: blur(3px);
}
.asb-dialog__panel {
    position: relative;
    width: min(100%, 26rem);
    padding: 1.5rem 1.4rem 1.25rem;
    text-align: left;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: .9rem;
    box-shadow: 0 24px 64px rgba(0, 0, 0, .45);
    animation: asb-success-in .22s ease-out;
}
.asb-dialog__title {
    margin: 0 0 .45rem;
    font-family: Georgia, serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--cream);
}
.asb-dialog__message {
    margin: 0;
    font-size: .9375rem;
    line-height: 1.5;
    color: var(--muted);
    white-space: pre-line;
}
.asb-dialog__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .6rem;
    margin-top: 1.25rem;
}
.asb-dialog__actions .btn { min-width: 6.5rem; }
.asb-dialog__actions .btn.btn-danger {
    background: #b42318;
    border-color: #b42318;
    color: #fff;
}
.asb-dialog__actions .btn.btn-danger:hover { filter: brightness(1.08); }
.btn-danger {
    background: #b42318;
    border-color: #b42318;
    color: #fff;
}
.btn-danger:hover { filter: brightness(1.08); }
body.asb-dialog-open { overflow: hidden; }
@keyframes asb-success-in {
    from { opacity: 0; transform: translateY(8px) scale(.98); }
    to { opacity: 1; transform: none; }
}

/* Toasts não bloqueantes */
.asb-toast-stack {
    position: fixed;
    z-index: 2350;
    top: 1rem;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    gap: .55rem;
    width: min(calc(100vw - 1.5rem), 22rem);
    pointer-events: none;
}
@media (min-width: 720px) {
    .asb-toast-stack {
        top: auto;
        bottom: 1.25rem;
        left: auto;
        right: 1.25rem;
        transform: none;
        width: min(22rem, calc(100vw - 2.5rem));
    }
}
.asb-toast {
    pointer-events: auto;
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .8rem .9rem;
    border-radius: .65rem;
    border: 1px solid var(--border);
    background: var(--card);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .35);
    animation: asb-toast-in .22s ease-out;
}
.asb-toast.is-leaving {
    animation: asb-toast-out .2s ease-in forwards;
}
.asb-toast--success {
    border-color: rgba(34, 197, 94, .35);
    background: rgba(18, 40, 28, .96);
}
.asb-toast--error {
    border-color: rgba(239, 68, 68, .35);
    background: rgba(48, 20, 22, .96);
}
.asb-toast--info {
    border-color: rgba(201, 169, 98, .35);
    background: rgba(36, 32, 22, .96);
}
.asb-toast__message {
    margin: 0;
    flex: 1;
    font-size: .875rem;
    line-height: 1.45;
    color: var(--cream);
}
.asb-toast--success .asb-toast__message { color: var(--green); }
.asb-toast--error .asb-toast__message { color: var(--red); }
.asb-toast--info .asb-toast__message { color: var(--gold); }
.asb-toast__close {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--muted);
    font-size: 1.15rem;
    line-height: 1;
    padding: 0 .15rem;
    cursor: pointer;
    flex-shrink: 0;
}
.asb-toast__close:hover { color: var(--cream); }
@keyframes asb-toast-in {
    from { opacity: 0; transform: translateY(-6px); }
    to { opacity: 1; transform: none; }
}
@keyframes asb-toast-out {
    from { opacity: 1; transform: none; }
    to { opacity: 0; transform: translateY(-4px); }
}
@media (min-width: 720px) {
    @keyframes asb-toast-in {
        from { opacity: 0; transform: translateY(8px); }
        to { opacity: 1; transform: none; }
    }
    @keyframes asb-toast-out {
        from { opacity: 1; transform: none; }
        to { opacity: 0; transform: translateY(6px); }
    }
}
html[data-theme="light"] .asb-toast--success,
html:not([data-theme="dark"]) .asb-toast--success {
    background: #f0fdf4;
}
html[data-theme="light"] .asb-toast--error,
html:not([data-theme="dark"]) .asb-toast--error {
    background: #fef2f2;
}
html[data-theme="light"] .asb-toast--info,
html:not([data-theme="dark"]) .asb-toast--info {
    background: #fffbeb;
}
html[data-theme="light"] .asb-toast__message,
html:not([data-theme="dark"]) .asb-toast__message {
    color: var(--text);
}
html[data-theme="light"] .asb-toast--success .asb-toast__message,
html:not([data-theme="dark"]) .asb-toast--success .asb-toast__message { color: var(--green); }
html[data-theme="light"] .asb-toast--error .asb-toast__message,
html:not([data-theme="dark"]) .asb-toast--error .asb-toast__message { color: var(--red); }
html[data-theme="light"] .asb-toast--info .asb-toast__message,
html:not([data-theme="dark"]) .asb-toast--info .asb-toast__message { color: var(--gold); }

/* Hero */
.hero {
    position: relative; padding: 5rem 0 8rem;
    background: linear-gradient(135deg, rgba(201,169,98,.1), transparent);
}
.hero h1 {
    font-family: Georgia, serif; font-size: clamp(2rem, 5vw, 3.5rem);
    font-weight: 700; line-height: 1.2; max-width: 40rem;
}
.hero h1 span { color: var(--gold); }
.hero p { color: var(--muted); font-size: 1.125rem; margin-top: 1.5rem; max-width: 36rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2rem; }

/* Grid */
.grid-3 { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1.5rem; }
.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; }

/* Barber card */
.barber-card img {
    width: 100%; height: 12rem; object-fit: cover; border-radius: .5rem; margin-bottom: 1rem;
}
.barber-card h3 { font-family: Georgia, serif; font-size: 1.125rem; }
.barber-card .specialty { color: var(--gold); font-size: .875rem; margin-top: .25rem; }
.barber-meta { display: flex; justify-content: space-between; margin-top: .75rem; font-size: .875rem; }
.barber-price { font-size: .875rem; color: var(--muted); margin-top: .5rem; }

/* Profile */
.profile-header { display: flex; flex-direction: column; gap: 2rem; }
@media (min-width: 768px) { .profile-header { flex-direction: row; } }
.profile-photo {
    width: 100%; max-width: 16rem; height: auto;
    border-radius: .75rem; object-fit: cover; aspect-ratio: 1; display: block;
}
.profile-info h1 { font-family: Georgia, serif; font-size: 2rem; }
.profile-info .specialty { color: var(--gold); font-size: 1.125rem; }
.profile-stats { display: flex; gap: 1.5rem; margin-top: 1rem; font-size: .875rem; color: var(--muted); }
.profile-bio { margin-top: 1rem; color: var(--text-soft); }
.profile-contact { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; font-size: .875rem; color: var(--muted); }

/* Service list */
.service-item {
    display: flex; justify-content: space-between; align-items: start;
    padding: .75rem; background: var(--surface-muted); border-radius: .5rem; margin-bottom: .5rem;
}
.service-item h4 { font-weight: 600; }
.service-item p { font-size: .875rem; color: var(--muted); margin-top: .25rem; }
.service-price { color: var(--gold); font-weight: 700; white-space: nowrap; margin-left: 1rem; }

/* Schedule */
.schedule-row {
    display: flex; justify-content: space-between; padding: .5rem 0;
    border-bottom: 1px solid var(--border);
}
.schedule-row:last-child { border-bottom: none; }

/* Booking */
.step-badge {
    width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--gold);
    color: var(--on-accent); font-size: .75rem; font-weight: 700;
    display: inline-flex; align-items: center; justify-content: center; margin-right: .5rem;
}
.step-title { display: flex; align-items: center; font-weight: 600; margin-bottom: 1rem; }

.service-option {
    width: 100%; text-align: left; padding: 1rem; border-radius: .5rem;
    border: 1px solid var(--border); background: transparent; color: var(--cream);
    cursor: pointer; margin-bottom: .75rem; transition: border-color .2s;
}
.service-option:hover { border-color: rgba(201,169,98,.5); }
.service-option.selected { border-color: var(--gold); background: rgba(201,169,98,.1); }

.date-scroll {
    display: flex; gap: .5rem; overflow-x: auto; padding-bottom: .25rem;
    scrollbar-width: none; -ms-overflow-style: none;
}
.date-scroll::-webkit-scrollbar { display: none; }

.date-btn {
    flex-shrink: 0; min-width: 4.25rem; padding: .5rem .65rem; border-radius: .5rem;
    border: 1px solid var(--border); background: var(--bg-input); color: var(--cream);
    cursor: pointer; font-size: .8125rem; display: flex; flex-direction: column;
    align-items: center; gap: .15rem; transition: border-color .2s, background .2s;
}
.date-btn:hover:not(:disabled) { border-color: rgba(201,169,98,.5); }
.date-btn.selected { background: var(--gold); color: var(--on-accent); font-weight: 600; border-color: var(--gold); }
.date-btn:disabled { opacity: .45; cursor: not-allowed; }
.date-btn-weekday { font-size: .6875rem; text-transform: uppercase; letter-spacing: .03em; opacity: .85; }
.date-btn-day { font-size: 1.125rem; font-weight: 700; line-height: 1; }
.date-btn-status { font-size: .625rem; opacity: .75; }
.date-btn.selected .date-btn-status { opacity: .9; }
.date-btn-low:not(:disabled) { border-color: rgba(234,179,8,.45); }
.date-btn-full, .date-btn-closed { text-decoration: none; }

.date-actions { margin-top: .75rem; }
.date-actions .btn-link {
    background: none; border: none; color: var(--gold); cursor: pointer;
    font-size: .875rem; padding: 0; text-decoration: underline;
}

.calendar-modal { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.calendar-modal[hidden] { display: none; }
.calendar-backdrop { position: absolute; inset: 0; background: var(--backdrop); }
.calendar-panel {
    position: relative; width: 100%; max-width: 22rem; padding: 1.25rem;
    background: var(--card); border: 1px solid var(--border); border-radius: .75rem;
    box-shadow: var(--panel-shadow);
}
.calendar-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.calendar-header h3 { margin: 0; font-size: 1rem; font-family: Georgia, serif; text-transform: capitalize; }
.calendar-nav {
    width: 2rem; height: 2rem; border-radius: .375rem; border: 1px solid var(--border);
    background: var(--bg-input); color: var(--cream); cursor: pointer; font-size: 1rem;
}
.calendar-nav:disabled { opacity: .35; cursor: not-allowed; }
.calendar-weekdays {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: .25rem;
    margin-bottom: .35rem; text-align: center; font-size: .6875rem; color: var(--muted);
}
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .25rem; }
.calendar-day {
    aspect-ratio: 1; border: none; border-radius: .375rem; background: transparent;
    color: var(--cream); font-size: .875rem; cursor: pointer; position: relative;
}
.calendar-day:hover:not(:disabled):not(.calendar-day-out) { background: rgba(201,169,98,.15); }
.calendar-day-out { color: var(--muted); opacity: .35; cursor: default; }
.calendar-day-today { outline: 1px solid rgba(201,169,98,.35); }
.calendar-day-selected { background: var(--gold) !important; color: var(--on-accent) !important; font-weight: 700; }
.calendar-day-available { }
.calendar-day-low { box-shadow: inset 0 0 0 1px rgba(234,179,8,.5); }
.calendar-day-full, .calendar-day-closed, .calendar-day-past, .calendar-day-blocked {
    opacity: .35; cursor: not-allowed; text-decoration: line-through;
}
.calendar-day-blocked { box-shadow: inset 0 0 0 1px rgba(239,68,68,.45); }
.calendar-legend {
    display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; font-size: .6875rem; color: var(--muted);
}
.calendar-legend span::before {
    content: ''; display: inline-block; width: .5rem; height: .5rem; border-radius: 50%;
    margin-right: .25rem; vertical-align: middle;
}
.calendar-legend-available::before { background: var(--gold); }
.calendar-legend-low::before { background: var(--yellow); }
.calendar-legend-blocked::before { background: #ef4444; }
.calendar-legend-full::before { background: var(--muted); }


.slots-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); gap: .5rem; }
.slot-btn {
    padding: .5rem; border-radius: .5rem; border: 1px solid var(--border);
    background: var(--bg-input); color: var(--cream); cursor: pointer; font-size: .875rem;
}
.slot-btn.selected { background: var(--gold); color: var(--on-accent); font-weight: 600; }
.slot-btn:disabled { opacity: .4; cursor: not-allowed; text-decoration: line-through; }

.summary-row { display: flex; justify-content: space-between; font-size: .875rem; padding: .25rem 0; }
.summary-total { border-top: 1px solid var(--border); padding-top: .5rem; margin-top: .5rem; font-weight: 600; }

/* Dashboard */
.appointment-item { display: flex; flex-direction: column; gap: .5rem; }
@media (min-width: 640px) {
    .appointment-item { flex-direction: row; justify-content: space-between; align-items: center; }
}
.appointment-right { text-align: right; }
.text-gold { color: var(--gold); }
.text-green { color: var(--green); }
.text-yellow { color: var(--yellow); }
.text-red { color: var(--red); }
.text-muted { color: var(--muted); }

.section { padding: 4rem 0; }
.section-title { font-family: Georgia, serif; font-size: 1.5rem; margin-bottom: 2rem; text-align: center; }
.section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; }

.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2rem; }
.feature-icon {
    width: 3rem; height: 3rem; border-radius: 50%; background: rgba(201,169,98,.1);
    display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem;
    color: var(--gold); font-size: 1.25rem;
}
.feature-card { text-align: center; }

.page-header { margin-bottom: 2.5rem; }
.page-header h1 { font-family: Georgia, 'Times New Roman', serif; font-size: 2rem; }
.page-header p { color: var(--muted); margin-top: .5rem; }

.auth-box { max-width: 28rem; margin: 4rem auto; padding: 0 1rem; }
.auth-icon { text-align: center; color: var(--gold); font-size: 2.5rem; margin-bottom: .75rem; }
.auth-title { text-align: center; font-family: Georgia, serif; font-size: 1.5rem; }
.auth-subtitle { text-align: center; color: var(--muted); font-size: .875rem; margin: .5rem 0 2rem; }
.auth-footer { text-align: center; margin-top: 1.5rem; font-size: .875rem; color: var(--muted); }
.auth-footer a { color: var(--gold); }
.demo-box { margin-top: 1.5rem; padding: .75rem; background: var(--surface-muted); border-radius: .5rem; font-size: .75rem; color: var(--muted); text-align: center; }
.auth-divider {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin: 1.25rem 0;
    color: var(--muted);
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.auth-divider::before,
.auth-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--border);
}
.btn-google {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    width: 100%;
    background: #fff;
    color: #1f1f1f;
    border: 1px solid rgba(255,255,255,.12);
    font-weight: 600;
}
.btn-google:hover {
    background: #f3f4f6;
    color: #111;
}
html[data-theme="light"] .btn-google {
    border-color: rgba(0,0,0,.12);
}
@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) .btn-google {
        border-color: rgba(0,0,0,.12);
    }
}

.footer { border-top: 1px solid var(--border); padding: 2rem 0; margin-top: 3rem; text-align: center; color: var(--muted); font-size: .875rem; }

.back-link { color: var(--muted); text-decoration: none; font-size: .875rem; display: inline-flex; align-items: center; gap: .25rem; margin-bottom: 1.5rem; }
.back-link:hover { color: var(--gold); }

.empty-state { text-align: center; padding: 4rem 1rem; color: var(--muted); }
.empty-state .icon { font-size: 3rem; margin-bottom: 1rem; opacity: .5; }

.result-page { max-width: 28rem; margin: 5rem auto; text-align: center; }
.result-icon { font-size: 4rem; margin-bottom: 1.5rem; }
.result-actions { display: flex; flex-direction: column; gap: .75rem; margin-top: 2rem; }

/* ========== Marketplace design system ========== */
.marketplace .page-header h1,
.marketplace h1.display-lg,
.marketplace h2.display-sm,
.marketplace .auth-title { font-family: var(--font-display); font-weight: 600; letter-spacing: -.02em; }

.marketplace .auth-box .card {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-elevated);
}
.marketplace .auth-title { font-size: 1.75rem; }
.marketplace .appointment-item { border-color: var(--border-strong); }
.marketplace .section-header h1 { font-family: var(--font-display); font-weight: 600; }

.establishment-hero-meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: .75rem; font-size: .875rem; color: var(--muted); }
.establishment-desc { margin-bottom: 2rem; }

.directions-block { margin-bottom: 2rem; padding: 1.25rem 1.35rem; }
.directions-header { margin-bottom: .85rem; }
.directions-address { margin: .4rem 0 0; color: var(--muted); font-size: .9375rem; line-height: 1.45; }
.directions-map {
    border-radius: var(--radius, .75rem);
    overflow: hidden;
    border: 1px solid var(--border);
    background: var(--bg-elevated, var(--card));
    aspect-ratio: 16 / 9;
    max-height: 22rem;
}
.directions-map iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
.directions-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem;
    margin-top: 1rem;
}

.display-lg { font-size: clamp(2.25rem, 5vw, 3.75rem); line-height: 1.08; max-width: 18ch; }
.display-sm { font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.15; }
.eyebrow { font-size: .75rem; text-transform: uppercase; letter-spacing: .14em; color: var(--gold); margin-bottom: .75rem; }
.hero-lead { color: var(--muted); font-size: 1.0625rem; max-width: 42ch; margin-top: 1rem; line-height: 1.65; }
.text-gradient { background: linear-gradient(135deg, var(--gold-light), var(--gold)); -webkit-background-clip: text; background-clip: text; color: transparent; }

.hero-marketplace {
    position: relative;
    padding: 5rem 0 5.5rem;
    overflow: hidden;
    min-height: min(78vh, 40rem);
    display: flex;
    align-items: center;
}
.hero-visual {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(105deg, rgba(12, 11, 10, .88) 0%, rgba(12, 11, 10, .55) 48%, rgba(12, 11, 10, .35) 100%),
        url('https://images.unsplash.com/photo-1560066984-138dadb4c035?w=1600&q=80') center / cover no-repeat;
    pointer-events: none;
}
html[data-theme="light"] .hero-visual {
    background:
        linear-gradient(105deg, rgba(28, 25, 23, .62) 0%, rgba(28, 25, 23, .38) 48%, rgba(28, 25, 23, .22) 100%),
        url('https://images.unsplash.com/photo-1560066984-138dadb4c035?w=1600&q=80') center / cover no-repeat;
}
@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) .hero-visual {
        background:
            linear-gradient(105deg, rgba(28, 25, 23, .62) 0%, rgba(28, 25, 23, .38) 48%, rgba(28, 25, 23, .22) 100%),
            url('https://images.unsplash.com/photo-1560066984-138dadb4c035?w=1600&q=80') center / cover no-repeat;
    }
}
.hero-glow {
    position: absolute; inset: -20% 0 auto; height: 70%;
    background: radial-gradient(ellipse 80% 60% at 50% 0%, var(--gold-glow), transparent 70%);
    pointer-events: none;
    z-index: 0;
}
.hero-marketplace-inner { position: relative; z-index: 1; }
.hero-brand {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 600;
    color: var(--gold-light);
    letter-spacing: -.02em;
    margin: 0 0 .75rem;
    line-height: 1.1;
}

.hero-search {
    display: grid; grid-template-columns: 1fr 1fr auto; gap: .75rem;
    margin-top: 2rem; padding: 1rem; background: var(--card);
    border: 1px solid var(--border-strong); border-radius: var(--radius-lg);
    box-shadow: var(--shadow-elevated); align-items: end;
}
.hero-search-compact { grid-template-columns: 1fr 1fr 1fr auto; }
.hero-search-field label { display: block; font-size: .6875rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: .35rem; }
.hero-search-btn { min-height: 3rem; padding-left: 2rem; padding-right: 2rem; white-space: nowrap; }

.hero-chips, .chip-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }

.active-filter-pills {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin: 0 0 1.25rem;
}
.active-filter-pill {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    max-width: 100%;
    padding: .35rem .7rem;
    border-radius: 999px;
    border: 1px solid var(--border-strong);
    background: var(--card);
    color: var(--cream);
    font-size: .8125rem;
    text-decoration: none;
    line-height: 1.3;
    transition: border-color .18s, color .18s;
}
.active-filter-pill span:first-child {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.active-filter-pill-x {
    flex-shrink: 0;
    font-size: 1rem;
    line-height: 1;
    color: var(--muted);
}
.active-filter-pill:hover {
    border-color: var(--gold);
    color: var(--gold);
}
.active-filter-pill:hover .active-filter-pill-x { color: var(--gold); }
.active-filter-clear {
    font-size: .8125rem;
    font-weight: 500;
    color: var(--gold);
    text-decoration: none;
    padding: .25rem .35rem;
}
.active-filter-clear:hover { text-decoration: underline; }
.chip {
    display: inline-flex; align-items: center; gap: .35rem;
    padding: .4rem .85rem; border-radius: 999px; font-size: .8125rem;
    border: 1px solid var(--border); color: var(--muted); text-decoration: none;
    background: var(--chip-bg); transition: all .2s;
    cursor: pointer;
}
.chip:hover { border-color: var(--gold); color: var(--cream); background: var(--gold-glow); }

.section-tight { padding: 3.5rem 0; }
.section-border { border-top: 1px solid var(--border); }
.page-content { padding: 2rem 1rem 4rem; }
.page-narrow { max-width: 32rem; margin: 0 auto; padding: 3rem 1rem; }

.section-header-row { display: flex; justify-content: space-between; align-items: flex-end; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; }

/* Navegação secundária sticky na página do estabelecimento */
.est-subnav {
    position: sticky;
    top: 3.6rem;
    z-index: 40;
    background: var(--header-bg, rgba(15, 15, 15, .95));
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(8px);
}
.est-subnav-inner {
    display: flex;
    align-items: center;
    gap: .15rem;
    overflow-x: auto;
    scrollbar-width: none;
    padding: .55rem 0;
}
.est-subnav-inner::-webkit-scrollbar { display: none; }
.est-subnav a {
    flex-shrink: 0;
    padding: .4rem .85rem;
    color: var(--muted);
    text-decoration: none;
    font-size: .8125rem;
    font-weight: 500;
    border-radius: .4rem;
    transition: color .18s, background .18s;
}
.est-subnav a:hover {
    color: var(--cream);
    background: rgba(201, 169, 98, .1);
}
#profissionais,
#produtos,
#como-chegar {
    scroll-margin-top: 7rem;
}
html[data-theme="light"] .est-subnav {
    background: rgba(255, 255, 255, .92);
}
@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) .est-subnav {
        background: rgba(255, 255, 255, .92);
    }
}
.link-arrow { color: var(--gold); text-decoration: none; font-size: .875rem; font-weight: 500; }
.link-arrow:hover { text-decoration: underline; }

.feature-card-v2 {
    padding: 1.5rem; border: 1px solid var(--border); border-radius: var(--radius-md);
    background: linear-gradient(180deg, var(--card) 0%, var(--feature-card-end) 100%);
}
.feature-icon-v2 {
    width: 2.75rem; height: 2.75rem; border-radius: var(--radius-sm);
    background: var(--gold-glow); color: var(--gold);
    display: flex; align-items: center; justify-content: center; margin-bottom: 1rem;
}
.feature-card-v2 h3 { font-family: var(--font-display); font-size: 1.25rem; margin-bottom: .35rem; }

.pro-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1.25rem; }
.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 1rem;
}
.product-card-wrap {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.product-card-cart { margin: 0; }
.product-card {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--card);
    overflow: hidden;
    transition: border-color .2s, transform .2s;
}
.product-card:hover {
    border-color: rgba(201,169,98,.45);
    transform: translateY(-2px);
}
.product-card-photo {
    aspect-ratio: 1;
    width: 100%;
    object-fit: cover;
    background: var(--surface-muted);
}
.product-card-photo-empty {
    background: linear-gradient(135deg, var(--surface-muted), rgba(201,169,98,.12));
}
.product-card-body {
    padding: .85rem;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}
.product-card-name {
    font-size: .9rem;
    line-height: 1.3;
}
.product-card-price {
    color: var(--gold);
    font-weight: 600;
    font-size: .95rem;
}
.product-detail {
    display: grid;
    gap: 1.25rem;
}
@media (min-width: 720px) {
    .product-detail {
        grid-template-columns: 16rem 1fr;
        align-items: start;
    }
}
.product-detail-photo {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: var(--radius-md);
    border: 1px solid var(--border);
}
.product-detail-price {
    font-family: var(--font-display);
    font-size: 1.75rem;
    color: var(--gold);
    margin: 0 0 .5rem;
}
.product-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-top: 1.25rem;
}
.pro-card {
    border: 1px solid var(--border);
    border-radius: var(--radius-md);
    background: var(--card);
    overflow: hidden;
    transition: border-color .2s, transform .2s, box-shadow .2s;
}
.pro-card:hover { transform: translateY(-3px); border-color: rgba(212,175,106,.35); box-shadow: var(--shadow-elevated); }
.pro-card-link { text-decoration: none; color: inherit; display: block; }
.pro-card-media {
    position: relative;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: linear-gradient(145deg, rgba(201,169,98,.18), rgba(30,28,26,.92));
}
.pro-card-initials {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-display);
    font-size: clamp(2.25rem, 7vw, 3.25rem);
    font-weight: 600;
    letter-spacing: .06em;
    color: var(--gold-light);
}
.pro-card-initials[hidden] { display: none !important; }
/* Absolute fill: height:100% alone fails on some mobile browsers when the
   parent only sizes via aspect-ratio, which also blocks loading="lazy". */
.pro-card-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s;
    z-index: 1;
}
.pro-card:hover .pro-card-media img { transform: scale(1.04); }
.pro-card-overlay { position: absolute; inset: 0; background: var(--overlay-media); pointer-events: none; z-index: 2; }
.pro-card-rating {
    position: absolute; top: .75rem; right: .75rem; z-index: 3;
    background: var(--overlay-badge); backdrop-filter: blur(8px);
    padding: .25rem .55rem; border-radius: 999px; font-size: .75rem; font-weight: 600; color: var(--overlay-badge-text);
}
.pro-card-rating-inline {
    margin: .25rem 0 0;
    font-size: .8125rem;
    color: var(--gold);
    font-weight: 600;
}
.pro-card-rating-inline .text-muted { font-weight: 400; }
.pro-card-body { padding: 1rem 1.1rem 1.15rem; }
.pro-card-chip {
    display: inline-block; font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em;
    color: var(--gold); margin-bottom: .35rem;
}
.pro-card-name { font-family: var(--font-display); font-size: 1.2rem; font-weight: 600; line-height: 1.2; }
.pro-card-establishment { font-size: .8125rem; color: var(--muted); margin-top: .2rem; }
.pro-card-meta { display: flex; gap: .75rem; font-size: .75rem; color: var(--muted); margin-top: .5rem; }
.pro-card-price { font-size: .8125rem; margin-top: .65rem; color: var(--muted); }
.pro-card-price strong { color: var(--gold); font-weight: 600; }

.cta-band {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.5rem;
    padding: 2rem; border-radius: var(--radius-lg);
    border: 1px solid var(--border-strong);
    background: linear-gradient(135deg, rgba(212,175,106,.08), transparent 60%);
}
.cta-band-actions { display: flex; flex-wrap: wrap; gap: .75rem; }

.search-page-hero { padding: 2.5rem 0 1rem; border-bottom: 1px solid var(--border); margin-bottom: 1rem; }

/* Plans page */
.plans-hero { padding: 3.5rem 0 2rem; text-align: center; }
.plans-hero .display-lg { max-width: none; margin: 0 auto; }
.plans-hero .hero-lead { margin: 1rem auto 0; }
.plans-legal-note {
    margin: 2rem auto 0;
    max-width: 42rem;
    font-size: .8125rem;
    color: var(--muted);
    line-height: 1.5;
    text-align: center;
}
.plans-trial-callout {
    margin: 1.25rem auto 0;
    max-width: 36rem;
    padding: .9rem 1.1rem;
    border-radius: .5rem;
    border: 1px solid rgba(201,169,98,.35);
    background: rgba(201,169,98,.1);
    font-size: .875rem;
    line-height: 1.45;
    color: var(--cream);
    text-align: left;
}
html[data-theme="light"] .plans-trial-callout,
html:not([data-theme="dark"]) .plans-trial-callout {
    color: var(--text);
    background: rgba(201,169,98,.12);
}
.subscription-legal-note {
    margin: 1rem 0 0;
    font-size: .75rem;
    color: var(--muted);
    line-height: 1.45;
}
.signup-trial-callout {
    margin: 0 0 1.25rem;
    padding: .85rem 1rem;
    border-radius: .45rem;
    border: 1px solid rgba(201,169,98,.35);
    background: rgba(201,169,98,.1);
    font-size: .875rem;
    line-height: 1.45;
}
.signup-trial-callout strong { color: var(--gold); }
.billing-toggle { display: inline-flex; gap: .25rem; margin-top: 1.5rem; padding: .25rem; background: var(--card); border-radius: 999px; border: 1px solid var(--border); }
.billing-toggle-btn { padding: .5rem 1.25rem; border-radius: 999px; text-decoration: none; color: var(--muted); font-size: .875rem; transition: all .2s; }
.billing-toggle-btn.active { background: var(--gold); color: var(--on-accent); font-weight: 600; }
.chip-save { font-size: .6875rem; opacity: .85; margin-left: .25rem; }

.plans-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.25rem; align-items: stretch; }
@media (max-width: 640px) {
    .plans-grid { grid-template-columns: 1fr; }
}
.plan-card {
    position: relative; padding: 1.75rem; border-radius: var(--radius-lg);
    border: 1px solid var(--border); background: var(--card);
    display: flex; flex-direction: column; gap: .75rem;
}
.plan-card-featured { border-color: rgba(212,175,106,.45); box-shadow: 0 0 0 1px var(--gold-glow), var(--shadow-card); }
.plan-badge { position: absolute; top: -0.65rem; left: 1rem; font-size: .6875rem; text-transform: uppercase; letter-spacing: .06em; background: var(--gold); color: var(--on-accent); padding: .2rem .65rem; border-radius: 999px; font-weight: 600; }
.plan-name { font-family: var(--font-display); font-size: 1.5rem; margin-top: .5rem; }
.plan-price strong { font-family: var(--font-display); font-size: 2rem; color: var(--gold-light); }
.plan-features { list-style: none; font-size: .875rem; color: var(--muted); flex: 1; }
.plan-features li { padding: .35rem 0; padding-left: 1.25rem; position: relative; }
.plan-features li::before { content: '✓'; position: absolute; left: 0; color: var(--gold); }
.plans-table { font-size: .875rem; }
.plans-table th, .plans-table td { padding: .65rem 1rem; border-bottom: 1px solid var(--border); text-align: left; }

.profile-cta { margin-top: 1.5rem; display: inline-block; }
.success-icon { color: var(--green); margin-bottom: 1rem; }
.summary-box { padding: 1rem; background: var(--summary-bg); border-radius: var(--radius-sm); }

/* Fase C — perfil, booking e fluxos do cliente */
.marketplace .profile-info h1 {
    font-family: var(--font-display); font-weight: 600; font-size: clamp(1.75rem, 4vw, 2.25rem); letter-spacing: -.02em;
}
.marketplace .profile-photo {
    border-radius: var(--radius-md); border: 1px solid var(--border-strong); box-shadow: var(--shadow-card);
}
.marketplace .profile-section-title {
    font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; margin-bottom: 1rem;
}
.profile-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.review-item { padding: .75rem 0; border-bottom: 1px solid var(--border); }
.review-item:last-child { border-bottom: none; }

.flow-page { max-width: 32rem; margin: 0 auto; }
.flow-card { border-color: var(--border-strong); box-shadow: var(--shadow-card); }
.flow-card h1, .flow-card .flow-title {
    font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; margin-bottom: 1rem; letter-spacing: -.02em;
}

.marketplace .result-page { max-width: 28rem; margin: 3rem auto; padding: 0 1rem; text-align: center; }
.marketplace .result-card { text-align: center; padding: 2rem 1.5rem; border-color: var(--border-strong); box-shadow: var(--shadow-elevated); }
.marketplace .result-card h1 { margin-bottom: .35rem; }
.marketplace .result-card .result-actions { display: flex; flex-direction: column; gap: .75rem; margin-top: 1.5rem; }

.booking-page { max-width: 48rem; }
.booking-header { display: flex; align-items: center; gap: 1rem; }
.booking-header-photo {
    width: 4rem; height: 4rem; border-radius: 50%; object-fit: cover;
    border: 2px solid var(--border-strong); flex-shrink: 0;
}
.booking-header h1 { font-family: var(--font-display); font-size: 1.35rem; font-weight: 600; }
.booking-step-card { margin-bottom: 1.5rem; border-color: var(--border-strong); }
.booking-summary-card {
    background: linear-gradient(135deg, rgba(212,175,106,.08), transparent 60%);
    border-color: rgba(212,175,106,.35);
}
.guest-banner { border-color: rgba(212,175,106,.25); background: rgba(212,175,106,.04); }

.policy-preview-box {
    font-size: .875rem; line-height: 1.65; white-space: pre-line;
    margin-bottom: 1rem; padding: 1rem 1.1rem;
    background: var(--surface-muted); color: var(--text-soft);
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    max-height: 200px; overflow-y: auto;
}
.policy-preview-box::-webkit-scrollbar { width: 6px; }
.policy-preview-box::-webkit-scrollbar-thumb {
    background: var(--border-strong); border-radius: 999px;
}
.policy-financial-summary {
    font-size: .875rem; line-height: 1.6; margin-bottom: 1rem;
    color: var(--cream);
}
.policy-financial-summary strong { color: var(--gold); font-weight: 600; }

.policy-summary-card {
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--border);
    border-radius: var(--radius, .75rem);
    background: var(--card);
}
.policy-summary-card--embedded {
    border: none;
    padding: 0;
    background: transparent;
    margin-bottom: 1rem;
}
.policy-summary-title {
    font-family: var(--font-display, Georgia, serif);
    font-size: 1.15rem;
    margin: 0 0 1rem;
}
.policy-summary-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: .85rem;
}
.policy-summary-list li {
    display: grid;
    gap: .2rem;
}
.policy-summary-list strong {
    color: var(--cream, var(--text));
    font-size: .9375rem;
}
.policy-summary-list span {
    color: var(--muted);
    font-size: .875rem;
    line-height: 1.45;
}
.policy-summary-list li.policy-summary-warning {
    padding: .65rem .75rem;
    border-radius: .5rem;
    border: 1px solid rgba(226, 85, 85, .45);
    background: rgba(226, 85, 85, .12);
}
.policy-summary-list li.policy-summary-warning strong {
    color: #f0a0a0;
}
.policy-summary-list li.policy-summary-warning span {
    color: #f5c4c4;
}
.policy-noshow-alert {
    margin: 0 0 1rem;
    text-align: left;
    font-size: .875rem;
    line-height: 1.45;
}
.policy-summary-version {
    margin: .85rem 0 0;
    font-size: .75rem;
    color: var(--muted);
}
.policy-summary-actions { margin: .75rem 0 0; }
.policy-summary-disclaimer {
    margin: .85rem 0 0;
    font-size: .75rem;
    color: var(--muted);
    line-height: 1.45;
}
.policy-details {
    margin: .5rem 0 1rem;
    font-size: .875rem;
}
.policy-details summary {
    cursor: pointer;
    color: var(--gold);
    list-style: none;
}
.policy-details summary::-webkit-details-marker { display: none; }

html[data-theme="light"] body.marketplace .policy-summary-card {
    background: var(--card);
    border-color: var(--border-strong);
}
html[data-theme="light"] body.marketplace .policy-summary-list strong {
    color: var(--text);
}
html[data-theme="light"] body.marketplace .policy-summary-list li.policy-summary-warning {
    background: rgba(180, 40, 40, .08);
    border-color: rgba(180, 40, 40, .35);
}
html[data-theme="light"] body.marketplace .policy-summary-list li.policy-summary-warning strong {
    color: #a32d2d;
}
html[data-theme="light"] body.marketplace .policy-summary-list li.policy-summary-warning span {
    color: #7a3030;
}
@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) body.marketplace .policy-summary-card {
        background: var(--card);
        border-color: var(--border-strong);
    }
    html:not([data-theme="dark"]) body.marketplace .policy-summary-list strong {
        color: var(--text);
    }
}

.pro-signup-header { text-align: center; margin-bottom: 2rem; }
.pro-signup-header h1 { font-family: var(--font-display); font-weight: 600; font-size: 1.75rem; }

.footer-inner { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; text-align: left; padding-bottom: 1.5rem; }
.footer-brand p { font-size: .875rem; margin-top: .35rem; color: var(--muted); }
.footer-logo-link { display: inline-block; text-decoration: none; line-height: 0; position: relative; }
.footer-logo-img {
    height: 3rem; width: auto; max-width: 260px; display: block; object-fit: contain;
}
html[data-theme="light"] .footer-logo-img.logo-img-dark { display: none; }
html[data-theme="light"] .footer-logo-img.logo-img-light { display: block; }
@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) .footer-logo-img.logo-img-dark { display: none; }
    html:not([data-theme="dark"]) .footer-logo-img.logo-img-light { display: block; }
}
.footer-logo-img.logo-img-light { display: none; }
.footer-links { display: flex; gap: 3rem; justify-content: flex-end; }
.footer-links div { display: flex; flex-direction: column; gap: .35rem; }
.footer-label { font-size: .6875rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-bottom: .25rem; }
.footer-links a { color: var(--cream); text-decoration: none; font-size: .875rem; opacity: .85; }
.footer-links a:hover { color: var(--gold); opacity: 1; }
.footer-copy { border-top: 1px solid var(--border); padding-top: 1rem; text-align: center; font-size: .8125rem; }

@media (max-width: 768px) {
    .hero-search, .hero-search-compact { grid-template-columns: 1fr; }
    .hero-search-btn { width: 100%; }
    .footer-inner { grid-template-columns: 1fr; }
    .footer-links { justify-content: flex-start; gap: 2rem; }
}

/* Geolocalização */
.geo-city-field { position: relative; }
.geo-city-field .input { padding-right: 2.75rem; }
.geo-locate-btn {
    position: absolute; right: .35rem; top: 50%; transform: translateY(-50%);
    width: 2.1rem; height: 2.1rem; border: none; border-radius: .4rem;
    background: transparent; color: var(--gold); cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
}
.geo-locate-btn:hover { background: var(--gold-glow); }
.geo-locate-btn:disabled { opacity: .55; cursor: wait; }
.geo-banner {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem;
    margin: 1rem 0 0; padding: .7rem 1rem;
    border: 1px solid var(--border); border-radius: var(--radius-sm);
    background: var(--surface-muted); font-size: .875rem;
}
.geo-banner-text { color: var(--muted); }
.geo-banner-text strong { color: var(--cream); font-weight: 600; }
.geo-banner-actions { display: flex; gap: .5rem; }
.geo-banner-btn {
    border: 1px solid var(--border); background: var(--card); color: var(--cream);
    border-radius: 999px; padding: .3rem .75rem; font-size: .75rem; cursor: pointer;
}
.geo-banner-btn:hover { border-color: var(--gold); color: var(--gold); }
.geo-banner-btn-muted { color: var(--muted); }

/* ========== Tema claro (marketplace + admin) ========== */
html[data-theme="light"] body.marketplace,
html[data-theme="light"] body.admin {
    --dark: #f3f0ea;
    --card: #ffffff;
    --card-hover: #efeae0;
    --border: rgba(28,25,23,.12);
    --border-strong: rgba(28,25,23,.2);
    --cream: #14110f;
    --muted: #4b5563;
    --text-soft: #3f3a36;
    --gold: #8b6914;
    --gold-light: #a67c2e;
    --gold-glow: rgba(139,105,20,.16);
    --bg-input: #ffffff;
    --header-bg: rgba(255,255,255,.96);
    --surface-muted: rgba(28,25,23,.06);
    --chip-bg: #f5f1ea;
    --overlay-media: linear-gradient(180deg, transparent 35%, rgba(28,25,23,.72) 100%);
    --overlay-badge: rgba(255,255,255,.94);
    --overlay-badge-text: #8b6914;
    --summary-bg: rgba(28,25,23,.06);
    --backdrop: rgba(28,25,23,.45);
    --feature-card-end: rgba(243,240,234,.85);
    --panel-shadow: 0 20px 40px rgba(28,25,23,.14);
    --shadow-card: 0 4px 20px rgba(28,25,23,.1);
    --shadow-elevated: 0 14px 36px rgba(28,25,23,.14);
    --on-accent: #ffffff;
}

@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) body.marketplace,
    html:not([data-theme="dark"]) body.admin {
        --dark: #f3f0ea;
        --card: #ffffff;
        --card-hover: #efeae0;
        --border: rgba(28,25,23,.12);
        --border-strong: rgba(28,25,23,.2);
        --cream: #14110f;
        --muted: #4b5563;
        --text-soft: #3f3a36;
        --gold: #8b6914;
        --gold-light: #a67c2e;
        --gold-glow: rgba(139,105,20,.16);
        --bg-input: #ffffff;
        --header-bg: rgba(255,255,255,.96);
        --surface-muted: rgba(28,25,23,.06);
        --chip-bg: #f5f1ea;
        --overlay-media: linear-gradient(180deg, transparent 35%, rgba(28,25,23,.72) 100%);
        --overlay-badge: rgba(255,255,255,.94);
        --overlay-badge-text: #8b6914;
        --summary-bg: rgba(28,25,23,.06);
        --backdrop: rgba(28,25,23,.45);
        --feature-card-end: rgba(243,240,234,.85);
        --panel-shadow: 0 20px 40px rgba(28,25,23,.14);
        --shadow-card: 0 4px 20px rgba(28,25,23,.1);
        --shadow-elevated: 0 14px 36px rgba(28,25,23,.14);
        --on-accent: #ffffff;
    }
}

html[data-theme="light"] body.marketplace .header,
html[data-theme="light"] body.admin .header {
    box-shadow: 0 1px 0 rgba(28,25,23,.08);
}

/* Hero claro: tipografia e busca com contraste sobre o véu escuro */
html[data-theme="light"] body.marketplace .hero-marketplace .hero-brand {
    color: #f0d78c;
    text-shadow: 0 1px 18px rgba(0,0,0,.35);
}
html[data-theme="light"] body.marketplace .hero-marketplace .display-lg {
    color: #faf8f4;
    text-shadow: 0 2px 24px rgba(0,0,0,.35);
}
html[data-theme="light"] body.marketplace .hero-marketplace .text-gradient {
    background: linear-gradient(135deg, #f0d78c, #e0b84a);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
html[data-theme="light"] body.marketplace .hero-marketplace .hero-lead {
    color: rgba(250, 248, 244, .9);
}
html[data-theme="light"] body.marketplace .hero-search {
    background: #ffffff;
    border-color: rgba(28,25,23,.18);
    box-shadow: 0 16px 40px rgba(28,25,23,.22);
}
html[data-theme="light"] body.marketplace .hero-search .input {
    border-color: rgba(28,25,23,.18);
    background: #fff;
    color: #14110f;
}
html[data-theme="light"] body.marketplace .hero-search-field label {
    color: #57534e;
    font-weight: 600;
}
html[data-theme="light"] body.marketplace .hero-marketplace .chip {
    background: rgba(255,255,255,.94);
    border-color: rgba(28,25,23,.18);
    color: #1c1917;
    box-shadow: 0 2px 10px rgba(28,25,23,.12);
}
html[data-theme="light"] body.marketplace .hero-marketplace .chip:hover {
    border-color: var(--gold);
    color: var(--gold);
    background: #fff;
}
html[data-theme="light"] body.marketplace .geo-banner {
    background: rgba(255,255,255,.92);
    border-color: rgba(28,25,23,.16);
    box-shadow: 0 4px 16px rgba(28,25,23,.12);
}
html[data-theme="light"] body.marketplace .hero-marketplace .geo-banner-text {
    color: #3f3a36;
}
html[data-theme="light"] body.marketplace .hero-marketplace .geo-banner-text strong {
    color: #14110f;
}
html[data-theme="light"] body.marketplace .geo-banner-btn {
    background: #ffffff;
    border-color: #a8a29e;
    color: #1c1917;
    font-weight: 500;
}
html[data-theme="light"] body.marketplace .geo-banner-btn-muted {
    color: #57534e;
}
html[data-theme="light"] body.marketplace .nav a {
    color: #3f3a36;
}
html[data-theme="light"] body.marketplace .nav a:hover {
    color: var(--gold);
}
html[data-theme="light"] body.marketplace .chip:hover {
    color: var(--gold);
}

html[data-theme="light"] body.marketplace .hero-glow {
    background: radial-gradient(ellipse 80% 60% at 40% 20%, rgba(224,184,74,.22), transparent 70%);
}

html[data-theme="light"] body.marketplace .booking-summary-card,
html[data-theme="light"] body.marketplace .cta-band,
html[data-theme="light"] body.marketplace .guest-banner {
    background: linear-gradient(135deg, rgba(139,105,20,.1), rgba(255,255,255,.75) 60%);
}

html[data-theme="light"] body.marketplace .alert-info {
    color: var(--gold);
}

html[data-theme="light"] body.marketplace .plan-price strong {
    color: var(--gold);
}

html[data-theme="light"] body.marketplace .policy-preview-box {
    background: #efeae0;
    color: #292524;
    border-color: rgba(139,105,20,.22);
}
html[data-theme="light"] body.marketplace .policy-financial-summary {
    color: #14110f;
}
html[data-theme="light"] body.marketplace .policy-financial-summary strong {
    color: #8b6914;
}

@media (prefers-color-scheme: light) {
    html:not([data-theme="dark"]) body.marketplace .header,
    html:not([data-theme="dark"]) body.admin .header {
        box-shadow: 0 1px 0 rgba(28,25,23,.08);
    }
    html:not([data-theme="dark"]) body.marketplace .hero-marketplace .hero-brand {
        color: #f0d78c;
        text-shadow: 0 1px 18px rgba(0,0,0,.35);
    }
    html:not([data-theme="dark"]) body.marketplace .hero-marketplace .display-lg {
        color: #faf8f4;
        text-shadow: 0 2px 24px rgba(0,0,0,.35);
    }
    html:not([data-theme="dark"]) body.marketplace .hero-marketplace .text-gradient {
        background: linear-gradient(135deg, #f0d78c, #e0b84a);
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }
    html:not([data-theme="dark"]) body.marketplace .hero-marketplace .hero-lead {
        color: rgba(250, 248, 244, .9);
    }
    html:not([data-theme="dark"]) body.marketplace .hero-search {
        background: #ffffff;
        border-color: rgba(28,25,23,.18);
        box-shadow: 0 16px 40px rgba(28,25,23,.22);
    }
    html:not([data-theme="dark"]) body.marketplace .hero-search .input {
        border-color: rgba(28,25,23,.18);
        background: #fff;
        color: #14110f;
    }
    html:not([data-theme="dark"]) body.marketplace .hero-search-field label {
        color: #57534e;
        font-weight: 600;
    }
    html:not([data-theme="dark"]) body.marketplace .hero-marketplace .chip {
        background: rgba(255,255,255,.94);
        border-color: rgba(28,25,23,.18);
        color: #1c1917;
        box-shadow: 0 2px 10px rgba(28,25,23,.12);
    }
    html:not([data-theme="dark"]) body.marketplace .hero-marketplace .chip:hover {
        border-color: var(--gold);
        color: var(--gold);
        background: #fff;
    }
    html:not([data-theme="dark"]) body.marketplace .geo-banner {
        background: rgba(255,255,255,.92);
        border-color: rgba(28,25,23,.16);
        box-shadow: 0 4px 16px rgba(28,25,23,.12);
    }
    html:not([data-theme="dark"]) body.marketplace .hero-marketplace .geo-banner-text {
        color: #3f3a36;
    }
    html:not([data-theme="dark"]) body.marketplace .hero-marketplace .geo-banner-text strong {
        color: #14110f;
    }
    html:not([data-theme="dark"]) body.marketplace .geo-banner-btn {
        background: #ffffff;
        border-color: #a8a29e;
        color: #1c1917;
        font-weight: 500;
    }
    html:not([data-theme="dark"]) body.marketplace .geo-banner-btn-muted {
        color: #57534e;
    }
    html:not([data-theme="dark"]) body.marketplace .nav a {
        color: #3f3a36;
    }
    html:not([data-theme="dark"]) body.marketplace .nav a:hover {
        color: var(--gold);
    }
    html:not([data-theme="dark"]) body.marketplace .chip:hover {
        color: var(--gold);
    }
    html:not([data-theme="dark"]) body.marketplace .hero-glow {
        background: radial-gradient(ellipse 80% 60% at 40% 20%, rgba(224,184,74,.22), transparent 70%);
    }
    html:not([data-theme="dark"]) body.marketplace .booking-summary-card,
    html:not([data-theme="dark"]) body.marketplace .cta-band,
    html:not([data-theme="dark"]) body.marketplace .guest-banner {
        background: linear-gradient(135deg, rgba(139,105,20,.1), rgba(255,255,255,.75) 60%);
    }
    html:not([data-theme="dark"]) body.marketplace .alert-info {
        color: var(--gold);
    }
    html:not([data-theme="dark"]) body.marketplace .plan-price strong {
        color: var(--gold);
    }
    html:not([data-theme="dark"]) body.marketplace .policy-preview-box {
        background: #efeae0;
        color: #292524;
        border-color: rgba(139,105,20,.22);
    }
    html:not([data-theme="dark"]) body.marketplace .policy-financial-summary {
        color: #14110f;
    }
    html:not([data-theme="dark"]) body.marketplace .policy-financial-summary strong {
        color: #8b6914;
    }
}

/* PWA install hint — mobile, barra inferior (não compete com o header) */
.pwa-install-bar,
#pwa-install-bar {
    display: none !important;
}
@media (max-width: 768px) {
    .pwa-install-bar:not([hidden]),
    #pwa-install-bar:not([hidden]) {
        display: block !important;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        top: auto;
        z-index: 90;
        background: rgba(15, 15, 16, .97);
        border-top: 1px solid var(--border, rgba(255,255,255,.08));
        border-bottom: 0;
        padding: .75rem 1rem calc(.75rem + env(safe-area-inset-bottom, 0px));
        backdrop-filter: blur(10px);
    }
    body.has-pwa-bar {
        padding-bottom: 5.5rem;
    }
}
.pwa-install-inner {
    max-width: 56rem;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}
.pwa-install-text strong {
    display: block;
    font-size: .9rem;
}
.pwa-install-text span {
    display: block;
    font-size: .75rem;
    color: var(--muted, #9a9a9a);
    margin-top: .15rem;
    line-height: 1.35;
}
.pwa-install-actions {
    display: flex;
    gap: .4rem;
    flex-wrap: wrap;
}
html[data-theme="light"] .pwa-install-bar:not([hidden]) {
    background: rgba(255, 252, 247, .98);
}
@media (display-mode: standalone), (display-mode: fullscreen) {
    .pwa-install-bar,
    #pwa-install-bar { display: none !important; }
}

/* Marketplace mobile nav */
.mkt-nav-toggle {
    display: none;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: .5rem;
    background: transparent;
    cursor: pointer;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .28rem;
}
.mkt-nav-toggle span {
    display: block;
    width: 1.1rem;
    height: 1.5px;
    background: var(--cream);
}
.mkt-nav-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.45);
    z-index: 70;
}
.mkt-nav-drawer {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: min(18rem, 86vw);
    background: var(--card);
    border-left: 1px solid var(--border);
    z-index: 75;
    padding: 1.25rem 1rem;
    overflow-y: auto;
}
.mkt-nav-drawer-inner {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    margin-top: 2.5rem;
}
.mkt-nav-drawer-inner a {
    display: block;
    padding: .75rem .85rem;
    color: var(--cream);
    text-decoration: none;
    border-radius: .5rem;
    font-size: .9375rem;
}
.mkt-nav-drawer-inner a:hover {
    background: rgba(201,169,98,.1);
    color: var(--gold);
}
.header-cart {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    color: var(--cream);
    text-decoration: none;
    border: 1px solid var(--border);
    border-radius: 999px;
}
.header-cart-count {
    position: absolute;
    top: -.25rem;
    right: -.25rem;
    min-width: 1.05rem;
    height: 1.05rem;
    padding: 0 .25rem;
    border-radius: 999px;
    background: var(--gold);
    color: #1a1510;
    font-size: .65rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* Carrinho */
.cart-lines { list-style: none; margin: 0; padding: 0; }
.cart-line {
    display: grid;
    grid-template-columns: 1fr auto auto auto;
    gap: .75rem;
    align-items: center;
    padding: .85rem 0;
    border-bottom: 1px solid var(--border);
}
.cart-line:last-child { border-bottom: 0; }
.cart-line-main { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.cart-totals {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .35rem;
    padding-top: .75rem;
    border-top: 1px solid var(--border);
    margin-top: .25rem;
}
.cart-totals > div {
    display: flex;
    gap: 1.25rem;
    min-width: 12rem;
    justify-content: space-between;
}
.cart-freight-box {
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--border);
    border-radius: .6rem;
    background: rgba(201, 169, 98, .06);
}
.cart-freight-row {
    display: flex;
    gap: .5rem;
    margin-top: .5rem;
    flex-wrap: wrap;
}
.cart-freight-row .input { flex: 1; min-width: 8rem; }
.cart-freight-options {
    margin-top: .85rem;
    display: flex;
    flex-direction: column;
    gap: .45rem;
}
.cart-ship-option {
    display: flex;
    gap: .65rem;
    align-items: flex-start;
    padding: .65rem .75rem;
    border: 1px solid var(--border);
    border-radius: .5rem;
    cursor: pointer;
    background: var(--card);
}
.cart-ship-option span {
    flex: 1;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: .5rem;
    font-size: .875rem;
}
.cart-ship-price { font-weight: 700; color: var(--gold); }
.cart-fulfillment { border: 0; margin: 1rem 0 0; padding: 0; }
.cart-fulfillment legend { font-size: .875rem; color: var(--muted); margin-bottom: .5rem; }
.cart-fulfillment-option {
    display: flex;
    gap: .75rem;
    align-items: flex-start;
    padding: .75rem;
    border: 1px solid var(--border);
    border-radius: .6rem;
    margin-bottom: .5rem;
    cursor: pointer;
}
.cart-pay-summary {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: .4rem;
    font-size: .9375rem;
}
.cart-pay-summary > div { display: flex; justify-content: space-between; gap: 1rem; }
.cart-pay-total { font-size: 1.05rem; margin-top: .35rem; }

/* Checkout em etapas */
.cart-steps {
    display: flex;
    gap: .35rem;
    margin: 0 0 1.35rem;
    padding: 0;
}
.cart-step {
    appearance: none;
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    padding: .7rem .55rem;
    border: 1px solid var(--border);
    border-radius: var(--radius-md, .6rem);
    background: var(--card);
    color: var(--muted);
    cursor: pointer;
    font: inherit;
    font-size: .8125rem;
    font-weight: 500;
    transition: border-color .18s, color .18s, background .18s;
}
.cart-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border-radius: 50%;
    border: 1px solid currentColor;
    font-size: .7rem;
    font-weight: 700;
    flex-shrink: 0;
}
.cart-step.is-active {
    color: var(--cream);
    border-color: var(--gold);
    background: rgba(201, 169, 98, .08);
}
.cart-step.is-active .cart-step-num {
    background: var(--gold);
    border-color: var(--gold);
    color: #1a1510;
}
.cart-step.is-done {
    color: var(--cream);
    border-color: var(--border-strong, var(--border));
}
.cart-step-panel { display: none; }
.cart-step-panel.is-active { display: block; }
.cart-step-heading {
    font-family: Georgia, serif;
    font-size: 1.2rem;
    margin: 0 0 1rem;
}
.cart-step-nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    margin: 1rem 0 1.5rem;
}
@media (max-width: 560px) {
    .cart-step-label { display: none; }
    .cart-step { padding: .65rem .35rem; }
    .cart-step.is-active .cart-step-label { display: inline; }
}

@media (max-width: 640px) {
    .cart-line {
        grid-template-columns: 1fr auto;
        grid-template-areas: "main total" "qty remove";
    }
    .cart-line-main { grid-area: main; }
    .cart-line-total { grid-area: total; }
    .cart-line-qty { grid-area: qty; }
}

@media (max-width: 768px) {
    .nav-desktop,
    .header-actions-desktop { display: none !important; }
    .mkt-nav-toggle { display: inline-flex; }
    .header-inner { flex-wrap: nowrap; }
}
@media (min-width: 769px) {
    .mkt-nav-toggle,
    .mkt-nav-drawer,
    .mkt-nav-backdrop { display: none !important; }
}

