/*
	============================================================
	Project Name: "The Awarded Contract" — True Shield Security Services Website Project
	Description: A fully original website created using basic HTML, CSS,
							 and JavaScript elements for a locally owned and operated 
							 manned security services — True Shield Security. Designed and built as a
							 collaborative portfolio project.

	Created By:
		• Alexandria S.
		• Mohammed M.

	Date: December 9, 2025
	Location: Ontario, Canada

	Ownership: This site was developed in partnership with True Shield Security Services,
						 with full approval and contribution from the business.
						 All content and design elements are original and tailored
						 to represent the brand's local presence and mission.

	Copyright © 2025 True Shield Security Services & Molex | All Rights Reserved.

	✨ Built with pride. Fueled by community. Powered by vision. ✨
	============================================================
*/
:root {
	--bg: #0b0b0b;
	--gold: #C9A447;
	--white: #ffffff;
	--text: #0b1220; /* tuned body copy color for better contrast */
	--gold-dark: #8f722a; /* darker gold for higher contrast when needed */
}

/* Avatar wrapper: stack photo above the LinkedIn button */
.avatar-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
}
.team-card .avatar {
	margin: 0;
}
.team-card .social-links {
	margin-top: 0;
	display: flex;
	align-items: center;
}

/* Global resets and typography */
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
	margin: 0;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
	color: var(--text);
	font-weight: 400;
	background: var(--white);
	-webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}

/* Responsive styles for the security main image */
.hero-image-wrap {
	max-width: 100%;
	height: auto;
}
.security-main-asset { width: 100%; height: auto; object-fit: cover; }

/* Header */

.site-header {
	position: sticky;
	top: 0;
	left: 0;
	right: 0;
	background: var(--bg);
	color: var(--white);
	padding: 22px 0;
	z-index: 9999; /* ensure header always sits above hero media */
	-webkit-backdrop-filter: saturate(120%) blur(6px);
	backdrop-filter: saturate(120%) blur(6px);
}


/* Header behavior is controlled by JS toggling the `.scrolled` class. */
	 /* keep Learn More gold by default; on hover make it high-contrast black */
	 .home .services-grid .card .card-body .learn-more:hover,
	 .home .services-grid .card .card-body a:hover { color: #000000 !important; transform:translateX(4px); }
	.site-header .site-header-inner { max-width:1400px; margin:0 auto; display:flex; align-items:center; gap:20px; padding:20px 12px; padding-left:360px; min-height:80px; }

	/* For .card-style-dark on the homepage: keep Learn More gold by default, black on hover */
	.home .services-grid .card.card-style-dark .card-body .learn-more,
	.home .services-grid .card.card-style-dark .card-body a { color: var(--gold) !important; }
	.home .services-grid .card.card-style-dark .card-body .learn-more:hover,
	.home .services-grid .card.card-style-dark .card-body a:hover { color: #000 !important; transform: translateX(4px); }
	/* Pin the brand to the viewport left edge so the logo sits flush */
	.site-header .brand { display:flex; align-items:center; flex:0 0 auto; margin-right: auto; position:absolute; left:0; top:50%; transform:translateY(-50%); padding-left:0; z-index:70; }
	.site-header img { height:auto; width:auto; max-height:210px; max-width:480px; display:block; padding:1px 0 1px 0; }
	.site-header img { height:auto; width:auto; max-height:140px; max-width:320px; display:block; }

	nav { margin-left:auto; display:flex; gap:18px; align-items:center; align-self:center; padding-left:0; }

	@media (max-width: 1000px) {
		.site-header img { max-height:150px; max-width:340px; }
		.site-header .site-header-inner { padding-left:280px; padding-right:0; }
	}

/* Accessibility utilities (non-hero fixes) */
.fix-contrast-dark-strong { color: var(--white) !important; background: rgba(0,0,0,0.6); padding: 0 2px; }

/* Animated modern card styles for services grid */
.services-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap:18px; }
.card { background: linear-gradient(180deg, rgba(255,255,255,0.02), rgba(0,0,0,0.02)); border-radius:12px; overflow:hidden; transition:transform .28s cubic-bezier(.22,.9,.34,1), box-shadow .28s ease; will-change:transform;
	box-shadow: 0 4px 10px rgba(4,8,12,0.04);
}
.card:hover, .card:focus-within { transform: translateY(-8px) scale(1.01); box-shadow: 0 20px 40px rgba(4,8,12,0.12); }
.card-media img { width:100%; height:140px; object-fit:cover; display:block; }
.card-body { padding:14px; }
.card .learn-more { color:var(--gold); font-weight:600; text-decoration:none; transition:transform .22s ease, color .18s ease; }
.card .learn-more:hover { transform: translateX(6px); color:#000; }

/* subtle entrance animation for cards */
@keyframes card-fade-up { from { opacity:0; transform: translateY(10px); } to { opacity:1; transform: translateY(0); } }
/* cards are invisible until JS marks them visible */
.card { --i: 0; }
.card[data-animated="true"] { opacity:0; transform: translateY(20px) scale(.98); }
.card[data-animated="true"].is-visible { opacity:1; transform: translateY(0) scale(1); animation: card-fade-up .64s cubic-bezier(.22,.9,.34,1) both; animation-delay: calc(var(--i) * 140ms); }

/* Use darker gold for card actions */
.card .learn-more { color: var(--gold-dark); font-weight:700; }
.card .learn-more:hover { color:#0b0b0b; }

/* Home page: make cards visually match services page's light/dark card styles */
.home .services-grid .card { background: var(--white); color: #071018; border-left:4px solid var(--gold); border-radius:12px; overflow:hidden; box-shadow: 0 6px 18px rgba(16,24,40,0.04); display:flex; flex-direction:column; min-height:320px; }
.home .services-grid .card.card-style-dark { background: linear-gradient(180deg, rgba(6,8,10,0.04), rgba(8,10,12,0.04)); color:#071018; border-left:4px solid var(--gold-dark); box-shadow: 0 8px 20px rgba(2,6,10,0.04); }
.home .services-grid .card.card-style-dark h3 { color: var(--gold-dark); }
.home .services-grid .card .card-body { padding:16px; display:flex; flex-direction:column; flex:1; }
.home .services-grid .card .card-body .learn-more { margin-top:auto; }

/* Hero slogan styling */
.hero-slogan { font-size: clamp(28px, 5.6vw, 56px); margin:0 0 8px 0; letter-spacing: -0.02em; color: var(--white); font-weight:700; text-transform:none; }
.hero-title { color: rgba(255,255,255,0.95); font-weight:600; margin-bottom:10px; }
.hero-sub { color: rgba(255,255,255,0.9); }

	@media (max-width: 640px) {
		.site-header img { max-height:72px; max-width:160px; }
		.site-header .site-header-inner { padding-left:120px; padding-right:12px; }
		nav { gap:8px; font-size:14px; }
		/* Keep the quote CTA visible on portrait phones; hide only on very narrow landscape */
		.header-cta { display:flex; margin-left:8px; }
		.header-cta .btn { padding:8px 10px; font-size:14px; }
		.site-header { padding:8px 0; }
	}

/* Prevent header briefly switching to translucent gray on small mobile viewports */
@media (max-width: 420px) {
	.site-header.scrolled, .site-header.transparent {
		background: var(--bg) !important;
		color: var(--white) !important;
		box-shadow: none !important;
	}
	.site-header.scrolled nav a, .site-header.transparent nav a { color: var(--white) !important; }
}

/* Mobile fix: avoid 100vw hero + translate causing horizontal overflow and a
   visible right-side band on some mobile browsers. On small screens use
   full-width layout without the 100vw shift and hide any accidental overflow. */
@media (max-width: 640px) {
	.hero {
		width: 100% !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		left: 0 !important;
		transform: none !important;
	}
	.site-header .site-header-inner { padding-left: 12px !important; padding-right: 12px !important; }
	html, body { overflow-x: hidden; }

	/* Extra safety: ensure hero media and background never exceed viewport width */
	.hero, .hero-media, .hero .hero-bg { max-width: 100% !important; overflow-x: hidden !important; }
	.hero-media img, .hero-media .security-main-asset { max-width: 100% !important; width: 100% !important; height: auto !important; display: block !important; }

	/* On small screens remove the heavy overlay so the image shows clearly under the slogan */
	.hero-media .hero-media-overlay { background: none !important; }

	/* Ensure hero and media always fill the hero area to avoid showing page background */
	.hero { position: relative; min-height: 64vh; overflow: hidden !important; background: none !important; }
	.hero .hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center top; height: 100%; width: 100%; }
	.hero-media { position: absolute; inset: 0; height: 100%; width: 100%; z-index: 0; }
	.hero-media .security-main-asset { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
	/* Mobile framing: nudge the focal point to the right and gently zoom out so 'SECURITY' is visible */
	.hero-media .security-main-asset { object-position: 65% center !important; transform: scale(0.92) translateZ(0); transform-origin: center center; }
	.hero .hero-inner { position: relative; z-index: 2; }
}

@media (orientation: landscape) and (max-width: 420px) {
	.header-cta { display:none; }
}

/* Ensure nav links wrap cleanly on narrow devices and remain touch-friendly */
nav { flex-wrap:wrap; }
nav a { padding:10px 8px; }
	nav { margin-left:auto; display:flex; gap:18px; align-items:center; align-self:center; }
nav a { color: var(--white); text-decoration: none; font-weight:600; padding:6px 8px; letter-spacing:0.2px; }
.site-header h1, .site-header h2, h1, h2, h3 { font-weight: 600; }
h1 { font-size:32px; font-weight:700; letter-spacing: -0.4px; color: #111; margin-bottom:8px; font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; }
h2 { font-size:22px; font-weight:600; color:#222; margin-bottom:6px; }
h3, h4 { color:#111; font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; }
.btn { display:inline-block; background:var(--gold); color:#111; padding:10px 14px; border-radius:6px; text-decoration:none; font-weight:700; }
.header-cta { margin-left:12px; }

/* Header scroll behavior: solid at top, light translucent on scroll */
.site-header { transition: background-color 240ms ease, box-shadow 240ms ease, backdrop-filter 240ms ease; }
.site-header { background: var(--bg); }
.site-header.scrolled {
	/* On scroll we make the header transparent so the site content shows through.
	   The default (no .scrolled) state remains the dark header (var(--bg)). */
	background: transparent !important;
	color: #ffffff !important;
	box-shadow: none !important;
	backdrop-filter: none !important;
}
.site-header.scrolled nav a { color: #ffffff !important; }
.site-header.scrolled .brand img { filter: none !important; }
/* Backwards compat: normalize `.transparent` to be truly transparent so
   the hero shows through and no gray band remains. */
.site-header.transparent {
	background: transparent !important;
	color: #ffffff !important;
	box-shadow: none !important;
	backdrop-filter: none !important;
}
.site-header.transparent nav a { color: #ffffff !important; }
.site-header.transparent .brand img { filter: none !important; }

/* Hero */
/* Mobile-first hero: avoid 100vw/tranform math on small screens which can
	cause horizontal overflow (mobile browser scrollbar inclusion). Width is
	normal flow on mobile; desktop restores full-bleed in the media query below. */
.hero { position: relative; color: var(--white); min-height: 64vh; display:flex; align-items:center; width:100%; left:0; transform:none; margin:0; overflow:hidden; border-radius:0; }
.hero .hero-bg { position:absolute; inset:0; background-position:center; background-size:cover; filter:brightness(.45); }
/* hero-media sits on top of the hero-bg and behind the hero-inner content */
.hero-media { position:absolute; inset:0; z-index:0; display:block; overflow:hidden; border-radius:0; height:100%; width:100%; }
.hero-media .security-main-asset { width:100%; height:100%; object-fit:cover; display:block; border-radius:0; max-height:100%; }
.hero-media .hero-media-overlay { position:absolute; inset:0; background: linear-gradient(180deg, rgba(2,8,10,0.48) 0%, rgba(2,8,10,0.6) 100%); mix-blend-mode: normal; pointer-events: none; max-height:100%; }
.hero .hero-inner { position:relative; z-index:2; max-width:1400px; margin:0 auto; padding:24px 16px 12px 16px; text-align:left; }

/* Hero text styling when overlaid on image */
.hero .hero-inner h1 { color: #fff; text-shadow: 0 8px 30px rgba(1,6,10,0.72); font-size: clamp(28px, 4.8vw, 48px); line-height:1.02; margin-bottom:8px; font-weight:800; }
.hero .hero-inner p { color: rgba(255,255,255,0.92); text-shadow: 0 6px 18px rgba(1,6,10,0.55); font-size: clamp(14px, 1.6vw, 18px); max-width: 720px; }
.hero .hero-inner { position:relative; z-index:2; max-width:1400px; margin:0 auto; padding:40px 20px; text-align:left; }

/* Desktop-only full-bleed hero to preserve the original visual intent */
@media (min-width: 641px) {
	.hero {
		width: 100vw;
		left: 50%;
		transform: translateX(-50%);
		margin-left: calc(-1 * (100vw - 100%)/2);
		margin-right: calc(-1 * (100vw - 100%)/2);
	}
}

/* Layout */
.container { max-width:1400px; margin:0 auto; padding:12px 12px; }

/* Ensure main content has a small bottom padding to avoid visual gap above footer
	caused by margin collapse on some devices/browsers. */
/* Ensure main grows to push footer to the bottom of the viewport when content is short */
main { padding-bottom: 12px; flex: 1 0 auto; }

/* Make sure hero doesn't create accidental gaps below on some devices */
.hero { margin-bottom: 0; }
.container { margin-top: 12px; }

/* Cards */
.services-grid { display:flex; flex-direction:column; gap:18px; margin-top:18px; }
.services-page .services-grid .card { display:grid; grid-template-columns:420px 1fr; gap:16px; align-items:stretch; background:#fff; box-shadow:0 8px 22px rgba(2,2,2,0.06); border-radius:10px; overflow:hidden; border-left:6px solid rgba(201,164,71,0.04); min-height:300px; }

/* Mobile tweak: stack service cards and cap image heights so the card containers don't appear oversized */
@media (max-width: 640px) {
	.services-page .services-grid .card {
		grid-template-columns: 1fr;
		gap: 12px;
		min-height: auto;
		align-items: start;
	}
	.services-page .services-grid .card-media {
		width: 100%;
		flex: 0 0 auto;
		height: auto;
	}
	.services-page .services-grid .card-media img,
	.services-grid .card img,
	.card-media img {
		height: 160px;
		object-fit: cover;
		object-position: center center;
	}
	.services-page .services-grid .card .card-body { padding:12px; }
}
.services-grid .card img { display:none; }
.services-page .services-grid .card .card-body { padding:16px; flex:1; display:flex; flex-direction:column; justify-content:space-between; gap:8px; }
.services-page .services-grid .card-media { width:100%; height:100%; flex:0 0 auto; }
.services-page .services-grid .card-media img { width:100%; height:100%; object-fit:cover; object-position:center center; transition: transform 180ms ease; display:block; }

/* Target the first service image on the services page to show less-cropped framing */
.services-page .services-grid .card:first-of-type .card-media img {
	object-position: center 34%;
	transform: scale(0.92);
}
.services-page .services-grid .card .card-body { padding:16px; flex:1; display:flex; flex-direction:column; justify-content:flex-start; gap:8px; }
.services-grid .card h3 { margin:0 0 8px 0; font-size:20px; font-weight:800; font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; color:#071018; }
.services-grid .card img { width:360px; height:100%; object-fit:cover; flex:0 0 360px; display:block; }
services-grid .card img { width:100%; height:auto; object-fit:cover; flex:0 0 360px; max-width:360px; display:block; }
.services-grid .card .card-body { padding:16px; flex:1; display:flex; flex-direction:column; justify-content:space-between; gap:8px; }
.services-grid .card-media { width:360px; flex:0 0 360px; height:100%; overflow:hidden; display:block; }
services-grid .card-media { width:360px; flex:0 0 360px; height:auto; max-height:420px; overflow:hidden; display:block; }
.services-grid .card-media img { width:100%; height:100%; object-fit:cover; display:block; }
.services-grid .card p { margin:0 0 12px 0; color:#34414a; line-height:1.6; }
.services-grid .card a { color:var(--bg); font-weight:700; text-decoration:none; margin-top:8px; }

/* Apply light card-style variant to every services page card (CSS-only, no HTML edits) */
.services-page .services-grid .card {
	background: var(--white) !important;
	color: #071018 !important;
	border-left: 4px solid var(--gold) !important;
	box-shadow: 0 10px 28px rgba(16,24,40,0.06) !important;
	display:grid; grid-template-columns:420px 1fr; gap:16px; align-items:start; border-radius:10px; overflow:hidden; border-left:6px solid rgba(201,164,71,0.04); min-height:0;
}
.services-page .services-grid .card h3 { color: #071018 !important; }
.services-page .services-grid .card:hover h3 { color: var(--gold-dark) !important; }
/* Ensure links inside services cards remain legible */
.services-page .services-grid .card .card-body a { color: var(--bg) !important; }

/* Ensure the "Learn More" link sits at the bottom of the card for visual consistency */
.card .card-body .learn-more { margin-top: 14px; align-self: flex-start; display:inline-block; border-radius:6px; background:var(--gold); color:#111; font-weight:700; text-decoration:none; box-shadow:0 6px 14px rgba(16,24,40,0.06); transition: transform 140ms ease, box-shadow 140ms ease; padding:10px 14px; }
.card .card-body .learn-more:hover { transform: translateY(-2px); box-shadow:0 10px 22px rgba(16,24,40,0.10); }

/* Service pages: keep request/learn links aligned to the bottom of their content columns */
.service .content .learn-more { margin-top: auto; display:inline-block; }

/* Services listing/detail: ensure the "Request this service" links render as buttons (padded) */
.services-grid .card .card-body .learn-more {
	margin-top: 14px;
	align-self: flex-start;
	display: inline-block;
	padding: 8px 12px;
	border-radius: 6px;
	background: var(--gold);
	color: #111;
	font-weight: 700;
	text-decoration: none;
	box-shadow: 0 6px 14px rgba(16,24,40,0.06);
	transition: transform 140ms ease, box-shadow 140ms ease;
}
.services-grid .card .card-body .learn-more:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 22px rgba(16,24,40,0.10);
}

/* Founder card styles (extracted from inline markup for consistency) */
.founder-card {
	background:#fff;
	padding:18px;
	border-radius:10px;
	box-shadow:0 8px 24px rgba(2,2,2,0.06);
	margin-top:12px;
}
.founder-card h3 { margin:0 0 8px 0; font-size:22px; }
.founder-card .title { color:#666; font-weight:600; margin-left:12px; font-size:14px; }
.founder-card p { margin:0 0 12px 0; color:#333; line-height:1.6; }
.founder-card ul { margin:0 0 0 18px; color:#444; line-height:1.5; }

/* Avatar utility: larger, professional headshots for management */
.avatar {
	width:88px;
	height:88px;
	min-width:88px;
	border-radius:8px;
	overflow:hidden;
	flex:0 0 auto;
	display:flex;
	align-items:center;
	justify-content:center;
	background:#eee;
}

/* Strong homepage flush rules: remove any gap between the card image and the title */
.home .services-grid .card-media,
.home .services-grid .card-media img,
.home .services-grid .card .card-body {
	margin: 0 !important;
	padding: 0 !important;
}
.home .services-grid .card .card-body h3 {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1.02 !important;
	font-size: 17px !important;
}
.home .services-grid .card .card-body .learn-more,
.home .services-grid .card .card-body a {
	margin-top: 4px !important;
}
.avatar img { width:100%; height:100%; object-fit:cover; display:block; }

@media (max-width:1000px) {
	.avatar { width:64px; height:64px; min-width:64px; }
}

/* Header responsive improvements: wrap and center nav/CTA on narrower viewports */
@media (max-width: 768px) {
	.site-header .site-header-inner {
		flex-wrap: wrap;
	}

	nav {
		width: 100%;
		justify-content: center;
		flex-wrap: wrap;
		gap: 12px;
	}

	.header-cta {
		width: 100%;
		justify-content: center;
		margin-top: 8px;
	}
}

/* Use aspect-ratio for predictable media containers on the services page */
.services-page .services-grid .card-media { aspect-ratio: 16 / 9; overflow: hidden; }
.services-page .services-grid .card-media img { width:100%; height:100%; object-fit:cover; display:block; }

/* Progressive enhancement: use background-image on small viewports for select cards
   while keeping the <img> in the DOM for accessibility. JavaScript will toggle
   `body.use-bg` on small screens and apply the background image from the
   element's `data-bg-src` attribute. */
.bg-enhance { background-repeat: no-repeat; background-size: cover; background-position: center center; }

/* When JS enables the enhancement, hide the original <img> visually but keep it available
   to screen readers and assistive tech (preserve DOM order and alt attribute). */
body.use-bg .bg-enhance img {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	clip-path: inset(50%) !important;
}

/* Mobile-specific background positioning for top-aligned heads */
@media (max-width: 640px) {
	body.use-bg .bg-enhance { background-position: center top !important; }
}

@media (max-width:640px) {
	.avatar { width:48px; height:48px; min-width:48px; }
}

.about-teaser { display:flex; gap:24px; align-items:center; flex-wrap:wrap; }

/* Very narrow devices: stack header rows and make CTA full-width under nav to avoid overlap */
@media (max-width: 420px) {
	.site-header .site-header-inner { display:flex; flex-direction:column; align-items:stretch; gap:6px; padding-left:12px; padding-right:12px; }
	.site-header .brand { position:static; transform:none; padding-left:0; margin:0; }
	.site-header nav { order:2; display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
	.header-cta { order:3; display:block; width:100%; padding:0 12px 12px 12px; margin-left:0; }
	.header-cta .btn { display:block; width:100%; text-align:center; padding:10px 12px; }
	.site-header .site-header-inner nav a { padding:8px 6px; }
}
.cta-banner { background:var(--bg); color:var(--white); text-align:center; padding:28px 20px; margin-top:28px; }

/* Services page */
.service { display:flex; gap:18px; margin-bottom:26px; align-items:stretch; flex-wrap:wrap; }
.service img { width:360px; height:220px; object-fit:cover; border-radius:8px; }
.service .content { flex:1; min-width:260px; }
.btn-quote { background:var(--gold); color:#111; padding:10px 14px; border-radius:6px; text-decoration:none; font-weight:700; display:inline-block; margin-top:12px; }
	/* Reduce hero min-height on short viewports/landscape phones to avoid overflow gaps */
	.hero { min-height: 40vh; }
	/* Ensure hero media image doesn't create overflow on short landscape devices */
	/* Allow hero media to fully fill the hero on narrow screens */
	.hero-media { position:absolute; inset:0; height:100%; }
	.hero-media .security-main-asset { width:100%; height:100%; object-fit:cover; max-height:none !important; }
	/* Increase touch target sizes and ensure nav wraps cleanly */
	nav a { padding:12px 10px; }
	/* Slightly increase bottom padding to avoid footer gap on small devices */
	main { padding-bottom: 18px; flex: 1 0 auto; }

	main > *:last-child { margin-bottom: 0; }

	footer { flex-shrink: 0; padding-top: 8px; }


/* Orientation-specific stability tweaks */
@media (orientation: landscape) and (max-width: 900px) {
    /* Landscape phones/tablets: reduce hero height and increase content stacking */
    .hero { min-height: 38vh; }
    .hero-media .security-main-asset { max-height: 48vh; }
    .site-header .site-header-inner { padding-left: 140px; }
}
/* Contact page */
.contact-grid { display:grid; grid-template-columns:1fr 360px; gap:24px; align-items:start; }

/* Legal / Privacy page styling */
.legal-page main.container { max-width:960px; margin:24px auto; padding:24px; background: #fff; border-radius:10px; box-shadow: 0 8px 20px rgba(2,8,12,0.04); }
.legal-page h1 { font-size:28px; margin-bottom:6px; }
.legal-page .muted { color:#68727a; margin-bottom:18px; }
.legal-page h2 { margin-top:18px; margin-bottom:8px; font-size:18px; }
.legal-page p, .legal-page li { color:#34414a; line-height:1.7; }
.legal-page ul { margin-left:20px; }
.legal-page section { margin-bottom:16px; }

form { background:#fff; padding:18px; border-radius:8px; box-shadow:0 6px 18px rgba(2,2,2,0.06); }
label { display:block; margin:8px 0 6px; font-weight:600; color:#222; }
input[type="text"], input[type="email"], input[type="tel"], textarea { width:100%; padding:10px; border:1px solid #ddd; border-radius:6px; font-size:14px; }
textarea { min-height:140px; resize:vertical; }
.submit { background:var(--gold); color:#111; padding:10px 14px; border-radius:6px; border:none; font-weight:700; cursor:pointer; margin-top:12px; display:inline-block; }
.map-placeholder { background:#e9e9e9; border-radius:8px; height:220px; display:flex; align-items:center; justify-content:center; color:#666; font-weight:600; }
.contact-info { background:#fff;padding:14px;border-radius:8px;box-shadow:0 6px 18px rgba(2,2,2,0.06); }
.contact-info { padding:18px 20px; }
/* Polished contact form and map styling */
.map-wrapper { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:10px; min-height:220px; }
.map-wrapper iframe { position:absolute; left:0; top:0; width:100%; height:100%; border:0; }

form { max-width:960px; }
form input[type="text"], form input[type="email"], form input[type="tel"], form textarea {
	background: #fff;
	border: 1px solid #e3e6e9;
	box-shadow: inset 0 1px 0 rgba(255,255,255,0.6);
	transition: box-shadow 160ms ease, border-color 160ms ease;
}
form input:focus, form textarea:focus { outline: none; border-color: rgba(201,164,71,0.9); box-shadow: 0 6px 18px rgba(201,164,71,0.08); }
label { color:#223; }
.contact-grid form { padding:22px; }
.contact-grid .contact-info { padding:18px; }
.submit { background: linear-gradient(180deg,var(--gold), color-mix(in srgb,var(--gold) 72%, black)); box-shadow: 0 8px 18px rgba(16,24,40,0.08); }
/* Unified primary button used for request CTAs */
.btn-primary, .submit { display:inline-block; background:var(--gold); color:#111; padding:10px 14px; border-radius:6px; border:none; font-weight:700; text-decoration:none; box-shadow:0 8px 18px rgba(16,24,40,0.08); transition: transform 160ms ease, box-shadow 160ms ease; }
.btn-primary:hover, .submit:hover { transform: translateY(-2px); box-shadow:0 14px 28px rgba(16,24,40,0.12); }
.map-fallback { display:flex; justify-content:center; }
.map-static-link svg { max-width:320px; width:100%; height:auto; border-radius:8px; display:block; }
.contact-info .btn-primary { padding:8px 12px; font-size:14px; }

/* Map direction CTA buttons (small) */
.map-cta-group { display:flex; gap:8px; justify-content:center; margin-top:8px; }
.map-cta-btn { display:inline-block; padding:6px 10px; border-radius:6px; font-weight:700; text-decoration:none; font-size:13px; border:1px solid rgba(16,24,40,0.06); box-shadow: 0 6px 14px rgba(16,24,40,0.04); transition: transform 140ms ease, box-shadow 140ms ease; }
.map-cta-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(16,24,40,0.08); }
.map-cta-btn.google { background: linear-gradient(180deg,var(--gold), color-mix(in srgb,var(--gold) 72%, black)); color:#111; }
.map-cta-btn.apple { background:#111; color:#fff; }
.map-cta-btn.waze { background:#ff6f00; color:#fff; }

/* Circular logo-only CTA buttons for map directions (used inside .contact-info) */
.map-cta-logos { display:block; }
.map-cta-logos .map-cta-note { color: #334148; }
.map-cta-icons { display:flex; gap:12px; align-items:center; }
.map-cta-logo { display:inline-flex; width:56px; height:56px; align-items:center; justify-content:center; border-radius:50%; background:#ffffff; border:1px solid rgba(16,24,40,0.06); box-shadow: 0 8px 18px rgba(16,24,40,0.06); transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease; text-decoration:none; overflow:hidden; }
.map-cta-logo img { width:72%; height:72%; object-fit:contain; display:block; border-radius:0; transform: translateZ(0); }
.map-cta-logo:focus { box-shadow: 0 0 0 5px rgba(143,114,42,0.14), 0 10px 22px rgba(16,24,40,0.08); outline: none; }
.map-cta-logo:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(16,24,40,0.12), 0 0 0 4px rgba(201,164,71,0.10); background: color-mix(in srgb, var(--gold) 12%, white); }

/* Inner faint gold stroke that shows on hover/focus for visual polish */
.map-cta-logo::after { content: ""; position: absolute; inset: 6px; border-radius: 50%; pointer-events: none; box-shadow: inset 0 0 0 2px rgba(255,255,255,0); transition: box-shadow 180ms ease, opacity 180ms ease; opacity: 0; }
.map-cta-logo:hover::after, .map-cta-logo:focus::after { box-shadow: inset 0 0 0 2px rgba(201,164,71,0.14); opacity: 1; }

/* Waze: prefer an inline SVG/image element that uses preserveAspectRatio="xMidYMid slice"
   so the raster logo fills the circular CTA and crops consistently.
   The actual <svg> is in the HTML; these rules style that SVG to match the icon sizing.
*/
.map-cta-logo svg { width:76%; height:76%; display:block; }
.map-cta-logo svg image { width:100%; height:100%; display:block; pointer-events:none; }
.map-cta-logo:focus svg, .map-cta-logo:focus image, .map-cta-logo:hover svg, .map-cta-logo:hover image {
	/* subtle nudge on hover/focus for parity with other icons */
	transform: translateY(-2px);
}


/* Slightly larger on desktop for touch comfort */
@media (min-width: 1000px) {
	.map-cta-logo { width:72px; height:72px; }
	.map-cta-logo img { width:76%; height:76%; }
}

@media (max-width: 640px) {
	.map-cta-icons { gap:8px; }
	.map-cta-logo { width:48px; height:48px; }
	.map-cta-logo img { width:70%; height:70%; }
}

@media (max-width: 480px) {
	.site-header .brand { position: static; transform: none; padding-left:8px; }
	.site-header .site-header-inner { padding-left:12px; }
	.site-header img { max-height:64px; max-width:140px; padding:2px 0 2px 0; }
}

/* Narrow-phone specific tuning: targets many Android flagships in portrait (e.g. Galaxy S20 series ~412px) */
@media (min-width: 360px) and (max-width: 440px) {
	/* reduce hero vertical real-estate so header no longer overlays content */
	.hero { min-height: 36vh; }
	.hero .hero-inner { padding: 20px 12px; }
	.hero-media .security-main-asset { max-height: 44vh; object-position: center top; }

	/* make card media slightly shorter to reduce scroll gap */
	.home .services-grid .card-media { height: 140px; }
	.home .services-grid .card img { height: 140px; }

	/* ensure header items compress and logo doesn't clip */
	.site-header .site-header-inner { padding-left: 84px; padding-right: 12px; min-height: 64px; }
	.site-header img { max-height:56px; max-width:120px; }

	/* force main to expand to push footer to bottom when there's little content */
	main { display:block; flex: 1 1 auto; padding-bottom: 8px; }

	/* reduce margin around services list on narrow phones */
	.services-grid { gap:12px; margin-top:8px; }
	.card { box-shadow: 0 6px 18px rgba(2,6,10,0.06); }
}

/* Card visual fix: ensure backgrounds clip to avoid thin gap artifacts on some browsers */
.card { background-clip: padding-box; }
.card-media { overflow: hidden; }

/* Left-align the contact lines but keep the icon row and note centered */
.contact-lines { text-align:left; margin-bottom:8px; }
.map-cta-note { text-align:center; }
.map-cta-logos { margin-top:8px; }

/* (preview-only about background moved to canonical `/css/styles.css`) */

/* About page (scope to About body class so other pages keep transparent hero) */
body.about-preview .hero, body.about .hero { background:#f7f7f7; padding:36px 20px 18px; border-bottom:1px solid #eee; }
.grid-2 { display:grid; grid-template-columns:1fr; gap:24px; align-items:start; max-width:900px; }

/* Decorative background for About preview (mirrors canonical) */
body.about-preview { position: relative; background-color: #ffffff; }
body.about-preview::before {
		content: "";
		position: fixed;
		inset: 0;
		background-image: url('/assets/pg_bg_design-elements_tss.png');
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	/* reduced by an additional 14% relative to previous value */
	/* apply 15% relative decrease from current (0.62 * 0.85 = 0.527) */
	opacity: 0.53;
	filter: none;
	/* apply sharpen SVG filter to make PNG lines crisper when supported */
	-webkit-filter: none;
	filter: url('#sharpen') saturate(1);
	mix-blend-mode: normal;
		pointer-events: none;
		z-index: 0;
}
body.about-preview::after {
	content: "";
	position: fixed;
	inset: 0;
	background: linear-gradient(180deg, rgba(4,8,12,0.02) 0%, rgba(4,8,12,0.04) 60%), rgba(201,164,71,0.12);
	pointer-events: none;
	z-index: 0;
	mix-blend-mode: screen;
}
body.about-preview > * { position: relative; z-index: 1; }
@media (max-width: 900px) {
	body.about-preview::before { background-position: center top; background-size: cover; opacity: 0.15; }
	body.about-preview::after { background: linear-gradient(180deg, rgba(4,8,12,0.08) 0%, rgba(4,8,12,0.12) 100%); }
}
@media (max-width: 480px) {
	body.about-preview::before { background-position: center top; background-size: cover; opacity: 0.18; }
	body.about-preview::after { background: linear-gradient(180deg, rgba(4,8,12,0.10) 0%, rgba(4,8,12,0.16) 100%); }
}

/* Force consult/service images to fill their .card-media containers in the preview stylesheet too */
.consult-img, .concierge-img, .manned-img, .mobile-img, .loss-img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}
.consult-img { object-position: center 36% !important; transform: none !important; }
.values {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
	margin-top: 20px;
	align-items: start;
}
.value { background: #fff; padding: 20px; border-radius: 10px; box-shadow: 0 8px 22px rgba(2,2,2,0.06); display:flex; flex-direction:column; gap:12px; }
.value h4 { margin: 0; font-size: 18px; line-height: 1.2; color: #071018; font-weight:800; letter-spacing: -0.2px; display:flex; align-items:center; }
.value p { margin: 0; color: #333; line-height: 1.6; }

/* subtle icon pill before headings */
.value h4::before {
	content: "\2713";
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:28px;
	height:28px;
	margin-right:12px;
	background: var(--gold);
	color:#071018;
	border-radius:6px;
	font-weight:800;
	font-size:14px;
	box-shadow: 0 2px 6px rgba(0,0,0,0.06);
}

/* Accent and hover for professional feel: stronger gold border */
.value { border-left: 6px solid rgba(201,164,71,0.18); background: linear-gradient(180deg,#ffffff 0%, #fbfbfa 100%); }
.value:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(16,24,40,0.10); }

.values-centered .value { max-width: 720px; }

@media (max-width: 900px) {
	.values { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
	.value { padding: 16px; }
	.value h4 { font-size: 17px; }
}

@media (max-width: 640px) {
	.values { grid-template-columns: 1fr; }
	.value { padding: 14px; }
	.value h4 { font-size: 16px; }
}

/* Centered row for two values under the main three */
.values-centered {
	display: grid;
	grid-template-columns: repeat(2, minmax(220px, 320px));
	gap: 18px;
	justify-content: center;
	margin-top: 12px;
}

@media (max-width: 640px) {
	.values-centered { grid-template-columns: 1fr; justify-content: stretch; }
}
/* Footer */
/* Footer: remove large top margin to avoid visible gap between main and footer */
footer { background:#0a0a0a; color:#ddd; padding:18px 16px; text-align:center; font-size:14px; margin-top:0; }

/* CTA banner when placed inside footer: keep compact and flush on mobile */
.footer .cta-banner, footer > .cta-banner { margin: 0 auto 8px auto; padding: 16px 12px; max-width:1100px; }
.footer .cta-banner .btn, footer > .cta-banner .btn { margin-top:8px; }

/* Footer navigation (simple directory links for header-fallback) */
footer .footer-nav { max-width:1100px; margin:0 auto 8px auto; display:flex; gap:18px; flex-wrap:wrap; justify-content:center; padding:6px 12px; }
footer .footer-nav a { color:#ddd; text-decoration:none; font-weight:700; padding:6px 8px; border-radius:6px; transition: color 160ms ease, background 160ms ease; }
footer .footer-nav a:hover, footer .footer-nav a:focus { color: var(--bg); background: rgba(255,255,255,0.06); outline: none; }

/* Accessibility: visible skip link for keyboard/screen-reader users */
.skip-link { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* DEBUG: temporary helpers to identify hero layering/overflow issues.
	Enable by adding `debug-hero` to the <body> (e.g. in DevTools: document.body.classList.add('debug-hero'))
	Remove after debugging. */
body.debug-hero .hero { outline: 3px solid rgba(255,0,0,0.9); }
body.debug-hero .hero-bg { outline: 3px solid rgba(0,160,0,0.9); background-color: transparent !important; }
body.debug-hero .hero-media { outline: 3px solid rgba(0,112,255,0.9); }
body.debug-hero .hero-media img { outline: 3px dashed rgba(255,165,0,0.95); max-height: none !important; }
body.debug-hero .hero-media-overlay { outline: 3px dotted rgba(128,0,128,0.95); background: rgba(255,255,255,0.02) !important; }

.skip-link:focus { position: static; left: 0; top: 0; width: auto; height: auto; padding: 12px 16px; background: var(--gold); color: #071018; z-index:9999; border-radius:6px; text-decoration:none; display:inline-block; }

/* Improve focus outlines for keyboard users */
:focus {
	outline: none;
}
:focus-visible {
	outline: 3px solid rgba(201,164,71,0.22);
	outline-offset: 2px;
}

/* Responsive tweaks */
@media (max-width: 1000px) {
		/* header image sizing handled by max-height rules above */
	.services-grid .card { display:flex; flex-direction:column; overflow:hidden; grid-template-columns:none; }
	.services-grid .card-media { width:100%; height:200px; flex:0 0 auto; }
	.services-grid .card-media img { width:100%; height:100%; object-fit:cover; }
	.contact-grid { grid-template-columns:1fr; }
	.grid-2 { grid-template-columns:1fr; }
}

@media (max-width: 640px) {
		/* header image sizing handled by max-height rules above */
	.hero .hero-inner { padding:28px 16px; text-align:center; }
	nav a { margin-left:0; }
	.about-teaser { text-align:center; flex-direction:column; }
}

/* about-teaser preview image consistency */
.about-teaser img { width:140px; height:140px; object-fit:cover; border-radius:8px; }

/* Homepage services rules are consolidated at the end of this file to avoid duplicates. */

/* Small utility */
.sr-only { position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden; }

/* Professional feature list for services */
.service-features { list-style: none; padding-left: 0; margin:12px 0 0 0; }
.service-features li { position: relative; padding-left: 32px; margin-bottom: 10px; color:#333; line-height:1.4; }
.service-features li::before { content: "\2713"; position: absolute; left:0; top:0; color:var(--gold-dark); font-weight:700; }

/* Management / team cards (appended) */
.management-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:12px; margin-top:14px; }
.team-card { display:flex; gap:20px; align-items:flex-start; background:#fff; padding:18px; border-radius:8px; box-shadow:0 8px 20px rgba(0,0,0,0.06); }
.team-card .avatar { width:140px; height:140px; min-width:140px; border-radius:8px; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.team-card .avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.team-card .content { flex:1; }

/* Social link button under team avatars (prominent, industry-standard) */
.team-card .social-links { margin-top:10px; display:flex; justify-content:center; }
.team-card .linkedin-btn {
	display:inline-flex;
	align-items:center;
	gap:8px;
	background: #0077B5; /* LinkedIn blue */
	color: #ffffff;
	padding: 6px 10px;
	border-radius: 8px;
	text-decoration: none;
	font-weight: 700;
	font-size: 12px;
	border: 1px solid rgba(0,0,0,0.06);
	box-shadow: 0 6px 16px rgba(2,6,23,0.10);
	transition: transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.team-card .linkedin-btn svg { display:block; flex:0 0 auto; width:14px; height:14px; }
.team-card .linkedin-btn span { line-height:1; color:#fff; font-weight:700; }
.team-card .linkedin-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(2,6,23,0.12); filter:brightness(1.02); }
.team-card .linkedin-btn:focus { outline: 3px solid rgba(0,119,181,0.18); outline-offset: 3px; }
/* Icon-only variant: circular, centered LinkedIn logo */
.team-card .linkedin-btn.icon-only {
	padding: 10px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	justify-content: center;
}
.team-card .linkedin-btn.icon-only svg { width:18px; height:18px; }
.team-card .linkedin-btn.icon-only span { display:none; }
.team-card .content h4 { margin:0 0 6px 0; font-size:18px; font-weight:800; font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; color:#111; }
.team-card .content .title { color: var(--gold-dark); font-weight:600; margin-bottom:8px; text-transform:uppercase; font-size:12px; letter-spacing:0.6px; font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; }
.team-card .content p { margin:0; color:#444; line-height:1.6; }

.founder-card { display:flex; gap:18px; align-items:center; background:#fff; padding:18px; border-radius:8px; box-shadow:0 8px 22px rgba(0,0,0,0.08); }
.founder-card .avatar { width:140px; height:140px; min-width:140px; border-radius:8px; overflow:hidden; display:block; background-size:cover; background-position:center center; background-repeat:no-repeat; }
.founder-card .avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.founder-card h3 { margin:0; font-size:22px; font-weight:700; font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; }

@media (max-width: 640px) {
	.management-grid { grid-template-columns: 1fr; }
	.team-card { align-items:flex-start; }
	.founder-card { flex-direction:column; align-items:flex-start; }
	.founder-card .avatar { width:72px; height:72px; min-width:72px; }
}

/* Homepage: let cards size to their content (remove forced equal heights) */
.home .services-grid { grid-auto-rows: auto; }
.home .services-grid .card { min-height: 0; display:grid; grid-template-rows: auto auto; align-items:start; }
.home .services-grid .card-media { height: 180px; }
.home .services-grid .card img { height: 180px; }
.home .services-grid .card .card-body { padding:10px 12px; }
.home .services-grid .card .card-body h3 { margin:0; font-size:18px; line-height:1.08; }
/* Ensure homepage card body doesn't stretch to fill space */
.home .services-grid .card .card-body { flex: initial !important; justify-content: flex-start !important; }

/* Reduce vertical gap so card-body sits flush under the image without altering images */
.home .services-grid .card-media { margin-bottom: 0 !important; }
.home .services-grid .card-media + .card-body { margin-top: 0 !important; padding-top: 4px !important; }
.home .services-grid .card .card-body h3 { margin-top: 0 !important; padding-top: 0 !important; }
.home .services-grid .card .card-body p { margin-top: 4px !important; }

/* Angular diagonal texture overlay — add to a container like <body class="angular-lines-bg"> */
.angular-lines-bg { position: relative; overflow: hidden; }
.angular-lines-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image: linear-gradient(135deg, rgba(201,164,71,0.18) 0.5px, rgba(201,164,71,0.06) 0.5px, transparent 6px);
	background-size: 12px 12px;
	opacity: 0.08; /* subtle texture */
	mix-blend-mode: normal;
	z-index: 0;
}
.angular-lines-bg > * { position: relative; z-index: 1; }

/* Card contrast utility: white background with gold accent and dark text for legibility */
.card-style-dark { background: var(--white); color: #071018; border-left: 4px solid var(--gold); box-shadow: 0 8px 20px rgba(16,24,40,0.06); }
.card-style-dark h3,
.card-style-dark a { color: #071018; }
.card-style-dark a:hover { color: var(--gold-dark); }

/* Hover: emphasize heading with gold and a subtle warm tint */
.card-style-dark:hover { background: color-mix(in srgb, var(--white) 88%, rgba(249,246,238,1) 12%); }
.card-style-dark:hover h3 { color: var(--gold-dark); }

/* Founder/Team card specific tweaks (light variant) */
.team-card.card-style-dark h4 { color: #071018; }
.team-card.card-style-dark .content p { color: rgba(55,65,81,0.9); }
.team-card.card-style-dark:hover h4 { color: var(--gold-dark); }

/* Allow opting out of hover color change on specific headings */
.team-card.card-style-dark h4.no-hover { color: #071018; }

/* Zigzag background (gold, black, light gray) applied via .angular-zigzag */
.angular-zigzag { position: relative; overflow: hidden; }
.angular-zigzag::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(135deg, rgba(201,164,71,0.14) 25%, transparent 25%),
		linear-gradient(135deg, rgba(11,11,11,0.06) 25%, transparent 25%),
		linear-gradient(135deg, rgba(243,244,246,0.06) 25%, transparent 25%);
	background-size: 56px 56px, 28px 28px, 84px 84px;
	background-position: 0 0, 14px 14px, 28px 28px;
	opacity: 0.12;
	mix-blend-mode: multiply;
	z-index: 0;
}
.angular-zigzag > * { position: relative; z-index: 1; }

/* Debug visual helpers — enable by adding `debug-viz` to the <body> class list.
	These are intentionally low-impact and only active when debugging on-device. */
body.debug-viz .site-header { outline: 2px solid rgba(255,200,80,0.22); }
body.debug-viz .hero { outline: 2px dashed rgba(90,200,255,0.18); }
body.debug-viz .hero-media { outline: 1px dashed rgba(255,255,255,0.06); }
body.debug-viz .services-grid .card { outline: 1px solid rgba(200,200,200,0.06); }

/* Per-card image classes: set defaults and example sizes */
.consult-img, .concierge-img, .manned-img, .mobile-img, .loss-img {
	width: 100%;
	height: auto;
	display: block;
	/* default: cover for most images */
	object-fit: cover;
}

/* Example per-card sizing (adjust per subject) */
.consult-img { object-position: center 36%; width:100%; height:100%; object-fit:cover; display:block; background-color:transparent; }
.concierge-img { object-position: center center; height: 160px; }
.manned-img { object-position: center center; height: 160px; }
.mobile-img { object-position: center center; height: 150px; }
.loss-img { object-position: center center; height: 170px; }

/* Mobile fallback: cap heights for narrow viewports */
/* Ensure consult image behaves like other service images and fills the media area. */
.consult-img {
	object-fit: cover;
	background-color: transparent;
	width:100%;
	height:100%;
	display:block;
}

/* Ensure person headshots are aligned toward the top so heads are not cropped.
	Use a specific, high-specificity rule under .services-page to override
	any earlier first-of-type object-position and transform. */
.services-page .services-grid .card .consult-img,
.services-page .services-grid .card .manned-img,
.services-page .services-grid .card .concierge-img {
	/* keep consult as contain to avoid cropping; for other headshots use cover but align top */
	/* bias further toward the top so faces stay visible when container crops */
	object-position: 50% 6%; /* center horizontally, move visible area lower in the image */
}

/* Some rules earlier target the first card image and apply a scale transform; ensure
	our headshot images don't get scaled/cropped unexpectedly. */
.services-page .services-grid .card .consult-img { transform: none !important; }


@media (max-width: 640px) {
	/* On narrow viewports, allow the container to scale and avoid forcing an overly small height
	   which caused the image to be visually cut/zoomed. Use a min-height and remove !important. */
	.consult-img, .concierge-img, .manned-img, .mobile-img, .loss-img {
		height: auto;
		min-height: 120px;
	}
	/* For consult specifically, keep a comfortable min-height so the image isn't squashed */
	.consult-img { min-height: 150px; }

	/* On very narrow phones, bias headshots slightly lower to keep faces visible while
	   maintaining a compact layout. */
	.services-page .services-grid .card .consult-img,
	.services-page .services-grid .card .manned-img,
	.services-page .services-grid .card .concierge-img {
		object-position: 50% 10%;
	}

	/* Strong mobile override: for manned guarding and consultation, force top alignment
	   and contain so heads are never cut off on portrait phones. Increase specificity
	   and use important to override other rules. */
	.services-page .services-grid .card .consult-img.manned-img,
	.services-page .services-grid .card .consult-img.consult-img,
	.services-page .services-grid .card .manned-img,
	.services-page .services-grid .card .consult-img {
		/* make consult and other service images cover their containers on narrow viewports */
		object-fit: cover !important;
		object-position: 50% 10% !important;
		min-height: 120px !important;
		height: 100% !important;
	}
}
