/*
Theme Name: Better Call JR
Theme URI: https://bettercalljr.ie
Author: Better Call JR
Description: A fast, accessible used-car dealership theme for Better Call JR.
Version: 2.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: better-call-jr
*/

:root {
	--bcjr-red: #d71920;
	--bcjr-red-dark: #aa1117;
	--bcjr-black: #101010;
	--bcjr-charcoal: #202124;
	--bcjr-ink: #17191c;
	--bcjr-muted: #62676f;
	--bcjr-line: #dfe1e5;
	--bcjr-paper: #fff;
	--bcjr-warm: #f5f3ef;
	--bcjr-radius: 12px;
	--bcjr-shadow: 0 16px 45px rgba(16,16,16,.09);
	--bcjr-display: "Arial Narrow", "Roboto Condensed", Impact, sans-serif;
	--bcjr-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--bcjr-wrap: 1240px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--bcjr-ink); background: var(--bcjr-paper); font: 16px/1.65 var(--bcjr-body); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid #ffbdc0; outline-offset: 3px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; z-index: 9999; top: 12px; left: 12px; width: auto; height: auto; padding: 10px 16px; clip: auto; background: #fff; color: #000; }
.wrap { width: min(calc(100% - 40px), var(--bcjr-wrap)); margin-inline: auto; }
.site-main { min-height: 55vh; }
.eyebrow { margin: 0 0 10px; color: var(--bcjr-red); font-size: .78rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
h1,h2,h3,h4 { margin: 0 0 .6em; font-family: var(--bcjr-display); line-height: .98; letter-spacing: -.025em; text-transform: uppercase; }
h1 { font-size: clamp(3rem, 7vw, 6.5rem); }
h2 { font-size: clamp(2.3rem, 5vw, 4.5rem); }
h3 { font-size: clamp(1.3rem, 2.5vw, 1.8rem); }
p { margin: 0 0 1.15em; }
.lede { max-width: 720px; color: var(--bcjr-muted); font-size: clamp(1.06rem, 2vw, 1.25rem); }
.section { padding: clamp(64px, 8vw, 112px) 0; }
.section--warm { background: var(--bcjr-warm); }
.section--dark { color: #fff; background: var(--bcjr-black); }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 38px; }
.section-head > div { max-width: 760px; }
.button, .wp-element-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 9px; padding: 11px 20px; border: 2px solid var(--bcjr-red); border-radius: 7px; color: #fff; background: var(--bcjr-red); font-weight: 850; line-height: 1.2; text-decoration: none; cursor: pointer; transition: transform .18s, background .18s, border-color .18s; }
.button:hover { background: var(--bcjr-red-dark); border-color: var(--bcjr-red-dark); transform: translateY(-2px); }
.button--outline { color: var(--bcjr-ink); background: transparent; border-color: var(--bcjr-ink); }
.section--dark .button--outline, .hero .button--outline { color: #fff; border-color: #fff; }
.button--light { color: #111; background: #fff; border-color: #fff; }
.button-row { display: flex; flex-wrap: wrap; gap: 12px; }
.announcement { padding: 8px 0; color: #fff; background: var(--bcjr-red); font-size: .87rem; text-align: center; }
.announcement a { margin-left: 8px; font-weight: 900; text-underline-offset: 3px; }
.site-header { position: relative; z-index: 50; background: var(--bcjr-black); color: #fff; }
.header-inner { display: flex; min-height: 82px; align-items: center; gap: 28px; }
.site-branding { flex: 0 0 auto; }
.custom-logo-link { display: flex; align-items: center; }
.custom-logo { width: auto; max-height: 56px; }
.wordmark { display: inline-flex; align-items: baseline; gap: 7px; color: #fff; font: 900 1.4rem/1 var(--bcjr-display); text-decoration: none; text-transform: uppercase; }
.wordmark em { color: var(--bcjr-red); font-size: 1.6em; font-style: italic; }
.main-navigation { margin-left: auto; }
.menu-toggle { display: none; border: 1px solid #555; border-radius: 6px; color: #fff; background: transparent; padding: 9px 12px; }
.main-navigation ul { display: flex; align-items: center; gap: 21px; margin: 0; padding: 0; list-style: none; }
.main-navigation a { font-size: .88rem; font-weight: 780; text-decoration: none; }
.main-navigation a:hover { color: #ff777b; }
.header-actions { display: flex; gap: 8px; }
.header-actions .button { min-height: 40px; padding: 8px 12px; font-size: .82rem; }
.header-actions .whatsapp { color: #101b14; background: #5ae083; border-color: #5ae083; }
.hero { position: relative; isolation: isolate; display: grid; min-height: clamp(620px, 78vh, 830px); align-items: center; overflow: hidden; color: #fff; background: #121212; }
.hero::before { position: absolute; z-index: -1; inset: 0; content: ""; background: linear-gradient(90deg, rgba(8,8,8,.94) 0%, rgba(8,8,8,.72) 48%, rgba(8,8,8,.25) 100%); }
.hero-media { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-content { max-width: 820px; padding: 90px 0; }
.hero h1 { max-width: 800px; }
.hero .lede { color: #e1e1e1; }
.hero-note { margin-top: 18px; color: #c8c8c8; font-size: .93rem; }
.trust-strip { border-bottom: 1px solid var(--bcjr-line); background: #fff; }
.trust-strip-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.trust-mini { padding: 24px; border-right: 1px solid var(--bcjr-line); }
.trust-mini:first-child { padding-left: 0; }
.trust-mini:last-child { border: 0; }
.trust-mini strong { display: block; font-family: var(--bcjr-display); font-size: 1.2rem; text-transform: uppercase; }
.vehicle-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.vehicle-card { position: relative; overflow: hidden; border: 1px solid var(--bcjr-line); border-radius: var(--bcjr-radius); background: #fff; box-shadow: 0 7px 26px rgba(0,0,0,.055); transition: transform .2s, box-shadow .2s; }
.vehicle-card:hover { transform: translateY(-4px); box-shadow: var(--bcjr-shadow); }
.vehicle-card-media { position: relative; display: block; aspect-ratio: 16/10; overflow: hidden; background: #e5e5e5; }
.vehicle-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.vehicle-card:hover .vehicle-card-media img { transform: scale(1.025); }
.status-badge { position: absolute; top: 14px; left: 14px; padding: 5px 10px; border-radius: 999px; color: #fff; background: #181818; font-size: .72rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.status-badge--sold { background: var(--bcjr-red); }
.vehicle-card-body { padding: 22px; }
.vehicle-card h3 { margin-bottom: 5px; }
.vehicle-price { color: var(--bcjr-red); font: 900 1.6rem/1.2 var(--bcjr-display); }
.vehicle-meta { display: grid; grid-template-columns: repeat(2,1fr); gap: 7px 14px; margin: 18px 0; padding: 15px 0; border-block: 1px solid var(--bcjr-line); color: var(--bcjr-muted); font-size: .87rem; }
.vehicle-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 18px; }
.vehicle-tags span { padding: 4px 8px; border-radius: 4px; background: var(--bcjr-warm); font-size: .75rem; font-weight: 750; }
.trust-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 22px; }
.trust-card { padding: 27px; border-top: 4px solid var(--bcjr-red); border-radius: 0 0 var(--bcjr-radius) var(--bcjr-radius); background: #fff; box-shadow: var(--bcjr-shadow); }
.trust-icon { display: grid; width: 42px; height: 42px; margin-bottom: 22px; place-items: center; border-radius: 50%; color: #fff; background: var(--bcjr-black); font-weight: 900; }
.split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(36px, 7vw, 90px); }
.split-media { min-height: 540px; border-radius: var(--bcjr-radius); object-fit: cover; background: #ddd; box-shadow: var(--bcjr-shadow); }
.split-placeholder { display: grid; min-height: 540px; place-items: center; padding: 30px; color: #777; background: #e9e7e2; text-align: center; }
.feature-band { position: relative; overflow: hidden; color: #fff; background: var(--bcjr-charcoal); }
.feature-band::after { position: absolute; right: -5%; bottom: -100px; width: 45%; height: 250px; content: ""; background: var(--bcjr-red); transform: rotate(-8deg); opacity: .8; }
.feature-band .wrap { position: relative; z-index: 1; }
.reviews-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.review-card { padding: 28px; border: 1px solid var(--bcjr-line); border-radius: var(--bcjr-radius); background: #fff; }
.stars { color: var(--bcjr-red); letter-spacing: .12em; }
.review-meta { margin: 20px 0 0; color: var(--bcjr-muted); font-size: .86rem; }
.cta { text-align: center; }
.cta .button-row { justify-content: center; }
.site-footer { color: #d0d0d0; background: #0c0c0c; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 45px; padding: 72px 0 46px; }
.site-footer h3 { color: #fff; font-size: 1rem; letter-spacing: .06em; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer a { color: #d0d0d0; text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.footer-bottom { display: flex; justify-content: space-between; gap: 25px; padding: 20px 0; border-top: 1px solid #333; font-size: .82rem; }
.page-hero { padding: 80px 0; color: #fff; background: var(--bcjr-black); }
.page-hero h1 { font-size: clamp(3rem, 6vw, 5.4rem); }
.breadcrumbs { margin-bottom: 20px; color: #b7b7b7; font-size: .82rem; }
.breadcrumbs a { color: #fff; }
.content-narrow { max-width: 820px; }
.inventory-layout { display: grid; grid-template-columns: 280px 1fr; align-items: start; gap: 34px; }
.filters { position: sticky; top: 24px; padding: 22px; border: 1px solid var(--bcjr-line); border-radius: var(--bcjr-radius); background: #fff; }
.filter-grid { display: grid; gap: 14px; }
.form-field label, .filters label { display: block; margin-bottom: 5px; font-size: .82rem; font-weight: 850; }
.form-control { width: 100%; min-height: 48px; padding: 10px 12px; border: 1px solid #bfc3c8; border-radius: 6px; color: var(--bcjr-ink); background: #fff; }
textarea.form-control { min-height: 130px; resize: vertical; }
.inventory-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.inventory-toolbar .form-control { width: auto; }
.no-results { padding: 60px 24px; border: 2px dashed #c9c9c9; border-radius: var(--bcjr-radius); text-align: center; }
.vehicle-single-head { padding: 38px 0; background: var(--bcjr-warm); }
.vehicle-title-row { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.vehicle-title-row h1 { margin: 0; font-size: clamp(2.6rem, 5vw, 4.8rem); }
.single-price { color: var(--bcjr-red); font: 900 clamp(2rem,4vw,3.2rem)/1 var(--bcjr-display); white-space: nowrap; }
.vehicle-gallery { display: grid; grid-template-columns: 2fr 1fr; gap: 10px; margin-top: 25px; }
.vehicle-gallery img { width: 100%; height: 100%; border-radius: 8px; object-fit: cover; }
.gallery-main { grid-row: span 2; min-height: 530px; }
.gallery-thumb { min-height: 260px; }
.vehicle-detail-layout { display: grid; grid-template-columns: 1fr 360px; align-items: start; gap: 45px; }
.spec-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; margin: 0 0 35px; background: var(--bcjr-line); border: 1px solid var(--bcjr-line); border-radius: var(--bcjr-radius); overflow: hidden; }
.spec { padding: 18px; background: #fff; }
.spec span { display: block; color: var(--bcjr-muted); font-size: .75rem; }
.spec strong { display: block; margin-top: 2px; }
.vehicle-sidebar { position: sticky; top: 25px; padding: 25px; border-radius: var(--bcjr-radius); color: #fff; background: var(--bcjr-black); }
.vehicle-sidebar .button { width: 100%; margin-top: 9px; }
.detail-section { padding: 32px 0; border-bottom: 1px solid var(--bcjr-line); }
.detail-section h2 { font-size: 2rem; }
.equipment-list { columns: 2; padding-left: 20px; }
.form-card { padding: clamp(24px, 4vw, 42px); border: 1px solid var(--bcjr-line); border-radius: var(--bcjr-radius); background: #fff; box-shadow: var(--bcjr-shadow); }
.form-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.form-field--full { grid-column: 1/-1; }
.check-field { display: flex; align-items: start; gap: 9px; font-size: .86rem; }
.form-help { color: var(--bcjr-muted); font-size: .78rem; }
.form-notice { padding: 14px; margin-bottom: 20px; border-left: 4px solid var(--bcjr-red); background: #fff1f1; }
.form-notice--success { border-color: #198754; background: #edf9f2; }
.hp-field { position: absolute; left: -9999px; }
.about-facts { display: grid; grid-template-columns: repeat(5,1fr); gap: 12px; }
.fact { padding: 19px; border-radius: 8px; color: #fff; background: var(--bcjr-charcoal); }
.fact span { display: block; color: #aaa; font-size: .75rem; }
.qa { border-top: 1px solid var(--bcjr-line); }
.qa-item { padding: 22px 0; border-bottom: 1px solid var(--bcjr-line); }
.qa-item h3 { margin-bottom: 7px; font-size: 1.3rem; }
.policy-content h2 { margin-top: 1.5em; font-size: 2rem; }
.cookie-banner { position: fixed; z-index: 999; right: 20px; bottom: 20px; left: 20px; display: flex; max-width: 940px; align-items: center; justify-content: space-between; gap: 24px; padding: 22px; margin: auto; border: 1px solid #3b3b3b; border-radius: 10px; color: #fff; background: #111; box-shadow: 0 15px 55px rgba(0,0,0,.3); }
.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: 4px 0 0; color: #ccc; font-size: .88rem; }
.cookie-banner .button { font-size: .82rem; white-space: nowrap; }
.cookie-settings { padding: 0; border: 0; color: inherit; background: transparent; text-decoration: underline; cursor: pointer; }
.mobile-actions { display: none; }
@media (max-width: 1080px) {
	.main-navigation { order: 3; margin-left: 0; }
	.menu-toggle { display: block; margin-left: auto; }
	.main-navigation .menu { position: absolute; top: 100%; right: 0; left: 0; display: none; padding: 20px; background: #151515; }
	.main-navigation.is-open .menu { display: grid; }
	.header-actions .button:first-child { display: none; }
	.trust-grid, .trust-strip-grid { grid-template-columns: repeat(2,1fr); }
	.vehicle-grid { grid-template-columns: repeat(2,1fr); }
	.reviews-grid { grid-template-columns: repeat(2,1fr); }
	.inventory-layout { grid-template-columns: 1fr; }
	.filters { position: static; }
	.vehicle-detail-layout { grid-template-columns: 1fr; }
	.vehicle-sidebar { position: static; }
	.footer-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 720px) {
	.wrap { width: min(calc(100% - 28px), var(--bcjr-wrap)); }
	.header-inner { min-height: 68px; gap: 10px; }
	.custom-logo { max-height: 45px; }
	.header-actions .button { min-height: 38px; padding: 7px 10px; font-size: 0; }
	.header-actions .button::after { content: "Chat"; font-size: .78rem; }
	.hero { min-height: 630px; }
	.hero::before { background: linear-gradient(0deg, rgba(8,8,8,.98), rgba(8,8,8,.58)); }
	.section-head, .vehicle-title-row, .inventory-toolbar { align-items: start; flex-direction: column; }
	.vehicle-grid, .trust-grid, .reviews-grid, .split, .footer-grid, .form-grid { grid-template-columns: 1fr; }
	.trust-strip-grid { grid-template-columns: 1fr 1fr; }
	.trust-mini { padding: 17px 10px; border-bottom: 1px solid var(--bcjr-line); }
	.split-media, .split-placeholder { min-height: 390px; }
	.vehicle-gallery { grid-template-columns: 1fr 1fr; }
	.gallery-main { grid-column: 1/-1; min-height: 300px; }
	.gallery-thumb { min-height: 145px; }
	.spec-grid { grid-template-columns: repeat(2,1fr); }
	.equipment-list { columns: 1; }
	.about-facts { grid-template-columns: repeat(2,1fr); }
	.footer-bottom { flex-direction: column; }
	.cookie-banner { right: 10px; bottom: 10px; left: 10px; align-items: stretch; flex-direction: column; }
	.mobile-actions { position: fixed; z-index: 80; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; padding: 7px; background: #0d0d0d; box-shadow: 0 -6px 25px rgba(0,0,0,.2); }
	.mobile-actions .button { min-height: 44px; padding: 8px 5px; border-radius: 4px; font-size: .78rem; }
	body.single-vehicle { padding-bottom: 66px; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
