/* ============================================================
   TECHNIKHILFE NÜRNBERG — globales Stylesheet
   Gilt für alle Seiten. Schriften liegen lokal unter /assets/fonts/.
   ============================================================ */

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('/assets/fonts/manrope.woff2') format('woff2');
}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('/assets/fonts/source-sans-3.woff2') format('woff2');
}

html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; background: #FBF8F4; }

.th-page * { box-sizing: border-box; }
.th-page { background: #FBF8F4; color: #1E2422; font-family: 'Source Sans 3', system-ui, sans-serif; font-size: 19px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
.th-page h1, .th-page h2, .th-page h3 { font-family: 'Manrope', system-ui, sans-serif; margin: 0; line-height: 1.15; letter-spacing: -0.02em; }
.th-page p { margin: 0; }
.th-page a { color: #0F5B54; text-decoration: none; }
.th-page a:hover { color: #0A423D; }
.th-page ul { margin: 0; padding: 0; list-style: none; }
.th-page input, .th-page textarea, .th-page button { font: inherit; }

/* Header */
.th-header { position: sticky; top: 0; z-index: 50; background: rgba(251,248,244,0.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid #E9E2D8; }
/* Auf dem Handy bricht die Navigation auf drei Zeilen um – dort nicht mitscrollen,
   sonst verdeckt sie ein Viertel des Bildschirms. */
@media (max-width: 680px) { .th-header { position: static; } html { scroll-padding-top: 0; } }

/* Startseite */
.th-service-card:hover, .th-benefit-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(30,36,34,0.09); }
.th-btn-primary:hover { background: #0A423D !important; color: #fff !important; }
.th-faq-trigger:hover { background: #FBF8F4; }
.th-faq-trigger { white-space: normal !important; }
.th-faq-trigger span { white-space: normal; overflow-wrap: break-word; word-break: break-word; }
.th-email-menu-item:hover { background: #F1F5F3; }
.th-nav-link:hover { color: #0F5B54 !important; }
@media (max-width: 680px) {
  .th-hero-grid, .th-about-grid { grid-template-columns: 1fr !important; }
  .th-hero-img { height: 320px !important; }
}

/* Kontaktformular */
.th-form-card { background: #fff; border-radius: 26px; padding: 36px 32px; width: 100%; max-width: 780px; margin: 0 auto; color: #1E2422; }
.th-form-card h3 { font-size: 24px; font-weight: 800; color: #141A18; margin-bottom: 6px; }
.th-form-intro { font-size: 17px; color: #5C635E; margin-bottom: 26px !important; }
.th-form label { display: block; font-weight: 700; color: #1E2422; font-size: 18px; margin-bottom: 22px; }
.th-form .th-optional { font-weight: 400; color: #7A817C; font-size: 16px; }
.th-form input[type="text"],
.th-form input[type="email"],
.th-form input[type="tel"],
.th-form textarea { display: block; width: 100%; margin-top: 8px; padding: 15px 16px; border: 2px solid #DFE4DE; border-radius: 14px; font-size: 18px; color: #1E2422; background: #FBF8F4; font-weight: 400; }
.th-form textarea { min-height: 150px; resize: vertical; }
.th-form input:focus, .th-form textarea:focus { outline: none; border-color: #0F5B54; }
.th-form .th-invalid { border-color: #B4562A !important; }
.th-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 680px) { .th-form-row { grid-template-columns: 1fr; } .th-form-card { padding: 28px 20px; } }
.th-form-hint { font-size: 15px; color: #7A817C; margin: -10px 0 22px !important; }
.th-form-submit { width: 100%; background: #C2703A; color: #fff; border: none; padding: 18px 24px; border-radius: 999px; font-weight: 700; font-size: 20px; cursor: pointer; margin-top: 8px; }
.th-form-submit:hover { background: #A65C2C; }
.th-form-submit:disabled { opacity: .6; cursor: wait; }
.th-form-privacy { font-size: 15px; color: #7A817C; margin-top: 14px !important; text-align: center; }
.th-form-privacy a { text-decoration: underline; }
.th-form-status { border-radius: 12px; padding: 14px 16px; margin-top: 18px; font-size: 17px; }
.th-form-status[data-kind="ok"] { background: #E8F0EE; color: #0F5B54; border: 1px solid #BFDCD6; }
.th-form-status[data-kind="error"] { background: #F8E9E1; color: #8A3F1C; border: 1px solid #E9C6B3; }
/* Falle für Spam-Bots, für Menschen unsichtbar */
.th-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

/* Rechtstexte (Impressum, Datenschutz) */
.th-legal-content h2 { font-size: 24px; font-weight: 700; color: #141A18; margin-top: 40px; margin-bottom: 12px; }
.th-legal-content h2:first-of-type { margin-top: 32px; }
.th-legal-content h3 { font-size: 20px; font-weight: 700; color: #1E2422; margin-top: 28px; margin-bottom: 10px; }
.th-legal-content p { font-size: 18px; color: #4A524D; margin-bottom: 14px; }
.th-legal-content a { text-decoration: underline; overflow-wrap: anywhere; }
.th-legal-content ul { margin: 4px 0 20px 0; padding-left: 0; }
.th-legal-content li { position: relative; padding-left: 24px; margin-bottom: 10px; color: #4A524D; font-size: 18px; }
.th-legal-content li::before { content: ''; position: absolute; left: 2px; top: 10px; width: 7px; height: 7px; border-radius: 50%; background: #0F5B54; }
.th-back-link:hover { color: #0A423D !important; }
@media (max-width: 680px) {
  .th-legal-page-inner { padding: 40px 20px 64px !important; }
}
