/*
 * LAV Theme Components — polish-overrides.css
 * Consolidated header/button/page spacing and section rhythm overrides.
 *
 * Loaded in order from functions.php. The last component handle receives
 * generated wedding-design CSS from LAV Core.
 */

/* v28 compact homepage / grouped details page */
.lav-details-page-group .lav-section { border-top: 1px solid rgba(47,53,45,.08); }
.lav-details-page__date-venue { background: var(--lav-bg, #fbf7ef); }
.lav-detail-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.lav-detail-feature-card { background: rgba(255,255,255,.84); border: 1px solid rgba(47,53,45,.10); border-radius: var(--lav-radius, 18px); padding: 1.4rem; box-shadow: 0 14px 34px rgba(36,32,30,.06); }
.lav-detail-feature-card span { display: block; font-size: .68rem; letter-spacing: .18em; text-transform: uppercase; color: var(--lav-accent, #ba7280); margin-bottom: .5rem; }
.lav-detail-feature-card strong { display: block; font-family: var(--lav-heading-font, Georgia, serif); font-size: clamp(1.25rem, 2.5vw, 1.85rem); font-weight: 500; color: var(--lav-text, #2d2d2d); line-height: 1.15; }
.lav-detail-feature-card em { display: block; margin-top: .45rem; font-style: normal; color: rgba(47,53,45,.70); }
.lav-detail-feature-card p { margin: .7rem 0 0; color: rgba(47,53,45,.72); line-height: 1.55; }
.lav-details-page-group .lav-generic-page .lav-prose { max-width: 760px; margin-left: auto; margin-right: auto; }
.lav-homepage-compact-note { max-width: 780px; margin: 0 auto 1rem; }
@media (max-width: 820px) { .lav-detail-feature-grid { grid-template-columns: 1fr; } }

/* ============================================================
   CELEBRATORY HOMEPAGE DEFAULT
   ============================================================ */
.lav-welcome {
	background:
		radial-gradient(circle at 10% 5%, color-mix(in srgb, var(--lav-accent) 12%, transparent), transparent 24rem),
		linear-gradient(180deg, rgba(255,255,255,.92), color-mix(in srgb, var(--lav-bg) 72%, #fff));
	border-top: 1px solid rgba(47,53,45,.06);
	border-bottom: 1px solid rgba(47,53,45,.06);
}

.lav-welcome__copy {
	max-width: 720px;
	margin: 0 auto;
	font-size: clamp(1rem, 1.6vw, 1.18rem);
	line-height: 2;
	color: color-mix(in srgb, var(--lav-charcoal) 72%, var(--lav-muted));
}

.lav-welcome__actions {
	margin-top: 1.75rem;
	display: flex;
	justify-content: center;
	gap: .8rem;
	flex-wrap: wrap;
}

.lav-front-compact .lav-quick-info,
.lav-front-compact .lav-details {
	background: var(--lav-white);
}

@media (max-width: 640px) {
	.lav-welcome__actions .lav-btn { width: 100%; max-width: 260px; }
}

/* ============================================================
   v35.5 frontend polish: active nav, details grouping, guestbook
   ============================================================ */
.lav-nav__list a.is-active,
.lav-nav__list a[aria-current="page"] {
	color: var(--lav-gold);
	border-bottom-color: var(--lav-gold);
}

.lav-nav__list a.lav-nav__cta.is-active,
.lav-nav__list a.lav-nav__cta[aria-current="page"] {
	background: var(--lav-gold);
	color: var(--lav-white);
	border-color: var(--lav-gold);
}

.lav-details-page-group {
	background: var(--lav-bg, #fbf7ef);
}

.lav-details-page-group .lav-section {
	border-top: 1px solid rgba(47,53,45,.08);
	background: transparent;
}

.lav-details-page-group .lav-section:nth-of-type(even) {
	background: color-mix(in srgb, var(--lav-card-bg, #fff) 58%, transparent);
}

.lav-details-page-group .lav-section > .lav-container {
	max-width: 1080px;
}

.lav-details-page-group .lav-public-schedule__list,
.lav-details-page-group .lav-info-card,
.lav-details-page-group .lav-faq__list,
.lav-details-page-group .lav-generic-page .lav-prose {
	background: color-mix(in srgb, var(--lav-card-bg, #fff) 92%, transparent);
	border: 1px solid color-mix(in srgb, var(--lav-gray-light, #e9e1d7) 82%, transparent);
	border-radius: var(--lav-radius, 20px);
	box-shadow: 0 16px 38px rgba(36,32,30,.055);
	padding: clamp(1.35rem, 3vw, 2.25rem);
}

.lav-details-page-group .lav-generic-page .lav-prose {
	max-width: 760px;
}

.lav-details-page-group .lav-page-crosslinks {
	padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(3rem, 6vw, 5rem);
	margin-top: 0;
}

.lav-guestbook-page {
	background:
		radial-gradient(circle at 12% 12%, color-mix(in srgb, var(--lav-accent) 10%, transparent), transparent 22rem),
		linear-gradient(180deg, color-mix(in srgb, var(--lav-bg) 90%, #fff), var(--lav-bg));
	min-height: 62vh;
}

.lav-guestbook__container {
	max-width: 920px;
}

.lav-guestbook__inner {
	background: color-mix(in srgb, var(--lav-card-bg, #fff) 94%, transparent);
	border: 1px solid color-mix(in srgb, var(--lav-gray-light, #e9e1d7) 82%, transparent);
	border-radius: calc(var(--lav-radius, 20px) + 6px);
	box-shadow: 0 22px 55px rgba(36,32,30,.07);
	padding: clamp(2rem, 5vw, 4rem);
}

.lav-guestbook--embedded .lav-guestbook__inner {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
}

.lav-guestbook__inner h1 {
	font-family: var(--lav-font-display);
	font-size: clamp(2rem, 5vw, 3.5rem);
	font-style: italic;
	font-weight: 300;
	color: var(--lav-charcoal);
	margin: 0 0 0.75rem;
}

.lav-guestbook-page .lav-guestbook-form {
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}

@media (max-width: 760px) {
	.lav-details-page-group .lav-public-schedule__list,
	.lav-details-page-group .lav-info-card,
	.lav-details-page-group .lav-faq__list,
	.lav-details-page-group .lav-generic-page .lav-prose,
	.lav-guestbook__inner {
		padding: 1.25rem;
	}
}
/* ============================================================
   v36 frontend foundation
   Consolidated public-facing layout, navigation, generated pages,
   details guide, registry, RSVP, and guestbook styling.
   ============================================================ */

:root {
	--lav-generated-page-offset: clamp(8.25rem, 11vw, 10.5rem);
	--lav-guide-section-pad: clamp(3.25rem, 5vw, 4.75rem);
	--lav-card-bg: var(--lav-surface, var(--lav-white));
	--lav-border: var(--lav-line, var(--lav-gray-light));
	--lav-muted: var(--lav-gray);
	--lav-on-primary: #ffffff;
}

body.admin-bar {
	--lav-generated-page-offset: clamp(10rem, 12vw, 12rem);
}

/* Header and navigation: one layout, centered RSVP action, no competing nav rules. */
.lav-header {
	padding: 0.95rem 0 0.85rem;
}

.lav-header__inner {
	gap: 0.55rem;
}

.lav-header__logo {
	font-family: var(--lav-font-logo, var(--lav-font-display));
	font-size: clamp(1.28rem, 1.8vw, 1.95rem);
	letter-spacing: 0.06em;
	line-height: 1.05;
	text-decoration: none;
}

.lav-header__logo:hover,
.lav-header__logo:focus {
	color: var(--lav-primary, var(--lav-gold));
}

.lav-nav {
	width: min(100%, 940px);
}

.lav-nav__layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	gap: clamp(0.9rem, 2.2vw, 1.8rem);
}

.lav-nav__side--left .lav-nav__list { justify-content: flex-end; }
.lav-nav__side--right .lav-nav__list { justify-content: flex-start; }
.lav-nav__center .lav-nav__list { justify-content: center; }

.lav-nav__list a {
	font-size: clamp(0.7rem, 0.78vw, 0.84rem);
	letter-spacing: 0.18em;
}

.lav-nav__list a.is-active,
.lav-nav__list a[aria-current="page"] {
	color: var(--lav-primary, var(--lav-gold));
	border-bottom-color: var(--lav-primary, var(--lav-gold));
}

.lav-nav__cta {
	min-width: 92px;
	padding: 0.52rem 1.08rem;
	background: var(--lav-primary, var(--lav-gold));
	border-color: var(--lav-primary, var(--lav-gold));
	border-bottom-color: var(--lav-primary, var(--lav-gold));
	color: var(--lav-on-primary);
	box-shadow: 0 8px 22px rgba(0,0,0,.07);
}

.lav-nav__cta:hover,
.lav-nav__cta:focus,
.lav-nav__cta.is-active,
.lav-nav__cta[aria-current="page"] {
	background: var(--lav-style-hero, var(--lav-charcoal));
	border-color: var(--lav-style-hero, var(--lav-charcoal));
	border-bottom-color: var(--lav-style-hero, var(--lav-charcoal));
	color: #fff;
}

/* Button contrast, scoped to LAV components. */
.lav-btn,
.lav-btn--solid,
.lav-floating-actions__rsvp {
	background: var(--lav-primary, var(--lav-gold));
	border-color: var(--lav-primary, var(--lav-gold));
	color: var(--lav-on-primary);
}

.lav-btn:hover,
.lav-btn:focus,
.lav-btn--solid:hover,
.lav-btn--solid:focus {
	background: var(--lav-style-hero, var(--lav-charcoal));
	border-color: var(--lav-style-hero, var(--lav-charcoal));
	color: #fff;
}

.lav-btn--ghost,
.lav-btn--outline,
.lav-hero__actions .lav-btn--ghost,
.lav-welcome__actions .lav-btn--outline,
.lav-page-crosslinks .lav-btn--outline {
	background: transparent;
	border-color: var(--lav-primary, var(--lav-gold));
	color: var(--lav-primary, var(--lav-gold));
}

.lav-btn--ghost:hover,
.lav-btn--ghost:focus,
.lav-btn--outline:hover,
.lav-btn--outline:focus,
.lav-hero__actions .lav-btn--ghost:hover,
.lav-welcome__actions .lav-btn--outline:hover,
.lav-page-crosslinks .lav-btn--outline:hover {
	background: var(--lav-primary, var(--lav-gold));
	border-color: var(--lav-primary, var(--lav-gold));
	color: var(--lav-on-primary);
}

/* Consistent generated page spacing below fixed nav. */
.lav-page-main--lav-shortcode {
	padding-top: 0;
	background: var(--lav-bg, var(--lav-cream));
}

.lav-page-main--lav-shortcode .lav-page-content {
	max-width: none;
	padding: 0;
}

.lav-page-main--lav-shortcode .lav-registry-page,
.lav-page-main--lav-shortcode .lav-rsvp-page,
.lav-page-main--lav-shortcode .lav-guestbook-page,
.lav-page-main--lav-shortcode .lav-section--plain,
.lav-page-main--lav-shortcode > .lav-page > .lav-page-content > .lav-section:first-child,
.lav-details-page-group > .lav-section:first-child {
	padding-top: var(--lav-generated-page-offset);
}

.lav-page-main--lav-shortcode .lav-registry-page,
.lav-page-main--lav-shortcode .lav-rsvp-page,
.lav-page-main--lav-shortcode .lav-guestbook-page,
.lav-page-main--lav-shortcode .lav-section--plain {
	background: var(--lav-bg, var(--lav-cream));
	padding-bottom: clamp(5rem, 8vw, 7rem);
}

.lav-page-main--lav-shortcode .lav-page-hero,
.lav-page-main--registry .lav-page-hero {
	display: none;
}

.lav-page-main--lav-shortcode .lav-page-content > * + * {
	margin-top: 0;
}

/* Admin-only hints may appear inside public sections for logged-in setup. */
.lav-admin-section-hint {
	max-width: 680px;
	margin: 1.4rem auto 0;
	padding: 0.95rem 1.05rem;
	border: 1px dashed color-mix(in srgb, var(--lav-primary, var(--lav-gold)) 42%, var(--lav-border));
	border-radius: 14px;
	background: color-mix(in srgb, var(--lav-card-bg) 92%, var(--lav-bg, var(--lav-cream)));
	color: var(--lav-muted, var(--lav-gray));
	font-family: var(--lav-font-body);
	font-size: 0.86rem;
	line-height: 1.7;
	text-align: center;
}

.lav-admin-section-hint strong { color: var(--lav-text, var(--lav-charcoal)); }
.lav-admin-section-hint a { color: var(--lav-primary, var(--lav-gold)); text-decoration: underline; text-underline-offset: 3px; }

/* Details guide: quiet editorial rhythm with one section spacing system. */
.lav-details-page-group {
	--lav-section-pad: var(--lav-guide-section-pad);
	background: var(--lav-bg, var(--lav-cream));
}

.lav-details-page-group > .lav-section {
	position: relative;
	z-index: 0;
	padding-top: var(--lav-guide-section-pad);
	padding-bottom: var(--lav-guide-section-pad);
	border-top: 1px solid color-mix(in srgb, var(--lav-border) 62%, transparent);
	background: transparent;
	scroll-margin-top: 140px;
}

.lav-details-page-group > .lav-section:first-child {
	--lav-section-pad: var(--lav-generated-page-offset);
	padding-top: var(--lav-generated-page-offset);
	border-top: 0;
}

.lav-details-page-group > .lav-section:nth-of-type(even)::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(180deg, color-mix(in srgb, var(--lav-card-bg) 30%, transparent), transparent 68%);
	pointer-events: none;
}

.lav-details-page-group > .lav-section > .lav-container {
	max-width: 1080px;
}

.lav-details-page-group .lav-section:not(.lav-details-page__date-venue) .lav-script-line {
	font-size: clamp(2rem, 4.2vw, 3.25rem);
	line-height: 1;
	margin-bottom: 0.15rem;
}

.lav-details-page-group .lav-section:not(.lav-details-page__date-venue) h1,
.lav-details-page-group .lav-section:not(.lav-details-page__date-venue) h2 {
	font-family: var(--lav-font-body, sans-serif);
	font-size: clamp(1.05rem, 1.5vw, 1.3rem);
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 1.35;
	text-transform: uppercase;
	color: color-mix(in srgb, var(--lav-text, var(--lav-charcoal)) 82%, var(--lav-primary, var(--lav-gold)));
	margin: 0 0 .9rem;
}

.lav-details-page-group .lav-section-intro,
.lav-details-page-group .lav-details__intro,
.lav-details-page-group .lav-generic-page .lav-prose {
	max-width: 700px;
	margin-left: auto;
	margin-right: auto;
}

.lav-details-page-group .lav-details__grid,
.lav-details-page-group .lav-detail-feature-grid {
	margin-top: clamp(1.8rem, 4vw, 3rem);
}

.lav-details-page-group .lav-details__card,
.lav-details-page-group .lav-detail-feature-card,
.lav-details-page-group .lav-faq__list,
.lav-details-page-group .lav-quick-info__card {
	background: color-mix(in srgb, var(--lav-card-bg) 94%, transparent);
	border: 1px solid color-mix(in srgb, var(--lav-border) 78%, transparent);
	box-shadow: 0 14px 34px rgba(36,32,30,.055);
}

.lav-details-page-group .lav-public-schedule__list,
.lav-details-page-group .lav-info-card,
.lav-details-page-group .lav-generic-page .lav-prose {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
}

.lav-details-page-group .lav-info-card,
.lav-details-page-group .lav-generic-page .lav-prose {
	line-height: 1.85;
}

.lav-details-page-group .lav-public-schedule__list {
	margin-top: clamp(1.8rem, 4vw, 3rem);
}

.lav-details-page-group .lav-public-schedule__item,
.lav-details-page-group .lav-public-schedule li {
	border-bottom: 1px solid color-mix(in srgb, var(--lav-border) 78%, transparent);
	padding: 1.05rem 0;
}

.lav-details-page-group .lav-public-schedule__item:last-child,
.lav-details-page-group .lav-public-schedule li:last-child {
	border-bottom: 0;
}

.lav-details-page-group .lav-page-crosslinks {
	padding: clamp(1.5rem, 4vw, 3rem) 0 clamp(3rem, 6vw, 5rem);
	margin-top: 0;
}

.lav-details-jump {
	max-width: 840px;
	margin: clamp(1.5rem, 3vw, 2.5rem) auto;
	padding: .75rem 1rem;
	border: 1px solid color-mix(in srgb, var(--lav-border) 75%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--lav-bg, var(--lav-cream)) 90%, #fff 10%);
	box-shadow: 0 6px 20px rgba(36, 32, 30, .06);
	text-align: center;
}

.lav-details-jump__label {
	margin: 0 0 .7rem;
	font-size: .68rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--lav-muted, var(--lav-gray));
}

.lav-details-jump__links {
	display: flex;
	justify-content: center;
	gap: .55rem;
	flex-wrap: wrap;
}

.lav-details-jump__links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: .55rem .95rem;
	border: 1px solid color-mix(in srgb, var(--lav-primary, var(--lav-gold)) 42%, var(--lav-border));
	border-radius: 999px;
	background: color-mix(in srgb, var(--lav-card-bg) 90%, transparent);
	color: var(--lav-text, var(--lav-charcoal));
	font-size: .74rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}

.lav-details-jump__links a:hover,
.lav-details-jump__links a:focus {
	background: var(--lav-primary, var(--lav-gold));
	border-color: var(--lav-primary, var(--lav-gold));
	color: var(--lav-on-primary);
	transform: translateY(-1px);
}

/* Registry, RSVP, and Guestbook standalone pages share the same visual family. */
.lav-registry-page .lav-container,
.lav-rsvp-page .lav-container,
.lav-guestbook__container {
	max-width: 960px;
}

.lav-guestbook-page {
	min-height: 72svh;
	background: linear-gradient(180deg, color-mix(in srgb, var(--lav-bg, var(--lav-cream)) 96%, #fff 4%), var(--lav-bg, var(--lav-cream)));
}

.lav-guestbook__inner {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0 clamp(1rem, 3vw, 2rem);
	text-align: center;
}

.lav-guestbook--embedded .lav-guestbook__inner {
	padding: 0;
}

.lav-guestbook__inner .lav-script-line {
	font-size: clamp(3.25rem, 7vw, 6rem);
	color: var(--lav-primary, var(--lav-gold));
	margin-bottom: clamp(1rem, 2vw, 1.5rem);
}

.lav-guestbook__inner h1,
.lav-guestbook__inner h2 {
	font-family: var(--lav-font-display, Georgia, serif);
	font-size: clamp(2rem, 4vw, 3.5rem);
	font-style: normal;
	font-weight: 400;
	line-height: 1.12;
	margin-bottom: 1rem;
}

.lav-guestbook__intro {
	max-width: 620px;
	margin: 0 auto clamp(1.75rem, 3vw, 2.5rem);
}

.lav-guestbook-page .lav-guestbook-form {
	max-width: 680px;
	margin-left: auto;
	margin-right: auto;
	background: color-mix(in srgb, var(--lav-card-bg) 94%, transparent);
	border: 1px solid color-mix(in srgb, var(--lav-border) 78%, transparent);
	box-shadow: 0 14px 34px rgba(36, 32, 30, .055);
}

@media (max-width: 1040px) {
	.lav-nav { width: min(100%, 820px); }
	.lav-nav__layout { gap: 0.95rem; }
	.lav-nav__list { gap: 0.65rem; }
	.lav-nav__list a { letter-spacing: 0.15em; }
}

@media (max-width: 820px) {
	.lav-header__inner { align-items: center; }
	.lav-nav { width: auto; }
	.lav-nav__layout { display: block; }
	.lav-nav__side + .lav-nav__center,
	.lav-nav__center + .lav-nav__side { margin-top: .75rem; }
}

@media (max-width: 720px) {
	:root { --lav-generated-page-offset: 6.75rem; --lav-guide-section-pad: 2.75rem; }
	body.admin-bar { --lav-generated-page-offset: 7.5rem; }

	.lav-details-jump {
		position: static;
		border-radius: 18px;
	}

	.lav-details-jump__links {
		display: grid;
		grid-template-columns: 1fr;
	}

	.lav-details-jump__links a { width: 100%; }

	.lav-guestbook__inner { padding-left: 0; padding-right: 0; }
	.lav-guestbook-page .lav-guestbook-form { padding: 1.25rem; }
}
