/*
Theme Name: Bruno Mafra Fotografia
Theme URI: https://brunomafrafoto.com
Author: Bruno Mafra
Description: Tema sob medida para brunomafrafoto.com. Fotografia de gastronomia, publicidade e still, com mentoria Método VAP. Modo claro e escuro, menu para celular e WhatsApp flutuante.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: brunomafrafoto
*/

/* ---------- Cores (claro / escuro) ---------- */
:root {
	--bm-base: #FFFFFF;
	--bm-surface: #F5F3EF;
	--bm-photo: #ECEAE6;
	--bm-line: #E6E3DE;
	--bm-line-strong: #D4D0CA;
	--bm-contrast: #2A2A2D;
	--bm-text: #3E3E41;
	--bm-muted: #5E5D5A;
	--bm-accent: #C7432A;
	--bm-accent-text: #C7432A;
	--bm-inverse: #2A2A2D;
	--bm-inverse-text: #F2F0EC;
	--bm-inverse-muted: #C9C6C0;
	--bm-inverse-line: #55545A;
	--bm-card: #FFFFFF;
	--bm-wrap: 1240px;
	--bm-pad: 24px;
	--bm-sec: clamp(64px, 9vw, 96px);
	color-scheme: light;
}
html[data-theme="dark"] {
	--bm-base: #141414;
	--bm-surface: #1D1C1A;
	--bm-photo: #24231F;
	--bm-line: #2F2D2A;
	--bm-line-strong: #46433F;
	--bm-contrast: #F4F2EE;
	--bm-text: #D8D5CF;
	--bm-muted: #A9A59E;
	--bm-accent: #D94E33;
	--bm-accent-text: #F07A5F;
	--bm-inverse: #0B0B0B;
	--bm-inverse-text: #F2F0EC;
	--bm-inverse-muted: #B9B5AE;
	--bm-inverse-line: #3A3936;
	--bm-card: #1D1C1A;
	color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
	html:not([data-theme]) {
		--bm-base: #141414; --bm-surface: #1D1C1A; --bm-photo: #24231F; --bm-line: #2F2D2A; --bm-line-strong: #46433F;
		--bm-contrast: #F4F2EE; --bm-text: #D8D5CF; --bm-muted: #A9A59E; --bm-accent: #D94E33; --bm-accent-text: #F07A5F;
		--bm-inverse: #0B0B0B; --bm-inverse-text: #F2F0EC; --bm-inverse-muted: #B9B5AE; --bm-inverse-line: #3A3936; --bm-card: #1D1C1A;
		color-scheme: dark;
	}
}

body { background: var(--bm-base); color: var(--bm-text); -webkit-font-smoothing: antialiased; }
a { color: var(--bm-contrast); text-underline-offset: 3px; }
a:hover { color: var(--bm-accent-text); }
img { max-width: 100%; height: auto; }
:focus-visible { outline: 2px solid var(--bm-accent); outline-offset: 3px; }
.wp-site-blocks { padding: 0; }
.wp-site-blocks > * { margin-block: 0 !important; }

/* ---------- Estrutura ---------- */
.bm-content > *,
.bm-main > * { margin-block: 0 !important; }
.bm-wrap { max-width: var(--bm-wrap); margin-inline: auto !important; padding-inline: var(--bm-pad); box-sizing: border-box; width: 100%; }
.bm-wrap--narrow { max-width: 908px; }
.bm-sec { padding-block: var(--bm-sec); }
.bm-sec--surface { background: var(--bm-surface); }
.bm-sec--line { border-top: 1px solid var(--bm-line); }
.bm-sec--dark { background: var(--bm-inverse); color: var(--bm-inverse-text); }
.bm-sec--dark :is(h1, h2, h3, a:not(.wp-block-button__link)) { color: #FFFFFF; }
.bm-sec--dark p, .bm-sec--dark li { color: var(--bm-inverse-text); }
.bm-sec--dark .bm-muted { color: var(--bm-inverse-muted); }
.bm-sec--accent { background: var(--bm-accent); color: #FFFFFF; }
.bm-sec--accent :is(h1, h2, h3, p) { color: #FFFFFF; }

.bm-eyebrow { font-size: 0.8125rem !important; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 600; color: var(--bm-accent-text); margin-bottom: 0.9rem !important; }
.bm-eyebrow--plain { color: var(--bm-text); }
.bm-lead { font-size: 1.1875rem; font-weight: 300; max-width: 560px; }
.bm-muted, .bm-proof { color: var(--bm-muted); font-size: 0.9375rem; }
.bm-sec > .bm-wrap > h2 + * { margin-top: 1rem; }
.bm-gap-lg { margin-top: 2.75rem !important; }

/* ---------- Cabeçalho ---------- */
.bm-site-header { position: sticky; top: 0; z-index: 50; background: var(--bm-base); border-bottom: 1px solid var(--bm-line); }
.admin-bar .bm-site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .bm-site-header { top: 0; } }
.bm-header__in { display: flex !important; align-items: center; justify-content: space-between; gap: 18px; max-width: var(--bm-wrap); margin-inline: auto; padding: 12px var(--bm-pad); box-sizing: border-box; }
.bm-header__in > * { margin: 0 !important; }
.bm-header .wp-block-site-logo img { width: 190px; height: auto; display: block; }
html[data-theme="dark"] .wp-block-site-logo img,
html[data-theme="dark"] .bm-logo-invert { filter: invert(1) brightness(1.05); }
@media (prefers-color-scheme: dark) { html:not([data-theme]) .wp-block-site-logo img { filter: invert(1) brightness(1.05); } }
.bm-nav { margin-left: auto !important; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.bm-nav .wp-block-navigation__container { gap: 24px; }
.bm-nav .wp-block-navigation-item__content { color: var(--bm-text); text-decoration: none; padding-block: 4px; border-bottom: 2px solid transparent; }
.bm-nav .wp-block-navigation-item__content:hover,
.bm-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--bm-contrast); border-bottom-color: var(--bm-accent); }
.bm-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--bm-base) !important; color: var(--bm-contrast) !important; padding: 24px; }
.bm-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 22px; font-size: 1.25rem; }
.bm-nav .wp-block-navigation__responsive-container-open,
.bm-nav .wp-block-navigation__responsive-container-close { color: var(--bm-contrast); }
.bm-nav .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }
.bm-theme-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid var(--bm-line-strong); background: transparent; color: var(--bm-contrast); cursor: pointer; padding: 0; }
.bm-theme-toggle:hover { border-color: var(--bm-contrast); }
.bm-theme-toggle svg { width: 20px; height: 20px; }
.bm-theme-toggle .bm-icon-sun { display: none; }
html[data-theme="dark"] .bm-theme-toggle .bm-icon-sun { display: block; }
html[data-theme="dark"] .bm-theme-toggle .bm-icon-moon { display: none; }
.bm-header__cta .wp-block-button__link { padding: 0.8rem 1.1rem; font-size: 0.875rem; }
@media (max-width: 900px) {
	.bm-header__in { gap: 10px; }
	.bm-header .wp-block-site-logo img { width: 150px; }
	.bm-header__cta { display: none !important; }
}

/* ---------- Botões ---------- */
.wp-block-button__link { text-decoration: none; transition: filter .15s ease; }
.wp-block-button__link:hover { filter: brightness(0.92); color: #FFFFFF; }
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--bm-contrast); border: 1px solid var(--bm-contrast); padding: calc(1rem - 1px) calc(1.6rem - 1px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--bm-contrast); color: var(--bm-base); filter: none; }
.bm-btn-light > .wp-block-button__link { background: #FFFFFF !important; color: #2A2A2D !important; }
.wp-block-buttons { gap: 12px; }

/* ---------- Início ---------- */
.bm-hero { padding-block: 40px 72px; }
.bm-hero__cols { gap: 40px !important; align-items: center !important; }
.bm-hero h1 { margin-top: 0; }
.bm-hero .wp-block-buttons { margin-top: 2rem; }
.bm-mosaic { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: 1fr 1fr; gap: 8px !important; }
.bm-mosaic > * { margin: 0 !important; }
.bm-mosaic > figure:first-child { grid-column: span 2; grid-row: span 2; }
.bm-mosaic figure, .bm-mosaic img { width: 100%; height: 100%; }
.bm-mosaic img { object-fit: cover; min-height: 200px; display: block; }
.bm-mosaic > figure:first-child img { min-height: 420px; }
@media (max-width: 781px) { .bm-mosaic > figure:first-child img { min-height: 300px; } .bm-mosaic img { min-height: 140px; } }

.bm-clients { border-top: 1px solid var(--bm-line); border-bottom: 1px solid var(--bm-line); padding-block: 22px; }
.bm-clients .bm-wrap { display: flex !important; flex-wrap: wrap; align-items: baseline; gap: 10px 28px; }
.bm-clients .bm-wrap > * { margin: 0 !important; }
.bm-clients__label { font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--bm-muted); }
.bm-clients__list { font-weight: 700; font-size: 1.125rem; color: var(--bm-contrast); word-spacing: 0.15em; }

/* Galeria com filtros (Gastronomia) */
.bm-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 1.5rem; }
.bm-filters button { font: inherit; font-size: 0.875rem; min-height: 44px; padding: 9px 15px; border: 1px solid var(--bm-line-strong); background: var(--bm-base); color: var(--bm-text); cursor: pointer; }
.bm-filters button:hover { border-color: var(--bm-contrast); }
.bm-filters button[aria-pressed="true"] { background: var(--bm-contrast); border-color: var(--bm-contrast); color: var(--bm-base); }
.bm-filtro { columns: 3 280px; column-gap: 8px; margin-top: 2rem !important; }
.bm-filtro > .wp-block-gallery { display: contents !important; }
.bm-filtro > .wp-block-gallery[hidden] { display: none !important; }
.bm-filtro .blocks-gallery-caption { display: none; }
.bm-filtro figure.wp-block-image,
.wp-block-gallery.bm-masonry figure.wp-block-image { width: 100% !important; margin: 0 0 8px !important; break-inside: avoid; display: block; background: var(--bm-photo); }
.bm-filtro figure.wp-block-image img,
.wp-block-gallery.bm-masonry figure.wp-block-image img { width: 100%; height: auto !important; display: block; object-fit: initial !important; }
.wp-block-gallery.bm-masonry { display: block !important; columns: 3 300px; column-gap: 8px; margin-top: 3rem !important; }
.wp-block-gallery.bm-masonry .blocks-gallery-caption { display: none; }

.bm-pillars { gap: 32px !important; margin-top: 2.75rem !important; }
.bm-pillars h3 { margin: 0 0 0.5rem; font-size: 1.375rem; }
.bm-pillars p { margin: 0; }

.bm-steps { list-style: none; padding: 0; margin: 2.75rem 0 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; counter-reset: bm; }
.bm-steps li { counter-increment: bm; border-top: 2px solid var(--bm-contrast); padding-top: 16px; margin: 0; }
.bm-steps li::before { content: counter(bm, decimal-leading-zero); display: block; font-size: 0.8125rem; letter-spacing: 0.14em; font-weight: 700; color: var(--bm-accent-text); margin-bottom: 8px; }
.bm-steps strong { display: block; font-size: 1.1875rem; color: var(--bm-contrast); margin-bottom: 4px; }
.bm-sec--surface .bm-steps li { border-top-color: var(--bm-contrast); }

.bm-plans { gap: 16px !important; margin-top: 2.75rem !important; }
.bm-plan { border: 1px solid var(--bm-inverse-line); padding: 36px !important; box-sizing: border-box; height: 100%; }
.bm-plan > * { margin-block: 0 !important; }
.bm-plan > * + * { margin-top: 0.9rem !important; }
.bm-plan--featured { background: var(--bm-card); border-color: var(--bm-card); }
.bm-sec--dark .bm-plan--featured :is(h3, p, li) { color: var(--bm-text); }
.bm-sec--dark .bm-plan--featured h3, .bm-sec--dark .bm-plan--featured .bm-price { color: var(--bm-contrast); }
.bm-plan h3 { font-size: 1.75rem; }
.bm-plan ul { padding-left: 1.2rem; }
.bm-plan li + li { margin-top: 6px; }
.bm-price { font-weight: 700; font-size: 1.125rem; }
.bm-tag { display: inline-block; background: var(--bm-accent); color: #FFFFFF !important; font-size: 0.75rem !important; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; padding: 4px 10px; }
.bm-sec--dark .bm-note { color: var(--bm-inverse-muted); font-size: 0.9375rem; margin-top: 1.75rem !important; }

.bm-quotes { gap: 16px !important; }
.bm-quotes .wp-block-quote { border: 0; border-top: 2px solid var(--bm-contrast); margin: 0; padding: 20px 0 0; }
.bm-quotes .wp-block-quote p { font-size: 1.3125rem; font-weight: 300; line-height: 1.45; color: var(--bm-contrast); }
.bm-quotes .wp-block-quote cite { font-style: normal; font-size: 0.875rem; color: var(--bm-muted); }

.bm-split { gap: 40px !important; align-items: center !important; }
.bm-sobre { gap: 48px !important; align-items: center !important; }
.bm-sobre .wp-block-image img { width: 100%; max-width: 460px; aspect-ratio: 1 / 1; object-fit: contain; }

.bm-faq .wp-block-details { border-bottom: 1px solid var(--bm-line); padding: 18px 0; margin: 0 !important; }
.bm-faq .wp-block-details summary { cursor: pointer; font-weight: 700; color: var(--bm-contrast); }
.bm-faq .wp-block-details summary + * { margin-top: 10px; }
.bm-faq h2 { font-size: 2rem; margin-bottom: 1.25rem; }

.bm-cta__cols { align-items: center !important; gap: 28px !important; }
.bm-cta h2 { font-size: clamp(2.2rem, 5vw, 4rem); letter-spacing: -0.03em; margin: 0; }
.bm-sec--dark .bm-cta h2, .bm-sec--dark.bm-cta h2 { font-size: clamp(1.9rem, 4vw, 3rem); }
.bm-cta .wp-block-buttons { justify-content: flex-end; }
@media (max-width: 781px) { .bm-cta .wp-block-buttons { justify-content: flex-start; } }

/* ---------- Mentoria ---------- */
.bm-pains { list-style: none; padding: 0; margin: 2.75rem 0 0 !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.bm-pains li { border-top: 1px solid var(--bm-inverse-line); padding-top: 16px; margin: 0; }
.bm-vap { gap: 16px !important; margin-top: 3rem !important; }
.bm-vap > .wp-block-column { background: var(--bm-surface); padding: 32px; box-sizing: border-box; }
.bm-vap > .wp-block-column > * { margin-block: 0 !important; }
.bm-vap > .wp-block-column > * + * { margin-top: 0.75rem !important; }
.bm-letter { font-size: 3.5rem !important; line-height: 1 !important; font-weight: 800; color: var(--bm-accent-text); }
.bm-vap ul { padding-left: 1.2rem; font-size: 1rem; }
.bm-two { gap: 48px !important; }
.bm-two h2 { font-size: clamp(1.9rem, 3.6vw, 2.75rem); }
.bm-two ul { padding-left: 1.2rem; }
.bm-two li + li { margin-top: 10px; }
.bm-price-card { background: var(--bm-card); color: var(--bm-text); padding: 36px !important; box-sizing: border-box; }
.bm-price-card > * { margin-block: 0 !important; }
.bm-price-card > * + * { margin-top: 0.5rem !important; }
.bm-sec--dark .bm-price-card p { color: var(--bm-text); }
.bm-price-card .bm-big { font-size: 2.75rem; font-weight: 800; line-height: 1.1; color: var(--bm-contrast) !important; }
.bm-price-card .wp-block-buttons { margin-top: 1.5rem !important; }
.bm-price-card .wp-block-button, .bm-price-card .wp-block-button__link { width: 100%; text-align: center; }

/* ---------- Rodapé ---------- */
.bm-footer { border-top: 1px solid var(--bm-line); padding-block: 44px; font-size: 0.875rem; color: var(--bm-muted); }
.bm-footer .bm-wrap { display: flex !important; flex-wrap: wrap; justify-content: space-between; gap: 24px; }
.bm-footer .bm-wrap > * { margin: 0 !important; }
.bm-footer p { margin: 0; }
.bm-footer p + p { margin-top: 4px; }
.bm-footer a { color: var(--bm-muted); }

/* ---------- WhatsApp flutuante ---------- */
.bm-wa-float { position: fixed; right: 16px; bottom: 16px; z-index: 60; width: 56px; height: 56px; border-radius: 50%; background: #1FAF54; color: #FFFFFF; display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
.bm-wa-float:hover { color: #FFFFFF; filter: brightness(0.95); }
.bm-wa-float svg { width: 30px; height: 30px; }
@media (min-width: 901px) { .bm-wa-float { width: 52px; height: 52px; right: 24px; bottom: 24px; } }

/* ---------- Celular ---------- */
@media (max-width: 781px) {
	:root { --bm-pad: 16px; }
	.bm-hero { padding-top: 24px; }
	.wp-block-columns { gap: 28px !important; }
	.bm-filtro, .wp-block-gallery.bm-masonry { columns: 2 140px; column-gap: 6px; }
	.bm-filtro figure.wp-block-image, .wp-block-gallery.bm-masonry figure.wp-block-image { margin-bottom: 6px !important; }
	.bm-plan, .bm-price-card, .bm-vap > .wp-block-column { padding: 24px !important; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
