/**
 * Calendario Nautica — design dal prototipo Figma "Restyling responsive
 * di Nautica.it" (pagina #/calendario-nautico).
 *
 *   Testata  = briciole, titolo, sottotitolo
 *   Filtri   = ricerca + quattro tendine (chiuse dietro "Filtri" sotto 1024px)
 *   Card     = in corso + prossimi appuntamenti
 *   Mese     = tabella del mese + elenco degli eventi del mese
 *
 * Token di design: gli stessi del tema nautica_2025
 * (tailwind/tailwind-theme.css). CSS scritto a mano, non classi
 * Tailwind: il plugin non dipende dalla compilazione del tema.
 */

.nc-page,
.nc-cal {
	--nc-navy: #384963;
	--nc-navy-deep: #29374c;
	--nc-navy-ink: #192433;
	--nc-navy-50: #ebf4ff;
	--nc-navy-100: #d2e4f9;
	--nc-ink: #1b2229;
	--nc-ink-soft: #3d4750;
	--nc-muted: #4f5a64;
	--nc-line: #d5dce2;
	--nc-field: #707c87;
	--nc-paper: #f4f6f8;
	--nc-live: #1d6b45;

	--nc-shadow-card: 0 0 0 1px #00000014, 0 1px 2px -1px #00000014, 0 2px 4px #0000000d;
	--nc-shadow-card-hover: 0 0 0 1px #0000001a, 0 2px 4px -1px #0000001a, 0 8px 18px #00000014;

	--nc-font: var(--wp--preset--font-family--sans, Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif);

	--nc-meta: 1rem;
	--nc-ui: 1.125rem;
	--nc-body: 1.125rem;
	--nc-lead: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);
	--nc-card: clamp(1.375rem, 1.3rem + 0.3vw, 1.5rem);
	--nc-display: clamp(1.875rem, 1.3rem + 2.4vw, 3rem);

	font-family: var(--nc-font);
	color: var(--nc-ink);
}
.nc-page *,
.nc-page *::before,
.nc-page *::after,
.nc-cal *,
.nc-cal *::before,
.nc-cal *::after { box-sizing: border-box; }

.nc-cal :focus-visible,
.nc-pagehead :focus-visible {
	outline: 3px solid var(--nc-navy-ink);
	outline-offset: 3px;
}

.nc-i { flex: none; display: block; }

.nc-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ============ Contenitore ============ */

.nc-page { width: 100%; }

.nc-wrap {
	width: 100%;
	max-width: 80rem;
	margin: 0 auto;
	padding-left: 20px;
	padding-right: 20px;
}
.nc-wrap--body { padding-bottom: 64px; }

@media (min-width: 640px) {
	.nc-wrap { padding-left: 32px; padding-right: 32px; }
}
@media (min-width: 1024px) {
	.nc-wrap { padding-left: 40px; padding-right: 40px; }
}

/* ============ Testata ============ */

.nc-pagehead {
	border-bottom: 1px solid var(--nc-line);
	padding: 32px 0;
}
@media (min-width: 640px)  { .nc-pagehead { padding-top: 40px; } }
@media (min-width: 1024px) { .nc-pagehead { padding-top: 48px; } }

.nc-crumbs {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: var(--nc-meta);
	line-height: 1.5;
	color: var(--nc-muted);
}
.nc-crumbs a {
	color: var(--nc-navy);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.nc-crumbs a:hover { color: var(--nc-navy-ink); }

.nc-title {
	margin: 12px 0 0;
	font-family: var(--nc-font);
	font-size: var(--nc-display);
	line-height: 1.15;
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--nc-navy);
}
.nc-lead {
	margin: 12px 0 0;
	max-width: 44rem;
	font-size: var(--nc-lead);
	line-height: 1.5;
	color: var(--nc-ink-soft);
}

/* ============ Filtri ============ */

.nc-filters {
	margin: 32px 0 0;
	padding: 20px;
	border: 1px solid var(--nc-line);
	background: var(--nc-paper);
}
@media (min-width: 640px) { .nc-filters { padding: 24px; } }

.nc-filters-grid {
	display: grid;
	gap: 20px;
}

.nc-fld { min-width: 0; }
.nc-fld--search .nc-control { max-width: 38rem; }

.nc-label {
	display: block;
	margin-bottom: 8px;
	font-size: var(--nc-meta);
	line-height: 1.5;
	font-weight: 600;
	color: var(--nc-ink);
}

.nc-control { position: relative; }
.nc-control .nc-i {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: var(--nc-navy);
}
.nc-fld--search .nc-control .nc-i { left: 16px; color: var(--nc-muted); }
.nc-control--select .nc-i { right: 14px; }

.nc-cal .nc-input {
	display: block;
	width: 100%;
	height: 52px;
	margin: 0;
	padding: 0 16px;
	border: 2px solid var(--nc-field);
	border-radius: 0;
	background: #fff;
	box-shadow: none;
	font-family: var(--nc-font);
	font-size: var(--nc-body);
	line-height: 1.6;
	color: var(--nc-ink);
	-webkit-appearance: none;
	appearance: none;
}
.nc-cal .nc-input::placeholder { color: var(--nc-muted); opacity: 1; }
.nc-cal .nc-input:focus { border-color: var(--nc-navy-ink); }
.nc-cal input.nc-input { padding-left: 48px; }
.nc-cal select.nc-input { padding-right: 44px; cursor: pointer; text-overflow: ellipsis; }
.nc-cal input[type="search"]::-webkit-search-cancel-button { cursor: pointer; }

/* Sotto 1024px le tendine stanno dietro il bottone "Filtri". */
.nc-filters-toggle {
	justify-self: start;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 48px;
	padding: 0 16px;
	border: 2px solid var(--nc-navy);
	border-radius: 0;
	background: #fff;
	font-family: var(--nc-font);
	font-size: var(--nc-ui);
	line-height: 1.35;
	font-weight: 600;
	color: var(--nc-navy);
	cursor: pointer;
}
.nc-filters-toggle:hover { background: var(--nc-navy-50); }
.nc-filters-toggle .nc-i--chevron { transition: transform 0.15s ease; }
.nc-filters-toggle[aria-expanded="true"] .nc-i--chevron { transform: rotate(180deg); }
.nc-filters-active {
	min-width: 24px;
	height: 24px;
	padding: 0 6px;
	border-radius: 12px;
	background: var(--nc-navy);
	color: #fff;
	font-size: 14px;
	line-height: 24px;
	text-align: center;
}
.nc-filters-active[hidden] { display: none; }

.nc-filters-more { display: none; gap: 20px; }
.nc-filters.is-open .nc-filters-more { display: grid; }

@media (min-width: 640px) {
	.nc-filters.is-open .nc-filters-more { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1024px) {
	.nc-filters-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 16px; }
	.nc-fld--search { grid-column: 1 / -1; }
	.nc-filters-toggle { display: none; }
	.nc-filters-more,
	.nc-filters.is-open .nc-filters-more { display: contents; }
}

.nc-reset {
	margin-top: 16px;
	padding: 0;
	border: 0;
	background: none;
	font-family: var(--nc-font);
	font-size: var(--nc-meta);
	font-weight: 600;
	color: var(--nc-navy);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.nc-reset:hover { color: var(--nc-navy-ink); }
.nc-reset[hidden] { display: none; }

/* ============ Barra dei risultati ============ */

.nc-bar {
	margin-top: 32px;
	padding-bottom: 16px;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px 24px;
	border-bottom: 1px solid var(--nc-navy);
}
.nc-count {
	margin: 0;
	font-family: var(--nc-font);
	font-size: 1.5rem;
	line-height: 1.2;
	font-weight: 700;
	color: var(--nc-navy);
}

.nc-views { display: flex; align-items: center; gap: 12px; }
.nc-views-label { font-size: var(--nc-meta); color: var(--nc-muted); }
.nc-switch { display: flex; border: 2px solid var(--nc-navy); }
.nc-cal .nc-switch-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	padding: 0 16px;
	background: #fff;
	font-size: var(--nc-meta);
	font-weight: 600;
	line-height: 1;
	color: var(--nc-navy);
	text-decoration: none;
}
.nc-cal .nc-switch-btn:hover { background: var(--nc-navy-50); color: var(--nc-navy); }
.nc-cal .nc-switch-btn[aria-pressed="true"] { background: var(--nc-navy); color: #fff; }

/* ============ Vista Card ============ */

.nc-cardsview { margin-top: 40px; }
.nc-cardsview[hidden],
.nc-monthwrap[hidden] { display: none; }

.nc-group + .nc-group { margin-top: 56px; }
.nc-group[hidden] { display: none; }

.nc-group-title {
	margin: 0 0 24px;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 4px 12px;
	font-family: var(--nc-font);
	font-size: 1.625rem;
	line-height: 1.2;
	font-weight: 700;
	color: var(--nc-ink);
}
.nc-group-count {
	font-size: var(--nc-meta);
	line-height: 1.5;
	font-weight: 400;
	color: var(--nc-muted);
}

.nc-cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 32px;
}
@media (min-width: 640px)  { .nc-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .nc-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.nc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	background: #fff;
	box-shadow: var(--nc-shadow-card);
	transition: box-shadow 0.18s ease;
}
.nc-card[hidden] { display: none; }
.nc-card:hover { box-shadow: var(--nc-shadow-card-hover); }
.nc-card:focus-within {
	outline: 3px solid var(--nc-navy-ink);
	outline-offset: 3px;
}
.nc-card :focus-visible { outline: none; }

.nc-card-dates {
	padding: 16px 20px;
	background: var(--nc-navy);
	color: #fff;
}
@media (min-width: 640px) { .nc-card-dates { padding: 16px 24px; } }
.nc-card.is-live .nc-card-dates { background: var(--nc-live); }

.nc-card-when {
	display: block;
	font-size: 1.375rem;
	line-height: 1.25;
	font-weight: 700;
}
.nc-card-status {
	display: block;
	margin-top: 4px;
	font-size: var(--nc-meta);
	line-height: 1.5;
	color: rgba(255, 255, 255, 0.9);
}
.nc-live-badge {
	display: none;
	padding: 1px 10px;
	background: #fff;
	color: var(--nc-live);
	font-weight: 700;
}
.nc-card.is-live .nc-live-badge { display: inline-block; }
.nc-card.is-live .nc-card-length { display: none; }

.nc-card-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	padding: 20px 20px 24px;
}
@media (min-width: 640px) { .nc-card-body { padding-left: 24px; padding-right: 24px; } }

.nc-card-kind {
	margin: 0;
	font-size: var(--nc-meta);
	line-height: 1.5;
	font-weight: 600;
	color: var(--nc-navy);
}
.nc-card-title {
	margin: 8px 0 0;
	font-family: var(--nc-font);
	font-size: var(--nc-card);
	line-height: 1.25;
	font-weight: 700;
	color: var(--nc-ink);
	overflow-wrap: anywhere;
}
.nc-cal .nc-card-link { color: inherit; text-decoration: none; }
/* Tutta la card è cliccabile: il link del titolo la copre per intero. */
.nc-card-link::after {
	content: "";
	position: absolute;
	inset: 0;
}

.nc-card-place {
	margin: 8px 0 0;
	display: flex;
	align-items: flex-start;
	gap: 6px;
	font-size: var(--nc-meta);
	line-height: 1.5;
	color: var(--nc-ink-soft);
}
.nc-card-place .nc-i { margin-top: 4px; color: var(--nc-navy); }

.nc-card-text {
	margin: 12px 0 0;
	font-size: var(--nc-body);
	line-height: 1.6;
	color: var(--nc-ink-soft);
}

.nc-card-more {
	margin-top: auto;
	padding-top: 20px;
	font-size: var(--nc-ui);
	line-height: 1.35;
	font-weight: 600;
	color: var(--nc-navy);
	text-underline-offset: 4px;
}
.nc-card:hover .nc-card-more { text-decoration: underline; }
.nc-arrow { display: inline-block; transition: transform 0.15s ease; }
.nc-card:hover .nc-arrow { transform: translateX(3px); }

.nc-more-wrap { margin-top: 40px; text-align: center; }
.nc-more {
	height: 52px;
	padding: 0 28px;
	border: 2px solid var(--nc-navy);
	border-radius: 0;
	background: #fff;
	font-family: var(--nc-font);
	font-size: var(--nc-ui);
	font-weight: 600;
	color: var(--nc-navy);
	cursor: pointer;
}
.nc-more:hover { background: var(--nc-navy-50); }
.nc-more[hidden] { display: none; }

.nc-empty {
	margin: 0;
	padding: 48px 20px;
	text-align: center;
	font-size: var(--nc-body);
	color: var(--nc-muted);
}
.nc-empty[hidden] { display: none; }

/* ============ Vista Mese ============ */

.nc-monthview { margin-top: 32px; }
.nc-monthview.is-loading { opacity: 0.55; transition: opacity 0.15s ease; }

.nc-mnav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.nc-cal .nc-mnav-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 48px;
	padding: 0 14px;
	border: 2px solid var(--nc-navy);
	background: #fff;
	font-size: var(--nc-meta);
	font-weight: 600;
	color: var(--nc-navy);
	text-decoration: none;
	white-space: nowrap;
}
.nc-cal .nc-mnav-btn:hover { background: var(--nc-navy-50); color: var(--nc-navy); }
.nc-mnav-title {
	margin: 0;
	font-family: var(--nc-font);
	font-size: 1.75rem;
	line-height: 1.2;
	font-weight: 700;
	color: var(--nc-navy);
	text-align: center;
}

@media (max-width: 639px) {
	.nc-mnav { flex-wrap: wrap; }
	.nc-mnav-title { order: -1; flex: 1 0 100%; }
	.nc-mnav-text { display: none; }
	.nc-cal .nc-mnav-btn { width: 48px; justify-content: center; padding: 0; }
}

.nc-table {
	width: 100%;
	margin: 24px 0 0;
	table-layout: fixed;
	border-collapse: collapse;
	border-spacing: 0;
}
.nc-table th {
	padding: 0 0 8px;
	border: 0;
	background: none;
	font-size: var(--nc-meta);
	line-height: 1.5;
	font-weight: 600;
	color: var(--nc-muted);
	text-align: center;
}
.nc-table th abbr { text-decoration: none; border: 0; cursor: default; }

.nc-cell {
	height: 56px;
	padding: 0;
	border: 1px solid var(--nc-line);
	vertical-align: top;
	background: #fff;
}
.nc-cell--out { background: var(--nc-paper); }
.nc-cell--has { background: var(--nc-navy-50); }

.nc-cal .nc-cell-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	width: 100%;
	height: 100%;
	min-height: 56px;
	margin: 0;
	padding: 6px;
	border: 0;
	border-radius: 0;
	background: transparent;
	font: inherit;
	color: inherit;
	text-align: left;
	cursor: pointer;
}
.nc-cal .nc-cell-btn:disabled { cursor: default; opacity: 1; }
.nc-cal .nc-cell-btn:not(:disabled):hover { box-shadow: inset 0 0 0 2px var(--nc-navy-100); }
.nc-cell.is-selected .nc-cell-btn { box-shadow: inset 0 0 0 2px var(--nc-navy); }

.nc-cell-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	font-size: var(--nc-meta);
	font-weight: 600;
	color: var(--nc-ink);
}
.nc-cell--today .nc-cell-num { background: var(--nc-navy); color: #fff; }

.nc-cell-body {
	display: flex;
	align-items: center;
	gap: 4px;
	width: 100%;
	min-width: 0;
}
.nc-cell-name,
.nc-cell-more,
.nc-cell-bar { display: none; }
.nc-cell-dot {
	width: 6px;
	height: 6px;
	margin: 0 auto;
	border-radius: 50%;
	background: var(--nc-navy);
}

@media (min-width: 640px) {
	.nc-cell { height: 96px; }
	.nc-cal .nc-cell-btn { min-height: 96px; padding: 8px; align-items: flex-start; }
	.nc-cell-dot { display: none; }
	.nc-cell-name {
		display: block;
		min-width: 0;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		font-size: var(--nc-meta);
		line-height: 1.5;
		color: var(--nc-navy);
	}
	.nc-cell-more {
		display: block;
		flex: none;
		font-size: 14px;
		font-weight: 600;
		color: var(--nc-muted);
	}
	.nc-cell-bar {
		display: block;
		width: 100%;
		height: 4px;
		margin-top: 10px;
		background: rgba(56, 73, 99, 0.4);
	}
}

.nc-mlist-head {
	margin-top: 40px;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px 16px;
}
.nc-mlist-title {
	margin: 0;
	font-family: var(--nc-font);
	font-size: 1.5rem;
	line-height: 1.2;
	font-weight: 700;
	color: var(--nc-ink);
	scroll-margin-top: 24px;
}
.nc-day-clear {
	padding: 0;
	border: 0;
	background: none;
	font-family: var(--nc-font);
	font-size: var(--nc-meta);
	font-weight: 600;
	color: var(--nc-navy);
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.nc-day-clear[hidden] { display: none; }

.nc-mlist {
	list-style: none;
	margin: 16px 0 0;
	padding: 0;
	border-top: 1px solid var(--nc-line);
	border-bottom: 1px solid var(--nc-line);
}
.nc-row { margin: 0; border-top: 1px solid var(--nc-line); }
.nc-row:first-child { border-top: 0; }
.nc-row[hidden] { display: none; }

.nc-cal .nc-row-link {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 4px 16px;
	align-items: center;
	padding: 20px 8px;
	color: inherit;
	text-decoration: none;
	transition: background 0.12s ease;
}
.nc-cal .nc-row-link:hover { background: var(--nc-navy-50); }

.nc-row-when {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 12px;
	font-size: var(--nc-ui);
	line-height: 1.35;
	font-weight: 700;
	color: var(--nc-navy);
}
.nc-live-tag {
	display: none;
	font-size: var(--nc-meta);
	font-weight: 600;
	color: var(--nc-live);
}
.nc-row.is-live .nc-live-tag { display: inline; }

.nc-row-main { min-width: 0; }
.nc-row-name {
	display: block;
	font-size: var(--nc-ui);
	line-height: 1.35;
	font-weight: 600;
	color: var(--nc-ink);
	overflow-wrap: anywhere;
}
.nc-row-meta {
	display: block;
	margin-top: 2px;
	font-size: var(--nc-meta);
	line-height: 1.5;
	color: var(--nc-muted);
}
.nc-row-arrow { color: var(--nc-navy); transition: transform 0.15s ease; }
.nc-row-link:hover .nc-row-arrow { transform: translateX(3px); }

@media (min-width: 640px) {
	.nc-cal .nc-row-link { grid-template-columns: 17rem minmax(0, 1fr) auto; }
	.nc-row-when { grid-column: auto; flex-direction: column; gap: 2px; }
}

/* Cambio mese senza ricaricare */
.nc-enter-next .nc-table,
.nc-enter-next .nc-mlist { animation: nc-in-next 0.28s cubic-bezier(0.22, 0.75, 0.3, 1) both; }
.nc-enter-prev .nc-table,
.nc-enter-prev .nc-mlist { animation: nc-in-prev 0.28s cubic-bezier(0.22, 0.75, 0.3, 1) both; }
.nc-enter-fade .nc-table,
.nc-enter-fade .nc-mlist { animation: nc-in-fade 0.22s ease both; }

@keyframes nc-in-next { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
@keyframes nc-in-prev { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: none; } }
@keyframes nc-in-fade { from { opacity: 0; } to { opacity: 1; } }

@media (prefers-reduced-motion: reduce) {
	.nc-cal *,
	.nc-cal *::before,
	.nc-cal *::after { animation: none !important; transition: none !important; }
}

/* =====================================================================
   Scheda del singolo evento — invariata, sui colori del nuovo design
   ===================================================================== */

.nc-event {
	--nc-primary: var(--nc-navy);
	--nc-secondary: var(--nc-navy-deep);
	--nc-tertiary: var(--nc-navy-50);
	--nc-line-soft: #e8ecf0;
	--nc-surface: #fff;
	--nc-shadow: var(--nc-shadow-card);
	--nc-shadow-lift: var(--nc-shadow-card-hover);
	--nc-saloni: #b5761f;
	--nc-super: #6b4e9e;
	--nc-moto: #c4442e;
	--nc-charter: #1c7a6b;
	line-height: 1.5;
}
.nc-event h1,
.nc-event h2,
.nc-event h3 { font-family: var(--nc-font); }

.nc-cd:empty { display: none; }
.nc-head-waves {
	position: absolute;
	z-index: 1;
	left: 0;
	right: 0;
	bottom: -1px;
	width: 100%;
	height: 46px;
}
.nc-head-waves .w1 { fill: rgba(255, 255, 255, 0.06); }
.nc-head-waves .w2 { fill: rgba(255, 255, 255, 0.09); }

.nc-event {
	max-width: 860px;
	margin: 0 auto;
	padding: 28px 22px 64px;
}
.nc-back {
	display: inline-block;
	margin-bottom: 18px;
	font-size: 13px;
	font-weight: 700;
	color: var(--nc-primary);
	text-decoration: none;
}
.nc-back:hover { text-decoration: underline; }

.nc-event-card {
	background: var(--nc-surface);
	border: 1px solid var(--nc-line);
	border-radius: 18px;
	box-shadow: var(--nc-shadow);
	overflow: hidden;
}

.nc-event-head {
	padding: 30px 30px 26px;
	background: linear-gradient(160deg, var(--nc-primary), var(--nc-navy-deep));
	color: #fff;
	border-bottom: 4px solid var(--nc-primary);
}
.nc-event-card--saloni  .nc-event-head { border-bottom-color: var(--nc-saloni); }
.nc-event-card--super   .nc-event-head { border-bottom-color: var(--nc-super); }
.nc-event-card--moto    .nc-event-head { border-bottom-color: var(--nc-moto); }
.nc-event-card--charter .nc-event-head { border-bottom-color: var(--nc-charter); }

.nc-event-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.nc-event-cat,
.nc-event-sub {
	font-size: 10px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	padding: 5px 11px;
	border-radius: 20px;
	background: rgba(255, 255, 255, 0.18);
	color: #fff;
}
.nc-event-cat--saloni  { background: var(--nc-saloni); }
.nc-event-cat--super   { background: var(--nc-super); }
.nc-event-cat--moto    { background: var(--nc-moto); }
.nc-event-cat--charter { background: var(--nc-charter); }
.nc-event-sub--past { background: rgba(0, 0, 0, 0.28); }

.nc-event-title {
	font-size: clamp(25px, 4vw, 36px);
	line-height: 1.12;
	margin: 0 0 14px;
	color: #fff;
}
.nc-event-when {
	margin: 0 0 4px;
	font-size: 17px;
	font-weight: 700;
	color: #fff;
}
.nc-event-time { font-weight: 500; color: #c8dcee; }
.nc-event-where { margin: 0; font-size: 14px; color: #c8dcee; }

.nc-event-text {
	padding: 24px 30px 4px;
	font-size: 16px;
	line-height: 1.65;
}

.nc-event-data { margin: 0; padding: 22px 30px 6px; }
.nc-event-row {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 14px;
	padding: 10px 0;
	border-bottom: 1px solid var(--nc-line-soft);
}
.nc-event-row:last-child { border-bottom: 0; }
.nc-event-row dt {
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nc-muted);
	padding-top: 2px;
}
.nc-event-row dd { margin: 0; font-size: 15px; color: var(--nc-ink); }

.nc-event-actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	padding: 20px 30px 26px;
}
.nc-btn {
	height: 44px;
	display: inline-grid;
	place-items: center;
	padding: 0 22px;
	border-radius: 11px;
	border: 1px solid var(--nc-primary);
	background: var(--nc-surface);
	color: var(--nc-primary);
	font-weight: 800;
	font-size: 14px;
	text-decoration: none;
	transition: background 0.15s ease, transform 0.15s ease;
}
.nc-btn:hover { background: var(--nc-tertiary); transform: translateY(-1px); }
.nc-btn--primary { background: var(--nc-primary); color: #fff; }
.nc-btn--primary:hover { background: var(--nc-navy-deep); color: #fff; }

.nc-event-source {
	margin: 0;
	padding: 14px 30px 20px;
	border-top: 1px solid var(--nc-line-soft);
	font-size: 12px;
	color: var(--nc-muted);
}
.nc-event-stale { color: var(--nc-saloni); font-weight: 700; }

.nc-related { margin-top: 34px; }
.nc-related h2 {
	font-size: 19px;
	margin: 0 0 14px;
	color: var(--nc-primary);
}
.nc-related ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.nc-related a {
	display: grid;
	grid-template-columns: 128px 1fr auto;
	gap: 14px;
	align-items: center;
	padding: 13px 16px;
	background: var(--nc-surface);
	border: 1px solid var(--nc-line);
	border-radius: 12px;
	text-decoration: none;
	color: var(--nc-ink);
	transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.nc-related a:hover { box-shadow: var(--nc-shadow-lift); transform: translateY(-1px); }
.nc-related-date {
	font-size: 12px;
	font-weight: 800;
	color: var(--nc-primary);
	text-transform: uppercase;
}
.nc-related-name { font-weight: 700; font-size: 14.5px; }
.nc-related-city { font-size: 12px; color: var(--nc-muted); }

@media (max-width: 640px) {
	.nc-event { padding: 18px 14px 44px; }
	.nc-event-head,
	.nc-event-data,
	.nc-event-actions,
	.nc-event-text,
	.nc-event-source { padding-left: 18px; padding-right: 18px; }
	.nc-event-row { grid-template-columns: 1fr; gap: 3px; }
	.nc-related a { grid-template-columns: 1fr; gap: 3px; }
	.nc-btn { width: 100%; }
}


.nc-event-head { position: relative; overflow: hidden; padding-bottom: 40px; }
.nc-event-head > * { position: relative; z-index: 2; }
.nc-event-head .nc-art {
	position: absolute;
	z-index: 1;
	right: 22px;
	top: 50%;
	width: 190px;
	height: auto;
	transform: translateY(-55%);
	fill: rgba(255, 255, 255, 0.09);
	stroke: rgba(255, 255, 255, 0.09);
}
.nc-event-head .nc-head-waves { position: absolute; z-index: 1; }
.nc-event-head--img {
	background:
		linear-gradient(180deg, rgba(15, 30, 46, 0.25) 0%, rgba(15, 30, 46, 0.85) 100%),
		var(--nc-head-img) center / cover no-repeat;
	min-height: 260px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.nc-event-cd {
	padding: 5px 11px;
	border-radius: 20px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	background: #fff;
	color: var(--nc-primary);
}
.nc-event-cd.nc-cd--now  { background: #3fc2a3; color: #0c3a31; }
.nc-event-cd.nc-cd--past { background: rgba(0, 0, 0, 0.3); color: #fff; }

.nc-event-share {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	padding: 0 30px 22px;
	font-size: 12px;
	font-weight: 700;
	color: var(--nc-muted);
}
.nc-share {
	height: 32px;
	display: inline-flex;
	align-items: center;
	padding: 0 13px;
	border-radius: 20px;
	border: 1px solid var(--nc-line);
	background: var(--nc-surface);
	font: inherit;
	font-size: 12px;
	font-weight: 700;
	color: var(--nc-primary);
	text-decoration: none;
	cursor: pointer;
	transition: background 0.15s ease, border-color 0.15s ease;
}
.nc-share:hover { background: var(--nc-tertiary); border-color: #bcc9ea; }
.nc-share--wa { color: #128c4a; }
.nc-share.is-done { background: #e2f4f0; border-color: #a9d8ce; color: #145f54; }

@media (max-width: 640px) {
	.nc-event-head .nc-art { width: 120px; right: -10px; opacity: 0.8; }
	.nc-event-share { padding-left: 18px; padding-right: 18px; }
}

