/* ========================================================================== 1. VARIABLES & CONFIGURATION ========================================================================== */ :root { /* --- Layout & Spacing --- */ --site-max-width: 81.56rem; --site-side-padding: 3vw; --header-height: 5.625rem; --section-spacing: 3rem; --section-spacing-mobile: 3rem; /* --- Colors --- */ --color-dark: #1a2026; --color-text: #3b3b3b; --color-grey-medium: #595959; --color-grey-light: #717171; --color-disclaimer: #767676; --color-bg-white: #ffffff; --color-bg-alt: #f6f7f9; /* Brand Colors */ --color-accent: #222F54; --kanzlei-blau: #1a2026; --color-whatsapp: #25D366; --color-emergency: #cc3333; /* --- Fonts --- */ --font-sans: 'Raleway', sans-serif; --font-serif: 'Cormorant Garamond', serif; /* --- Animations --- */ --transition-premium: 1.2s cubic-bezier(0.16, 1, 0.3, 1); --transition-interactive: 0.6s cubic-bezier(0.16, 1, 0.3, 1); --transition-std: 0.3s ease; --transition-fast: 0.2s ease; /* --- Z-Index Layer Management --- */ --z-emergency-box: 10; --z-hero-sketch: -1; --z-header: 100; --z-skip-link: 200; --z-sticky-actions: 500; --z-mobile-menu: 800; --z-modal: 1000; } /* ========================================================================== 2. FONT IMPORTS ========================================================================== */ @font-face { font-family: 'Raleway'; font-style: normal; font-weight: 300; src: url('fonts/raleway-300.woff2') format('woff2'); font-display: swap; } @font-face { font-family: 'Raleway'; font-style: normal; font-weight: 400; src: url('fonts/raleway-400.woff2') format('woff2'); font-display: swap; } @font-face { font-family: 'Raleway'; font-style: normal; font-weight: 500; src: url('fonts/raleway-500.woff2') format('woff2'); font-display: swap; } @font-face { font-family: 'Raleway'; font-style: normal; font-weight: 600; src: url('fonts/raleway-600.woff2') format('woff2'); font-display: swap; } @font-face { font-family: 'Raleway'; font-style: normal; font-weight: 700; src: url('fonts/raleway-700.woff2') format('woff2'); font-display: swap; } @font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 300; src: url('fonts/cormorant-300.woff2') format('woff2'); font-display: swap; } @font-face { font-family: 'Cormorant Garamond'; font-style: italic; font-weight: 400; src: url('fonts/cormorant-italic.woff2') format('woff2'); font-display: swap; } @font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 600; src: url('fonts/cormorant-600.woff2') format('woff2'); font-display: swap; } /* ========================================================================== 3. RESET & BASE STYLES ========================================================================== */ *, *::before, *::after { box-sizing: border-box; } html { font-size: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-height) + 1.25rem); -webkit-text-size-adjust: 100%; } body { font-family: var(--font-sans); margin: 0; padding: 0; width: 100%; max-width: 100%; font-size: 0.95rem; color: var(--color-text); line-height: 1.6; background-color: var(--color-bg-white); padding-top: var(--header-height); display: flex; flex-direction: column; min-height: 100vh; font-variant-numeric: lining-nums; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; overflow-y: scroll; } body.menu-open { overflow: hidden; } main { display: block; width: 100%; flex: 1; } /* Force cleaner grid calculations */ body, main, #main-content { overflow: visible !important; } img { max-width: 100%; height: auto; display: block; } /* Accessibility */ *:focus { outline: none; } *:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 2px; } .visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; clip: rect(0, 0, 0, 0) !important; overflow: hidden !important; } .skip-link { position: absolute; top: -3.125rem; left: 0; background: #000; color: #fff; padding: 0.625rem 0.9375rem; z-index: var(--z-skip-link); transition: top var(--transition-std); text-decoration: none; font-weight: bold; } .skip-link:focus { top: 0; } /* Scrollbar Styling */ ::-webkit-scrollbar { width: 0.75rem; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: var(--color-grey-light); border: 3px solid #f1f1f1; border-radius: 6px; } ::-webkit-scrollbar-thumb:hover { background: var(--color-dark); } @media (prefers-reduced-motion: reduce) { *, ::before, ::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } } /* ========================================================================== 4. TYPOGRAPHY ========================================================================== */ h1, h2, h3, h4 { font-family: var(--font-serif); color: var(--color-dark); margin-top: 0; line-height: 1.1; text-wrap: balance; } h1 { font-weight: 300; letter-spacing: -0.02em; font-size: clamp(1.66rem, 2.88vw, 1.94rem); margin-bottom: 0.5em; white-space: nowrap !important; text-wrap: nowrap !important; } h2 { font-size: clamp(1.7rem, 4vw, 2rem); font-weight: 400; margin-bottom: 1.875rem; letter-spacing: -0.01em; } h3 { font-size: 1rem; margin-bottom: 0.625rem; font-weight: 600; } p { margin-bottom: 1em; text-align: justify; hyphens: auto; } /* Clean Hyphen Utility (Fix für schiefen Bindestrich) */ .clean-hyphen { font-family: var(--font-sans) !important; font-weight: 400; display: inline-block; transform: translateY(-1px); } /* Link Transitions */ p a, .footer-links a, .text-block a { transition: color 0.8s ease, border-color 0.8s ease; } /* Text Utilities */ .h2-centered { text-align: center; } .text-highlight { font-weight: 600; color: var(--color-dark); } .link-dark { text-decoration: none; color: var(--color-dark); transition: color var(--transition-std); } .link-dark:hover { color: var(--color-accent); } /* Subheadlines */ .subheadline-wrapper { margin-top: 0; margin-bottom: 1.5rem; border: none; } .subheadline-text { font-family: 'Raleway', sans-serif; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.15em; color: #666; font-weight: 300; display: inline-block; padding-bottom: 5px; } /* Breadcrumbs */ .breadcrumb-container { margin-bottom: 20px; font-size: 0.9rem; color: #666; } .breadcrumb-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; align-items: center; } .breadcrumb-list li a { text-decoration: none; color: #333; transition: color 0.2s; } .breadcrumb-list li a:hover { color: var(--kanzlei-blau); text-decoration: underline; } .breadcrumb-list .separator { margin: 0 8px; color: #999; } .breadcrumb-list .current { color: #888; font-weight: 500; } /* Links inside Text Blocks */ .text-block a { color: inherit; text-decoration: none; font-weight: 600; border-bottom: 1px solid rgba(0,0,0,0.2); transition: all 0.2s ease; } .text-block a:hover { border-bottom: 2px solid #000; color: #000; } /* Email Link Styled */ .email-link-styled { display: inline-flex; align-items: center; gap: 0.75rem; font-family: var(--font-serif); font-size: 1.25rem; font-weight: 600; color: var(--color-dark); text-decoration: none; border-bottom: 1px solid rgba(0, 51, 102, 0.3); padding-bottom: 2px; transition: all 0.3s ease; } .email-link-styled svg { width: 1.2rem; height: 1.2rem; stroke: currentColor; opacity: 0.8; } .email-link-styled:hover { border-bottom-color: var(--kanzlei-blau); opacity: 0.8; } /* ========================================================================== 5. LAYOUT UTILITIES & GLOBAL SECTIONS ========================================================================== */ .content-container, .header-container, .footer-container, .content-container-narrow { width: 100%; max-width: var(--site-max-width); margin-left: auto; margin-right: auto; padding-left: var(--site-side-padding); padding-right: var(--site-side-padding); position: relative; } .content-container-narrow { max-width: 56.25rem; } section, footer { padding-top: var(--section-spacing); padding-bottom: var(--section-spacing); display: block; position: relative; width: 100%; border-bottom: 1px solid rgba(0,0,0,0.08); background-color: var(--color-bg-white); } section:last-of-type { border-bottom: none; } .separator-line { width: 5rem; height: 1px; background-color: rgba(0, 0, 0, 0.1); margin: 1.875rem 0; } .centered-line { margin-left: auto; margin-right: auto; } /* Shadow Helpers */ .img-shadow-soft, .content-img-shadow { border-radius: 2px; box-shadow: 0 0.625rem 1.875rem rgba(0,0,0,0.1); } /* Margin Helpers */ .mt-10 { margin-top: 0.625rem; } .mt-20 { margin-top: 1.25rem; } /* Visibility Helpers */ .mobile-break, .mobile-visible-only { display: none !important; } .desktop-break { display: block; } /* ========================================================================== 6. BUTTONS ========================================================================== */ .button-group, .hero-btn-group { display: flex; align-items: center; gap: 0.9375rem; margin-top: 1.875rem; } .hero-btn-group { flex-wrap: nowrap; margin-top: 2.18rem; gap: 0.75rem; } .btn { display: inline-block; padding: 0.75rem 1.125rem; text-decoration: none; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.1em; font-weight: 600; transition: all var(--transition-interactive); cursor: pointer; text-align: center; border-radius: 0; white-space: nowrap; backface-visibility: hidden; transform: perspective(1px) translateZ(0); } /* Primary Button */ .btn--solid, .btn--primary { background-color: var(--color-dark); color: #fff !important; border: 1px solid var(--color-dark); transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.5s ease, box-shadow 0.5s ease !important; } .btn--solid:hover, .btn--primary:hover { background-color: #0b2241 !important; color: #ffffff !important; border-color: #0b2241 !important; transform: scale(1.03); opacity: 0.95; box-shadow: 0 10px 20px rgba(0,0,0,0.15); } /* Outline Button */ .btn--outline { background-color: transparent; color: var(--color-dark); border: 1px solid var(--color-dark); } .btn--outline:hover { background-color: var(--color-dark); color: #fff; transform: translateY(-2px); box-shadow: 0 10px 20px rgba(0,0,0,0.1); } /* ========================================================================== 7. HEADER & NAVIGATION ========================================================================== */ /* Standard Fixed Header */ .header-container { position: fixed; top: 0; left: 0; right: 0; height: var(--header-height); z-index: var(--z-header); background-color: var(--color-bg-white); border-bottom: 1px solid rgba(0,0,0,0.06); display: flex; align-items: center; box-shadow: 0 2px 10px rgba(0,0,0,0.05); max-width: 100% !important; margin: 0 !important; padding: 0 !important; } .header-inner, .header-top { width: 100%; max-width: var(--site-max-width); margin: 0 auto; padding-left: var(--site-side-padding); padding-right: var(--site-side-padding); display: flex; justify-content: space-between; align-items: center; height: 100%; } /* Alternate Header (Dark / Full Width) */ .full-width-header { width: 100%; background-color: var(--color-dark); color: #ffffff; padding-top: 150px; padding-bottom: 60px; border: none; z-index: 1; position: relative; } .header-inner-content { max-width: var(--site-max-width); margin: 0 auto; padding-left: var(--site-side-padding); padding-right: var(--site-side-padding); } .full-width-header h1 { font-size: clamp(2.2rem, 4vw, 3.2rem); margin: 0 0 1rem 0; line-height: 1.1; color: #ffffff; font-weight: 300; } .subline-white { font-family: var(--font-sans); font-size: 1.1rem; color: rgba(255, 255, 255, 0.7); font-weight: 500; text-transform: uppercase; letter-spacing: 0.05em; } .header-separator-white { width: 60px; height: 3px; background-color: #ffffff; opacity: 0.3; margin-bottom: 20px; } /* Logo Styling */ .brand-logo { text-decoration: none; display: flex; align-items: center; color: var(--color-dark); line-height: 1; flex-shrink: 0; font-size: 1.5rem; margin-top: -0.3125rem; margin-right: 3rem; } .brand-symbol { font-family: var(--font-serif); color: var(--color-dark); padding-right: 1.375em; margin-right: 1.375em; border-right: 1px solid rgba(0,0,0,0.15); display: flex; flex-direction: column; } .symbol-row { display: flex; } .brand-symbol span { width: 1.25em; height: 1.25em; display: flex; justify-content: center; align-items: center; position: relative; } .brand-symbol span::before { content: attr(data-letter); position: absolute; font-weight: 300; font-size: 0.75em; color: var(--color-dark); } .brand-symbol span.vowel::before { color: #767676; } .brand-text-group { display: flex; flex-direction: column; justify-content: center; position: relative; top: -1px; } .brand-name { font-family: var(--font-serif); font-size: 1.7em; font-weight: 300; text-transform: uppercase; color: var(--color-dark); white-space: nowrap; line-height: 0.9; letter-spacing: 0.22em; margin-right: -0.22em; margin-bottom: 0.15em; margin-left: 1px; } .brand-slogan { font-family: var(--font-sans); font-weight: 500; font-size: 0.68em; letter-spacing: 0.57em; margin-right: -0.57em; text-transform: uppercase; color: var(--color-grey-medium); white-space: nowrap; line-height: 1; margin-left: 2px; } /* Desktop Menu */ .header-right-group { display: flex; align-items: center; } .menu-desktop ul { display: flex; gap: 2.5rem; margin-left: 0; padding: 0; list-style: none; } .menu-desktop a { font-weight: 450; font-size: 0.7rem; text-decoration: none; color: var(--color-dark); text-transform: uppercase; letter-spacing: 0.12em; transition: color var(--transition-std); display: inline-block; padding: 0.625rem 0.3rem; margin-top: 2px; white-space: nowrap; position: relative; } .menu-desktop a::after { content: ''; position: absolute; width: 100%; height: 1px; bottom: 0; left: 0; background-color: var(--color-dark); transform: scaleX(0); transform-origin: bottom right; transition: transform var(--transition-interactive); } .menu-desktop a:hover::after { transform: scaleX(1); transform-origin: bottom left; } .menu-desktop a:hover, .menu-desktop a[aria-current="page"] { color: #000000; } .header-sep { width: 1px; height: 1.125rem; background-color: #e0e0e0; margin: 0 1.875rem; } /* Language Switcher */ .language-switcher-inline { display: flex; gap: 0.9375rem; align-items: center; } .lang-link { font-size: 0.75rem; font-weight: 600; text-decoration: none; color: var(--color-dark); opacity: 0.6; transition: all var(--transition-std); letter-spacing: 0.05em; cursor: pointer; } .lang-link:hover, .lang-link.active { opacity: 1; color: var(--color-accent); } /* Mobile Menu & Drawer */ .menu-toggle { display: none; cursor: pointer; background: none; border: none; padding: 0.625rem; color: var(--color-dark); margin-right: -0.625rem; margin-left: auto; } .menu-mobile { visibility: hidden; opacity: 0; max-height: 0; overflow: hidden; transition: all var(--transition-std) ease-in-out; background-color: #fff; position: fixed; left: 0; right: 0; top: var(--header-height); z-index: var(--z-mobile-menu); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05); padding-left: var(--site-side-padding); padding-right: var(--site-side-padding); overflow-y: auto; } .menu-mobile.open { visibility: visible; opacity: 1; max-height: 80vh; padding-bottom: 1.25rem; border-bottom: 1px solid #eee; display: block; } .menu-mobile ul { list-style: none; padding: 0; margin: 1.25rem 0; } .menu-mobile li { margin: 0.9375rem 0; text-transform: uppercase; letter-spacing: 0.1em; border-bottom: 1px solid #eee; padding-bottom: 0.625rem; } .menu-mobile a { font-size: 1rem; text-decoration: none; color: var(--color-dark); font-weight: 500; display: block; } .mobile-lang-row { display: flex; justify-content: flex-start; align-items: center; gap: 1.25rem; margin-top: 0.9375rem; border: none !important; padding-top: 1.875rem; padding-bottom: 0.625rem; } /* ========================================================================== 8. HERO SECTION ========================================================================== */ .hero-section { position: relative; padding-top: 40px; padding-bottom: 50px; display: flex; align-items: center; background-color: #ffffff !important; overflow: hidden; z-index: 1; } /* Background Sketch Effect (Homepage only) */ .hero-sketch::before { content: ""; position: absolute; top: -70px; right: 0; width: 50%; height: 110%; background-image: url('bilder/kanzlei-skizze_2.jpg'); background-repeat: no-repeat; background-position: top right; background-size: contain; filter: grayscale(100%) brightness(110%) contrast(120%); mix-blend-mode: multiply; opacity: 0.5; pointer-events: none; z-index: var(--z-hero-sketch); } .hero-grid { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 40px; align-items: start; width: 100%; position: relative; } .hero-centered { align-items: center !important; } .hero-text { order: 1; } .hero-image-wrapper { order: 2; width: 100%; display: flex; justify-content: center; flex-direction: column; margin-top: -5px; } .hero-description { width: 100%; } .hero-description p { margin-top: 0.9375rem; } .hero-description p:first-child { margin-top: 0; } .hero-headline { margin-bottom: 0.9375rem; } .hero-sub { display: block; font-family: var(--font-sans); font-size: clamp(0.45rem, 1.75vw, 0.66rem); text-transform: uppercase; letter-spacing: clamp(0.03rem, 0.2vw, 0.18rem); color: #777; margin-bottom: 0.9375rem; font-weight: 500; line-height: 1.4; white-space: nowrap; } .hero-h2-look { font-family: var(--font-serif); color: var(--color-dark); line-height: 1.1; font-size: clamp(1.7rem, 4vw, 2rem); font-weight: 400; letter-spacing: -0.01em; display: inline; margin: 0; } .hero-img-fit { width: 100%; height: 25rem; object-fit: cover; border-radius: 2px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); } /* ========================================================================== 9. RAIL & WAGON LAYOUT (Content Structure) ========================================================================== */ .clean-grid-container { max-width: var(--site-max-width); margin: 0 auto; padding: 80px var(--site-side-padding) 5rem var(--site-side-padding); display: grid; grid-template-columns: 1fr 360px; gap: 80px; align-items: stretch; } /* Left Column (Main Content) */ .layout-left { min-width: 0; } .text-block { font-size: 1.05rem; line-height: 1.8; color: #333; } .intro-bold { font-weight: 600; font-size: 1.2rem; margin-bottom: 2rem; color: var(--color-dark); } .text-block h2 { margin-top: 2.5rem; font-size: 1.6rem; color: var(--color-dark); border-left: 3px solid var(--color-accent); padding-left: 15px; line-height: 1.2; } .check-list { list-style: none; padding: 0; margin: 1.5rem 0; } .check-list li { position: relative; padding-left: 30px; margin-bottom: 10px; } .check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--color-accent); font-weight: bold; } .content-cta { background-color: #ffffff; padding: 40px; margin-top: 60px; border: 2px solid var(--color-dark); border-radius: 2px; text-align: center; display: flex; flex-direction: column; align-items: center; } .content-cta h3 { margin-top: 0; font-size: 1.4rem; color: var(--color-dark); margin-bottom: 10px; } .content-cta p { text-align: center; margin-bottom: 1.5rem; color: var(--color-text); } /* Right Column (Rail & Wagon Sidebar) */ .layout-right-rail { position: relative; height: 100%; } .sticky-wagon { position: -webkit-sticky; position: sticky; top: 20px; z-index: 50; width: 100%; } /* Sidebar Widgets */ .blue-sidebar-box { background-color: #ffffff; border: 2px solid var(--color-dark); color: var(--color-dark); padding: 50px 30px 60px 30px; border-radius: 2px; text-align: center; box-shadow: 0 10px 30px rgba(0,0,0,0.05); margin-bottom: 40px; } .sidebar-icon { margin-bottom: 20px; } .sidebar-icon svg { width: 60px; height: 60px; color: var(--color-dark); fill: currentColor; } .sidebar-emergency-info h3 { color: var(--color-dark); font-family: var(--font-serif); font-size: 1.4rem; margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.05em; } .sidebar-number { display: block; font-family: var(--font-serif); font-size: 2rem; color: var(--color-dark); text-decoration: none; font-weight: 600; transition: opacity 0.3s; } .sidebar-number:hover { opacity: 0.7; } /* Sidebar Navigation */ .sidebar-nav-box h3 { font-size: 0.85rem; text-transform: uppercase; color: #bbb; margin-bottom: 15px; letter-spacing: 0.1em; border-bottom: 1px solid #eee; padding-bottom: 10px; } .sidebar-menu { list-style: none; padding: 0; margin: 0; } .sidebar-menu li { border-bottom: 1px solid #f9f9f9; } .sidebar-menu li:last-child { border-bottom: none; } .sidebar-menu a { display: flex; justify-content: space-between; padding: 16px 0; color: #767676; text-decoration: none; transition: all 0.2s; font-weight: 400; font-size: 1.05rem; } .sidebar-menu a:hover { color: var(--color-dark); padding-left: 5px; } .sidebar-menu a::after { content: "›"; font-size: 1.2rem; line-height: 1; color: #eee; } /* Sidebar Actions */ .sidebar-action-grid { display: flex; justify-content: center; gap: 15px; margin-top: 25px; margin-bottom: 10px; } .action-icon-btn { width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; border: none; box-shadow: 0 4px 6px rgba(0,0,0,0.1); transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.4s ease; } .action-icon-btn:hover { transform: scale(1.1); opacity: 0.9; } .action-icon-btn svg { width: 24px; height: 24px; fill: currentColor; } .btn-phone { background-color: #0b2241; } .btn-email { background-color: #0b2241; } .btn-whatsapp { background-color: #25D366; } /* ========================================================================== 10. EMERGENCY BANNER (Wide Section) ========================================================================== */ .emergency-banner-section { width: 100%; background: linear-gradient(145deg, var(--color-dark) 0%, #2a343d 100%); color: #ffffff; padding-top: 4rem; padding-bottom: 4rem; position: relative; margin-top: 0; margin-bottom: 0; order: -1; /* Ensure visibility on mobile */ } .emergency-box { background-color: transparent; width: 100%; padding: 0; margin: 0; text-align: center; position: relative; z-index: 2; box-shadow: none; border-radius: 0; } .emergency-content-wrapper { position: relative; z-index: 2; } .emergency-content-wrapper h3, .emergency-box h3 { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 400; color: #ffffff; margin-bottom: 1rem; letter-spacing: 0.05em; text-transform: uppercase; } .emergency-content-wrapper p, .emergency-box p { font-family: var(--font-sans); font-size: 1rem; font-weight: 300; color: rgba(255, 255, 255, 0.8); margin: 0 auto 2rem auto; max-width: 40rem; line-height: 1.6; text-align: center !important; } .emergency-action-row { display: flex; justify-content: center; align-items: center; gap: 1.5rem; flex-wrap: wrap; } .emergency-number-text { font-family: var(--font-serif); font-size: 3rem; font-weight: 400; color: #ffffff; letter-spacing: 0.02em; line-height: 1; margin-bottom: 0; font-variant-numeric: lining-nums; } .btn-emergency-call { display: inline-flex; justify-content: center; align-items: center; width: 3.5rem; height: 3.5rem; background-color: transparent; border: 1px solid rgba(255,255,255,0.3); border-radius: 50%; transition: all 0.3s ease; box-shadow: none; margin-bottom: 0; } .btn-emergency-call:hover { background-color: #fff; border-color: #fff; transform: scale(1.1); box-shadow: 0 0 20px rgba(255,255,255,0.3); } .phone-icon { width: 1.5rem; height: 1.5rem; fill: #ffffff; transition: fill 0.3s ease; } .btn-emergency-call:hover .phone-icon { fill: var(--color-dark); } .emergency-bg-icon { display: none !important; } /* ========================================================================== 11. EMERGENCY NOTIFICATION BOX (Smaller Component) ========================================================================== */ .emergency-box-small { display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 2rem; margin-bottom: 2rem; padding: 1.5rem 1.8rem; background-color: rgba(34, 47, 84, 0.02); border: 1px solid rgba(34, 47, 84, 0.08); border-left: 4px solid var(--kanzlei-blau); border-radius: 2px; transition: all 0.5s ease; } .emergency-box-small:hover { background-color: rgba(34, 47, 84, 0.05); box-shadow: 0 10px 30px rgba(0,0,0,0.05); } .emergency-text-part { display: flex; flex-direction: column; justify-content: center; } .emergency-label { font-family: var(--font-sans); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.15em; font-weight: 700; color: var(--kanzlei-blau); margin-bottom: 0.5rem; opacity: 0.8; } .emergency-number { font-family: var(--font-serif); font-size: 1.6rem; font-weight: 500; color: var(--color-dark); line-height: 1; font-variant-numeric: lining-nums; } /* Call Trigger Button (Right side) */ .emergency-call-trigger { width: 3.5rem; height: 3.5rem; background: #ffffff; border: 1px solid var(--kanzlei-blau); border-radius: 50%; display: flex; justify-content: center; align-items: center; color: var(--kanzlei-blau); flex-shrink: 0; margin-left: 1.5rem; transition: all 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); cursor: pointer; } .emergency-call-trigger svg { width: 1.4rem; height: 1.4rem; fill: currentColor; } .emergency-box-small:hover .emergency-call-trigger { background: var(--kanzlei-blau); border-color: var(--kanzlei-blau); color: #ffffff; transform: scale(1.05); box-shadow: 0 5px 15px rgba(0,51,102, 0.2); } /* ========================================================================== 12. COMPETENCE GRID & PARTNERS ========================================================================== */ .competence-section-new { padding-top: 3rem; padding-bottom: 3rem; background-color: var(--color-bg-white); } .comp-header { text-align: center; max-width: 75rem; margin: 0 auto 3rem auto; } .competence-section-new .h2-serif { font-family: var(--font-serif); font-weight: 300; font-size: clamp(2rem, 4vw, 2.4rem); color: var(--color-dark); margin-bottom: 1.5rem; line-height: 1.1; } .intro-promise { font-family: var(--font-serif); font-size: 1.15rem; color: var(--color-dark); line-height: 1.5; margin-bottom: 1rem; font-weight: 400; text-align: center; max-width: 50rem; margin-left: auto; margin-right: auto; } .intro-promise em { font-style: italic; font-weight: 600; color: var(--color-accent); } .nobreak-desktop { white-space: nowrap; } .separator-line-center { width: 3rem; height: 1px; background-color: var(--color-accent); opacity: 0.3; margin: 1.25rem auto; } /* Grid System */ .competence-grid-4col { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; width: 100%; } .grid-spacer { width: 100%; text-align: center; margin: 2.5rem 0 1rem 0; display: flex; justify-content: center; align-items: center; position: relative; } .grid-spacer::before, .grid-spacer::after { content: ""; flex: 1; height: 1px; background-color: rgba(0,0,0,0.05); max-width: 100px; } .spacer-label { padding: 0 1rem; font-family: var(--font-sans); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.15em; color: var(--color-grey-medium); font-weight: 400; margin: 0; line-height: 1; display: block; } /* Card Design */ a.comp-card.square-card { background-color: #ffffff; border: 1px solid rgba(0, 0, 0, 0.08); padding: 1.8rem 1.5rem; border-radius: 2px; display: flex; flex-direction: column; align-items: center; aspect-ratio: 1 / 1; min-height: 250px; text-decoration: none; color: inherit; position: relative; transition: transform 1.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 1.2s cubic-bezier(0.16, 1, 0.3, 1), border-color 1.2s ease; } @media (max-width: 1400px) { a.comp-card.square-card { aspect-ratio: auto; min-height: 100%; } } a.comp-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0,0,0,0.06); border-color: rgba(34, 47, 84, 0.4); z-index: 10; } .card-icon svg { width: 28px; height: 28px; color: var(--color-accent); opacity: 0.9; margin-bottom: 1.2rem; transition: transform var(--transition-premium); } a.comp-card:hover .card-icon svg { transform: scale(1.15); } .card-content { width: 100%; text-align: center; } .comp-card h3 { font-family: var(--font-serif); font-size: 1.15rem; color: var(--color-dark); margin: 0 0 1rem 0; font-weight: 400; line-height: 1.25; } /* List inside cards */ .comp-list-clean { list-style: none; padding: 0; margin: 0 auto; display: inline-block; text-align: left; width: 100%; } .comp-list-clean li { padding: 0.2rem 0; font-size: 0.85rem; color: var(--color-grey-medium); display: flex; align-items: flex-start; justify-content: flex-start; line-height: 1.5; } .comp-list-clean li::before { content: "◇"; font-size: 0.75rem; color: var(--color-accent); margin-right: 0.6rem; font-weight: 400; display: inline-block; position: relative; top: 2px; opacity: 0.8; } /* Partner Logos */ .partner-section { background-color: var(--color-bg-white); border-bottom: 1px solid rgba(0,0,0,0.05); } .partner-row { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 2rem; width: 100%; } .partner-logo { filter: grayscale(100%) opacity(0.5); height: auto; max-height: 5.5rem; width: auto; max-width: 15rem; display: block; transform: scale(1) translateZ(0); transition: filter 1.5s cubic-bezier(0.16, 1, 0.3, 1), opacity 1.5s cubic-bezier(0.16, 1, 0.3, 1), transform 1.5s ease-out; will-change: transform, filter; -webkit-font-smoothing: subpixel-antialiased; } .partner-logo:hover { filter: grayscale(0%) opacity(1); transform: scale(1.05) translateZ(0); } /* ========================================================================== 13. ABOUT / BIO / PROCESS ========================================================================== */ .bio-grid { display: grid; grid-template-columns: 400px 1fr; gap: 4rem; align-items: start; width: 100%; } .about-teaser-section { padding-top: 40px; padding-bottom: 40px; } .about-teaser-section .bio-grid { border: 1px solid var(--color-dark); padding: 40px; background-color: #fff; box-sizing: border-box; } /* Images in About/Bio */ .about-img-wrapper { width: 100%; max-width: 100%; } .about-img-style { width: 100%; height: auto; display: block; box-shadow: 15px 15px 0px var(--color-accent); filter: grayscale(30%); border-radius: 2px; } .about-text-col { padding-left: 0; text-align: justify; } .about-text-col h2 { line-height: 1.1; } /* Process Section */ .process-section.grey-bg { background-color: var(--color-bg-white); } .process-noborder-container { display: grid; grid-template-columns: 1fr 400px; gap: 60px; padding: 50px 0; align-items: center; } .process-text-col { padding-right: 1.25rem; } /* Process Steps */ .process-steps-horizontal { display: grid !important; grid-template-columns: 1fr 1fr 1fr !important; gap: 0 !important; width: 100% !important; box-sizing: border-box !important; padding-bottom: 0; margin-bottom: 0; border-bottom: none; } .step-item-horiz { width: 100% !important; border: none !important; margin: 0 !important; text-align: left !important; padding-left: 30px !important; padding-right: 30px !important; display: flex; flex-direction: column; position: relative; } .step-item-horiz::after { content: ""; position: absolute; right: 0; top: 10%; height: 80%; width: 1px; background-color: rgba(0,0,0,0.1); } .step-item-horiz:first-child { padding-left: 0 !important; } .step-item-horiz:last-child { border-right: none !important; padding-right: 0 !important; } .step-item-horiz:last-child::after { display: none; } .step-num { font-family: var(--font-serif); font-size: 2.8rem; color: #b0b0b0; font-weight: 300; line-height: 1; margin-bottom: 0.9375rem; } .step-txt h3 { font-family: var(--font-sans); font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.1em; font-weight: 700; margin: 0 0 0.625rem 0; color: var(--color-dark); } .step-txt p { font-size: 0.85rem; margin: 0; line-height: 1.5; color: var(--color-text); } /* Lawyer Profile */ .lawyer-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 3.125rem; align-items: start; } .lawyer-image-col { width: 100%; display: flex; flex-direction: column; align-items: flex-start; } .lawyer-bio-image { width: 100%; height: auto; border-radius: 2px; box-shadow: 15px 15px 0px var(--color-accent); filter: grayscale(30%); } .bio-list-block { margin-bottom: 2.5rem; width: 100%; } .bio-list-header { border-bottom: 1px solid rgba(0,0,0,0.1); padding-bottom: 0.625rem; margin-bottom: 1.25rem; font-family: var(--font-serif); font-size: 1.3rem; color: var(--color-dark); } .bio-list-plain { list-style: none; padding: 0; margin: 0; width: 100%; } .bio-list-item { margin: 0; width: 100%; display: block; } /* Association Links */ a.association-link { display: block; width: 100%; text-decoration: none; padding: 14px 0; color: var(--color-grey-medium); font-family: var(--font-sans); font-size: 0.95rem; font-weight: 500; border-bottom: 1px solid rgba(0,0,0,0.05); background-color: transparent; transition: all 1.8s cubic-bezier(0.25, 0.46, 0.45, 0.94); } .bio-list-item:last-child a.association-link { border-bottom: none; } a.association-link:hover { background-color: transparent; color: var(--color-dark); padding-left: 4px; border-bottom-color: rgba(0,0,0,0); } /* Emergency Vertical Box (Integrated into Contact Section Logic) */ .emergency-box-vertical { background: linear-gradient(145deg, var(--color-dark) 0%, #2a343d 100%); color: #ffffff; width: 100%; height: 100%; min-height: 25rem; padding: 3rem 2rem; border-radius: 2px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; box-shadow: 0 0.625rem 1.875rem rgba(0,0,0,0.15); } .emergency-content-vertical-inner { width: 100%; display: flex; flex-direction: column; align-items: center; } .emergency-content-vertical-inner h3 { font-family: var(--font-serif); font-size: 1.5rem; font-weight: 400; color: #ffffff; margin-bottom: 1rem; letter-spacing: 0.05em; text-transform: uppercase; } .emergency-content-vertical-inner p { color: rgba(255, 255, 255, 0.85); font-size: 1rem; line-height: 1.6; margin-bottom: 2rem; text-align: center !important; } .emergency-action-row-vertical { display: flex; align-items: center; justify-content: center; gap: 1.5rem; flex-wrap: wrap; } .emergency-number-compact { font-family: var(--font-serif); font-size: 2rem; color: #ffffff; font-weight: 400; line-height: 1; white-space: nowrap; letter-spacing: 0.02em; } /* Spezifischer Fix für das Icon im Button (erzwingt Weiß) */ .emergency-action-row-vertical .btn-emergency-call svg { width: 1.5rem; height: 1.5rem; transition: fill 0.3s ease; } .emergency-action-row-vertical .btn-emergency-call svg path { fill: #ffffff; } .emergency-action-row-vertical .btn-emergency-call:hover svg path { fill: var(--color-dark); } /* ========================================================================== 14. FAQ SECTION ========================================================================== */ .faq-section { padding-bottom: 5rem; } .faq-container { max-width: 56.25rem; } .faq-item { border-bottom: 1px solid rgba(0,0,0,0.1); margin-bottom: 0; } .faq-footer-image-wrapper { margin-top: 3.75rem; text-align: center; } .faq-footer-image { max-width: 100%; height: auto; border-radius: 2px; box-shadow: 0 0.625rem 1.875rem rgba(0,0,0,0.1); } /* Accordion Logic */ details { padding: 1.56rem 0; transition: all var(--transition-premium); } summary { font-family: var(--font-serif); font-size: 1.3rem; font-weight: 400; color: var(--color-dark); cursor: pointer; list-style: none; position: relative; padding-right: 2.5rem; line-height: 1.3; } summary::-webkit-details-marker { display: none; } /* Accordion Arrow */ summary::after { content: ''; position: absolute; top: 0.75rem; right: 0.3125rem; width: 0.5rem; height: 0.5rem; border-top: 1px solid var(--color-grey-light); border-right: 1px solid var(--color-grey-light); transform: rotate(135deg); transition: all var(--transition-premium); } /* Open State */ details[open] summary { color: var(--color-accent); margin-bottom: 0.9375rem; } details[open] summary::after { border-color: var(--color-accent); transform: rotate(-45deg) translateY(2px); } /* Answer Animation */ .faq-answer { font-family: var(--font-sans); color: var(--color-text); line-height: 1.7; font-size: 1rem; padding-right: 1.25rem; animation: fadeIn 0.4s ease-in-out; } .faq-answer p { margin-bottom: 0.9375rem; text-align: justify; hyphens: auto; } .faq-answer ul, .faq-answer ol { margin-bottom: 0.9375rem; padding-left: 1.25rem; } .faq-answer li { margin-bottom: 0.5rem; } .faq-answer a:not(.btn) { color: var(--color-dark); text-decoration: underline; text-decoration-color: rgba(0,0,0,0.2); transition: all var(--transition-fast); } .faq-answer a:not(.btn):hover { color: var(--color-accent); text-decoration-color: var(--color-accent); } @keyframes fadeIn { from { opacity: 0; transform: translateY(-5px); } to { opacity: 1; transform: translateY(0); } } /* FAQ Call-to-Action Box */ .faq-cta-wrapper { margin-top: 60px; text-align: center; background-color: transparent; padding: 40px; border-radius: 2px; border: 1px solid #eee; display: block; } .faq-cta-text { display: block; font-family: var(--font-serif); font-size: 1.5rem; margin-bottom: 20px; color: var(--color-dark); font-weight: 400; line-height: 1.2; } .faq-cta-wrapper .faq-btn-group { justify-content: center; margin-top: 0; width: 100%; } .faq-cta-wrapper .btn { background-color: var(--color-dark); color: #fff; border: 1px solid var(--color-dark); } .faq-cta-wrapper .btn:hover { background-color: #0b2241; color: #ffffff; transform: scale(1.03); } /* ========================================================================== 15. CAREERS / SUBPAGES (Downloads, Contact, Legal) ========================================================================== */ .career-content-wrapper { width: 100%; margin: 0; } .career-main-image { width: 100%; height: auto; display: block; border-radius: 2px; box-shadow: 15px 15px 0px var(--color-accent); filter: grayscale(30%); margin-top: 2rem; } .intro-text-centered { text-align: center; max-width: 45rem; margin: 0 auto 3.75rem auto; font-size: 1.1rem; color: var(--color-dark); } /* Job Boxes */ .job-box { background-color: #ffffff; border: 1px solid rgba(0,0,0,0.1); border-left: 4px solid var(--color-accent); padding: 2.5rem; margin-bottom: 2.5rem; border-radius: 2px; transition: none !important; box-shadow: none; } .job-title { font-size: 1.5rem; font-weight: 600; margin-bottom: 0.625rem; color: var(--color-dark); font-family: var(--font-serif); } .job-requirements ul { padding-left: 1.25rem; margin-bottom: 1.25rem; } .job-requirements li { margin-bottom: 0.5rem; font-family: var(--font-sans); } /* Application Notice Box */ .application-notice { text-align: left; display: flex; flex-direction: column; align-items: stretch; background-color: #fff; border: 1px solid var(--kanzlei-blau); padding: 2.5rem 2rem; margin-top: 3.125rem; font-size: 1.05rem; border-radius: 2px; } .application-notice .job-title { text-align: center; align-self: center; margin-bottom: 1.5rem; width: 100%; } .application-notice p, .application-notice ul { margin-bottom: 1rem; } .application-notice ul { padding-left: 1.25rem; } .info-box-grey { background: #ffffff; padding: 1.5rem; border: 1px solid rgba(0,0,0,0.1); border-left: 3px solid var(--kanzlei-blau); margin-top: 1rem; margin-bottom: 1rem; font-size: 0.95rem; text-align: left; } .no-cover-letter { font-weight: 700; display: block; margin-bottom: 0.5rem; color: var(--color-dark); text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.9rem; } /* Downloads Section */ .download-section { padding-top: var(--section-spacing); padding-bottom: var(--section-spacing); background-color: var(--color-bg-white); color: #111; display: flex; justify-content: center; min-height: 60vh; } .page-headline { font-family: var(--font-serif); font-size: 2.5rem; font-weight: 600; margin-bottom: 2.5rem; color: var(--color-dark); letter-spacing: -0.5px; text-align: left; padding-left: 0.625rem; text-wrap: balance; } .download-list { list-style: none; padding: 0; margin: 0; } .dl-item { display: flex; align-items: center; justify-content: space-between; padding: 1.25rem 1.56rem; margin-bottom: 0.5rem; border-bottom: 1px solid rgba(0,0,0,0.08); border-radius: 6px; text-decoration: none; transition: background-color var(--transition-std), border-color var(--transition-std); cursor: pointer; } .dl-item:hover { background-color: rgba(34, 47, 84, 0.08); border-color: transparent; } .dl-content { display: flex; align-items: center; } .file-icon { width: 2rem; height: 2rem; margin-right: 1.25rem; color: #cc0000; opacity: 0.9; flex-shrink: 0; } .dl-text-group { display: flex; flex-direction: column; } .dl-title { font-family: var(--font-serif); font-size: 1.3rem; font-weight: 600; color: var(--color-dark); margin-bottom: 0.25rem; line-height: 1.2; } .dl-meta { font-family: var(--font-sans); font-size: 0.8rem; color: #888; text-transform: uppercase; letter-spacing: 0.05em; } .dl-action { color: var(--color-dark); font-size: 1.2rem; opacity: 0.2; transition: opacity var(--transition-std); } .dl-item:hover .dl-action { opacity: 1; color: var(--color-accent); } /* Legal / Impressum Text */ .legal-text-container { max-width: 56.25rem; margin: 0 auto; text-align: left; } .legal-text-container h2 { font-family: var(--font-serif); font-size: 1.8rem; color: var(--color-dark); margin-top: 3.125rem; margin-bottom: 1.56rem; } .legal-text-container h3 { font-family: var(--font-sans); font-size: 1.1rem; font-weight: 700; margin-top: 1.875rem; margin-bottom: 0.9375rem; color: var(--color-dark); } .legal-text-container h4 { font-family: var(--font-sans); font-size: 1rem; font-weight: 600; margin-top: 1.56rem; margin-bottom: 0.625rem; font-style: italic; color: var(--color-grey-medium); } .legal-text-container p { font-size: 1rem; color: var(--color-text); margin-bottom: 0.9375rem; line-height: 1.7; } .legal-text-container ul { padding-left: 1.25rem; margin-bottom: 1.25rem; } .legal-text-container li { margin-bottom: 0.625rem; line-height: 1.6; } .legal-highlight-box { border: 1px solid var(--color-dark); padding: 1.875rem; background-color: #f9f9f9; margin: 2.5rem 0; } .legal-address-box { font-style: normal; background-color: var(--color-bg-alt); padding: 1.25rem; border-left: 3px solid var(--color-accent); margin-bottom: 1.25rem; } .legal-text-container a { color: var(--color-dark); text-decoration: underline; } .legal-footer-note { font-size: 0.8rem; color: #999; margin-top: 3.75rem; border-top: 1px solid #eee; padding-top: 1.25rem; } /* Contact Page */ .contact-page-section { padding-bottom: 3.75rem; } .contact-split-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; margin-top: 3.75rem; margin-bottom: 2.5rem; } .contact-emergency-col { display: flex; flex-direction: column; justify-content: flex-start; align-items: center; margin-top: 2.18rem; height: auto !important; } .detail-block { margin-bottom: 3.125rem; } .detail-block h3 { font-family: var(--font-serif); font-size: 1.4rem; border-bottom: 1px solid rgba(0,0,0,0.1); padding-bottom: 0.9375rem; margin-bottom: 1.25rem; color: var(--color-dark); } .contact-address { font-style: normal; font-size: 1.1rem; line-height: 1.6; color: var(--color-text); } .contact-list-plain { list-style: none; padding: 0; margin: 0; } .contact-list-plain li { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid #f4f4f4; font-size: 1.05rem; } .contact-list-plain li:last-child { border-bottom: none; } .contact-list-plain .label { color: #999; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 600; } .location-section { background-color: var(--color-bg-white); border-top: 1px solid rgba(0,0,0,0.05); } .location-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3.75rem; align-items: start; } .location-text { padding-right: 1.25rem; } .location-text p { color: var(--color-grey-medium); margin-bottom: 1.5em; line-height: 1.7; } .location-text .btn { margin-top: 0.3125rem; } .location-map-wrapper { margin-top: 4.375rem; } .map-img-styled { width: 100%; height: auto; border-radius: 2px; box-shadow: 0 0.625rem 1.875rem rgba(0,0,0,0.08); transition: filter var(--transition-std), transform var(--transition-std); cursor: zoom-in; } .map-img-styled:hover { transform: scale(1.01); filter: brightness(1.05); } .vcard-icon { display: inline-block; vertical-align: middle; margin-left: 0.625rem; color: #b0b0b0; transition: color 0.3s; } .vcard-icon:hover { color: #333; } /* ========================================================================== 16. FOOTER ========================================================================== */ .footer { background-color: var(--color-dark); color: #ffffff; border-top: none; font-size: 0.85rem; content-visibility: auto; contain-intrinsic-size: 861px; width: 100%; } .footer-grid-layout { display: grid; grid-template-columns: 35% 1fr; gap: 5rem; align-items: start; width: 100%; } /* Left Column */ .footer-col-left { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 0; } .footer .brand-logo { transform: none; margin-bottom: 1.56rem; margin-top: 0; } .footer .brand-name, .footer .brand-symbol span::before { color: #ffffff; } .footer .brand-symbol span.vowel::before { color: #aaaaaa; } .footer .brand-symbol { border-right: 1px solid rgba(255, 255, 255, 0.3); } .footer .brand-slogan { color: #999999; position: relative; left: -1.5px; } .coop-wrapper { margin-top: 0.18rem; width: 100%; text-align: center; } .koop-label { font-size: 0.65rem; color: #aaa; text-transform: uppercase; letter-spacing: 0.15em; margin-bottom: 0.1rem; display: inline-block; } .cooperation-logos-left { display: flex; flex-direction: column; gap: 2.18rem; align-items: center; } .koop-img-tall { height: 3.2rem; filter: saturate(0%) opacity(0.6); transition: all 0.4s; margin-top: 18px; } .koop-img-tall:hover { filter: saturate(100%) opacity(1); } /* Right Column */ .footer-col-right { border-left: 1px solid rgba(255,255,255,0.1); padding-left: 3.75rem; padding-top: 0.625rem; margin-top: -1.5rem; } .footer-block { margin-top: 1.875rem; } .footer-label { display: block; font-family: var(--font-sans); font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.15em; color: #aaa; margin-bottom: 0.625rem; margin-top: 0; font-weight: 600; } .footer-address-clean { display: block; margin-bottom: 3.5rem; color: #e0e0e0; font-style: normal; text-decoration: none !important; } .footer-address-clean a { text-decoration: none !important; color: inherit !important; } .footer-address-clean a:hover { opacity: 0.8; } .contact-list { list-style: none; padding: 0; margin-bottom: 3.5rem; } .contact-row { display: grid; grid-template-columns: 1.56rem 1fr; align-items: baseline; } .contact-row a { color: #e0e0e0; text-decoration: none !important; } .c-type { color: #aaa; font-size: 0.75rem; font-weight: 600; } .footer-area-served { margin-top: 0.9375rem; font-size: 0.85em; opacity: 0.8; line-height: 1.4; } .footer-area-served span:first-child { display: block; margin-bottom: 0.25rem; font-weight: 600; } .footer-area-served .footer-label { font-size: 0.4rem; } .footer-bottom-row { margin-top: 3.75rem; display: flex; justify-content: space-between; align-items: flex-end; border-top: 1px solid rgba(255,255,255,0.05); padding-top: 1.25rem; } .footer-legal-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 2rem; } .footer-legal-nav a { color: #aaa; text-decoration: none; text-transform: uppercase; font-size: 0.7rem; letter-spacing: 0.1em; } .copyright-text { color: #777; font-size: 0.7rem; } ul.footer-city-list { margin: 0; padding: 0; list-style: none; display: block; } ul.footer-city-list li { display: inline; } ul.footer-city-list li::after { content: " • "; color: inherit; margin: 0 0.2rem; } ul.footer-city-list li:last-child::after { display: none; } /* ========================================================================== 17. MEDIA QUERIES (RESPONSIVE) ========================================================================== */ /* --- Large Screens & Desktop Tweaks --- */ @media (max-width: 90.625rem) { .brand-logo { font-size: 1.1rem; } } @media (min-width: 64.0625rem) { .menu-toggle { display: none !important; } } @media (min-width: 56.3125rem) { .hero-image-wrapper { order: 2; } .hero-text { order: 1; } .hero-text h1 { letter-spacing: 0.02em; } h1, .hero-headline { white-space: nowrap !important; text-wrap: nowrap !important; max-width: 100% !important; display: block; } } /* --- Tablet / Desktop Boundary (max-width: 64rem / ~1024px) --- */ /* MERGED: Includes previous repair patches for layout stability */ @media (max-width: 64rem) { /* Navigation & Menu */ .menu-desktop, .header-sep, .language-switcher-inline { display: none; } .menu-toggle { display: block; } .menu-mobile li { padding-bottom: 0; } .menu-mobile a { padding: 0.9375rem 0; display: block; } /* Full Height Menu Patch */ .menu-mobile.open { max-height: none !important; height: auto !important; bottom: 0 !important; top: var(--header-height) !important; border-bottom: none !important; box-shadow: none !important; padding-bottom: 100px !important; } /* Cards */ .competence-grid-4col { grid-template-columns: repeat(2, 1fr); gap: 1rem; } a.comp-card.square-card { padding: 1.5rem; } /* Headlines Repair Patch */ h1, h2, h3, h4, .hero-h2-look, .page-headline { white-space: normal !important; text-wrap: balance !important; word-wrap: break-word; overflow-wrap: break-word; hyphens: manual !important; -webkit-hyphens: manual !important; max-width: 100%; text-align: left; } .emergency-box h3, .emergency-content-wrapper h3 { text-align: center !important; } /* Layout Repair Patch */ .clean-grid-container { display: block; padding-top: 2rem; padding-bottom: 2rem; overflow-x: hidden; } .layout-left, .layout-right-rail { width: 100%; max-width: 100%; margin-bottom: 3rem; min-width: 0; } .text-block, .text-block p, .intro-bold { max-width: 100%; word-wrap: break-word; overflow-wrap: break-word; } .breadcrumb-list { flex-wrap: wrap; line-height: 1.8; } /* Header Spacing */ .full-width-header { padding-top: 7rem; padding-bottom: 2rem; padding-left: var(--site-side-padding); padding-right: var(--site-side-padding); } .full-width-header h1 { font-size: 2rem; } /* Sidebar Fixes */ .blue-sidebar-box { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 2rem 1.5rem; } .sidebar-emergency-info h3 { margin-right: 0; margin-bottom: 1rem; font-size: 1.2rem; } .sidebar-action-grid { margin-top: 10px; justify-content: center; width: 100%; flex-wrap: wrap; } } /* --- Intermediate Breakpoint (max-width: 1000px) --- */ @media (max-width: 1000px) { /* Grid Adjustments */ .layout-right-rail { order: -1; width: 100%; height: auto; } .sticky-wagon { position: static; } /* Elements */ .sidebar-icon { margin-bottom: 0; } .sidebar-icon svg { width: 35px; height: 35px; } .sidebar-number { font-size: 1.3rem; margin-bottom: 0; } .content-cta { margin-top: 40px; padding: 30px 20px; } /* Bio / Process */ .about-bordered-container { flex-direction: column; padding: 30px; gap: 40px; } .about-img-wrapper { flex: 0 0 100%; max-width: 100%; padding: 0; margin-right: 15px; margin-bottom: 15px; } .process-noborder-container { grid-template-columns: 1fr; flex-direction: column; gap: 40px; } .process-noborder-container .about-img-wrapper { order: -1; margin-bottom: 20px; } .lawyer-grid { grid-template-columns: 1fr; gap: 2rem; } .lawyer-image-col { order: -1; } .bio-grid { grid-template-columns: 1fr; gap: 2rem; } } /* --- Main Mobile Breakpoint (max-width: 56.25rem) --- */ @media (max-width: 56.25rem) { :root { --site-side-padding: 1.5rem; } .desktop-break, .desktop-only { display: none !important; } .mobile-break, .mobile-visible-only { display: block !important; } /* Typography Overrides */ p, .faq-answer, .step-txt p, .legal-text-container p, .job-requirements li { font-size: 1rem; } h1 { font-size: 1.7rem; line-height: 1.2; margin-bottom: 1.56rem; } h2 { font-size: 1.7rem; margin-bottom: 1.56rem; } h3 { font-size: 1.3rem; margin-bottom: 0.9375rem; } /* Header & Nav */ .header-container { height: 5.625rem; overflow: visible; } .header-inner { justify-content: space-between; } .menu-mobile { top: 5.625rem; } .brand-logo { max-width: 75%; font-size: 0.95rem !important; margin-bottom: -0.625rem; z-index: 10; pointer-events: auto; } .menu-toggle { display: block; position: absolute; top: 1.4375rem; right: 1.25rem; width: 2.75rem; height: 2.75rem; z-index: 99999; } .mobile-lang-row .lang-link { font-size: 1rem !important; padding: 10px !important; } /* Layout */ section, footer { padding-top: var(--section-spacing-mobile); padding-bottom: var(--section-spacing-mobile); } main#main-content { display: flex; flex-direction: column; } /* Hero */ .hero-section { padding-top: 1.875rem; } .hero-grid { display: flex; flex-direction: column; gap: 2.5rem; margin-right: 0; } .hero-image-wrapper { order: 10; margin-top: 2.5rem; transform: none; width: 100%; } .hero-text { order: 1; text-align: justify; padding-left: 0; } .hero-section::before { opacity: 0.2; width: 100%; background-position: bottom right; display: none; } /* Emergency Banner */ .emergency-banner-section { padding-top: 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid rgba(0,0,0,0.05); } .emergency-box { padding: 0; } .emergency-number-text { font-size: 2.2rem; } .btn-emergency-call { flex-shrink: 0; width: 2.75rem; height: 2.75rem; min-width: 2.75rem; } .emergency-action-row { flex-direction: column; gap: 1rem; } .emergency-box-vertical { min-height: auto; padding: 3rem 1.5rem; margin-top: 2rem; } .emergency-number-compact { font-size: 1.8rem; } /* Competence */ .competence-grid-4col { grid-template-columns: 1fr; gap: 0.75rem; } .competence-section-new .h2-serif, .comp-header, .intro-promise { text-align: left; } .separator-line-center { margin-left: 0; } .grid-spacer { margin: 2rem 0 1rem 0; } .grid-spacer::before, .grid-spacer::after { display: none; } .spacer-label { padding: 0; text-align: left; width: 100%; display: block; } /* Bio / About */ .bio-grid, .lawyer-grid { display: flex; flex-direction: column; width: 100%; gap: 1.875rem; align-items: center; } .about-teaser-section .bio-grid { padding: 20px; } .about-image-col, .lawyer-image-col { order: -1; width: 100%; align-items: center; margin-bottom: 1.25rem; } .about-img-style, .lawyer-bio-image { max-width: 100%; width: 100%; max-width: 31.25rem; } .about-text-col { margin-left: 0; margin-right: 0; padding: 0 0.625rem; width: 100%; } /* Process */ .process-steps-horizontal { grid-template-columns: 1fr !important; gap: 30px !important; padding-bottom: 0; margin-bottom: 3.125rem; border-bottom: none; } .step-item-horiz { padding: 0 !important; border: none !important; } .process-text-col { padding-right: 0; } /* Misc */ .career-content-wrapper { max-width: 100%; } .btn { font-size: 0.9rem; padding-top: 1.125rem; padding-bottom: 1.125rem; letter-spacing: 0.05em; } .location-text .btn, .btn--outline { display: table; margin-left: auto; margin-right: auto; } /* Contact Page */ .contact-page-section h1, .contact-page-section h2, .contact-page-section p, .location-section h2, .location-section p { text-align: center; } .contact-split-grid, .location-grid { display: flex; flex-direction: column; align-items: center; width: 100%; gap: 3.125rem; margin-top: 1.875rem; } .contact-details-col, .contact-emergency-col, .location-text, .location-map-wrapper { width: 100%; max-width: 31.25rem; margin: 0 auto; } .contact-details-col { order: 1; } .contact-emergency-col { order: 2; margin-top: 0; } .location-text { order: 2; padding-right: 0; } .location-map-wrapper { order: 1; margin-top: 1.875rem; } .location-text p { text-align: justify; hyphens: auto; } .detail-block { align-items: flex-start; text-align: left; width: 100%; display: flex; flex-direction: column; } .detail-block h3 { text-align: left; width: 100%; } .contact-address { text-align: left; display: block; width: 100%; } .contact-list-plain { width: 100%; text-align: left; } .email-link-styled { font-size: 1.1rem; word-break: break-all; } /* Footer */ footer.footer { padding-top: 3.75rem; padding-bottom: 10rem; text-align: center; } .footer-grid-layout { display: flex; flex-direction: column; align-items: center; gap: 4.375rem; width: 100%; } .footer-col-left, .footer-col-right { width: 100%; border: none; padding-left: 0; margin-top: 0; } .footer .brand-logo { justify-content: center; width: 100%; font-size: 0.85rem !important; margin-bottom: 1.875rem; } .footer .brand-symbol { margin-right: 1.25rem; padding-right: 1.25rem; border-right-width: 2px !important; } .footer-col-right .main-info-group { display: flex; flex-direction: column; gap: 3.75rem; width: 100%; align-items: center; } .footer-block { width: 100%; max-width: 20rem; display: flex; flex-direction: column; align-items: center; } .footer-label { text-align: center; margin-bottom: 0.9375rem; opacity: 0.8; font-size: 0.85rem; } .footer-address-clean { text-align: center; line-height: 1.8; margin-bottom: 0; } .footer-block .contact-list { display: inline-block; text-align: left; margin: 0 auto; } .contact-row { display: grid; grid-template-columns: 1.56rem 1fr; align-items: baseline; gap: 0.3125rem; } .footer-bottom-row { margin-top: 3.125rem; flex-direction: column; align-items: center; gap: 1.56rem; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 1.875rem; } /* Fixed Legal Nav (Stacked and Centered) */ .footer-legal-nav { display: flex !important; flex-direction: column !important; align-items: center !important; width: 100% !important; gap: 1.5rem !important; margin-top: 2rem !important; } .footer-legal-nav a { margin: 0 !important; padding: 0 !important; text-align: center !important; width: auto !important; display: inline-block !important; } /* Elements */ .sticky-actions-container { display: block; } .partner-section { padding-top: 3rem; padding-bottom: 3rem; } .partner-row { justify-content: center; gap: 3rem; } .partner-logo { max-height: 3.5rem; } .career-main-image { box-shadow: 10px 10px 0px var(--color-accent); } .application-notice { padding: 1.5rem 1rem; } } /* --- Small Mobile (max-width: 37.5rem) --- */ @media (max-width: 37.5rem) { .brand-logo { font-size: 0.9rem; max-width: none; margin-right: auto; } .hero-btn-group, .button-group { flex-direction: column; align-items: stretch; width: 100%; gap: 0.75rem; } .btn { width: 100%; text-align: center; padding-left: 0.25rem; padding-right: 0.25rem; padding-top: 0.875rem; padding-bottom: 0.875rem; letter-spacing: 0.04em; font-size: 0.7rem; white-space: normal; line-height: 1.2; } .hero-h2-look { font-size: 1.8rem; } .page-headline { font-size: 2rem; padding-left: 0; } .emergency-box-small { display: flex; justify-content: space-between; width: 100%; padding: 1.25rem; flex-direction: row; } .emergency-number { font-size: 1.3rem; } .emergency-call-trigger { width: 3rem; height: 3rem; margin-left: 1rem; } .faq-cta-wrapper { width: 100%; border-left: none; border-right: none; padding: 2.5rem 1rem; } .faq-cta-text { font-size: 1.6rem; } .dl-item { padding: 0.9375rem 0.9375rem; } .file-icon { width: 1.75rem; height: 1.75rem; margin-right: 0.9375rem; } .dl-title { font-size: 1.1rem; } } /* --- Mini Mobile (iPhone SE etc.) (max-width: 23.5rem) --- */ @media (max-width: 23.5rem) { :root { --site-side-padding: 1rem; } .sidebar-action-grid { gap: 10px; } .action-icon-btn { width: 45px; height: 45px; } } /* --- Custom Breakpoint (555px) --- */ @media (max-width: 554px) { .break-555 { display: none !important; } } /* --- Print Styles --- */ @media print { .header-container, .menu-mobile, .menu-toggle, .hero-btn-group, .button-group, .emergency-bg-icon, .btn-emergency-call, .sticky-actions-container { display: none !important; } body, main, section, footer { display: block !important; width: 100% !important; margin: 0 !important; padding: 0 !important; background: none !important; color: #000 !important; box-shadow: none !important; } h1, h2, h3, h4, p, li { color: #000 !important; page-break-inside: avoid; } a { text-decoration: underline; color: #000 !important; } } /* ========================================================================== 18. MODALS & STICKY ACTIONS ========================================================================== */ /* Modal (Popup) */ .modal-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.85); z-index: var(--z-modal); justify-content: center; align-items: center; backdrop-filter: blur(4px); opacity: 0; transition: opacity 0.3s ease; } .modal-overlay.open { display: flex; opacity: 1; } .modal-content { position: relative; max-width: 90%; max-height: 90%; animation: zoomIn 0.3s ease; } .modal-content img { max-width: 100%; max-height: 85vh; display: block; border-radius: 2px; box-shadow: 0 0 30px rgba(0,0,0,0.5); border: 1px solid rgba(255,255,255,0.2); } .close-modal { position: absolute; top: -2.5rem; right: -1rem; color: #ffffff; font-size: 2rem; font-weight: 300; cursor: pointer; transition: color 0.2s; line-height: 1; padding: 0.5rem; } .close-modal:hover { color: var(--color-accent); } @keyframes zoomIn { from { transform: scale(0.9); opacity: 0; } to { transform: scale(1); opacity: 1; } } /* Sticky Actions (Mobile Bottom Bar) */ .sticky-actions-container { display: none; position: fixed; bottom: 0; left: 0; width: 100%; z-index: var(--z-sticky-actions); transform: translateY(100%); transition: transform 1.8s cubic-bezier(0.16, 1, 0.3, 1); box-shadow: 0 -0.25rem 1.25rem rgba(0,0,0,0.15); } .sticky-actions-container.is-visible { transform: translateY(0); } .sticky-bar-layout { display: flex; width: 100%; height: 3.75rem; } .sticky-btn { flex: 1; display: flex; justify-content: center; align-items: center; text-decoration: none; gap: 0.5rem; transition: background-color var(--transition-fast); } .btn-wa { background-color: #1E2B24; color: #ffffff; border-right: 1px solid rgba(255,255,255,0.15); } .btn-wa:active { background-color: #151f1a; } .btn-call { background-color: var(--color-accent); color: #ffffff; }