/* KMR Luxe shared public tokens and components.
   Page layout remains in style.css and the page-specific stylesheets. */
:root {
	--kmr-black: #11100f;
	--kmr-charcoal: #1c1a18;
	--kmr-deep-brown: #29231f;
	--kmr-white: #ffffff;
	--kmr-warm-white: #fbf8f4;
	--kmr-ivory: #f5efe8;
	--kmr-nude-light: #e7d8ca;
	--kmr-nude: #cbb39d;
	--kmr-nude-deep: #aa8f79;
	--kmr-taupe: #76685d;
	--kmr-text-dark: #171513;
	--kmr-text-light: #f9f5f0;
	--kmr-text-muted: #6d6259;
	--kmr-border-light: rgba(24, 20, 17, .13);
	--kmr-border-dark: rgba(255, 255, 255, .18);
	--kmr-shadow-soft: 0 16px 40px rgba(22, 17, 13, .09);
	--kmr-shadow-card: 0 20px 55px rgba(22, 17, 13, .12);
	--kmr-container: 1240px;
}

::selection { background: var(--kmr-nude); color: var(--kmr-text-dark); }
:focus-visible { outline: 2px solid var(--kmr-nude-deep); outline-offset: 3px; }

.kmr-container {
	width: min(calc(100% - 40px), var(--kmr-container));
	margin-inline: auto;
}

.kmr-btn {
	display: inline-flex;
	min-height: 46px;
	align-items: center;
	justify-content: center;
	padding: .8rem 1.35rem;
	border: 1px solid currentColor;
	border-radius: 5px;
	font: 700 .75rem/1.2 Manrope, Inter, sans-serif;
	letter-spacing: .08em;
	text-decoration: none;
	text-transform: uppercase;
	transition: transform .2s ease, background-color .2s ease, color .2s ease;
}

.kmr-btn:hover { transform: translateY(-1px); }
.kmr-btn--dark { background: var(--kmr-black); border-color: var(--kmr-black); color: var(--kmr-white); }
.kmr-btn--nude { background: var(--kmr-nude); border-color: var(--kmr-nude); color: var(--kmr-black); }
.kmr-btn--outline { background: transparent; color: inherit; }

/* Expanded About and Community storytelling, kept intentionally light. */
.story-page { overflow: clip; background: var(--kmr-warm-white); color: var(--kmr-text-dark); }
.story-band { padding-block: clamp(68px, 8vw, 116px); }
.story-band--dark { background: var(--kmr-warm-white); color: var(--kmr-text-dark); }
.story-band--nude { background: var(--kmr-nude-light); color: var(--kmr-text-dark); }
.story-page .story-band:nth-child(3),
.story-page .story-band.story-final { background: var(--kmr-charcoal); color: var(--kmr-text-light); }
.story-hero { min-height: min(680px, calc(100svh - 150px)); display: grid; align-items: center; background: linear-gradient(135deg, var(--kmr-ivory), var(--kmr-warm-white)) !important; }
.story-copy { max-width: 920px; }
.story-copy h1 { max-width: 880px; font-size: clamp(2.8rem, 6vw, 5.6rem); line-height: .98; }
.story-band h1,
.story-band h2,
.story-band h3,
.story-band blockquote { margin-top: 0; font-family: "Cormorant Garamond", Georgia, serif; }
.story-band h2 { max-width: 760px; margin-bottom: 1.5rem; font-size: clamp(2.15rem, 4.5vw, 4rem); line-height: 1.04; }
.story-band h3 { font-size: clamp(1.4rem, 2vw, 1.9rem); }
.story-band p,
.story-band li { max-width: 66ch; color: var(--kmr-text-muted); font: 400 clamp(.98rem, 1.2vw, 1.07rem)/1.75 Manrope, Inter, sans-serif; }
.story-page .story-band:nth-child(3) p,
.story-page .story-band.story-final p { color: #d8d0c8; }
.story-eyebrow { margin: 0 0 1.15rem; color: #695649 !important; font-size: .72rem !important; font-weight: 700 !important; letter-spacing: .18em; text-transform: uppercase; }
.story-page .story-band:nth-child(3) .story-eyebrow,
.story-page .story-band.story-final .story-eyebrow { color: var(--kmr-nude) !important; }
.story-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.story-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr); gap: clamp(2rem, 7vw, 7rem); align-items: start; }
.story-columns { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 3rem; border-block: 1px solid currentColor; }
.story-columns article { padding: clamp(1.5rem, 4vw, 3rem); border-right: 1px solid currentColor; }
.story-columns article:first-child { padding-left: 0; }
.story-columns article:last-child { border-right: 0; }
.story-columns article > span,
.story-steps span { display: block; margin-bottom: 2rem; color: var(--kmr-nude-deep); font: 700 .72rem/1 Manrope, sans-serif; letter-spacing: .14em; }
.story-quote { max-width: 980px; text-align: center; }
.story-quote blockquote { margin: 0 auto 2rem; font-size: clamp(2rem, 5vw, 4.4rem); line-height: 1.06; }
.story-quote p { margin-inline: auto; }
.story-steps { margin: 0; padding: 0; list-style: none; }
.story-steps li { padding: 1.25rem 0; border-top: 1px solid var(--kmr-border-light); }
.membership-story-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 3rem; }
.membership-story-grid article { display: flex; min-height: 350px; flex-direction: column; align-items: flex-start; padding: clamp(1.5rem, 4vw, 3.25rem); background: var(--kmr-warm-white); border: 1px solid var(--kmr-border-light); border-radius: 12px; box-shadow: var(--kmr-shadow-soft); }
.membership-story-grid h3 { font-size: clamp(2rem, 3vw, 3rem); }
.membership-story-grid .kmr-btn { margin-top: auto; }
.membership-story-grid .membership-story-card--dark { background: var(--kmr-nude); color: var(--kmr-text-dark); }
.membership-story-card--dark p { color: #493d35; }
.story-final { text-align: center; }
.story-final h2 { margin-inline: auto; }
.story-final .story-actions { justify-content: center; }

/* Shared footer rendered by js/site-footer.js. */
.kmr-site-footer { margin-top: auto; padding: 64px 0 0; background: var(--kmr-black); color: rgba(255,255,255,.76); }
.kmr-footer-shell { width: min(1380px, calc(100% - 64px)); margin-inline: auto; }
.kmr-footer-grid { display: grid; grid-template-columns: minmax(220px,1.35fr) repeat(4,minmax(130px,1fr)); gap: clamp(32px,4vw,72px); padding-bottom: 52px; }
.kmr-footer-column { min-width: 0; display: flex; align-items: flex-start; flex-direction: column; gap: 11px; }
.kmr-footer-column h2 { margin: 0 0 8px; color: var(--kmr-white); font: 700 10px/1.3 Manrope,sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.kmr-footer-column a { color: rgba(255,255,255,.76); font: 500 12px/1.45 Manrope,sans-serif; overflow-wrap: anywhere; }
.kmr-footer-column a:hover,
.kmr-footer-column a:focus-visible,
.kmr-footer-bottom a:hover,
.kmr-footer-bottom a:focus-visible { color: var(--kmr-white); }
.kmr-footer-brand { margin-bottom: 14px; color: var(--kmr-white); font: 600 24px/1 "Cormorant Garamond",Georgia,serif; letter-spacing: .16em; text-transform: uppercase; }
.kmr-footer-brand-column p { margin: 0; color: rgba(255,255,255,.68); font: 400 13px/1.55 Manrope,sans-serif; }
.kmr-footer-bottom { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; border-top: 1px solid var(--kmr-border-dark); }
.kmr-footer-bottom p { margin: 0; color: rgba(255,255,255,.6); font: 500 10px/1.5 Manrope,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.kmr-footer-bottom nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px 24px; }
.kmr-footer-bottom a { color: rgba(255,255,255,.68); font: 600 10px/1.5 Manrope,sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.section-page-with-nav-gap { min-height: 100vh; display: flex; flex-direction: column; }

@media (max-width: 1024px) {
	.kmr-footer-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.kmr-footer-brand-column { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
	.kmr-site-footer::after { display: none; }
	.story-band { padding-block: clamp(60px,15vw,84px); }
	.story-hero { min-height: auto; }
	.story-split,
	.membership-story-grid,
	.story-columns { grid-template-columns: 1fr; }
	.story-columns article { padding: 1.75rem 0; border-right: 0; border-bottom: 1px solid currentColor; }
	.story-columns article:last-child { border-bottom: 0; }
	.story-copy h1 { font-size: clamp(2.55rem,13vw,4.1rem); }
	.story-actions .kmr-btn { width: 100%; }
	.kmr-site-footer { padding-top: 44px; }
	.kmr-footer-shell { width: min(100% - 32px,620px); }
	.kmr-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 34px 24px; padding-bottom: 38px; }
	.kmr-footer-brand-column { grid-column: 1 / -1; }
	.kmr-footer-bottom { align-items: flex-start; flex-direction: column; padding: 24px 0 28px; }
	.kmr-footer-bottom nav { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	.kmr-btn { transition: none; }
}
