/*
Theme Name:   BrokenCtrl GP Child
Theme URI:    https://brokenctrl.com/
Description:  GeneratePress child theme for brokenctrl.com. «Fault Line» redesign approved by Bogdan 25 Oct 2026
              (design/fault-line-2026-10-25). Carries the site's hardening PHP from brokenctrl-child unchanged.
Author:       Tintitis AI CO
Template:     generatepress
Version:      1.3.2
Text Domain:  brokenctrl-gp-child
*/

/* ---------- Fault Line tokens ---------- */
:root {
	--bc-ink: #0B0B0C;
	--bc-concrete: #E7E6E1;
	--bc-paper: #FFFFFF;
	--bc-signal: #D4F536;
	--bc-link: #2E2BF0;
	--bc-fault: #C0261A;
	--bc-muted: #CFCEC8;
	--bc-display: 'Bricolage Grotesque', 'Arial Narrow', sans-serif;
	--bc-body: 'Newsreader', Georgia, serif;
	--bc-mono: 'Martian Mono', ui-monospace, monospace;
}

/* ---------- Base ---------- */
body { background: var(--bc-concrete); color: var(--bc-ink); font-family: var(--bc-body); font-size: 19px; line-height: 1.6; }
a { color: var(--bc-link); }
a:hover, a:focus { color: var(--bc-ink); text-decoration: underline; }
h1, h2, h3, h4, .entry-title, .page-title, .product_title { font-family: var(--bc-display); font-weight: 800; letter-spacing: -0.03em; line-height: 1.02; color: var(--bc-ink); }
h1, .entry-title, .product_title { font-size: clamp(38px, 5vw, 62px); }
h2 { font-size: clamp(28px, 3.2vw, 40px); }
h3 { font-size: 26px; }
code, kbd, pre, .entry-meta, .posted-on, .byline, .cat-links, .tags-links, .woocommerce-breadcrumb, .breadcrumbs, .rank-math-breadcrumb { font-family: var(--bc-mono); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; }
::selection { background: var(--bc-signal); color: var(--bc-ink); }

/* ---------- Header (black, real logo, mono nav, no cart) ---------- */
.site-header, .site-header .inside-header { background: var(--bc-ink); }
.site-header .inside-header { padding-top: 14px; padding-bottom: 14px; }
.site-logo img, .site-header .header-image { max-height: 48px; width: auto; }
.main-title a, .site-description { color: var(--bc-concrete); }
.main-navigation, .main-navigation ul ul, .main-navigation .main-nav ul li a { background: var(--bc-ink); }
.main-navigation .main-nav ul li a { color: var(--bc-concrete); font-family: var(--bc-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; }
.main-navigation .main-nav ul li a:hover, .main-navigation .main-nav ul li.current-menu-item > a, .main-navigation .main-nav ul li.current-menu-ancestor > a { color: var(--bc-signal); background: var(--bc-ink); text-decoration: none; }
.main-navigation .menu-toggle, .main-navigation .mobile-bar-items a { color: var(--bc-concrete); background: var(--bc-ink); font-family: var(--bc-mono); }
.main-navigation .main-nav ul li a { padding-left: 14px; padding-right: 14px; line-height: 56px; word-spacing: -0.35em; }
.main-navigation .main-nav > ul > li { position: relative; }
.main-navigation .main-nav > ul > li + li::before { content: "/"; position: absolute; left: -4px; top: 50%; transform: translateY(-50%); color: var(--bc-signal); font-family: var(--bc-mono); font-size: 14px; pointer-events: none; }
@media (max-width: 768px) { .main-navigation .main-nav > ul > li + li::before { display: none; } }
.site-branding .main-title, .site-branding .site-description { display: none; }
.woocommerce div.product { border: 0 !important; box-shadow: none !important; padding: 0 !important; background: transparent !important; }
.woocommerce-Tabs-panel--description > h2:first-child:empty { display: none; }
.wc-menu-item, .menu-bar-item.wc-menu-item, .site-header .cart-contents, .wc-mobile-cart-items { display: none !important; }
.bc-hazard { height: 12px; background: repeating-linear-gradient(-45deg, var(--bc-signal) 0 14px, var(--bc-ink) 14px 28px); }

/* ---------- Content panels: square, bordered, hard shadow ---------- */
.site-content { padding-top: 32px; }
.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .one-container .container, .separate-containers .paging-navigation, .inside-page-header, .woocommerce div.product {
	background: var(--bc-paper);
	border: 2px solid var(--bc-ink);
	box-shadow: 8px 8px 0 var(--bc-ink);
	border-radius: 0;
}
.separate-containers .site-main > * { margin-bottom: 36px; }
.sidebar .widget { background: var(--bc-paper); border: 2px solid var(--bc-ink); }
.widget-title { font-family: var(--bc-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; }
blockquote { border-left: 8px solid var(--bc-signal); background: var(--bc-concrete); padding: 16px 22px; font-style: normal; }
hr, .wp-block-separator { border: 0; height: 2px; background: var(--bc-ink); }
img { border-radius: 0; }

/* ---------- Buttons and forms ---------- */
button, html input[type="button"], input[type="reset"], input[type="submit"], a.button, a.wp-block-button__link, .wp-block-button .wp-block-button__link, .woocommerce .button, .woocommerce a.button, .woocommerce button.button, .single_add_to_cart_button {
	background: var(--bc-ink) !important;
	color: var(--bc-signal) !important;
	border: 2px solid var(--bc-ink) !important;
	border-radius: 0 !important;
	font-family: var(--bc-mono) !important;
	font-size: 13px !important;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 14px 22px !important;
	box-shadow: 5px 5px 0 var(--bc-link);
}
button:hover, input[type="submit"]:hover, a.button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .single_add_to_cart_button:hover { background: var(--bc-signal) !important; color: var(--bc-ink) !important; text-decoration: none; }
input[type="text"], input[type="email"], input[type="search"], input[type="url"], textarea, select { border: 2px solid var(--bc-ink); border-radius: 0; background: var(--bc-paper); font-family: var(--bc-mono); font-size: 14px; }

/* ---------- Product (review) pages: no shop feel ---------- */
.woocommerce div.product { padding: 32px; }
.woocommerce div.product p.price, .woocommerce div.product span.price, .woocommerce div.product .product_meta, .woocommerce span.onsale, .woocommerce div.product form.cart .quantity, .woocommerce .related.products, .woocommerce .upsells.products, .woocommerce-tabs .reviews_tab, .woocommerce-product-rating { display: none !important; }
.woocommerce div.product .woocommerce-product-gallery { border: 2px solid var(--bc-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 2px solid var(--bc-ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius: 0; border: 2px solid var(--bc-ink); background: var(--bc-concrete); font-family: var(--bc-mono); font-size: 12px; text-transform: uppercase; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { background: var(--bc-signal); }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after, .woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce-product-details__short-description { font-size: 21px; line-height: 1.55; border: 2px solid var(--bc-ink); padding: 18px 22px; background: var(--bc-concrete); }
.woocommerce ul.products li.product { background: var(--bc-paper); border: 2px solid var(--bc-ink); box-shadow: 6px 6px 0 var(--bc-ink); padding: 0 0 18px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--bc-display); font-weight: 800; font-size: 22px; padding: 0 16px; }
.woocommerce ul.products li.product .price, .woocommerce ul.products li.product .button { display: none !important; }

/* ---------- Stamps and evidence (used in review content) ---------- */
.bc-fault-stamp { display: inline-block; transform: rotate(-3deg); border: 2px solid var(--bc-fault); color: var(--bc-fault); font-family: var(--bc-mono); font-weight: 600; font-size: 12px; letter-spacing: 0.08em; padding: 4px 10px; text-transform: uppercase; }
.bc-evidence { border: 2px solid var(--bc-ink); box-shadow: 8px 8px 0 var(--bc-ink); background: var(--bc-paper); }
.bc-evidence figcaption { font-family: var(--bc-mono); font-size: 11px; padding: 12px 16px; border-top: 2px solid var(--bc-ink); }

/* ---------- Review-content components (bc-*), restyled from the old dark theme (1.2.0) ---------- */
.woocommerce div.product .woocommerce-product-gallery, .woocommerce div.product .woocommerce-tabs ul.tabs { display: none !important; }
.woocommerce div.product .woocommerce-tabs .panel { margin: 0; padding: 0; border: 0; background: transparent; }
.woocommerce div.product:has(.bc-prod-hero h1) .product_title { display: none; }
.woocommerce div.product .summary { width: 100% !important; float: none !important; }
.bc-prod { color: var(--bc-ink); max-width: 880px; margin: 0 auto; padding: 8px 0 24px; line-height: 1.65; }
.bc-prod-hero { border-left: 12px solid var(--bc-signal); padding: 4px 0 4px 22px; margin-bottom: 32px; }
.bc-prod-hero h1 { font-family: var(--bc-display); font-weight: 800; font-size: clamp(36px, 5vw, 58px); color: var(--bc-ink); margin: 0 0 12px; }
.bc-prod-hero p, .bc-overview p, .bc-ethics p, .bc-feat-desc, .bc-plan-desc, .bc-plan-features li, .bc-for-item, .bc-faq-a, .bc-warn-text, .bc-cta-note { color: var(--bc-ink); }
.bc-section-label, .bc-ethics-title, .bc-plan-name { font-family: var(--bc-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bc-ink); border-bottom: 2px solid var(--bc-ink); padding-bottom: 8px; margin-bottom: 16px; display: block; }
.bc-btn-cta { display: inline-block; background: var(--bc-ink); color: var(--bc-signal) !important; font-family: var(--bc-mono); font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; padding: 15px 24px; border: 2px solid var(--bc-ink); border-radius: 0; box-shadow: 6px 6px 0 var(--bc-link); text-decoration: none; }
.bc-btn-cta:hover { background: var(--bc-signal); color: var(--bc-ink) !important; }
.bc-overview a, .bc-ethics a, .bc-faq-a a, .bc-cta-note a { color: var(--bc-link); border-bottom: 0; }
.bc-overview strong, .bc-ethics strong, .bc-for-item strong { color: var(--bc-ink); }
.bc-feat, .bc-plan, .bc-for-item { background: var(--bc-paper); border: 2px solid var(--bc-ink); border-radius: 0; }
.bc-feat-title, .bc-plan-price, .bc-faq-q, .bc-faq h2 { color: var(--bc-ink); font-family: var(--bc-display); font-weight: 800; }
.bc-plan.bc-plan-featured { background: var(--bc-signal); border-color: var(--bc-ink); box-shadow: 6px 6px 0 var(--bc-ink); }
.bc-plan-tag { background: var(--bc-ink); color: var(--bc-signal); border-radius: 0; font-family: var(--bc-mono); }
.bc-plan-price span, .bc-plan-note { color: #4A4A4F; }
.bc-plan-features li { border-bottom: 1px solid #D9D8D2; }
.bc-plan-features li::before { color: var(--bc-link); }
.bc-warn-box { background: var(--bc-paper); border: 2px solid var(--bc-fault); border-radius: 0; }
.bc-warn-icon, .bc-warn-text strong { color: var(--bc-fault); }
.bc-ethics { background: var(--bc-concrete); border: 2px solid var(--bc-ink); border-left: 12px solid var(--bc-ink); border-radius: 0; }
.bc-divider { border-top: 2px solid var(--bc-ink); }
.bc-faq-item { border-bottom: 2px solid var(--bc-ink); }
.bc-badge { border-radius: 0; border: 2px solid var(--bc-ink); background: var(--bc-paper); }
.bc-agc .bc-badge-abbr, .bc-agc .bc-badge-desc { color: var(--bc-ink); }

/* ---------- Homepage and hub components (fl-*), 1.3.0 ---------- */
.home .inside-article, .page-id-5922 .inside-article { background: transparent; border: 0; box-shadow: none; padding: 0; }
.home .site-content { padding-top: 0; }
.fl-wrap { max-width: 1240px; margin: 0 auto; }
.fl-nowrap { white-space: nowrap; }
html, body { overflow-x: clip; }
.fl-eyebrow { font-family: var(--bc-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 18px; }
.fl-eyebrow mark { background: var(--bc-signal); color: var(--bc-ink); padding: 3px 8px; }
.fl-hero { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 48px; align-items: center; padding: 48px 0 56px; }
.fl-hero h1 { font-size: clamp(22px, 2.4vw, 28px); letter-spacing: -0.01em; margin: 0 0 14px; }
.fl-display { font-family: var(--bc-display); font-weight: 800; font-size: clamp(44px, 6.2vw, 78px); line-height: 0.95; letter-spacing: -0.035em; margin: 0 0 22px; }
.fl-display .fl-o { display: inline-block; transform: translateY(0.12em) rotate(14deg); color: var(--bc-link); }
.fl-lead { font-size: 21px; line-height: 1.55; max-width: 580px; margin: 0 0 26px; }
.fl-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.fl-btn { display: inline-block; background: var(--bc-ink); color: var(--bc-signal) !important; padding: 15px 22px; font-family: var(--bc-mono); font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; box-shadow: 6px 6px 0 var(--bc-link); text-decoration: none !important; }
.fl-btn:hover { background: var(--bc-signal); color: var(--bc-ink) !important; }
.fl-btn-line { display: inline-block; border: 2px solid var(--bc-ink); color: var(--bc-ink) !important; padding: 13px 20px; font-family: var(--bc-mono); font-size: 13px; text-transform: uppercase; letter-spacing: 0.05em; text-decoration: none !important; }
.fl-evidence { margin: 0; background: var(--bc-paper); border: 2px solid var(--bc-ink); box-shadow: 10px 10px 0 var(--bc-ink); transform: rotate(1deg); }
.fl-evidence img { display: block; width: 100%; height: auto; border-bottom: 2px solid var(--bc-ink); }
.fl-evidence figcaption { padding: 16px 18px; font-size: 18px; line-height: 1.4; }
.fl-evidence figcaption small { display: block; font-family: var(--bc-mono); font-size: 11px; letter-spacing: 0.06em; margin-bottom: 8px; }
.fl-stamp { display: inline-block; margin-top: 10px; transform: rotate(-3deg); border: 2px solid var(--bc-fault); color: var(--bc-fault); font-family: var(--bc-mono); font-weight: 600; font-size: 12px; padding: 4px 10px; letter-spacing: 0.08em; }
.fl-crack { display: flex; align-items: center; margin: 8px 0 0; }
.fl-crack span { flex: 1; height: 2px; background: var(--bc-ink); }
.fl-crack span + svg + span { transform: translateY(2px); }
.fl-section { padding: 52px 0 12px; }
.fl-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 14px; margin-bottom: 26px; }
.fl-head h2 { margin: 0; font-size: clamp(32px, 4vw, 44px); }
.fl-more { font-family: var(--bc-mono); font-size: 13px; text-transform: uppercase; }
.fl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 28px; }
.fl-card { background: var(--bc-paper); border: 2px solid var(--bc-ink); box-shadow: 6px 6px 0 var(--bc-ink); display: flex; flex-direction: column; }
.fl-card img, .fl-card .fl-ph { width: 100%; height: 170px; object-fit: cover; object-position: top; display: block; border-bottom: 2px solid var(--bc-ink); }
.fl-card .fl-ph { background: #D9D8D2; display: flex; align-items: center; justify-content: center; font-family: var(--bc-mono); font-size: 11px; }
.fl-card-body { padding: 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.fl-meta { font-family: var(--bc-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.fl-card h3 { margin: 0; font-size: 28px; }
.fl-card p { margin: 0; font-size: 17px; line-height: 1.5; }
.fl-card .fl-more { margin-top: auto; }
.fl-band { background: var(--bc-ink); color: var(--bc-concrete); padding: 44px; border-left: 12px solid var(--bc-signal); display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 36px; align-items: center; }
.fl-band h2 { color: var(--bc-concrete); margin: 0 0 12px; font-size: clamp(32px, 4vw, 46px); }
.fl-band p { color: var(--bc-muted); margin: 0; font-size: 19px; line-height: 1.55; }
.fl-band .fl-eyebrow { color: var(--bc-signal); }
.fl-band ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fl-band li a { color: var(--bc-concrete); font-family: var(--bc-display); font-size: 21px; font-weight: 500; }
.fl-band li a:hover { color: var(--bc-signal); }
.fl-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); border-top: 2px solid var(--bc-ink); border-left: 2px solid var(--bc-ink); }
.fl-tiles a { display: block; color: var(--bc-ink); background: var(--bc-paper); border-right: 2px solid var(--bc-ink); border-bottom: 2px solid var(--bc-ink); padding: 20px; font-family: var(--bc-display); font-weight: 500; font-size: 20px; text-decoration: none; }
.fl-tiles a:hover { background: var(--bc-signal); }
.fl-tiles a.fl-all { background: var(--bc-signal); font-family: var(--bc-mono); font-size: 13px; text-transform: uppercase; }
.fl-record { background: var(--bc-ink); color: var(--bc-concrete); margin: 56px calc(50% - 50vw) 0; padding: 64px 24px; }
.fl-record h2 { color: var(--bc-concrete); font-size: clamp(36px, 5vw, 56px); line-height: 0.98; margin: 0; }
.fl-record p { color: var(--bc-muted); font-size: 19px; line-height: 1.6; margin: 0; }
.fl-record .fl-eyebrow { color: var(--bc-signal); }
.fl-record-top { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 32px; align-items: end; margin-bottom: 32px; }
.fl-cases { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 32px; }
.fl-cases a { display: flex; flex-direction: column; gap: 10px; border: 2px solid var(--bc-concrete); padding: 22px; color: var(--bc-concrete); text-decoration: none; }
.fl-cases a:hover { border-color: var(--bc-signal); }
.fl-cases small { font-family: var(--bc-mono); font-size: 11px; color: var(--bc-signal); }
.fl-cases span { font-family: var(--bc-display); font-size: 22px; font-weight: 500; line-height: 1.2; }
.fl-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 28px; border-top: 2px solid #3A3A3D; padding-top: 30px; }
.fl-cols h3 { font-family: var(--bc-mono); font-size: 12px; font-weight: 400; color: var(--bc-signal); letter-spacing: 0.08em; text-transform: uppercase; margin: 0 0 12px; }
.fl-cols ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.fl-cols a { color: var(--bc-concrete); font-size: 18px; }
.fl-cols a.fl-link-more { color: var(--bc-signal); font-family: var(--bc-mono); font-size: 12px; text-transform: uppercase; }

/* ---------- Footer ---------- */
.site-footer, .site-footer .site-info, .bc-footer { background: var(--bc-ink); color: var(--bc-muted); }
.bc-footer .bc-footer-inner { max-width: 1280px; margin: 0 auto; padding: 48px 24px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; }
.bc-footer img { height: 44px; width: auto; }
.bc-footer p { margin: 14px 0 0; font-size: 16px; line-height: 1.5; }
.bc-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.bc-footer a { color: var(--bc-concrete); font-family: var(--bc-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; }
.bc-footer a:hover { color: var(--bc-signal); }
.bc-footer .bc-copy { font-family: var(--bc-mono); font-size: 11px; color: var(--bc-muted); grid-column: 1 / -1; border-top: 2px solid #3A3A3D; padding-top: 18px; }

@media (max-width: 768px) {
	body { font-size: 18px; }
	.woocommerce div.product { padding: 18px; }
	.separate-containers .inside-article { box-shadow: 5px 5px 0 var(--bc-ink); }
}
