/*
Theme Name: Castles and Adventures
Theme URI: https://castlesandadventures.com
Author: Castles and Adventures Travel
Description: Custom theme built from the Castles and Adventures site design. On activation it creates the Home, Disney, Universal, Cruises, About, and Contact pages, each editable under Pages in the dashboard.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: castles-adventures
*/

/* Keep the fixed header below the WordPress admin bar when logged in. */
body.admin-bar .site-header { top: 32px; }
@media screen and (max-width: 782px) {
	body.admin-bar .site-header { top: 46px; }
}

/* Basic typography for ordinary pages and posts created in the editor. */
.ca-prose h2 { font-family: var(--font-heading); font-size: 1.875rem; font-weight: 700; line-height: 1.25; margin: 2.5rem 0 1rem; color: hsl(var(--primary)); }
.ca-prose h3 { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 700; margin: 2rem 0 0.75rem; color: hsl(var(--primary)); }
.ca-prose p { margin: 0 0 1.25rem; line-height: 1.75; color: hsl(var(--muted-foreground)); }
.ca-prose a { color: hsl(var(--accent)); text-decoration: underline; }
.ca-prose ul, .ca-prose ol { margin: 0 0 1.25rem 1.5rem; color: hsl(var(--muted-foreground)); }
.ca-prose ul { list-style: disc; }
.ca-prose ol { list-style: decimal; }
.ca-prose li { margin-bottom: 0.5rem; line-height: 1.7; }
.ca-prose img { max-width: 100%; height: auto; }
.ca-prose blockquote { border-left: 3px solid hsl(var(--accent)); padding-left: 1rem; font-style: italic; margin: 0 0 1.25rem; }

/* Mobile navigation control: WCAG-sized pointer target and keyboard focus. */
#mobile-menu-toggle {
	width: 44px;
	height: 44px;
	padding: 0;
}
#mobile-menu-toggle:focus { outline: none; }
#mobile-menu-toggle:focus-visible {
	outline: 2px solid hsl(var(--accent));
	outline-offset: 3px;
}
#mobile-menu-toggle span { transform-origin: center; transition: none !important; }
#mobile-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
#mobile-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: scaleX(0); }
#mobile-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
body.ca-menu-open { overflow: hidden; }
.mobile-nav {
	position: fixed;
	inset: 80px 0 0;
	display: flex !important;
	flex-direction: column;
	padding: 24px 0 32px;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-12px);
	pointer-events: none;
	transition: none;
	box-shadow: 0 20px 45px rgba(0, 0, 0, 0.35);
}
.mobile-nav.is-open { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
.mobile-nav a[aria-current="page"] { color: hsl(var(--accent)); background: rgba(255, 255, 255, 0.08); border-left: 3px solid hsl(var(--accent)); padding-left: 21px; }
@media (min-width: 1024px) { .mobile-nav { display: none !important; } }

/* Contact form status messages. */
.ca-form-notice { padding: 1.5rem; border-radius: 0.125rem; margin-bottom: 1.5rem; }
.ca-form-notice--error { background: #fdecec; border: 1px solid #f3b9b9; color: #8a1f1f; font-size: 0.875rem; }
