/* ==========================================================================
   Daphne Maierna – Design kit (fonts, tokens, base typography, buttons)
   Edit colours and sizes here; every page and component uses these tokens.
   ========================================================================== */

@font-face {
	font-family: "Segnieur";
	src: url("../fonts/segnieur-serif-display-bold.woff") format("woff");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

:root {
	/* Brand colours */
	--dm-cream: #FEF2E5;
	--dm-cream-deep: #F9E6D2;
	--dm-navy: #1B3459;
	--dm-navy-deep: #132745;
	--dm-orange: #FE8206;
	--dm-blush: #F1D2CA;
	--dm-tan: #D19A67;
	--dm-white: #FFFFFF;

	/* Roles */
	--dm-ink: var(--dm-navy);
	--dm-ink-soft: rgba(27, 52, 89, .76);
	--dm-line: rgba(27, 52, 89, .18);
	--dm-line-light: rgba(254, 242, 229, .24);
	--dm-card: rgba(255, 255, 255, .55);

	/* Type */
	--dm-serif: "Segnieur", Georgia, "Times New Roman", serif;
	--dm-sans: "brandon-grotesque", "Helvetica Neue", Arial, sans-serif;
	--dm-fs-body: clamp(1.0625rem, 1rem + .25vw, 1.1875rem);
	--dm-fs-lead: clamp(1.1875rem, 1.05rem + .5vw, 1.375rem);
	--dm-fs-small: .9375rem;
	--dm-fs-label: .8125rem;
	--dm-fs-h1: clamp(2.625rem, 1.6rem + 3.4vw, 4.5rem);
	--dm-fs-h2: clamp(2.125rem, 1.5rem + 2.2vw, 3.375rem);
	--dm-fs-h3: clamp(1.5rem, 1.25rem + .9vw, 2rem);
	--dm-fs-h4: 1.25rem;
	--dm-fs-statement: clamp(1.75rem, 1.3rem + 1.6vw, 2.75rem);
	--dm-fs-quote: clamp(1.5rem, 1.2rem + 1.1vw, 2.25rem);

	/* Layout */
	--dm-content: 1200px;
	--dm-text: 680px;
	--dm-gutter: 20px;
	--dm-space-section: clamp(88px, 5vw + 56px, 160px);
	--dm-space-block: clamp(48px, 3vw + 32px, 80px);

	/* Motion */
	--dm-ease: cubic-bezier(.16, 1, .3, 1);
}

/* Base ------------------------------------------------------------------ */
body,
.ast-separate-container,
.ast-plain-container {
	background-color: var(--dm-cream);
}
body {
	color: var(--dm-ink);
	font-family: var(--dm-sans);
	font-size: var(--dm-fs-body);
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
body h1, body h2, body h3, body h4, body h5, body h6,
body .entry-content :is(h1, h2, h3, h4, h5, h6),
.fl-ds-page :is(h1, h2, h3, h4, h5, h6),
.dm-serif {
	font-family: var(--dm-serif);
	font-weight: 700;
	color: inherit;
	letter-spacing: -.01em;
	text-wrap: balance;
	margin-top: 0;
}
body h1, .fl-ds-page h1 { font-size: var(--dm-fs-h1); line-height: 1.04; }
body h2, .fl-ds-page h2 { font-size: var(--dm-fs-h2); line-height: 1.1; }
body h3, .fl-ds-page h3 { font-size: var(--dm-fs-h3); line-height: 1.2; }
body h4, .fl-ds-page h4 { font-size: var(--dm-fs-h4); line-height: 1.3; }
body p { text-wrap: pretty; }
body a { color: inherit; }
::selection { background: var(--dm-blush); color: var(--dm-navy); }
:focus-visible { outline: 2px solid var(--dm-orange); outline-offset: 3px; }

/* Buttons ---------------------------------------------------------------
   .dm-btn--primary   orange – Making It Real + booking only
   .dm-btn--secondary navy outline – e.g. Get in touch
   .dm-link           quiet underlined text link with arrow
   ----------------------------------------------------------------------- */
.dm-btn,
a.dm-btn,
.dm-btn a.fl-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6em;
	min-height: 48px;
	padding: .9em 1.75em;
	font-family: var(--dm-sans);
	font-size: .875rem;
	font-weight: 400;
	letter-spacing: .14em;
	line-height: 1.2;
	text-transform: uppercase;
	text-decoration: none !important;
	border: 1px solid transparent;
	border-radius: 2px;
	cursor: pointer;
	transition: background-color .35s var(--dm-ease), color .35s var(--dm-ease), border-color .35s var(--dm-ease);
}
.dm-btn--primary,
a.dm-btn--primary,
.dm-btn--primary a.fl-button {
	background: var(--dm-orange) !important;
	border-color: var(--dm-orange) !important;
	color: var(--dm-navy) !important;
}
.dm-btn--primary:hover, .dm-btn--primary:focus-visible,
.dm-btn--primary a.fl-button:hover {
	background: var(--dm-navy) !important;
	border-color: var(--dm-navy) !important;
	color: var(--dm-cream) !important;
}
.dm-btn--secondary,
a.dm-btn--secondary,
.dm-btn--secondary a.fl-button {
	background: transparent !important;
	border-color: var(--dm-navy) !important;
	color: var(--dm-navy) !important;
}
.dm-btn--secondary:hover, .dm-btn--secondary:focus-visible,
.dm-btn--secondary a.fl-button:hover {
	background: var(--dm-navy) !important;
	color: var(--dm-cream) !important;
}
.dm-link,
a.dm-link {
	display: inline-flex;
	align-items: baseline;
	gap: .5em;
	font-family: var(--dm-sans);
	font-size: .875rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: inherit;
	text-decoration: underline !important;
	text-decoration-color: var(--dm-orange) !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: .5em;
	transition: text-underline-offset .35s var(--dm-ease);
}
.dm-link::after { content: "\2192"; text-decoration: none; display: inline-block; }
.dm-link:hover { text-underline-offset: .7em; }

/* Navy sections: invert the hover states */
.dm-band--navy .dm-btn--primary:hover,
.dm-band--navy .dm-btn--primary:focus-visible {
	background: var(--dm-cream) !important;
	border-color: var(--dm-cream) !important;
	color: var(--dm-navy) !important;
}
.dm-band--navy .dm-btn--secondary {
	border-color: var(--dm-cream) !important;
	color: var(--dm-cream) !important;
}
.dm-band--navy .dm-btn--secondary:hover {
	background: var(--dm-cream) !important;
	color: var(--dm-navy) !important;
}

@media (max-width: 767px) {
	.dm-btn, a.dm-btn { width: 100%; }
}
/* Round 1: heading rhythm and word spacing */
body h1, body h2, body h3,
.fl-ds-page :is(h1, h2, h3) {
	letter-spacing: 0;
	word-spacing: .04em;
}
.dm-sec :is(h1, h2) { margin-bottom: .45em; }
.dm-sec h3 { margin-bottom: .5em; }
.dm-sec :is(h1, h2, h3):last-child { margin-bottom: 0; }