/* ----------------------------------------------------
   GLOBAL TYPOGRAPHY SYSTEM — MASTERWORKS CONCERTS
   Uses Avenir Next (Adobe Fonts Project: txn8nhl)
---------------------------------------------------- */

/* FONT VARIABLES */
:root {
	--font-sans: "avenir-next", "Avenir Next", "Avenir", -apple-system, BlinkMacSystemFont, sans-serif;
	--font-light: "avenir-next", "Avenir Next", "Avenir", -apple-system, BlinkMacSystemFont, sans-serif;

	/* WEIGHTS */
	--w-light: 300;
	--w-regular: 400;
	--w-medium: 500;
	--w-semibold: 600;
	--w-bold: 700;

	/* TYPE SCALE (fluid between mobile → desktop) */
	--fs-body: clamp(16px, 1.2vw, 18px);
	--fs-small: clamp(14px, 1vw, 16px);

	--fs-h1: clamp(36px, 4vw, 54px);
	--fs-h2: clamp(28px, 3vw, 40px);
	--fs-h3: clamp(22px, 2.2vw, 30px);
	--fs-h4: clamp(18px, 1.8vw, 22px);

	/* LINE HEIGHTS */
	--lh-tight: 1.1;
	--lh-normal: 1.5;
	--lh-relaxed: 1.65;

	/* COLOR VARIABLES */
	--text-dark: #222;
	--text-muted: #555;
	--brand-green: #006d70;
	--brand-green-dark: #004f52;
	--brand-teal: #20898F;

/* ----------------------------------------------------
   BASE ELEMENTS
---------------------------------------------------- */

html, body {
	font-family: var(--font-sans);
	font-weight: var(--w-light); /* Avenir Next Light for all body text */
	font-size: var(--fs-body);
	line-height: var(--lh-relaxed);
	color: var(--text-dark);
	margin: 0;
	background: #ffffff;
	-webkit-font-smoothing: antialiased;
}


/* ----------------------------------------------------
   HEADINGS — clean, musical, modern hierarchy
---------------------------------------------------- */

h1, h2, h3, h4 {
	font-family: var(--font-sans);
	font-weight: var(--w-regular);
	text-align: center;
	margin: 0 0 1.1rem;
	line-height: var(--lh-tight);
	letter-spacing: -0.01em;
}

h1 { font-size: var(--fs-h1); font-weight: var(--w-semibold); color: var(--brand-green-dark);}
h2 { font-size: var(--fs-h2); font-weight: var(--w-medium); color: var(--brand-teal);}
h3 { font-size: var(--fs-h3); font-weight: var(--w-medium); }
h4 { font-size: var(--fs-h4); font-weight: var(--w-regular); }

/* Subtitle / Deck style */
.mw-subtitle {
	font-size: var(--fs-h4);
	font-weight: var(--w-light);
	color: var(--text-muted);
	line-height: var(--lh-normal);
	margin-bottom: 1.25rem;
	text-align: center;
}

/* ----------------------------------------------------
   PARAGRAPHS & TEXT
---------------------------------------------------- */

p {
	margin: 0 0 1.25rem;
	font-size: var(--fs-body);
	font-weight: var(--w-light);
	line-height: var(--lh-relaxed);
}

strong { font-weight: var(--w-medium); }

small,
.text-small {
	font-size: var(--fs-small);
	color: var(--text-muted);
}

/* ----------------------------------------------------
   LINKS
---------------------------------------------------- */

a {
	color: var(--brand-green);
	text-decoration: none;
	font-weight: var(--w-medium);
	transition: color .2s ease;
}

a:hover {
	color: var(--brand-green-dark);
}

/* -----------------------------------
   HEADER
----------------------------------- */
.mw-site-header {
	padding: 2rem 0 1.5rem;
	text-align: center;
}

.mw-site-logo {
	width: 30vw;
	max-width: 30vw;
	height: auto;
	margin: 0 auto;
	display: block;
}

/* Mobile & small screens */
@media (max-width: 768px) {
	.mw-site-logo {
		width: 60vw;
		max-width: 60vw;
	}
}


/* -----------------------------------
   POSTERS — CONSISTENT GLOBAL SIZE
----------------------------------- */
.mw-poster,
.mw-event-card-poster img {
	width: 100%;
	max-width: 420px;
	height: auto;
	display: block;
	margin: 0 auto;
	border-radius: 10px;
}

.mw-event-card-title {
	margin-top: 15px;
}

/* -----------------------------------
   GLOBAL LINK + ARROW ANIMATION
----------------------------------- */

.mw-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;     
	margin: 18px 0;
	font-weight: 600;
	text-decoration: none;
}

.mw-arrow {
	display: inline-block;
	transition: transform 0.25s ease, letter-spacing 0.25s ease;
}

/* Hover → elongates arrow */
.mw-arrow-link:hover .mw-arrow {
	transform: translateX(4px) scaleX(1.3);
}

/* Prevent double text-decoration underline */
.mw-arrow-link span,
.mw-arrow-link .mw-arrow {
	text-decoration: none !important;
}

/* ----------------------------------------------------
   UNIVERSAL FORM SYSTEM (used on all pages)
---------------------------------------------------- */

.mw-form-section {
	background: #f6f4f2;
	padding: 80px 20px;
}

.mw-form-inner {
	max-width: 780px;
	margin: 0 auto;
	text-align: center;
}

.mw-form-heading {
	font-size: 26px;
	font-weight: 600;
	margin-bottom: 8px;
	color: #333;
}

.mw-form-subtitle {
	font-size: 15px;
	color: #666;
	margin-bottom: 32px;
}

/* The styled card */
.mw-form {
	background: #fff;
	padding: 34px;
	border-radius: 14px;
	box-shadow: 0 6px 24px rgba(0,0,0,.08);
	text-align: left;
}

/* Fix Gravity Forms label alignment */
.mw-form .gfield_label {
	font-size: 15px !important;
	font-weight: 500 !important;
	color: #333 !important;
	margin-bottom: 6px !important;
}

/* Required indicator spacing */
.mw-form .gfield_required {
	padding-left: 4px;
}

/* Inputs */
.mw-form input[type="text"],
.mw-form input[type="email"],
.mw-form input[type="number"],
.mw-form textarea,
.mw-form select {
	width: 100%;
	border: 1px solid #ccc;
	border-radius: 8px;
	padding: 12px;
	font-size: 15px;
}

/* Hide CAPTCHA label */
.mw-form .gfield_label:contains("CAPTCHA"),
.mw-form .gfield_description:contains("CAPTCHA") {
	display: none !important;
}

/* Submit Button */
.mw-form input[type="submit"] {
	background: #0a716d;
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 10px 22px;
	cursor: pointer;
	margin-top: 10px;
}

.mw-form input[type="submit"]:hover {
	background: #095b57;
}

.grecaptcha-badge {
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* -----------------------------------
   SECTION WRAPPERS
----------------------------------- */
.mw-section {
	padding: 4rem 0;
}

.mw-section-light {
	background: #f3f0ed;
}

/* -----------------------------------
   FOOTER
----------------------------------- */
footer {
	background: #e3dfdb !important;
	width: 100%;
	padding: 24px 0 6px 0;
	text-align: center;
	color: #666;
	font-size: 0.75rem;
}