/* Campaign Landing template (template-campaign-landing.php). Loaded only on that template.
   Contrast (measured, WCAG AA): cream #F3EBDD / navy 15.0; gold #C68B3E / solid navy 6.06 (never on a
   photo, never on cream: 2.48); navy / gold button 6.06; #E7D7C7 / navy 12.65; red #B31F2F / cream 5.62;
   #1B1B1B / cream 14.55. Hero overlay ≥ 75% navy and Visit ≥ 80% keep cream text ≥ 6.7:1 over white pixels.
   Yellowtail (script) only for display text ≥ 28px. No body text under 16px at any width. */

@font-face {
	font-family: 'Yellowtail';
	src: url('../fonts/yellowtail-latin-400-normal.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

.ck-landing {
	--cl-navy: #001A2A;
	--cl-cream: #F3EBDD;
	--cl-gold: #C68B3E;
	--cl-red: #B31F2F;
	--cl-ink: #1B1B1B;
	--cl-muted: #E7D7C7;
	--cl-copper-dark: #8A5A1C;
	--cl-head: 'BN Nautic Grotesk', 'Archivo', sans-serif;
	--cl-body: 'Archivo', sans-serif;
	--cl-script: 'Yellowtail', cursive;
	--cl-gutter: max(16px, calc((50 / 1728) * 100vw));
	--cl-section: clamp(64px, calc((140 / 1728) * 100vw), 160px);
	background: var(--cl-navy);
}

.ck-landing .ck-landing__page {
	font-family: var(--cl-body);
	font-size: clamp(16px, calc((19 / 1728) * 100vw), 20px);
	line-height: 1.6;
	color: var(--cl-cream);
	overflow-wrap: break-word;
}
.ck-landing .ck-landing__wrap {
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 var(--cl-gutter);
	box-sizing: border-box;
}
:where(.ck-landing .ck-landing__page) p { margin: 0; } /* zero specificity: the class rules below set spacing */

/* ── Type ─────────────────────────────────────────────── */
.ck-landing .ck-landing-h2 {
	font-family: var(--cl-head);
	font-weight: 700;
	font-size: clamp(30px, calc((60 / 1728) * 100vw), 64px);
	line-height: 1.08;
	letter-spacing: 0.01em;
	text-transform: uppercase;
	margin: 0 0 0.6em;
	color: inherit;
}
.ck-landing .ck-landing-script {
	font-family: var(--cl-script);
	font-weight: 400;
	font-size: clamp(32px, calc((52 / 1728) * 100vw), 56px);
	line-height: 1.15;
	text-transform: none;
	letter-spacing: 0;
}
.ck-landing .ck-landing-eyebrow {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--cl-gold); /* solid navy only */
	margin-bottom: 0.75em;
}

/* ── Buttons and links ────────────────────────────────── */
/* Twenty Twenty-One and style.css reset link backgrounds on :focus, so the fills need !important. */
.ck-landing .ck-landing-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 8px 24px;
	box-sizing: border-box;
	border: 2px solid transparent !important;
	border-radius: 100px;
	font-family: var(--cl-body);
	font-weight: 700;
	font-size: 16px;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: center;
	text-decoration: none !important;
}
.ck-landing .ck-landing-btn--lg { min-height: 56px; padding: 12px 32px; }
.ck-landing .ck-landing-btn--gold,
.ck-landing .ck-landing-btn--gold:focus {
	background: var(--cl-gold) !important;
	border-color: var(--cl-gold) !important;
	color: var(--cl-navy) !important;
}
.ck-landing .ck-landing-btn--outline,
.ck-landing .ck-landing-btn--outline:focus {
	background: transparent !important;
	border-color: var(--cl-cream) !important;
	color: var(--cl-cream) !important;
}
.ck-landing .ck-landing-btn--gold:hover,
.ck-landing .ck-landing-btn--outline:hover {
	background: var(--cl-cream) !important;
	border-color: var(--cl-cream) !important;
	color: var(--cl-navy) !important;
}
/* The global ring is currentColor; on the gold button that is navy, invisible on navy.
   Selector has to outrank style.css's `.site a:focus-visible:not(...):not(...)` (0,4,1, !important). */
body.ck-landing .site a.ck-landing-btn:focus-visible {
	outline: 2px solid var(--cl-cream) !important;
	outline-offset: 3px !important;
}
@media (prefers-reduced-motion: no-preference) {
	.ck-landing .ck-landing-btn { transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease; }
}
.ck-landing .ck-landing-btns {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	justify-content: center;
}
.ck-landing .ck-landing-link {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: inherit !important;
	font-weight: 700;
	text-decoration: underline !important;
	text-underline-offset: 0.2em;
	text-decoration-thickness: 1px;
	background: none !important;
}
.ck-landing .ck-landing-link:hover { text-decoration-thickness: 2px; }

/* ── Minimal header (header.php prints only the logo and this button) ── */
.ck-landing--minimal-nav .header .ck-landing-header-cta { gap: 0; }
.ck-landing--minimal-nav .header { gap: 12px; }
.ck-landing--minimal-nav .header .ck-landing-btn { padding: 8px 20px; white-space: nowrap; }
@media (max-width: 440px) {
	.ck-landing--minimal-nav .header .ck-landing-btn { padding: 8px 14px; letter-spacing: 0.03em; }
}
/* Keeps logo + button on one line down to 320px (button label, not body text; still 44px tall). */
@media (max-width: 374px) {
	.ck-landing--minimal-nav .header .header_logo { width: 104px; flex-shrink: 0; }
	.ck-landing--minimal-nav .header .ck-landing-btn { font-size: 14px; padding: 8px 12px; letter-spacing: 0.02em; }
}

/* ── Hero ─────────────────────────────────────────────── */
.ck-landing .ck-landing-hero {
	position: relative;
	display: flex;
	align-items: center;
	min-height: min(100vh, 960px);
	padding: clamp(120px, calc((190 / 1728) * 100vw), 210px) 0 clamp(56px, calc((110 / 1728) * 100vw), 120px);
	box-sizing: border-box;
	background-color: var(--cl-navy);
	text-align: center;
	isolation: isolate;
}
.ck-landing .ck-landing-hero.has-bg {
	background-image: linear-gradient(rgba(0, 26, 42, 0.78), rgba(0, 26, 42, 0.78)), var(--cl-bg-sm);
	background-size: cover;
	background-position: center;
}
@media (min-width: 750px) {
	.ck-landing .ck-landing-hero.has-bg {
		background-image: linear-gradient(rgba(0, 26, 42, 0.78), rgba(0, 26, 42, 0.78)), var(--cl-bg);
	}
}
.ck-landing .ck-landing-hero__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: clamp(14px, calc((22 / 1728) * 100vw), 26px);
	max-width: 900px;
}
.ck-landing .ck-landing-hero__title {
	margin: 0;
	font-family: var(--cl-head);
	font-weight: 700;
	font-size: clamp(36px, calc((80 / 1728) * 100vw), 88px);
	line-height: 1.05;
	text-transform: uppercase;
	color: var(--cl-cream);
}
.ck-landing .ck-landing-hero__logo {
	display: block;
	width: min(640px, 82vw);
	height: auto;
	margin: 0 auto;
}
.ck-landing .ck-landing-hero__script { color: var(--cl-cream); }
.ck-landing .ck-landing-hero__dates {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.22em;
	color: var(--cl-cream);
}
.ck-landing .ck-landing-hero__summary {
	max-width: 40em;
	color: var(--cl-cream);
	font-size: clamp(17px, calc((22 / 1728) * 100vw), 22px);
}
.ck-landing .ck-landing-hero .ck-landing-btns { margin-top: 8px; }
.ck-landing .ck-landing-hero__address { color: var(--cl-muted); }

/* ── Intro (cream) ────────────────────────────────────── */
.ck-landing .ck-landing-intro {
	background: var(--cl-cream);
	color: var(--cl-ink);
	padding: var(--cl-section) 0;
}
.ck-landing .ck-landing-intro .ck-landing-h2 { color: var(--cl-navy); }
.ck-landing .ck-landing-intro__grid {
	display: grid;
	gap: 40px;
	align-items: center;
}
.ck-landing .ck-landing-intro__grid.is-single { max-width: 820px; }
@media (min-width: 750px) {
	.ck-landing .ck-landing-intro__grid:not(.is-single) {
		grid-template-columns: 1.1fr 0.9fr;
		gap: clamp(40px, calc((80 / 1728) * 100vw), 96px);
	}
}
.ck-landing .ck-landing-rte > * + * { margin-top: 1em; }
.ck-landing .ck-landing-rte a { color: var(--cl-copper-dark); text-decoration: underline; }
.ck-landing .ck-landing-intro__signoff { color: var(--cl-red); margin-top: 0.4em; }
.ck-landing .ck-landing-intro__img {
	display: block;
	width: 100%;
	height: auto;
	box-shadow: 0 12px 40px rgba(0, 26, 42, 0.25);
}

/* ── Menu (navy) ──────────────────────────────────────── */
.ck-landing .ck-landing-menu {
	background: var(--cl-navy);
	color: var(--cl-cream);
	padding: var(--cl-section) 0;
	scroll-margin-top: 80px;
}
.ck-landing .ck-landing-menu:focus { outline: none; } /* programmatic focus target only (tabindex=-1) */
.ck-landing .ck-landing-menu > .ck-landing__wrap { text-align: center; }
.ck-landing .ck-landing-menu__group { text-align: left; margin-top: clamp(40px, calc((72 / 1728) * 100vw), 80px); }
.ck-landing .ck-landing-menu__group-title {
	font-family: var(--cl-head);
	font-weight: 700;
	font-size: clamp(22px, calc((30 / 1728) * 100vw), 32px);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--cl-cream);
	margin: 0 0 32px;
	padding-bottom: 14px;
	border-bottom: 2px solid var(--cl-gold);
}
.ck-landing .ck-landing-menu__items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 32px clamp(40px, calc((80 / 1728) * 100vw), 96px);
}
@media (min-width: 750px) {
	.ck-landing .ck-landing-menu__items { grid-template-columns: 1fr 1fr; }
}
.ck-landing .ck-landing-menu__name {
	margin: 0 0 6px;
	color: var(--cl-cream);
	font-size: clamp(28px, calc((38 / 1728) * 100vw), 40px);
}
.ck-landing .ck-landing-menu__desc { color: var(--cl-muted); }
.ck-landing .ck-landing-menu__pdf { margin-top: clamp(40px, calc((64 / 1728) * 100vw), 72px); }

/* ── Gallery (cream) ──────────────────────────────────── */
.ck-landing .ck-landing-gallery {
	background: var(--cl-cream);
	color: var(--cl-ink);
	padding: var(--cl-section) 0;
	text-align: center;
}
.ck-landing .ck-landing-gallery .ck-landing-h2 { color: var(--cl-navy); }
.ck-landing .ck-landing-gallery__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 16px;
}
@media (min-width: 441px) {
	.ck-landing .ck-landing-gallery__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 750px) {
	.ck-landing .ck-landing-gallery__grid { grid-template-columns: repeat(3, 1fr); gap: 24px; }
}
.ck-landing .ck-landing-gallery__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
}

/* ── Visit + final CTA ────────────────────────────────── */
.ck-landing .ck-landing-visit {
	background-color: var(--cl-navy);
	color: var(--cl-cream);
	padding: var(--cl-section) 0;
	text-align: center;
}
.ck-landing .ck-landing-visit.has-bg {
	background-image: linear-gradient(rgba(0, 26, 42, 0.85), rgba(0, 26, 42, 0.85)), var(--cl-bg-sm);
	background-size: cover;
	background-position: center;
}
@media (min-width: 750px) {
	.ck-landing .ck-landing-visit.has-bg {
		background-image: linear-gradient(rgba(0, 26, 42, 0.85), rgba(0, 26, 42, 0.85)), var(--cl-bg);
	}
}
.ck-landing .ck-landing-visit__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	max-width: 900px;
}
.ck-landing .ck-landing-visit .ck-landing-h2 { margin-bottom: 0; }
/* Info card: label column + value column, left-aligned, rows ruled. Long values (hours) get the full width. */
.ck-landing .ck-landing-visit__list {
	margin: 8px 0 0;
	width: 100%;
	max-width: 760px;
	text-align: left;
	border-top: 1px solid rgba(243, 235, 221, 0.25);
}
.ck-landing .ck-landing-visit__row {
	padding: 20px 0;
	border-bottom: 1px solid rgba(243, 235, 221, 0.25);
}
@media (min-width: 750px) {
	.ck-landing .ck-landing-visit__row {
		display: grid;
		grid-template-columns: 9em 1fr;
		column-gap: 32px;
		align-items: baseline;
		padding: 24px 0;
	}
}
.ck-landing .ck-landing-visit__row dt {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	margin: 0 0 6px;
	color: var(--cl-cream); /* not gold: this can sit on a photo */
}
@media (min-width: 750px) {
	.ck-landing .ck-landing-visit__row dt { margin-bottom: 0; }
}
.ck-landing .ck-landing-visit__row dd {
	margin: 0;
	padding: 0; /* Twenty Twenty-One indents every dd */
	color: var(--cl-muted);
}
.ck-landing .ck-landing-visit__para { display: block; }
.ck-landing .ck-landing-visit__para + .ck-landing-visit__para { margin-top: 0.6em; }
.ck-landing .ck-landing-visit__directions { margin-top: 8px; }
.ck-landing .ck-landing-visit__signoff { color: var(--cl-cream); }
.ck-landing .ck-landing-visit__note { color: var(--cl-muted); }

/* The regular footer follows; style.css gives some templates no top padding, keep a little air. */
.ck-landing .site-footer { border-top: 1px solid rgba(243, 235, 221, 0.15); }
