/* VerticalBag – estilos complementares ao theme.json */

:root {
	--vb-primary: var(--wp--preset--color--primary, #A80379);
	--vb-primary-dark: var(--wp--preset--color--primary-dark, #6E0250);
	--vb-accent: var(--wp--preset--color--accent, #A6C83B);
	--vb-ink: var(--wp--preset--color--ink, #2A1A27);
	--vb-muted: var(--wp--preset--color--muted, #6B5B67);
	--vb-tint: var(--wp--preset--color--tint, #FBF4F9);
	--vb-line: var(--wp--preset--color--line, #EBDCE6);
	--vb-radius: 14px;
	--vb-header-h: 84px;
	--vb-shadow: 0 1px 2px rgba(42, 26, 39, .06), 0 8px 24px rgba(42, 26, 39, .08);
}

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--vb-header-h) + 12px); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }

.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

:where(a, button, input, textarea, summary):focus-visible {
	outline: 3px solid var(--vb-accent);
	outline-offset: 2px;
}

/* Remove o espaço que o WordPress põe entre cabeçalho, conteúdo e rodapé */
.wp-site-blocks > * { margin-block-start: 0; }
.vb-main > .entry-content { margin-block-start: 0; }
.vb-page { padding: 3rem clamp(1rem, 4vw, 2rem) 4rem; }

/* ---------- Cabeçalho ---------- */
header.wp-block-template-part { position: sticky; top: 0; z-index: 50; }
.admin-bar header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }

.vb-header {
	background: rgba(255, 255, 255, .96);
	backdrop-filter: saturate(1.4) blur(8px);
	border-bottom: 1px solid var(--vb-line);
	transition: box-shadow .2s;
}
.vb-header.is-scrolled { box-shadow: var(--vb-shadow); }
.vb-header__inner {
	max-width: 1180px; margin: 0 auto; min-height: var(--vb-header-h);
	padding: 0 clamp(1rem, 4vw, 2rem);
	display: flex; align-items: center; gap: 1.5rem;
}
.vb-logo { display: block; flex: none; line-height: 0; }
.vb-logo img { height: 64px; width: auto; }

.vb-nav { display: flex; align-items: center; gap: 1.5rem; margin-left: auto; }
.vb-nav__list { display: flex; gap: .25rem; list-style: none; margin: 0; padding: 0; }
.vb-nav__list a {
	display: block; padding: .5rem .8rem; border-radius: 999px;
	color: var(--vb-ink); text-decoration: none; font-weight: 600; font-size: .95rem;
}
.vb-nav__list a:hover { background: var(--vb-tint); color: var(--vb-primary); }

.vb-lang { display: flex; list-style: none; margin: 0; padding: 0; border: 1px solid var(--vb-line); border-radius: 999px; overflow: hidden; }
.vb-lang a { display: block; padding: .3rem .65rem; font-size: .8rem; font-weight: 700; color: var(--vb-muted); text-decoration: none; }
.vb-lang a:hover { color: var(--vb-primary); }
.vb-lang a.is-current { background: var(--vb-primary); color: #fff; }


.vb-header__certs { height: 44px; width: auto; flex: none; }
@media (max-width: 1100px) { .vb-header__certs { display: none; } }

.vb-menu-toggle {
	display: none; margin-left: auto; width: 44px; height: 44px; border: 0; border-radius: 10px;
	background: var(--vb-tint); cursor: pointer; position: relative;
}
.vb-menu-toggle__bars, .vb-menu-toggle__bars::before, .vb-menu-toggle__bars::after {
	position: absolute; left: 12px; width: 20px; height: 2px; background: var(--vb-primary); border-radius: 2px;
	transition: transform .2s, opacity .2s; content: "";
}
.vb-menu-toggle__bars { top: 21px; }
.vb-menu-toggle__bars::before { left: 0; top: -6px; }
.vb-menu-toggle__bars::after { left: 0; top: 6px; }
.vb-menu-toggle[aria-expanded="true"] .vb-menu-toggle__bars { background: transparent; }
.vb-menu-toggle[aria-expanded="true"] .vb-menu-toggle__bars::before { transform: translateY(6px) rotate(45deg); }
.vb-menu-toggle[aria-expanded="true"] .vb-menu-toggle__bars::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 900px) {
	:root { --vb-header-h: 68px; }
	.vb-logo img { height: 50px; }
	.vb-menu-toggle { display: block; }
	.vb-nav {
		display: none; position: absolute; left: 0; right: 0; top: 100%;
		flex-direction: column; align-items: stretch; gap: 1rem;
		background: #fff; padding: 1rem clamp(1rem, 4vw, 2rem) 1.5rem;
		border-bottom: 1px solid var(--vb-line); box-shadow: var(--vb-shadow);
	}
	.vb-nav.is-open { display: flex; }
	.vb-nav__list { flex-direction: column; }
	.vb-nav__list a { padding: .75rem .5rem; border-radius: 8px; font-size: 1.05rem; }
	.vb-lang { align-self: flex-start; }
	.vb-lang a { padding: .5rem .9rem; font-size: .9rem; }
}

/* ---------- Secções ---------- */
.vb-section { padding-top: clamp(3.5rem, 8vw, 6rem); padding-bottom: clamp(3.5rem, 8vw, 6rem); }
.vb-section--tint { background: var(--vb-tint); }
.vb-section > * { max-width: 1180px; }

.vb-section-title { text-align: center; margin-bottom: .5rem; }
.vb-section-title::after {
	content: ""; display: block; width: 56px; height: 4px; border-radius: 4px;
	background: linear-gradient(90deg, var(--vb-primary), var(--vb-accent)); margin: .9rem auto 0;
}
.vb-lead { text-align: center; color: var(--vb-muted); font-size: var(--wp--preset--font-size--large); margin-bottom: 2.5rem !important; }
.vb-lead strong { color: var(--vb-primary); }

/* ---------- Hero ---------- */
.vb-hero {
	position: relative; overflow: hidden; color: #fff;
	background:
		radial-gradient(1100px 500px at 85% 20%, rgba(166, 200, 59, .22), transparent 60%),
		radial-gradient(900px 600px at 10% 110%, rgba(255, 255, 255, .10), transparent 60%),
		linear-gradient(135deg, #8E0266 0%, var(--vb-primary) 45%, #C2318F 100%);
	padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 5.5rem);
}
.vb-hero::after {
	content: ""; position: absolute; inset: auto -10% -1px -10%; height: 80px;
	background: #fff; clip-path: ellipse(60% 100% at 50% 100%);
}
.vb-hero > .vb-hero-columns { max-width: 1180px; align-items: center; gap: 2rem; position: relative; z-index: 1; }
.vb-hero .vb-kicker {
	display: inline-block; margin: 0; padding: .3rem .85rem; border-radius: 999px;
	background: rgba(255, 255, 255, .16); font-size: .85rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
}
.vb-hero .vb-hero-title { color: #fff; margin-top: .75rem; }
.vb-hero .vb-hero-text { font-size: var(--wp--preset--font-size--large); opacity: .95; max-width: 34em; }
.vb-hero-image { margin: 0; text-align: center; }
/* O lightbox do WordPress torna a <figure> num flex em coluna, que esticava a imagem
   na largura toda e a deformava; align-self mantém as proporções. */
.vb-hero .vb-hero-image img {
	align-self: center; width: auto; height: auto; max-width: 100%; max-height: 460px;
	filter: drop-shadow(0 30px 40px rgba(0, 0, 0, .3));
}
.vb-hero .wp-block-button__link { background: #fff; color: var(--vb-primary); }
.vb-hero .wp-block-button__link:hover { background: var(--vb-accent); color: var(--vb-ink); }
.vb-hero .is-style-outline .wp-block-button__link { background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, .7); }
.vb-hero .is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, .12); color: #fff; }

.vb-checklist { list-style: none; padding: 0; margin: 1.5rem 0 2rem; }
.vb-checklist li { position: relative; padding-left: 2rem; margin: .5rem 0; font-weight: 600; }
.vb-checklist li::before {
	content: ""; position: absolute; left: 0; top: .3em; width: 1.25rem; height: 1.25rem; border-radius: 50%;
	background: var(--vb-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232A1A27' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 62% no-repeat;
}

/* ---------- Empresa: separadores ---------- */
.vb-tabs { max-width: 960px !important; margin-inline: auto !important; }
.vb-tabs .wp-block-details {
	background: #fff; border: 1px solid var(--vb-line); border-radius: var(--vb-radius);
	margin: 0 0 .75rem; padding: 0;
}
.vb-tabs .wp-block-details summary {
	cursor: pointer; list-style: none; padding: 1rem 1.25rem; font-weight: 700; color: var(--vb-ink);
	display: flex; justify-content: space-between; align-items: center;
}
.vb-tabs .wp-block-details summary::-webkit-details-marker { display: none; }
.vb-tabs .wp-block-details summary::after { content: "+"; font-size: 1.4rem; color: var(--vb-primary); line-height: 1; }
.vb-tabs .wp-block-details[open] summary::after { content: "−"; }
.vb-tabs .wp-block-details > :not(summary) { margin-left: 1.25rem; margin-right: 1.25rem; }
.vb-tabs .wp-block-details > :last-child { margin-bottom: 1.25rem; }

.vb-tabs.is-tabbed { display: grid; grid-template-columns: 220px 1fr; gap: 2rem; align-items: start; }
.vb-tablist { display: flex; flex-direction: column; gap: .35rem; position: sticky; top: calc(var(--vb-header-h) + 1.5rem); }
.vb-tablist button {
	text-align: left; padding: .8rem 1.1rem; border: 0; border-radius: 10px; background: transparent;
	font: inherit; font-weight: 700; color: var(--vb-muted); cursor: pointer; border-left: 3px solid transparent;
}
.vb-tablist button:hover { color: var(--vb-primary); background: var(--vb-tint); }
.vb-tablist button[aria-selected="true"] { color: var(--vb-primary); background: var(--vb-tint); border-left-color: var(--vb-primary); }
.vb-tabs.is-tabbed .wp-block-details { border: 0; background: transparent; margin: 0; }
.vb-tabs.is-tabbed .wp-block-details summary { display: none; }
.vb-tabs.is-tabbed .wp-block-details:not([open]) { display: none; }
.vb-tabs.is-tabbed .wp-block-details > :not(summary) { margin-left: 0; margin-right: 0; }
.vb-tabs.is-tabbed .vb-panels { min-width: 0; }
.vb-tabs ol { padding-left: 1.4rem; }
.vb-tabs ol li { margin: .4rem 0; }

/* ---------- Produtos: vantagens ---------- */
.vb-cards { gap: 1.5rem !important; margin-bottom: 3.5rem !important; }
.vb-card {
	height: 100%; background: #fff; border-radius: var(--vb-radius); padding: 2rem 1.75rem; text-align: center;
	box-shadow: var(--vb-shadow); border-top: 4px solid var(--vb-primary);
	transition: transform .2s;
}
.vb-card:hover { transform: translateY(-4px); }
.vb-card h3 { color: var(--vb-primary); margin: .75rem 0 .5rem; }
.vb-card p { margin: 0; color: var(--vb-muted); }
.vb-icon {
	width: 64px; height: 64px; margin: 0 auto !important; border-radius: 50%;
	background-color: var(--vb-tint); background-repeat: no-repeat; background-position: center; background-size: 30px;
}
.vb-icon--check { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A80379' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.vb-icon--shield { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A80379' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E"); }
.vb-icon--euro { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23A80379' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 7a7 7 0 1 0 0 10M4 10h10M4 14h10'/%3E%3C/svg%3E"); }

.vb-gallery-title { text-align: center; margin-top: 2.5rem !important; color: var(--vb-primary); }

/* ---------- Galerias ---------- */
.vb-section .wp-block-gallery.has-nested-images { --wp--style--unstable-gallery-gap: .75rem; gap: .75rem; }
.vb-section .wp-block-gallery.has-nested-images figure.wp-block-image {
	border-radius: 10px; overflow: hidden; background: #fff;
}
.vb-section .wp-block-gallery.has-nested-images figure.wp-block-image img { transition: transform .35s; }
.vb-section .wp-block-gallery.has-nested-images figure.wp-block-image:hover img { transform: scale(1.05); }
#producao .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img { aspect-ratio: 4 / 3; }
#produtos .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img { aspect-ratio: 4 / 3; }

/* ---------- Certificações ---------- */
.vb-cert-gallery { max-width: 640px !important; margin: 0 auto 3rem !important; }
.vb-cert-gallery .wp-block-gallery.has-nested-images { --wp--style--unstable-gallery-gap: 1.5rem; gap: 1.5rem; }
.vb-cert-gallery .wp-block-gallery.has-nested-images figure.wp-block-image { box-shadow: var(--vb-shadow); }
.vb-cert-gallery .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img { aspect-ratio: 1129 / 1600; object-fit: cover; }
.vb-cert-logos { text-align: center; margin-top: 2.5rem !important; }
.vb-cert-logos img { max-width: 240px; }

/* ---------- Política de qualidade ---------- */
.vb-policy { gap: 1.5rem !important; margin-bottom: 1.5rem !important; max-width: 960px !important; margin-inline: auto !important; }
.vb-policy-item {
	height: 100%; box-sizing: border-box; background: #fff; border-radius: var(--vb-radius);
	padding: 1.75rem; box-shadow: var(--vb-shadow); border-left: 4px solid var(--vb-accent);
}
.vb-policy-item h3 { color: var(--vb-primary); font-size: 1.1rem; margin: 0 0 .5rem; }
.vb-policy-item p { margin: 0; color: var(--vb-muted); }

/* ---------- Contactos ---------- */
.vb-section--dark { background: #241420; color: rgba(255, 255, 255, .85); }
.vb-section--dark :where(h2, h3, h4) { color: #fff; }
.vb-section--dark a { color: #fff; }
.vb-section--dark a:hover { color: var(--vb-accent); }
.vb-section--dark .vb-section-title { margin-bottom: 2.5rem; }

.vb-map { position: relative; border-radius: var(--vb-radius); overflow: hidden; margin-bottom: 3rem !important; }
.vb-map iframe { display: block; width: 100%; height: 380px; border: 0; filter: grayscale(.2); }
.vb-map-label {
	position: absolute; left: 1rem; bottom: 1rem; max-width: calc(100% - 2rem);
	background: var(--vb-primary); color: #fff; padding: .9rem 1.2rem; border-radius: 10px; font-size: .95rem; box-shadow: var(--vb-shadow);
}
.vb-contact { gap: 3rem !important; }
.vb-info { gap: 2rem !important; }
.vb-info h4 { color: var(--vb-accent) !important; font-size: .8rem; margin: 1.5rem 0 .35rem; }
.vb-info h4:first-child { margin-top: 0; }
.vb-info p { margin: 0 0 .5rem; }
.vb-info small { opacity: .7; }

/* Formulário */
.vb-form { display: grid; gap: 1rem; }
.vb-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vb-form label { display: grid; gap: .35rem; font-size: .9rem; font-weight: 600; }
.vb-form input[type="text"], .vb-form input[type="email"], .vb-form input[type="tel"], .vb-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; color: var(--vb-ink);
	padding: .8rem 1rem; border-radius: 10px; border: 1px solid transparent; background: #fff;
}
.vb-form textarea { resize: vertical; min-height: 140px; }
.vb-form input:focus, .vb-form textarea:focus { border-color: var(--vb-accent); outline: none; box-shadow: 0 0 0 3px rgba(166, 200, 59, .35); }
.vb-form__consent { display: flex !important; gap: .6rem; align-items: flex-start; font-weight: 400 !important; }
.vb-form__consent input { margin-top: .3rem; accent-color: var(--vb-primary); }
.vb-form__hp { position: absolute !important; left: -9999px; }
.vb-form button { justify-self: start; border: 0; cursor: pointer; }
.vb-form__notice { padding: .9rem 1.1rem; border-radius: 10px; margin: 0; font-weight: 600; }
.vb-form__notice.is-ok { background: var(--vb-accent); color: var(--vb-ink); }
.vb-form__notice.is-error { background: #fde2e2; color: #8a1020; }
@media (max-width: 600px) { .vb-form__row { grid-template-columns: 1fr; } }

/* ---------- Rodapé ---------- */
.vb-footer { background: var(--vb-primary-dark); color: rgba(255, 255, 255, .8); font-size: .92rem; }
.vb-footer a { color: #fff; text-decoration: none; }
.vb-footer a:hover { text-decoration: underline; }
.vb-footer__inner {
	max-width: 1180px; margin: 0 auto; padding: 3rem clamp(1rem, 4vw, 2rem) 2rem;
	display: grid; grid-template-columns: 1.2fr 1.2fr 1fr; gap: 2rem;
}
.vb-footer__brand { display: flex; gap: 1rem; align-items: flex-start; }
.vb-footer__brand img { border-radius: 6px; flex: none; }
.vb-footer__brand p { margin: 0; }
.vb-footer__contact { font-style: normal; line-height: 1.8; }
.vb-footer__links { list-style: none; margin: 0; padding: 0; line-height: 2; }
.vb-footer__bottom {
	max-width: 1180px; margin: 0 auto; padding: 1.25rem clamp(1rem, 4vw, 2rem);
	border-top: 1px solid rgba(255, 255, 255, .15);
	display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; justify-content: space-between; font-size: .85rem;
}
@media (max-width: 800px) { .vb-footer__inner { grid-template-columns: 1fr; } }

/* ---------- Ajustes móveis ---------- */
@media (max-width: 781px) {
	.vb-hero-columns { flex-direction: column-reverse; }
	.vb-hero .vb-hero-image img { max-height: 260px; }
	.vb-section .wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image) {
		width: calc(50% - var(--wp--style--unstable-gallery-gap) / 2) !important;
	}
	.vb-map iframe { height: 300px; }
}
