/*
Theme Name: Maison 812
Theme URI: https://maison812.co
Author: Maison 812
Author URI: https://maison812.co
Description: A custom theme for Maison 812, an intimate event venue and creative studio in Monticello, Minnesota. A modern, lightweight glass design in the official Maison 812 palette: floating glass header, frosted cards, scroll animations, a gallery with lightbox, a preferred-vendor directory, brand-matched forms, and a styled integration layer for the separate Maison 812 CRM plugin (booking, checkout, agreements, customer portal). The theme contains no booking, pricing-logic, payment or account code.
Version: 2.3.1
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: maison812
Tags: custom-logo, custom-menu, featured-images, one-column, translation-ready, threaded-comments, accessibility-ready, wide-blocks
*/

/* ==========================================================================
   Design tokens — taken from the original Maison 812 demo stylesheet.
   ========================================================================== */
:root {
	/* Brand palette (from the Maison 812 brand board) */
	--m812-rose: #C58C8E;
	--m812-green: #5B6748;
	--m812-cream: #F8F3E9;
	--m812-pink: #E2B7B4;
	--m812-sand: #D9C8B2;
	--m812-brown: #4A3A2D;

	/* Supporting tints and text shades, derived from the palette above */
	--m812-paper: #FCF9F4;      /* lighter cream: page background */
	--m812-almond: #EADFD0;     /* sand + cream */
	--m812-blush: #EFDBD4;      /* pink + cream */
	--m812-warm: #E2D5C2;       /* sand, softened */
	--m812-light: #F0E8DB;
	--m812-rose-deep: #8E5558;  /* rose darkened for readable text and links */
	--m812-green-deep: #46503A; /* green darkened for button gradients */
	--m812-ink: #3F3126;        /* brown, darkened for body text legibility */
	--m812-muted: #5A4B3F;      /* brown, softened for secondary text */
	--m812-dark: #4A3A2D;
	--m812-line: #D9C8B2;       /* sand */

	/* Legacy names kept so older rules and the CRM skin keep working */
	--m812-champagne: var(--m812-rose);
	--m812-gold: var(--m812-rose-deep);

	/* Brand type: Tan Vivre Libre (headings), Glacial Indifference (text),
	   Shadow Script (accent), Simple Serenity (display ornament).
	   Close Google Fonts stand in until the licensed brand fonts are added (see README). */
	--m812-serif: 'Tan Vivre Libre', 'Cormorant Garamond', Georgia, serif;
	--m812-sans: 'Glacial Indifference', 'Jost', 'Avenir Next', 'Segoe UI', system-ui, sans-serif;
	--m812-script: 'Shadow Script', 'Allura', 'Snell Roundhand', cursive;
	--m812-display: 'Simple Serenity', 'Italiana', 'Cormorant Garamond', Georgia, serif;

	--m812-radius: 18px;
	--m812-radius-lg: 30px;
	--m812-glass: rgba(255, 255, 255, 0.78);
	--m812-glass-strong: rgba(255, 255, 255, 0.92);
	--m812-glass-line: rgba(255, 255, 255, .72);
	--m812-glass-shadow: 0 1px 0 rgba(255, 255, 255, .85) inset, 0 24px 60px -28px rgba(74, 58, 45, .35);
	--m812-gold-grad: linear-gradient(135deg, #E2B7B4 0%, #C58C8E 100%);
	--m812-green-grad: linear-gradient(135deg, #6A7855 0%, #4B563B 100%);

	--m812-gutter: clamp(20px, 5vw, 84px);
	--m812-max: 1320px;
	--m812-shadow: 0 18px 50px rgba(74, 58, 45, .12);
	--m812-ease: cubic-bezier(.2, .7, .2, 1);
	--m812-header-h: 66px;
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--m812-header-h) + 16px); }
body {
	margin: 0;
	background: var(--m812-paper);
	color: var(--m812-ink);
	font-family: var(--m812-sans);
	font-size: 1rem;
	line-height: 1.7;
	font-weight: 500;
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
	min-height: 100vh;
}
/* Soft palette mesh that the glass surfaces blur. Fixed, GPU-cheap, no images. */
body::before {
	content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
	background:
		radial-gradient(55vmax 45vmax at 92% -8%, var(--m812-blush) 0, transparent 62%),
		radial-gradient(50vmax 42vmax at -8% 38%, var(--m812-almond) 0, transparent 62%),
		radial-gradient(48vmax 40vmax at 95% 105%, var(--m812-warm) 0, transparent 62%);
}
@view-transition { navigation: auto; }
img, svg, video, iframe { max-width: 100%; }
img { display: block; height: auto; }
a { color: inherit; text-decoration: none; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible { outline: 2px solid var(--m812-gold); outline-offset: 3px; }
::selection { background: var(--m812-pink); color: var(--m812-ink); }
h1, h2, h3, h4 { font-family: var(--m812-serif); font-weight: 400; line-height: 1.1; margin: 0 0 .5em; letter-spacing: -.03em; text-wrap: balance; }
p { margin: 0 0 1.2em; text-wrap: pretty; }
ul, ol { padding-left: 1.2em; }
hr { border: 0; border-top: 1px solid var(--m812-line); margin: 2em 0; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal;
}
.screen-reader-text:focus {
	background: var(--m812-paper); clip: auto; clip-path: none; color: var(--m812-ink);
	display: block; font-size: .9rem; height: auto; left: 8px; padding: 14px 22px; top: 8px; width: auto; z-index: 100000;
	box-shadow: var(--m812-shadow);
}
.skip-link { position: absolute; left: -9999px; }
.skip-link:focus { left: 8px; top: 8px; z-index: 100001; background: var(--m812-dark); color: #fff; padding: 12px 20px; }

/* WordPress core alignment helpers */
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { margin-left: auto; margin-right: auto; display: block; }
.alignwide { max-width: min(1200px, 100%); margin-inline: auto; }
.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); }
.wp-caption { max-width: 100%; }
.wp-caption-text, figcaption { font-size: .8rem; color: var(--m812-muted); }
.sticky, .bypostauthor { display: block; }

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