/*
Theme Name: Red Handed Security
Theme URI: https://www.redhandedsecurity.com.au/
Author: Red Handed Security Pty Ltd
Description: Custom block theme for Red Handed Security: corporate and commercial security. Red #EE1C25 on black, Montserrat and Inter.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.0
License: Proprietary
Text Domain: rhs-security
*/

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; }
img { height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.rhs-kicker { font-family: var(--wp--preset--font-family--body); font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--red); margin-bottom: 10px !important; }
.rhs-muted { color: var(--wp--preset--color--muted); }
.rhs-section { padding-top: clamp(64px, 8vw, 104px) !important; padding-bottom: clamp(64px, 8vw, 104px) !important; }
.rhs-head-row { align-items: flex-end !important; margin-bottom: 40px !important; }
.rhs-head-row .wp-block-heading { margin-top: 0; }

/* Buttons */
.wp-block-button__link { transition: background-color .15s ease, transform .15s ease; box-shadow: 0 10px 26px rgba(238, 28, 37, .28); }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline .wp-block-button__link { box-shadow: none; background: transparent; border: 1.5px solid currentColor; }
.rhs-on-dark .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: rgba(255, 255, 255, .45); background: rgba(255, 255, 255, .06); }
.rhs-btn-dark .wp-block-button__link { background: var(--wp--preset--color--ink); box-shadow: none; }

/* ---------- Header ---------- */
.rhs-topbar { font-size: 13px; color: #bdbdc7; }
.rhs-topbar p { margin: 0; }
.rhs-topbar strong { color: #fff; }
.rhs-topbar .rhs-dot::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #22c55e; margin-right: 8px; vertical-align: 1px; }
.rhs-header { border-bottom: 1px solid #2a2a33; }
.rhs-header .wp-block-site-logo img, .rhs-header .rhs-logo img { max-height: 56px; width: auto; }
.rhs-header .wp-block-navigation,
.rhs-header .wp-block-navigation a,
.rhs-header .wp-block-navigation .wp-block-navigation-item__content,
.rhs-header .wp-block-navigation .wp-block-navigation__submenu-icon { color: #e6e6ec !important; }
.rhs-header .wp-block-navigation a:hover,
.rhs-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: #fff !important; }
.rhs-header .wp-block-navigation__container { gap: 22px !important; }
.rhs-header .wp-block-navigation__responsive-container-open svg { fill: #fff; }
.rhs-header .wp-block-navigation__submenu-container { background: #15151b !important; border: 1px solid #2a2a33 !important; border-radius: 10px; padding: 6px; }
.rhs-header .rhs-phone { color: #fff; font-weight: 700; font-size: 15px; line-height: 1.25; margin: 0; }
.rhs-header .rhs-phone small { display: block; color: #a3a3ae; font-weight: 500; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.rhs-header .rhs-phone a { color: #fff; text-decoration: none; }
/* Laptops: drop the header phone (it's also in the top bar) so the menu stays on one line */
@media (max-width: 1180px) { .rhs-header .rhs-phone { display: none; } .rhs-header .wp-block-navigation__container { gap: 18px !important; } }

/* ---------- Hero (Cover block) ---------- */
.rhs-hero.wp-block-cover { min-height: 680px; align-items: flex-end; }
.rhs-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(6,6,9,.95) 0%, rgba(6,6,9,.84) 40%, rgba(6,6,9,.38) 72%, rgba(6,6,9,.18) 100%) !important; opacity: 1 !important; }
.rhs-hero .wp-block-cover__inner-container { padding-top: 90px; padding-bottom: 60px; }
.rhs-hero h1 { color: #fff; max-width: 820px; }
.rhs-hero h1 mark, .rhs-red { background: none !important; color: var(--wp--preset--color--red) !important; }
.rhs-hero .rhs-lead { color: #d3d3dc; font-size: 1.2rem; max-width: 650px; }
/* Hero background video (assets/js/hero-video.js) fades in over the hero photo */
.rhs-hero .rhs-hero-video { opacity: 0; transition: opacity 1.2s ease; }
.rhs-hero .rhs-hero-video.is-on { opacity: 1; }
.rhs-eyebrow { display: inline-block; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #ffc2c4 !important; background: rgba(238,28,37,.14); border: 1px solid rgba(238,28,37,.4); padding: 7px 14px; border-radius: 999px; }
.rhs-pills { margin-top: 48px !important; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.14); gap: 12px !important; }
.rhs-pills p { margin: 0; display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); padding: 9px 15px; border-radius: 999px; }
.rhs-pills p::before { content: "✓"; color: var(--wp--preset--color--red); font-weight: 800; }

/* ---------- Partner logos ---------- */
.rhs-partners { border-bottom: 1px solid var(--wp--preset--color--line); }
/* Logos sit in centred rows, so an odd number still looks tidy: 6 per row on desktop. */
.rhs-logo-grid { --rhs-cols: 6; display: flex !important; flex-wrap: wrap; justify-content: center; gap: 14px !important; }
.rhs-logo-grid .wp-block-image { flex: 0 0 calc((100% - (var(--rhs-cols) - 1) * 14px) / var(--rhs-cols)); box-sizing: border-box; margin: 0; height: 78px; border: 1px solid var(--wp--preset--color--line); border-radius: 12px; display: flex; align-items: center; justify-content: center; padding: 12px 16px; background: #fff; }
.rhs-logo-grid .wp-block-image img { max-height: 44px; width: auto; max-width: 100%; object-fit: contain; }
.rhs-logo-grid .wp-block-image.rhs-padded img { max-height: 74px; }
@media (max-width: 1080px) { .rhs-logo-grid { --rhs-cols: 4; } }

/* ---------- Photo cards (Cover blocks) ---------- */
.rhs-photo-card.wp-block-cover { min-height: 340px !important; border-radius: var(--wp--custom--radius); overflow: hidden; align-items: flex-end; padding: 26px !important; }
.rhs-photo-card .wp-block-cover__background { background: linear-gradient(0deg, rgba(5,5,8,.94) 8%, rgba(5,5,8,.48) 58%, rgba(5,5,8,.1) 100%) !important; opacity: 1 !important; }
.rhs-photo-card h3 { color: #fff; font-size: 1.3rem; margin-bottom: 6px; }
.rhs-photo-card p { color: #d6d6de; font-size: 15px; margin: 0; }
.rhs-photo-card .rhs-more a, .rhs-photo-card .rhs-more { color: #ff8a8f; font-weight: 600; font-size: 14px; margin-top: 12px; text-decoration: none; }
.rhs-icon-badge img { width: 44px !important; height: 44px !important; padding: 11px; border-radius: 11px; background: var(--wp--preset--color--red); }
/* Feature card: spans the whole row (Solutions page, Gallagher electric fencing) */
.rhs-photo-card.rhs-feature { grid-column: 1 / -1; min-height: 400px !important; }
.rhs-photo-card.rhs-feature h3 { font-size: 1.75rem; }
.rhs-photo-card.rhs-feature p { max-width: 620px; font-size: 16px; }
.rhs-photo-card.rhs-feature .wp-block-cover__image-background { object-position: 50% 18%; }

/* Banner with a slogan over a photo or looping video (top of the monitoring and maintenance pages) */
.rhs-banner.wp-block-cover { border-radius: var(--wp--custom--radius); overflow: hidden; padding: clamp(24px, 4vw, 48px) !important; margin-bottom: 2.4em; }
.rhs-banner .wp-block-cover__background { background: linear-gradient(0deg, rgba(6,6,9,.9) 0%, rgba(6,6,9,.5) 55%, rgba(6,6,9,.15) 100%) !important; opacity: 1 !important; }
.rhs-banner .rhs-banner-slogan { color: #fff; font-size: clamp(2rem, 5vw, 3.6rem); line-height: 1.05; margin: 0; }
.rhs-banner .rhs-banner-slogan strong { color: var(--wp--preset--color--red); }
.rhs-banner .rhs-banner-sub { color: #d3d3dc; font-size: 1.15rem; margin-top: 12px; max-width: 640px; }

/* Homepage video band (Gallagher electric fencing) */
.rhs-video-band .wp-block-embed { margin: 0; }
.rhs-video-band .wp-block-embed iframe { border-radius: 18px; box-shadow: 0 24px 60px rgba(11, 11, 14, .22); }

/* ---------- Photos and video in page content ---------- */
.rhs-page-photo.wp-block-image { margin-top: 2.2em; margin-bottom: 2.2em; }
.rhs-page-photo img { display: block; width: 100%; height: auto; border-radius: var(--wp--custom--radius); }
.rhs-page-photo figcaption { color: var(--wp--preset--color--muted); font-size: 13px; text-align: right; margin-top: 8px; }
.rhs-content .wp-block-embed iframe { border-radius: var(--wp--custom--radius); }

/* ---------- Stats ---------- */
.rhs-stats { position: relative; overflow: hidden; }
.rhs-stats::before { content: ""; position: absolute; inset: 0; background: radial-gradient(700px 360px at 90% 0%, rgba(238,28,37,.2), transparent 70%); pointer-events: none; }
.rhs-stats .wp-block-column { border-left: 1px solid #26262d; padding-left: 28px; }
.rhs-stats .wp-block-column:first-child { border-left: 0; padding-left: 0; }
.rhs-stat-number { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: clamp(2.2rem, 4vw, 3.1rem); line-height: 1; color: #fff; margin: 0 0 10px !important; }
.rhs-stat-number strong { color: var(--wp--preset--color--red); }
.rhs-stat-label { color: #b4b4be; font-size: 15px; margin: 0; }

/* ---------- Case studies ---------- */
.rhs-case { border: 1px solid var(--wp--preset--color--line); border-radius: var(--wp--custom--radius); overflow: hidden; background: #fff; height: 100%; }
.rhs-case .wp-block-image { margin: 0; }
.rhs-case .wp-block-image img { width: 100%; height: 240px; object-fit: cover; display: block; }
.rhs-case .rhs-case-body { padding: 24px 26px 26px; }
.rhs-tag { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--red); margin: 0 0 8px !important; }
.rhs-case h3 { font-size: 1.3rem; line-height: 1.25; }
.rhs-check-list { list-style: none; padding-left: 0; }
.rhs-check-list li { position: relative; padding-left: 26px; margin-bottom: 8px; color: var(--wp--preset--color--muted); }
.rhs-check-list li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--wp--preset--color--red); font-weight: 800; }

/* ---------- Industries ---------- */
.rhs-industry { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 14px; padding: 24px !important; gap: 16px !important; align-items: flex-start !important; flex-wrap: nowrap !important; }
.rhs-industry .wp-block-image { margin: 0; flex: none; }
.rhs-industry .wp-block-image img { width: 46px; height: 46px; padding: 11px; border-radius: 10px; background: var(--wp--preset--color--ink); }
.rhs-industry h3 { font-size: 1.05rem; margin: 0 0 4px; }
.rhs-industry p { font-size: 14.5px; color: var(--wp--preset--color--muted); margin: 0; }

/* ---------- Why us ---------- */
.rhs-why { position: relative; overflow: hidden; }
.rhs-why::before { content: ""; position: absolute; inset: 0; background: radial-gradient(640px 420px at 0% 0%, rgba(238,28,37,.18), transparent 70%); pointer-events: none; }
.rhs-why h2, .rhs-why strong { color: #fff; }
.rhs-why p { color: #b9b9c4 !important; }
.rhs-why .rhs-check-list li { color: #d9d9e2; font-size: 1.05rem; padding-left: 38px; margin-bottom: 16px; }
.rhs-why .rhs-check-list li::before { content: "✓"; width: 26px; height: 26px; border-radius: 50%; background: var(--wp--preset--color--red); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; top: 1px; }
.rhs-why .rhs-photo img { border-radius: 18px; width: 100%; height: 520px; object-fit: cover; }

/* ---------- Insights ---------- */
.rhs-insights .wp-block-post-featured-image img { border-radius: 14px; height: 220px; object-fit: cover; }
.rhs-insights .wp-block-post-title { font-size: 1.25rem; line-height: 1.3; }
.rhs-insights .wp-block-post-title a { color: var(--wp--preset--color--text); text-decoration: none; }
.rhs-insights .wp-block-post-terms a { color: var(--wp--preset--color--red); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; text-decoration: none; }
.rhs-insights .wp-block-post-excerpt { color: var(--wp--preset--color--muted); font-size: 15px; }

/* ---------- Consultation CTA ---------- */
.rhs-cta { position: relative; overflow: hidden; }
.rhs-cta::after { content: ""; position: absolute; right: -140px; top: -140px; width: 540px; height: 540px; border-radius: 50%; border: 70px solid rgba(255,255,255,.06); pointer-events: none; }
.rhs-cta h2 { color: #fff; }
.rhs-cta p, .rhs-cta li { color: #ffe3e4; }
.rhs-cta .rhs-check-list li::before { color: #fff; }
.rhs-cta .rhs-form-card { background: #fff; color: var(--wp--preset--color--text); border-radius: 18px; padding: 30px !important; box-shadow: 0 24px 60px rgba(0,0,0,.25); }
.rhs-cta .rhs-form-card p, .rhs-cta .rhs-form-card label { color: var(--wp--preset--color--text); }
.rhs-cta .rhs-call { font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: 1.7rem; color: #fff; }
.rhs-cta .rhs-call a { color: #fff; text-decoration: none; }

/* ---------- Forms (Contact Form 7) ---------- */
.wpcf7 form p { margin: 0 0 12px; }
.wpcf7 label { display: block; font-size: 13.5px; font-weight: 600; color: var(--wp--preset--color--text); }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 input[type=tel], .wpcf7 select, .wpcf7 textarea { width: 100%; margin-top: 6px; border: 1px solid #dcd9d9; border-radius: 10px; padding: 12px 14px; font: inherit; font-size: 15px; font-weight: 400; color: var(--wp--preset--color--text); background: #fff; box-sizing: border-box; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { outline: 2px solid rgba(238,28,37,.35); border-color: var(--wp--preset--color--red); }
.wpcf7 textarea { min-height: 110px; }
.wpcf7 input[type=file] { margin-top: 8px; font-size: 14px; font-weight: 400; }
.rhs-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 12px; }
.wpcf7 input[type=submit] { width: 100%; background: var(--wp--preset--color--red); color: #fff; border: 0; border-radius: 10px; padding: 15px 22px; font-family: inherit; font-weight: 600; font-size: 15px; cursor: pointer; box-shadow: 0 10px 26px rgba(238,28,37,.28); }
.wpcf7 input[type=submit]:hover { background: var(--wp--preset--color--red-dark); }
.wpcf7 .wpcf7-spinner { display: block; margin: 8px auto 0; }
.wpcf7-not-valid-tip { font-size: 12.5px; font-weight: 500; }
.wpcf7 form .wpcf7-response-output { margin: 12px 0 0; border-radius: 10px; font-size: 14px; }
.rhs-content .wpcf7 { max-width: 760px; }

/* ---------- Page banner (inner pages) ---------- */
.rhs-page-hero { position: relative; overflow: hidden; }
.rhs-page-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(620px 340px at 85% 20%, rgba(238,28,37,.22), transparent 70%); pointer-events: none; }
.rhs-page-hero h1 { color: #fff; }
.rhs-page-hero p { color: #c9c9d3; max-width: 720px; }

/* Long-form content */
.rhs-content h2 { font-size: 1.9rem; margin-top: 2.2em; }
.rhs-content h3 { font-size: 1.3rem; margin-top: 1.6em; }
.rhs-content p, .rhs-content li { font-size: 1.05rem; }
.rhs-content .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line); padding: 16px 0; }
.rhs-content .wp-block-details summary { font-weight: 600; font-size: 1.05rem; cursor: pointer; }

/* Sample label for placeholder content */
.rhs-sample { position: relative; }
.rhs-sample::before { content: "SAMPLE"; position: absolute; top: 14px; left: 14px; z-index: 3; font-size: 10.5px; font-weight: 800; letter-spacing: .12em; background: rgba(255,255,255,.94); color: #18181b; padding: 4px 8px; border-radius: 6px; }

/* ---------- Footer ---------- */
.rhs-footer { color: #b4b4be; font-size: 14.5px; }
.rhs-footer h4 { color: #fff; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; }
.rhs-footer a { color: #b4b4be; text-decoration: none; }
.rhs-footer a:hover { color: #fff; }
.rhs-footer .rhs-badges .wp-block-image img { height: 52px; width: auto; background: #fff; border-radius: 6px; padding: 3px; }
.rhs-footer .rhs-lic { font-size: 13px; color: #8c8c97; }
.rhs-footer-bottom { border-top: 1px solid #1e1e24; font-size: 13px; color: #8c8c97; }
.rhs-footer ul { list-style: none; padding-left: 0; }
.rhs-footer ul li { margin-bottom: 8px; }

/* ---------- Phones ---------- */
@media (max-width: 781px) {
	.rhs-topbar .rhs-topbar-left { display: none; }
	.rhs-header .rhs-phone { display: none; }
	.rhs-hero.wp-block-cover { min-height: 0; }
	.rhs-hero .wp-block-cover__background { background: linear-gradient(0deg, rgba(6,6,9,.95) 0%, rgba(6,6,9,.8) 55%, rgba(6,6,9,.5) 100%) !important; }
	.rhs-hero .wp-block-cover__inner-container { padding-top: 40px; padding-bottom: 40px; }
	.rhs-stats .wp-block-column { border-left: 0; padding-left: 0; }
	.rhs-why .rhs-photo img { height: 340px; }
	/* Card and tile grids stack on phones (WordPress otherwise keeps the fixed column count). */
	.wp-block-group.is-layout-grid:not(.rhs-logo-grid), .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr !important; }
	.rhs-logo-grid { --rhs-cols: 3; }
	.rhs-banner.wp-block-cover { min-height: 300px !important; }
	.rhs-logo-grid .wp-block-image { height: 64px; padding: 8px 10px; }
	.rhs-form-grid { grid-template-columns: 1fr; }
}
