/* OasisCMS — estilos base dos blocos (site e editor). Temas podem sobrescrever. */

.oasis-content { --block-gap: 1.25em; --accent-block: #0d9488; line-height: 1.7; overflow-wrap: break-word; }
.oasis-content > * { margin-block: 0 var(--block-gap); }
.oasis-content > *:last-child { margin-bottom: 0; }

.has-text-align-left { text-align: left; }
.has-text-align-center { text-align: center; }
.has-text-align-right { text-align: right; }

/* Imagem */
.oasis-block-image { margin-inline: 0; }
.oasis-block-image img { display: block; max-width: 100%; height: auto; border-radius: 4px; }
.oasis-block-image figcaption,
.oasis-block-table figcaption,
.oasis-block-embed figcaption { font-size: .875em; color: #6b7280; text-align: center; margin-top: .5em; }
.oasis-block-image.aligncenter { text-align: center; }
.oasis-block-image.aligncenter img { margin-inline: auto; }
.oasis-block-image.alignleft { float: left; margin: .3em 1.5em 1em 0; max-width: 50%; }
.oasis-block-image.alignright { float: right; margin: .3em 0 1em 1.5em; max-width: 50%; }
.oasis-block-image.alignwide { margin-inline: calc(-1 * min(8vw, 120px)); }
.oasis-block-image.alignfull { margin-inline: calc(50% - 50vw); }
.oasis-block-image.alignfull img { border-radius: 0; width: 100vw; }

/* Citação */
.oasis-block-quote { border-left: 4px solid var(--accent-block); margin-inline: 0; padding: .25em 0 .25em 1.25em; font-size: 1.1em; }
.oasis-block-quote p { margin: 0; }
.oasis-block-quote cite { display: block; margin-top: .6em; font-size: .85em; font-style: normal; color: #6b7280; }
.oasis-block-quote cite::before { content: "— "; }

/* Código */
.oasis-block-code { background: #0f1f1e; color: #e2eeec; padding: 1em 1.25em; border-radius: 8px; overflow-x: auto; font: .9em/1.6 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre; }
.oasis-block-code code { background: none; border: 0; padding: 0; color: inherit; font: inherit; }

/* Listas */
.oasis-block-list { padding-left: 1.5em; }
.oasis-block-list li + li { margin-top: .3em; }

/* Botão */
.oasis-block-buttons { display: flex; flex-wrap: wrap; gap: .75em; }
.oasis-block-buttons.has-text-align-center { justify-content: center; }
.oasis-block-buttons.has-text-align-right { justify-content: flex-end; }
.oasis-button { display: inline-block; background: var(--accent-block); color: #fff !important; padding: .7em 1.4em; border-radius: 999px; font-weight: 600; text-decoration: none !important; line-height: 1.3; }
.oasis-button:hover { filter: brightness(1.08); }

/* Separador e espaçador */
.oasis-block-separator { border: 0; border-top: 2px solid currentColor; opacity: .2; width: 120px; margin-inline: auto; }
.oasis-block-spacer.is-sm { height: 24px; }
.oasis-block-spacer.is-md { height: 48px; }
.oasis-block-spacer.is-lg { height: 96px; }
.oasis-block-spacer.is-xl { height: 160px; }

/* Tabela */
.oasis-block-table { margin-inline: 0; overflow-x: auto; }
.oasis-block-table table { width: 100%; border-collapse: collapse; font-size: .95em; }
.oasis-block-table th, .oasis-block-table td { border: 1px solid rgba(127, 127, 127, .35); padding: .55em .75em; text-align: left; vertical-align: top; }
.oasis-block-table thead th { background: rgba(127, 127, 127, .1); }

/* Vídeo incorporado */
.oasis-block-embed { margin-inline: 0; }
.oasis-embed-frame { position: relative; aspect-ratio: 16 / 9; }
.oasis-embed-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; }

/* Últimos posts */
.oasis-block-latest-posts { list-style: none; padding: 0; }
.oasis-block-latest-posts li { padding: .5em 0; border-bottom: 1px solid rgba(127, 127, 127, .2); }
.oasis-block-latest-posts time { display: block; font-size: .85em; color: #6b7280; }
.oasis-block-latest-posts p { margin: .25em 0 0; font-size: .95em; }

@media (max-width: 640px) {
    .oasis-block-image.alignleft, .oasis-block-image.alignright { float: none; margin-inline: 0; max-width: 100%; }
    .oasis-block-image.alignwide { margin-inline: 0; }
}

/* Galeria */
.oasis-block-gallery { margin-inline: 0; }
.oasis-gallery { list-style: none; margin: 0; padding: 0; display: grid; gap: .6em; grid-template-columns: repeat(3, 1fr); }
.oasis-gallery.columns-1, .columns-1 > .oasis-gallery { grid-template-columns: 1fr; }
.oasis-gallery.columns-2, .columns-2 > .oasis-gallery { grid-template-columns: repeat(2, 1fr); }
.oasis-gallery.columns-3, .columns-3 > .oasis-gallery { grid-template-columns: repeat(3, 1fr); }
.oasis-gallery.columns-4, .columns-4 > .oasis-gallery { grid-template-columns: repeat(4, 1fr); }
.oasis-gallery.columns-5, .columns-5 > .oasis-gallery { grid-template-columns: repeat(5, 1fr); }
.oasis-gallery.columns-6, .columns-6 > .oasis-gallery { grid-template-columns: repeat(6, 1fr); }
.oasis-gallery figure { margin: 0; height: 100%; }
.oasis-gallery img { display: block; width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 4px; }

/* Arquivo, vídeo e áudio */
.oasis-block-file { display: flex; align-items: center; flex-wrap: wrap; gap: .75em; padding: .9em 1.1em; border: 1px solid rgba(127, 127, 127, .3); border-radius: 10px; }
.oasis-block-file > a:first-child, .oasis-block-file .file-name { flex: 1; font-weight: 600; word-break: break-word; }
.oasis-file-button { padding: .5em 1.1em; font-size: .9em; }
.oasis-block-video, .oasis-block-audio { margin-inline: 0; }
.oasis-block-video video { display: block; width: 100%; height: auto; border-radius: 6px; background: #000; }
.oasis-block-audio audio { display: block; width: 100%; }
.oasis-block-video figcaption, .oasis-block-audio figcaption { font-size: .875em; color: #6b7280; text-align: center; margin-top: .5em; }

@media (max-width: 640px) {
    .oasis-gallery.columns-4, .columns-4 > .oasis-gallery, .oasis-gallery.columns-5, .columns-5 > .oasis-gallery, .oasis-gallery.columns-6, .columns-6 > .oasis-gallery { grid-template-columns: repeat(3, 1fr); }
    .oasis-gallery.columns-3, .columns-3 > .oasis-gallery { grid-template-columns: repeat(2, 1fr); }
}

/* ---------------------------------------------------------------- Formulários */
.oasis-form-wrap { --form-accent: var(--accent, var(--accent-block, #0d9488)); --form-line: color-mix(in srgb, currentColor 28%, transparent); margin-block: var(--block-gap, 1.25em); }
.oasis-form { display: flex; flex-wrap: wrap; gap: 1rem 1.25rem; }
.oasis-form-wrap [hidden], .oasis-form[hidden] { display: none !important; }
.oasis-form-consent .oasis-form-choice { font-weight: 400; }
.oasis-form-field { flex: 1 1 100%; min-width: 0; margin: 0; padding: 0; border: 0; }
.oasis-form-field.width-half { flex: 1 1 calc(50% - .65rem); min-width: 14rem; }
.oasis-form-field > label, .oasis-form-field > legend { display: block; font-weight: 600; margin-bottom: .35rem; padding: 0; }
.oasis-form-field input:not([type=checkbox]):not([type=radio]), .oasis-form-field select, .oasis-form-field textarea {
    width: 100%; box-sizing: border-box; padding: .65rem .8rem; font: inherit; color: inherit; background: transparent;
    border: 1px solid var(--form-line); border-radius: 8px; transition: border-color .15s, box-shadow .15s; }
.oasis-form-field textarea { min-height: 8rem; resize: vertical; }
.oasis-form-field select option { color: #111; }
.oasis-form-field :is(input, select, textarea):focus { outline: none; border-color: var(--form-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--form-accent) 25%, transparent); }
.oasis-form-choice { display: flex; align-items: flex-start; gap: .5rem; font-weight: 400; margin: .25rem 0; cursor: pointer; }
.oasis-form-choice input { margin-top: .3em; accent-color: var(--form-accent); }
.oasis-form-required { color: #c0262d; }
.oasis-form-help { margin: .3rem 0 0; font-size: .875em; opacity: .75; }
.oasis-form-error { margin: .3rem 0 0; font-size: .875em; color: #c0262d; font-weight: 600; }
.oasis-form-field.has-error :is(input, select, textarea) { border-color: #c0262d; }
.oasis-form-errors { flex: 1 1 100%; padding: .7rem 1rem; border-left: 4px solid #c0262d; background: color-mix(in srgb, #c0262d 10%, transparent); border-radius: 6px; }
.oasis-form-errors p { margin: 0; }
.oasis-form-success { padding: 1rem 1.25rem; border-left: 4px solid var(--form-accent); background: color-mix(in srgb, var(--form-accent) 12%, transparent); border-radius: 6px; }
.oasis-form-actions { flex: 1 1 100%; }
.oasis-form-submit { padding: .75rem 1.6rem; font: inherit; font-weight: 600; color: #fff; background: var(--form-accent); border: 0; border-radius: 8px; cursor: pointer; }
.oasis-form-submit:hover { filter: brightness(1.08); }
.oasis-form-submit:disabled { opacity: .6; cursor: progress; }
.oasis-form-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.oasis-form-missing { padding: .75rem 1rem; border: 1px dashed #c0262d; border-radius: 6px; }

/* ---------------------------------------------------------------- Layout: colunas */
.oasis-block-columns { display: grid; gap: var(--columns-gap, 2rem); margin-block: var(--block-gap, 1.25em); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.oasis-block-columns.has-gap-sm { --columns-gap: 1rem; }
.oasis-block-columns.has-gap-lg { --columns-gap: 3.5rem; }
.oasis-block-columns.is-layout-2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.oasis-block-columns.is-layout-1-2 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.oasis-block-columns.is-layout-1-1-1 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.oasis-block-columns.is-layout-1-2-1 { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) minmax(0, 1fr); }
.oasis-block-columns.is-layout-1-1-1-1 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.oasis-block-column { display: flex; flex-direction: column; min-width: 0; }
.oasis-block-column > :first-child, .oasis-block-group > :first-child, .oasis-media-text-content > :first-child { margin-top: 0; }
.oasis-block-column > :last-child, .oasis-block-group > :last-child, .oasis-media-text-content > :last-child { margin-bottom: 0; }
.oasis-block-column.is-valign-center { justify-content: center; }
.oasis-block-column.is-valign-bottom { justify-content: flex-end; }
@media (max-width: 781px) {
    .oasis-block-columns.is-layout-1-1-1-1 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .oasis-block-columns.is-stacked-mobile:not(.is-layout-1-1-1-1) { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) { .oasis-block-columns.is-stacked-mobile { grid-template-columns: minmax(0, 1fr); } }

/* ---------------------------------------------------------------- Layout: seção */
.oasis-block-group { margin-block: var(--block-gap, 1.25em); box-sizing: border-box; display: flow-root; }
.oasis-block-group.has-padding-sm { padding: 1rem 1.25rem; }
.oasis-block-group.has-padding-md { padding: 2rem 1.75rem; }
.oasis-block-group.has-padding-lg { padding: 3.5rem 2rem; }
.oasis-block-group.has-padding-xl { padding: 5.5rem 2rem; }
.oasis-block-group.has-background { border-radius: 10px; }
.oasis-block-group.is-width-full.has-background { border-radius: 0; }
.oasis-block-group[style*="min-height"] { display: flex; flex-direction: column; justify-content: center; }
.oasis-block-group.is-width-wide { width: min(100vw - 2rem, 72rem); max-width: none; margin-inline: 50%; transform: translateX(-50%); }
.oasis-block-group.is-width-full { width: 100vw; max-width: none; margin-inline: 50%; transform: translateX(-50%); }
.oasis-block-group.is-width-full > *, .oasis-block-group.is-width-wide > * { max-width: var(--content-width, 46rem); margin-inline: auto; }
.oasis-block-group.is-width-full > .oasis-block-columns, .oasis-block-group.is-width-wide > .oasis-block-columns, .oasis-block-group.is-width-full > .oasis-block-media-text { max-width: 72rem; }
.oasis-block-group .oasis-button { color: inherit; }

/* ---------------------------------------------------------------- Layout: mídia e texto */
.oasis-block-media-text { display: grid; grid-template-columns: var(--oasis-media-width, 50%) minmax(0, 1fr); gap: 2.5rem; align-items: center; margin-block: var(--block-gap, 1.25em); }
.oasis-block-media-text.is-media-right { grid-template-columns: minmax(0, 1fr) var(--oasis-media-width, 50%); }
.oasis-block-media-text.is-media-right .oasis-media-text-media { order: 2; }
.oasis-block-media-text.is-valign-top { align-items: start; }
.oasis-block-media-text.is-valign-bottom { align-items: end; }
.oasis-media-text-media { margin: 0; }
.oasis-media-text-media img { display: block; width: 100%; height: auto; border-radius: 8px; }
@media (max-width: 700px) {
    .oasis-block-media-text.is-stacked-mobile { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
    .oasis-block-media-text.is-stacked-mobile .oasis-media-text-media { order: 0; }
}
/* 100vw inclui a barra de rolagem: evita a rolagem lateral nas páginas com seções largas */
html:has(.oasis-block-group.is-width-full, .oasis-block-group.is-width-wide) { overflow-x: clip; }
