/* =========================================================
   WordPress integration styles
   Loaded after assets/css/style.css (the original site CSS,
   kept unchanged). Only WordPress-specific additions live here.
   ========================================================= */

/* Fixed header sits below the admin toolbar for logged-in users. */
.admin-bar .site-header.fixed-top { top: 32px; }
.admin-bar .offcanvas { top: 32px; }
@media screen and (max-width: 782px) {
	.admin-bar .site-header.fixed-top { top: 46px; }
	.admin-bar .offcanvas { top: 46px; }
}
@media screen and (max-width: 600px) {
	/* The toolbar scrolls away on small screens. */
	.admin-bar .site-header.fixed-top.scrolled { top: 0; }
}

/* Skip link (visible on keyboard focus only). */
.ljb-skip-link:focus {
	position: fixed !important;
	top: 12px;
	left: 12px;
	z-index: 2000;
	padding: .75rem 1.1rem;
	background: var(--blush);
	color: var(--ink);
	font-weight: 500;
}

/* Editable background images on the Weddings page (set via inline custom properties). */
.wd-hero[style*="--wd-hero-bg"]:before {
	background: linear-gradient(90deg, rgba(7,12,11,.82) 0%, rgba(7,12,11,.54) 42%, rgba(7,12,11,.15) 75%), var(--wd-hero-bg) center 38%/cover no-repeat;
}
.wd-final[style*="--wd-final-bg"] {
	background: linear-gradient(90deg, rgba(10,14,13,.88), rgba(10,14,13,.48)), var(--wd-final-bg) center/cover no-repeat;
}

/* =========================================================
   Contact Form 7 — match the original .premium-form
   ========================================================= */
.wpcf7 .hidden-fields-container { display: none; }
.premium-form .wpcf7-form-control-wrap { display: block; position: relative; }
.premium-form .form-control:focus,
.premium-form .form-select:focus {
	box-shadow: none;
	border-bottom-color: var(--rust);
}
.premium-form .wpcf7-not-valid {
	border-bottom-color: var(--coral) !important;
}
.premium-form .wpcf7-not-valid-tip {
	display: block;
	margin-top: .45rem;
	color: var(--coral);
	font-size: .78rem;
	letter-spacing: .02em;
}
.premium-form .ljb-submit {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem;
}
.premium-form .wpcf7-spinner {
	margin: 0;
	background-color: var(--rust);
}
.wpcf7-form.submitting .btn-brand {
	opacity: .7;
	pointer-events: none;
}
.premium-form .wpcf7-response-output {
	margin: .5rem 0 0 !important;
	padding: 1rem 1.25rem !important;
	border: 1px solid #bdb7b0 !important;
	border-left-width: 3px !important;
	font-size: .92rem;
	color: var(--ink);
	background: var(--cream);
}
.wpcf7-form.sent .wpcf7-response-output {
	border-color: var(--green) !important;
}
.wpcf7-form.invalid .wpcf7-response-output,
.wpcf7-form.unaccepted .wpcf7-response-output,
.wpcf7-form.payment-required .wpcf7-response-output {
	border-color: var(--blush) !important;
	border-left-color: var(--coral) !important;
}
.wpcf7-form.failed .wpcf7-response-output,
.wpcf7-form.aborted .wpcf7-response-output,
.wpcf7-form.spam .wpcf7-response-output {
	border-color: var(--coral) !important;
}
.wpcf7-form.init .wpcf7-response-output,
.wpcf7-form.resetting .wpcf7-response-output,
.wpcf7-form.submitting .wpcf7-response-output {
	display: none;
}

/* =========================================================
   Generic content (default pages, blog posts, archives)
   ========================================================= */
.ljb-content {
	max-width: 820px;
	font-size: 1.03rem;
	line-height: 1.85;
	color: #5f5a56;
}
.ljb-content > *:first-child { margin-top: 0; }
.ljb-content h2,
.ljb-content h3,
.ljb-content h4 {
	font-family: var(--serif);
	color: var(--ink);
	margin: 2.2rem 0 1rem;
	line-height: 1.2;
}
.ljb-content a { color: var(--rust); text-decoration: underline; text-underline-offset: 3px; }
.ljb-content a:hover { color: var(--coral); }
.ljb-content img { height: auto; }
.ljb-content blockquote {
	margin: 2rem 0;
	padding-left: 1.5rem;
	border-left: 2px solid var(--blush);
	font-family: var(--serif);
	font-style: italic;
	font-size: 1.25rem;
	color: var(--ink);
}
.ljb-content .alignleft { float: left; margin: .3rem 1.5rem 1rem 0; }
.ljb-content .alignright { float: right; margin: .3rem 0 1rem 1.5rem; }
.ljb-content .aligncenter { margin-left: auto; margin-right: auto; }
.ljb-content .wp-caption-text,
.ljb-content figcaption { font-size: .85rem; color: #8a837d; margin-top: .5rem; }

.ljb-post-nav {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid #e4ded6;
	font-family: var(--serif);
}
.ljb-post-nav a { text-decoration: none; color: var(--ink); }

.ljb-card {
	background: #fff;
	box-shadow: var(--shadow);
	display: flex;
	flex-direction: column;
}
.ljb-card__media img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}
.ljb-card__body { padding: 1.75rem; }
.ljb-card__title {
	font-family: var(--serif);
	font-size: 1.45rem;
	line-height: 1.25;
	margin-bottom: .8rem;
}
.ljb-card__title a { color: var(--ink); }
.ljb-card__title a:hover { color: var(--rust); }

.ljb-pagination { margin-top: 3rem; }
.ljb-pagination .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; }
.ljb-pagination .page-numbers {
	display: inline-flex;
	min-width: 44px;
	height: 44px;
	align-items: center;
	justify-content: center;
	padding: 0 .9rem;
	border: 1px solid #d8d1c8;
	color: var(--ink);
}
.ljb-pagination .page-numbers.current,
.ljb-pagination .page-numbers:hover {
	background: var(--blush);
	border-color: var(--blush);
}

.ljb-comments { margin-top: 3rem; }
.ljb-comments .comment-list { padding-left: 1.2rem; }
.ljb-comments input[type="text"],
.ljb-comments input[type="email"],
.ljb-comments input[type="url"],
.ljb-comments textarea {
	width: 100%;
	border: 0;
	border-bottom: 1px solid #bdb7b0;
	background: transparent;
	padding: .8rem 0;
}
.ljb-comments .submit {
	background: var(--blush);
	border: 1px solid var(--blush);
	color: var(--ink);
	padding: .9rem 1.35rem;
}

.search-form { display: flex; gap: .5rem; margin-top: 1.5rem; }
.search-form label { flex: 1; }
.search-form .search-field {
	width: 100%;
	border: 0;
	border-bottom: 1px solid #bdb7b0;
	background: transparent;
	padding: .8rem 0;
}
.search-form .search-submit {
	background: var(--blush);
	border: 1px solid var(--blush);
	color: var(--ink);
	padding: .7rem 1.2rem;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
