/* ==========================================================================
   Goody Garage Doors — brand token layer
   Retro-southwest palette, type scale and spacing extracted from the
   Claude Design system (Goody Garage Doors / home-services page kit).

   The three display faces are the licensed webfonts already present in this install at
   /wp-content/uploads/2024/06/. They are referenced site-relative so the same CSS works
   on .local, staging and production (all root installs — a subdirectory install would
   need these four paths prefixed).

   Inter is self-hosted from this theme rather than fetched from Google. Two reasons:
   (1) no third-party request, and (2) Elementor's own local Inter CSS at
   uploads/elementor/google-fonts/css/inter.css hardcodes the PRODUCTION domain, so it
   404s on any cloned environment. Self-hosting here is environment-independent.
   ========================================================================== */

/* --- Body face: Inter, self-hosted, variable 100–900 --------------------- */
/* Paths are relative to this stylesheet, so they survive any install layout. */
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/inter-latin.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: 'Inter';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/inter-latin-ext.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;
}

/* --- Display face: headings, buttons, nav, eyebrow labels ---------------- */
/* Single-weight file declared across the full range so font-weight:800 renders
   the real face instead of a synthetic bold. */
@font-face {
	font-family: 'Kuunari';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('/wp-content/uploads/2024/06/Mika-Melvas-Kuunari-Bold.ttf') format('truetype');
}

/* --- Retro script: accents only (hero kicker). Never body copy. ---------- */
@font-face {
	font-family: 'mascot-mvb';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('/wp-content/uploads/2024/06/MascotMVB.ttf') format('truetype');
}

/* --- Squared sans: numerals, price figures, chips ------------------------ */
@font-face {
	font-family: 'IndustryW00';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('/wp-content/uploads/2024/06/Industry-W00-Bold.ttf') format('truetype');
}

:root {
	/* ---- brand palette ---- */
	--goody-teal-900: #0F3A35;
	--goody-teal-700: #1A554F;
	--goody-teal-500: #279989;
	--goody-teal-400: #35A08F;
	--goody-teal-300: #5CB8AA;
	--goody-rust-700: #8A3524;
	--goody-rust-600: #A3402B;
	--goody-rust-500: #C05131;
	--goody-orange-500: #D2683D;
	--goody-red-500: #C6262E;
	--goody-gold-400: #D3BC8D;
	--goody-gold-300: #EBC386;
	--goody-cream-100: #ECE4D5;
	--goody-cream-50: #F6F1E6;
	--goody-white: #ffffff;

	/* ---- warm neutrals (no cool grays anywhere in this system) ---- */
	--goody-gray-25: #F6F1E6;
	--goody-gray-50: #F1EADD;
	--goody-gray-100: #E3DACB;
	--goody-gray-150: #DBD1C0;
	--goody-gray-200: #D2C7B4;
	--goody-gray-250: #C8BCA8;
	--goody-gray-300: #BFB2A0;
	--goody-gray-350: #B4A794;
	--goody-gray-400: #A2937E;
	--goody-gray-500: #8B7C68;
	--goody-gray-600: #6B5F51;
	--goody-gray-700: #54493D;
	--goody-gray-800: #3E362D;
	--goody-gray-900: #2A241D;

	/* ---- semantic icon accents (trust bar / benefit tiles) ---- */
	--goody-accent-teal: #279989;
	--goody-accent-teal-tint: #D9EBE7;
	--goody-accent-rust: #A3402B;
	--goody-accent-rust-tint: #F2DED6;
	--goody-accent-orange: #D2683D;
	--goody-accent-orange-tint: #F7E3D6;
	--goody-accent-sand: #B98A3A;
	--goody-accent-sand-tint: #F3E6CC;
	--goody-accent-red: #C6262E;
	--goody-accent-red-tint: #F2DED6;

	/* ---- semantic aliases ---- */
	--goody-surface-page: var(--goody-cream-100);
	--goody-surface-panel: var(--goody-cream-50);
	--goody-surface-card: var(--goody-white);
	--goody-surface-dark: var(--goody-teal-700);
	--goody-surface-dark-alt: var(--goody-teal-500);
	--goody-text-heading: var(--goody-teal-700);
	--goody-text-body: var(--goody-gray-800);
	--goody-text-muted: var(--goody-gray-600);
	--goody-text-on-dark: var(--goody-white);
	--goody-border-accent: var(--goody-gold-400);
	--goody-cta-fill: var(--goody-rust-600);
	--goody-cta-fill-hover: var(--goody-orange-500);

	/* ---- type ---- */
	--goody-font-body: 'Inter', system-ui, -apple-system, sans-serif;
	--goody-font-display: 'Kuunari', 'Arial Narrow', system-ui, sans-serif;
	--goody-font-script: 'mascot-mvb', 'Brush Script MT', cursive;
	--goody-font-numeric: 'IndustryW00', 'Arial Narrow', system-ui, sans-serif;

	--goody-text-body-sm: 14px;
	--goody-text-body-md: 15.5px;
	--goody-text-body-lg: 16.5px;
	--goody-text-body-xl: 17px;

	--goody-text-eyebrow: 13px;
	--goody-text-button: 18px;
	--goody-text-h3: 21px;
	--goody-text-h2: clamp(26px, 2.6vw, 35px);
	--goody-text-h2-lg: clamp(28px, 2.8vw, 37px);
	--goody-text-h1: clamp(34px, 3.4vw, 47px);

	/* Kuunari is already narrow — never track it negative. */
	--goody-tracking-normal: 0.01em;
	--goody-tracking-label: 0.05em;
	--goody-tracking-eyebrow: 0.09em;

	--goody-leading-tight: 1.16;
	--goody-leading-heading: 1.25;
	--goody-leading-body: 1.5;
	--goody-leading-body-loose: 1.6;

	/* ---- spacing / layout ---- */
	--goody-container-max: 1440px;
	--goody-container-pad: 80px;
	--goody-container-pad-tablet: 40px;
	--goody-container-pad-mobile: 20px;

	/* ---- radii: consistently increases with container size ---- */
	--goody-radius-sm: 7px;
	--goody-radius-md: 10px;
	--goody-radius-lg: 14px;
	--goody-radius-xl: 20px;
	--goody-radius-form: 24px;

	/* ---- effects: one shadow value, hover only. No elevation system. ---- */
	--goody-shadow-card-hover: 0 14px 30px rgba(42, 36, 29, .18);
	--goody-duration-fast: .18s;
	--goody-duration-standard: .2s;
	--goody-gradient-banner: linear-gradient(100deg, #35A08F 0%, #279989 32%, #1A554F 100%);
	--goody-scrim-hero: linear-gradient(rgba(15, 58, 53, .72), rgba(15, 58, 53, .72));
	--goody-scrim-location: linear-gradient(180deg, rgba(15, 58, 53, .86), rgba(15, 58, 53, .78));
}
