/* Vow base styles */

:root {
	--vow-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body.vow {
	background: var(--wp--preset--color--ivory, #FBF7F0);
	color: var(--wp--preset--color--ink, #1F1418);
	font-family: var(--wp--preset--font-family--sans, system-ui, sans-serif);
	font-size: 17px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body.vow--scheme-plum {
	background: var(--wp--preset--color--plum-deep, #2F1623);
	color: var(--wp--preset--color--ivory, #FBF7F0);
}
@media (prefers-color-scheme: dark) {
	body.vow--scheme-auto {
		background: var(--wp--preset--color--plum-deep, #2F1623);
		color: var(--wp--preset--color--ivory, #FBF7F0);
	}
}

.vow h1, .vow h2, .vow h3, .vow h4 {
	font-family: var(--wp--preset--font-family--display, serif);
	font-weight: 400;
}

a { color: var(--wp--preset--color--rose-deep, #A86D71); text-decoration: underline; text-underline-offset: 4px; }
a:hover { color: var(--wp--preset--color--plum, #4A2638); }

.vow-skip-link {
	position: absolute;
	left: -9999px; top: -9999px;
	background: var(--wp--preset--color--plum, #4A2638);
	color: var(--wp--preset--color--ivory, #FBF7F0);
	padding: 0.5rem 1rem;
	font-family: var(--wp--preset--font-family--mono, monospace);
	font-size: 0.85rem;
	z-index: 9999;
}
.vow-skip-link:focus { left: 0; top: 0; }

::selection { background: var(--wp--preset--color--rose, #D49BA0); color: var(--wp--preset--color--plum-deep, #2F1623); }

/* Buttons */
.vow .wp-block-button__link { transition: background 280ms var(--vow-ease), color 280ms; }
.vow .is-style-vow-rose .wp-block-button__link {
	background: var(--wp--preset--color--rose, #D49BA0) !important;
	color: var(--wp--preset--color--ivory, #FBF7F0) !important;
}
.vow .is-style-vow-rose .wp-block-button__link:hover {
	background: var(--wp--preset--color--rose-deep, #A86D71) !important;
}
.vow .is-style-vow-outline .wp-block-button__link {
	background: transparent !important;
	color: var(--wp--preset--color--plum, #4A2638) !important;
	border: 1px solid var(--wp--preset--color--plum, #4A2638) !important;
}
.vow .is-style-vow-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--plum, #4A2638) !important;
	color: var(--wp--preset--color--ivory, #FBF7F0) !important;
}

/* Eyebrow */
.vow .is-style-vow-eyebrow {
	margin: 0 0 0.5rem;
	font-family: var(--wp--preset--font-family--mono, monospace);
	font-size: 0.74rem !important;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	font-weight: 400;
}
.vow .is-style-vow-script {
	font-family: var(--wp--preset--font-family--script, cursive) !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	font-size: clamp(2.4rem, 5vw, 4rem) !important;
}

/* Cards */
.vow .is-style-vow-card {
	background: var(--wp--preset--color--ivory-deep, #F3EBDC);
	border: 1px solid var(--wp--preset--color--border, #E5D7C2);
	padding: 2rem;
}

/* Quote */
.vow .is-style-vow-script {
	font-family: var(--wp--preset--font-family--display, serif);
	font-style: italic;
	font-size: clamp(1.4rem, 2.5vw, 2rem);
}
.vow .wp-block-quote.is-style-vow-script {
	border-left: 1px solid var(--wp--preset--color--rose, #D49BA0);
	padding-left: 1.5rem;
	margin: 2rem 0;
	text-align: center;
}

/* Image frame */
.vow .is-style-vow-frame img {
	padding: 0.75rem;
	background: var(--wp--preset--color--ivory, #FBF7F0);
	border: 1px solid var(--wp--preset--color--border, #E5D7C2);
}

/* Ornament separator */
.vow .wp-block-separator.is-style-vow-ornament {
	border: none;
	height: 2rem;
	background: none;
	display: flex; align-items: center; justify-content: center;
	color: var(--wp--preset--color--rose, #D49BA0);
	max-width: none;
	margin: 1.5rem auto;
}
.vow .wp-block-separator.is-style-vow-ornament::before {
	content: '— ✦ —';
	font-family: var(--wp--preset--font-family--display, serif);
	font-size: 1.3rem;
	letter-spacing: 1rem;
	padding-left: 1rem;
}

/* Navigation */
.vow .wp-block-navigation a {
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.86rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink, #1F1418);
	text-decoration: none;
}
.vow .wp-block-navigation a:hover,
.vow .wp-block-navigation a[aria-current="page"] {
	color: var(--wp--preset--color--rose-deep, #A86D71);
}

/* Search */
.vow .wp-block-search__input {
	background: var(--wp--preset--color--ivory, #FBF7F0);
	color: var(--wp--preset--color--ink, #1F1418);
	border: 1px solid var(--wp--preset--color--border, #E5D7C2);
	padding: 0.85rem 1rem;
	font: inherit;
	font-family: var(--wp--preset--font-family--display, serif);
}
.vow .wp-block-search__input:focus { outline: none; border-color: var(--wp--preset--color--plum, #4A2638); }
.vow .wp-block-search__button {
	background: var(--wp--preset--color--plum, #4A2638);
	color: var(--wp--preset--color--ivory, #FBF7F0);
	padding: 0.85rem 1.25rem;
	border: none;
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 0.78rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

/* === WordPress standard accessibility / alignment / gallery / caption classes === */
.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; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { background-color: #f1f1f1; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0,0,0,.6); clip: auto !important; clip-path: none; color: #21759b; display: block; font-size: 14px; font-weight: 700; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; }
.alignleft  { float: left;  margin-right: 1.5em; }
.alignright { float: right; margin-left:  1.5em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignwide { max-width: 100vw; }
.alignfull { max-width: 100vw; }
.sticky { display: block; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 0.9em; text-align: center; }
.gallery-caption { font-size: 0.85em; }
.bypostauthor { display: block; }
