/* Photo Vault sections: patterns and starter pages. Variables have fallbacks so the same file styles the editor. */
.pv-section {
	--pv-sec-w: var(--pv-width, 1200px);
	box-sizing: border-box;
	max-width: none;
	padding: var(--pv-s8, 64px) var(--pv-s4, 16px);
	margin-block: 0;
	background: var(--pv-bg, #fff);
	color: var(--pv-text, #16181d);
}
.pv-section > * {
	box-sizing: border-box;
	max-width: var(--pv-sec-w);
	margin-inline: auto;
	margin-block: 0 var(--pv-s4, 16px);
}
.pv-section > :last-child { margin-bottom: 0; }
.pv-landing > .pv-content--full > .pv-section { padding-inline: var(--pv-s4, 16px); }
.pv-section > :where(h1, h2, h3, p, .wp-block-buttons, .wp-block-search, .wp-block-details, .wp-block-shortcode) { max-width: min(var(--pv-sec-w), 100%); }
.pv-section > .wp-block-columns,
.pv-section > .wp-block-query { width: 100%; }
.pv-section :where(h1, h2, h3) { color: inherit; }
.pv-section--surface { background: var(--pv-surface, #f5f5f2); }
.pv-section--accent { background: var(--pv-accent, #0b6b6b); color: var(--pv-on-accent, #fff); }
.pv-section--accent :where(h1, h2, h3, p, cite, blockquote) { color: inherit; }
.pv-section--accent .wp-block-button__link { background: var(--pv-on-accent, #fff); border-color: var(--pv-on-accent, #fff); color: var(--pv-accent, #0b6b6b); }
.pv-section--accent .is-style-outline .wp-block-button__link { background: transparent; color: inherit; }

.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--pv-accent, #0b6b6b); }

.pv-section--hero { padding-block: var(--pv-s9, 96px); }
.pv-section--hero > .wp-block-columns > .wp-block-column { align-self: center; }
.pv-section--title { padding-block: var(--pv-s8, 64px) var(--pv-s6, 32px); }
.pv-lead { font-size: 1.25rem; color: var(--pv-muted, #4b5160); max-width: 52rem; }
.pv-eyebrow { font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--pv-muted, #4b5160); }
.pv-section--accent .pv-eyebrow,
.pv-section--accent .pv-lead { color: inherit; }
.pv-note { color: var(--pv-muted, #4b5160); font-size: 0.9375rem; }
.pv-hero-search { max-width: 40rem; margin-inline: auto; }
.pv-hero-search .wp-block-search__inside-wrapper { gap: var(--pv-s2, 8px); }
.pv-hero-search .wp-block-search__input { min-height: 44px; padding: 0.5rem 0.75rem; border: 2px solid var(--pv-border, #d9dbe0); border-radius: var(--pv-radius, 4px); background: var(--pv-bg, #fff); color: var(--pv-text, #16181d); font: inherit; }

/* Image grids made with the Query Loop block */
.pv-asset-grid .wp-block-post-template {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	gap: var(--pv-gap, 16px);
	margin: 0;
	padding: 0;
	list-style: none;
}
.pv-asset-grid .wp-block-post-template > li { margin: 0; }
.pv-asset-grid .wp-block-post-featured-image { margin: 0 0 var(--pv-s2, 8px); }
.pv-asset-grid .wp-block-post-featured-image img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--pv-radius, 4px); }
.pv-asset-grid .wp-block-post-title { margin: 0; font-size: 0.9375rem; font-weight: 600; }
.pv-asset-grid .wp-block-post-title a { color: inherit; text-decoration: none; }
.pv-asset-grid .wp-block-post-title a:hover { text-decoration: underline; }
.pv-asset-grid--hero .wp-block-post-template { grid-template-columns: 1fr; }
.pv-asset-grid--hero .wp-block-post-featured-image img { aspect-ratio: 4 / 3; }
.pv-asset-grid--mosaic .wp-block-post-template { grid-template-columns: repeat(3, 1fr); gap: var(--pv-s2, 8px); }
.pv-asset-grid--mosaic .wp-block-post-featured-image img { aspect-ratio: 1; }
.pv-asset-grid--mosaic .wp-block-post-featured-image { margin: 0; }

/* Cards, tiers, stats, steps */
.pv-tile,
.pv-tier { border: 1px solid var(--pv-border, #d9dbe0); border-radius: var(--pv-radius, 4px); padding: var(--pv-s5, 24px); background: var(--pv-bg, #fff); color: var(--pv-text, #16181d); height: 100%; box-sizing: border-box; }
.pv-section--surface .pv-tile,
.pv-section--surface .pv-tier { background: var(--pv-bg, #fff); }
.pv-tier__price { font-size: 1.75rem; font-weight: 700; margin-block: var(--pv-s2, 8px); }
.pv-tier ul { padding-inline-start: 1.25rem; }
.pv-tier .wp-block-button__link { background: var(--pv-accent, #0b6b6b); color: var(--pv-on-accent, #fff); }
.pv-stat__num { font-family: var(--pv-font-heading, inherit); font-size: clamp(2rem, 1.2rem + 3vw, 3rem); font-weight: 700; line-height: 1.1; margin-bottom: 0; }
.pv-stat__label { color: var(--pv-muted, #4b5160); margin-top: var(--pv-s1, 4px); }
.pv-step__num { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--pv-accent, #0b6b6b); color: var(--pv-on-accent, #fff); font-weight: 700; margin-inline: auto; }
.pv-steps .has-text-align-center:has(.pv-step__num) { text-align: center; }
.pv-logos { align-items: center; }
.pv-logo { font-family: var(--pv-font-heading, inherit); font-weight: 700; font-size: 1.125rem; color: var(--pv-muted, #4b5160); margin: 0; }
.pv-section .wp-block-quote { margin: 0; border-inline-start: 4px solid var(--pv-accent, #0b6b6b); padding-inline-start: var(--pv-s4, 16px); color: var(--pv-text, #16181d); }
.pv-section .wp-block-quote cite { display: block; margin-top: var(--pv-s2, 8px); font-style: normal; color: var(--pv-muted, #4b5160); font-size: 0.9375rem; }
.pv-section--accent .wp-block-quote cite { color: inherit; }
.pv-section .wp-block-details { border-bottom: 1px solid var(--pv-border, #d9dbe0); padding-block: var(--pv-s3, 12px); margin-block: 0; }
.pv-section .wp-block-details summary { cursor: pointer; font-weight: 600; min-height: 24px; }
.pv-banner__cols { align-items: center; }

/* Countdown */
.pv-countdown__end { font-weight: 600; margin-bottom: var(--pv-s3, 12px); }
.pv-countdown__hint { color: var(--pv-muted, #4b5160); font-size: 0.875rem; }
.pv-countdown__live { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--pv-s4, 16px); margin: 0 auto var(--pv-s4, 16px); padding: 0; list-style: none; }
.pv-countdown__unit { min-width: 5rem; text-align: center; padding: var(--pv-s3, 12px); border: 1px solid var(--pv-border, #d9dbe0); border-radius: var(--pv-radius, 4px); background: var(--pv-bg, #fff); }
.pv-countdown__num { display: block; font-family: var(--pv-font-heading, inherit); font-size: 2rem; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pv-countdown__label { display: block; font-size: 0.8125rem; color: var(--pv-muted, #4b5160); }
.pv-countdown__done { text-align: center; font-weight: 600; }
.pv-countdown--live .pv-countdown__end { margin-bottom: var(--pv-s2, 8px); }
.pv-countdown--live .pv-countdown__hint { display: none; }

@media (max-width: 781px) {
	.pv-section { padding-block: var(--pv-s7, 48px); }
	.pv-section--hero { padding-block: var(--pv-s7, 48px); }
	.pv-asset-grid--mosaic .wp-block-post-template { grid-template-columns: repeat(2, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.pv-section * { scroll-behavior: auto; }
}
