/* =====================================================================
 * Minimal Builder — frontend (v3.0.0)
 * Inherits theme typography. Optimized for GeneratePress (--accent,
 * --contrast, --base, --gp-primary).
 * ================================================================== */

/* ----- Page & sections --------------------------------------------- */
.mb-page > * + * { margin-top: 0; }

.mb-section {
	position: relative;
	background-position: center;
	background-size: cover;
}
.mb-section.mb-has-bg-img {
	background-repeat: no-repeat;
}
.mb-section-overlay {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
}
.mb-section-inner {
	position: relative;
	z-index: 1;
	display: grid;
	gap: 32px;
	max-width: var(--gp-content-width, 1200px);
	margin: 0 auto;
}

/* Padding presets */
.mb-pad-none   .mb-section-inner { padding: 0; }
.mb-pad-small  .mb-section-inner { padding: 24px 20px; }
.mb-pad-medium .mb-section-inner { padding: 48px 20px; }
.mb-pad-large  .mb-section-inner { padding: 80px 20px; }
.mb-pad-xlarge .mb-section-inner { padding: 120px 20px; }

/* Layouts */
.mb-layout-1       .mb-section-inner { grid-template-columns: 1fr; }
.mb-layout-1-1     .mb-section-inner { grid-template-columns: 1fr 1fr; }
.mb-layout-1-1-1   .mb-section-inner { grid-template-columns: 1fr 1fr 1fr; }
.mb-layout-1-1-1-1 .mb-section-inner { grid-template-columns: 1fr 1fr 1fr 1fr; }
.mb-layout-2-1     .mb-section-inner { grid-template-columns: 2fr 1fr; }
.mb-layout-1-2     .mb-section-inner { grid-template-columns: 1fr 2fr; }
.mb-layout-1-2-1   .mb-section-inner { grid-template-columns: 1fr 2fr 1fr; }

@media (max-width: 768px) {
	.mb-section-inner { grid-template-columns: 1fr !important; gap: 24px; }
	.mb-pad-large  .mb-section-inner { padding: 48px 20px; }
	.mb-pad-xlarge .mb-section-inner { padding: 64px 20px; }
}

/* Vertical alignment */
.mb-valign-start  .mb-section-inner { align-items: start; }
.mb-valign-center .mb-section-inner { align-items: center; }
.mb-valign-end    .mb-section-inner { align-items: end; }

/* Responsive visibility */
@media (max-width: 768px) {
	.mb-hide-mobile { display: none !important; }
}
@media (min-width: 769px) and (max-width: 1024px) {
	.mb-hide-tablet { display: none !important; }
}
@media (min-width: 1025px) {
	.mb-hide-desktop { display: none !important; }
}

/* Columns */
.mb-col {
	display: flex;
	flex-direction: column;
	gap: 16px;
	min-width: 0;
}

/* ----- Alignment helpers ------------------------------------------- */
.mb-align-left    { text-align: left; }
.mb-align-center  { text-align: center; }
.mb-align-right   { text-align: right; }
.mb-align-justify { text-align: justify; }

/* ----- Headings & text --------------------------------------------- */
.mb-heading { margin: 0; }
.mb-text > *:first-child { margin-top: 0; }
.mb-text > *:last-child  { margin-bottom: 0; }

/* ----- Image ------------------------------------------------------- */
.mb-image { margin: 0; }
.mb-image img { max-width: 100%; height: auto; display: block; }
.mb-image.mb-align-left   img { margin-left: 0; margin-right: auto; }
.mb-image.mb-align-right  img { margin-left: auto; margin-right: 0; }
.mb-image.mb-align-center img { margin-left: auto; margin-right: auto; }
.mb-image.mb-align-full   img { width: 100%; }

/* ----- Buttons ----------------------------------------------------- */
.mb-btn-wrap.mb-align-left   { text-align: left; }
.mb-btn-wrap.mb-align-center { text-align: center; }
.mb-btn-wrap.mb-align-right  { text-align: right; }

.mb-btn {
	display: inline-block;
	padding: 12px 24px;
	border-radius: 4px;
	text-decoration: none !important;
	font-weight: 500;
	transition: opacity 0.2s, background 0.2s;
	border: 1px solid transparent;
	line-height: 1.4;
}
.mb-btn:hover { opacity: 0.85; }

.mb-btn-primary {
	background: var(--accent, var(--gp-primary, #2271b1));
	color: var(--contrast-light, #fff);
}
.mb-btn-secondary {
	background: var(--contrast-3, #e0e0e0);
	color: var(--contrast, #333);
}
.mb-btn-outline {
	background: transparent;
	color: var(--accent, var(--gp-primary, #2271b1));
	border-color: var(--accent, var(--gp-primary, #2271b1));
}
.mb-btn-ghost {
	background: transparent;
	color: var(--accent, var(--gp-primary, #2271b1));
}

.mb-btn-small  { padding: 6px 14px; font-size: 0.9em; }
.mb-btn-large  { padding: 16px 32px; font-size: 1.15em; }

/* ----- Spacer ------------------------------------------------------ */
.mb-spacer { width: 100%; }

/* ----- Divider ----------------------------------------------------- */
.mb-divider {
	border: 0;
	border-top: 1px solid var(--contrast-3, #e0e0e0);
	margin: 24px 0;
}
.mb-divider-dashed { border-top-style: dashed; }
.mb-divider-dotted { border-top-style: dotted; }

/* ----- HTML block -------------------------------------------------- */
.mb-html { display: block; }

/* ----- Icon block -------------------------------------------------- */
.mb-icon-wrap { line-height: 0; }
.mb-icon-wrap.mb-align-left   { text-align: left; }
.mb-icon-wrap.mb-align-center { text-align: center; }
.mb-icon-wrap.mb-align-right  { text-align: right; }
.mb-icon {
	display: inline-block;
	vertical-align: middle;
	color: var(--accent, var(--gp-primary, #2271b1));
}

/* ----- Video block ------------------------------------------------- */
.mb-video { width: 100%; }
.mb-video iframe,
.mb-video embed,
.mb-video object,
.mb-video video {
	max-width: 100%;
	width: 100%;
	display: block;
}
.mb-video-fallback {
	padding: 12px;
	background: var(--base-3, #f5f5f5);
	border-radius: 3px;
	text-align: center;
}

/* ----- Quote block ------------------------------------------------- */
.mb-quote {
	margin: 0;
	padding: 1em 1.5em;
	border-left: 4px solid var(--accent, var(--gp-primary, #2271b1));
	font-style: italic;
}
.mb-quote p { margin: 0 0 0.5em; }
.mb-quote p:last-of-type { margin-bottom: 0.75em; }
.mb-quote cite {
	display: block;
	font-style: normal;
	font-size: 0.9em;
	opacity: 0.8;
}
.mb-quote cite:before { content: '— '; }
.mb-quote.mb-align-center { border-left: none; padding: 1em; }
.mb-quote.mb-align-right { border-left: none; border-right: 4px solid var(--accent, var(--gp-primary, #2271b1)); }

/* ----- Icon list --------------------------------------------------- */
.mb-icon-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.mb-icon-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 0 0 0.6em;
	padding: 0;
}
.mb-icon-list li:last-child { margin-bottom: 0; }
.mb-icon-list .mb-li-icon {
	flex-shrink: 0;
	color: var(--accent, var(--gp-primary, #2271b1));
	margin-top: 0.15em;
	font-size: 1.1em;
	width: 1.1em;
	height: 1.1em;
}
.mb-icon-list .mb-li-text { flex: 1; }

/* ----- Accordion --------------------------------------------------- */
.mb-accordion {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.mb-accordion-item {
	border: 1px solid var(--contrast-3, #e0e0e0);
	border-radius: 4px;
	overflow: hidden;
	background: var(--base, #fff);
}
.mb-accordion-item summary {
	padding: 14px 48px 14px 18px;
	cursor: pointer;
	font-weight: 600;
	list-style: none;
	position: relative;
	user-select: none;
}
.mb-accordion-item summary::-webkit-details-marker { display: none; }
.mb-accordion-item summary::marker { content: ''; }
.mb-accordion-item summary::after {
	content: '+';
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 22px;
	font-weight: 300;
	line-height: 1;
	color: var(--accent, var(--gp-primary, #2271b1));
	transition: transform 0.2s;
}
.mb-accordion-item[open] summary::after {
	content: '−';
}
.mb-accordion-item summary:hover {
	background: rgba(0, 0, 0, 0.025);
}
.mb-accordion-item summary:focus-visible {
	outline: 2px solid var(--accent, var(--gp-primary, #2271b1));
	outline-offset: -2px;
}
.mb-accordion-content {
	padding: 0 18px 16px;
}
.mb-accordion-content > *:first-child { margin-top: 0; }
.mb-accordion-content > *:last-child { margin-bottom: 0; }
