/*
	Theme Name: Café del Sur
	Theme URI: https://cafedelsur.wien
	Description: Café del Sur – Kaffeehaus & Kaffee-Boutique. Kindtheme von Hello Elementor, gebaut für die vollständige Bearbeitung aller Texte und Bilder mit Elementor.
	Author: Café del Sur
	Template: hello-elementor
	Version: 1.1.2
	Text Domain: cafedelsur
*/

:root {
	--cds-bg: #F4F0E6;
	--cds-text: #23281D;
	--cds-text-soft: rgba(35, 40, 29, .78);
	--cds-accent: #9A6B3F;
	--cds-green: #3D4A31;
	--cds-cream-btn: #F4F0E6;
	--cds-light-bg: #E8E1D1;
	--cds-footer-bg: #1B1F16;
	--cds-heading-font: 'EB Garamond', serif;
	--cds-body-font: 'Jost', system-ui, sans-serif;
}

html {
	scroll-behavior: smooth;
}

body {
	background: var(--cds-bg) !important;
	color: var(--cds-text);
	font-family: var(--cds-body-font);
	-webkit-font-smoothing: antialiased;
}

a {
	color: var(--cds-accent);
	text-decoration: none;
}

a:hover {
	color: var(--cds-green);
}

/* ---------- Site header ---------- */
.cds-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 999;
	background: rgba(244, 240, 230, .9);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(35, 40, 29, .12);
}

.cds-header__row {
	max-width: 1440px;
	margin: 0 auto;
	padding: 14px clamp(18px, 4vw, 52px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.cds-header__brand {
	display: flex;
	align-items: center;
	gap: 12px;
	color: var(--cds-text);
}

.cds-header__brand img {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
	mix-blend-mode: multiply;
	display: block;
}

.cds-header__sitename {
	/* Placeholder until the logo's exact font is identified — Playfair
	   Display (bundled, weight 600, the boldest cut we have) is closer to
	   the logo's bold, high-contrast look than the site's usual heading
	   font (EB Garamond). Swap this out once the real font is known. */
	font-family: 'Playfair Display', var(--cds-heading-font);
	font-weight: 600;
	font-size: 19px;
	letter-spacing: .14em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--cds-text);
}

.cds-header__nav {
	display: flex;
	align-items: center;
	gap: clamp(14px, 2vw, 30px);
}

.cds-header__links ul {
	display: flex;
	align-items: center;
	gap: clamp(14px, 2vw, 26px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.cds-header__links a {
	font-size: 13.5px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--cds-green);
	padding: 6px 0;
	border-bottom: 1px solid transparent;
	display: inline-block;
}

.cds-header__links a:hover,
.cds-header__links .current-menu-item > a {
	color: var(--cds-text);
	border-bottom-color: rgba(35, 40, 29, .4);
}

.cds-header__icon,
.cds-header__phone {
	color: var(--cds-green);
}

.cds-header__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
}

.cds-header__icon:hover {
	color: var(--cds-text);
	background: rgba(35, 40, 29, .07);
}

.cds-header__phone {
	font-size: 14px;
	letter-spacing: .06em;
	white-space: nowrap;
}

.cds-header__toggle {
	display: none !important;
	width: 42px !important;
	height: 42px !important;
	min-width: 0 !important;
	border: 1px solid rgba(35, 40, 29, .25) !important;
	background: transparent !important;
	background-color: transparent !important;
	color: transparent !important;
	border-radius: 50% !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 4px !important;
	cursor: pointer !important;
	padding: 0 !important;
	box-shadow: none !important;
}

.cds-header__toggle span {
	display: block !important;
	width: 16px !important;
	height: 1px !important;
	background: var(--cds-text) !important;
}

.cds-header__mobile {
	display: none;
	border-top: 1px solid rgba(35, 40, 29, .12);
	padding: 10px clamp(18px, 4vw, 52px) 26px;
	background: var(--cds-bg);
	overflow-y: auto;
}

.cds-header__mobile ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.cds-header__mobile a {
	display: block;
	text-align: left;
	border-bottom: 1px solid rgba(35, 40, 29, .08);
	padding: 11px 0;
	font-family: var(--cds-heading-font);
	font-size: 26px;
	color: var(--cds-text);
}

@media (max-width: 880px) {
	.cds-header__links,
	.cds-header__phone {
		display: none;
	}
	.cds-header__toggle {
		display: flex !important;
	}
	.cds-header.is-open {
		display: flex;
		flex-direction: column;
		height: 100dvh;
	}
	.cds-header.is-open .cds-header__mobile {
		display: block;
		flex: 1;
	}
}

/* Hide Hello Elementor's own default footer markup — our custom one
   (below) replaces it. Both used id="site-footer" which also collided;
   ours is now #cds-footer. */
#site-footer.site-footer {
	display: none;
}

/* ---------- "Besuchen" block (template-parts/besuchen.php) ---------- */
.cds-besuchen {
	background: var(--cds-text);
	color: #F4F0E6;
	font-family: var(--cds-body-font);
	padding: 132px 20px;
}
.cds-besuchen__inner {
	max-width: 1180px;
	margin: 0 auto;
}
.cds-besuchen__eyebrow-row {
	display: flex;
	align-items: center;
	gap: 16px;
	padding-bottom: 44px;
}
.cds-besuchen__rule {
	flex: 1 1 auto;
	height: 1px;
	background: rgba(244, 240, 230, .22);
}
.cds-besuchen__eyebrow {
	font-size: 12px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(244, 240, 230, .6);
	white-space: nowrap;
}
.cds-besuchen__cols {
	display: flex;
	gap: 64px;
	align-items: center;
}
.cds-besuchen__col {
	flex: 1 1 50%;
	min-width: 0;
}
.cds-besuchen__heading {
	margin: 0 0 18px;
	font-family: var(--cds-heading-font);
	font-weight: 400;
	font-size: clamp(35px, 5vw, 76px);
	line-height: 1;
	letter-spacing: -.02em;
	color: #F4F0E6;
}
.cds-besuchen__hours {
	margin-top: 38px;
}
.cds-besuchen__hours-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 20px;
	padding: 16px 0;
	border-bottom: 1px solid rgba(244, 240, 230, .18);
}
.cds-besuchen__hours-row:last-child {
	border-bottom: none;
}
.cds-besuchen__hours-label {
	font-size: 12px;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: rgba(244, 240, 230, .6);
}
.cds-besuchen__hours-value {
	font-family: var(--cds-heading-font);
	font-size: 21px;
	color: #F4F0E6;
}
.cds-besuchen__note {
	margin: 22px 0 0;
	font-size: 13.5px;
	line-height: 1.6;
	font-weight: 300;
	color: rgba(244, 240, 230, .6);
	max-width: 46ch;
}
.cds-besuchen__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 30px;
}
.cds-btn {
	padding: 14px 28px;
	border-radius: 999px;
	font-family: var(--cds-body-font);
	font-size: 13px;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	display: inline-block;
}
.cds-btn--solid {
	background: #F4F0E6;
	color: var(--cds-text);
}
.cds-btn--solid:hover {
	background: var(--cds-light-bg);
	color: var(--cds-text);
}
.cds-btn--outline {
	border: 1px solid rgba(244, 240, 230, .4);
	color: #F4F0E6;
}
.cds-btn--outline:hover {
	border-color: #F4F0E6;
	color: #F4F0E6;
}
#cds-map {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	border: 1px solid rgba(244, 240, 230, .2);
	background: #1E2318;
	isolation: isolate;
	z-index: 0;
}
#cds-map .leaflet-control-attribution {
	background: rgba(30, 35, 24, .7) !important;
	color: rgba(244, 240, 230, .55) !important;
	font-size: 10px !important;
}
#cds-map .leaflet-control-attribution a {
	color: rgba(244, 240, 230, .75) !important;
}
#cds-map .leaflet-control-zoom a {
	background: #2E3626 !important;
	color: #F4F0E6 !important;
	border-color: rgba(244, 240, 230, .2) !important;
}
#cds-map .leaflet-control-zoom a:hover {
	background: #3D4A31 !important;
}
.cds-besuchen__map-link {
	margin: 8px 0 0;
	font-size: 12px;
	color: rgba(244, 240, 230, .5);
}
.cds-besuchen__map-link a {
	color: inherit;
	text-decoration: underline;
}
@media (max-width: 880px) {
	.cds-besuchen__cols {
		flex-direction: column;
		align-items: stretch;
	}
}

/* ---------- Site footer (template-parts/footer.php) ---------- */
.cds-footer {
	background: var(--cds-footer-bg);
	color: rgba(244, 240, 230, .85);
	font-family: var(--cds-body-font);
	padding: 80px 20px 40px;
}
.cds-footer__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 32px 64px;
	padding-bottom: 44px;
	border-bottom: 1px solid rgba(244, 240, 230, .15);
	max-width: 1180px;
	margin: 0 auto;
}
.cds-footer__brand {
	display: flex;
	flex-direction: column;
	gap: 14px;
	max-width: 280px;
}
.cds-footer__logo {
	width: 78px;
	height: 78px;
	border-radius: 50%;
	object-fit: cover;
}
.cds-footer__tagline {
	margin: 0;
	font-size: 15px;
	line-height: 1.7;
	font-weight: 300;
	color: rgba(244, 240, 230, .75);
}
.cds-footer__col {
	display: flex;
	flex-direction: column;
	gap: 9px;
}
.cds-footer__label {
	font-size: 11.5px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: rgba(244, 240, 230, .5);
}
.cds-footer__col a {
	font-size: 15.5px;
	font-weight: 300;
	color: rgba(244, 240, 230, .8);
	text-decoration: none;
}
.cds-footer__col a:hover {
	color: #F4F0E6;
	text-decoration: underline;
}
.cds-footer__muted {
	font-size: 15.5px;
	font-weight: 300;
	color: rgba(244, 240, 230, .55);
}
.cds-footer__bottom {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 14px 20px;
	padding-top: 24px;
	max-width: 1180px;
	margin: 0 auto;
	font-size: 12.5px;
	font-weight: 300;
}
.cds-footer__copyright {
	color: rgba(244, 240, 230, .45);
}
.cds-footer__legal a {
	color: rgba(244, 240, 230, .55);
	text-decoration: none;
	margin-left: 20px;
}
.cds-footer__legal a:first-child {
	margin-left: 0;
}
.cds-footer__legal a:hover {
	color: #F4F0E6;
	text-decoration: underline;
}
