/*
Theme Name:   Binnz (Astra Child)
Theme URI:    https://binnz.com
Description:  Binnz brand header, footer and info-page design on top of Astra.
Author:       Binnz
Template:     astra
Version:      1.0.0
Text Domain:  binnz-child
*/
/* Binnz Site Kit – brand styles */
:root {
	--bz-primary: #0e4d92;
	--bz-primary-dark: #0a2e57;
	--bz-accent: #f5a623;
	--bz-ink: #14213d;
	--bz-muted: #5b6476;
	--bz-bg: #f4f7fb;
	--bz-line: #e3e8f0;
	--bz-radius: 14px;
	--bz-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 4px 16px rgba(16, 24, 40, .06);
}

/* ---------- Shared ---------- */
.bz-wrap { max-width: 1240px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; }
.bz-header *, .bz-footer *, .bz-page * { box-sizing: border-box; }
.bz-btn { display: inline-block; background: var(--bz-primary); color: #fff !important; text-decoration: none !important; padding: .7em 1.2em; border-radius: 999px; font-weight: 600; }
.bz-btn:hover { background: var(--bz-primary-dark); }

/* ---------- Header ---------- */
.bz-header { background: #fff; border-bottom: 1px solid var(--bz-line); position: relative; z-index: 50; }
.bz-topbar { background: var(--bz-primary-dark); color: #dbe6f5; font-size: 13px; }
.bz-topbar .bz-wrap { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 36px; }
.bz-tagline { opacity: .9; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bz-toplinks { display: flex; gap: 18px; flex-wrap: wrap; }
.bz-toplinks a { color: #dbe6f5; text-decoration: none; }
.bz-toplinks a:hover { color: #fff; text-decoration: underline; }
.bz-mainbar .bz-wrap { display: flex; align-items: center; gap: 24px; min-height: 72px; }
.bz-brand { display: inline-flex; align-items: center; text-decoration: none !important; flex-shrink: 0; }
.bz-logo { max-height: 44px; width: auto; display: block; }
.bz-wordmark { font-size: 28px; font-weight: 800; letter-spacing: -.02em; color: var(--bz-primary-dark); }
.bz-wordmark::after { content: "."; color: var(--bz-accent); }
.bz-nav { display: flex; align-items: center; gap: 20px; flex: 1; justify-content: flex-end; }
.bz-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; flex-wrap: wrap; }
.bz-nav li a { display: block; padding: 8px 12px; border-radius: 8px; color: var(--bz-ink); text-decoration: none; font-weight: 600; font-size: 15px; }
.bz-nav li a:hover, .bz-nav li a:focus { background: var(--bz-bg); color: var(--bz-primary); }
.bz-search { display: flex; align-items: center; background: var(--bz-bg); border: 1px solid var(--bz-line); border-radius: 999px; padding: 2px 4px 2px 14px; }
.bz-search input { border: 0; background: transparent; outline: none; font: inherit; font-size: 14px; width: 170px; padding: 6px 0; color: var(--bz-ink); }
.bz-search button { border: 0; background: var(--bz-primary); color: #fff; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; cursor: pointer; }
.bz-nav-toggle { position: absolute; opacity: 0; pointer-events: none; }
.bz-burger { display: none; margin-left: auto; cursor: pointer; width: 42px; height: 42px; border-radius: 10px; border: 1px solid var(--bz-line); align-items: center; justify-content: center; flex-direction: column; gap: 5px; }
.bz-burger span { display: block; width: 20px; height: 2px; background: var(--bz-ink); border-radius: 2px; }

@media (max-width: 960px) {
	.bz-toplinks { display: none; }
	.bz-burger { display: flex; }
	.bz-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--bz-line); box-shadow: var(--bz-shadow); flex-direction: column; align-items: stretch; padding: 12px 20px 20px; gap: 12px; }
	.bz-nav ul { flex-direction: column; }
	.bz-nav-toggle:checked ~ .bz-nav { display: flex; }
	.bz-search input { width: 100%; }
}

/* ---------- Footer ---------- */
.bz-footer { background: var(--bz-primary-dark); color: #c9d6e8; padding: 56px 0 24px; margin-top: 64px; font-size: 15px; }
.bz-fgrid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; }
.bz-footer .bz-wordmark { color: #fff; }
.bz-footer .bz-logo { filter: none; }
.bz-fabout p { margin: 14px 0 18px; line-height: 1.6; }
.bz-fhead { color: #fff; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 13px; margin: 0 0 14px; }
.bz-footer ul { list-style: none; margin: 0; padding: 0; }
.bz-footer li { margin: 0 0 10px; }
.bz-footer a { color: #c9d6e8; text-decoration: none; }
.bz-footer a:hover { color: #fff; text-decoration: underline; }
.bz-fbottom { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 40px; padding-top: 20px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 14px; }
.bz-fbottom p { margin: 0; }
@media (max-width: 900px) { .bz-fgrid { grid-template-columns: 1fr 1fr; } .bz-fabout { grid-column: 1 / -1; } }
@media (max-width: 520px) { .bz-fgrid { grid-template-columns: 1fr; } }

/* Social buttons */
.bz-social { display: flex; flex-wrap: wrap; gap: 8px; }
.bz-soc { display: inline-block; padding: 7px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; text-decoration: none !important; border: 1px solid var(--bz-line); color: var(--bz-ink); background: #fff; }
.bz-soc:hover { border-color: var(--bz-primary); color: var(--bz-primary); }
.bz-social-dark .bz-soc { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .18); color: #fff !important; }
.bz-social-dark .bz-soc:hover { background: var(--bz-accent); border-color: var(--bz-accent); color: var(--bz-primary-dark) !important; }

/* ---------- Info / legal pages ---------- */
.bz-page { color: var(--bz-ink); }
.bz-hero { display: flex; gap: 22px; align-items: flex-start; background: linear-gradient(135deg, var(--bz-primary-dark), var(--bz-primary)); color: #fff; border-radius: 20px; padding: 40px 40px 34px; margin: 0 0 36px; position: relative; overflow: hidden; }
.bz-hero::after { content: ""; position: absolute; right: -60px; top: -60px; width: 220px; height: 220px; border-radius: 50%; background: rgba(245, 166, 35, .18); }
.bz-hero-icon { flex-shrink: 0; width: 60px; height: 60px; border-radius: 16px; background: rgba(255, 255, 255, .14); display: grid; place-items: center; color: var(--bz-accent); }
.bz-hero-text { position: relative; z-index: 1; }
.bz-eyebrow { margin: 0 0 6px; font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: #bcd0ea; font-weight: 700; }
.bz-hero-title { margin: 0 0 10px; font-size: clamp(30px, 4vw, 44px); line-height: 1.1; color: #fff; }
.bz-hero-intro { margin: 0 0 16px; font-size: 18px; line-height: 1.5; color: #e4ecf7; max-width: 720px; }
.bz-hero-meta { margin: 0; font-size: 14px; }
.bz-hero-meta span { display: inline-block; background: rgba(255, 255, 255, .14); padding: 5px 12px; border-radius: 999px; }

.bz-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; align-items: start; }
.bz-layout.bz-no-toc { grid-template-columns: minmax(0, 1fr); max-width: 820px; }
.bz-toc { position: sticky; top: 24px; background: var(--bz-bg); border: 1px solid var(--bz-line); border-radius: var(--bz-radius); padding: 20px 18px; font-size: 14px; max-height: calc(100vh - 48px); overflow: auto; }
.admin-bar .bz-toc { top: 56px; }
.bz-toc-title { margin: 0 0 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 12px; color: var(--bz-muted); }
.bz-toc ol { margin: 0; padding-left: 18px; }
.bz-toc li { margin: 0 0 8px; line-height: 1.35; }
.bz-toc a { color: var(--bz-ink); text-decoration: none; }
.bz-toc a:hover { color: var(--bz-primary); text-decoration: underline; }

.bz-body { font-size: 17px; line-height: 1.75; max-width: 780px; }
.bz-body h2 { font-size: 26px; line-height: 1.25; margin: 2.2em 0 .6em; padding-top: .2em; scroll-margin-top: 90px; color: var(--bz-primary-dark); }
.bz-body h2:first-child { margin-top: 0; }
.bz-body p, .bz-body ul, .bz-body ol { margin: 0 0 1.1em; }
.bz-body li { margin: 0 0 .45em; }
.bz-body a { color: var(--bz-primary); text-underline-offset: 3px; }
.bz-body strong { color: var(--bz-ink); }
.bz-role { color: var(--bz-muted); font-weight: 600; margin-top: -.4em !important; }
.bz-catlist { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0 !important; }
.bz-catlist li { margin: 0; }
.bz-catlist a, .bz-catlist li { display: inline-block; }
.bz-catlist a { padding: 6px 14px; border-radius: 999px; background: var(--bz-bg); border: 1px solid var(--bz-line); text-decoration: none; font-weight: 600; }

/* Email cards */
.bz-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin: 8px 0 28px; }
.bz-card { display: flex; flex-direction: column; gap: 6px; padding: 20px; border: 1px solid var(--bz-line); border-radius: var(--bz-radius); background: #fff; box-shadow: var(--bz-shadow); text-decoration: none !important; color: var(--bz-ink) !important; transition: transform .15s ease, border-color .15s ease; }
.bz-card:hover { transform: translateY(-2px); border-color: var(--bz-primary); }
.bz-card-icon { width: 40px; height: 40px; border-radius: 12px; background: var(--bz-bg); position: relative; margin-bottom: 4px; }
.bz-card-icon::before { content: ""; position: absolute; inset: 9px; background: var(--bz-primary); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E") center / contain no-repeat; }
.bz-card-title { font-weight: 800; font-size: 17px; }
.bz-card-desc { font-size: 14px; line-height: 1.45; color: var(--bz-muted); flex: 1; }
.bz-card-mail { font-size: 14px; font-weight: 700; color: var(--bz-primary); word-break: break-all; }

/* Help box */
.bz-help { display: flex; gap: 16px; align-items: flex-start; margin: 48px 0 0; padding: 22px 24px; border-radius: var(--bz-radius); background: #fff8eb; border: 1px solid #f7d79c; }
.bz-help-icon { color: #b7791f; flex-shrink: 0; }
.bz-help p { margin: 0; }
.bz-help-title { font-weight: 800; margin-bottom: 4px !important; }
.bz-help a { color: var(--bz-primary-dark); font-weight: 700; }

/* Sitemap */
.bz-sitemap { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; }
.bz-sm-group { border: 1px solid var(--bz-line); border-radius: var(--bz-radius); padding: 18px 20px; }
.bz-sm-group h2 { font-size: 20px !important; margin: 0 0 10px !important; }
.bz-sm-group ul { margin: 0; padding-left: 18px; font-size: 15px; }
.bz-sm-date { color: var(--bz-muted); font-size: 13px; white-space: nowrap; }
.bz-note { color: var(--bz-muted); }

@media (max-width: 900px) {
	.bz-layout { grid-template-columns: 1fr; gap: 24px; }
	.bz-toc { position: static; max-height: none; }
	.bz-hero { padding: 28px 22px; flex-direction: column; }
	.bz-body { font-size: 16px; }
}

/* Accessible hidden label (in case the theme does not define it) */
.bz-header .screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }

/* Tighter page top on info pages + stronger type */
.bz-hero-title { font-weight: 800 !important; letter-spacing: -0.02em; }
.bz-body h2 { font-weight: 700 !important; letter-spacing: -0.01em; }
.bz-body strong, .bz-body b { font-weight: 700; }
.bz-nav li a, .bz-fhead, .bz-card-title { font-weight: 700; }
/* ===================== Astra integration ===================== */
.bz-header, .bz-footer { font-family: inherit; }
.bz-header ul, .bz-footer ul { margin: 0; padding: 0; list-style: none; }
.bz-search input[type="search"] { border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 6px 0 !important; min-height: 0; }
.bz-search button, .bz-search button:hover, .bz-search button:focus { padding: 0 !important; width: 32px; height: 32px; line-height: 1; border-radius: 50% !important; border: 0; background: var(--bz-primary); color: #fff; display: grid; place-items: center; }
.bz-search button:hover { background: var(--bz-primary-dark) !important; }
.bz-footer { margin-top: 0; }
.bz-footer p { color: #c9d6e8; }

/* Info pages: full width, white background, no sidebar or theme title */
body.bz-kit, body.bz-kit .site-content, body.bz-kit #content { background: #fff !important; }
body.bz-kit #secondary, body.bz-kit .entry-header, body.bz-kit .post-thumb-img-content, body.bz-kit .ast-breadcrumbs-wrapper { display: none !important; }
body.bz-kit #primary { width: 100% !important; max-width: 100% !important; float: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
body.bz-kit .site-content > .ast-container { max-width: 1280px !important; display: block !important; padding-left: 20px; padding-right: 20px; }
body.bz-kit .ast-article-single, body.bz-kit .ast-article-post, body.bz-kit article.page, body.bz-kit .ast-separate-container .ast-article-single { background: transparent !important; padding: 0 !important; margin: 0 !important; box-shadow: none !important; border: 0 !important; }
body.bz-kit .site-content { padding: 32px 0 56px !important; }
body.bz-kit .entry-content > .bz-page, body .bz-page.alignwide { max-width: none !important; width: auto !important; margin: 0 !important; }

/* Make sure theme heading/link colours do not override the brand design */
body .bz-page .bz-hero .bz-hero-title { color: #fff !important; font-size: clamp(30px, 4vw, 44px) !important; line-height: 1.1 !important; margin: 0 0 10px !important; }
body .bz-page .bz-hero .bz-hero-intro { color: #e4ecf7 !important; margin: 0 0 16px !important; }
body .bz-page .bz-hero .bz-eyebrow { color: #bcd0ea !important; margin: 0 0 6px !important; }
body .bz-page .bz-hero p { margin-bottom: 0; }
body .bz-page .bz-body h2 { color: var(--bz-primary-dark) !important; font-size: 26px !important; line-height: 1.25 !important; }
body .bz-page .bz-sm-group h2 { font-size: 20px !important; }
body .bz-page .bz-body a { color: var(--bz-primary); }
body .bz-page .bz-toc a { color: var(--bz-ink) !important; text-decoration: none; }
body .bz-page .bz-card, body .bz-page .bz-card:hover { color: var(--bz-ink) !important; text-decoration: none !important; }
body .bz-page .bz-card-mail { color: var(--bz-primary) !important; }
body .bz-page .bz-help p { margin: 0; }
body .bz-page ul, body .bz-page ol { margin-left: 1.2em; }
body .bz-page .bz-cards, body .bz-page .bz-catlist { margin-left: 0; }
body .bz-page #ez-toc-container, body .bz-page .ez-toc-container { display: none !important; }
