/* Isowood base: fonts, design tokens, reset, typography. */

@font-face {
	font-family: "Raleway";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/raleway-latin-ext-wght-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Raleway";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/raleway-latin-wght-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Libre Caslon Text";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/libre-caslon-text-latin-ext-400-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Libre Caslon Text";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/libre-caslon-text-latin-400-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Libre Caslon Text";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/libre-caslon-text-latin-ext-700-normal.woff2") format("woff2");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: "Libre Caslon Text";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/libre-caslon-text-latin-700-normal.woff2") format("woff2");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
	/* Colors. Red from the logo is intentionally NOT a token: it stays in the logo only. */
	--iw-color-primary: #009836;
	--iw-color-primary-dark: #00792b;
	--iw-color-ink: #111111;
	--iw-color-ink-soft: #4b4f58;
	--iw-color-ink-muted: #756b60; /* secondary notes: warm, still readable on white and surface */
	--iw-color-bg: #ffffff;
	--iw-color-brown: #44362b;
	--iw-color-espresso: #1c1612; /* deepest shade of the brand brown: dark hero, overlay header */
	--iw-color-taupe: #a9a196;
	--iw-color-taupe-light: #d8d1c7; /* taupe readable on espresso */
	--iw-color-surface: #f5f3ef;
	--iw-color-line: #dcd8d0;
	--iw-color-on-primary: #ffffff;
	--iw-color-on-ink: #ffffff;

	/* Typography */
	--iw-font-body: "Raleway", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
	--iw-font-heading: "Libre Caslon Text", Georgia, "Times New Roman", serif;
	--iw-text-sm: 0.875rem;
	--iw-text-base: 1rem;
	--iw-text-lg: clamp(1.125rem, 1.05rem + 0.3vw, 1.25rem);
	--iw-text-h4: clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
	--iw-text-h3: clamp(1.5rem, 1.3rem + 0.8vw, 2rem);
	--iw-text-h2: clamp(1.875rem, 1.5rem + 1.6vw, 3rem);
	--iw-text-h1: clamp(2.25rem, 1.6rem + 2.8vw, 4.25rem);
	--iw-leading-tight: 1.2; /* Libre Caslon: descender 0.26em + i-dot 0.78em; below ~1.1 lines touch */
	--iw-leading-body: 1.6;

	/* Spacing (4px base) */
	--iw-space-1: 0.25rem;
	--iw-space-2: 0.5rem;
	--iw-space-3: 0.75rem;
	--iw-space-4: 1rem;
	--iw-space-6: 1.5rem;
	--iw-space-8: 2rem;
	--iw-space-10: 2.5rem;
	--iw-space-12: 3rem;
	--iw-space-16: 4rem;
	--iw-space-24: clamp(4rem, 3rem + 4vw, 7.5rem);

	/* Layout */
	--iw-container: 1280px;
	--iw-gutter: clamp(1rem, 0.5rem + 2vw, 2.5rem);
	--iw-header-height: 92px;

	/* Shape: moderate rounding, no pills */
	--iw-radius: 8px;
	--iw-radius-lg: 12px;

	/* Elevation: used sparingly (dropdowns, overlays) */
	--iw-shadow-md: 0 8px 24px rgb(17 17 17 / 10%);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

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

body {
	margin: 0;
	background: var(--iw-color-bg);
	color: var(--iw-color-ink);
	font-family: var(--iw-font-body);
	font-size: var(--iw-text-base);
	line-height: var(--iw-leading-body);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img,
svg,
video {
	display: block;
	max-width: 100%;
	height: auto;
}

h1,
h2,
h3,
h4 {
	margin: 0 0 var(--iw-space-4);
	color: var(--iw-color-brown);
	font-family: var(--iw-font-heading);
	font-weight: 400;
	line-height: var(--iw-leading-tight);
	letter-spacing: -0.01em;
}

h1 { font-size: var(--iw-text-h1); }
h2 { font-size: var(--iw-text-h2); }
h3 { font-size: var(--iw-text-h3); }
h4 { font-size: var(--iw-text-h4); }

p {
	margin: 0 0 var(--iw-space-4);
}

a {
	color: var(--iw-color-primary-dark);
	text-underline-offset: 0.2em;
}

a:hover {
	color: var(--iw-color-primary);
}

:focus-visible {
	outline: 3px solid var(--iw-color-primary);
	outline-offset: 2px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.iw-skip-link {
	position: absolute;
	top: -100px;
	left: var(--iw-space-4);
	z-index: 200;
	padding: var(--iw-space-3) var(--iw-space-4);
	background: var(--iw-color-ink);
	color: var(--iw-color-on-ink);
}

.iw-skip-link:focus {
	top: var(--iw-space-2);
}

section[id] {
	scroll-margin-top: var(--iw-header-height);
}

@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 0.01ms !important;
		transition-duration: 0.01ms !important;
	}
}
