/*
 * HG Photos v2: styling theme.json can't express.
 * Colors, fonts and sizes live in theme.json (Appearance > Editor > Styles).
 *
 * Sections are dark by default. Give a Group the "Light section" or
 * "Navy section" style and everything inside (headings, text, labels,
 * italic accents, outline buttons, links) recolors to match.
 */

:root {
	--hg-accent: #9fd3f5;
	--hg-accent-hover: #d6eefc;
	--hg-on-accent: #07111f;
	--hg-heading: #ffffff;
	--hg-text: #a9c2d6;
	--hg-label-muted: #6f93ad;
	--hg-line: #142a42;
	--hg-slot: #0b1a2e;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.wp-site-blocks {
	position: relative;
}

p {
	color: var(--hg-text);
	text-wrap: pretty;
}

h1, h2, h3 {
	text-wrap: balance;
}

h1 em, h2 em, h3 em, h4 em {
	color: var(--hg-accent);
}

/* ---------- Section styles ---------- */
.is-style-section-light {
	background-color: #eef5fb;
	color: #0b1f38;
	--hg-accent: #1f6fa8;
	--hg-accent-hover: #0b1f38;
	--hg-on-accent: #ffffff;
	--hg-heading: #0b1f38;
	--hg-text: #3d5a78;
	--hg-label-muted: #5f7a94;
	--hg-line: #c9dbea;
	--hg-slot: #dce9f4;
}

.is-style-section-navy {
	background-color: #0b1a2e;
	--hg-slot: #0f2238;
	--hg-line: #1d3550;
}

.is-style-card {
	background-color: #0b1a2e;
	border-radius: 10px;
	padding: clamp(24px, 4vw, 44px);
	color: #e8f2fa;
	--hg-accent: #9fd3f5;
	--hg-accent-hover: #d6eefc;
	--hg-on-accent: #07111f;
	--hg-heading: #ffffff;
	--hg-text: #a9c2d6;
	--hg-label-muted: #6f93ad;
	--hg-line: #1d3550;
}

/* ---------- Labels (small condensed caps) ---------- */
.is-style-label,
h1.is-style-label, h2.is-style-label, h3.is-style-label, h4.is-style-label {
	font-family: var(--wp--preset--font-family--condensed);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.24em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--hg-accent);
}

.hg-meta-label {
	font-family: var(--wp--preset--font-family--condensed);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.2em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--hg-label-muted);
}

.hg-serif {
	font-family: var(--wp--preset--font-family--serif);
	line-height: 1.05;
	color: var(--hg-heading);
}

/* ---------- Buttons ---------- */
.wp-block-button.is-style-outline > .wp-block-button__link {
	padding: 15px 25px;
	background: transparent;
	border: 1px solid rgba(214, 238, 252, 0.5);
	color: #ffffff;
	font-weight: 600;
}

.wp-block-button.is-style-outline > .wp-block-button__link:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:focus {
	background: transparent;
	border-color: #9fd3f5;
	color: #9fd3f5;
}

.wp-block-button.is-style-outline-accent > .wp-block-button__link {
	padding: 15px 24px;
	background: transparent;
	border: 1px solid var(--hg-accent);
	color: var(--hg-accent);
	font-weight: 600;
}

.wp-block-button.is-style-outline-accent > .wp-block-button__link:hover,
.wp-block-button.is-style-outline-accent > .wp-block-button__link:focus {
	background: var(--hg-accent);
	color: var(--hg-on-accent);
}

.wp-block-button.is-style-text-link > .wp-block-button__link {
	padding: 0 0 6px;
	background: transparent;
	border-radius: 0;
	border-bottom: 1px solid var(--hg-accent);
	color: var(--hg-accent);
	font-weight: 600;
}

.wp-block-button.is-style-text-link > .wp-block-button__link:hover,
.wp-block-button.is-style-text-link > .wp-block-button__link:focus {
	background: transparent;
	border-color: var(--hg-heading);
	color: var(--hg-heading);
}

/* ---------- Header ---------- */
.hg-header .wp-block-site-logo img {
	height: 46px;
	width: auto;
}

.hg-header .wp-block-navigation-item__content {
	color: #e8f2fa;
	padding: 5px 0 4px;
	border-bottom: 1px solid transparent;
}

/* Menu, icons and Shop button always sit on the right, logo or not */
.hg-header > .wp-block-group:last-child {
	margin-left: auto;
}

.hg-header .wp-block-site-logo {
	line-height: 0;
}

.hg-header .wp-block-social-links {
	align-items: center;
}

.hg-header .wp-block-social-links .wp-social-link svg {
	width: 22px;
	height: 22px;
}

.hg-header .wp-block-navigation-item__content:hover {
	color: #9fd3f5;
}

.hg-header .current-menu-item > .wp-block-navigation-item__content,
.hg-header .wp-block-navigation-item__content[aria-current="page"] {
	color: #9fd3f5;
	border-bottom-color: #9fd3f5;
}

.hg-header .wp-block-social-links .wp-social-link a,
.hg-footer .wp-block-social-links .wp-social-link a {
	color: #ffffff;
}

.hg-header .wp-block-social-links .wp-social-link a:hover,
.hg-footer .wp-block-social-links .wp-social-link a:hover {
	color: #9fd3f5;
}

.hg-header .wp-block-button__link {
	padding: 11px 18px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.hg-header .wp-block-navigation__responsive-container.is-menu-open {
	padding-top: 72px;
	background: #07111f;
	color: #e8f2fa;
}

.hg-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 22px;
}

/* Homepage hero (slideshow styles live in hero.css) */
.hg-hero {
	background-color: #0b1a2e;
}

/* Homepage: header floats over the hero photo */
.hg-header--overlay {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 10;
	background: transparent;
}

/* ---------- Footer ---------- */
.hg-footer {
	--hg-text: #6f93ad;
	--hg-accent: #6f93ad;
	--hg-accent-hover: #9fd3f5;
}

.hg-footer p {
	margin: 0;
}

/* ---------- Photo frames (Cover blocks you add photos to) ---------- */
.wp-block-cover.is-style-photo {
	background-color: var(--hg-slot);
	border-radius: 6px;
	overflow: hidden;
}

.wp-block-cover.hg-banner {
	background-color: #0b1a2e;
	border-radius: 8px;
	overflow: hidden;
}

.hg-badge {
	background: rgba(7, 17, 31, 0.82);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	border-radius: 6px;
	padding: 14px 18px;
}

/* ---------- Timeline (About) ---------- */
.wp-block-columns.is-style-timeline {
	gap: 0 !important;
}

.wp-block-columns.is-style-timeline > .wp-block-column {
	padding: 22px 24px 8px 0;
	border-top: 2px solid #2a4a6a;
}

.wp-block-columns.is-style-timeline > .wp-block-column:last-child {
	border-top-color: #9fd3f5;
}

@media (max-width: 781px) {
	.wp-block-columns.is-style-timeline > .wp-block-column {
		padding-bottom: 24px;
	}
}

/* ---------- Ruled rows (The kit, contact details) ---------- */
.hg-rows > * {
	margin-block: 0 !important;
	padding: 20px 0;
	border-top: 1px solid var(--hg-line);
}

.hg-rows > *:last-child {
	border-bottom: 1px solid var(--hg-line);
}

.hg-rows .wp-block-columns {
	align-items: baseline !important;
	gap: 20px !important;
}

.hg-rows a {
	color: var(--hg-heading);
}

.hg-rows a:hover {
	color: var(--hg-accent);
}

/* ---------- Category tiles  [hg_category_tiles] ---------- */
.hg-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
	gap: 14px;
}

.hg-tile {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 6px;
	background: #0b1a2e;
}

.hg-tile:hover,
.hg-tile:focus-visible {
	outline: 2px solid var(--hg-accent);
	outline-offset: 3px;
}

.hg-tile img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.hg-tile:hover img {
	transform: scale(1.04);
}

.hg-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(7, 17, 31, 0) 45%, rgba(7, 17, 31, 0.9) 100%);
}

.hg-tile__text {
	position: absolute;
	z-index: 1;
	left: 20px;
	bottom: 18px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.hg-tile__count {
	font: 600 12px/1 var(--wp--preset--font-family--condensed);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: #9fd3f5;
}

.hg-tile__name {
	font: 400 34px/1 var(--wp--preset--font-family--serif);
	color: #ffffff;
}

.hg-tile__arrow {
	position: absolute;
	z-index: 1;
	right: 20px;
	bottom: 18px;
	font: 500 20px/1 var(--wp--preset--font-family--sans);
	color: #9fd3f5;
}

/* ---------- Newest prints  [hg_newest_photos] ---------- */
.hg-prints {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr));
	gap: 14px;
	margin-top: 8px;
}

.hg-print {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-decoration: none;
}

.hg-print__img {
	display: block;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 6px;
	background: var(--hg-slot);
}

.hg-print__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.hg-print:hover .hg-print__img img {
	transform: scale(1.04);
}

.hg-print__title {
	font: 500 15px/1.3 var(--wp--preset--font-family--sans);
	color: var(--hg-heading);
}

.hg-print:hover .hg-print__title {
	color: var(--hg-accent);
}

/* ---------- Admin-only notes ---------- */
.hg-admin-note {
	padding: 14px 16px;
	border: 1px dashed currentColor;
	border-radius: 6px;
	font-size: 14px;
	opacity: 0.8;
}

/* ---------- Forms: Gravity Forms inside an .hg-gf group ---------- */
.hg-gf .gform_wrapper {
	--gf-color-primary: #9fd3f5;
	--gf-color-primary-contrast: #07111f;
	--gf-ctrl-bg-color: #07111f;
	--gf-ctrl-border-color: #1d3550;
	--gf-ctrl-color: #ffffff;
	--gf-ctrl-label-color-primary: #e8f2fa;
	--gf-ctrl-label-color-secondary: #6f93ad;
	--gf-radius: 6px;
	margin: 0;
	font-family: var(--wp--preset--font-family--sans);
}

.hg-gf .gform_wrapper .gform_fields {
	row-gap: 22px !important;
}

.hg-gf .gform_wrapper .gfield_label,
.hg-gf .gform_wrapper legend.gfield_label {
	margin-bottom: 10px !important;
	font: 600 14px/1.2 var(--wp--preset--font-family--sans) !important;
	color: #e8f2fa !important;
}

.hg-gf .gform_wrapper .gfield_required {
	color: #9fd3f5 !important;
	font-size: 12px;
	font-weight: 500;
}

.hg-gf .gform_wrapper .ginput_complex label,
.hg-gf .gform_wrapper .gform-field-label--type-sub {
	margin-top: 7px;
	font: 500 12px/1 var(--wp--preset--font-family--sans) !important;
	color: #6f93ad !important;
}

.hg-gf .gform_wrapper input[type="text"],
.hg-gf .gform_wrapper input[type="email"],
.hg-gf .gform_wrapper input[type="tel"],
.hg-gf .gform_wrapper textarea,
.hg-gf .gform_wrapper select {
	min-height: 0;
	padding: 15px 16px !important;
	background: #07111f !important;
	border: 1px solid #1d3550 !important;
	border-radius: 6px !important;
	box-shadow: none !important;
	color: #ffffff !important;
	font-size: 15px !important;
}

.hg-gf .gform_wrapper input:focus,
.hg-gf .gform_wrapper textarea:focus,
.hg-gf .gform_wrapper select:focus {
	border-color: #9fd3f5 !important;
	outline: none !important;
}

.hg-gf .gform_wrapper ::placeholder {
	color: #58789a;
}

/* Radio buttons as pills */
.hg-gf .gform_wrapper .gfield_radio {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
}

.hg-gf .gform_wrapper .gfield_radio .gchoice {
	margin: 0;
}

.hg-gf .gform_wrapper .gfield_radio input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.hg-gf .gform_wrapper .gfield_radio label {
	display: inline-block !important;
	margin: 0 !important;
	padding: 11px 16px;
	border: 1px solid #2a4a6a;
	border-radius: 999px;
	cursor: pointer;
	font: 600 13px/1 var(--wp--preset--font-family--sans) !important;
	color: #c9dcea !important;
	transition: 0.2s;
}

.hg-gf .gform_wrapper .gfield_radio label::before,
.hg-gf .gform_wrapper .gfield_radio label::after {
	display: none !important;
}

.hg-gf .gform_wrapper .gfield_radio label:hover {
	border-color: #9fd3f5;
}

.hg-gf .gform_wrapper .gfield_radio input:checked + label {
	background: #9fd3f5;
	border-color: #9fd3f5;
	color: #07111f !important;
}

.hg-gf .gform_wrapper .gfield_radio input:focus-visible + label {
	outline: 2px solid #9fd3f5;
	outline-offset: 2px;
}

/* Submit button */
.hg-gf .gform_wrapper .gform_button,
.hg-gf .gform_wrapper .gform_footer input[type="submit"],
.hg-gf .gform_wrapper .gform_footer button {
	padding: 16px 28px !important;
	background: #9fd3f5 !important;
	border: 0 !important;
	border-radius: 999px !important;
	color: #07111f !important;
	cursor: pointer;
	font: 700 14px/1 var(--wp--preset--font-family--sans) !important;
	letter-spacing: 0.04em;
}

.hg-gf .gform_wrapper .gform_button:hover,
.hg-gf .gform_wrapper .gform_footer input[type="submit"]:hover,
.hg-gf .gform_wrapper .gform_footer button:hover {
	background: #d6eefc !important;
}

/* Layout fixes: keep Gravity Forms' own grid from fighting the theme */
.hg-gf .gform_wrapper .gform_fields {
	row-gap: 26px !important;
}

.hg-gf .gform_wrapper .gfield {
	margin: 0 !important;
	padding: 0 !important;
}

.hg-gf .gform_wrapper legend.gfield_label,
.hg-gf .gform_wrapper .gfield_label {
	display: flex !important;
	align-items: baseline;
	gap: 2px;
	margin: 0 0 10px !important;
	padding: 0 !important;
	font: 600 13px/1.2 var(--wp--preset--font-family--sans) !important;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #c9dcea !important;
}

/* "(Required)" becomes a small accent asterisk */
.hg-gf .gform_wrapper .gfield_required {
	margin: 0 !important;
	padding: 0 !important;
}

.hg-gf .gform_wrapper .gfield_required_text {
	font-size: 0 !important;
}

.hg-gf .gform_wrapper .gfield_required_text::after {
	content: "*";
	font-size: 14px;
	color: #9fd3f5;
}

/* Name (First/Last) and Email (Enter/Confirm): equal columns, aligned edges */
.hg-gf .gform_wrapper .ginput_complex,
.hg-gf .gform_wrapper .ginput_container--name,
.hg-gf .gform_wrapper .ginput_container_email.ginput_complex {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 14px 16px !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}

.hg-gf .gform_wrapper .ginput_complex > span,
.hg-gf .gform_wrapper .ginput_complex > div {
	display: flex !important;
	flex-direction: column;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	flex: none !important;
}

.hg-gf .gform_wrapper .ginput_complex label,
.hg-gf .gform_wrapper .gform-field-label--type-sub {
	order: 0;
	margin: 0 0 7px !important;
	padding: 0 !important;
	font: 500 12px/1.2 var(--wp--preset--font-family--sans) !important;
	letter-spacing: 0;
	text-transform: none;
	color: #6f93ad !important;
}

.hg-gf .gform_wrapper .field_sublabel_below .ginput_complex label,
.hg-gf .gform_wrapper .field_sublabel_below .gform-field-label--type-sub {
	order: 2;
	margin: 7px 0 0 !important;
}

.hg-gf .gform_wrapper .ginput_complex input {
	order: 1;
}

.hg-gf .gform_wrapper input[type="text"],
.hg-gf .gform_wrapper input[type="email"],
.hg-gf .gform_wrapper input[type="tel"],
.hg-gf .gform_wrapper input[type="number"],
.hg-gf .gform_wrapper input[type="url"],
.hg-gf .gform_wrapper select,
.hg-gf .gform_wrapper textarea {
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	line-height: 1.4 !important;
}

.hg-gf .gform_wrapper textarea {
	height: 150px !important;
	min-height: 120px !important;
	resize: vertical;
}

/* Field help text and the character counter */
.hg-gf .gform_wrapper .gfield_description,
.hg-gf .gform_wrapper .ginput_counter {
	margin: 8px 0 0 !important;
	padding: 0 !important;
	font: 400 13px/1.5 var(--wp--preset--font-family--sans) !important;
	color: #6f93ad !important;
}

.hg-gf .gform_wrapper .gfield_description + .ginput_container {
	margin-top: 10px !important;
}

.hg-gf .gform_wrapper .gfield_required_text::before {
	content: none;
}

.hg-gf .gform_wrapper .ginput_counter {
	font-size: 12px !important;
	text-align: right;
}

/* Submit: a normal pill, never stretched */
.hg-gf .gform_wrapper .gform_footer,
.hg-gf .gform_wrapper .gform_page_footer {
	display: flex !important;
	align-items: center !important;
	margin: 30px 0 0 !important;
	padding: 0 !important;
}

.hg-gf .gform_wrapper .gform_button,
.hg-gf .gform_wrapper .gform_footer input[type="submit"],
.hg-gf .gform_wrapper .gform_footer button {
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	align-self: flex-start !important;
	flex: none !important;
	line-height: 1 !important;
	padding: 17px 30px !important;
}

/* Errors */
.hg-gf .gform_wrapper .gform_validation_errors {
	background: rgba(255, 164, 148, 0.08) !important;
	border: 1px solid #ffa494 !important;
	border-radius: 6px !important;
	box-shadow: none !important;
}

.hg-gf .gform_wrapper .gform_validation_errors h2 {
	font: 500 14px/1.5 var(--wp--preset--font-family--sans) !important;
	color: #ffd2c9 !important;
}

.hg-gf .gform_wrapper .gfield_error input,
.hg-gf .gform_wrapper .gfield_error textarea {
	border-color: #ffa494 !important;
}

.hg-gf .gform_wrapper .validation_message {
	padding: 6px 0 0 !important;
	background: none !important;
	border: 0 !important;
	font: 500 13px/1.3 var(--wp--preset--font-family--sans) !important;
	color: #ffa494 !important;
}

.hg-gf .gform_wrapper .gfield_error legend,
.hg-gf .gform_wrapper .gfield_error .gfield_label {
	color: #e8f2fa !important;
}

/* Confirmation */
.hg-gf .gform_confirmation_message {
	font: 400 clamp(28px, 3.4vw, 40px)/1.1 var(--wp--preset--font-family--serif);
	color: #ffffff;
}

/* ---------- Events: VS Event List  [vsel ... class="hg-events"] ---------- */
.hg-events {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: 14px;
}

.hg-events > :not(.vsel-content) {
	grid-column: 1 / -1;
}

.hg-events .vsel-content {
	display: flex;
	flex-direction: column;
	margin: 0 !important;
	padding: 0 0 24px !important;
	overflow: hidden;
	background: #0b1a2e;
	border: 0 !important;
	border-radius: 8px;
	color: #e8f2fa;
	transition: outline-color 0.2s;
}

.hg-events .vsel-content:hover {
	outline: 2px solid #1f6fa8;
	outline-offset: 3px;
}

/* Let the photo, details and text be laid out as one card */
.hg-events .vsel-info {
	display: contents;
}

.hg-events .vsel-meta,
.hg-events .vsel-text,
.hg-events .vsel-info-acf-fields {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0 22px;
}

.hg-events .vsel-image,
.hg-events .vsel-image-figure {
	order: -1;
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 0 20px !important;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	background: #0f2238;
}

.hg-events .vsel-image-img,
.hg-events .vsel-image img,
.hg-events .vsel-image-figure img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.hg-events .vsel-meta-title,
.hg-events .vsel-meta-title a {
	margin: 4px 0 10px;
	font: 400 30px/1.05 var(--wp--preset--font-family--serif);
	color: #ffffff;
}

.hg-events .vsel-meta-title a:hover {
	color: #9fd3f5;
}

.hg-events .vsel-meta-date,
.hg-events .vsel-meta-time,
.hg-events .vsel-meta-location,
.hg-events .vsel-meta-cats {
	margin: 6px 0;
	font: 600 13px/1.4 var(--wp--preset--font-family--condensed);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #9fd3f5;
}

.hg-events .vsel-meta-time,
.hg-events .vsel-meta-location {
	color: #c9dcea;
}

.hg-events .vsel-text,
.hg-events .vsel-text p {
	font-size: 15px;
	line-height: 1.65;
	color: #a9c2d6;
}

.hg-events a {
	color: #9fd3f5;
}

.hg-events .vsel-read-more,
.hg-events .vsel-meta-link a {
	display: inline-block;
	margin-top: 6px;
	font-weight: 600;
	font-size: 14px;
}

/* Date icon (if turned on in Settings > VS Event List) */
.hg-events .vsel-meta-date-icon {
	margin: 0 0 12px;
}

.hg-events .vsel-start-icon,
.hg-events .vsel-end-icon {
	background: rgba(7, 17, 31, 0.85) !important;
	border: 0 !important;
	border-radius: 6px;
	color: #ffffff !important;
}

.hg-events .vsel-day-top,
.hg-events .vsel-month-top {
	background: transparent !important;
	color: #9fd3f5 !important;
}

/* The soonest event becomes a wide featured card */
.hg-events .vsel-content:first-of-type {
	grid-column: 1 / -1;
}

@media (min-width: 900px) {
	.hg-events .vsel-content:first-of-type {
		display: grid;
		grid-template-columns: 1fr 1fr;
		grid-template-rows: auto 1fr;
		column-gap: 0;
		padding: 0 !important;
	}

	.hg-events .vsel-content:first-of-type .vsel-image,
	.hg-events .vsel-content:first-of-type .vsel-image-figure {
		grid-column: 1;
		grid-row: 1 / span 3;
		height: 100%;
		margin: 0 !important;
	}

	.hg-events .vsel-content:first-of-type .vsel-meta {
		grid-column: 2;
		align-self: end;
		padding: clamp(24px, 4vw, 48px) clamp(24px, 4vw, 48px) 0;
	}

	.hg-events .vsel-content:first-of-type .vsel-text,
	.hg-events .vsel-content:first-of-type .vsel-info-acf-fields {
		grid-column: 2;
		padding: 0 clamp(24px, 4vw, 48px) clamp(24px, 4vw, 48px);
	}

	.hg-events .vsel-content:first-of-type .vsel-meta-title,
	.hg-events .vsel-content:first-of-type .vsel-meta-title a {
		font-size: clamp(36px, 4vw, 56px);
		line-height: 1;
	}
}

/* ---------- Other forms on the site (store search and filters) ---------- */
input[type="text"]:where(:not(.gform_wrapper *)),
input[type="email"]:where(:not(.gform_wrapper *)),
input[type="search"],
input[type="tel"]:where(:not(.gform_wrapper *)),
input[type="number"],
select:where(:not(.gform_wrapper *)),
textarea:where(:not(.gform_wrapper *)) {
	min-height: 48px;
	padding: 12px 14px;
	background: #0b1a2e;
	border: 1px solid #1d3550;
	border-radius: 6px;
	color: #ffffff;
	font-family: inherit;
	font-size: 15px;
}

input:focus,
select:focus,
textarea:focus {
	border-color: #9fd3f5;
	outline: none;
}

::placeholder {
	color: #58789a;
	opacity: 1;
}

/* ---------- Query loop cards (archive, search) ---------- */
.hg-cards .wp-block-post {
	overflow: hidden;
	background: #0b1a2e;
	border-radius: 8px;
}

.hg-cards .wp-block-post-featured-image {
	margin: 0;
}

.hg-cards .wp-block-post-featured-image img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
}

.hg-cards .wp-block-post-title a {
	color: #ffffff;
}

.hg-cards .wp-block-post-title a:hover {
	color: #9fd3f5;
}

.wp-block-query-pagination {
	gap: 8px;
	font-weight: 600;
	font-size: 14px;
}

.wp-block-query-pagination-numbers .page-numbers {
	display: inline-block;
	padding: 8px 13px;
	border-radius: 999px;
}

.wp-block-query-pagination-numbers .page-numbers.current {
	background: #9fd3f5;
	color: #07111f;
}

/* ---------- Page sections sit flush against each other ---------- */
.hg-sections > .alignfull {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

.hg-row-value {
	color: var(--hg-heading);
	font-weight: 500;
	line-height: 1.4;
}

.hg-row-value a {
	color: inherit;
}

.hg-row-value a:hover {
	color: var(--hg-accent);
}

.hg-cards .wp-block-post-excerpt__more-link {
	font-weight: 600;
}

/* Keep any form inside its column on small screens */
.hg-gf,
.hg-gf .gform_wrapper,
.hg-gf form {
	min-width: 0;
	max-width: 100%;
}

.hg-gf fieldset {
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
}

.hg-gf input,
.hg-gf textarea,
.hg-gf select {
	box-sizing: border-box;
	max-width: 100%;
}

.hg-gf .ginput_complex {
	flex-wrap: wrap;
}

.hg-gf .ginput_complex > span {
	flex: 1 1 160px;
	min-width: 0;
}

/* The badge sits on a photo, so it always uses the dark palette */
.hg-badge {
	--hg-accent: #9fd3f5;
	--hg-text: #e8f2fa;
}

/*
 * WordPress turns Cover text black when it detects a bright photo.
 * These banners always have a dark fade behind the words, so keep them light.
 */
.wp-block-cover.hg-banner.is-light .wp-block-cover__inner-container,
.wp-block-cover.is-style-photo.is-light .wp-block-cover__inner-container {
	color: #e8f2fa;
}

.wp-block-cover.hg-banner.is-light :is(h1, h2, h3, h4):not(.has-text-color) {
	color: #ffffff;
}

/* ---------- White pages (store, photo categories, single photos) ----------
 * body.hg-light is added by functions.php. The page goes white; the header
 * and footer keep their dark look.
 */
/* Room between the header and the page content. */
body.hg-light main {
	padding-top: clamp(40px, 5vw, 72px);
	padding-bottom: clamp(48px, 6vw, 96px);
}

body.hg-light main:has(> .is-style-section-light:first-child) {
	padding-top: 0;
}

/* Below a short page's footer, keep the dark color instead of white. */
html:has(> body.hg-light) {
	background-color: #07111f;
}

body.hg-light {
	background-color: #ffffff;
	color: #0b1f38;
	--hg-accent: #1f6fa8;
	--hg-accent-hover: #0b1f38;
	--hg-on-accent: #ffffff;
	--hg-heading: #0b1f38;
	--hg-text: #3d5a78;
	--hg-label-muted: #5f7a94;
	--hg-line: #c9dbea;
	--hg-slot: #dce9f4;
}

body.hg-light .hg-header,
body.hg-light .hg-footer {
	background-color: #07111f;
	color: #e8f2fa;
	--hg-accent: #9fd3f5;
	--hg-accent-hover: #d6eefc;
	--hg-on-accent: #07111f;
	--hg-heading: #ffffff;
	--hg-text: #a9c2d6;
	--hg-label-muted: #6f93ad;
	--hg-line: #142a42;
	--hg-slot: #0b1a2e;
}

body.hg-light :where(:is(h1, h2, h3, h4, h5, h6, label, legend, dt, th)):where(:not(.hg-header *, .hg-footer *)) {
	color: var(--hg-heading);
}

body.hg-light :where(a:not(.wp-element-button):not(.wp-block-button__link)):where(:not(.hg-header *, .hg-footer *)) {
	color: var(--hg-accent);
}

body.hg-light :where(a:not(.wp-element-button):not(.wp-block-button__link):hover):where(:not(.hg-header *, .hg-footer *)) {
	color: var(--hg-accent-hover);
}

body.hg-light :where(:is(input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="number"], select, textarea):where(:not(.gform_wrapper *))):where(:not(.hg-header *, .hg-footer *)) {
	background: #ffffff;
	border-color: #c9dbea;
	color: #0b1f38;
}

body.hg-light :where(:is(input, select, textarea):focus):where(:not(.hg-header *, .hg-footer *)) {
	border-color: #1f6fa8;
}

body.hg-light ::placeholder {
	color: #7d95ab;
}

body.hg-light :where(:is(button, input[type="submit"], input[type="reset"], input[type="button"]):where(:not(.wp-block-navigation *))):where(:not(.hg-header *, .hg-footer *)) {
	background: #0b1f38;
	border: 1px solid #0b1f38;
	color: #ffffff;
}

body.hg-light :where(:is(button, input[type="submit"], input[type="reset"], input[type="button"]):where(:not(.wp-block-navigation *)):hover):where(:not(.hg-header *, .hg-footer *)) {
	background: #1f6fa8;
	border-color: #1f6fa8;
}

body.hg-light :where(:is(input[type="reset"], button[type="reset"])):where(:not(.hg-header *, .hg-footer *)) {
	background: transparent;
	color: #0b1f38;
}

body.hg-light .hg-cards .wp-block-post {
	background: #eef5fb;
}

body.hg-light .hg-cards .wp-block-post-title a {
	color: #0b1f38;
}

body.hg-light .hg-cards .wp-block-post-title a:hover {
	color: #1f6fa8;
}

body.hg-light .wp-block-query-pagination-numbers .page-numbers.current {
	background: #0b1f38;
	color: #ffffff;
}

/* ---------- White section ("Own a piece of the shot") ---------- */
.hg-section-white {
	background-color: #ffffff;
	color: #0b1f38;
	--hg-accent: #1f6fa8;
	--hg-accent-hover: #0b1f38;
	--hg-on-accent: #ffffff;
	--hg-heading: #0b1f38;
	--hg-text: #3d5a78;
	--hg-label-muted: #5f7a94;
	--hg-line: #c9dbea;
	--hg-slot: #dce9f4;
}

.hg-section-white .wp-block-button:not(.is-style-outline):not(.is-style-outline-accent):not(.is-style-text-link) > .wp-block-button__link {
	background: #0b1f38;
	color: #ffffff;
}

.hg-section-white .wp-block-button:not(.is-style-outline):not(.is-style-outline-accent):not(.is-style-text-link) > .wp-block-button__link:hover {
	background: #1f6fa8;
	color: #ffffff;
}

.hg-prints-cta .hg-prints {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 0;
}

.hg-prints-cta .hg-print__img {
	aspect-ratio: 4 / 5;
	box-shadow: 0 18px 40px -24px rgba(11, 31, 56, 0.45);
}

.hg-prints-cta .hg-print:nth-child(2) {
	transform: translateY(-24px);
}

@media (max-width: 600px) {
	.hg-prints-cta .hg-prints {
		gap: 8px;
	}
	.hg-prints-cta .hg-print:nth-child(2) {
		transform: none;
	}
	.hg-prints-cta .hg-print__title {
		display: none;
	}
}

/* ---------- Event cards (Events page) ---------- */
.hg-event-cards .wp-block-post {
	display: flex;
	flex-direction: column;
	background: #0b1a2e;
	border: 1px solid #142a42;
	--hg-accent: #9fd3f5;
	--hg-accent-hover: #d6eefc;
	--hg-heading: #ffffff;
	--hg-text: #a9c2d6;
}

.hg-event-cards .wp-block-post-featured-image {
	margin: 0;
}

.hg-event-cards .wp-block-post-featured-image img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform 0.6s ease;
}

.hg-event-cards .wp-block-post-featured-image {
	overflow: hidden;
}

.hg-event-cards .wp-block-post:hover .wp-block-post-featured-image img {
	transform: scale(1.04);
}

.hg-event-cards .hg-event-date {
	margin: 0;
	color: #9fd3f5;
}

.hg-event-cards .hg-event-title {
	margin: 14px 0 0;
	font-family: var(--wp--preset--font-family--serif);
	font-size: clamp(26px, 2.4vw, 32px);
	font-weight: 400;
	line-height: 1.1;
}

.hg-event-cards .hg-event-title,
.hg-event-cards .hg-event-title a {
	color: #ffffff;
	text-decoration: none;
}

.hg-event-cards .hg-event-title a:hover {
	color: #9fd3f5;
}

.hg-event-cards .hg-event-more {
	display: inline-block;
	margin-top: 20px;
	font: 600 13px/1 var(--wp--preset--font-family--sans);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #9fd3f5;
	text-decoration: none;
}

.hg-event-cards .hg-event-more:hover {
	color: #ffffff;
}

/* ---------- Single event page ---------- */
.hg-event-value {
	margin: 0;
	font-family: var(--wp--preset--font-family--condensed);
	font-size: clamp(24px, 2.4vw, 32px);
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	color: var(--hg-heading);
}

.hg-event-value a {
	color: var(--hg-heading);
}

.hg-event-value a:hover {
	color: var(--hg-accent);
}

/* "More info" is a button, not a big value */
.hg-event-more-info .hg-event-value {
	font: 600 15px/1 var(--wp--preset--font-family--sans);
	letter-spacing: 0.02em;
	text-transform: none;
}

.hg-event-more-info .hg-event-value a {
	display: inline-block;
	padding: 14px 24px;
	border: 1px solid rgba(214, 238, 252, 0.5);
	border-radius: 999px;
	text-decoration: none;
}

.hg-event-more-info .hg-event-value a:hover {
	border-color: var(--hg-accent);
}

/* VS Event List adds its own Date/Time lines to the description; the
   details column already shows them. */
.hg-event-about [class*="vsel-meta"],
.hg-event-about .vsel-image-info,
.hg-event-about .vsel-image {
	display: none;
}

.hg-event-about > * + * {
	margin-top: 1em;
}

@media (min-width: 782px) {
	.hg-event-details {
		position: sticky;
		top: 32px;
	}
}

.hg-event-debug {
	margin-top: 48px;
	font-size: 13px;
}

.hg-event-debug summary {
	cursor: pointer;
}

.hg-event-debug table {
	margin-top: 12px;
	border-collapse: collapse;
	width: 100%;
}

.hg-event-debug td {
	padding: 6px 10px;
	border-top: 1px solid var(--hg-line);
	vertical-align: top;
}

/* ---------- Gravity Forms: placeholder style (matches the design) ----------
 * Text-type fields show their name inside the box instead of a label above.
 * Choice fields (radio pills, checkboxes, dropdowns) keep their labels.
 */
.hg-gf .gform_wrapper :is(.gfield--type-text, .gfield--type-email, .gfield--type-name, .gfield--type-textarea, .gfield--type-phone, .gfield--type-website, .gfield--type-number) :is(.gfield_label, .gform-field-label--type-sub, .ginput_complex label) {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	margin: 0 !important;
	padding: 0 !important;
}

.hg-gf .gform_wrapper .gform_fields {
	row-gap: 14px !important;
	column-gap: 14px !important;
}

.hg-gf .gform_wrapper .ginput_complex {
	gap: 14px !important;
}

.hg-gf .gform_wrapper input[type="text"],
.hg-gf .gform_wrapper input[type="email"],
.hg-gf .gform_wrapper input[type="tel"],
.hg-gf .gform_wrapper input[type="number"],
.hg-gf .gform_wrapper input[type="url"],
.hg-gf .gform_wrapper select,
.hg-gf .gform_wrapper textarea {
	padding: 16px 18px !important;
	background: #0f1a2b !important;
	border: 1px solid #1f3149 !important;
	border-radius: 7px !important;
	color: #ffffff !important;
	font: 400 16px/1.4 var(--wp--preset--font-family--sans) !important;
}

.hg-gf .gform_wrapper :is(input, textarea, select) {
	display: block;
	vertical-align: top;
}

.hg-gf .gform_wrapper ::placeholder {
	color: #6b7684 !important;
	opacity: 1 !important;
}

.hg-gf .gform_wrapper textarea {
	height: 136px !important;
}

.hg-gf .gform_wrapper :is(input, textarea, select):focus {
	border-color: #9fd3f5 !important;
	background-color: #112035 !important;
}

/* Name and Email side by side when they're single boxes (as in the design) */
@media (min-width: 640px) {
	.hg-gf .gform_wrapper .gform_fields {
		display: grid !important;
		grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	}
	.hg-gf .gform_wrapper .gform_fields > .gfield,
	.hg-gf .gform_wrapper .gform_fields > fieldset {
		grid-column: 1 / -1;
	}
	.hg-gf .gform_wrapper .gform_fields > .gfield--width-half {
		grid-column: span 6;
	}
	.hg-gf .gform_wrapper .gfield--type-name:not(:has(.ginput_complex)):has(+ .gfield--type-email .ginput_container:not(.ginput_complex)) {
		grid-column: span 6 !important;
	}
	.hg-gf .gform_wrapper .gfield--type-name:not(:has(.ginput_complex)) + .gfield--type-email:not(:has(.ginput_complex)) {
		grid-column: span 6 !important;
	}
}

/* Help text and counter stay quiet */
.hg-gf .gform_wrapper .gfield_description,
.hg-gf .gform_wrapper .ginput_counter {
	color: #6b7684 !important;
}

.hg-gf .gform_wrapper .gfield_description + .ginput_container {
	margin-top: 8px !important;
}

/* "Send message" pill */
.hg-gf .gform_wrapper .gform_footer,
.hg-gf .gform_wrapper .gform_page_footer {
	margin-top: 14px !important;
}

.hg-gf .gform_wrapper .gform_button,
.hg-gf .gform_wrapper .gform_footer input[type="submit"],
.hg-gf .gform_wrapper .gform_footer button {
	padding: 16px 28px !important;
	background: #aed4f2 !important;
	color: #07111f !important;
	font: 700 15px/1 var(--wp--preset--font-family--sans) !important;
	letter-spacing: 0.02em !important;
}

/* Event pages: form sits on the page like the design, not in a card */
.hg-event-form.is-style-card {
	padding: 0;
	background: transparent;
	border-radius: 0;
}


.hg-gf .gform_wrapper p:empty,
.hg-gf > p:empty {
	display: none;
}

/* ---------- Portfolio filter pills ([photo_portfolio]) ----------
 * Catches the plugin's category buttons/links (not photos) and gives them
 * one consistent pill: outline when off, light blue when selected.
 */
.hg-portfolio :is(button, [role="button"], [class*="filter"] a, [class*="categor"] a, [class*="tab"] a, [class*="pill"], [class*="chip"]):not(:has(img)):not(input) {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center;
	gap: 7px;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 11px 18px !important;
	background: transparent !important;
	border: 1px solid #2a4a6a !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	color: #c9dcea !important;
	font: 600 14px/1 var(--wp--preset--font-family--sans) !important;
	letter-spacing: 0.01em;
	text-decoration: none !important;
	vertical-align: middle;
	cursor: pointer;
	transition: background 0.2s, border-color 0.2s, color 0.2s;
}

.hg-portfolio :is(button, [role="button"], [class*="filter"] a, [class*="categor"] a, [class*="tab"] a, [class*="pill"], [class*="chip"]):not(:has(img)):not(input) * {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1 !important;
	vertical-align: middle !important;
	position: static !important;
}

/* The little photo count */
.hg-portfolio :is(button, [role="button"], [class*="filter"] a, [class*="categor"] a, [class*="tab"] a, [class*="pill"], [class*="chip"]):not(:has(img)):not(input) :is(span, small, sup, em) {
	font-size: 12px !important;
	font-weight: 500 !important;
	opacity: 0.65;
	color: inherit !important;
	background: none !important;
}

.hg-portfolio :is(button, [role="button"], [class*="filter"] a, [class*="categor"] a, [class*="tab"] a, [class*="pill"], [class*="chip"]):not(:has(img)):not(input):hover {
	border-color: #9fd3f5 !important;
	color: #ffffff !important;
}

/* Selected filter */
.hg-portfolio :is(button, [role="button"], [class*="filter"] a, [class*="categor"] a, [class*="tab"] a, [class*="pill"], [class*="chip"]):not(:has(img)):not(input):is([aria-pressed="true"], [aria-selected="true"], [aria-current], .active, .is-active, .current, .selected, .is-selected, [class*="--active"], [class*="-active"]) {
	background: #9fd3f5 !important;
	border-color: #9fd3f5 !important;
	color: #07111f !important;
}

/* Spacing for the row of pills */
.hg-portfolio :is([class*="filter"], [class*="categor"], [class*="tabs"]):has(> :is(button, a)) {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px !important;
}

/* ---------- Gravity Forms: override its own theme settings ----------
 * Gravity Forms' "Orbital" style sets colors and spacing through its own
 * variables, often per form with an ID selector, which beats ordinary
 * theme CSS. !important on the variables makes the theme's values win.
 */
.hg-gf .gform_wrapper,
.hg-gf .gform-theme {
	--gf-color-primary: #9fd3f5 !important;
	--gf-color-primary-contrast: #07111f !important;
	--gf-color-in-ctrl: #0f1a2b !important;
	--gf-ctrl-bg-color: #0f1a2b !important;
	--gf-ctrl-bg-color-hover: #0f1a2b !important;
	--gf-ctrl-bg-color-focus: #112035 !important;
	--gf-ctrl-border-color: #1f3149 !important;
	--gf-ctrl-border-color-hover: #2a4a6a !important;
	--gf-ctrl-border-color-focus: #9fd3f5 !important;
	--gf-ctrl-color: #ffffff !important;
	--gf-ctrl-placeholder-color: #c3d2e0 !important;
	--gf-ctrl-placeholder-opacity: 1 !important;
	--gf-ctrl-radius: 7px !important;
	--gf-ctrl-shadow: none !important;
	--gf-ctrl-desc-color: #8fa6bb !important;
	--gf-form-gap-x: 14px !important;
	--gf-form-gap-y: 14px !important;
	--gf-field-gap-x: 14px !important;
	--gf-field-gap-y: 14px !important;
	--gf-label-space-primary: 0px !important;
	--gf-label-space-secondary: 0px !important;
	--gf-label-space-y-primary: 0px !important;
	--gf-label-space-y-secondary: 0px !important;
	--gf-desc-space: 6px !important;
	--gf-form-footer-margin-y-start: 18px !important;
}

/* Readable placeholders (light, like the design) */
.hg-gf .gform_wrapper.gform_wrapper :is(input, textarea)::placeholder {
	color: #c3d2e0 !important;
	opacity: 1 !important;
}

/* Box color: matches the design whatever Gravity Forms sets */
.hg-gf .gform_wrapper.gform_wrapper :is(input[type="text"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], select, textarea) {
	background-color: #0f1a2b !important;
	border-color: #1f3149 !important;
}

.hg-gf .gform_wrapper.gform_wrapper :is(input, select, textarea):focus {
	background-color: #112035 !important;
	border-color: #9fd3f5 !important;
}

/* Tight, even spacing: nothing hidden or empty takes up room */
.hg-gf .gform_wrapper.gform_wrapper .gform_fields {
	row-gap: 14px !important;
	column-gap: 14px !important;
}

.hg-gf .gform_wrapper.gform_wrapper .gfield {
	margin-block: 0 !important;
}

.hg-gf .gform_wrapper .gfield :is(.gfield_validation_message, .gfield_description, .instruction, div, span, p):empty,
.hg-gf .gform_wrapper .gfield_visibility_hidden,
.hg-gf .gform_wrapper .gform_validation_container,
.hg-gf .gform_wrapper .gfield--type-honeypot {
	display: none !important;
}

.hg-gf .gform_wrapper.gform_wrapper .ginput_complex {
	row-gap: 14px !important;
	column-gap: 14px !important;
}

.hg-gf .gform_wrapper.gform_wrapper .gfield_description {
	margin: 0 0 8px !important;
	padding: 0 !important;
	font-size: 14px !important;
	color: #8fa6bb !important;
}

.hg-gf .gform_wrapper.gform_wrapper .ginput_counter {
	margin-top: 6px !important;
}

.hg-gf .gform_wrapper.gform_wrapper .gform_footer {
	margin-top: 18px !important;
	padding: 0 !important;
}
