/**
 * Bäckerei Schuster – Apple-Design-Tokens & Block-Styles.
 * Wird im Editor und auf der Website geladen, damit die Blöcke auch
 * ohne das begleitende Theme korrekt aussehen.
 */
:root {
	--apple-bg-white: #FFFFFF;
	--apple-bg-dark: #1D1D1F;
	--apple-bg-light-gray: #F5F5F7;
	--apple-bg-elevated: #FBFBFD;

	--apple-text-primary: #1D1D1F;
	--apple-text-secondary: #6E6E73;
	--apple-text-tertiary: #86868B;
	--apple-text-on-dark: #F5F5F7;
	--apple-text-white: #FFFFFF;

	--apple-link-blue: #0066CC;
	--apple-link-blue-hover: #0077ED;
	--apple-accent-orange: #E85D04;

	--apple-section-gap: 100px;
	--apple-section-gap-sm: 80px;
	--apple-component-gap-sm: 16px;
	--apple-component-gap-md: 32px;
	--apple-component-gap-lg: 48px;

	--apple-card-padding: 32px;
	--apple-content-max-width: 980px;
	--apple-content-max-width-lg: 1200px;

	--apple-radius-card: 18px;
	--apple-radius-card-sm: 12px;
	--apple-radius-button: 980px;

	--apple-shadow-card: 0 2px 8px rgba(0,0,0,0.04), 0 8px 24px rgba(0,0,0,0.08);
	--apple-shadow-hover: 0 4px 12px rgba(0,0,0,0.06), 0 12px 32px rgba(0,0,0,0.12);

	--apple-gradient-bg-dark: linear-gradient(180deg, #1D1D1F 0%, #000000 100%);

	--apple-font-display: 'SF Pro Display', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
	--apple-font-text: 'SF Pro Text', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;

	--apple-leading-title: 1.1;
	--apple-leading-body: 1.53;
	--apple-tracking-title: -0.015em;

	/* Bäckerei-Akzentfarbe: warmes Brot-Orange statt des Apple-Blaus */
	--bs-accent: var(--apple-accent-orange);
	--bs-accent-hover: #C94E00;
}

.bs-content {
	width: 100%;
	max-width: var(--apple-content-max-width);
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
	box-sizing: border-box;
}
@media (min-width: 1440px) {
	.bs-content { max-width: var(--apple-content-max-width-lg); }
}
.bs-content--narrow { max-width: 680px; }

.bs-section {
	padding-top: var(--apple-section-gap-sm);
	padding-bottom: var(--apple-section-gap-sm);
}
@media (min-width: 1068px) {
	.bs-section { padding-top: var(--apple-section-gap); padding-bottom: var(--apple-section-gap); }
}

.bs-link {
	display: inline-block;
	font-family: var(--apple-font-text);
	font-size: 17px;
	font-weight: 500;
	text-decoration: none;
	padding: 12px 28px;
	border-radius: var(--apple-radius-button);
	transition: background-color .2s ease, color .2s ease, transform .2s ease;
}
.bs-link--primary { background: var(--bs-accent); color: var(--apple-text-white); }
.bs-link--primary:hover { background: var(--bs-accent-hover); transform: translateY(-1px); }
.bs-link--secondary { background: transparent; color: var(--apple-link-blue); padding-left: 8px; padding-right: 8px; }
.bs-link--secondary:hover { color: var(--apple-link-blue-hover); text-decoration: underline; }

/* Hero */
.bs-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 640px;
	background: var(--apple-gradient-bg-dark);
	background-size: cover;
	background-position: center;
	color: var(--apple-text-white);
	text-align: center;
	overflow: hidden;
}
.bs-hero--overlay::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.65) 100%);
}
.bs-hero__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--apple-component-gap-sm);
}
.bs-hero__headline {
	font-family: var(--apple-font-display);
	font-size: 48px;
	font-weight: 700;
	line-height: var(--apple-leading-title);
	letter-spacing: var(--apple-tracking-title);
	margin: 0;
}
@media (min-width: 734px) { .bs-hero__headline { font-size: 64px; } }
@media (min-width: 1068px) { .bs-hero__headline { font-size: 80px; } }
.bs-hero__subtitle {
	font-family: var(--apple-font-text);
	font-size: 24px;
	font-weight: 400;
	line-height: var(--apple-leading-body);
	color: var(--apple-text-on-dark);
	opacity: .85;
	margin: 0;
}
.bs-hero__cta {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--apple-component-gap-md);
	margin-top: var(--apple-component-gap-sm);
}

/* Sortiment-Raster */
.bs-produktgrid-section { background: var(--apple-bg-light-gray); }
.bs-produktgrid__heading {
	font-family: var(--apple-font-display);
	font-size: 32px;
	font-weight: 600;
	line-height: var(--apple-leading-title);
	text-align: center;
	color: var(--apple-text-primary);
	margin: 0 0 var(--apple-component-gap-lg) 0;
}
.bs-produktgrid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--apple-component-gap-md);
}
@media (min-width: 734px) { .bs-produktgrid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1068px) { .bs-produktgrid { grid-template-columns: repeat(4, 1fr); } }

.bs-produktkarte {
	background: var(--apple-bg-white);
	border-radius: var(--apple-radius-card);
	padding: var(--apple-card-padding);
	box-shadow: var(--apple-shadow-card);
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--apple-component-gap-sm);
	transition: box-shadow .3s ease, transform .3s ease;
}
.bs-produktkarte:hover { box-shadow: var(--apple-shadow-hover); transform: translateY(-4px); }
.bs-produktkarte__media {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	background: var(--apple-bg-light-gray);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.bs-produktkarte__media img { width: 100%; height: 100%; object-fit: cover; }
.bs-produktkarte__emoji { font-size: 44px; line-height: 1; }
.bs-produktkarte__name {
	font-family: var(--apple-font-display);
	font-size: 21px;
	font-weight: 600;
	color: var(--apple-text-primary);
	margin: 0;
}
.bs-produktkarte__tagline {
	font-family: var(--apple-font-text);
	font-size: 15px;
	line-height: var(--apple-leading-body);
	color: var(--apple-text-secondary);
	margin: 0;
}

/* Öffnungszeiten */
.bs-oeffnungszeiten-section { background: var(--apple-bg-white); }
.bs-oeffnungszeiten__heading {
	font-family: var(--apple-font-display);
	font-size: 32px;
	font-weight: 600;
	text-align: center;
	color: var(--apple-text-primary);
	margin: 0 0 var(--apple-component-gap-lg) 0;
}
.bs-oeffnungszeiten__liste { margin: 0; }
.bs-oeffnungszeiten__zeile {
	display: flex;
	justify-content: space-between;
	gap: var(--apple-component-gap-md);
	padding: 18px 0;
	border-bottom: 1px solid var(--apple-bg-light-gray);
	font-family: var(--apple-font-text);
	font-size: 19px;
}
.bs-oeffnungszeiten__zeile:last-child { border-bottom: none; }
.bs-oeffnungszeiten__zeile dt { font-weight: 500; color: var(--apple-text-primary); margin: 0; }
.bs-oeffnungszeiten__zeile dd { margin: 0; color: var(--apple-text-secondary); }
.bs-oeffnungszeiten__footnote {
	margin-top: var(--apple-component-gap-md);
	font-size: 14px;
	color: var(--apple-text-tertiary);
	text-align: center;
}

/* Standort */
.bs-standort-section { background: var(--apple-bg-light-gray); }
.bs-standort {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--apple-component-gap-lg);
	align-items: center;
}
@media (min-width: 1068px) { .bs-standort { grid-template-columns: 1fr 1.2fr; } }
.bs-standort__heading {
	font-family: var(--apple-font-display);
	font-size: 32px;
	font-weight: 600;
	color: var(--apple-text-primary);
	margin: 0 0 var(--apple-component-gap-sm) 0;
}
.bs-standort__adresse,
.bs-standort__kontakt {
	font-family: var(--apple-font-text);
	font-size: 19px;
	line-height: var(--apple-leading-body);
	color: var(--apple-text-secondary);
	font-style: normal;
	margin: 0 0 var(--apple-component-gap-sm) 0;
}
.bs-standort__kontakt a { color: var(--apple-link-blue); text-decoration: none; }
.bs-standort__kontakt a:hover { color: var(--apple-link-blue-hover); text-decoration: underline; }
.bs-standort__info .bs-link { margin-top: 8px; }
.bs-standort__karte {
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: var(--apple-radius-card);
	overflow: hidden;
	box-shadow: var(--apple-shadow-card);
}
.bs-standort__karte iframe { width: 100%; height: 100%; border: 0; }
