/* HSPM Website Setup 1.0.10 project-gallery, video and social-link styles. */
.hspm-project-gallery {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	margin-top: 38px;
}
.hspm-project-gallery__item {
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--hspm-line, #dbe5ea);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 14px 38px rgba(5, 35, 55, .08);
}
.hspm-project-gallery__item img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.hspm-project-gallery__item figcaption {
	padding: 14px 16px 17px;
	color: var(--hspm-muted, #5c6b76);
	font-size: 14px;
	line-height: 1.45;
}
@media (max-width: 920px) {
	.hspm-project-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.hspm-project-gallery { grid-template-columns: 1fr; gap: 16px; }
}


/* Current YouTube video library. */
.hspm-video-group { margin-top: 58px; }
.hspm-video-group__heading { max-width: 820px; margin-bottom: 26px; }
.hspm-video-card--embed { display: flex; flex-direction: column; box-shadow: 0 14px 38px rgba(5,35,55,.08); }
.hspm-video-card__media { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #071827; }
.hspm-video-card__media iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
.hspm-video-card--embed .hspm-video-card__body { display: flex; flex: 1; flex-direction: column; }
.hspm-video-card--embed .hspm-video-card__body h3 { margin-top: 0; }
.hspm-video-card--embed .hspm-video-card__body .hspm-text-link { margin-top: auto; }

/* Social profile links inserted into the active HSPM child theme. */
.hspm-social-links { display: inline-flex; align-items: center; gap: 8px; }
.hspm-social-links a { display: inline-grid; place-items: center; width: 31px; height: 31px; border-radius: 999px; text-decoration: none; transition: transform .18s ease, background .18s ease, color .18s ease; }
.hspm-social-links a:hover { transform: translateY(-1px); }
.hspm-social-links svg { width: 16px; height: 16px; fill: currentColor; }
.hspm-social-links--utility a { color: #fff; border: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.06); }
.hspm-social-links--utility a:hover { color: #071827; background: #fff; }
.hspm-social-links--footer { margin-left: auto; }
.hspm-social-links--footer a { color: #fff; border: 1px solid rgba(255,255,255,.22); background: rgba(255,255,255,.08); }
.hspm-social-links--footer a:hover { background: #fff; color: #071827; }
@media (max-width: 760px) {
	.hspm-utility__right .hspm-social-links { display: none; }
	.hspm-social-links--footer { margin-left: 0; }
}

/* Reduced spacing for a stand-alone gallery link below the homepage photo grid. */
.hspm-section--compact { padding-top: 0 !important; }

/* Performance-friendly click-to-load YouTube video facades. */
.hspm-lite-video {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	cursor: pointer;
	background: #071827;
}
.hspm-lite-video img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.hspm-lite-video::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(7,24,39,.02), rgba(7,24,39,.28));
}
.hspm-lite-video__play {
	position: absolute;
	z-index: 2;
	left: 50%;
	top: 50%;
	display: grid;
	place-items: center;
	width: 70px;
	height: 50px;
	border-radius: 14px;
	transform: translate(-50%, -50%);
	color: #fff;
	font-size: 25px;
	line-height: 1;
	background: #e62117;
	box-shadow: 0 8px 24px rgba(0,0,0,.28);
}
.hspm-lite-video:hover .hspm-lite-video__play,
.hspm-lite-video:focus-visible .hspm-lite-video__play {
	background: #ff2a1f;
	transform: translate(-50%, -50%) scale(1.05);
}
.hspm-lite-video:focus-visible {
	outline: 3px solid #ffab00;
	outline-offset: -3px;
}


/* Contained portrait-image gallery used for hardware examples. */
.hspm-project-gallery--contain .hspm-project-gallery__item {
	display: flex;
	flex-direction: column;
}
.hspm-project-gallery--contain .hspm-project-gallery__item img {
	aspect-ratio: 3 / 4;
	object-fit: contain;
	background: #f4f7f9;
	padding: 14px;
}


/* Online order forms. */
.hspm-form input[type="date"] {
	width: 100%;
	min-height: 48px;
	padding: 12px 14px;
	border: 1px solid var(--hspm-line, #dbe5ea);
	border-radius: 8px;
	background: #fff;
	color: var(--hspm-navy, #09263a);
}
.hspm-order-section {
	margin-top: 8px;
	padding: 22px;
	border: 1px solid var(--hspm-line, #dbe5ea);
	border-radius: 14px;
	background: #f7fafb;
}
.hspm-order-section h2 {
	margin: 0 0 6px;
	font-size: 22px;
}
.hspm-order-lines {
	margin-top: 16px;
	border: 1px solid var(--hspm-line, #dbe5ea);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
.hspm-order-line {
	display: grid;
	grid-template-columns: 120px minmax(0, 1fr);
	gap: 12px;
	padding: 10px 12px;
	border-bottom: 1px solid var(--hspm-line, #dbe5ea);
}
.hspm-order-line:last-child { border-bottom: 0; }
.hspm-order-line--heading {
	background: #eaf1f4;
	color: var(--hspm-navy, #09263a);
	font-size: 13px;
}
.hspm-order-line label { display: block; }
.hspm-order-line input[type="text"] { width: 100%; }
.hspm-order-mobile-label { display: none; }
@media (max-width: 640px) {
	.hspm-order-section { padding: 17px 14px; }
	.hspm-order-line--heading { display: none; }
	.hspm-order-line { grid-template-columns: 1fr; gap: 8px; padding: 14px; }
	.hspm-order-mobile-label { display: block; margin-bottom: 5px; color: var(--hspm-muted, #5c6b76); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
}


.hspm-order-choice {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	margin: 0 0 34px;
}
.hspm-order-choice__card {
	display: flex;
	flex-direction: column;
	gap: 7px;
	padding: 22px;
	border: 1px solid var(--hspm-line, #dbe5ea);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 14px 38px rgba(5,35,55,.08);
	color: var(--hspm-navy, #09263a);
	text-decoration: none;
}
.hspm-order-choice__card strong { font-size: 21px; }
.hspm-order-choice__card span { color: var(--hspm-muted, #5c6b76); line-height: 1.5; }
.hspm-order-choice__card:hover,
.hspm-order-choice__card:focus-visible { border-color: var(--hspm-blue, #0d5678); transform: translateY(-1px); }
.hspm-order-form-block {
	scroll-margin-top: 120px;
	margin: 0 0 38px;
	padding: 28px;
	border: 1px solid var(--hspm-line, #dbe5ea);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 14px 38px rgba(5,35,55,.08);
}
.hspm-order-form-block__heading { max-width: 820px; margin-bottom: 24px; }
.hspm-order-form-block__heading h2 { margin-bottom: 8px; }
.hspm-order-line--shutter {
	grid-template-columns: 70px minmax(115px,1fr) minmax(115px,1fr) minmax(100px,.8fr) minmax(180px,1.5fr);
}
.hspm-order-download-panel { margin-top: 12px; }
@media (max-width: 840px) {
	.hspm-order-choice { grid-template-columns: 1fr; }
	.hspm-order-line--shutter { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
	.hspm-order-form-block { padding: 20px 14px; }
	.hspm-order-line--shutter { grid-template-columns: 1fr; }
}
