@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Raleway:wght@300;400;600;700&display=swap');

/* ── Custom properties ── */
:root {
	--sea: #0d4f8b;
	--sea-mid: #2e86ab;
	--aqua: #00b4d8;
	--aqua-light: #90e0ef;
	--sand: #f5e6c8;
	--sand-dark: #e8d4a8;
	--coral: #e76f51;
	--coral-dark: #c25435;
	--white: #fff;
	--text: #2c3e50;
	--text-muted: #6b7a8d;
	--radius: 14px;
	--shadow: 0 4px 24px rgba(13, 79, 139, .12);
	--shadow-hover: 0 8px 32px rgba(13, 79, 139, .22);
}

/* ── Reset & base ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
	font-family: 'Raleway', sans-serif;
	color: var(--text);
	background: var(--sand);
	line-height: 1.6;
}

h1, h2, h3, h4 {
	font-family: 'Playfair Display', serif;
	line-height: 1.25;
}

img { max-width: 100%; display: block; }

button { font-family: inherit; cursor: pointer; border: none; }

/* ── Container ── */
.container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 1.25rem;
}

/* ── Sections ── */
.section { padding: 4rem 0; }
.section-sand { background: var(--sand); }
.section-white { background: var(--white); }
.section-sea { background: linear-gradient(160deg, var(--sea) 0%, var(--sea-mid) 100%); }

.section-title {
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	margin-bottom: .5rem;
	color: var(--sea);
}
.section-title-white { color: var(--white); }

.section-sub {
	color: var(--text-muted);
	margin-bottom: 2.5rem;
	font-weight: 300;
	font-size: 1.05rem;
}
.section-sub-white { color: var(--aqua-light); }

/* ── HERO ── */
.hero {
	position: relative;
	background:
		url('/img/header/mallorca-island.jpg') center / cover no-repeat;
	min-height: 100svh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	overflow: hidden;
	padding: 2rem 1rem 6rem;
}

.hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, rgba(5,25,55,.55) 0%, rgba(10,61,110,.45) 60%, rgba(0,100,160,.35) 100%),
		radial-gradient(ellipse 60% 40% at 20% 80%, rgba(0,180,216,.2) 0%, transparent 60%);
}

.hero-inner {
	position: relative;
	z-index: 1;
}

.hero-flag {
	font-size: 3rem;
	margin-bottom: 1rem;
	filter: drop-shadow(0 2px 8px rgba(0,0,0,.3));
}

.hero-title {
	font-size: clamp(3rem, 10vw, 6rem);
	color: var(--white);
	text-shadow: 0 2px 20px rgba(0,0,0,.3);
	margin-bottom: .5rem;
	letter-spacing: -.02em;
}

.hero-subtitle {
	font-size: clamp(1rem, 2.5vw, 1.4rem);
	color: var(--aqua-light);
	font-weight: 300;
	margin-bottom: 2rem;
	letter-spacing: .04em;
	text-shadow: 1px 1px 1px rgba(0,0,0,1), 0px 0px 5px rgba(255,255,255,1);
}

.hero-badges {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	justify-content: center;
	margin-bottom: 2.5rem;
}

.badge {
	background: rgba(255,255,255,.15);
	border: 1px solid rgba(255,255,255,.3);
	color: var(--white);
	padding: .35rem 1rem;
	border-radius: 100px;
	font-size: .85rem;
	font-weight: 600;
	backdrop-filter: blur(4px);
}

.hero-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
}

.nav-link {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.25);
	color: var(--white);
	text-decoration: none;
	padding: .6rem 1.4rem;
	border-radius: 100px;
	font-weight: 600;
	font-size: .9rem;
	transition: background .2s, transform .2s;
	backdrop-filter: blur(4px);
}

.nav-link:hover {
	background: rgba(255,255,255,.25);
	transform: translateY(-2px);
}

.hero-wave {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	line-height: 0;
}

.hero-wave svg {
	width: 100%;
	height: 80px;
}

/* ── KALENDÁŘ ── */
.calendar-wrap {
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 1.5rem;
	max-width: 560px;
	margin: 0 auto;
}

.calendar-header {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	text-align: center;
	font-weight: 700;
	font-size: .8rem;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: .08em;
	margin-bottom: .75rem;
	padding-bottom: .75rem;
	border-bottom: 1px solid var(--sand);
}

.calendar-grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 4px;
}

.cal-cell {
	aspect-ratio: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	font-size: .9rem;
}

.cal-empty { background: transparent; }

.cal-other {
	color: #bbb;
	font-weight: 400;
}

.cal-day { font-weight: 600; line-height: 1; font-size: .95rem; }
.cal-emoji { font-size: .75rem; line-height: 1; margin-top: 7px; }

.cal-vacation {
	background: linear-gradient(135deg, var(--day-color, var(--sea-mid)), color-mix(in srgb, var(--day-color, var(--sea-mid)) 60%, #000));
	color: var(--white);
	text-decoration: none;
	transition: transform .2s, box-shadow .2s;
	box-shadow: 0 2px 8px rgba(0,0,0,.15);
	padding: 0;
}

.cal-vacation:hover {
	transform: translateY(-3px) scale(1.08);
	box-shadow: 0 6px 20px rgba(0,0,0,.25);
	z-index: 1;
	position: relative;
}

.cal-vacation.active {
	box-shadow: 0 0 0 3px var(--white), 0 0 0 5px var(--day-color, var(--coral)), 0 6px 20px rgba(0,0,0,.25);
	transform: translateY(-2px) scale(1.06);
}

/* ── DETAIL DNE ── */
.day-detail { transition: none; }
.day-detail.hidden { display: none; }

.day-card {
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	overflow: hidden;
}

.day-card-header {
	padding: 2rem 2rem 1.5rem;
	display: flex;
	align-items: flex-start;
	gap: 1.2rem;
}

.day-card-emoji-wrap {
	width: 64px;
	height: 64px;
	border-radius: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 2rem;
	flex-shrink: 0;
}

.day-card-title { font-size: 1.8rem; color: var(--sea); margin-bottom: .2rem; }
.day-card-subtitle { color: var(--text-muted); font-weight: 400; }
.day-card-desc { padding: 0 2rem 1.5rem; color: var(--text-muted); border-bottom: 1px solid var(--sand); }

.day-card-activities { padding: 1.5rem 2rem 2rem; }
.day-card-activities h4 { color: var(--sea); margin-bottom: 1rem; font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; }

.day-act-list { list-style: none; display: flex; flex-direction: column; gap: .6rem; }

.day-act {
	display: grid;
	grid-template-columns: 5rem 1rem 1fr;
	gap: .5rem;
	align-items: baseline;
}

.day-act-time {
	font-size: .82rem;
	font-weight: 700;
	color: var(--sea-mid);
	font-variant-numeric: tabular-nums;
}

.day-act-emoji { font-size: 1rem; }

.day-act-text { font-size: .95rem; }
.day-act-name { font-weight: 600; }
.day-act-desc-text { color: var(--text-muted); font-size: .88rem; }

.day-act-note {
	grid-column: 1 / -1;
	margin: .1rem 0 .1rem 0;
	padding: .55rem .75rem;
	background: #fffbf0;
	border-left: 3px solid #f39c12;
	border-radius: 0 6px 6px 0;
	font-size: .84rem;
	color: var(--text-muted);
	line-height: 1.55;
}

.day-act-ticket {
	grid-column: 1 / -1;
	margin: .1rem 0 .1rem 0;
	padding: .5rem .75rem;
	background: #eaf6fb;
	border-left: 3px solid #2980b9;
	border-radius: 0 6px 6px 0;
	font-size: .84rem;
	color: var(--text-muted);
	line-height: 1.55;
}
.day-act-ticket a { color: #1a6fa8; font-weight: 600; text-decoration: none; }
.day-act-ticket a:hover { text-decoration: underline; }

/* ── MAPA ── */
#map {
	height: 480px;
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	overflow: hidden;
}

.map-popup-title { font-weight: 700; font-family: 'Playfair Display', serif; color: var(--sea); }
.map-popup-date { font-size: .82rem; color: var(--text-muted); margin-top: .2rem; }

.map-popup-actions {
	display: flex;
	gap: .4rem;
	margin-top: .55rem;
}
.map-popup-btn {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .3rem .75rem;
	border-radius: 100px;
	background: rgba(13, 79, 139, .08);
	border: 1px solid rgba(13, 79, 139, .25);
	color: var(--sea);
	font-size: .78rem;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: background .15s, border-color .15s;
}
.map-popup-btn:hover {
	background: rgba(13, 79, 139, .16);
	border-color: rgba(13, 79, 139, .45);
}

/* ── HARMONOGRAM / TIMELINE ── */
.timeline {
	position: relative;
	padding-left: 2.5rem;
}

.timeline::before {
	content: '';
	position: absolute;
	left: .9rem;
	top: 0;
	bottom: 0;
	width: 2px;
	background: linear-gradient(to bottom, var(--aqua), var(--coral));
	border-radius: 2px;
}

.timeline-item {
	position: relative;
	padding-bottom: 2rem;
}

.timeline-item:last-child { padding-bottom: 0; }

.timeline-dot {
	position: absolute;
	left: -1.62rem;
	top: 1.4rem;
	width: 1rem;
	height: 1rem;
	border-radius: 50%;
	border: 2.5px solid var(--white);
	box-shadow: 0 0 0 2px currentColor;
}

.timeline-card {
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	overflow: hidden;
	border-left: 4px solid var(--card-color2, var(--sea-mid));
	transition: box-shadow .2s, transform .2s;
}

.timeline-card:hover {
	box-shadow: var(--shadow-hover);
	transform: translateX(4px);
}

.timeline-date {
	background: var(--card-color2, var(--sea-mid));
	color: #fff;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: .5rem 1.25rem;
}

.timeline-head {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.25rem 1.25rem .75rem;
}

.timeline-emoji { font-size: 2rem; line-height: 1; }

.timeline-title {
	font-size: 1.25rem;
	color: var(--sea);
	margin-bottom: .1rem;
}

.timeline-subtitle {
	font-size: .88rem;
	color: var(--text-muted);
}

.timeline-desc {
	padding: 0 1.25rem .75rem;
	color: var(--text-muted);
	font-size: .93rem;
	border-bottom: 1px solid var(--sand);
}

.timeline-activities {
	list-style: none;
	padding: .75rem 1.25rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .4rem;
}

.act-item {
	display: flex;
	align-items: baseline;
	gap: .5rem;
	font-size: .88rem;
}

.act-time {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	color: var(--sea-mid);
	min-width: 3.2rem;
	font-size: .8rem;
}

.act-emoji { font-size: .95rem; }

.act-name { font-weight: 600; }

.act-desc { color: var(--text-muted); }

/* ── GALERIE ── */
.gallery-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.gallery-item {
	position: relative;
	border-radius: var(--radius);
	overflow: hidden;
	aspect-ratio: 4 / 3;
	background: linear-gradient(135deg, var(--g1, var(--sea)), var(--g2, var(--sea-mid)));
	cursor: pointer;
	transition: transform .2s, box-shadow .2s;
}

.gallery-item:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-hover);
}

.gallery-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	color: rgba(255,255,255,.9);
}

.gallery-emoji { font-size: 3rem; }

.gallery-label {
	font-family: 'Playfair Display', serif;
	font-size: 1.1rem;
	font-weight: 700;
	text-shadow: 0 1px 4px rgba(0,0,0,.3);
	text-align: center;
	padding: 0 1rem;
}

.gallery-hint {
	text-align: center;
	color: var(--text-muted);
	font-size: .9rem;
	font-style: italic;
}

/* ── Odkaz v timeline (přepis button → a) ── */
a.timeline-card {
	display: block;
	text-decoration: none;
	color: inherit;
}

/* ── DAY PAGE ── */
.day-hero {
	position: relative;
	background: linear-gradient(135deg, var(--c1, #0a3d6e), var(--c2, #2e86ab));
	padding: 0 1rem 6rem;
	overflow: hidden;
	text-align: center;
}

.day-hero--photo {
	background: var(--hero-bg) center center / cover no-repeat;
}

.day-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse 60% 40% at 20% 80%, rgba(255,255,255,.1) 0%, transparent 60%);
}

.day-hero--photo::before {
	background: linear-gradient(135deg, color-mix(in srgb, var(--c1) 75%, transparent), color-mix(in srgb, var(--c2) 60%, transparent));
}

.day-hero-inner {
	position: relative;
	z-index: 1;
	padding-top: 1.5rem;
}

.day-topnav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 2rem;
}

.topnav-pager {
	display: flex;
	gap: 1rem;
}

.topnav-link {
	color: rgba(255,255,255,.8);
	text-decoration: none;
	font-size: .85rem;
	font-weight: 600;
	padding: .4rem .8rem;
	border-radius: 100px;
	border: 1px solid rgba(255,255,255,.25);
	transition: background .15s;
}

.topnav-link:hover { background: rgba(255,255,255,.15); color: var(--white); }

.day-hero-emoji { font-size: 4rem; margin-bottom: .5rem; filter: drop-shadow(0 2px 8px rgba(0,0,0,.3)); }

.day-hero-date {
	color: rgba(255,255,255,.7);
	font-size: .9rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-bottom: .4rem;
}

.day-hero-title {
	font-size: clamp(2rem, 6vw, 3.5rem);
	color: var(--white);
	text-shadow: 0 2px 16px rgba(0,0,0,.25);
	margin-bottom: .4rem;
}

.day-hero-subtitle {
	color: rgba(255,255,255,.75);
	font-size: 1.1rem;
	font-weight: 300;
}

.day-main { background: var(--sand); }

.day-layout {
	display: flex;
	flex-direction: column;
	gap: 2rem;
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
}

.day-section {
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 1.75rem;
}

.day-section-title {
	font-size: 1.2rem;
	color: var(--sea);
	margin-bottom: 1.25rem;
	padding-bottom: .75rem;
	border-bottom: 1px solid var(--sand);
}

.day-desc {
	font-size: 1.05rem;
	color: var(--text-muted);
	line-height: 1.7;
}

.day-desc p { margin: 0 0 1rem; }
.day-desc p:last-child { margin-bottom: 0; }

.day-desc h3 {
	font-size: 1rem;
	font-weight: 700;
	color: var(--sea);
	margin: 1.5rem 0 .5rem;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.day-desc h3:first-child { margin-top: 0; }

.day-desc ul {
	margin: 0 0 1rem 1.25rem;
	padding: 0;
	list-style: disc;
}
.day-desc ul li {
	margin-bottom: .35rem;
}
.day-desc .md-audio-box {
	background: #f3eaff;
	border-left: 4px solid #8e44ad;
	border-radius: 8px;
	padding: 1rem 1.25rem;
	margin: 1.25rem 0;
}
.day-desc .md-audio-box p { margin: 0 0 .5rem; }
.day-desc .md-audio-box p:last-of-type { margin-bottom: .75rem; }
.day-desc .md-audio-label { color: var(--text-muted); font-size: .95rem; }
.day-desc .md-audio-title { font-weight: 700; color: #6c2f8a; }
.day-desc .md-audio-box audio { width: 100%; }

/* ── PLACE TABS ── */
.place-tabs-nav {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-bottom: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--sand);
}

.place-tab-btn {
	padding: .45rem 1.1rem;
	border-radius: 100px;
	border: 1.5px solid var(--sand-dark);
	background: var(--sand);
	color: var(--text-muted);
	font-size: .88rem;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	transition: background .15s, border-color .15s, color .15s;
}

.place-tab-btn:hover {
	background: var(--sand-dark);
	color: var(--text);
}

.place-tab-btn--active {
	background: var(--sea);
	border-color: var(--sea);
	color: var(--white);
}

.place-tab-panel { display: none; }
.place-tab-panel--active { display: block; }

.day-desc .md-img {
	max-width: 100%;
	height: auto;
	border-radius: 8px;
	margin-top: .5rem;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

/* day photo gallery */
.day-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: .75rem;
}
.gallery-photo {
	position: relative;
	display: block;
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 4/3;
	text-decoration: none;
	background: var(--sand);
}
.gallery-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .3s ease;
}
.gallery-photo:hover img { transform: scale(1.05); }
.gallery-photo-caption {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	padding: .35rem .6rem;
	background: linear-gradient(transparent, rgba(0,0,0,.55));
	color: #fff;
	font-size: .78rem;
	font-weight: 500;
}
.gallery-photo--clickable { cursor: zoom-in; }

/* ── Lightbox ── */
.lightbox {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 1000;
	background: rgba(0,0,0,.92);
	align-items: center;
	justify-content: center;
}
.lightbox--open { display: flex; }

.lightbox-img-wrap {
	position: relative;
	max-width: min(92vw, 1400px);
	max-height: 90vh;
	display: flex;
	align-items: center;
	justify-content: center;
}
.lightbox-img-wrap img {
	max-width: 100%;
	max-height: 90vh;
	object-fit: contain;
	border-radius: 4px;
	display: block;
}
.lightbox-caption {
	position: absolute;
	bottom: -2rem;
	left: 0;
	right: 0;
	text-align: center;
	color: rgba(255,255,255,.7);
	font-size: .85rem;
}
.lightbox-close {
	position: fixed;
	top: 1rem;
	right: 1.25rem;
	font-size: 2rem;
	line-height: 1;
	color: #fff;
	background: none;
	border: none;
	cursor: pointer;
	opacity: .7;
	padding: .25rem .5rem;
}
.lightbox-close:hover { opacity: 1; }
.lightbox-nav {
	position: fixed;
	top: 50%;
	transform: translateY(-50%);
	font-size: 2.5rem;
	line-height: 1;
	color: #fff;
	background: none;
	border: none;
	cursor: pointer;
	opacity: .5;
	padding: .5rem .75rem;
	user-select: none;
}
.lightbox-nav:hover { opacity: 1; }
.lightbox-nav--prev { left: .5rem; }
.lightbox-nav--next { right: .5rem; }
.lightbox-nav--hidden { visibility: hidden; }

/* map on day page */
.day-section #map { height: 380px; border-radius: 8px; }

/* route summary below map */
.route-summary {
	display: none;
	grid-template-columns: 1fr auto auto 1fr;
	gap: .25rem 1.5rem;
	margin-top: 1rem;
	padding: .9rem 1.25rem;
	background: #fff;
	border-radius: var(--radius);
	box-shadow: var(--shadow);
}
.route-summary.route-summary--visible {
	display: grid;
}
.route-summary-item {
	display: flex;
	flex-direction: column;
	gap: .15rem;
}
.route-summary-item--stat {
	text-align: center;
	border-left: 1px solid #e0cfa0;
	border-right: 1px solid #e0cfa0;
	padding: 0 1.25rem;
}
.route-summary-label {
	font-size: .72rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--text-muted);
}
.route-summary-value {
	font-size: .95rem;
	font-weight: 600;
	color: var(--text);
}

@media (max-width: 600px) {
	.route-summary {
		grid-template-columns: 1fr 1fr;
	}
	.route-summary-item:not(.route-summary-item--stat) {
		grid-column: 1 / -1;
	}
	.route-summary-item--stat {
		border: none;
		border-top: 1px solid #e0cfa0;
		border-bottom: 1px solid #e0cfa0;
		padding: .4rem 0;
		text-align: center;
	}
}

/* ── REZERVACE AUTA ── */
.car-seats-wrapper {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.car-img-wrap {
	position: relative;
	display: inline-block;
	max-width: 320px;
	width: 100%;
}

.car-img {
	width: 100%;
	height: auto;
	display: block;
}

.seat {
	position: absolute;
	left: var(--sl);
	top: var(--st);
	transform: translate(-50%, -50%);
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.78);
	border: 2px dashed var(--sea-mid);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'Raleway', sans-serif;
	font-size: .68rem;
	font-weight: 700;
	color: var(--sea);
	transition: background .15s, border-color .15s, transform .1s;
	backdrop-filter: blur(3px);
	padding: 4px;
	text-align: center;
	line-height: 1.2;
	user-select: none;
	overflow: visible;
}

.seat:hover,
.seat:focus-visible {
	background: rgba(255, 255, 255, 0.95);
	border-color: var(--sea);
	transform: translate(-50%, -50%) scale(1.1);
	outline: none;
}

.seat--filled {
	background: var(--sea);
	border: 2px solid var(--sea);
	color: var(--white);
}

.seat--filled:hover,
.seat--filled:focus-visible {
	background: var(--sea-mid);
	border-color: var(--sea-mid);
}

.seat-add {
	font-size: 1.5rem;
	font-weight: 300;
	color: var(--sea-mid);
	line-height: 1;
}

.seat--filled .seat-add { display: none; }

.seat-name {
	font-size: .67rem;
	word-break: break-word;
	hyphens: auto;
}

.seat-edit-icon,
.seat-lock-icon {
	position: absolute;
	bottom: 2px;
	right: 3px;
	font-size: .55rem;
	line-height: 1;
	opacity: .75;
}

/* Moje sedačka – zelený rámeček */
.seat--mine {
	border-color: #27ae60;
	border-style: solid;
}

.seat--mine:hover,
.seat--mine:focus-visible {
	background: #219a52;
	border-color: #219a52;
}

/* Cizí obsazená sedačka – žádný hover efekt */
.seat--locked {
	opacity: .8;
}

.seat--locked:hover,
.seat--locked:focus-visible {
	background: var(--sea);
	border-color: var(--sea);
	transform: translate(-50%, -50%);
}

/* Picker popover */
.seat-picker {
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	transform: translateX(-50%);
	background: var(--white);
	border: 1.5px solid var(--sea-mid);
	border-radius: 12px;
	box-shadow: var(--shadow-hover);
	padding: .5rem;
	display: flex;
	flex-direction: column;
	gap: .25rem;
	min-width: 130px;
	z-index: 100;
}

.seat-picker-name {
	background: none;
	border: 1.5px solid transparent;
	border-radius: 8px;
	padding: .3rem .6rem;
	font-family: 'Raleway', sans-serif;
	font-size: .8rem;
	font-weight: 600;
	color: var(--text);
	cursor: pointer;
	text-align: left;
	transition: background .1s, border-color .1s;
}

.seat-picker-name:hover:not(:disabled) {
	background: var(--sand);
	border-color: var(--sea-mid);
}

.seat-picker-name--active {
	background: var(--sea);
	color: var(--white);
	border-color: var(--sea);
}

.seat-picker-name--taken {
	opacity: .4;
	cursor: not-allowed;
}

.seat-picker-sep {
	height: 1px;
	background: var(--sand-dark);
	margin: .15rem 0;
}

.seat-picker-clear {
	background: none;
	border: 1.5px solid transparent;
	border-radius: 8px;
	padding: .3rem .6rem;
	font-family: 'Raleway', sans-serif;
	font-size: .78rem;
	font-weight: 600;
	color: var(--coral);
	cursor: pointer;
	text-align: left;
	transition: background .1s, border-color .1s;
}

.seat-picker-clear:hover {
	background: #fdecea;
	border-color: var(--coral);
}

.car-seats-hint {
	font-size: .82rem;
	color: var(--text-muted);
	text-align: center;
}

/* ── PREV / NEXT PAGER ── */
.day-pager {
	background: var(--sand-dark);
	padding: 2rem 1.25rem;
}

.day-pager-inner {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.pager-card {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	padding: 1.25rem;
	background: var(--white);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	text-decoration: none;
	color: var(--text);
	transition: transform .2s, box-shadow .2s;
}

.pager-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); }

.pager-next { text-align: right; }

.pager-dir {
	font-size: .75rem;
	font-weight: 700;
	color: var(--text-muted);
	text-transform: uppercase;
	letter-spacing: .06em;
}

.pager-emoji { font-size: 1.6rem; }

.pager-title {
	font-family: 'Playfair Display', serif;
	font-size: 1rem;
	color: var(--sea);
}

/* map popup link */
.map-popup-link {
	display: inline-block;
	margin-top: .5rem;
	font-size: .82rem;
	font-weight: 700;
	color: var(--sea-mid);
	text-decoration: none;
}
.map-popup-link:hover { text-decoration: underline; }

/* ── FOOTER ── */
.site-footer {
	background: linear-gradient(135deg, #0a3d6e, #1a6fa3);
	color: rgba(255,255,255,.85);
	text-align: center;
	padding: 3rem 1rem;
}

.footer-title {
	font-family: 'Playfair Display', serif;
	font-size: 1.8rem;
	color: var(--white);
	margin-bottom: .3rem;
}

.footer-dates {
	font-size: 1.1rem;
	color: var(--aqua-light);
	margin-bottom: .3rem;
}

.footer-hotel {
	font-size: .85rem;
	color: rgba(255,255,255,.5);
}

/* ── Leaflet / Mapy.cz overrides ── */
.leaflet-popup-content-wrapper {
	border-radius: 10px !important;
	box-shadow: var(--shadow) !important;
	font-family: 'Raleway', sans-serif !important;
}

/* ── Custom map markers ── */
.custom-marker {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	box-shadow: 0 2px 8px rgba(0,0,0,.35);
	border: 2px solid var(--white);
}

.hotel-marker {
	background: var(--sea);
}

.day-marker {
	color: var(--white);
	font-size: .85rem;
}

/* ── Responsive ── */
@media (max-width: 600px) {
	.section { padding: 2.5rem 0; }

	.calendar-wrap { padding: 1rem; }
	.cal-cell { font-size: .8rem; }
	.cal-emoji { display: none; }

	.day-card-header { flex-direction: column; }
	.day-card-header, .day-card-desc, .day-card-activities { padding-left: 1.25rem; padding-right: 1.25rem; }

	.timeline { padding-left: 1.75rem; }
	.timeline-dot { left: -1.25rem; }

	#map { height: 320px; }

	.gallery-grid { grid-template-columns: repeat(2, 1fr); }
	.gallery-emoji { font-size: 2rem; }
}
