/*
Theme Name: Stage 1 Child
Theme URI: https://stage1.local
Description: A custom, responsive WordPress theme developed by DK Designs for Stage 1 Design LLC, supporting creative arts programs, camps, events, and family experiences.
Author: DK Designs
Template: stage1
Version: 1.0.12
Requires at least: 6.4
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: stage1-child
*/

/*
 * Brand assets (drop files into this child theme):
 *   assets/fonts/PlaylistScript.woff2  (also .woff / .otf / .ttf accepted)
 *   assets/images/logo.svg            (fallback when no Customizer logo)
 */

:root {
	--font-heading: "Poppins", system-ui, sans-serif;
	--font-body: "Poppins", system-ui, sans-serif;
	--font-script: "Playlist Script", "Caveat Brush", cursive;
	/* Brand blues come from parent Theme Design Customizer (do not hardcode here). */
}

/*
 * Hero slogan: script lines use Playlist Script (or Homepage Script font selector).
 * Creativity = brand blue; other words white. Sans lines stay Poppins via parent.
 */
.hero__title-script,
.hero__title--dual-script .hero__title-script {
	font-family: var(--font-script);
	font-weight: 400;
	color: var(--color-white);
}

.hero__title-script--accent,
.hero__title--dual-script .hero__title-script--accent {
	color: var(--color-brand-blue);
}

/*
 * Responsive polish (final QA)
 * Nav/header desktop breakpoint is 1100px (parent). Grids stay on 640/960.
 */

/* Prevent flex/grid children from forcing horizontal scroll. */
.site-header__inner,
.hero__layout,
.hero__stack,
.grid,
.grid--cards,
.home-gallery-mosaic,
.home-gallery-mosaic__item,
.stage1-register-stack,
.stage1-calendar-layout,
.ff-el-group,
.fluentform {
	min-width: 0;
}

/* Fluent Forms SR legend can inflate scrollWidth if left in normal flow. */
.ff_screen_reader_title {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Hero: keep compact script overlap on phones; soften only enough to avoid clip. */
@media (max-width: 479px) {
	.hero {
		min-height: min(78vh, 34rem);
	}

	.hero__layout {
		justify-content: center;
		padding-block: var(--space-16) var(--space-12);
	}

	.hero__stack,
	.hero__stack--dual-script {
		max-width: 100%;
		width: 100%;
	}

	.hero__title-line,
	.hero__title--dual-script .hero__title-line--top,
	.hero__title--dual-script .hero__title-line--bottom,
	.hero__title--dual-script .hero__title-line--mid {
		white-space: normal;
		letter-spacing: 0.02em;
		font-size: clamp(1.65rem, 7.6vw, 2.1rem);
		line-height: 1;
	}

	.hero__title-line--mid,
	.hero__title--dual-script .hero__title-line--mid {
		font-size: clamp(1.5rem, 6.8vw, 1.9rem);
	}

	.hero__title-script,
	.hero__title--dual-script .hero__title-script {
		white-space: normal;
		letter-spacing: 0;
		font-size: clamp(2.7rem, 12.5vw, 3.55rem);
		line-height: 1;
		margin: -0.04em 0 -0.06em;
	}

	.hero__title--dual-script .hero__title-line--mid,
	.hero__title--dual-script .hero__title-line--bottom {
		margin-top: 0;
	}

	.hero__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.hero__actions .btn {
		min-width: 0;
		width: 100%;
		white-space: normal;
	}
}

/* Page heroes / sections: slightly tighter vertical rhythm on small screens. */
@media (max-width: 767px) {
	.section {
		padding-block: var(--space-12);
	}

	.section__header {
		margin-bottom: var(--space-8);
	}

	.page-hero {
		padding-block: var(--space-10);
	}

	.stage1-register-collapse__body,
	.stage1-register-collapse__summary {
		padding-inline: var(--space-4);
	}

	.stage1-sawyer-section {
		padding: var(--space-4);
	}

	.stage1-calendar-layout__sidebar {
		position: static;
		max-height: none;
	}

	.stage1-calendar-default .tribe-events-calendar-month__day {
		min-height: 3.25rem !important;
		max-height: none !important;
		height: auto !important;
	}
}

/* Contact / register forms: avoid wide Fluent controls overflowing cards. */
.fluentform .ff-el-form-control,
.fluentform input,
.fluentform select,
.fluentform textarea,
.ff-el-form-control {
	max-width: 100%;
}

.stage1-register-forms__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-2);
}

/* Gallery mosaic: keep tiles from forcing overflow. */
.home-gallery-mosaic,
.gallery-grid {
	min-width: 0;
}

.home-gallery-mosaic__item img,
.gallery-grid img {
	max-width: 100%;
}

/* Footer credit */
.site-footer__credit {
	margin: 0;
	font-size: var(--text-xs, 0.75rem);
	color: var(--color-neutral-400);
	text-align: center;
}

.site-footer__credit a {
	font-size: inherit;
	font-weight: 500;
	color: var(--color-neutral-400);
}

.site-footer__credit a:hover {
	color: var(--color-neutral-100);
}
