/*
Theme Name: Moneybox
Theme URI: https://moneybox.com
Author: Moneybox
Description: Lightweight custom block theme for Moneybox merchant services. No page builder, no paid plugins — core WordPress blocks only.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
License: GPL-2.0-or-later
Text Domain: moneybox
*/

/* Polish that theme.json can't express. */

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

:where(a):focus-visible,
:where(button, input, select, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.wp-site-blocks > * { margin-block-start: 0; }
.has-base-color :where(h1, h2, h3, h4) { color: inherit; }

/* -------------------------------------------------- Header */
.mb-header {
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid var(--wp--preset--color--line);
	backdrop-filter: saturate(180%) blur(6px);
}
.admin-bar .mb-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .mb-header { top: 0; position: relative; } }

.mb-header .wp-block-navigation a { font-weight: 500; }
.mb-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--accent); }
.mb-header .current-menu-item > a { color: var(--wp--preset--color--accent); }

/* Typographic wordmark (no logo image needed) */
.mb-wordmark { text-decoration: none !important; display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; font-size: 1.4rem; letter-spacing: -0.02em; color: var(--wp--preset--color--primary); }
.mb-wordmark:hover { color: var(--wp--preset--color--primary); }
.mb-wordmark .mb-mark {
	display: inline-flex; align-items: center; justify-content: center;
	width: 1.7rem; height: 1.7rem; border-radius: 7px;
	background: var(--wp--preset--color--accent); color: #fff; font-size: 1rem; font-weight: 700;
}
.mb-wordmark .mb-tld { color: var(--wp--preset--color--accent); }

/* -------------------------------------------------- Eyebrow */
.is-style-eyebrow {
	font-size: var(--wp--preset--font-size--x-small) !important;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent-dark);
	margin-bottom: .25rem;
}
.has-base-color .is-style-eyebrow,
.has-primary-background-color .is-style-eyebrow,
.has-primary-dark-background-color .is-style-eyebrow { color: #55d79b; }

/* -------------------------------------------------- Cards */
.is-style-mb-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	overflow: hidden;
	height: 100%;
	transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.is-style-mb-card:hover { box-shadow: 0 14px 34px rgba(6, 25, 46, .10); transform: translateY(-2px); border-color: #cfe6da; }
.wp-block-columns.mb-equal > .wp-block-column { display: flex; flex-direction: column; }
.wp-block-column > .is-style-mb-card { height: 100%; }

/* Lane door cards */
.mb-door { border: 1px solid var(--wp--preset--color--line); border-radius: 14px; overflow: hidden; height: 100%; background: var(--wp--preset--color--base); transition: box-shadow .2s ease, transform .2s ease; }
.mb-door:hover { box-shadow: 0 18px 40px rgba(6, 25, 46, .12); transform: translateY(-3px); }
.mb-door .mb-door-top { height: 6px; }
.mb-door-firearms .mb-door-top { background: var(--wp--preset--color--primary); }
.mb-door-business .mb-door-top { background: var(--wp--preset--color--accent); }

/* -------------------------------------------------- Accent rule */
.mb-rule::after,
.rg-rule::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin-top: 1rem;
	background: var(--wp--preset--color--accent);
}
.has-text-align-center.mb-rule::after { margin-left: auto; margin-right: auto; }

/* -------------------------------------------------- Numbered steps */
.mb-step-num {
	font-size: 2.5rem !important;
	line-height: 1 !important;
	font-weight: 700;
	color: var(--wp--preset--color--accent);
}

/* -------------------------------------------------- Check / X lists */
ul.is-style-mb-check { list-style: none; padding-left: 0; }
ul.is-style-mb-check li { position: relative; padding-left: 1.9rem; margin-bottom: .6rem; }
ul.is-style-mb-check li::before {
	content: "";
	position: absolute; left: .15rem; top: .4em;
	width: .9rem; height: .5rem;
	border-left: 2px solid var(--wp--preset--color--accent);
	border-bottom: 2px solid var(--wp--preset--color--accent);
	transform: rotate(-45deg);
}
/* Eligibility checklist (empty checkbox look) */
ul.is-style-mb-box { list-style: none; padding-left: 0; }
ul.is-style-mb-box li { position: relative; padding-left: 2rem; margin-bottom: .55rem; }
ul.is-style-mb-box li::before {
	content: "";
	position: absolute; left: 0; top: .2em;
	width: 1.1rem; height: 1.1rem;
	border: 2px solid #c3d4ca; border-radius: 4px; background: #fff;
}

/* -------------------------------------------------- Icon tiles */
.mb-icon { width: 2.75rem; height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--wp--preset--color--surface-2); color: var(--wp--preset--color--accent); margin-bottom: .75rem; }
.mb-icon svg { width: 1.4rem; height: 1.4rem; }
.mb-icon img { width: 1.5rem; height: 1.5rem; display: block; }

/* -------------------------------------------------- Stat / trust strip */
.mb-stat-num { font-size: clamp(2rem, 4vw, 2.75rem) !important; line-height: 1 !important; font-weight: 700; color: var(--wp--preset--color--primary); margin: 0; }
.has-primary-background-color .mb-stat-num, .has-primary-dark-background-color .mb-stat-num { color: #fff; }
.mb-trust-strip { border-top: 1px solid var(--wp--preset--color--line); border-bottom: 1px solid var(--wp--preset--color--line); }

/* -------------------------------------------------- Confirm placeholder pill */
.mb-confirm {
	display: inline-block;
	font-size: .78em; font-weight: 600;
	padding: .05em .5em; border-radius: 5px;
	background: #fff4d6; color: #8a6400; border: 1px dashed #e0b43a;
	white-space: nowrap;
}
.has-base-color .mb-confirm { background: rgba(255,228,150,.18); color: #ffe08a; border-color: rgba(255,224,138,.5); }

/* -------------------------------------------------- Comparison / data tables */
.wp-block-table table { border-collapse: collapse; font-size: .95rem; width: 100%; }
.wp-block-table th, .wp-block-table td { border: 0; border-bottom: 1px solid var(--wp--preset--color--line); padding: .7rem .8rem; text-align: left; vertical-align: top; }
.wp-block-table thead { border-bottom: 2px solid var(--wp--preset--color--primary); }
.wp-block-table thead th { color: var(--wp--preset--color--primary); font-weight: 600; }
.wp-block-table.is-style-mb-rows tbody tr:nth-child(odd) { background: var(--wp--preset--color--surface); }
.wp-block-table figcaption { font-size: .8rem; color: var(--wp--preset--color--muted); }

/* -------------------------------------------------- Pricing fee box */
.mb-feebox { border: 1px solid var(--wp--preset--color--line); border-radius: 12px; overflow: hidden; }
.mb-feebox .mb-feerow { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 1.1rem; border-bottom: 1px solid var(--wp--preset--color--line); }
.mb-feebox .mb-feerow:last-child { border-bottom: 0; }
.mb-feebox .mb-feerow span:last-child { font-weight: 600; color: var(--wp--preset--color--primary); text-align: right; }

/* -------------------------------------------------- FAQ (details/summary) */
.mb-faq details { border-bottom: 1px solid var(--wp--preset--color--line); padding: .25rem 0; }
.mb-faq summary { cursor: pointer; font-weight: 600; color: var(--wp--preset--color--primary); list-style: none; padding: .95rem 2rem .95rem 0; position: relative; }
.mb-faq summary::-webkit-details-marker { display: none; }
.mb-faq summary::after { content: "+"; position: absolute; right: .25rem; top: .8rem; font-size: 1.4rem; font-weight: 400; color: var(--wp--preset--color--accent); transition: transform .2s ease; }
.mb-faq details[open] summary::after { content: "\2212"; }
.mb-faq details > *:not(summary) { margin-top: 0; padding-bottom: 1rem; color: var(--wp--preset--color--muted); }

/* -------------------------------------------------- Forms */
.mb-form { display: grid; gap: 1rem; }
.mb-form .mb-row { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
@media (max-width: 640px) { .mb-form .mb-row { grid-template-columns: 1fr; } }
.mb-form label { display: block; font-size: .875rem; font-weight: 500; margin-bottom: .35rem; color: var(--wp--preset--color--contrast); }
.mb-form input, .mb-form select, .mb-form textarea {
	width: 100%; box-sizing: border-box;
	font: inherit; font-size: 1rem;
	padding: .75rem .9rem;
	border: 1px solid #c9d2cd; border-radius: 8px;
	background: #fff; color: var(--wp--preset--color--contrast);
}
.mb-form input[type="file"] { padding: .55rem .6rem; background: var(--wp--preset--color--surface); }
.mb-form textarea { min-height: 130px; resize: vertical; }
.mb-form .mb-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.mb-form button {
	justify-self: start;
	font: inherit; font-weight: 600; font-size: 1rem;
	padding: .9rem 1.9rem;
	border: 0; border-radius: 8px; cursor: pointer;
	background: var(--wp--preset--color--accent); color: #fff;
}
.mb-form button:hover { background: var(--wp--preset--color--accent-dark); }
.mb-form .mb-fine { font-size: .8rem; color: var(--wp--preset--color--muted); margin: 0; }
.mb-form .mb-secure { font-size: .82rem; color: var(--wp--preset--color--muted); display: flex; gap: .5rem; align-items: flex-start; margin: 0; }
.mb-form .mb-secure svg { flex: 0 0 auto; width: 1rem; height: 1rem; margin-top: .15rem; color: var(--wp--preset--color--accent); }
.mb-consent { display: flex; gap: .6rem; align-items: flex-start; font-size: .85rem; margin: .25rem 0; }
.mb-consent input { margin-top: .25rem; flex: 0 0 auto; width: auto; }
.mb-consent label { font-weight: 400; color: var(--wp--preset--color--muted); margin: 0; }
.mb-notice { padding: 1rem 1.25rem; border-radius: 8px; margin-bottom: 1rem; }
.mb-notice.is-success { background: #e8f5ec; color: #14532d; }
.mb-notice.is-error { background: #fdecec; color: #7f1d1d; }

/* -------------------------------------------------- Footer */
.mb-footer a { text-decoration: none; }
.mb-footer a:hover { text-decoration: underline; }
.mb-footer ul { list-style: none; }

/* -------------------------------------------------- Post cards */
.mb-post-card { border: 1px solid var(--wp--preset--color--line); border-radius: 12px; overflow: hidden; height: 100%; background: var(--wp--preset--color--base); }
.mb-post-card .wp-block-post-featured-image { margin: 0; }
.mb-post-card .wp-block-post-featured-image img { aspect-ratio: 16 / 9; object-fit: cover; }
.mb-post-card .wp-block-post-title a { text-decoration: none; }

/* -------------------------------------------------- Table of contents (Easy TOC) */
#ez-toc-container {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 12px;
	padding: 1.1rem 1.4rem;
	margin: 0 auto var(--wp--preset--spacing--40);
	max-width: 760px;
	box-shadow: none;
}
#ez-toc-container .ez-toc-title-container { margin-bottom: .5rem; }
#ez-toc-container .ez-toc-title {
	font-size: 0.8125rem !important; letter-spacing: .14em; text-transform: uppercase;
	color: var(--wp--preset--color--accent) !important; font-weight: 600;
}
#ez-toc-container nav ul, #ez-toc-container ul.ez-toc-list { list-style: none; margin: 0; padding: 0; }
#ez-toc-container ul.ez-toc-list li { margin: .3rem 0; font-size: .95rem; }
#ez-toc-container a.ez-toc-link, #ez-toc-container a { color: var(--wp--preset--color--primary); text-decoration: none; }
#ez-toc-container a.ez-toc-link:hover, #ez-toc-container a:hover { color: var(--wp--preset--color--accent); text-decoration: underline; }
#ez-toc-container .ez-toc-counter span { color: var(--wp--preset--color--accent); }
#ez-toc-container a.ez-toc-toggle { color: var(--wp--preset--color--muted); background: transparent; border: 0; }
#ez-toc-container .ez-toc-title-toggle { display: flex; align-items: baseline; gap: .5rem; }

/* -------------------------------------------------- Feature icons (image) */
.mb-feature-icon { width: 48px; height: 48px; display: block; margin: 0 0 0.75rem; }
.has-text-align-center .mb-feature-icon, .mb-feature-center .mb-feature-icon { margin-inline: auto; }

/* -------------------------------------------------- Hero art */
.mb-hero-art { margin: 0; }
.mb-hero-art img { width: 100%; height: auto; display: block; max-width: 520px; margin-inline: auto; }
@media (max-width: 781px) { .mb-hero-art { display: none; } }

/* -------------------------------------------------- Misc */
.mb-rounded img { border-radius: 12px; width: 100%; height: auto; }
.wp-block-cover h1 { max-width: 20ch; }
.wp-block-cover.alignfull { padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 5.5rem); }

@media (max-width: 781px) { .mb-hide-mobile { display: none !important; } }
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.is-style-mb-card, .is-style-mb-card:hover, .mb-door, .mb-door:hover { transition: none; transform: none; }
}
