/*
Theme Name: Corina Couture
Author: Corina Couture Alterations
Description: Editorial block theme for Corina Couture Alterations, bridal and couture alterations in Rolleston, Selwyn.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.1
Version: 2.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: corina-couture
*/

/*
 * Colour rules (contrast-checked):
 * - Ink text on ivory/oat/white. Gold-deep for small gold text on light. Champagne is never
 *   text on light: only rules, icons, ornaments, the gold button fill (with ink text), and
 *   text on ink/charcoal.
 * - Mulberry only for link hover/focus, the focus ring on light, and the current-menu underline.
 */

/* ------------------------------------------------------------------ font fallbacks
 * Metric-matched local fallbacks (size-adjust measured against the real fonts) so text
 * barely moves when the self-hosted fonts swap in: no layout shift on slow connections.
 */
@font-face { font-family: "Instrument Sans Fallback"; src: local("Arial"); font-weight: 100 450; size-adjust: 102%; }
@font-face { font-family: "Instrument Sans Fallback"; src: local("Arial"); font-weight: 451 900; size-adjust: 103.3%; }
@font-face { font-family: "Marcellus Fallback"; src: local("Georgia"); size-adjust: 92.4%; }
@font-face { font-family: "Parisienne Fallback"; src: local("Times New Roman Italic"), local("Times New Roman"); size-adjust: 136.6%; }

/* ------------------------------------------------------------------ base */
html {
	-webkit-text-size-adjust: 100%;
}

a {
	text-decoration-color: var(--wp--preset--color--champagne);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
}

a:hover,
a:focus-visible {
	text-decoration-color: currentColor;
}

img {
	height: auto;
}

/* Focus: 3px mulberry on light, champagne on dark. Plain selectors so plugin CSS can't hide it. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
	outline: 3px solid var(--wp--preset--color--mulberry);
	outline-offset: 3px;
}

.cc-dark :focus-visible,
.cc-announcement :focus-visible {
	outline-color: var(--wp--preset--color--champagne);
}

/* No lone word on the last line of a paragraph; headings and short labels break into
   even lines. Browsers without support simply wrap as before. */
p,
li,
blockquote {
	text-wrap: pretty;
}

h1,
h2,
h3,
.cc-eyebrow,
.cc-trust-item,
.cc-lede,
.cc-hero-text p {
	text-wrap: balance;
}

/* Editorial type helpers. */
/* Accent word: one word or short phrase in the logo's script, inside a heading.
 * "YOUR GOWN, *perfected.*" Gold-deep on light (5.3:1), champagne on dark (5.8:1). */
:is(h1, h2, .wp-block-post-title) em {
	font-family: var(--wp--preset--font-family--script);
	font-style: normal;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
	/* Parisienne's small x-height reads tiny beside Marcellus capitals at 1em. */
	font-size: 1.4em;
	line-height: 1;
	/* Parisienne's entry strokes overhang to the left; keep them inside the margin. */
	padding-inline-start: 0.12em;
	color: var(--wp--preset--color--gold-deep);
}

h3 em {
	font-style: normal;
	color: var(--wp--preset--color--gold-deep);
}

/* Long titles stay in sentence case (uppercase is for short headings only). */
.cc-journal-grid .wp-block-post-title,
.cc-article :is(h2, h3) {
	font-family: var(--wp--preset--font-family--body);
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
	line-height: 1.3;
}

.cc-article h2 {
	font-size: var(--wp--preset--font-size--large);
}

.cc-article-header .wp-block-post-title {
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.1;
}

.cc-display {
	font-size: var(--wp--preset--font-size--xxx-large);
	line-height: 1.05;
	letter-spacing: 0.06em;
}

.cc-eyebrow,
.cc-eyebrow a {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.875rem;
	font-weight: 500;
	letter-spacing: 0.28em;
	line-height: 1.5;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--wp--preset--color--gold-deep);
}

p.cc-eyebrow,
.wp-block-post-terms.cc-eyebrow {
	margin-block-end: 0.75rem;
}

.cc-eyebrow + :is(h1, h2, h3) {
	margin-block-start: 0;
}

.cc-lede {
	font-size: clamp(1.25rem, 1.1rem + 0.45vw, 1.4375rem);
	font-weight: 400;
	line-height: 1.6;
}

.cc-script {
	font-family: var(--wp--preset--font-family--script);
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1;
	color: var(--wp--preset--color--gold-deep);
	margin-block-end: 0;
}

.cc-numeral {
	font-family: var(--wp--preset--font-family--heading);
	font-style: normal;
	font-weight: 400;
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1;
	color: var(--wp--preset--color--gold-deep);
	margin: 0;
}

.cc-small {
	font-size: var(--wp--preset--font-size--small);
}

.cc-caption-rule {
	display: flex;
	align-items: center;
	gap: 1rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--gold-deep);
	letter-spacing: 0.04em;
}

.cc-caption-rule::before {
	content: "";
	flex: 0 0 3rem;
	height: 1px;
	background: var(--wp--preset--color--champagne);
}

/* Sections */
.cc-section {
	padding-block: var(--wp--preset--spacing--70);
}

/* Section intros line up with the wide grid below them. */
.cc-section:has(> .alignwide) > :is(.cc-eyebrow, .wp-block-heading):not(.has-text-align-center) {
	max-width: var(--wp--style--global--wide-size) !important;
}

.wp-block-post-content > .alignfull {
	margin-block: 0;
}

.wp-site-blocks > * {
	margin-block-start: 0;
}

/* ------------------------------------------------------------------ buttons */
.wp-block-button__link {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

/* Primary (ink) hover: charcoal with a champagne underline glow. */
.wp-block-button:not([class*="is-style-"]) > .wp-block-button__link:not(.has-background):hover,
.wp-block-button:not([class*="is-style-"]) > .wp-block-button__link:not(.has-background):focus-visible {
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--champagne), 0 6px 18px -10px var(--wp--preset--color--champagne);
}

.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):hover,
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background):focus-visible {
	background-color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ivory);
}

.wp-block-button.is-style-gold > .wp-block-button__link {
	background-color: var(--wp--preset--color--champagne);
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--wp--preset--color--champagne);
}

.wp-block-button.is-style-gold > .wp-block-button__link:hover,
.wp-block-button.is-style-gold > .wp-block-button__link:focus-visible {
	background-color: #CDB591;
	border-color: #CDB591;
	color: var(--wp--preset--color--ink);
}

.wp-block-button.is-style-outline-light > .wp-block-button__link {
	background-color: transparent;
	color: var(--wp--preset--color--ivory);
	border: 1px solid var(--wp--preset--color--ivory);
}

.wp-block-button.is-style-outline-light > .wp-block-button__link:hover,
.wp-block-button.is-style-outline-light > .wp-block-button__link:focus-visible {
	background-color: var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--ink);
}

/* ------------------------------------------------------------------ dark sections */
.cc-dark {
	color: var(--wp--preset--color--ivory);
}

.cc-dark :is(h1, h2, h3, h4, .wp-block-heading) {
	color: var(--wp--preset--color--ivory);
}

.cc-dark :is(h1, h2, h3) em,
.cc-dark .cc-numeral,
.cc-dark .cc-script,
.cc-dark .cc-eyebrow,
.cc-dark .cc-eyebrow a {
	color: var(--wp--preset--color--champagne);
}

.cc-dark a:not(.wp-block-button__link),
.cc-dark .wp-block-navigation a {
	color: var(--wp--preset--color--ivory);
	text-decoration-color: var(--wp--preset--color--champagne);
}

.cc-dark a:not(.wp-block-button__link):hover,
.cc-dark a:not(.wp-block-button__link):focus-visible {
	color: var(--wp--preset--color--ivory);
	text-decoration-thickness: 2px;
}

/* A plain (ink) button on dark becomes ivory. */
.cc-dark .wp-block-button:not([class*="is-style-"]) > .wp-block-button__link:not(.has-background) {
	background-color: var(--wp--preset--color--ivory);
	color: var(--wp--preset--color--ink);
}

/* ------------------------------------------------------------------ 44px targets */
.wp-block-navigation-item__content,
.cc-footer a,
.cc-contact-list a,
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
	min-width: 44px;
	justify-content: center;
}

/* ------------------------------------------------------------------ announcement + header */
.cc-announcement {
	padding: 0.5rem var(--wp--style--root--padding-right, 1rem);
	font-size: 0.875rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	line-height: 1.6;
}

.cc-announcement p {
	margin: 0;
}

.cc-announcement a {
	color: var(--wp--preset--color--ivory);
	text-decoration-color: var(--wp--preset--color--champagne);
}

.cc-announcement a:hover {
	color: var(--wp--preset--color--ivory);
	text-decoration-thickness: 2px;
}

/* One line at every width: the full line from 768px, a shorter sentence-case line on phones.
 * (display:none also hides the unused version from screen readers.) */
.cc-announcement p {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cc-ann-short {
	display: none;
}

@media (max-width: 1199px) {
	.cc-announcement {
		letter-spacing: 0.06em;
	}
}

@media (max-width: 767px) {
	.cc-ann-long {
		display: none;
	}

	.cc-ann-short {
		display: inline;
	}

	.cc-announcement {
		text-transform: none;
		letter-spacing: 0.04em;
	}
}

.cc-header {
	gap: 0.5rem;
	padding: 0.75rem var(--wp--style--root--padding-right, 1rem);
	background: var(--wp--preset--color--ivory);
	border-bottom: 1px solid #E3D5C1;
}

.cc-header .cc-nav-left,
.cc-header .cc-nav-right {
	display: none;
}

.cc-header-actions {
	gap: 0.5rem;
}

.cc-logo {
	display: inline-flex;
	align-items: center;
	line-height: 0;
	flex: 0 0 auto;
}

.cc-logo img {
	height: 72px;
	width: auto;
}

/* Narrowest phones: logo, menu button and Book button side by side. */
@media (max-width: 359px) {
	.cc-logo img {
		height: 62px;
	}
}

/* Phones: the header button keeps sentence case so logo, menu button and "Book a fitting" fit at 320px. */
@media (max-width: 599px) {
	.cc-header .cc-book-link .wp-block-button__link {
		padding-inline: 1em;
		letter-spacing: 0.02em;
		text-transform: none;
	}
}

@media (min-width: 782px) {
	.cc-logo img {
		height: 96px;
	}
}

@media (min-width: 600px) {

	.cc-header {
		gap: 1rem;
	}
}

/* Desktop: logo centred, menu split either side (from 1200px: below that the menu, logo
 * and Book button don't fit beside each other, so the menu button is used). */
@media (min-width: 1200px) {
	.wp-site-blocks .cc-header {
		display: grid;
		grid-template-columns: 1fr auto 1fr;
		align-items: center;
		padding-block: 1rem;
	}

	.cc-header .cc-nav-left,
	.cc-header .cc-nav-right {
		display: flex;
	}

	.cc-header .cc-nav-primary {
		display: none;
	}

	.cc-logo img {
		height: 120px;
	}

	.cc-header-actions {
		justify-content: flex-end;
		gap: 1.75rem;
	}
}

.cc-nav-left .wp-block-navigation__container,
.cc-nav-right .wp-block-navigation__container {
	gap: 1.75rem;
}

.cc-nav-left .wp-block-navigation__container,
.cc-nav-right .wp-block-navigation__container,
.cc-header .wp-block-button__link {
	flex-wrap: nowrap;
	white-space: nowrap;
}

/* 1200-1299px: the split menu fits on one line with tighter spacing. */
@media (min-width: 1200px) and (max-width: 1299px) {
	.cc-nav-left .wp-block-navigation__container,
	.cc-nav-right .wp-block-navigation__container {
		gap: 1.1rem;
	}

	.cc-header .wp-block-navigation {
		letter-spacing: 0.08em;
	}

	.cc-header-actions {
		gap: 1.1rem !important;
	}

	.cc-header .cc-book-link .wp-block-button__link {
		padding-inline: 1.3em;
		letter-spacing: 0.08em;
	}

	.cc-logo img {
		height: 108px;
	}
}

/* Current page: mulberry underline. */
.cc-header .wp-block-navigation-item__content[aria-current="page"],
.cc-header .current-menu-item > .wp-block-navigation-item__content {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--mulberry);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.5em;
}

/* Overlay menu: centred, editorial serif. */
.cc-nav-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.cc-nav-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
.cc-nav-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item {
	align-items: center;
	text-align: center;
}

.cc-nav-primary .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.5rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* ------------------------------------------------------------------ footer */
/* Compact: brand, studio, contact and links sit in one row on wide screens. */
.cc-footer {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30);
}

.cc-footer-columns {
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	margin-block: 0;
}

.cc-footer .cc-eyebrow {
	margin-block: 0 0.5rem;
}

.cc-footer-columns p {
	margin-block: 0;
}

.cc-footer-logo {
	margin: 0 0 0.25rem !important;
}

.cc-footer-logo img {
	width: 150px !important;
	height: auto;
}

.cc-footer .cc-footer-strapline {
	margin: 0;
	color: var(--wp--preset--color--champagne);
}

.cc-contact-list {
	margin-block: 0;
}

@media (max-width: 781px) {
	.cc-footer-brand {
		text-align: center;
	}

	.cc-footer-logo {
		margin-inline: auto !important;
	}
}

/* Mid-size screens: a two-by-two grid. */
@media (min-width: 782px) and (max-width: 1439px) {
	.cc-footer-columns {
		flex-wrap: wrap !important;
	}

	.cc-footer-columns > .wp-block-column {
		flex: 1 1 40% !important;
	}
}

/* Wide screens: one row, each column as wide as its content. */
@media (min-width: 1440px) {
	.cc-footer .cc-footer-columns,
	.cc-footer .cc-copyright {
		max-width: 1400px !important;
	}

	.cc-footer .cc-footer-columns {
		justify-content: space-between;
	}

	.cc-footer-columns > .wp-block-column {
		flex: 0 0 auto !important;
	}

	/* The brand never gives up width: squeezed, the logo shrank and the strapline broke mid-word. */
	.cc-footer-columns > .cc-footer-brand {
		flex: 0 0 200px !important;
		max-width: 200px;
	}

	.cc-footer .cc-nav-footer .wp-block-navigation__container {
		grid-template-columns: repeat(3, max-content);
	}

	.cc-footer .cc-nav-footer .wp-block-navigation-item__content,
	.cc-footer .cc-contact-list a {
		white-space: nowrap;
	}
}

.cc-footer .cc-contact-list a {
	overflow-wrap: anywhere;
}

.cc-footer-name {
	font-family: var(--wp--preset--font-family--script);
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.1;
	color: var(--wp--preset--color--champagne);
	margin-block-start: 0.5rem;
}

.cc-footer-columns {
	text-align: left;
}

.cc-contact-list {
	list-style: none;
	padding-left: 0;
}

.cc-footer .cc-nav-footer .wp-block-navigation__container {
	gap: 0 var(--wp--preset--spacing--40);
}

.cc-footer .cc-nav-footer .wp-block-navigation-item__content {
	min-width: 44px;
}

.cc-footer .cc-nav-footer .wp-block-navigation__container {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, max-content));
	align-items: start;
}

@media (min-width: 1200px) {
	.cc-footer .cc-nav-footer .wp-block-navigation__container {
		grid-template-columns: repeat(3, minmax(0, max-content));
	}
}

.cc-copyright {
	max-width: var(--wp--style--global--wide-size) !important;
	margin-block-start: var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--30);
	border-top: 1px solid rgba(184, 155, 114, 0.35);
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--silver);
}

/* ------------------------------------------------------------------ image frames */
.cc-arch,
.cc-arch img {
	border-radius: 999px 999px 0 0;
}

.cc-arch {
	overflow: hidden;
	margin: 0;
}

.cc-arch img,
.cc-card-media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.cc-arch-soft img {
	border-radius: 50% 50% 0 0 / 18% 18% 0 0;
}

/* Focus points for the client photos (ignored if an editor swaps the image). */
img[src*="bride-carried-golden-hour"] { object-position: 45% 40%; }
img[src*="bride-low-back-buttons"] { object-position: 33% 40%; }
img[src*="bride-lace-sleeves-garden"] { object-position: 42% 40%; }
img[src*="bride-dip-vintage-car"] { object-position: 46% 55%; }
img[src*="ceremony-kiss-gazebo"] { object-position: 52% 45%; }
img[src*="beach-bride-lace-train"] { object-position: 50% 62%; }
img[src*="beach-bride-off-shoulder-kiss"] { object-position: 50% 60%; }
img[src*="bride-veil-vineyard"] { object-position: 45% 50%; }
img[src*="corina-profile"] { object-position: 50% 30%; }

/* ------------------------------------------------------------------ hero (split) */
.cc-hero-split {
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--70);
}

.cc-hero-columns {
	gap: var(--wp--preset--spacing--60) !important;
}

.cc-collage {
	position: relative;
	padding-left: 16%;
	padding-bottom: 10%;
	max-width: 560px;
	margin-inline: auto;
}

.cc-collage .cc-arch {
	margin: 0;
}

.cc-collage .cc-collage-inset {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 44%;
	margin: 0;
	border: 6px solid var(--wp--preset--color--ivory);
	box-shadow: 0 18px 40px -24px rgba(31, 26, 28, 0.55);
}

.cc-collage .cc-collage-inset img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

/* Hero video (assets/js/hero-video.js): sits over the hero photo inside the arch and fades in
 * once it can play. The photo stays underneath as the LCP image and the accessible description. */
.cc-hero-video-slot {
	position: relative;
}

.cc-hero-video {
	/* 1px inside the photo, so the video is never a larger paint than the photo and the
	 * photo stays the Largest Contentful Paint (the edge shows the same photo). */
	position: absolute;
	inset: 1px;
	width: calc(100% - 2px);
	height: calc(100% - 2px);
	object-fit: cover;
	object-position: 50% 40%;
	opacity: 0;
	transition: opacity 0.9s ease;
	pointer-events: none;
}

.cc-video-ready .cc-hero-video {
	opacity: 1;
}

.cc-hero-video-toggle {
	position: absolute;
	right: 12px;
	bottom: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(251, 247, 243, 0.55);
	border-radius: 50%;
	background: rgba(31, 26, 28, 0.72);
	color: var(--wp--preset--color--ivory);
	cursor: pointer;
}

.cc-hero-video-toggle:hover {
	background: rgba(31, 26, 28, 0.9);
}

.cc-hero-video-toggle:focus-visible {
	outline: 3px solid var(--wp--preset--color--ivory);
	outline-offset: 2px;
	box-shadow: 0 0 0 6px var(--wp--preset--color--ink);
}

.cc-hero-video-toggle[hidden] {
	display: none;
}

/* ------------------------------------------------------------------ trust strip */
.cc-trust {
	padding-block: var(--wp--preset--spacing--50);
}

/* Five even columns, each an icon above a short credential, centred so the lines
   read evenly. A real list, so screen readers count the items. */
.cc-trust .cc-trust-label {
	margin-block: 0 var(--wp--preset--spacing--40);
}

.cc-trust-list {
	list-style: none;
	margin: 0 auto !important;
	padding: 0;
	max-width: var(--wp--style--global--wide-size) !important;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--wp--preset--spacing--40) 0;
}

.cc-trust-list > li.cc-trust-item {
	box-sizing: border-box;
	margin: 0 !important;
	flex: 0 0 50%;
	flex-direction: column;
	justify-content: flex-start;
	text-align: center;
	gap: 0.6rem;
	padding-inline: 0.75rem;
}

/* Phones: the fifth item spans both columns rather than squeezing onto three lines. */
@media (max-width: 599px) {
	.cc-trust-list > li.cc-trust-item:last-child { flex-basis: 100%; }
}

@media (min-width: 600px) {
	.cc-trust-list > li.cc-trust-item { flex-basis: 33.333%; }
}

@media (min-width: 1000px) {
	.cc-trust-list > li.cc-trust-item { flex-basis: 20%; }
}

.cc-trust-item,
.cc-contact-list li[class*="cc-icon-"] {
	display: flex;
	align-items: center;
	gap: 0.85rem;
}

.cc-trust-item {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.4;
}

.cc-trust-item::before,
.cc-contact-list li[class*="cc-icon-"]::before,
.cc-checklist li::before {
	content: "";
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	background-color: var(--wp--preset--color--champagne);
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
}

.cc-contact-list li[class*="cc-icon-"]::before {
	width: 22px;
	height: 22px;
	background-color: var(--wp--preset--color--gold-deep);
}

.cc-icon-dress::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M9%202.5l.8%203.5L7%209.5l2%201.2L5%2021.5h14l-4-10.8%202-1.2-2.8-3.5.8-3.5'%2F%3E%3Cpath%20d%3D'M9.8%206c1.4.8%203%20.8%204.4%200'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M9%202.5l.8%203.5L7%209.5l2%201.2L5%2021.5h14l-4-10.8%202-1.2-2.8-3.5.8-3.5'%2F%3E%3Cpath%20d%3D'M9.8%206c1.4.8%203%20.8%204.4%200'%2F%3E%3C%2Fsvg%3E")}
.cc-icon-needle::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M3.5%2020.5L18.5%205.5'%2F%3E%3Cpath%20d%3D'M16.5%203.5l4%204'%2F%3E%3Cpath%20d%3D'M3.5%2020.5c2.5-.5%204%201.5%206.5.5s3.5-4%206.5-3.5'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M3.5%2020.5L18.5%205.5'%2F%3E%3Cpath%20d%3D'M16.5%203.5l4%204'%2F%3E%3Cpath%20d%3D'M3.5%2020.5c2.5-.5%204%201.5%206.5.5s3.5-4%206.5-3.5'%2F%3E%3C%2Fsvg%3E")}
.cc-icon-star::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M12%203.2l2.6%205.4%205.9.8-4.3%204.1%201%205.9L12%2016.6l-5.2%202.8%201-5.9-4.3-4.1%205.9-.8z'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M12%203.2l2.6%205.4%205.9.8-4.3%204.1%201%205.9L12%2016.6l-5.2%202.8%201-5.9-4.3-4.1%205.9-.8z'%2F%3E%3C%2Fsvg%3E")}
.cc-icon-home::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M3.5%2011L12%204l8.5%207'%2F%3E%3Cpath%20d%3D'M5.5%209.5V20h13V9.5'%2F%3E%3Cpath%20d%3D'M10%2020v-5h4v5'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M3.5%2011L12%204l8.5%207'%2F%3E%3Cpath%20d%3D'M5.5%209.5V20h13V9.5'%2F%3E%3Cpath%20d%3D'M10%2020v-5h4v5'%2F%3E%3C%2Fsvg%3E")}
.cc-icon-phone::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M6.5%203.5h3l1.5%204-2%201.5a11%2011%200%200%200%206%206l1.5-2%204%201.5v3a2%202%200%200%201-2%202A16%2016%200%200%201%204.5%205.5a2%202%200%200%201%202-2z'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M6.5%203.5h3l1.5%204-2%201.5a11%2011%200%200%200%206%206l1.5-2%204%201.5v3a2%202%200%200%201-2%202A16%2016%200%200%201%204.5%205.5a2%202%200%200%201%202-2z'%2F%3E%3C%2Fsvg%3E")}
.cc-icon-text::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M4%205.5h16v10H9l-5%204z'%2F%3E%3Cpath%20d%3D'M8%2010.5h8'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M4%205.5h16v10H9l-5%204z'%2F%3E%3Cpath%20d%3D'M8%2010.5h8'%2F%3E%3C%2Fsvg%3E")}
.cc-icon-mail::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M3.5%206h17v12h-17z'%2F%3E%3Cpath%20d%3D'M3.5%206.5l8.5%207%208.5-7'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M3.5%206h17v12h-17z'%2F%3E%3Cpath%20d%3D'M3.5%206.5l8.5%207%208.5-7'%2F%3E%3C%2Fsvg%3E")}
.cc-icon-facebook::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M14%2021v-7.5h2.6l.4-3H14V8.7c0-.9.3-1.5%201.6-1.5H17V4.5a19%2019%200%200%200-2.4-.1c-2.4%200-4%201.4-4%204.1v2H8v3h2.6V21'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M14%2021v-7.5h2.6l.4-3H14V8.7c0-.9.3-1.5%201.6-1.5H17V4.5a19%2019%200%200%200-2.4-.1c-2.4%200-4%201.4-4%204.1v2H8v3h2.6V21'%2F%3E%3C%2Fsvg%3E")}
.cc-icon-tiara::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M4%2018h16M5%2018%204%209l4.5%203.5L12%205l3.5%207.5L20%209l-1%209'%2F%3E%3Ccircle%20cx%3D'12'%20cy%3D'4'%20r%3D'0.6'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M4%2018h16M5%2018%204%209l4.5%203.5L12%205l3.5%207.5L20%209l-1%209'%2F%3E%3Ccircle%20cx%3D'12'%20cy%3D'4'%20r%3D'0.6'%2F%3E%3C%2Fsvg%3E")}
.cc-icon-hat::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cellipse%20cx%3D'12'%20cy%3D'16.5'%20rx%3D'9.5'%20ry%3D'2.6'%2F%3E%3Cpath%20d%3D'M7%2015.4V12a5%205%200%200%201%2010%200v3.4'%2F%3E%3Cpath%20d%3D'M16.5%209.5c1.6-1.8%203.4-2.3%204.5-2'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cellipse%20cx%3D'12'%20cy%3D'16.5'%20rx%3D'9.5'%20ry%3D'2.6'%2F%3E%3Cpath%20d%3D'M7%2015.4V12a5%205%200%200%201%2010%200v3.4'%2F%3E%3Cpath%20d%3D'M16.5%209.5c1.6-1.8%203.4-2.3%204.5-2'%2F%3E%3C%2Fsvg%3E")}
.cc-checklist li::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M4.5%2012.5l5%205%2010-11'%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2024%2024'%20fill%3D'none'%20stroke%3D'black'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M4.5%2012.5l5%205%2010-11'%2F%3E%3C%2Fsvg%3E")}

/* ------------------------------------------------------------------ service cards */
.cc-cards {
	display: grid;
	gap: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	grid-template-columns: minmax(0, 1fr);
	margin-block-start: var(--wp--preset--spacing--50) !important;
}

/* Phones: square card images so four cards don't become a very long scroll. */
@media (max-width: 599px) {
	.cc-card .cc-card-media img { aspect-ratio: 1 / 1; }
}

@media (min-width: 600px) {
	.cc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1100px) {
	.cc-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.cc-cards > *,
.cc-trust-list > *,
.cc-card > * {
	margin-block: 0;
}

.cc-card > .wp-block-image {
	margin-block-end: 1.25rem;
}

/* Each card is a column: image, title, text, then the link pinned to the bottom,
   so all four links sit on one line whatever the text length. */
.cc-card {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.cc-card h3 {
	margin-block: 0 0.5rem;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--gold-deep);
}

/* Four narrow columns: keep every card title on one line so the text below lines up. */
@media (min-width: 1100px) and (max-width: 1299px) {
	.cc-card h3 {
		font-size: 1.25rem;
	}
}

.cc-card-link a {
	font-weight: 500;
	text-decoration-color: var(--wp--preset--color--champagne);
}

.cc-card > .cc-card-link {
	margin-block-start: auto;
	padding-block-start: 0.75rem;
}

/* ------------------------------------------------------------------ meet corina (dark) */
.cc-meet {
	position: relative;
	overflow: hidden;
}

.cc-meet::before {
	content: "";
	position: absolute;
	right: -8%;
	top: 50%;
	width: min(70vw, 680px);
	aspect-ratio: 1;
	transform: translateY(-50%);
	background: url(assets/brand/monogram-champagne.svg) center / contain no-repeat;
	opacity: 0.06;
	pointer-events: none;
}

.cc-meet > * {
	position: relative;
}

.cc-meet-columns {
	gap: var(--wp--preset--spacing--60) !important;
}

.cc-meet-photo {
	max-width: 420px;
	margin-inline: auto !important;
}

.cc-signature {
	font-family: var(--wp--preset--font-family--script);
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1;
	color: var(--wp--preset--color--champagne);
	margin-block: var(--wp--preset--spacing--40) 0;
}

.cc-signature-role {
	margin-block-start: 0.25rem;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--silver);
}

/* ------------------------------------------------------------------ why corina */
.cc-why-columns {
	gap: var(--wp--preset--spacing--50) !important;
	margin-block-start: var(--wp--preset--spacing--50) !important;
}

.cc-why-columns > .wp-block-column {
	border-top: 1px solid var(--wp--preset--color--champagne);
	padding-top: var(--wp--preset--spacing--40);
}

.cc-why-columns h3 {
	margin-block: 0.75rem 0.5rem;
}

/* ------------------------------------------------------------------ reviews band */
.cc-reviews {
	background-color: var(--wp--preset--color--ink) !important;
	/* 82% ink scrim over the photo keeps ivory text well above 4.5:1 even on the brightest sky. */
	background-image: linear-gradient(rgba(43, 35, 38, 0.82), rgba(43, 35, 38, 0.82)), url(assets/images/work-bride-veil-vineyard-800.webp);
	background-size: cover;
	background-position: 45% 50%;
}

@media (min-width: 800px) {
	.cc-reviews {
		background-image: linear-gradient(rgba(43, 35, 38, 0.82), rgba(43, 35, 38, 0.82)), url(assets/images/work-bride-veil-vineyard-1400.webp);
	}
}

/* With JS, the photo waits until the band is near the screen (reveal.js adds cc-bg-in). */
.cc-js .cc-reviews:not(.cc-bg-in) {
	background-image: none;
}

.cc-reviews .cc-eyebrow,
.cc-reviews .cc-eyebrow a {
	color: var(--wp--preset--color--ivory);
}

.cc-reviews-list {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50);
	margin-block: var(--wp--preset--spacing--50) !important;
}

.cc-reviews-list > * {
	margin-block: 0;
}

@media (min-width: 900px) {
	.cc-reviews-list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		align-items: start;
	}

	.cc-reviews-list > :nth-child(2) {
		margin-top: var(--wp--preset--spacing--60);
	}
}

.wp-block-quote.cc-review {
	margin: 0;
	padding: 0;
	border: 0;
}

.wp-block-quote.cc-review::before {
	content: "\201C" / "";
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 4.5rem;
	line-height: 0.6;
	height: 2.25rem;
	color: var(--wp--preset--color--champagne);
}

.wp-block-quote.cc-review p {
	margin: 0;
	font-family: var(--wp--preset--font-family--body);
	font-style: normal;
	font-weight: 400;
	font-size: 1.1875rem;
	line-height: 1.6;
}

.wp-block-quote.cc-review cite {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	font-weight: 500;
	letter-spacing: 0.06em;
}

.wp-block-quote.cc-review cite::before {
	content: "";
	width: 2rem;
	height: 1px;
	background: var(--wp--preset--color--champagne);
}

.cc-reviews > .cc-reviews-rating,
.cc-reviews > .cc-editor-note {
	max-width: var(--wp--style--global--wide-size);
}

/* ------------------------------------------------------------------ journal */
.cc-journal-head {
	gap: 1rem;
	margin-block-end: var(--wp--preset--spacing--50) !important;
}

.cc-journal-head > * {
	margin: 0;
}

.cc-journal-grid.cc-journal-grid {
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
}

@media (min-width: 782px) {
	.cc-journal-grid.cc-journal-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1100px) {
	.cc-journal-grid.cc-journal-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.cc-journal-grid > li > * {
	margin-block: 0;
}

.cc-journal-grid .wp-block-post-featured-image,
.cc-journal-grid > li:not(:has(.wp-block-post-featured-image))::before {
	margin-block-end: 1.25rem;
	overflow: hidden;
}

.cc-journal-grid .wp-block-post-featured-image img {
	aspect-ratio: 3 / 2;
	object-fit: cover;
	width: 100%;
}

/* Posts without a featured image get the branded line-art tile, so the grid stays even. */
.cc-journal-grid > li:not(:has(.wp-block-post-featured-image))::before {
	content: "";
	display: block;
	aspect-ratio: 3 / 2;
	background: url(assets/images/placeholder-wide-1.jpg) center / cover;
}

.cc-journal-grid .wp-block-post-title {
	font-size: var(--wp--preset--font-size--large);
	margin-block: 0.25rem 0.5rem;
}

.cc-journal-grid .wp-block-post-title a {
	text-decoration: none;
}

.cc-journal-grid .wp-block-post-title a:hover {
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--mulberry);
}

.cc-listing {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
}

.wp-block-query-pagination {
	margin-block-start: var(--wp--preset--spacing--60);
}

.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	min-height: 44px;
	min-width: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ------------------------------------------------------------------ page + article headers */
.cc-page-header {
	padding-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40);
	text-align: center;
}

.cc-page-header:not(:has(*)) {
	display: none;
}

.cc-page-header .wp-block-post-title,
.cc-page-header h1 {
	font-size: var(--wp--preset--font-size--xx-large);
	margin-block: 0;
}

.cc-page-header .cc-lede {
	margin-block-start: var(--wp--preset--spacing--40);
}

/*
 * Pages (templates/page.html): the title is left-aligned on the same edge as the content
 * below it, so the h1, the first eyebrow and the lede read as one column. It uses the 720px
 * content column, or the wide column when the page opens with a wide block (Bridal, About,
 * Wedding party split intros).
 */
.cc-page-header.cc-page-title {
	text-align: left;
	padding-block-end: 0;
}

main:has(> .wp-block-post-content > .alignwide:first-child) > .cc-page-title > * {
	max-width: var(--wp--style--global--wide-size) !important;
}

main:has(> .cc-page-title) > .wp-block-post-content > :first-child:not(.alignfull) {
	margin-block-start: var(--wp--preset--spacing--40);
}

main:has(> .cc-page-title) > .wp-block-post-content > .cc-split:first-child {
	margin-block-start: var(--wp--preset--spacing--30) !important;
}

.cc-article-meta {
	gap: 0.5rem 1.5rem;
	margin-block-end: var(--wp--preset--spacing--40) !important;
}

.cc-article-meta > * {
	margin: 0 !important;
}

.cc-article-media {
	margin-block-end: var(--wp--preset--spacing--50);
}

.cc-article {
	font-size: var(--wp--preset--font-size--medium);
}

.cc-article-end {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
}

/* ------------------------------------------------------------------ checklist, journey, timeline */
.cc-checklist {
	list-style: none;
	padding: 0;
	display: grid;
	gap: 0.85rem 2rem;
	margin-block-start: var(--wp--preset--spacing--40);
}

@media (min-width: 1100px) {
	.cc-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.cc-checklist li {
	display: flex;
	align-items: flex-start;
	gap: 0.85rem;
	line-height: 1.5;
}

.cc-checklist li::before {
	width: 22px;
	height: 22px;
	margin-top: 0.2em;
}

.cc-checklist-columns,
.cc-journey-columns {
	gap: var(--wp--preset--spacing--60) !important;
}

.cc-checklist-photo,
.cc-journey-photo {
	max-width: 460px;
	margin-inline: auto !important;
}

.cc-step {
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr);
	column-gap: 1rem;
	padding-block: var(--wp--preset--spacing--30);
	border-top: 1px solid rgba(184, 155, 114, 0.6);
}

.cc-step > * {
	margin: 0 !important;
}

.cc-step .cc-numeral {
	grid-row: span 2;
}

.cc-step h3 {
	margin-block-end: 0.35rem !important;
}

.cc-timeline {
	list-style: none;
	margin: var(--wp--preset--spacing--50) 0 0;
	padding: 0 0 0 2rem;
	border-left: 1px solid var(--wp--preset--color--champagne);
}

.cc-timeline li {
	position: relative;
	padding-block-end: var(--wp--preset--spacing--40);
}

.cc-timeline li::before {
	content: "";
	position: absolute;
	left: calc(-2rem - 5px);
	top: 0.55em;
	width: 9px;
	height: 9px;
	transform: rotate(45deg);
	background: var(--wp--preset--color--champagne);
}

.cc-timeline strong {
	display: block;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	line-height: 1.2;
	margin-block-end: 0.25rem;
}


/* ------------------------------------------------------------------ content-page layouts (used by content/*.html) */
.cc-split {
	gap: var(--wp--preset--spacing--60) !important;
	margin-block: var(--wp--preset--spacing--50) !important;
}

.cc-split .cc-arch {
	max-width: 480px;
	margin-inline: auto;
}

.cc-steps {
	gap: var(--wp--preset--spacing--50) !important;
	margin-block: var(--wp--preset--spacing--50) !important;
}

.cc-steps > .cc-step {
	display: block;
	padding-block: var(--wp--preset--spacing--40) 0;
	border-top: 1px solid var(--wp--preset--color--champagne);
}

.cc-steps > .cc-step > * {
	margin-block: 0 0.5rem !important;
}

.cc-steps > .cc-step :is(h2, h3) {
	font-size: var(--wp--preset--font-size--large);
	margin-block: 0.75rem 0.5rem !important;
}

.cc-service {
	border-top: 1px solid rgba(184, 155, 114, 0.6);
	scroll-margin-top: 1.5rem;
}

.cc-service:first-of-type {
	border-top: 0;
}

.cc-service h2,
.cc-explainers h2,
[id] {
	scroll-margin-top: 1.5rem;
}

.cc-explainers .wp-block-columns {
	gap: var(--wp--preset--spacing--40) var(--wp--preset--spacing--60) !important;
	margin-block-start: var(--wp--preset--spacing--50) !important;
}

.cc-explainers h3 {
	font-size: var(--wp--preset--font-size--large);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid rgba(184, 155, 114, 0.6);
	margin-block: var(--wp--preset--spacing--40) 0.5rem;
}

.cc-explainers .wp-block-column > h3:first-child {
	margin-block-start: 0;
}

.wp-block-gallery.cc-gallery {
	gap: var(--wp--preset--spacing--30);
}

/* ------------------------------------------------------------------ FAQ (details) */
.wp-block-details summary {
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 44px;
	padding-block: 0.75rem;
	box-sizing: border-box;
	cursor: pointer;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+" / "";
	flex: 0 0 auto;
	font-family: var(--wp--preset--font-family--body);
	font-weight: 400;
	font-size: 1.75rem;
	line-height: 1;
	color: var(--wp--preset--color--gold-deep);
	transition: transform 0.25s ease;
}

.wp-block-details[open] > summary::after {
	transform: rotate(45deg);
}

.cc-faq summary,
.wp-block-details.cc-faq summary {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	line-height: 1.3;
}

/* ------------------------------------------------------------------ contact, booking */
.cc-contact-details {
	padding: var(--wp--preset--spacing--50);
	background: var(--wp--preset--color--white);
	border: 1px solid rgba(184, 155, 114, 0.45);
}

.cc-contact-list li + li {
	margin-top: 0.25rem;
}

.cc-book .wp-block-button__link {
	font-size: 1.0625rem;
	padding: 1.1em 2.4em;
}

.cc-book a,
.cc-contact-list a,
.entry-content a[href^="mailto:"],
.wp-block-post-content a[href^="mailto:"] {
	overflow-wrap: anywhere;
}

/* Category links (journal cards, article meta) are 44px tap targets. */
.wp-block-post-terms a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
}

.cc-book-frame iframe {
	display: block;
	width: 100%;
	min-height: 900px;
	background: var(--wp--preset--color--white);
	border: 1px solid rgba(184, 155, 114, 0.45) !important;
}

.cc-book-fallback {
	font-size: 0.9375rem;
}

/* Booking window (assets/js/booking.js): Setmore over the page. */
.cc-booking-dialog {
	width: min(960px, calc(100vw - 2rem));
	height: min(860px, calc(100dvh - 2rem));
	max-width: none;
	max-height: none;
	padding: 0;
	border: 0;
	background: var(--wp--preset--color--white);
	box-shadow: 0 24px 60px rgba(28, 22, 20, 0.35);
	flex-direction: column;
}

.cc-booking-dialog[open] {
	display: flex;
}

.cc-booking-dialog::backdrop {
	background: rgba(28, 22, 20, 0.55);
}

.cc-booking-bar {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.5rem 0.5rem 0.5rem 1.25rem;
	border-bottom: 1px solid rgba(184, 155, 114, 0.45);
}

.cc-booking-title {
	margin: 0 auto 0 0;
	font-family: var(--wp--preset--font-family--heading);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--ink);
}

.cc-booking-newtab {
	font-size: 0.875rem;
}

.cc-booking-close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
}

.cc-booking-close:focus-visible {
	outline: 2px solid var(--wp--preset--color--gold-deep);
	outline-offset: 2px;
}

.cc-booking-dialog iframe {
	flex: 1;
	width: 100%;
	border: 0;
}

html.cc-booking-open {
	overflow: hidden;
}

@media (max-width: 599px) {
	.cc-booking-dialog {
		width: 100vw;
		height: 100dvh;
	}

	.cc-booking-newtab {
		display: none;
	}
}

/* ------------------------------------------------------------------ divider */
hr.wp-block-separator.cc-divider {
	border: 0 !important;
	height: 14px;
	width: min(280px, 70%) !important;
	max-width: none;
	margin-inline: auto !important;
	background: url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%20280%2014'%3E%3Cpath%20d%3D'M0%207h122M158%207h122'%20stroke%3D'%23B89B72'%20stroke-width%3D'1'%2F%3E%3Cpath%20d%3D'M140%201l6%206-6%206-6-6z'%20fill%3D'none'%20stroke%3D'%23B89B72'%20stroke-width%3D'1'%2F%3E%3Ccircle%20cx%3D'127'%20cy%3D'7'%20r%3D'1.5'%20fill%3D'%23B89B72'%2F%3E%3Ccircle%20cx%3D'153'%20cy%3D'7'%20r%3D'1.5'%20fill%3D'%23B89B72'%2F%3E%3C%2Fsvg%3E") center / 100% 14px no-repeat;
	opacity: 1;
}

/* ------------------------------------------------------------------ gallery */
.wp-block-gallery.has-nested-images figure.wp-block-image img {
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

.wp-block-gallery.has-nested-images figure.wp-block-image:first-child,
.wp-block-gallery.has-nested-images figure.wp-block-image:first-child img {
	border-radius: 999px 999px 0 0;
	overflow: hidden;
}

/* ------------------------------------------------------------------ Fluent Forms */
.fluentform .ff-el-input--label label,
.fluentform .ff-el-form-check label,
.fluentform .ff-el-help-message {
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--ink);
}

.fluentform .ff-el-input--label label {
	font-weight: 500;
}

.fluentform .ff-el-form-control,
.fluentform textarea.ff-el-form-control,
.fluentform select.ff-el-form-control {
	font: inherit;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.5;
	background-color: var(--wp--preset--color--white);
	border: 1px solid #8A7D80;
	border-radius: 4px;
	min-height: 44px;
	padding: 0.55em 0.8em;
	box-sizing: border-box;
}

.fluentform form .ff-el-form-control {
	color: var(--wp--preset--color--ink) !important;
}

.fluentform .ff-el-form-control:focus {
	border-color: var(--wp--preset--color--ink);
	box-shadow: none;
}

.fluentform .ff-el-form-control:focus-visible,
.fluentform .ff-btn:focus-visible {
	outline: 3px solid var(--wp--preset--color--mulberry) !important;
	outline-offset: 3px;
}

.fluentform .ff-btn-submit,
.fluentform .ff-btn-submit:not(.ff_btn_no_style) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.95em 2em;
	border: 0;
	border-radius: 999px;
	background-color: var(--wp--preset--color--ink) !important;
	color: var(--wp--preset--color--ivory) !important;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1.2;
	cursor: pointer;
	opacity: 1;
}

.fluentform .ff-btn-submit:hover,
.fluentform .ff-btn-submit:focus-visible {
	background-color: var(--wp--preset--color--charcoal) !important;
	color: var(--wp--preset--color--ivory) !important;
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--champagne);
	opacity: 1;
}

/* ------------------------------------------------------------------ motion */
@media (prefers-reduced-motion: no-preference) {
	.cc-card .wp-block-image img,
	.cc-journal-grid .wp-block-post-featured-image img {
		transition: transform 1.2s cubic-bezier(0.2, 0.6, 0.2, 1);
	}

	.cc-card:hover .wp-block-image img,
	.cc-journal-grid > li:hover .wp-block-post-featured-image img {
		transform: scale(1.03);
	}

	/* Only ever applied by assets/js/reveal.js, to sections below the fold. */
	.cc-reveal-pending {
		opacity: 0;
		transform: translateY(24px);
	}

	.cc-reveal-in {
		opacity: 1;
		transform: none;
		transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.6, 0.2, 1);
	}
}

/* Printing always shows every section, whatever the scroll position. */
@media print {
	.cc-reveal-pending {
		opacity: 1 !important;
		transform: none !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation: none !important;
		transition: none !important;
		scroll-behavior: auto !important;
	}
}
