* { box-sizing: border-box; margin: 0; padding: 0; }
:root { --ink: #171b1a; --paper: #f3efe7; --gold: #b79252; --line: #d9d2c5; }
body { font-family: 'DM Sans', sans-serif; background: var(--paper); color: var(--ink); }
button, input, select, textarea { font: inherit; }
a { color: inherit; }
.overline { color: #937640; font-size: .62rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.primary-button { border: 0; padding: 1rem 1.3rem; color: white; background: var(--ink); text-decoration: none; text-transform: uppercase; letter-spacing: .12em; font-size: .65rem; cursor: pointer; }
.app-header { height: 68px; padding: 0 clamp(1rem, 4vw, 3rem); display: flex; align-items: center; justify-content: space-between; background: var(--ink); color: white; }
.app-brand { font-family: 'Italiana', serif; text-decoration: none; font-size: 1.2rem; letter-spacing: .06em; }
.app-brand small { font-family: 'DM Sans'; font-size: .48rem; text-transform: uppercase; letter-spacing: .22em; color: #bfa87c; }
.app-header > div { display: flex; align-items: center; gap: 1.3rem; }
.app-header a, .app-header button { border: 0; color: rgba(255,255,255,.75); background: none; font-size: .66rem; text-decoration: none; text-transform: uppercase; letter-spacing: .1em; cursor: pointer; }

.editor-layout { height: calc(100svh - 68px); display: grid; grid-template-columns: minmax(360px, 480px) 1fr; }
.editor-panel { overflow-y: auto; padding: 2.2rem; background: #f9f6f0; border-right: 1px solid var(--line); }
.panel-heading h1 { font-family: 'Italiana'; font-size: 2.5rem; font-weight: 400; margin: .5rem 0; }
.panel-heading > p:last-child { color: #77736c; font-size: .8rem; }
.notice { margin: 1rem 0; padding: .8rem; background: #e3eddf; color: #3b6333; font-size: .75rem; }
.editor-panel details { border-top: 1px solid var(--line); padding: 1.3rem 0; }
.editor-panel details:first-of-type { margin-top: 2rem; }
.editor-panel summary { cursor: pointer; font-size: .76rem; font-weight: 600; text-transform: uppercase; letter-spacing: .09em; margin-bottom: 1.2rem; }
.fields { display: grid; gap: 1rem; }
.fields.two { grid-template-columns: 1fr 1fr; }
.fields .full { grid-column: 1/-1; }
.fields label, .auth-card label { display: grid; gap: .4rem; color: #706b63; font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; }
.fields input:not([type=color]), .fields select, .fields textarea, .auth-card input { min-width: 0; width: 100%; border: 1px solid #d6cfc4; padding: .75rem; background: white; color: var(--ink); outline: none; border-radius: 0; }
.fields input:focus, .fields select:focus, .fields textarea:focus { border-color: var(--gold); }
.fields input[type=color] { width: 100%; height: 42px; padding: 3px; border: 1px solid #d6cfc4; background: white; }
.upload span { text-transform: none; letter-spacing: 0; color: #9a948b; }
.theme-options { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin-bottom: 1.2rem; }
.template-view-toggle { display: flex; margin-bottom: 1rem; padding: 3px; background: #e9e3d9; }
.template-view-toggle button { flex: 1; border: 0; padding: .65rem; color: #777168; background: transparent; font-size: .62rem; text-transform: uppercase; letter-spacing: .06em; cursor: pointer; }
.template-view-toggle button.active { color: white; background: var(--ink); }
.theme-card { padding: .5rem; border: 1px solid #d6cfc4; background: white; cursor: pointer; text-align: left; }
.theme-card.active { border: 2px solid var(--gold); padding: calc(.5rem - 1px); }
.theme-card.not-recommended { opacity: .72; }
.theme-card.not-recommended:hover { opacity: 1; }
.theme-card i { display: block; height: 55px; margin-bottom: .4rem; background: #657167; }
.theme-classico i { background: #e3d3bb; }
.theme-moderno i { background: #1d2021; }
.theme-romantico i { background: #c9a9a1; }
.theme-princesa i { background: linear-gradient(135deg, #ead5e4, #c3a0c8); }
.theme-glow i { background: linear-gradient(135deg, #221538, #f449b8, #53dcea); }
.theme-jardim_encantado i { background: linear-gradient(135deg, #425b48, #d7b5c4); }
.theme-safari i { background: linear-gradient(135deg, #688154, #d5a85b); }
.theme-circo i { background: linear-gradient(135deg, #e74848 0 33%, #f5d66c 33% 66%, #4b8cc8 66%); }
.theme-mundo_doce i { background: linear-gradient(135deg, #f7bfd7, #bce8ec, #f6dda8); }
.theme-tropical i { background: linear-gradient(135deg, #196c54, #ed9a55); }
.theme-boteco i { background: linear-gradient(135deg, #342c24, #c5964f); }
.theme-nuvens i { background: linear-gradient(135deg, #b8d9e8, #f8f7f1); }
.theme-bosque_bebe i { background: linear-gradient(135deg, #788d6b, #d6c5a2); }
.theme-gala i { background: linear-gradient(135deg, #111827, #c3a565); }
.theme-corporativo i { background: linear-gradient(135deg, #14283d, #4a7598); }
.theme-card span { display: block; font-size: .67rem; }
.theme-card small { display: block; min-height: 1.8em; margin-top: .25rem; color: #999188; font-size: .52rem; line-height: 1.3; }
.theme-card[hidden] { display: none; }
.theme-empty { color: #8d4d4d; font-size: .72rem; margin-bottom: 1rem; }
.hidden-field { display: none; }
.publish-toggle { display: flex; align-items: center; gap: .6rem; margin: 1rem 0; font-size: .75rem; }
.editor-panel form > .primary-button { width: 100%; }
.form-error { margin: 1rem 0; color: #a13939; font-size: .72rem; }

.preview-stage { display: grid; grid-template-rows: 44px 1fr; min-width: 0; background: #dcd7cf; }
.preview-toolbar { display: flex; justify-content: space-between; align-items: center; padding: 0 1.2rem; background: white; border-bottom: 1px solid var(--line); font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; }
.preview-toolbar button { border: 0; background: none; font-size: .65rem; cursor: pointer; }
.device { align-self: center; justify-self: center; width: min(390px, 76%); height: min(720px, calc(100svh - 150px)); padding: 8px; border-radius: 30px; background: #151918; box-shadow: 0 30px 70px rgba(20,20,20,.25); }
.invitation-preview { position: relative; height: 100%; overflow: hidden; display: grid; place-items: center; border-radius: 23px; color: white; background-color: #59665e; background-image: var(--preview-bg, url('Gemini_Generated_Image_gk6w03gk6w03gk6w.png')); background-position: center; background-size: cover; }
.invitation-preview.theme-classico { background-color: #d9c4a5; }
.invitation-preview.theme-moderno { background-color: #202324; }
.invitation-preview.theme-romantico { background-color: #b9918a; }
.preview-shade { position: absolute; inset: 0; background: linear-gradient(rgba(15,18,17,.22), rgba(15,18,17,.66)); }
.preview-content { position: relative; text-align: center; padding: 1rem; }
.preview-content > p { font-size: .58rem; text-transform: uppercase; letter-spacing: .17em; }
.preview-content h2 { display: grid; margin: 2.5rem 0; font-family: 'Italiana'; font-size: 3.5rem; font-weight: 400; line-height: .82; }
.preview-content h2 i { color: #d6b87e; font-size: .55em; }
.invitation-preview.single-name .preview-content h2 i,
.invitation-preview.single-name #preview-two { display: none; }
.preview-content time { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
.preview-content b { display: block; width: fit-content; margin: 6rem auto 0; padding: .7rem; background: #f1ece4; color: #333; font-size: .55rem; text-transform: uppercase; letter-spacing: .1em; }

.auth-shell { min-height: 100svh; display: grid; grid-template-columns: 1.2fr .8fr; }
.auth-brand { padding: 8vw; display: flex; flex-direction: column; justify-content: end; color: white; background: linear-gradient(rgba(15,20,18,.25),rgba(15,20,18,.72)), url('casamento_luan.jpg') center/cover; }
.auth-brand p { font-family: 'Italiana'; font-size: 2rem; }
.auth-brand h1 { max-width: 650px; margin: 1rem 0; font: 400 clamp(3rem,6vw,6rem)/.95 'Italiana'; }
.auth-brand span { color: rgba(255,255,255,.7); }
.auth-card { align-self: center; padding: clamp(2rem, 7vw, 6rem); }
.auth-card h2 { font: 400 2.5rem 'Italiana'; margin: .7rem 0 2rem; }
.auth-card form { display: grid; gap: 1.2rem; }
.auth-card > a { display: block; margin-top: 2rem; color: #777; font-size: .72rem; }

.dashboard { max-width: 1300px; margin: auto; padding: clamp(2rem, 6vw, 5rem); }
.dashboard-heading { display: flex; justify-content: space-between; align-items: end; }
.dashboard-heading h1 { font: 400 clamp(2.5rem,5vw,4.5rem) 'Italiana'; margin-top: .6rem; }
.metrics { display: grid; grid-template-columns: repeat(3,1fr); gap: 1rem; margin: 3rem 0; }
.metrics article { padding: 1.5rem; background: white; border: 1px solid var(--line); }
.metrics span { display: block; color: #777; font-size: .65rem; text-transform: uppercase; letter-spacing: .1em; }
.metrics strong { display: block; margin-top: .7rem; font: 400 2.5rem 'Italiana'; }
.guest-table-wrap { overflow-x: auto; background: white; border: 1px solid var(--line); }
.guest-table { width: 100%; border-collapse: collapse; }
.guest-table th, .guest-table td { padding: 1rem; text-align: left; border-bottom: 1px solid #ece7de; font-size: .76rem; }
.guest-table th { color: #777; text-transform: uppercase; letter-spacing: .08em; font-size: .58rem; }
.guest-table td strong, .guest-table td small { display: block; }
.guest-table td small, .muted { color: #999; margin-top: .2rem; }
.status { padding: .35rem .55rem; font-size: .62rem; }
.status-yes { color: #376347; background: #e3eee5; }
.status-no { color: #874a4a; background: #f5e4e2; }
.qr-button { border: 1px solid #b9ad98; padding: .5rem; background: transparent; cursor: pointer; font-size: .65rem; }
.empty { padding: 4rem !important; text-align: center !important; color: #888; }
.scanner { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; margin-bottom: 2rem; padding: 1.5rem; color: white; background: #1c2220; }
.scanner video { width: 100%; max-height: 350px; background: black; }
.scanner h2 { font: 400 2rem 'Italiana'; }
.scanner p { color: rgba(255,255,255,.6); margin: 1rem 0; }
.scanner button { padding: .7rem; border: 1px solid white; color: white; background: none; cursor: pointer; }
dialog { width: min(360px, calc(100% - 2rem)); margin: auto; padding: 2rem; border: 0; text-align: center; }
dialog::backdrop { background: rgba(15,18,17,.7); }
dialog img { width: 100%; }
dialog p { font: 400 1.6rem 'Italiana'; }
dialog span { color: #777; font-size: .7rem; }
.dialog-close { float: right; border: 0; background: none; font-size: 1.5rem; cursor: pointer; }

.owner-header nav { display: flex; gap: 1.4rem; margin-right: auto; margin-left: 4rem; }
.owner-header nav a.active { color: #d1b57e; }
.owner-shell { max-width: 1450px; margin: auto; padding: clamp(2rem,5vw,5rem); }
.owner-title, .event-admin-hero { display: flex; justify-content: space-between; align-items: end; gap: 2rem; }
.owner-title h1, .event-admin-hero h1 { font: 400 clamp(3rem,6vw,5.6rem)/1 'Italiana'; margin: .5rem 0; }
.owner-title > div > p:last-child, .event-admin-hero > div > p:last-child { color: #77736c; }
.owner-metrics { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin: 3rem 0; }
.owner-metrics.compact { grid-template-columns: repeat(3,1fr); }
.owner-metrics article { min-height: 145px; padding: 1.5rem; border: 1px solid var(--line); background: white; }
.owner-metrics span, .owner-metrics small { display: block; color: #827d74; font-size: .62rem; text-transform: uppercase; letter-spacing: .1em; }
.owner-metrics strong { display: block; margin: .8rem 0 .4rem; font: 400 2.8rem 'Italiana'; }
.owner-metrics small { text-transform: none; letter-spacing: 0; }
.owner-filters { display: grid; grid-template-columns: 2fr 1fr 1fr auto auto; gap: .7rem; margin-bottom: 2rem; padding: 1rem; background: #e8e2d8; }
.owner-filters input, .owner-filters select { min-width: 0; border: 1px solid #cec6b8; padding: .75rem; background: white; }
.owner-filters button { border: 0; padding: .75rem 1.2rem; color: white; background: var(--ink); cursor: pointer; }
.owner-filters a { align-self: center; padding: .7rem; font-size: .7rem; }
.owner-event-list { background: white; border: 1px solid var(--line); }
.list-heading { display: flex; justify-content: space-between; align-items: center; padding: 1.3rem 1.5rem; border-bottom: 1px solid var(--line); }
.list-heading h2, .event-summary h2 { font: 400 1.7rem 'Italiana'; }
.list-heading > span { color: #888; font-size: .7rem; }
.list-heading > div { display: flex; gap: 1rem; }
.list-heading > div a { font-size: .66rem; }
.owner-event-card { display: grid; grid-template-columns: 70px minmax(240px,1fr) repeat(3,75px) 90px 110px; gap: 1.2rem; align-items: center; padding: 1.2rem 1.5rem; border-bottom: 1px solid #ece7de; }
.event-date { display: grid; justify-items: center; padding-right: 1rem; border-right: 1px solid var(--line); }
.event-date strong { font: 400 2rem 'Italiana'; }
.event-date span, .event-main > span { color: #92733e; font-size: .56rem; text-transform: uppercase; letter-spacing: .11em; }
.event-main h3 { font: 400 1.35rem 'Italiana'; margin: .2rem 0; }
.event-main p { color: #888; font-size: .68rem; }
.event-stat { text-align: center; }
.event-stat strong, .event-stat span { display: block; }
.event-stat strong { font: 400 1.4rem 'Italiana'; }
.event-stat span { color: #999; font-size: .55rem; }
.event-publish { padding: .35rem .5rem; color: #846b3f; background: #eee6d6; text-align: center; font-size: .58rem; text-transform: uppercase; letter-spacing: .06em; }
.event-publish.published { color: #3d6747; background: #e0ece2; }
.event-open { font-size: .65rem; font-weight: 600; text-decoration: none; }
.owner-empty { padding: 5rem; text-align: center; color: #888; }
.owner-empty h3 { color: var(--ink); font: 400 2rem 'Italiana'; }
.event-admin-hero { padding-bottom: 2rem; border-bottom: 1px solid var(--line); }
.event-admin-grid { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 1.5rem; }
.event-guests { min-width: 0; background: white; border: 1px solid var(--line); }
.event-summary { padding: 1.5rem; background: #1d2220; color: white; }
.event-summary dl { margin: 1.5rem 0 2rem; }
.event-summary dt { margin-top: 1rem; color: #bda87f; font-size: .56rem; text-transform: uppercase; letter-spacing: .12em; }
.event-summary dd { margin-top: .25rem; color: rgba(255,255,255,.75); font-size: .75rem; line-height: 1.5; overflow-wrap: anywhere; }
.event-summary .primary-button { display: block; text-align: center; color: var(--ink); background: #e8dfd0; }

.public-invite { font-family: var(--body); }
.public-invite h1, .public-invite h2 { font-family: var(--heading); font-weight: 400; }
.public-invite i { color: var(--accent); background: none; }
.public-cover { min-height: 100svh; display: grid; place-items: center; color: white; text-align: center; background-image: linear-gradient(rgba(15,20,18,.3),rgba(15,20,18,.7)),url('Gemini_Generated_Image_gk6w03gk6w03gk6w.png'); background-position: center; background-size: cover; }
.public-cover h1 { font-size: clamp(4rem,11vw,9rem); margin: 2rem 0; }
.public-cover p, .public-cover time { text-transform: uppercase; letter-spacing: .18em; font-size: .68rem; }
.public-cover a { display: block; margin-top: 4rem; color: white; font-size: .65rem; text-transform: uppercase; letter-spacing: .12em; }
.public-welcome { min-height: 75vh; display: grid; align-content: center; justify-items: center; text-align: center; padding: 6rem 1.5rem; }
.public-welcome > p, .public-rsvp > div > p { color: var(--accent); text-transform: uppercase; letter-spacing: .2em; font-size: .62rem; }
.public-welcome h2, .public-rsvp h2 { max-width: 850px; font-size: clamp(3rem,7vw,6rem); line-height: 1; margin: 1.5rem 0; }
.public-welcome blockquote { max-width: 600px; line-height: 1.8; color: #777; }
.public-details { padding: 9rem 1.5rem; text-align: center; color: white; background: var(--primary); }
.public-details > p { color: var(--accent); text-transform: uppercase; letter-spacing: .15em; font-size: .7rem; }
.public-details h2 { font-size: clamp(2.5rem,5vw,4.5rem); margin: 1.5rem 0; }
.public-details address { font-style: normal; color: rgba(255,255,255,.65); line-height: 1.7; }
.public-details a { display: inline-block; margin-top: 2rem; color: white; }
.public-rsvp { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; padding: clamp(5rem,10vw,9rem) max(1.5rem, calc((100vw - 1100px)/2)); }
.public-rsvp form { display: grid; gap: 1rem; padding: 2rem; background: white; }
.public-rsvp form > label { display: grid; gap: .4rem; color: #777; font-size: .63rem; text-transform: uppercase; letter-spacing: .08em; }
.public-rsvp input, .public-rsvp textarea { padding: .7rem 0; border: 0; border-bottom: 1px solid var(--line); outline: none; }
.public-rsvp fieldset { border: 0; }
.public-rsvp fieldset ul { list-style: none; display: flex; gap: 1rem; margin-top: .6rem; }
.public-rsvp button { padding: 1rem; border: 0; color: white; background: var(--primary); text-transform: uppercase; letter-spacing: .12em; font-size: .65rem; }
.rsvp-success { grid-column: 1/-1; text-align: center; }

@media(max-width:800px) {
    .editor-layout { height: auto; grid-template-columns: 1fr; }
    .editor-panel { overflow: visible; }
    .preview-stage { min-height: 760px; }
    .auth-shell, .public-rsvp { grid-template-columns: 1fr; }
    .auth-brand { min-height: 45vh; }
    .metrics { grid-template-columns: 1fr; }
    .dashboard-heading { align-items: start; gap: 1rem; }
    .scanner { grid-template-columns: 1fr; }
    .owner-header nav { display: none; }
    .owner-title, .event-admin-hero { align-items: start; flex-direction: column; }
    .owner-metrics, .owner-metrics.compact { grid-template-columns: 1fr 1fr; }
    .owner-filters { grid-template-columns: 1fr; }
    .owner-event-card { grid-template-columns: 55px 1fr; }
    .owner-event-card .event-stat, .owner-event-card .event-publish { display: none; }
    .event-open { grid-column: 2; }
    .event-admin-grid { grid-template-columns: 1fr; }
}

/* Gestão do blog */
.story-manager { max-width: 1250px; }
.story-admin-grid { display: grid; gap: 1rem; margin-top: 3rem; }
.story-admin-card { display: grid; grid-template-columns: 250px 1fr; min-height: 220px; background: white; border: 1px solid var(--line); }
.story-admin-card > img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.story-admin-card > div { padding: 1.7rem 2rem; }
.story-admin-card span { color: #92733e; font-size: .6rem; letter-spacing: .13em; text-transform: uppercase; }
.story-admin-card h2 { margin: .35rem 0 .7rem; font: 400 2rem 'Italiana'; }
.story-admin-card p { color: #77736c; line-height: 1.6; }
.story-admin-card small { display: block; margin: 1rem 0; color: #969086; }
.story-admin-card > div > div { display: flex; gap: 1.3rem; }
.story-admin-card a { color: var(--ink); font-size: .7rem; font-weight: 600; }
.story-editor-shell { width: min(1050px, calc(100% - 2rem)); margin: auto; padding: clamp(2.5rem, 6vw, 5rem) 0; }
.story-editor-heading { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 3rem; }
.story-editor-heading h1 { margin: .5rem 0; font: 400 clamp(3rem, 7vw, 5.5rem)/1 'Italiana'; }
.story-editor-heading > div > p:last-child { color: #77736c; }
.story-editor-heading > a { color: var(--ink); font-size: .72rem; }
.story-messages { margin-bottom: 1rem; padding: 1rem 1.2rem; color: #285b38; background: #e2f0e5; }
.story-editor-form { display: grid; gap: 1.2rem; }
.story-form-card { padding: clamp(1.5rem, 4vw, 2.5rem); background: white; border: 1px solid var(--line); }
.story-form-card > header { display: grid; grid-template-columns: 42px 1fr; gap: 1rem; padding-bottom: 1.5rem; margin-bottom: 1.5rem; border-bottom: 1px solid var(--line); }
.story-form-card > header > span { color: #92733e; font-size: .65rem; }
.story-form-card h2 { font: 400 1.8rem 'Italiana'; }
.story-form-card header p { margin-top: .3rem; color: #817b72; font-size: .75rem; }
.story-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.story-form-grid .wide { grid-column: 1 / -1; }
.story-form-card label { display: grid; gap: .45rem; color: #524d46; font-size: .68rem; font-weight: 600; }
.story-form-card input:not([type="checkbox"]), .story-form-card textarea, .story-form-card select { width: 100%; padding: .85rem; border: 1px solid #cec6b8; background: #fffdfa; color: var(--ink); font: 400 .9rem 'DM Sans'; }
.story-form-card textarea { resize: vertical; line-height: 1.7; }
.story-form-card label small { color: #928b81; font-weight: 400; line-height: 1.4; }
.story-form-card .errorlist { list-style: none; color: #a13b3b; font-weight: 400; }
.story-upload-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.story-upload-grid label { align-content: start; padding: 1.2rem; border: 1px dashed #bfb39f; background: #fbf8f2; }
.current-cover { display: block; width: 100%; max-height: 260px; margin-top: .7rem; object-fit: cover; }
.current-album { margin-top: 2rem; }
.current-album h3 { font: 400 1.4rem 'Italiana'; }
.current-album > p { margin: .3rem 0 1rem; color: #817b72; font-size: .72rem; }
.current-album > div { display: grid; grid-template-columns: repeat(4, 1fr); gap: .7rem; }
.current-album label { position: relative; display: block; }
.current-album img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.current-album label span { position: absolute; right: .35rem; bottom: .35rem; padding: .35rem .5rem; background: rgba(6,1,65,.85); color: white; }
.story-publish-card > div { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.publish-toggle { display: flex !important; align-items: center; gap: .7rem; font-size: .9rem !important; }
.publish-toggle input { width: 20px; height: 20px; }
.story-editor-actions { position: sticky; bottom: 0; display: flex; justify-content: flex-end; align-items: center; gap: 1.5rem; padding: 1rem 1.2rem; background: rgba(249,246,239,.95); border: 1px solid var(--line); }
.story-editor-actions > a { color: var(--ink); font-size: .72rem; }

@media(max-width:700px) {
    .story-admin-card { grid-template-columns: 1fr; }
    .story-admin-card > img { height: 260px; }
    .story-editor-heading { align-items: start; flex-direction: column; }
    .story-form-grid, .story-upload-grid, .story-publish-card > div { grid-template-columns: 1fr; }
    .current-album > div { grid-template-columns: 1fr 1fr; }
}

/* =====================================================================
   MODELO: Botanico (casamento) - estilo rico sobre a estrutura padrao
   Divisoria/ornamento em SVG inline (dourado assinatura do modelo).
   ===================================================================== */
.theme-botanico { --leaf: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='240'%20height='30'%20viewBox='0%200%20240%2030'%3E%3Cpath%20d='M28%2015H104M212%2015H136'%20stroke='%23c2a65a'%20stroke-width='1'/%3E%3Cpath%20d='M120%2015c-7-10-16-10-24-2%209%205%2018%204%2024%202z'%20fill='%23c2a65a'/%3E%3Cpath%20d='M120%2015c7-10%2016-10%2024-2-9%205-18%204-24%202z'%20fill='%23c2a65a'/%3E%3Ccircle%20cx='120'%20cy='15'%20r='2.6'%20fill='%23c2a65a'/%3E%3C/svg%3E"); }

.public-invite.theme-botanico { background: #f6f3ec; color: #2c3830; }

/* Capa: cena botanica em verde profundo, sem depender de imagem */
.public-invite.theme-botanico .public-cover {
    background:
        radial-gradient(135% 100% at 50% -12%, #35543f 0%, #1e3025 58%, #142019 100%);
    color: #f2ede1;
}
.public-invite.theme-botanico .public-cover > div { position: relative; padding: 3.5rem 1.5rem; }
.public-invite.theme-botanico .public-cover > div::before,
.public-invite.theme-botanico .public-cover > div::after {
    content: ""; display: block; width: 240px; height: 30px; margin: 0 auto;
    background: var(--leaf) center/contain no-repeat;
}
.public-invite.theme-botanico .public-cover > div::before { margin-bottom: 2.2rem; opacity: .95; }
.public-invite.theme-botanico .public-cover > div::after { margin-top: 2.4rem; opacity: .95; }
.public-invite.theme-botanico .public-cover h1 { margin: 1.4rem 0; letter-spacing: .01em; }
.public-invite.theme-botanico .public-cover p,
.public-invite.theme-botanico .public-cover time { color: #d8c7a4; }
.public-invite.theme-botanico .public-cover a { color: #f2ede1; opacity: .85; }

/* Mensagem: creme com divisoria botanica */
.public-invite.theme-botanico .public-welcome { background: #f6f3ec; }
.public-invite.theme-botanico .public-welcome::before {
    content: ""; display: block; width: 240px; height: 30px; margin: 0 auto 2.5rem;
    background: var(--leaf) center/contain no-repeat;
}
.public-invite.theme-botanico .public-welcome h2 { color: #26382c; }
.public-invite.theme-botanico .public-welcome blockquote { color: #6a7168; }

/* Detalhes: painel botanico fixo (independe da cor escolhida) */
.public-invite.theme-botanico .public-details {
    background: linear-gradient(180deg, #24382c 0%, #1a291f 100%);
}
.public-invite.theme-botanico .public-details::after {
    content: ""; display: block; width: 240px; height: 30px; margin: 2.6rem auto 0;
    background: var(--leaf) center/contain no-repeat;
}
.public-invite.theme-botanico .public-details > p { color: #d8c7a4; }
.public-invite.theme-botanico .public-details a { border-bottom: 1px solid rgba(216,199,164,.5); padding-bottom: 3px; }

/* RSVP: sage suave para diferenciar do bloco anterior */
.public-invite.theme-botanico .public-rsvp { background: #eaefe3; }
.public-invite.theme-botanico .public-rsvp > div > p { color: #7a6a37; }
.public-invite.theme-botanico .public-rsvp h2 { color: #26382c; }
.public-invite.theme-botanico .public-rsvp button { background: #24382c; }

/* =====================================================================
   MODELO: Classico (casamento) - marfim formal, moldura e regua dourada
   ===================================================================== */
.theme-classico { --rule: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='16'%20viewBox='0%200%20200%2016'%3E%3Cpath%20d='M6%208H84M194%208H116'%20stroke='%23b08d3f'%20stroke-width='1'/%3E%3Crect%20x='94'%20y='2'%20width='12'%20height='12'%20fill='none'%20stroke='%23b08d3f'%20transform='rotate(45%20100%208)'/%3E%3C/svg%3E"); }
.public-invite.theme-classico { background: #f4efe6; color: #2b2b2b; }
.public-invite.theme-classico .public-cover { background: #efe9dd; color: #262626; }
.public-invite.theme-classico .public-cover > div { position: relative; padding: 4rem 2.6rem; }
.public-invite.theme-classico .public-cover > div::before { content: ""; position: absolute; inset: 0; border: 1px solid rgba(176,141,63,.55); }
.public-invite.theme-classico .public-cover > div::after { content: ""; display: block; width: 200px; height: 16px; margin: 1.8rem auto 0; background: var(--rule) center/contain no-repeat; }
.public-invite.theme-classico .public-cover p,
.public-invite.theme-classico .public-cover time { color: #9c8149; }
.public-invite.theme-classico .public-cover a { color: #2b2b2b; opacity: .75; }
.public-invite.theme-classico .public-welcome { background: #fbf8f2; }
.public-invite.theme-classico .public-welcome::before { content: ""; display: block; width: 200px; height: 16px; margin: 0 auto 2.4rem; background: var(--rule) center/contain no-repeat; }
.public-invite.theme-classico .public-welcome h2 { color: #262626; }
.public-invite.theme-classico .public-welcome blockquote { color: #6f685c; }
.public-invite.theme-classico .public-details { background: #1f2530; }
.public-invite.theme-classico .public-details > p { color: #c7a862; }
.public-invite.theme-classico .public-details::after { content: ""; display: block; width: 200px; height: 16px; margin: 2.4rem auto 0; background: var(--rule) center/contain no-repeat; }
.public-invite.theme-classico .public-rsvp { background: #f4efe6; }
.public-invite.theme-classico .public-rsvp > div > p { color: #9c8149; }
.public-invite.theme-classico .public-rsvp h2 { color: #262626; }
.public-invite.theme-classico .public-rsvp button { background: #1f2530; }

/* =====================================================================
   MODELO: Princesa (15 anos) - baile, vinho/rose com coroa dourada
   ===================================================================== */
.theme-princesa { --crown: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='28'%20viewBox='0%200%20200%2028'%3E%3Cpath%20d='M8%2019H74M192%2019H126'%20stroke='%23c99b5a'%20stroke-width='1'/%3E%3Cpath%20d='M86%2022L90%2010L96%2017L100%208L104%2017L110%2010L114%2022Z'%20fill='none'%20stroke='%23c99b5a'%20stroke-width='1.4'/%3E%3Cpath%20d='M86%2022H114'%20stroke='%23c99b5a'%20stroke-width='1.4'/%3E%3C/svg%3E"); }
.public-invite.theme-princesa { background: #fbeff2; color: #4a2f3a; }
.public-invite.theme-princesa .public-cover { background: radial-gradient(135% 100% at 50% -10%, #7a2d51 0%, #4e1e3a 60%, #351127 100%); color: #f7e7d6; }
.public-invite.theme-princesa .public-cover > div { padding: 3.5rem 1.5rem; }
.public-invite.theme-princesa .public-cover > div::before,
.public-invite.theme-princesa .public-cover > div::after { content: ""; display: block; width: 200px; height: 28px; margin: 0 auto; background: var(--crown) center/contain no-repeat; }
.public-invite.theme-princesa .public-cover > div::before { margin-bottom: 2rem; }
.public-invite.theme-princesa .public-cover > div::after { margin-top: 2.2rem; }
.public-invite.theme-princesa .public-cover p,
.public-invite.theme-princesa .public-cover time { color: #e7b98f; }
.public-invite.theme-princesa .public-cover a { color: #f7e7d6; opacity: .85; }
.public-invite.theme-princesa .public-welcome { background: #fbeff2; }
.public-invite.theme-princesa .public-welcome::before { content: ""; display: block; width: 200px; height: 28px; margin: 0 auto 2.4rem; background: var(--crown) center/contain no-repeat; }
.public-invite.theme-princesa .public-welcome h2 { color: #6d2547; }
.public-invite.theme-princesa .public-welcome blockquote { color: #8a6070; }
.public-invite.theme-princesa .public-details { background: linear-gradient(180deg, #6d2547 0%, #431730 100%); }
.public-invite.theme-princesa .public-details > p { color: #e7b98f; }
.public-invite.theme-princesa .public-details::after { content: ""; display: block; width: 200px; height: 28px; margin: 2.4rem auto 0; background: var(--crown) center/contain no-repeat; }
.public-invite.theme-princesa .public-rsvp { background: #f7e2e9; }
.public-invite.theme-princesa .public-rsvp > div > p { color: #a86a4a; }
.public-invite.theme-princesa .public-rsvp h2 { color: #6d2547; }
.public-invite.theme-princesa .public-rsvp button { background: #6d2547; }

/* =====================================================================
   MODELO: Romantico (casamento) - rose empoeirado, coracao dourado
   ===================================================================== */
.theme-romantico { --heart: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='22'%20viewBox='0%200%20200%2022'%3E%3Cpath%20d='M8%2011H84M192%2011H116'%20stroke='%23c58f6a'%20stroke-width='1'/%3E%3Cpath%20d='M100%2017c-6-4-11-8-11-12%200-2.4%202-4.2%204.4-4.2%201.9%200%203.6%201.1%204.6%202.9%201-1.8%202.7-2.9%204.6-2.9%202.4%200%204.4%201.8%204.4%204.2%200%204-5%208-11%2012z'%20fill='%23c58f6a'/%3E%3C/svg%3E"); }
.public-invite.theme-romantico { background: #faf0ec; color: #5a3d40; }
.public-invite.theme-romantico .public-cover { background: radial-gradient(135% 100% at 50% -10%, #c2857f 0%, #9c5f63 58%, #7c4a50 100%); color: #f8ece7; }
.public-invite.theme-romantico .public-cover > div { padding: 3.5rem 1.5rem; }
.public-invite.theme-romantico .public-cover > div::before,
.public-invite.theme-romantico .public-cover > div::after { content: ""; display: block; width: 200px; height: 22px; margin: 0 auto; background: var(--heart) center/contain no-repeat; }
.public-invite.theme-romantico .public-cover > div::before { margin-bottom: 2rem; }
.public-invite.theme-romantico .public-cover > div::after { margin-top: 2.2rem; }
.public-invite.theme-romantico .public-cover p,
.public-invite.theme-romantico .public-cover time { color: #eec3b3; }
.public-invite.theme-romantico .public-cover a { color: #f8ece7; opacity: .85; }
.public-invite.theme-romantico .public-welcome { background: #faf0ec; }
.public-invite.theme-romantico .public-welcome::before { content: ""; display: block; width: 200px; height: 22px; margin: 0 auto 2.4rem; background: var(--heart) center/contain no-repeat; }
.public-invite.theme-romantico .public-welcome h2 { color: #7c4a50; }
.public-invite.theme-romantico .public-welcome blockquote { color: #8f6c6c; }
.public-invite.theme-romantico .public-details { background: linear-gradient(180deg, #9c5f63 0%, #7c4a50 100%); }
.public-invite.theme-romantico .public-details > p { color: #eec3b3; }
.public-invite.theme-romantico .public-details::after { content: ""; display: block; width: 200px; height: 22px; margin: 2.4rem auto 0; background: var(--heart) center/contain no-repeat; }
.public-invite.theme-romantico .public-rsvp { background: #f5e3dc; }
.public-invite.theme-romantico .public-rsvp > div > p { color: #a86a5a; }
.public-invite.theme-romantico .public-rsvp h2 { color: #7c4a50; }
.public-invite.theme-romantico .public-rsvp button { background: #7c4a50; }

/* =====================================================================
   MODELO: Glow (15 anos) - festa neon, escuro com brilho magenta/ciano
   ===================================================================== */
.public-invite.theme-glow { background: #160b23; color: #efe8fb; }
.public-invite.theme-glow .public-cover { background: radial-gradient(120% 90% at 50% 0%, #3a1560 0%, #1c0b2e 55%, #0d0616 100%); color: #f4ecff; }
.public-invite.theme-glow .public-cover > div { padding: 3.2rem 1.5rem; }
.public-invite.theme-glow .public-cover > div::before,
.public-invite.theme-glow .public-cover > div::after { content: ""; display: block; width: 130px; height: 3px; margin: 0 auto; border-radius: 3px; background: linear-gradient(90deg, #f449b8, #53dcea); box-shadow: 0 0 16px rgba(244,73,184,.75); }
.public-invite.theme-glow .public-cover > div::before { margin-bottom: 2.2rem; }
.public-invite.theme-glow .public-cover > div::after { margin-top: 2.4rem; }
.public-invite.theme-glow .public-cover p,
.public-invite.theme-glow .public-cover time { color: #f49ad9; }
.public-invite.theme-glow .public-cover a { color: #7ff0f7; opacity: .95; }
.public-invite.theme-glow .public-welcome { background: #160b23; }
.public-invite.theme-glow .public-welcome::before { content: ""; display: block; width: 130px; height: 3px; margin: 0 auto 2.4rem; border-radius: 3px; background: linear-gradient(90deg, #f449b8, #53dcea); box-shadow: 0 0 16px rgba(83,220,234,.6); }
.public-invite.theme-glow .public-welcome h2 { color: #f6eeff; }
.public-invite.theme-glow .public-welcome blockquote { color: #b9a8d6; }
.public-invite.theme-glow .public-details { background: linear-gradient(180deg, #3a1560 0%, #1a0a2c 100%); }
.public-invite.theme-glow .public-details > p { color: #f49ad9; }
.public-invite.theme-glow .public-details h2 { color: #f6eeff; }
.public-invite.theme-glow .public-details address { color: rgba(255,255,255,.7); }
.public-invite.theme-glow .public-details::after { content: ""; display: block; width: 130px; height: 3px; margin: 2.4rem auto 0; border-radius: 3px; background: linear-gradient(90deg, #f449b8, #53dcea); box-shadow: 0 0 16px rgba(244,73,184,.7); }
.public-invite.theme-glow .public-rsvp { background: #f1ecfa; }
.public-invite.theme-glow .public-rsvp > div > p { color: #b3319a; }
.public-invite.theme-glow .public-rsvp h2 { color: #2a1140; }
.public-invite.theme-glow .public-rsvp button { background: linear-gradient(90deg, #c0338f, #6b3fb0); }

/* =====================================================================
   MODELO: Moderno (aniversario/corporativo) - minimalista, muito respiro
   ===================================================================== */
.public-invite.theme-moderno { background: #ffffff; color: #1d2021; }
.public-invite.theme-moderno .public-cover { background: #17191a; color: #f2f1ee; }
.public-invite.theme-moderno .public-cover > div { padding: 3rem 1.5rem; }
.public-invite.theme-moderno .public-cover > div::after { content: ""; display: block; width: 46px; height: 2px; margin: 2.2rem auto 0; background: var(--accent); }
.public-invite.theme-moderno .public-cover p,
.public-invite.theme-moderno .public-cover time { color: #a9a49a; letter-spacing: .28em; }
.public-invite.theme-moderno .public-cover a { color: #f2f1ee; opacity: .8; }
.public-invite.theme-moderno .public-welcome { background: #ffffff; }
.public-invite.theme-moderno .public-welcome::before { content: ""; display: block; width: 46px; height: 2px; margin: 0 auto 2.6rem; background: var(--accent); }
.public-invite.theme-moderno .public-welcome h2 { color: #1d2021; }
.public-invite.theme-moderno .public-welcome blockquote { color: #82807a; }
.public-invite.theme-moderno .public-details { background: #1d2021; }
.public-invite.theme-moderno .public-details::after { content: ""; display: block; width: 46px; height: 2px; margin: 2.6rem auto 0; background: var(--accent); }
.public-invite.theme-moderno .public-rsvp { background: #f4f4f2; }
.public-invite.theme-moderno .public-rsvp h2 { color: #1d2021; }
.public-invite.theme-moderno .public-rsvp button { background: #1d2021; }

/* =====================================================================
   MODELO: Safari (infantil) - savana verde/ambar, folhagem
   ===================================================================== */
.theme-safari { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='24'%20viewBox='0%200%20200%2024'%3E%3Cpath%20d='M26%2012H84M192%2012H116'%20stroke='%23c98a3a'%20stroke-width='1'/%3E%3Cpath%20d='M100%2020c-6-8-13-8-19-2%207%204%2014%203%2019%202z'%20fill='%23c98a3a'/%3E%3Cpath%20d='M100%2020c6-8%2013-8%2019-2-7%204-14%203-19%202z'%20fill='%23c98a3a'/%3E%3Ccircle%20cx='100'%20cy='11'%20r='2.4'%20fill='%23c98a3a'/%3E%3C/svg%3E"); }
.public-invite.theme-safari { background: #f3efe2; color: #3f4530; }
.public-invite.theme-safari .public-cover { background: linear-gradient(160deg, #6d8a54 0%, #4a5c39 100%); color: #f4eeda; }
.public-invite.theme-safari .public-cover > div { padding: 3.2rem 1.5rem; }
.public-invite.theme-safari .public-cover > div::before,
.public-invite.theme-safari .public-cover > div::after { content: ""; display: block; width: 200px; height: 24px; margin: 0 auto; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-safari .public-cover > div::before { margin-bottom: 2rem; }
.public-invite.theme-safari .public-cover > div::after { margin-top: 2.2rem; }
.public-invite.theme-safari .public-cover p,
.public-invite.theme-safari .public-cover time { color: #e0c58a; }
.public-invite.theme-safari .public-cover a { color: #f4eeda; opacity: .85; }
.public-invite.theme-safari .public-welcome { background: #f3efe2; }
.public-invite.theme-safari .public-welcome::before { content: ""; display: block; width: 200px; height: 24px; margin: 0 auto 2.4rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-safari .public-welcome h2 { color: #405232; }
.public-invite.theme-safari .public-welcome blockquote { color: #6a6f56; }
.public-invite.theme-safari .public-details { background: linear-gradient(180deg, #5c7346 0%, #3f5030 100%); }
.public-invite.theme-safari .public-details > p { color: #e0c58a; }
.public-invite.theme-safari .public-details::after { content: ""; display: block; width: 200px; height: 24px; margin: 2.4rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-safari .public-rsvp { background: #eae7d3; }
.public-invite.theme-safari .public-rsvp > div > p { color: #96792f; }
.public-invite.theme-safari .public-rsvp h2 { color: #405232; }
.public-invite.theme-safari .public-rsvp button { background: #4a5c39; }

/* =====================================================================
   MODELO: Circo (infantil) - festivo, vermelho/amarelo/azul, estrela
   ===================================================================== */
.theme-circo { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='30'%20viewBox='0%200%20200%2030'%3E%3Cpath%20d='M20%2015H82M192%2015H118'%20stroke='%23d9a12a'%20stroke-width='1'/%3E%3Cpath%20d='M100%203l3.2%208.6%209.2.3-7.2%205.7%202.6%208.8-7.8-5-7.8%205%202.6-8.8-7.2-5.7%209.2-.3z'%20fill='%23e0a92e'/%3E%3C/svg%3E"); }
.public-invite.theme-circo { background: #fdf6ec; color: #2f2a3a; }
.public-invite.theme-circo .public-cover { background: linear-gradient(160deg, #d33b3b 0%, #a52424 100%); color: #fdf1d6; }
.public-invite.theme-circo .public-cover > div { padding: 3.2rem 1.5rem; }
.public-invite.theme-circo .public-cover > div::before,
.public-invite.theme-circo .public-cover > div::after { content: ""; display: block; width: 200px; height: 30px; margin: 0 auto; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-circo .public-cover > div::before { margin-bottom: 1.8rem; }
.public-invite.theme-circo .public-cover > div::after { margin-top: 2rem; }
.public-invite.theme-circo .public-cover p,
.public-invite.theme-circo .public-cover time { color: #f5d66c; }
.public-invite.theme-circo .public-cover a { color: #fdf1d6; opacity: .9; }
.public-invite.theme-circo .public-welcome { background: #fdf6ec; }
.public-invite.theme-circo .public-welcome::before { content: ""; display: block; width: 200px; height: 30px; margin: 0 auto 2.2rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-circo .public-welcome h2 { color: #b3242e; }
.public-invite.theme-circo .public-welcome blockquote { color: #6c5a52; }
.public-invite.theme-circo .public-details { background: linear-gradient(180deg, #2f5aa5 0%, #20407c 100%); }
.public-invite.theme-circo .public-details > p { color: #f5d66c; }
.public-invite.theme-circo .public-details::after { content: ""; display: block; width: 200px; height: 30px; margin: 2.2rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-circo .public-rsvp { background: #fbe9c9; }
.public-invite.theme-circo .public-rsvp > div > p { color: #b3242e; }
.public-invite.theme-circo .public-rsvp h2 { color: #b3242e; }
.public-invite.theme-circo .public-rsvp button { background: #d33b3b; }

/* =====================================================================
   MODELO: Mundo Doce (infantil) - pastel candy, brilho rosa
   ===================================================================== */
.theme-mundo_doce { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='26'%20viewBox='0%200%20200%2026'%3E%3Cpath%20d='M24%2013H84M192%2013H116'%20stroke='%23e07ba8'%20stroke-width='1'/%3E%3Cpath%20d='M100%203c1.4%206%203.8%208.4%209.6%209.8-5.8%201.4-8.2%203.8-9.6%209.8-1.4-6-3.8-8.4-9.6-9.8%205.8-1.4%208.2-3.8%209.6-9.8z'%20fill='%23e07ba8'/%3E%3Ccircle%20cx='84'%20cy='13'%20r='1.6'%20fill='%23e07ba8'/%3E%3Ccircle%20cx='116'%20cy='13'%20r='1.6'%20fill='%23e07ba8'/%3E%3C/svg%3E"); }
.public-invite.theme-mundo_doce { background: #fdeef5; color: #5a3a4e; }
.public-invite.theme-mundo_doce .public-cover { background: linear-gradient(160deg, #f7bfd7 0%, #bce8ec 60%, #f6dda8 100%); color: #6d3f5a; }
.public-invite.theme-mundo_doce .public-cover > div { padding: 3.2rem 1.5rem; }
.public-invite.theme-mundo_doce .public-cover > div::before,
.public-invite.theme-mundo_doce .public-cover > div::after { content: ""; display: block; width: 200px; height: 26px; margin: 0 auto; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-mundo_doce .public-cover > div::before { margin-bottom: 1.8rem; }
.public-invite.theme-mundo_doce .public-cover > div::after { margin-top: 2rem; }
.public-invite.theme-mundo_doce .public-cover h1 { color: #6d3f5a; }
.public-invite.theme-mundo_doce .public-cover p,
.public-invite.theme-mundo_doce .public-cover time { color: #a85c86; }
.public-invite.theme-mundo_doce .public-cover a { color: #6d3f5a; opacity: .85; }
.public-invite.theme-mundo_doce .public-welcome { background: #fdeef5; }
.public-invite.theme-mundo_doce .public-welcome::before { content: ""; display: block; width: 200px; height: 26px; margin: 0 auto 2.2rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-mundo_doce .public-welcome h2 { color: #b3477f; }
.public-invite.theme-mundo_doce .public-welcome blockquote { color: #8a6b7a; }
.public-invite.theme-mundo_doce .public-details { background: linear-gradient(180deg, #c86fa0 0%, #9a5aa8 100%); }
.public-invite.theme-mundo_doce .public-details > p { color: #ffe0ef; }
.public-invite.theme-mundo_doce .public-details::after { content: ""; display: block; width: 200px; height: 26px; margin: 2.2rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-mundo_doce .public-rsvp { background: #fbe0ef; }
.public-invite.theme-mundo_doce .public-rsvp > div > p { color: #b3477f; }
.public-invite.theme-mundo_doce .public-rsvp h2 { color: #b3477f; }
.public-invite.theme-mundo_doce .public-rsvp button { background: #c86fa0; }

/* =====================================================================
   MODELO: Jardim Encantado (15 anos) - verde encantado com flor rose
   ===================================================================== */
.theme-jardim_encantado { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='28'%20viewBox='0%200%20200%2028'%3E%3Cpath%20d='M22%2014H82M192%2014H118'%20stroke='%23b98aa0'%20stroke-width='1'/%3E%3Cg%20fill='%23cf9db4'%3E%3Ccircle%20cx='100'%20cy='7'%20r='3.2'/%3E%3Ccircle%20cx='107'%20cy='12'%20r='3.2'/%3E%3Ccircle%20cx='104'%20cy='20'%20r='3.2'/%3E%3Ccircle%20cx='96'%20cy='20'%20r='3.2'/%3E%3Ccircle%20cx='93'%20cy='12'%20r='3.2'/%3E%3C/g%3E%3Ccircle%20cx='100'%20cy='14'%20r='2.6'%20fill='%23e7d38f'/%3E%3C/svg%3E"); }
.public-invite.theme-jardim_encantado { background: #f1f3ec; color: #3a4a3a; }
.public-invite.theme-jardim_encantado .public-cover { background: radial-gradient(135% 100% at 50% -10%, #4a6350 0%, #33463a 60%, #24322a 100%); color: #f2e9ee; }
.public-invite.theme-jardim_encantado .public-cover > div { padding: 3.4rem 1.5rem; }
.public-invite.theme-jardim_encantado .public-cover > div::before,
.public-invite.theme-jardim_encantado .public-cover > div::after { content: ""; display: block; width: 200px; height: 28px; margin: 0 auto; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-jardim_encantado .public-cover > div::before { margin-bottom: 2rem; }
.public-invite.theme-jardim_encantado .public-cover > div::after { margin-top: 2.2rem; }
.public-invite.theme-jardim_encantado .public-cover p,
.public-invite.theme-jardim_encantado .public-cover time { color: #d7b5c4; }
.public-invite.theme-jardim_encantado .public-cover a { color: #f2e9ee; opacity: .85; }
.public-invite.theme-jardim_encantado .public-welcome { background: #f5f0f2; }
.public-invite.theme-jardim_encantado .public-welcome::before { content: ""; display: block; width: 200px; height: 28px; margin: 0 auto 2.4rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-jardim_encantado .public-welcome h2 { color: #3f5544; }
.public-invite.theme-jardim_encantado .public-welcome blockquote { color: #6e6a6f; }
.public-invite.theme-jardim_encantado .public-details { background: linear-gradient(180deg, #4a6350 0%, #33463a 100%); }
.public-invite.theme-jardim_encantado .public-details > p { color: #d7b5c4; }
.public-invite.theme-jardim_encantado .public-details::after { content: ""; display: block; width: 200px; height: 28px; margin: 2.4rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-jardim_encantado .public-rsvp { background: #efe6ec; }
.public-invite.theme-jardim_encantado .public-rsvp > div > p { color: #9a6e86; }
.public-invite.theme-jardim_encantado .public-rsvp h2 { color: #3f5544; }
.public-invite.theme-jardim_encantado .public-rsvp button { background: #4a6350; }

/* =====================================================================
   MODELO: Tropical (aniversario/cha) - verde/coral com folhagem
   ===================================================================== */
.theme-tropical { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='24'%20viewBox='0%200%20200%2024'%3E%3Cpath%20d='M26%2012H84M192%2012H116'%20stroke='%232f8f70'%20stroke-width='1'/%3E%3Cpath%20d='M100%2020c-6-8-13-8-19-2%207%204%2014%203%2019%202z'%20fill='%23e08a3f'/%3E%3Cpath%20d='M100%2020c6-8%2013-8%2019-2-7%204-14%203-19%202z'%20fill='%23e08a3f'/%3E%3Ccircle%20cx='100'%20cy='11'%20r='2.4'%20fill='%23e08a3f'/%3E%3C/svg%3E"); }
.public-invite.theme-tropical { background: #eef5f0; color: #244a3f; }
.public-invite.theme-tropical .public-cover { background: linear-gradient(160deg, #1f7d61 0%, #125240 100%); color: #eafaf3; }
.public-invite.theme-tropical .public-cover > div { padding: 3.2rem 1.5rem; }
.public-invite.theme-tropical .public-cover > div::before,
.public-invite.theme-tropical .public-cover > div::after { content: ""; display: block; width: 200px; height: 24px; margin: 0 auto; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-tropical .public-cover > div::before { margin-bottom: 2rem; }
.public-invite.theme-tropical .public-cover > div::after { margin-top: 2.2rem; }
.public-invite.theme-tropical .public-cover p,
.public-invite.theme-tropical .public-cover time { color: #f2b27f; }
.public-invite.theme-tropical .public-cover a { color: #eafaf3; opacity: .85; }
.public-invite.theme-tropical .public-welcome { background: #eef5f0; }
.public-invite.theme-tropical .public-welcome::before { content: ""; display: block; width: 200px; height: 24px; margin: 0 auto 2.4rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-tropical .public-welcome h2 { color: #1f6c54; }
.public-invite.theme-tropical .public-welcome blockquote { color: #5a7168; }
.public-invite.theme-tropical .public-details { background: linear-gradient(180deg, #1f7d61 0%, #134d3c 100%); }
.public-invite.theme-tropical .public-details > p { color: #f2b27f; }
.public-invite.theme-tropical .public-details::after { content: ""; display: block; width: 200px; height: 24px; margin: 2.4rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-tropical .public-rsvp { background: #e6f1ea; }
.public-invite.theme-tropical .public-rsvp > div > p { color: #c06a2f; }
.public-invite.theme-tropical .public-rsvp h2 { color: #1f6c54; }
.public-invite.theme-tropical .public-rsvp button { background: #1f7d61; }

/* =====================================================================
   MODELO: Boteco (aniversario) - rustico marrom/ambar
   ===================================================================== */
.theme-boteco { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='20'%20viewBox='0%200%20200%2020'%3E%3Cpath%20d='M20%2010H86M192%2010H114'%20stroke='%23b6863f'%20stroke-width='1'/%3E%3Ccircle%20cx='100'%20cy='10'%20r='5.5'%20fill='%23c5964f'/%3E%3Ccircle%20cx='100'%20cy='10'%20r='2.4'%20fill='%23241d14'/%3E%3C/svg%3E"); }
.public-invite.theme-boteco { background: #f6efe2; color: #33291f; }
.public-invite.theme-boteco .public-cover { background: linear-gradient(160deg, #3a3025 0%, #241d14 100%); color: #f3e6cf; }
.public-invite.theme-boteco .public-cover > div { padding: 3.2rem 1.5rem; }
.public-invite.theme-boteco .public-cover > div::before,
.public-invite.theme-boteco .public-cover > div::after { content: ""; display: block; width: 200px; height: 20px; margin: 0 auto; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-boteco .public-cover > div::before { margin-bottom: 2rem; }
.public-invite.theme-boteco .public-cover > div::after { margin-top: 2.2rem; }
.public-invite.theme-boteco .public-cover p,
.public-invite.theme-boteco .public-cover time { color: #d8b271; }
.public-invite.theme-boteco .public-cover a { color: #f3e6cf; opacity: .85; }
.public-invite.theme-boteco .public-welcome { background: #f6efe2; }
.public-invite.theme-boteco .public-welcome::before { content: ""; display: block; width: 200px; height: 20px; margin: 0 auto 2.4rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-boteco .public-welcome h2 { color: #4a3a26; }
.public-invite.theme-boteco .public-welcome blockquote { color: #6e6152; }
.public-invite.theme-boteco .public-details { background: linear-gradient(180deg, #3a3025 0%, #241d14 100%); }
.public-invite.theme-boteco .public-details > p { color: #d8b271; }
.public-invite.theme-boteco .public-details::after { content: ""; display: block; width: 200px; height: 20px; margin: 2.4rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-boteco .public-rsvp { background: #efe3cd; }
.public-invite.theme-boteco .public-rsvp > div > p { color: #a07636; }
.public-invite.theme-boteco .public-rsvp h2 { color: #4a3a26; }
.public-invite.theme-boteco .public-rsvp button { background: #4a3a26; }

/* =====================================================================
   MODELO: Gala (formatura/corporativo) - preto e ouro formal
   ===================================================================== */
.theme-gala { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='16'%20viewBox='0%200%20200%2016'%3E%3Cpath%20d='M6%208H84M194%208H116'%20stroke='%23c3a565'%20stroke-width='1'/%3E%3Crect%20x='94'%20y='2'%20width='12'%20height='12'%20fill='none'%20stroke='%23c3a565'%20transform='rotate(45%20100%208)'/%3E%3C/svg%3E"); }
.public-invite.theme-gala { background: #f4f1ea; color: #16181d; }
.public-invite.theme-gala .public-cover { background: linear-gradient(160deg, #1a2130 0%, #0c0f17 100%); color: #f1ead6; }
.public-invite.theme-gala .public-cover > div { padding: 3.4rem 1.5rem; }
.public-invite.theme-gala .public-cover > div::before,
.public-invite.theme-gala .public-cover > div::after { content: ""; display: block; width: 200px; height: 16px; margin: 0 auto; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-gala .public-cover > div::before { margin-bottom: 2.2rem; }
.public-invite.theme-gala .public-cover > div::after { margin-top: 2.4rem; }
.public-invite.theme-gala .public-cover p,
.public-invite.theme-gala .public-cover time { color: #cbb06e; }
.public-invite.theme-gala .public-cover a { color: #f1ead6; opacity: .85; }
.public-invite.theme-gala .public-welcome { background: #faf7ef; }
.public-invite.theme-gala .public-welcome::before { content: ""; display: block; width: 200px; height: 16px; margin: 0 auto 2.4rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-gala .public-welcome h2 { color: #1a1d24; }
.public-invite.theme-gala .public-welcome blockquote { color: #6b6656; }
.public-invite.theme-gala .public-details { background: #12151d; }
.public-invite.theme-gala .public-details > p { color: #cbb06e; }
.public-invite.theme-gala .public-details::after { content: ""; display: block; width: 200px; height: 16px; margin: 2.4rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-gala .public-rsvp { background: #f4f1ea; }
.public-invite.theme-gala .public-rsvp > div > p { color: #9c8449; }
.public-invite.theme-gala .public-rsvp h2 { color: #1a1d24; }
.public-invite.theme-gala .public-rsvp button { background: #12151d; }

/* =====================================================================
   MODELO: Corporativo (evento corporativo) - navy/aco, limpo
   ===================================================================== */
.theme-corporativo { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='14'%20viewBox='0%200%20200%2014'%3E%3Cpath%20d='M40%207H92M160%207H108'%20stroke='%236f92b0'%20stroke-width='1'/%3E%3Crect%20x='96'%20y='3'%20width='8'%20height='8'%20fill='%236f92b0'/%3E%3C/svg%3E"); }
.public-invite.theme-corporativo { background: #eef1f4; color: #17222f; }
.public-invite.theme-corporativo .public-cover { background: linear-gradient(160deg, #163049 0%, #0e1f30 100%); color: #eaf1f7; }
.public-invite.theme-corporativo .public-cover > div { padding: 3rem 1.5rem; }
.public-invite.theme-corporativo .public-cover > div::after { content: ""; display: block; width: 200px; height: 14px; margin: 2.2rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-corporativo .public-cover p,
.public-invite.theme-corporativo .public-cover time { color: #9db8cf; letter-spacing: .24em; }
.public-invite.theme-corporativo .public-cover a { color: #eaf1f7; opacity: .82; }
.public-invite.theme-corporativo .public-welcome { background: #ffffff; }
.public-invite.theme-corporativo .public-welcome::before { content: ""; display: block; width: 200px; height: 14px; margin: 0 auto 2.6rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-corporativo .public-welcome h2 { color: #163049; }
.public-invite.theme-corporativo .public-welcome blockquote { color: #5d6b78; }
.public-invite.theme-corporativo .public-details { background: #14283d; }
.public-invite.theme-corporativo .public-details > p { color: #9db8cf; }
.public-invite.theme-corporativo .public-details::after { content: ""; display: block; width: 200px; height: 14px; margin: 2.6rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-corporativo .public-rsvp { background: #eef1f4; }
.public-invite.theme-corporativo .public-rsvp > div > p { color: #3f6c93; }
.public-invite.theme-corporativo .public-rsvp h2 { color: #163049; }
.public-invite.theme-corporativo .public-rsvp button { background: #163049; }

/* =====================================================================
   MODELO: Nuvens (cha de bebe) - ceu suave, nuvem
   ===================================================================== */
.theme-nuvens { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='24'%20viewBox='0%200%20200%2024'%3E%3Cpath%20d='M24%2015H80M192%2015H120'%20stroke='%237fb4cf'%20stroke-width='1'/%3E%3Cpath%20d='M88%2018c-4%200-6-3-6-6%200-3%203-5%206-5%201-3%204-5%207-5%204%200%207%203%207%207%203%200%205%202%205%205%200%203-2%204-5%204z'%20fill='%237fb4cf'/%3E%3C/svg%3E"); }
.public-invite.theme-nuvens { background: #f4f9fc; color: #2f4656; }
.public-invite.theme-nuvens .public-cover { background: linear-gradient(160deg, #bfe0ee 0%, #e9f4f8 60%, #f8f7f1 100%); color: #35566a; }
.public-invite.theme-nuvens .public-cover > div { padding: 3.2rem 1.5rem; }
.public-invite.theme-nuvens .public-cover > div::before,
.public-invite.theme-nuvens .public-cover > div::after { content: ""; display: block; width: 200px; height: 24px; margin: 0 auto; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-nuvens .public-cover > div::before { margin-bottom: 2rem; }
.public-invite.theme-nuvens .public-cover > div::after { margin-top: 2.2rem; }
.public-invite.theme-nuvens .public-cover h1 { color: #35566a; }
.public-invite.theme-nuvens .public-cover p,
.public-invite.theme-nuvens .public-cover time { color: #6f96ac; }
.public-invite.theme-nuvens .public-cover a { color: #35566a; opacity: .8; }
.public-invite.theme-nuvens .public-welcome { background: #f4f9fc; }
.public-invite.theme-nuvens .public-welcome::before { content: ""; display: block; width: 200px; height: 24px; margin: 0 auto 2.4rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-nuvens .public-welcome h2 { color: #3a6079; }
.public-invite.theme-nuvens .public-welcome blockquote { color: #6d8291; }
.public-invite.theme-nuvens .public-details { background: linear-gradient(180deg, #8fc0d8 0%, #6ba4c0 100%); }
.public-invite.theme-nuvens .public-details > p { color: #eaf6fb; }
.public-invite.theme-nuvens .public-details::after { content: ""; display: block; width: 200px; height: 24px; margin: 2.4rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-nuvens .public-rsvp { background: #e7f2f7; }
.public-invite.theme-nuvens .public-rsvp > div > p { color: #3a6079; }
.public-invite.theme-nuvens .public-rsvp h2 { color: #3a6079; }
.public-invite.theme-nuvens .public-rsvp button { background: #6ba4c0; }

/* =====================================================================
   MODELO: Bosque do Bebe (cha de bebe) - verde sage/madeira, pinheiro
   ===================================================================== */
.theme-bosque_bebe { --orn: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='200'%20height='26'%20viewBox='0%200%20200%2026'%3E%3Cpath%20d='M24%2014H82M192%2014H118'%20stroke='%236f8a5e'%20stroke-width='1'/%3E%3Cpath%20d='M100%203l7%209h-3.5l6%208H90.5l6-8H93z'%20fill='%236f8a5e'/%3E%3Crect%20x='97.5'%20y='20'%20width='5'%20height='4'%20fill='%235a6b45'/%3E%3C/svg%3E"); }
.public-invite.theme-bosque_bebe { background: #f1f2ea; color: #3a4230; }
.public-invite.theme-bosque_bebe .public-cover { background: linear-gradient(160deg, #788d6b 0%, #52603f 100%); color: #f2f0e2; }
.public-invite.theme-bosque_bebe .public-cover > div { padding: 3.2rem 1.5rem; }
.public-invite.theme-bosque_bebe .public-cover > div::before,
.public-invite.theme-bosque_bebe .public-cover > div::after { content: ""; display: block; width: 200px; height: 26px; margin: 0 auto; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-bosque_bebe .public-cover > div::before { margin-bottom: 2rem; }
.public-invite.theme-bosque_bebe .public-cover > div::after { margin-top: 2.2rem; }
.public-invite.theme-bosque_bebe .public-cover p,
.public-invite.theme-bosque_bebe .public-cover time { color: #d6c5a2; }
.public-invite.theme-bosque_bebe .public-cover a { color: #f2f0e2; opacity: .85; }
.public-invite.theme-bosque_bebe .public-welcome { background: #f4f4ea; }
.public-invite.theme-bosque_bebe .public-welcome::before { content: ""; display: block; width: 200px; height: 26px; margin: 0 auto 2.4rem; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-bosque_bebe .public-welcome h2 { color: #4c5a3a; }
.public-invite.theme-bosque_bebe .public-welcome blockquote { color: #6a6f5a; }
.public-invite.theme-bosque_bebe .public-details { background: linear-gradient(180deg, #788d6b 0%, #52603f 100%); }
.public-invite.theme-bosque_bebe .public-details > p { color: #d6c5a2; }
.public-invite.theme-bosque_bebe .public-details::after { content: ""; display: block; width: 200px; height: 26px; margin: 2.4rem auto 0; background: var(--orn) center/contain no-repeat; }
.public-invite.theme-bosque_bebe .public-rsvp { background: #eaeada; }
.public-invite.theme-bosque_bebe .public-rsvp > div > p { color: #8a7a4f; }
.public-invite.theme-bosque_bebe .public-rsvp h2 { color: #4c5a3a; }
.public-invite.theme-bosque_bebe .public-rsvp button { background: #52603f; }
