/* Logopraxis page sections. Uses only tokens from tokens.css. */

/* Layout */
.elementor .lp-section { padding: 88px 20px; }
.elementor .lp-section.lp-tight { padding-top: 40px; padding-bottom: 40px; }
.elementor .lp-inner { width: 100%; max-width: var(--lp-maxw); margin-inline: auto; }
.elementor .lp-narrow { max-width: 760px; margin-inline: auto; width: 100%; }
.lp-center, .lp-center .elementor-heading-title, .lp-center .elementor-widget-container { text-align: center; }
.lp-eyebrow .elementor-heading-title {
	font-family: var(--lp-font-body);
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--lp-terracotta-text);
}
.lp-lead { font-size: 1.15rem; color: var(--lp-navy-soft); }
.lp-bg-white { background: var(--lp-white); }
.lp-bg-sage { background: var(--lp-sage-soft); }
.lp-bg-honey { background: var(--lp-honey-soft); }
.lp-bg-navy { background: var(--lp-navy); }
.lp-bg-navy, .lp-bg-navy .elementor-heading-title, .lp-bg-navy p { color: var(--lp-white); }

.lp-media img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--lp-radius); display: block; }
.elementor .lp-col { flex: 1 1 0; min-width: 0; }
.elementor .lp-col--media { flex: 1.1 1 0; }

/* Hero */
.elementor .lp-hero { padding-top: 56px; padding-bottom: 72px; }
.lp-hero h1.elementor-heading-title { font-size: clamp(2.2rem, 4.5vw, 3.4rem); }
.elementor .lp-hero .lp-col { justify-content: center; }
.lp-hero .lp-media img { aspect-ratio: 4 / 3; }
/* Show the whole photo (no crop), e.g. a group photo whose people reach the edge. */
.lp-hero .lp-media--uncropped img { aspect-ratio: auto; height: auto; }
.lp-hero .elementor-widget-button { margin-top: 8px; }

/* Trust strip */
.elementor .lp-trust { padding: 28px 20px; }
.lp-trust .elementor-icon-list-items { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 40px; }
.lp-trust .elementor-icon-list-item { font-weight: 700; color: var(--lp-navy); }
.lp-trust .elementor-icon-list-icon i, .lp-trust .elementor-icon-list-icon svg { color: var(--lp-terracotta-strong); fill: var(--lp-terracotta-strong); }

/* Quote */
.elementor-widget.lp-quote-block {
	border-left: 4px solid var(--lp-honey);
	padding: 8px 0 8px 24px;
}
.lp-quote-block p { font-family: var(--lp-font-head); font-style: italic; font-size: 1.3rem; line-height: 1.55; margin: 0; }

/* Icon boxes (benefits, cards) */
.elementor .lp-grid { display: grid !important; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.elementor-widget.lp-iconbox,
.elementor-widget.lp-tile {
	background: var(--lp-white);
	border-radius: var(--lp-radius);
	box-shadow: var(--lp-shadow);
	padding: 28px 24px;
	height: 100%;
}
.lp-iconbox { height: 100%; box-sizing: border-box; }
.lp-iconbox .elementor-icon { color: var(--lp-terracotta-strong); fill: var(--lp-terracotta-strong); font-size: 30px; }
.lp-iconbox .elementor-icon-box-title { font-family: var(--lp-font-head); font-size: 1.2rem; margin: 10px 0 6px; color: var(--lp-navy); }
.lp-iconbox .elementor-icon-box-title a { color: inherit; text-decoration: none; }
.lp-iconbox .elementor-icon-box-description { color: var(--lp-navy-soft); margin: 0; }
.lp-iconbox--left .elementor-icon-box-wrapper, .lp-iconbox--left .elementor-icon-box-content { text-align: left; }
.lp-iconbox--left .elementor-icon-box-icon { display: flex; justify-content: flex-start; }

/* Recruiting banner */
.lp-recruit .elementor-button { background: var(--lp-honey); color: var(--lp-navy); }
.lp-recruit .elementor-button:hover { background: var(--lp-white); color: var(--lp-navy); }
.lp-recruit .lp-media img { aspect-ratio: 3 / 2; }

/* Leistungen toggle */
.lp-toggle__tabs { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.lp-toggle button.lp-toggle__tab {
	font: 700 1rem/1 var(--lp-font-body);
	color: var(--lp-navy);
	background: var(--lp-white);
	border: 2px solid var(--lp-navy);
	border-radius: var(--lp-radius-pill);
	padding: 12px 24px;
	cursor: pointer;
}
.lp-toggle button.lp-toggle__tab[aria-selected="true"] { background: var(--lp-navy); color: var(--lp-white); }
.lp-toggle button.lp-toggle__tab:hover { background: var(--lp-honey-soft); color: var(--lp-navy); }
.lp-toggle button.lp-toggle__tab[aria-selected="true"]:hover { background: var(--lp-navy); color: var(--lp-white); }
.lp-toggle__title { text-align: center; font-size: 1.5rem; margin: 0 0 20px; }
.lp-toggle__cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.lp-toggle a.lp-toggle__card {
	display: flex; align-items: center; min-height: 96px; height: 100%;
	padding: 20px 22px; background: var(--lp-cream); border-radius: var(--lp-radius);
	color: var(--lp-navy); font-weight: 700; text-decoration: none;
	border-left: 5px solid var(--lp-sage);
	box-sizing: border-box;
}
.lp-toggle a.lp-toggle__card:hover { background: var(--lp-honey-soft); color: var(--lp-navy); }
.lp-toggle__more { text-align: center; margin: 32px 0 0; }

/* Cards with a photo (Leistungen overview, locations) */
.lp-photo-card { background: var(--lp-white); border-radius: var(--lp-radius); box-shadow: var(--lp-shadow); overflow: hidden; }
.elementor .lp-photo-card { gap: 0 !important; }
.lp-photo-card .lp-media img { border-radius: 0; aspect-ratio: 3 / 2; }
.elementor .lp-photo-card__body { padding: 22px 24px 26px; gap: 10px; }

/* Helpers */
.lp-btn-ghost .elementor-button { background: transparent; color: var(--lp-navy); box-shadow: inset 0 0 0 2px var(--lp-navy); }
.lp-btn-ghost .elementor-button:hover { background: var(--lp-navy); color: var(--lp-white); }
.elementor .lp-btn-row { justify-content: center; }
.lp-btn-row .elementor-widget { width: auto; }
.lp-left, .lp-left .elementor-widget-container { text-align: left; }
.lp-quote-by { font-family: var(--lp-font-body) !important; font-style: normal !important; font-size: 0.95rem !important; margin-top: 10px !important; color: var(--lp-navy-soft); }
.lp-quote-by::before { content: "– "; }
.lp-linklist .elementor-icon-list-item a { font-weight: 700; color: var(--lp-navy); }
.lp-linklist .elementor-icon-list-icon i { color: var(--lp-terracotta-strong); }
.lp-team-photo img { aspect-ratio: 16 / 7; max-width: 980px; margin-inline: auto; }
.elementor .lp-section .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

.elementor .lp-narrow-left { max-width: 760px; }
.elementor .lp-section.lp-tight-bottom { padding-bottom: 24px; }
.lp-photo-3x2 img { aspect-ratio: 3 / 2; }
.lp-location h3.elementor-heading-title { font-size: 1.3rem; margin-top: 8px; }

/* Leistungen lists */
.lp-servicegrid .elementor-icon-list-items { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.elementor .lp-servicegrid .elementor-icon-list-item { margin: 0 !important; padding: 18px 20px !important; background: var(--lp-cream); border-radius: var(--lp-radius); border-left: 5px solid var(--lp-sage); align-items: center; justify-content: flex-start; font-weight: 700; color: var(--lp-navy); }
.lp-servicegrid .elementor-icon-list-text { text-align: left; }
.lp-servicegrid .elementor-icon-list-item::after { display: none !important; }
.lp-servicegrid .elementor-icon-list-icon { color: var(--lp-terracotta-strong); }
.lp-servicegrid .elementor-icon-list-icon i { color: var(--lp-terracotta-strong); }
.lp-chiplist .elementor-icon-list-items { display: flex; flex-wrap: wrap; gap: 10px; }
.elementor .lp-chiplist .elementor-icon-list-item { margin: 0 !important; padding: 8px 16px !important; background: var(--lp-honey-soft); border-radius: var(--lp-radius-pill); color: var(--lp-navy); }
.lp-chiplist .elementor-icon-list-item::after { display: none !important; }
.lp-chiplist .elementor-icon-list-icon { display: none; }
.lp-extralist .elementor-icon-list-item { color: var(--lp-navy); }
.lp-extralist .elementor-icon-list-icon i { color: var(--lp-sage); }
.lp-services h2.elementor-heading-title { margin-bottom: 4px; }
.lp-services h3.elementor-heading-title { margin-top: 24px; font-size: 1.35rem; }
#dysphagie { scroll-margin-top: 110px; }

/* Karriere, FAQ, Kontakt */
.elementor .lp-btn-row--left { justify-content: flex-start; }
.lp-iconbox--small .elementor-icon { font-size: 24px; }
.lp-iconbox--small .elementor-icon-box-title { font-size: 1.05rem; }
.elementor-widget.lp-iconbox--small { padding: 22px 20px; }
.lp-checklist .elementor-icon-list-item { align-items: flex-start; color: var(--lp-navy); }
.lp-checklist .elementor-icon-list-icon { padding-top: 5px; }
.lp-checklist .elementor-icon-list-icon i { color: var(--lp-terracotta-strong); }
.lp-bg-navy a:not(.elementor-button) { color: var(--lp-honey); }
.lp-bg-navy .lp-eyebrow .elementor-heading-title { color: var(--lp-honey); }
.lp-btn-ghost-light .elementor-button { background: transparent; color: var(--lp-white); box-shadow: inset 0 0 0 2px var(--lp-white); }
.lp-btn-ghost-light .elementor-button:hover { background: var(--lp-white); color: var(--lp-navy); }
.lp-apply .elementor-button { background: var(--lp-honey); color: var(--lp-navy); }
.lp-apply .lp-btn-ghost-light .elementor-button { background: transparent; color: var(--lp-white); }
.lp-small { font-size: 0.9rem; color: var(--lp-navy-soft); }
.lp-map-short .lp-map, .lp-map-short .lp-map iframe { min-height: 260px; }
.lp-accordion .elementor-accordion-item { border: 0 !important; background: var(--lp-white); border-radius: var(--lp-radius); box-shadow: var(--lp-shadow); margin-bottom: 14px; overflow: hidden; }
.lp-accordion .elementor-tab-title { padding: 20px 24px !important; border: 0 !important; }
.lp-accordion .elementor-tab-title a, .lp-accordion .elementor-accordion-title { font-family: var(--lp-font-head); font-size: 1.2rem; font-weight: 500; color: var(--lp-navy) !important; }
.lp-accordion .elementor-accordion-icon { color: var(--lp-terracotta-strong) !important; }
.lp-accordion .elementor-tab-content { border: 0 !important; padding: 0 24px 22px !important; color: var(--lp-navy); }

/* Legal pages */
.lp-legal-h2 .elementor-heading-title { font-size: 1.45rem; margin-top: 28px; }
.lp-legal ul { padding-left: 1.2em; margin: 0 0 1em; }
.lp-legal li { margin-bottom: 4px; }
.lp-legal code { background: var(--lp-sage-soft); padding: 1px 6px; border-radius: 4px; font-size: 0.9em; }

/* Room carousels (Elementor Image Carousel) */
.lp-carousel .swiper-slide-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--lp-radius); display: block; }
.lp-carousel .elementor-swiper-button {
	width: 44px; height: 44px; border-radius: 50%;
	background: var(--lp-white); color: var(--lp-navy);
	box-shadow: 0 2px 10px rgba(31, 53, 86, 0.2);
	display: flex; align-items: center; justify-content: center;
	font-size: 18px; opacity: 1;
}
.lp-carousel .elementor-swiper-button svg { width: 18px; height: 18px; fill: var(--lp-navy); }
.lp-carousel .elementor-swiper-button:hover { background: var(--lp-honey-soft); }
.lp-carousel .elementor-swiper-button-prev { left: 12px; }
.lp-carousel .elementor-swiper-button-next { right: 12px; }

/* Top strip above the header */
.lp-topbar { background: var(--lp-navy); }
.lp-topbar__inner { max-width: var(--lp-maxw); margin: 0 auto; padding: 7px 20px; display: flex; justify-content: flex-end; }
body .lp-topbar a.lp-topbar__link { color: var(--lp-honey); font-family: var(--lp-font-body); font-size: 0.9rem; font-weight: 700; text-decoration: none; }
body .lp-topbar a.lp-topbar__link:hover { color: var(--lp-white); text-decoration: underline; text-underline-offset: 3px; }

/* Header menu: navy and a little larger (header only, not the footer menu) */
#masthead .hfe-nav-menu a.hfe-menu-item,
#masthead .hfe-nav-menu .sub-menu a.hfe-sub-menu-item { color: var(--lp-navy); font-family: var(--lp-font-body); font-size: 17px; font-weight: 600; }
#masthead .hfe-nav-menu a.hfe-menu-item:hover,
#masthead .hfe-nav-menu .current-menu-item > a.hfe-menu-item,
#masthead .hfe-nav-menu .current-menu-ancestor > a.hfe-menu-item,
#masthead .hfe-nav-menu .current-menu-item > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead .hfe-nav-menu .current-menu-ancestor > .hfe-has-submenu-container > a.hfe-menu-item,
#masthead .hfe-nav-menu .hfe-has-submenu-container > a.hfe-menu-item:hover { color: var(--lp-terracotta-text); }
#masthead .hfe-nav-menu .sub-menu a.hfe-sub-menu-item { font-size: 16px; font-weight: 500; }
#masthead .hfe-nav-menu .sub-menu-toggle, #masthead .hfe-nav-menu .hfe-menu-toggle { color: var(--lp-navy); }
#masthead .hfe-nav-menu__toggle, #masthead .hfe-nav-menu-icon { color: var(--lp-navy); }
#masthead .hfe-nav-menu-icon svg { fill: var(--lp-navy); }

/* Location block */
.lp-loc { background: var(--lp-white); border-radius: var(--lp-radius); box-shadow: var(--lp-shadow); padding: 28px; height: 100%; box-sizing: border-box; }
.lp-loc__name { font-size: 1.5rem; margin: 0 0 16px; }
.lp-loc__list { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 12px; }
.lp-loc__list li { display: flex; gap: 12px; align-items: flex-start; }
.lp-loc__icon { color: var(--lp-terracotta-strong); flex: 0 0 20px; margin-top: 3px; display: inline-flex; }
.lp-loc .lp-loc__list a { color: var(--lp-navy); text-decoration: underline; text-decoration-color: var(--lp-honey); text-decoration-thickness: 2px; text-underline-offset: 3px; }
.lp-loc .lp-loc__list a:hover { color: var(--lp-terracotta-strong); }
.lp-loc__actions { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin: 0; }
.lp-loc__more { font-weight: 700; }

/* Consent banner */
.lp-consent { position: fixed; inset: auto 16px 16px auto; z-index: 9999; max-width: 520px; width: calc(100% - 32px); }
.lp-consent[hidden] { display: none; }
.lp-consent__box { background: var(--lp-white); color: var(--lp-navy); border-radius: var(--lp-radius); box-shadow: 0 16px 48px rgba(31, 53, 86, 0.25); padding: 24px; max-height: calc(100vh - 32px); overflow-y: auto; box-sizing: border-box; }
.lp-consent__title { font-size: 1.3rem; margin: 0 0 8px; }
.lp-consent__box p { font-size: 0.95rem; margin: 0 0 14px; }
.lp-consent__prefs { display: grid; gap: 12px; margin: 0 0 16px; }
.lp-consent__prefs[hidden] { display: none; }
.lp-consent__opt { display: flex; gap: 10px; align-items: flex-start; font-size: 0.9rem; background: var(--lp-cream); border-radius: 8px; padding: 10px 12px; }
.lp-consent__opt input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--lp-terracotta-strong); }
.lp-consent__actions { display: flex; flex-wrap: wrap; gap: 8px; }
body button.lp-consent__btn {
	font: 700 0.95rem/1.2 var(--lp-font-body);
	border-radius: var(--lp-radius-pill);
	padding: 11px 18px;
	cursor: pointer;
	border: 2px solid var(--lp-navy);
	background: var(--lp-white);
	color: var(--lp-navy);
}
body button.lp-consent__btn:hover { background: var(--lp-honey-soft); color: var(--lp-navy); }
body button.lp-consent__btn--primary { background: var(--lp-terracotta-strong); border-color: var(--lp-terracotta-strong); color: var(--lp-white); }
body button.lp-consent__btn--primary:hover { background: var(--lp-terracotta-hover); border-color: var(--lp-terracotta-hover); color: var(--lp-white); }
/* Accept and decline look the same, so neither choice is pushed. */
body button.lp-consent__btn--choice { background: var(--lp-navy); border-color: var(--lp-navy); color: var(--lp-white); }
body button.lp-consent__btn--choice:hover { background: var(--lp-navy-soft); border-color: var(--lp-navy-soft); color: var(--lp-white); }
.lp-consent__title:focus { outline: none; }
.lp-consent__title:focus-visible { outline: 3px solid var(--lp-honey); outline-offset: 2px; }
body button.lp-consent__btn--link { border-color: transparent; background: transparent; text-decoration: underline; }
body button.lp-consent__btn[hidden] { display: none; }
.lp-consent__links { margin: 12px 0 0 !important; font-size: 0.85rem !important; }

/* Consent-gated map */
.lp-map { position: relative; min-height: 320px; border-radius: var(--lp-radius); overflow: hidden; background: var(--lp-sage-soft); display: flex; height: 100%; }
.lp-map__placeholder { margin: auto; max-width: 440px; padding: 28px; text-align: center; background: rgba(255, 255, 255, 0.92); border-radius: var(--lp-radius); }
.lp-map__placeholder p { font-size: 0.95rem; margin: 0 0 12px; }
.lp-map__actions { display: flex; flex-direction: column; gap: 8px; align-items: stretch; margin: 0 !important; }
.lp-map iframe { border: 0; width: 100%; min-height: 320px; height: 100%; display: block; }

/* Header menu: open dropdowns on keyboard focus too (HFE opens them on hover only) */
@media (min-width: 1025px) {
	/* !important: HFE's script writes visibility/opacity/height inline on the sub-menu. */
	.hfe-nav-menu__layout-horizontal li.menu-item-has-children:focus-within > .sub-menu { visibility: visible !important; opacity: 1 !important; height: auto !important; }
}

/* Mobile */
@media (max-width: 767px) {
	.elementor .lp-section { padding: 56px 16px; }
	.elementor .lp-hero { padding-top: 24px; }
	.lp-trust .elementor-icon-list-items { flex-direction: column; align-items: flex-start; gap: 10px; }
	.lp-toggle button.lp-toggle__tab { padding: 10px 16px; }
}
