/* Langley Lodge Tools — calendar, events and contact form. Uses theme presets with fallbacks. */

.ll-cal-month {
	margin: 2.5rem 0 0.75rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--wp--preset--color--secondary, #8ABAD4);
	font-size: var(--wp--preset--font-size--large, 1.5rem);
}
.ll-cal-month:first-child { margin-top: 0; }

.ll-cal-list { list-style: none; margin: 0; padding: 0; }
.ll-cal-event {
	display: flex;
	gap: 1.25rem;
	align-items: flex-start;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line, #DCD8E6);
}
.ll-cal-event:last-child { border-bottom: 0; }

.ll-cal-badge {
	flex: 0 0 4.5rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 0.5rem 0.25rem;
	border-radius: 6px;
	background: var(--wp--preset--color--primary, #2A1B52);
	color: #fff;
	line-height: 1.1;
	text-transform: uppercase;
}
.ll-cal-dow,
.ll-cal-mon { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.08em; }
.ll-cal-dow { color: var(--wp--preset--color--secondary, #8ABAD4); }
.ll-cal-day { font-size: 1.75rem; font-weight: 700; }

.ll-cal-body { flex: 1; min-width: 0; }
.ll-cal-title {
	margin: 0 0 0.25rem;
	font-size: 1.15rem;
	text-transform: none;
	letter-spacing: 0;
	color: var(--wp--preset--color--primary, #2A1B52);
}
.ll-cal-title a { text-decoration: none; color: inherit; }
.ll-cal-meta {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	font-size: 0.92rem;
}
.ll-cal-time { font-weight: 600; color: var(--wp--preset--color--accent, #3E428B); }
.ll-cal-loc a { color: inherit; }
.ll-cal-desc { margin-top: 0.6rem; font-size: 0.95rem; }
.ll-cal-desc p { margin: 0 0 0.5rem; }
.ll-cal-subscribe { margin-top: 2rem; display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* compact (sidebar / front page) */
.ll-cal--compact .ll-cal-event { gap: 0.9rem; padding: 0.8rem 0; }
.ll-cal--compact .ll-cal-badge { flex-basis: 3.4rem; padding: 0.35rem 0.2rem; }
.ll-cal--compact .ll-cal-day { font-size: 1.3rem; }
.ll-cal--compact .ll-cal-title { font-size: 1rem; }
.ll-cal--compact .ll-cal-meta { font-size: 0.85rem; flex-direction: column; }

.ll-cal-empty { font-style: italic; }

/* ---- Contact form ---------------------------------------------------- */
.ll-form { display: grid; gap: 0.25rem; }
.ll-form p { margin: 0 0 1rem; }
.ll-form-row--2 { display: grid; grid-template-columns: 1fr; gap: 0 1.25rem; }
@media (min-width: 640px) {
	.ll-form-row--2 { grid-template-columns: 1fr 1fr; }
}
.ll-form label {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 0.85rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary, #2A1B52);
}
.ll-form input[type="text"],
.ll-form input[type="email"],
.ll-form select,
.ll-form textarea {
	width: 100%;
	box-sizing: border-box;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--wp--preset--color--line, #DCD8E6);
	border-radius: 4px;
	background: #fff;
	font: inherit;
	font-size: 1rem;
	color: var(--wp--preset--color--ink, #212326);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.ll-form input:focus,
.ll-form select:focus,
.ll-form textarea:focus {
	border-color: var(--wp--preset--color--accent, #3E428B);
	box-shadow: 0 0 0 3px rgba(138, 186, 212, 0.45);
	outline: none;
}
.ll-form button { cursor: pointer; border: 0; }
.ll-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.ll-notice { padding: 1rem 1.25rem; border-radius: 4px; margin-bottom: 1.5rem; border-left: 4px solid; }
.ll-notice--ok { background: #EEF6FA; border-color: var(--wp--preset--color--secondary, #8ABAD4); color: var(--wp--preset--color--primary, #2A1B52); }
.ll-notice--err { background: #FBEFEF; border-color: #B3261E; color: #6B1510; }

/* ---- Single event page ----------------------------------------------- */
.ll-event-when p { margin: 0; }
.ll-event-date { font-size: var(--wp--preset--font-size--large, 1.5rem); font-weight: 600; }
.ll-event-meta { display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; margin-top: 0.35rem !important; }
.ll-event-meta a { color: inherit; }
.ll-event-repeat { margin-top: 0.5rem !important; font-style: italic; color: var(--wp--preset--color--secondary, #8ABAD4); }
.ll-event-actions { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid var(--wp--preset--color--line, #DCD8E6); }
.ll-event-actions .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.ll-event-back { margin-top: 1.25rem; font-weight: 600; }
.ll-event-back a { text-decoration: none; }

/* Outline buttons in shortcode output: core only loads its outline style alongside a real Button block. */
.ll-event-actions .is-style-outline .wp-block-button__link,
.ll-cal-subscribe .is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--primary, #2A1B52);
	border: 2px solid currentColor;
	padding: calc(0.8rem - 2px) calc(1.6rem - 2px);
}
.ll-event-actions .is-style-outline .wp-block-button__link:hover,
.ll-cal-subscribe .is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary, #2A1B52);
	color: #fff;
}
