/* OdA — Sektionen-Builder styles (template-sections.php) */

/* ---- generic card container (Tabelle / Galerie) ---- */
.oda-card {
	background: #fff;
	border: 1px solid #e6e4e0;
	border-radius: 10px;
	padding: 32px 36px;
}
.oda-card__title { margin: 0 0 12px; }
.oda-card__intro { color: #424248; margin-bottom: 20px; max-width: 640px; }
.oda-card__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 20px;
	padding: 14px 23px;
	border-radius: 999px;
	background: #cc0000;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}
.oda-card__cta--text {
	background: none;
	color: #cc0000;
	padding: 0;
	margin-top: 16px;
}

/* ---- flexible table ---- */
.oda-table__scroll { overflow-x: auto; }
.oda-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
}
.oda-table th[scope="col"] {
	text-align: left;
	padding: 10px 14px;
	border-bottom: 1px solid #e6e4e0;
	color: #87878d;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.84px;
	text-transform: uppercase;
	white-space: nowrap;
}
.oda-table td,
.oda-table th[scope="row"] {
	text-align: left;
	padding: 14px;
	border-bottom: 1px solid #efeeec;
	color: #0f0f10;
	vertical-align: middle;
}
.oda-table__primary { font-weight: 600; }
.oda-table tr:last-child td,
.oda-table tr:last-child th { border-bottom: 0; }

/* ---- accent cards (Karten section) ---- */
.reusable-cards--sections .cards {
	display: grid;
	grid-template-columns: repeat(var(--cards-per-row, 3), 1fr);
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.card__item--accent {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 24px;
	background: #f4f4f3;
	border-radius: 10px;
	padding: 29px;
	overflow: hidden;
	min-height: 325px;
}
.card__item--accent::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 6px;
	background: var(--accent, #cc0000);
}
.card__item--accent .card__link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-weight: 600;
	text-decoration: none;
}
/* grey style: neutral bar + dark underlined link */
.reusable-cards--sections.is-style-grey .card__item--accent::after { background: #5d5d5d; }
.reusable-cards--sections.is-style-grey .card__link {
	color: #0f0f10 !important;
	text-decoration: underline;
}

/* ---- inline link card (Artikel) ---- */
.oda-link-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: #fff;
	border: 1px solid #e6e4e0;
	border-radius: 10px;
	padding: 14px 16px;
	margin: 16px 0;
	text-decoration: none;
	color: #0f0f10;
}
.oda-link-card__label { font-weight: 600; }

/* ---- gallery ---- */
.oda-gallery {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.oda-gallery__item { aspect-ratio: 1 / 1; }
.oda-gallery__link { display: block; width: 100%; height: 100%; }
.oda-gallery__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 10px;
	display: block;
}

/* ---- form ---- */
.oda-form { max-width: 720px; }
.oda-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin-bottom: 16px;
}
.oda-form__field { display: flex; flex-direction: column; gap: 6px; }
.oda-form__field--full { grid-column: 1 / -1; }
.oda-form__field span {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.84px;
	text-transform: uppercase;
	color: #87878d;
}
.oda-form__field input {
	border: 1px solid #e6e4e0;
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 14px;
	color: #0f0f10;
}
.oda-form__submit {
	margin-top: 4px;
	padding: 14px 28px;
	border: 0;
	border-radius: 999px;
	background: #cc0000;
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}

/* ---- responsive ---- */
@media (max-width: 991px) {
	.reusable-cards--sections .cards { grid-template-columns: repeat(2, 1fr); }
	.oda-gallery { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 575px) {
	.reusable-cards--sections .cards { grid-template-columns: 1fr; }
	.oda-gallery { grid-template-columns: repeat(2, 1fr); }
	.oda-card { padding: 24px 20px; }
	.oda-form__row { grid-template-columns: 1fr; }
}

/* ---- content column + stacked blocks ---- */
/* No sidebar → the content column uses the site-wide 880px measure, centered
   (matches every default-content page). Without this it floats left inside the
   full-width grid container (theme .container has no max-width below 1336px). */
.site-main--sections .col-12:not(.col-lg-8) .oda-content__main {
	max-width: 880px;
	margin-left: auto;
	margin-right: auto;
}
/* CF7 forms fill that measure — the 720px .oda-form cap is only for the static
   demo placeholder, not the real embedded forms. */
.site-main--sections .oda-form--shortcode { max-width: none; }
.oda-content__main > .oda-block + .oda-block { margin-top: 40px; }
.oda-block__title { margin: 0 0 12px; }
.oda-block__intro { color: #424248; margin-bottom: 24px; }
.oda-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 20px;
	padding: 14px 23px;
	border-radius: 999px;
	background: #cc0000;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}
.oda-cta--text { background: none; color: #cc0000; padding: 0; }

/* ---- sticky contact sidebar ---- */
.oda-content__sidebar { position: sticky; top: 24px; }

.oda-contact-card {
	position: relative;
	background: #fff;
	border: 1px solid #e6e4e0;
	border-radius: 10px;
	padding: 26px 24px;
	overflow: hidden;
}
.oda-contact-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 6px;
	background: #cc0000;
}
.oda-contact-card__header {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.84px;
	text-transform: uppercase;
	color: #87878d;
	margin-bottom: 18px;
}
.oda-contact-card__person { display: flex; align-items: center; gap: 16px; }
.oda-contact-card__avatar {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: linear-gradient(135deg, #d4d4d2 0%, #a8a8a5 100%);
	color: #fff;
	font-weight: 600;
	font-size: 22px;
	flex-shrink: 0;
}
.oda-contact-card__identity { display: flex; flex-direction: column; gap: 3px; }
.oda-contact-card__name { font-size: 18px; font-weight: 600; color: #0f0f10; }
.oda-contact-card__role {
	font-size: 12px;
	letter-spacing: 0.63px;
	text-transform: uppercase;
	color: #cc0000;
}
.oda-contact-card__desc {
	margin: 18px 0;
	padding-top: 18px;
	border-top: 1px solid #e6e4e0;
	font-size: 14px;
	line-height: 1.5;
	color: #424248;
}
.oda-contact-card__links { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.oda-contact-card__links a { color: #0f0f10; text-decoration: none; font-size: 14px; }
.oda-contact-card__button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	padding: 14px 20px;
	border: 1px solid #cc0000;
	border-radius: 999px;
	background: #fff;
	color: #0f0f10;
	font-weight: 600;
	text-decoration: none;
}

@media (max-width: 991px) {
	.oda-content__sidebar { position: static; margin-top: 32px; }
}

/* ---- accordion cards (Qualifikationsverfahren) ---- */
.qv-card {
	position: relative;
	max-width: 880px;
	margin: 0 auto 32px;
	background: #fff;
	border: 1px solid #e6e4e0;
	border-radius: 10px;
	padding: 36px;
	overflow: hidden;
}
.qv-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 6px;
	background: #cc0000;
}
.qv-card__title { margin: 0 0 24px; padding-bottom: 20px; border-bottom: 1px solid #e6e4e0; }
.qv-card__text { color: #424248; margin: 20px 0; }

.qv-accordion { border: 1px solid #e6e4e0; border-radius: 10px; margin: 0 0 8px; }
.qv-accordion summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	list-style: none;
	cursor: pointer;
	padding: 20px 24px;
	font-weight: 600;
	font-size: 18px;
	color: #0f0f10;
}
.qv-accordion summary::-webkit-details-marker { display: none; }
.qv-accordion summary::after {
	content: "";
	width: 10px;
	height: 10px;
	border-right: 2px solid #0f0f10;
	border-bottom: 2px solid #0f0f10;
	transform: rotate(45deg);
	transition: transform 0.2s ease;
	flex-shrink: 0;
}
.qv-accordion[open] summary::after { transform: rotate(-135deg); }
.qv-accordion .oda-table__scroll { padding: 0 24px 16px; }

.qv-card__logins { display: flex; flex-direction: column; gap: 12px; margin: 20px 0; }

.qv-card__contacts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid #e6e4e0;
}
.qv-contact { font-size: 14px; line-height: 1.6; color: #424248; }

@media (max-width: 575px) {
	.qv-card { padding: 24px 20px; }
	.qv-card__contacts { grid-template-columns: 1fr; }
}

/* ---- Contact Form 7 (oda-cf7) ---- */
.oda-form--shortcode .wpcf7-form { margin: 0; }
.oda-cf7 p { margin: 0 0 16px; }
.oda-cf7 input[type="text"],
.oda-cf7 input[type="email"],
.oda-cf7 input[type="tel"],
.oda-cf7 input[type="date"],
.oda-cf7 input[type="time"],
.oda-cf7 input[type="number"],
.oda-cf7 select,
.oda-cf7 textarea {
	width: 100%;
	border: 1px solid #e6e4e0;
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 14px;
	color: #0f0f10;
	background: #fff;
}
.oda-cf7 .wpcf7-form-control-wrap { display: block; }
.oda-cf7 .oda-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.oda-cf7 .oda-form__row > .wpcf7-form-control-wrap,
.oda-cf7 .oda-form__row > p { margin: 0; }
.oda-cf7 .oda-form__row--doc { grid-template-columns: 1fr 130px; align-items: end; }
.oda-cf7 .oda-form__field { margin: 0 0 16px; }
.oda-cf7 .oda-form__field > label { display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.84px; text-transform: uppercase; color: #87878d; margin-bottom: 6px; }
.oda-cf7 .oda-form__help { font-size: 12px; color: #87878d; margin: -8px 0 16px; }
.oda-cf7 fieldset { border: 0; padding: 0; margin: 0 0 28px; }
.oda-cf7 legend { width: 100%; padding: 0 0 8px; margin-bottom: 16px; border-bottom: 1px solid #e6e4e0; font-size: 12px; font-weight: 600; letter-spacing: 0.84px; text-transform: uppercase; color: #87878d; }
.oda-cf7 .wpcf7-submit,
.oda-cf7 input.oda-form__submit {
	margin-top: 4px;
	padding: 14px 28px;
	border: 0;
	border-radius: 999px;
	background: #cc0000;
	color: #fff;
	font-weight: 600;
	cursor: pointer;
}
.oda-cf7 .wpcf7-response-output { margin: 16px 0 0; border-radius: 8px; }

/* choice groups */
.oda-form__choices .wpcf7-form-control { display: flex; flex-wrap: wrap; gap: 8px; }
.oda-form__choices .wpcf7-list-item { margin: 0; }
.oda-form__choices--pills .wpcf7-list-item label { display: inline-flex; align-items: center; padding: 8px 16px; border: 1px solid #e6e4e0; border-radius: 999px; cursor: pointer; font-size: 14px; }
.oda-form__choices--pills .wpcf7-list-item input { position: absolute; opacity: 0; width: 0; height: 0; }
.oda-form__choices--pills .wpcf7-list-item label:has(input:checked) { border-color: #cc0000; color: #cc0000; }
.oda-form__choices:not(.oda-form__choices--pills) .wpcf7-form-control { flex-direction: column; gap: 12px; }
.oda-form__choices:not(.oda-form__choices--pills) .wpcf7-list-item label { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: #424248; }

/* Dokumentbestellung: extra document rows revealed via the "+" button. */
.oda-cf7 .oda-form__docrow--extra[hidden] { display: none; }
.oda-form__addrow {
	appearance: none;
	border: 1px dashed #cc0000;
	background: transparent;
	color: #cc0000;
	border-radius: 999px;
	padding: 10px 18px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	margin-bottom: 16px;
}
.oda-form__addrow[hidden] { display: none; }
