/*
Theme Name:  Law Office Child
Template:    law-office
Description: Child theme for Law Office. All site-specific changes to the theme go here, so updates of the parent theme cannot overwrite them.
Version:     1.0.0
Text Domain: law-office-child
*/

/* Custom styles. The parent theme loads this file after all of its own styles. */


/* Beratung vereinbaren (homepage section #beratung, shortcode [lk_beratung])
-------------------------------------------------------------- */
/* The slider sets pointer-events: none inline on layers without an action; js/beratung.js
   handles the click on the "Beratung vereinbaren" button. */
.sldr-button {
	cursor: pointer;
	pointer-events: auto !important;
}

/* Name box on the portrait */
.lk-role {
	display: block;
	margin-top: 0.7em;
	font-family: var(--theme-font-p_font-family);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.4;
	text-transform: uppercase;
	opacity: 0.85;
}

/* How it works: 1 Termin wählen, 2 Angaben ergänzen, 3 Bestätigung per E-Mail */
.lk-booking__steps {
	display: flex;
	flex-wrap: wrap;
	gap: 0.8em 2.4em;
	margin: 0 0 2.4em;
	padding: 0;
	list-style: none;
	font-family: var(--theme-font-button_font-family);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--theme-color-text_dark);
}
.lk-booking__steps li {
	display: flex;
	align-items: center;
	gap: 0.9em;
	margin: 0;
	padding: 0;
}
.lk-booking__steps li:before {
	display: none;
}
.lk-booking__steps span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.6em;
	height: 2.6em;
	border: 1px solid var(--theme-color-text_link);
	border-radius: 50%;
	color: var(--theme-color-text_link);
	letter-spacing: 0;
}
/* Type of consultation above the calendar (js/booking-form.js) */
.lk-booking__type {
	min-width: 0;
	margin: 0 0 2em;
	padding: 0;
	border: 0;
}
.lk-booking__type-title {
	margin: 0 0 0.9em;
	padding: 0;
	font-family: var(--theme-font-button_font-family);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--theme-color-text_dark);
}
.lk-booking__type-options {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.lk-booking__type-option {
	position: relative;
	margin: 0;
	cursor: pointer;
}
.lk-booking__type-option input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.lk-booking__type-option span {
	display: inline-flex;
	align-items: center;
	gap: 0.65em;
	padding: 0.75em 1.3em;
	border: 1px solid var(--theme-color-bd_color);
	background-color: #fff;
	font-size: 15px;
	line-height: 1.3;
	color: var(--theme-color-text_dark);
	transition: border-color 0.25s ease, background-color 0.25s ease;
}
.lk-booking__type-option span:before { /* the radio button */
	content: "";
	flex: none;
	width: 14px;
	height: 14px;
	border: 1px solid var(--theme-color-text_link);
	border-radius: 50%;
	box-shadow: inset 0 0 0 3px #fff;
	background-color: #fff;
}
.lk-booking__type-option:hover span,
.lk-booking__type-option input:checked + span {
	border-color: var(--theme-color-text_link);
}
.lk-booking__type-option input:checked + span:before {
	background-color: var(--theme-color-text_link);
}
.lk-booking__type-option input:focus-visible + span {
	outline: 2px solid var(--theme-color-text_link);
	outline-offset: 2px;
}
.lk-booking__type-note {
	margin: 0.9em 0 0;
	font-size: 13px;
	font-style: italic;
	line-height: 1.55;
}
/* Days not bookable for the chosen type: Saturdays only for home visits, weekdays not for them.
   They look like QuickCal's days without free times (.prev-date). */
.lk-booking:not(.lk-booking--hausbesuch) .booked-calendar .bc-body .bc-row.week .bc-col:nth-child(6),
.lk-booking--hausbesuch .booked-calendar .bc-body .bc-row.week .bc-col:not(:nth-child(6)) {
	pointer-events: none;
}
body .lk-booking:not(.lk-booking--hausbesuch) div.booked-calendar-wrap div.booked-calendar .bc-body .bc-row.week div.bc-col:nth-child(6) .date,
body .lk-booking--hausbesuch div.booked-calendar-wrap div.booked-calendar .bc-body .bc-row.week div.bc-col:not(:nth-child(6)) .date {
	background-color: #fff;
}
.lk-booking:not(.lk-booking--hausbesuch) .booked-calendar .bc-body .bc-row.week .bc-col:nth-child(6) .date .number,
.lk-booking--hausbesuch .booked-calendar .bc-body .bc-row.week .bc-col:not(:nth-child(6)) .date .number {
	color: #b9b9b4 !important;
}

/* Calendar: flat day cells. QuickCal's script makes every day as tall as it is wide, and does it
   again when a day is clicked; a fixed height keeps them flat, so only the time list opens. */
.lk-booking .booked-calendar .bc-body .bc-row.week .bc-col {
	height: 60px !important;
}
.lk-booking .booked-calendar .bc-body .bc-row.week .bc-col .date,
.lk-booking .booked-calendar .bc-body .bc-row.week .bc-col .date .number {
	line-height: 60px !important;
}
/* The script also fixes the calendar's height and animates it; let it follow its content, so the
   opened time list can never run into the footer. */
.lk-booking .booked-calendar-wrap {
	height: auto !important;
}

/* Time list of a day: a slim panel with the times as tiles in a grid (instead of one tall row
   with a big button per time). The tile is QuickCal's own button, so booking works unchanged.
   The selectors repeat the theme's own ones (plus .lk-booking) so they win over them. */
body .lk-booking div.booked-calendar-wrap div.booked-calendar .bc-body .bc-row.entryBlock .bc-col {
	border: 1px solid var(--theme-color-bd_color);
	border-top: 3px solid var(--theme-color-text_link);
	background-color: #fff; /* like the calendar's day cells (the scheme's bg colour is sage here) */
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list {
	display: grid !important; /* QuickCal fades the list in with display: block */
	grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
	gap: 10px;
	max-height: none; /* QuickCal limits the list to 300px on phones and scrolls it */
	overflow: visible;
	padding: 24px 24px 26px;
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list h2 {
	grid-column: 1 / -1;
	margin: 0 0 8px;
	font-size: 18px;
	line-height: 1.3;
	text-align: left;
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot-time {
	display: none; /* the button shows the time itself */
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot-people {
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot .timeslot-people button.button {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	width: 100%;
	margin: 0;
	padding: 0.8em 0.6em;
	border: 1px solid transparent;
	border-radius: 0;
	background: #f1f5ed !important; /* the section's sage; the theme sets the button colours with !important */
	color: var(--theme-color-text_dark) !important;
	font-family: var(--theme-font-p_font-family);
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.3;
	text-transform: none;
	white-space: nowrap;
	transition: all 0.25s ease;
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot .timeslot-people button.button:before {
	content: "\e85c"; /* clock, from the theme's icon font */
	font-family: "fontello";
	font-size: 15px;
	color: var(--theme-color-text_link);
	transition: color 0.25s ease;
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot .timeslot-people button.button .button-timeslot {
	display: inline !important;
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot .timeslot-people button.button .button-text {
	/* "Termin anfragen": hidden on screen, still read by screen readers */
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot .timeslot-people button.button:hover,
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot .timeslot-people button.button:focus-visible {
	border-color: var(--theme-color-text_link);
	background: var(--theme-color-text_link) !important;
	color: #fff !important;
}
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot .timeslot-people button.button:hover:before,
body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot .timeslot-people button.button:focus-visible:before {
	color: #fff;
}

/* Attachments: upload field of the contact form and of the booking form (js/attachments.js)
-------------------------------------------------------------- */
.lk-attach {
	position: relative;
	text-align: left;
}
.lk-attach__intro {
	margin: 0 0 1em;
	color: var(--theme-color-text_dark);
}
/* The input is hidden; the zone is its label and shows the focus. */
.lk-attach input[type="file"] {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	opacity: 0;
}
.lk-attach .lk-attach__zone {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.35em;
	margin: 0;
	padding: 1.5em 1.2em 1.4em;
	border: 1px dashed var(--theme-color-text_link);
	background-color: rgba(255, 255, 255, 0.55);
	text-align: center;
	cursor: pointer;
	transition: background-color 0.25s ease, border-color 0.25s ease;
}
.lk-attach .lk-attach__zone:before {
	content: "\e841"; /* paper clip, from the theme's icon font */
	font-family: "fontello";
	font-size: 22px;
	line-height: 1;
	color: var(--theme-color-text_link);
}
.lk-attach .lk-attach__zone:hover,
.lk-attach--over .lk-attach__zone,
.lk-attach:focus-within .lk-attach__zone {
	border-style: solid;
	background-color: #f1f5ed;
}
.lk-attach__choose {
	font-family: var(--theme-font-button_font-family);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--theme-color-text_dark);
}
.lk-attach__hint {
	font-size: 13px;
	line-height: 1.5;
	color: var(--theme-color-text_light);
}
.lk-attach .lk-attach__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.lk-attach .lk-attach__list li {
	display: flex;
	align-items: center;
	gap: 0.8em;
	margin: 0;
	padding: 0.55em 0;
	border-bottom: 1px solid var(--theme-color-bd_color);
	font-size: 14px;
	line-height: 1.4;
}
.lk-attach .lk-attach__list li:before {
	content: "\e84b"; /* document */
	position: static;
	flex: none;
	font-family: "fontello";
	color: var(--theme-color-text_link);
}
.lk-attach__name {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: var(--theme-color-text_dark);
}
.lk-attach__size {
	white-space: nowrap;
	color: var(--theme-color-text_light);
}
.lk-attach .lk-attach__list .lk-attach__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 28px;
	height: 28px;
	margin: 0 -4px 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none !important; /* the theme gives every button its colours with !important */
	color: var(--theme-color-text_light) !important;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
}
.lk-attach .lk-attach__list .lk-attach__remove:before {
	content: "\00d7";
}
.lk-attach .lk-attach__list .lk-attach__remove:hover,
.lk-attach .lk-attach__list .lk-attach__remove:focus-visible {
	color: var(--theme-color-text_link) !important;
}
.lk-attach__status p {
	margin: 0.6em 0 0;
	font-size: 13px;
	line-height: 1.5;
}
.lk-attach__summary {
	color: var(--theme-color-text_light);
}
.lk-attach .lk-attach__error {
	color: #b3261e;
}
.wpcf7 .lk-attach > p:not([class]) { /* the paragraph Contact Form 7 puts around the field */
	margin: 0;
}
/* Booking form: QuickCal's modal indents lists and enlarges paragraphs */
.booked-modal .lk-attach .lk-attach__list {
	margin: 0;
}
.booked-modal .lk-attach .lk-attach__intro {
	font-size: 14px;
}
.booked-modal .lk-attach .lk-attach__status p {
	font-size: 13px;
}

/* Booking form: QuickCal's modal, arranged by js/booking-form.js (.lk-modal)
-------------------------------------------------------------- */
/* In the middle of the screen: QuickCal places the modal with a margin it computes for its own
   one-column form (and sets it on the element, hence !important). */
body .booked-modal {
	top: 0 !important;
	bottom: 0 !important;
	margin-top: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
}
/* No asterisks at the required fields */
body .booked-modal.lk-modal .required-asterisk {
	display: none !important;
}
body .booked-modal.lk-modal .bm-window .booked-form #newAppointmentForm .field { /* the theme's rule has the id too */
	margin: 0 0 12px;
}
body .booked-modal.lk-modal .bm-window .booked-form .field-label {
	display: block;
	margin: 0 0 5px;
	font-size: 16px;
	line-height: 1.3;
}
/* The headings of the fields are placeholders now; they stay for screen readers only. */
body .booked-modal.lk-modal .bm-window .booked-form .field-label.lk-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}
body .booked-modal.lk-modal .bm-window .booked-form p.field-small-p {
	margin: 0 0 6px;
	font-size: 14px;
	line-height: 1.4;
}
/* Text fields as boxes, so each one is recognisable as a field */
body .booked-modal.lk-modal .bm-window .booked-form .field input[type="text"],
body .booked-modal.lk-modal .bm-window .booked-form .field input[type="email"],
body .booked-modal.lk-modal .bm-window .booked-form .field textarea {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	padding: 9px 12px;
	border: 1px solid var(--theme-color-bd_color);
	border-radius: 0;
	background-color: #fff;
	font-size: 15px;
	line-height: 1.4;
}
body .booked-modal.lk-modal .bm-window .booked-form .field input[type="text"] + input,
body .booked-modal.lk-modal .bm-window .booked-form .field input[type="email"] + input {
	margin-top: 12px; /* like the space between the fields */
}
body .booked-modal.lk-modal .bm-window .booked-form .field textarea {
	height: 112px;
	min-height: 0;
	resize: vertical;
}
body .booked-modal.lk-modal .bm-window .booked-form .field input[type="text"]:focus,
body .booked-modal.lk-modal .bm-window .booked-form .field input[type="email"]:focus,
body .booked-modal.lk-modal .bm-window .booked-form .field textarea:focus {
	border-color: var(--theme-color-text_link);
}
/* Required fields left empty when sending */
body .booked-modal.lk-modal .bm-window .booked-form .field input.lk-missing,
body .booked-modal.lk-modal .bm-window .booked-form .field textarea.lk-missing {
	border-color: #b3261e;
}
body .booked-modal.lk-modal .bm-window .booked-form .field.lk-missing .checkbox-radio-block label {
	color: #b3261e;
}
/* Type of consultation: the options side by side, below the question */
body .booked-modal.lk-modal .bm-window .booked-form .field.lk-type {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 6px 22px;
}
body .booked-modal.lk-modal .bm-window .booked-form .lk-type > .field-label {
	flex: 0 0 100%;
}
body .booked-modal.lk-modal .bm-window .booked-form .lk-type .checkbox-radio-block {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	width: auto;
	margin: 0;
}
body .booked-modal.lk-modal .lk-type .lk-off {
	opacity: 0.4;
}
body .booked-modal.lk-modal .lk-type .lk-off label {
	cursor: not-allowed;
}
/* Consent: no heading; the link to the privacy policy right below, in line with its text */
body .booked-modal.lk-modal .bm-window .booked-form .lk-consent > .field-label {
	display: none;
}
body .booked-modal.lk-modal .bm-window .booked-form #newAppointmentForm .field.lk-consent {
	margin-bottom: 2px;
}
body .booked-modal.lk-modal .bm-window .booked-form .lk-consent-note p {
	margin: 0 0 14px 24px;
	font-size: 13px;
	font-style: italic;
	line-height: 1.5;
}
/* Documents: a smaller zone */
body .booked-modal.lk-modal .lk-attach .lk-attach__zone {
	padding: 0.9em 1em;
}
body .booked-modal.lk-modal .bm-window .booked-form .lk-attach__intro {
	margin-bottom: 8px;
	font-size: 13px;
	line-height: 1.45;
}
body .booked-modal.lk-modal .lk-attach__hint {
	font-size: 12px;
}
/* Two columns on wider screens, so the whole form fits on the screen */
@media (min-width: 900px) {
	body .booked-modal.lk-modal .bm-window {
		width: min(980px, calc(100vw - 48px));
	}
	body .booked-modal.lk-modal .lk-form-cols {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 0 40px;
		align-items: start;
	}
}

/* Confirmation after sending a booking request (js/booking-form.js) */
.lk-confirm {
	width: calc(100% - 32px);
	max-width: 460px;
	padding: 42px 36px 36px;
	border: 0;
	border-top: 3px solid var(--theme-color-text_link);
	background-color: #fff;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
	color: var(--theme-color-text);
	text-align: center;
}
.lk-confirm::backdrop {
	background-color: rgba(30, 30, 20, 0.6);
}
.lk-confirm .lk-confirm__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 58px;
	height: 58px;
	margin: 0 auto 20px;
	border: 1px solid var(--theme-color-text_link);
	border-radius: 50%;
	color: var(--theme-color-text_link);
	font-size: 26px;
	line-height: 1;
}
.lk-confirm .lk-confirm__icon:before {
	content: "\2713";
}
.lk-confirm .lk-confirm__title {
	margin: 0 0 0.6em;
	font-size: 26px;
	line-height: 1.2;
}
.lk-confirm p {
	margin: 0 0 0.8em;
	font-size: 15px;
	line-height: 1.55;
}
.lk-confirm .lk-confirm__when {
	color: var(--theme-color-text_dark);
	font-weight: 700;
}
.lk-confirm .lk-confirm__when:empty {
	display: none;
}
.lk-confirm .lk-confirm__small {
	font-size: 13px;
	color: var(--theme-color-text_light);
}
.lk-confirm .lk-confirm__close {
	margin-top: 1em;
	padding: 1.2em 2.8em;
	border: 0;
	border-radius: 0;
	background-color: var(--theme-color-text_link) !important; /* the theme colours every button with !important */
	color: #fff !important;
	font-family: var(--theme-font-button_font-family);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.5;
	text-transform: uppercase;
	cursor: pointer;
}
.lk-confirm .lk-confirm__close:hover,
.lk-confirm .lk-confirm__close:focus-visible {
	background-color: var(--theme-color-text_hover) !important;
}

/* Google map: notice shown instead of the map until the visitor loads it (js/map-consent.js) */
.sc_googlemap {
	position: relative;
}
.lk-map-consent {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 30px 20px;
	background-color: var(--theme-color-alter_bg_color);
	text-align: center;
}
/* A white card with the office's address, like the time list of the booking calendar */
.lk-map-consent__box {
	width: 100%;
	max-width: 540px;
	padding: 42px 48px 38px;
	border-top: 3px solid var(--theme-color-text_link);
	background-color: #fff;
	box-shadow: 0 18px 50px rgba(30, 30, 20, 0.08);
}
.lk-map-consent__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: 0 0 16px;
	border: 1px solid var(--theme-color-text_link);
	border-radius: 50%;
	color: var(--theme-color-text_link);
	font-size: 20px;
	line-height: 1;
}
.lk-map-consent__icon:before {
	content: "\e9d2"; /* location marker, as in the contact details */
	font-family: "fontello";
}
.lk-map-consent .lk-map-consent__label {
	margin: 0 0 0.6em;
	font-family: var(--theme-font-button_font-family);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--theme-color-text_link);
}
.lk-map-consent .lk-map-consent__address {
	margin: 0;
	font-family: var(--theme-font-h2_font-family);
	font-size: 30px;
	line-height: 1.25;
	color: var(--theme-color-text_dark);
}
.lk-map-consent__address:after { /* a short line between the address and the map's part */
	content: "";
	display: block;
	width: 44px;
	height: 1px;
	margin: 24px auto 22px;
	background-color: var(--theme-color-text_link);
}
.lk-map-consent .lk-map-consent__title {
	margin: 0 0 0.35em;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--theme-color-text_dark);
}
.lk-map-consent .lk-map-consent__text {
	margin: 0 0 1.5em;
	font-size: 14px;
	line-height: 1.6;
}
.lk-map-consent__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 14px 26px;
}
.lk-map-consent__button {
	display: inline-block;
	padding: 1.2em 2.8em;
	border: 0;
	border-radius: 0;
	background-color: var(--theme-color-text_link);
	color: #fff;
	font-family: var(--theme-font-button_font-family);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 2px;
	line-height: 1.5;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color 0.3s ease;
}
.lk-map-consent__button:hover,
.lk-map-consent__button:focus-visible {
	background-color: var(--theme-color-text_hover);
	color: #fff;
}
.lk-map-consent__link {
	font-size: 14px;
}
/* Below 1280px the theme makes the map lower than the card (at most 60, 50 or 40% of the
   window's height): there the card takes the map's place until the map is loaded. */
@media (max-width: 1279px) {
	.sc_googlemap:has(.lk-map-consent) {
		height: auto !important;
		max-height: none;
	}
	.sc_googlemap:has(.lk-map-consent) iframe {
		display: none;
	}
	.lk-map-consent {
		position: relative;
		inset: auto;
		padding: 50px 20px;
	}
}

@media (max-width: 767px) {
	.lk-booking__steps {
		gap: 0.8em 1.4em;
		font-size: 11px;
	}
	.lk-booking .booked-calendar .bc-body .bc-row.week .bc-col {
		height: 44px !important;
	}
	.lk-booking .booked-calendar .bc-body .bc-row.week .bc-col .date,
	.lk-booking .booked-calendar .bc-body .bc-row.week .bc-col .date .number {
		line-height: 44px !important;
	}
	body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list {
		grid-template-columns: repeat(2, 1fr);
		gap: 8px;
		padding: 18px 16px 20px;
	}
	body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list h2 {
		font-size: 16px;
	}
	body .lk-booking div.booked-calendar-wrap div.booked-calendar .booked-appt-list .timeslot .timeslot-people button.button {
		font-size: 14px;
	}
	.lk-map-consent {
		padding: 24px 0;
	}
	.lk-map-consent__box {
		padding: 30px 22px 28px;
	}
	.lk-map-consent__icon {
		width: 46px;
		height: 46px;
		margin-bottom: 14px;
		font-size: 18px;
	}
	.lk-map-consent .lk-map-consent__address {
		font-size: 24px;
	}
	.lk-map-consent__address:after {
		margin: 20px auto 18px;
	}
}

/* Anchor /#beratung: on the booking form, with some space above it
-------------------------------------------------------------- */
#beratung {
	scroll-margin-top: 24px;
}
/* Two columns: the section's heading stands next to the form's top, so keep it in view too */
@media (min-width: 1025px) {
	#beratung {
		scroll-margin-top: 150px;
	}
}

/* Homepage: "Sie haben eine Frage?" is an h2 (the page's h1 comes from kanzlei-seo.php)
   but keeps the size of an h1
-------------------------------------------------------------- */
.elementor-element-c4edfc9 .sc_item_title {
	margin-top: 0 !important; /* the theme adds a margin to h2 titles below a subtitle */
	font-size: var(--theme-font-h1_font-size);
	line-height: var(--theme-font-h1_line-height);
	letter-spacing: var(--theme-font-h1_letter-spacing);
}
@media (max-width: 1279px) {
	.elementor-element-c4edfc9 .sc_item_title {
		font-size: 46px;
	}
}
@media (max-width: 1023px) {
	.elementor-element-c4edfc9 .sc_item_title {
		font-size: 38px;
		line-height: 42px;
	}
}
@media (max-width: 767px) {
	.elementor-element-c4edfc9 .sc_item_title {
		font-size: 30px;
		line-height: 35px;
		letter-spacing: -1px;
	}
}
@media (max-width: 479px) {
	.elementor-element-c4edfc9 .sc_item_title {
		font-size: 26px;
		line-height: 30px;
		letter-spacing: 0;
	}
}

/* Booking form: asterisk of required fields without Font Awesome (not loaded, see functions.php)
-------------------------------------------------------------- */
.required-asterisk.fa-asterisk:before {
	content: "*";
	font-family: inherit;
	font-weight: 700;
}

/* Mobile menu: the X is only 17 px wide, make it easy to hit with a finger
-------------------------------------------------------------- */
.menu_mobile .menu_mobile_close:after {
	content: "";
	position: absolute;
	top: -14px;
	right: -14px;
	bottom: -14px;
	left: -14px;
}

/* Service pages: button to the booking section (shortcode [lk_termin_button], /#beratung),
   in the text and in the sidebar (widget text-2)
-------------------------------------------------------------- */
a.lk-termin-button,
.post_content a.lk-termin-button,
.sidebar .widget a.lk-termin-button {
	display: inline-block;
	padding: 1.2em 2.8em;
	background-color: var(--theme-color-text_link);
	color: #fff;
	font-family: var(--theme-font-button_font-family);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.5;
	text-align: center;
	text-decoration: none;
	text-transform: none;
}
.sidebar .widget a.lk-termin-button {
	display: block;
	padding: 1.2em 1em;
}
a.lk-termin-button:hover,
a.lk-termin-button:focus-visible,
.post_content a.lk-termin-button:hover,
.post_content a.lk-termin-button:focus-visible,
.sidebar .widget a.lk-termin-button:hover,
.sidebar .widget a.lk-termin-button:focus-visible {
	background-color: var(--theme-color-text_hover);
	color: #fff;
}
/* On phones the sidebar comes right after the text: no second button when the text has one */
@media (max-width: 767px) {
	.content:has(a.lk-termin-button) ~ .sidebar {
		display: none;
	}
}
