/* Shared detail components use the established typography tokens. */
.detail-hero{display:grid;grid-template-columns:1fr 1fr;background:var(--dark);color:white;min-height:540px}
.detail-copy{padding:48px 40px 48px max(42px,calc((100vw - 1176px)/2));align-self:center}
.detail-copy .eyebrow{color:#c1dfec}.detail-copy h1{font-family:var(--font-heading);font-size:clamp(36px,3.5vw,56px);font-weight:500;line-height:1.15;letter-spacing:-1.5px}
.detail-copy>p{color:var(--color-copy-inverse)}.detail-copy .breadcrumbs{font-size:15px;line-height:1.5;flex-wrap:wrap;margin-bottom:22px}
.detail-hero figure{margin:0;position:relative;min-width:0;display:flex;align-items:center;background:#233039}
.detail-hero img{display:block;width:100%;height:auto;object-fit:contain}.detail-hero figcaption{position:absolute;bottom:14px;right:14px;background:#293239d9;color:white;font-size:12px;padding:6px 10px}
.detail-section{padding-top:58px;padding-bottom:58px}.detail-page h2{font-family:var(--font-heading);font-weight:500;font-size:clamp(34px,3vw,46px)}
.check-grid{list-style:none;padding:0;margin:28px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:20px 34px;font-size:18px;color:var(--color-copy);line-height:1.6}.check-grid li{position:relative;padding-left:30px}.check-grid li:before{content:'✓';position:absolute;left:0;color:#0789b8;font-weight:700}
.detail-band{background:#f1f6f8;padding:55px 0}.detail-columns{display:grid;grid-template-columns:1fr 1.2fr;gap:50px}.detail-columns p:first-child{margin-top:0}
.detail-region{display:flex;align-items:center;justify-content:space-between;gap:35px;padding-top:40px;padding-bottom:40px;border-top:1px solid #dce5eb;border-bottom:1px solid #dce5eb}.detail-region>div{max-width:850px}.detail-region h2{font-size:30px}.detail-region>a{min-width:180px}
.detail-faq details{border-bottom:1px solid #dce5eb;padding:19px 0}.detail-faq summary{cursor:pointer;font:500 23px/1.4 var(--font-heading);color:var(--color-heading)}.detail-faq p{max-width:920px}
.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.related-grid>a{background:#f1f6f8;padding:25px;border:1px solid #e1e9ed;border-radius:4px}.related-grid>a:hover{background:#e5f4fb}.related-grid h3{font:500 23px/1.3 var(--font-heading);color:var(--color-heading);margin:0 0 18px}.related-grid span{color:#087da7;font-size:16px;font-weight:600}
#extra-services a{display:block;padding:14px 18px;background:white;border:1px solid #dfe7ec;border-radius:3px;font-size:16px;font-weight:600}
#inquiry-dialog{width:min(1000px,94vw);max-height:90dvh;padding:40px;border:0;border-radius:6px;overflow:auto;color:var(--color-copy)}
#inquiry-dialog::backdrop{background:#14232dcc}.inquiry-close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:32px;min-width:44px;min-height:44px;z-index:1}
.inquiry-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px}.inquiry-grid h2{font:500 38px/1.2 var(--font-heading);color:var(--color-heading)}.inquiry-grid form{display:grid;gap:12px}.inquiry-grid label{display:grid;gap:6px}.inquiry-grid input,.inquiry-grid textarea{width:100%;padding:11px;border:1px solid #b8c8d1;border-radius:3px;background:#fff}.inquiry-grid aside{background:#f1f6f8;padding:26px;align-self:start;margin-top:24px}.inquiry-grid aside a{display:block;font-weight:700;margin:16px 0;overflow-wrap:anywhere}.inquiry-grid h3{font:500 23px/1.3 var(--font-heading)}
@media(max-width:900px){.detail-hero{grid-template-columns:1fr}.detail-copy{padding:35px 30px}.detail-hero figure{max-height:none}.detail-hero img{max-height:430px}.detail-columns{grid-template-columns:1fr;gap:15px}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-region{display:block}.inquiry-grid{grid-template-columns:1fr}.inquiry-grid aside{margin:0}}
@media(max-width:600px){.check-grid,.related-grid{grid-template-columns:minmax(0,1fr)}.detail-section{padding-top:38px;padding-bottom:38px}.detail-page h2{font-size:34px}.detail-region h2{font-size:28px}#inquiry-dialog{padding:35px 20px}.detail-copy h1{font-size:38px}.detail-copy{padding:34px 25px}.check-grid{gap:16px}.detail-faq summary{font-size:21px}}

/* Shared writing / calling choices on detail-page introductions. */
.inquiry-actions{display:flex;align-items:stretch;flex-wrap:wrap;gap:14px;margin-top:24px}
.inquiry-actions .button{min-height:54px;justify-content:center;text-align:center}
.inquiry-actions .button-call{background:transparent;color:#fff;border:1px solid #8bb6c8;display:flex;flex-direction:column;gap:2px;padding:10px 20px}
.inquiry-actions .button-call:hover{background:#ffffff14;border-color:#fff}
/* Match the width of the bold "Direkt anrufen" label in Quicksand. */
.call-number{font-size:1.0185em;font-weight:500;line-height:1.4;white-space:nowrap}
@media(max-width:600px){.inquiry-actions{flex-direction:column}.inquiry-actions .button{width:100%}}

.contact-person{padding:16px 0;border-bottom:1px solid #d4e0e6}.inquiry-grid .contact-person h3{margin:0 0 5px;font-size:23px}.inquiry-grid .contact-person p{margin:0;font-size:16px;line-height:1.5}

.relief-section{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}.relief-section figure{margin:0;position:relative}.relief-section img{display:block;width:100%;height:auto;border-radius:4px}.relief-section figcaption{position:absolute;bottom:12px;right:12px;background:#293239cc;color:white;padding:5px 9px;font-size:12px}@media(max-width:760px){.relief-section{grid-template-columns:1fr;gap:25px}}

.benefit-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;padding-top:34px;padding-bottom:34px;border-bottom:1px solid #dce5eb}.benefit-item{display:flex;gap:15px;align-items:flex-start}.benefit-item svg{width:32px;height:32px;flex:none;color:#0789b8}.benefit-item h3{font:500 var(--text-card-title)/1.3 var(--font-heading);color:var(--color-heading);margin:0 0 8px}.benefit-item p{margin:0;font-size:var(--text-copy)}@media(max-width:900px){.benefit-row{grid-template-columns:1fr;gap:24px}}

.service-area{margin-top:18px}.service-area summary{cursor:pointer;color:#087da7;font:500 18px/1.5 var(--font-heading);padding:8px 0}.service-area-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;list-style:none;padding:0;margin:20px 0;font-size:16px;line-height:1.6;color:var(--color-copy)}.regional>.service-area{grid-column:1/-1}@media(max-width:900px){.service-area-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.service-area-list{grid-template-columns:1fr}}

/* Stable contact message: all phrases occupy the same grid cell. */
.contact-compact{padding:60px 0;background:#293239;color:#fff}
.contact-compact h2{color:#fff;margin-bottom:20px}
.contact-rotation{display:grid;max-width:900px}
.contact-rotation .contact-phrase{grid-area:1/1;margin:0;color:#e0e9ee;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease;pointer-events:none}
.contact-rotation .contact-phrase.is-current{opacity:1;visibility:visible}
.contact-compact .inquiry-actions{margin-top:26px}
.contact-rotation-toggle{margin-top:18px;padding:8px 0;border:0;background:none;color:#c1dfec;font-size:14px;text-decoration:underline;min-height:44px}
.contact-rotation-toggle[hidden]{display:none}
.contact-details{display:flex;flex-wrap:wrap;align-items:center;gap:16px 30px;margin-top:32px;border-top:1px solid #ffffff25;padding-top:24px;font-size:15px;color:#e0e9ee}
.contact-details .textlink{background:none;border:0;color:#e0e9ee;padding:0;min-height:44px}
@media(prefers-reduced-motion:reduce){.contact-rotation .contact-phrase{transition:none}}

.location-map{margin-top:28px;border-radius:16px;overflow:hidden;background:#f1f6f8}.location-map-placeholder{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}.location-map-placeholder p{max-width:620px}.location-map iframe{display:block;width:100%;height:400px;border:0}@media(max-width:600px){.location-map iframe{height:320px}}

@media(max-width:600px){
 .detail-copy h1{font-size:clamp(30px,8vw,38px);letter-spacing:-.7px}
 .detail-copy{padding:28px 22px}
 .detail-page h2{font-size:30px}
 .detail-hero{min-height:0}
 .detail-hero img{max-height:250px}
 .object-card>span{hyphens:auto;overflow-wrap:anywhere}
}

/* Uniform compact form rhythm; reset inherited paragraph/label spacing. */
#inquiry-form, #contactform, #applyform, #callbackform{display:grid;gap:12px;padding:0}
#inquiry-form>*, #contactform>*, #applyform>*, #callbackform>*{margin:0;min-width:0}
#inquiry-form>label, #contactform>label, #applyform>label, #callbackform>label{display:grid;gap:6px;line-height:1.4}
#inquiry-form input, #contactform input, #applyform input, #callbackform input{margin:0;min-height:44px;padding:9px 11px}
#inquiry-form textarea, #contactform textarea, #applyform textarea{margin:0;min-height:90px;padding:9px 11px;resize:vertical}
#inquiry-form>.eyebrow{line-height:1.4}
#inquiry-form>h2{line-height:1.15;margin-bottom:4px}
#inquiry-form>.formnote, #applyform>.formnote, #callbackform>.formnote{line-height:1.45}
#inquiry-form>.button, #contactform>.button, #applyform>.button, #callbackform>.button{justify-content:center;text-align:center}
#inquiry-status:empty, #formstatus:empty, #apply-status:empty{display:none}
.inquiry-grid aside{margin-top:0}

#inquiry-dialog{padding-top:28px;padding-bottom:28px}
#inquiry-form{gap:10px}
#inquiry-form .contact-fields-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
#inquiry-form .contact-fields-row label{display:grid;gap:6px;margin:0;line-height:1.4;min-width:0}
#inquiry-form textarea{height:90px}
@media(max-width:600px){#inquiry-form .contact-fields-row{grid-template-columns:1fr;gap:10px}}

/* Extra 5 mm breathing room around the unchanged inquiry content. */
#inquiry-dialog{width:min(calc(1000px + 10mm),96vw);padding:calc(28px + 5mm) calc(40px + 5mm);max-height:calc(100dvh - 24px)}
#inquiry-dialog .inquiry-close{top:5mm;right:5mm;display:flex;align-items:center;justify-content:center;padding:0;line-height:1}
@media(max-width:600px){#inquiry-dialog{padding:calc(28px + 5mm) calc(20px + 5mm)}}

/* Grouped service directory: full-width text and restrained blue accents. */
.service-category+ .service-category{margin-top:52px}
.service-category>h2{font:500 clamp(25px,2.1vw,32px)/1.25 var(--font-heading);color:var(--color-heading);margin:0 0 24px;padding-left:16px;border-left:4px solid var(--blue)}
.service-directory-grid>a{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:25px}
.service-directory-grid h3{hyphens:none;overflow-wrap:normal}
.service-directory-grid p{margin:0 0 20px;hyphens:none}
.service-directory-grid a>span{margin-top:auto}
@media(min-width:601px) and (max-width:1200px){.service-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.service-directory-grid{grid-template-columns:1fr}.service-directory-grid h3{font-size:21px;overflow-wrap:anywhere}.service-category+ .service-category{margin-top:38px}}

.related-grid>a{min-width:0;overflow-wrap:anywhere}

/* Match the homepage's white title / light-blue slogan hierarchy. */
.detail-copy h1{color:#50c3ed}
.detail-copy h1.hero-service-title{color:#fff}
.detail-copy .hero-tagline{display:block;color:#50c3ed;font-size:clamp(26px,2.25vw,34px);line-height:1.25;letter-spacing:normal;margin-top:18px}
/* Both actions on the pale career panel use the established anthracite. */
.career .inquiry-actions .button{background:var(--dark);color:#fff;border:1px solid var(--dark)}
.career .inquiry-actions .button:hover{background:#36434c;border-color:#36434c}

/* Expanded service-area names respond to hover without becoming links. */
.service-area-list li{transition:color .2s ease}
.service-area-list li:hover{color:var(--blue)}
@media(prefers-reduced-motion:reduce){.service-area-list li{transition:none}}
