/**
 * Nantes Papote — custom CSS
 * Design elements that cannot be expressed in theme.json:
 * date circles, margin notes, full-bleed bands, two-voice logo,
 * scrollbar, selection, focus, prose extras.
 */

/* === Ground === */
html {
	min-width: 360px;
	color-scheme: dark;
}

body {
	caret-color: #ffa892;
}

/* === Focus & Selection === */
:focus-visible {
	outline: 2px solid #eaf06a;
	outline-offset: 2px;
	border-radius: 1px;
}

::selection {
	background-color: #eaf06a;
	color: #003539;
}

/* === Scrollbar === */
::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}

::-webkit-scrollbar-track {
	background: #003539;
}

::-webkit-scrollbar-thumb {
	background: #2f4c16;
	border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
	background: #2f4c16;
	filter: brightness(1.3);
}

/* === Two-Voice Logo === */
.nantespapote-logo {
	font-family: "Londrina Solid", sans-serif;
	font-size: 30px;
	letter-spacing: -0.025em;
	line-height: 1;
	color: #ffa892;
	text-decoration: none;
	display: inline-block;
}

.nantespapote-logo .np-logo-papote {
	font-family: Mogra, sans-serif;
}

.nantespapote-logo:hover {
	color: #eaf06a;
}

/* === Encre Opacity (secondary body text) === */
.has-text-color.np-encre-80,
.np-encre-80 {
	color: rgba(237, 230, 211, 0.8);
}

/* === Date Circle === */
.np-date-circle {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-radius: 9999px;
	border-width: 2px;
	border-style: solid;
	flex-shrink: 0;
	line-height: 1;
}

.np-date-circle.np-upcoming {
	border-color: #eaf06a;
}

.np-date-circle.np-past {
	border-color: #2f4c16;
}

/* Sizes */
.np-date-circle.np-sm {
	width: 56px;
	height: 56px;
}

.np-date-circle.np-md {
	width: 64px;
	height: 64px;
}

.np-date-circle.np-lg {
	width: 80px;
	height: 80px;
}

/* Day number (Londrina Solid — Display-Only Circle Rule) */
.np-date-circle .np-day {
	font-family: "Londrina Solid", sans-serif;
	line-height: 1;
}

.np-date-circle.np-sm .np-day {
	font-size: 18px;
}

.np-date-circle.np-md .np-day {
	font-size: 20px;
}

.np-date-circle.np-lg .np-day {
	font-size: 30px;
}

.np-date-circle.np-upcoming .np-day {
	color: #eaf06a;
}

.np-date-circle.np-past .np-day {
	color: #cc9180;
}

/* Month label (Spectral, uppercase) */
.np-date-circle .np-month {
	font-family: "Spectral", Georgia, serif;
	font-size: 12px;
	text-transform: uppercase;
	margin-top: 4px;
}

.np-date-circle.np-upcoming .np-month {
	color: #ffa892;
}

.np-date-circle.np-past .np-month {
	color: #cc9180;
}

/* === Event Card === */
.np-event-card {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	transition: color 150ms;
	text-decoration: none;
}

.np-event-card:hover {
	text-decoration: none;
}

.np-event-card .np-event-title {
	font-family: Mogra, sans-serif;
	font-size: 20px;
	letter-spacing: -0.025em;
	color: #eaf06a;
	transition: color 150ms;
}

.np-event-card:hover .np-event-title {
	color: #ffa892;
}

.np-event-card .np-event-location {
	font-family: "Spectral", Georgia, serif;
	font-size: 14px;
	margin-top: 4px;
	color: #cc9180;
}

.np-event-card .np-event-summary {
	font-family: "Spectral", Georgia, serif;
	font-size: 14px;
	margin-top: 8px;
	color: rgba(237, 230, 211, 0.8);
}

/* Past event variant */
.np-event-card.np-past .np-event-title {
	color: #cc9180;
	text-decoration: line-through;
	text-decoration-color: rgba(204, 145, 128, 0.5);
}

.np-event-card.np-past:hover .np-event-title {
	color: #cc9180;
}

/* === Post Title links (home highlight, event cards) === */
/* Titles keep their own color; the anchor inherits instead of the
   global rose link style. Hover signals the link. */
.wp-block-post-title a {
	color: inherit;
	text-decoration: none;
	transition: color 150ms;
}

.wp-block-post-title a:hover {
	color: #ffa892;
	text-decoration: none;
}

/* === Member Avatar (À propos, member entries) === */
/* Fixed 64px circle whatever the source photo's proportions. */
.np-avatar {
	width: 64px;
	height: 64px;
	flex-shrink: 0;
}

.np-avatar img {
	width: 64px;
	height: 64px;
	border-radius: 9999px;
	object-fit: cover;
}

/* === Event Meta (event date, location) === */
.np-event-meta {
	font-family: "Spectral", Georgia, serif;
	font-size: 14px;
	color: #cc9180;
	margin: 0;
}

/* === Margin Note === */
.np-margin-note {
	border-left: 1px solid rgba(255, 168, 146, 0.5);
	padding-left: 24px;
}

.np-margin-note.np-margin-note-faint {
	border-left-color: rgba(255, 168, 146, 0.4);
}

/* === Mission Band (full-bleed) === */
.np-mission-band {
	background-color: #2f4c16;
}

/* === Registration Button (link styled as button) === */
.np-register-button {
	display: inline-block;
	background-color: #eaf06a;
	color: #003539;
	font-family: "Spectral", Georgia, serif;
	font-weight: 600;
	padding: 12px 24px;
	border-radius: 2px;
	text-decoration: none;
	transition: background-color 150ms;
}

.np-register-button:hover {
	background-color: #ffa892;
	color: #003539;
	text-decoration: none;
}

/* === Footer === */
.np-footer {
	border-top: 1px solid rgba(47, 76, 22, 0.5);
	padding-top: 32px;
}

.np-footer a {
	color: #cc9180;
	text-decoration: none;
	transition: color 150ms;
}

.np-footer a:hover {
	color: #eaf06a;
}

.np-footer .np-footer-copyright {
	font-family: "Spectral", Georgia, serif;
	font-size: 14px;
	color: #cc9180;
}

/* === Nav active state === */
.wp-block-navigation .wp-block-navigation-item.current-menu-item > a {
	color: #eaf06a;
	background-color: rgba(47, 76, 22, 0.4);
	border-radius: 2px;
	padding: 4px 12px;
}

.wp-block-navigation .wp-block-navigation-item a {
	padding: 4px 12px;
	border-radius: 2px;
	transition: color 150ms;
}

/* === Prose extras === */
.wp-block-post-content a {
	text-decoration: underline;
	text-decoration-color: rgba(255, 168, 146, 0.4);
	text-underline-offset: 2px;
	text-decoration-thickness: 0.1em;
	transition: all 150ms;
}

.wp-block-post-content a:hover {
	text-decoration-color: #ffa892;
}

.wp-block-post-content h1 {
	text-wrap: balance;
}

.wp-block-post-content h2 {
	text-wrap: balance;
}

/* === Title balance === */
h1, h2 {
	text-wrap: balance;
}

/* === Responsive centering for constrained layout === */
@media (min-width: 1024px) {
	:where(.wp-site-blocks) > * {
		max-width: 672px;
		margin-left: auto;
		margin-right: auto;
	}
	:where(.wp-site-blocks) > .alignfull {
		max-width: 100%;
	}
}

/* Ensure full-bleed blocks clear the root padding */
.alignfull {
	margin-left: calc(-1 * var(--wp--style--root--padding-left, 16px)) !important;
	margin-right: calc(-1 * var(--wp--style--root--padding-right, 16px)) !important;
	width: auto !important;
}
