/* Monopoli House — design tokens.
   Mirror of theme.json for raw-CSS contexts. */

:root {
	--mh-bone:   #F7F3EA;
	--mh-paper:  #FFFFFF;
	--mh-ink:    #0E1F2D;
	--mh-mute:   #6B6F73;
	--mh-faint:  #9AA0A4;

	--mh-sea:    #1F4C6B;
	--mh-sea-2:  #2C6A8F;
	--mh-sky:    #C7DCE6;
	--mh-sky-2:  #E8F1F6;

	--mh-sun:    #C8845C;
	--mh-olive:  #6B7A4F;
	--mh-ok:     #3C7A5A;

	--mh-line:   #E4DDCC;
	--mh-line-2: #EFE9DA;

	--mh-serif:  "Cormorant Garamond", Georgia, serif;
	--mh-sans:   "Geist", ui-sans-serif, system-ui, -apple-system, "Helvetica Neue", sans-serif;
	--mh-mono:   "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

	--mh-r-sm:   6px;
	--mh-r-md:   12px;
	--mh-r-lg:   18px;
	--mh-r-pill: 999px;

	--mh-ease:   cubic-bezier(.2,.7,.2,1);
	--mh-nav-h:  76px;
}

/* Stop horizontal overflow at the body level — defensive measure. */
html, body { overflow-x: hidden; max-width: 100%; }
html { scroll-behavior: smooth; }
body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	font-size: 17px;
	line-height: 1.65;
}
@media (min-width: 768px) {
	body { font-size: 18px; }
}

/* All images responsive by default */
img { max-width: 100%; height: auto; }

/* Eyebrow label utility */
.mh-eyebrow {
	font-family: var(--mh-mono);
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--mh-sea);
	margin: 0 0 0.5rem;
}
.mh-eyebrow--light { color: rgba(255,255,255,0.85); }

/* Italic emphasis in display headings */
h1 em, h2 em,
.has-display-font-size em,
.has-h1-font-size em,
.has-h2-font-size em {
	color: var(--mh-sea);
	font-style: italic;
	font-weight: inherit;
}
h1, h2, .has-display-font-size, .has-h1-font-size, .has-h2-font-size {
	text-wrap: balance;
}

/* Image hover lift on .mh-zoom */
.wp-block-image img {
	transition: transform 600ms var(--mh-ease);
	will-change: transform;
}
.wp-block-image.mh-zoom:hover img,
.wp-block-image a:hover img { transform: scale(1.03); }

/* Captions */
.wp-block-image figcaption {
	font-family: var(--mh-mono);
	font-size: 0.75rem;
	color: var(--mh-mute);
	text-transform: lowercase;
	letter-spacing: 0.04em;
	margin-top: 8px;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Focus */
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible {
	outline: 3px solid var(--mh-sky);
	outline-offset: 2px;
	border-radius: var(--mh-r-sm);
}

/* Skip-link */
.skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 9999;
	background: var(--mh-ink); color: var(--mh-paper);
	padding: 8px 16px; font-family: var(--mh-mono); font-size: 0.75rem;
	letter-spacing: 0.08em; text-transform: uppercase;
}
.skip-link:focus { left: 8px; top: 8px; }
