/* === Anastasia & Sasha Fotografie — Quiet & Romantic === */
/* 1:1 Übernahme der Quelle test-as.draft.aranes.de
   mit Anpassungen für WordPress + Hello Elementor (body statt .app-content). */

:root {
    --c-night: #23231c;
    --c-night-soft: #2f2e26;
    --c-white: #ffffff;
    --c-paper: #ebebea;
    --c-ink: #2a2724;
    --c-ink-soft: #6f6960;
    --c-mute: #a59e93;
    --c-line: #d8d8d6;
    --c-line-dark: #3a3830;
    --c-accent: #4c4b31;

    --font-display: 'Ephesis', 'Cormorant Garamond', 'Georgia', cursive;
    --font-serif: 'Cormorant Garamond', 'Cormorant', 'Georgia', serif;
    --font-sans: 'Inter', -apple-system, system-ui, sans-serif;

    --sidebar-w: 300px;
    --content-pad: 5rem;
}

*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 0; }
body {
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: 17px;
    line-height: 1.65;
    background: var(--c-white);
    color: var(--c-ink);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
picture { display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; background: none; border: none; cursor: pointer; color: inherit; }
::selection { background: var(--c-accent); color: var(--c-white); }

/* ───────── LAYOUT FRAME (WP/Elementor-angepasst) ─────────
   Original: .app + .app-content mit margin-left.
   In WP/Elementor wird der Sidebar-Header per position:fixed gerendert,
   daher bekommt der <body> direkt den left-margin. */
@media (min-width: 1025px) {
    body { margin-left: var(--sidebar-w); }
}

/* Falls jemand das Original-Wrapper-Markup verwendet, weiterhin korrekt: */
.app { min-height: 100vh; position: relative; }
.app-content { background: var(--c-white); min-height: 100vh; }
@media (min-width: 1025px) {
    .app-content { margin-left: var(--sidebar-w); }
}

/* ───────── SIDEBAR (dark) ───────── */
.sidebar {
    position: fixed;
    top: 0; left: 0; bottom: 0;
    width: var(--sidebar-w);
    background: var(--c-night);
    color: var(--c-white);
    display: flex;
    flex-direction: column;
    z-index: 50;
    overflow-y: auto;
    overflow-x: hidden;
}
.sidebar::-webkit-scrollbar { width: 4px; }
.sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar::-webkit-scrollbar-thumb { background: var(--c-line-dark); }

.sidebar-logo {
    padding: 3rem 2.25rem 2.25rem;
    display: block;
}
.sidebar-logo img {
    width: 100%;
    max-width: 220px;
    height: auto;
    display: block;
    filter: brightness(0) invert(1);
}
.sidebar-tagline {
    margin-top: 1.5rem;
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 300;
    font-size: 1rem;
    letter-spacing: 0.01em;
    color: rgba(255,255,255,0.62);
    line-height: 1.55;
}

.sidebar-divider {
    height: 1px;
    background: var(--c-line-dark);
    margin: 0 2.25rem;
}

.sidebar-nav {
    padding: 2rem 0;
    flex: 1;
}
.sidebar-nav ul { list-style: none; padding: 0; margin: 0; }
.sidebar-nav li { margin: 0; }
.sidebar-nav a {
    display: block;
    padding: 0.6rem 2.25rem;
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: 1.35rem;
    letter-spacing: 0.01em;
    color: rgba(255,255,255,0.78);
    transition: color 0.3s ease, padding-left 0.3s ease;
    position: relative;
}
.sidebar-nav a em { font-style: italic; color: rgba(255,255,255,0.85); }
.sidebar-nav a:hover { color: var(--c-white); padding-left: 2.6rem; }
.sidebar-nav a.active { color: var(--c-white); font-style: italic; }
.sidebar-nav a.active::before {
    content: '';
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 1px;
    background: var(--c-accent);
}

.sidebar-cta {
    margin: 1.25rem 2.25rem 2rem;
    padding: 0.95rem 1.35rem;
    background: var(--c-paper);
    color: var(--c-night);
    border: 0;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 1rem;
    letter-spacing: 0.01em;
    transition: background 0.25s, color 0.25s;
    width: max-content;
    align-self: flex-start;
}
.sidebar-cta::before {
    content: '';
    width: 16px;
    height: 16px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12.04 2c-5.5 0-9.95 4.46-9.95 9.95 0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38a9.92 9.92 0 0 0 4.78 1.22h.01c5.5 0 9.95-4.46 9.95-9.95a9.86 9.86 0 0 0-2.92-7.04A9.86 9.86 0 0 0 12.04 2zm5.84 14.21c-.25.7-1.45 1.38-1.99 1.42-.51.04-1.16.06-1.86-.12-.43-.13-.99-.31-1.7-.62-2.99-1.29-4.94-4.3-5.09-4.49-.15-.2-1.21-1.61-1.21-3.07 0-1.46.77-2.18 1.04-2.48.27-.3.59-.37.79-.37l.57.01c.18.01.43-.07.67.51.25.6.84 2.07.92 2.22.07.15.12.32.02.52-.1.2-.15.32-.3.5-.15.18-.31.4-.45.54-.15.15-.3.31-.13.6.18.3.79 1.31 1.7 2.12 1.17 1.04 2.16 1.36 2.46 1.51.3.15.48.13.66-.07.18-.2.76-.89.96-1.19.2-.3.4-.25.67-.15.27.1 1.74.82 2.04.97.3.15.5.22.57.35.07.13.07.74-.18 1.44z'/></svg>") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12.04 2c-5.5 0-9.95 4.46-9.95 9.95 0 1.75.46 3.45 1.32 4.95L2 22l5.25-1.38a9.92 9.92 0 0 0 4.78 1.22h.01c5.5 0 9.95-4.46 9.95-9.95a9.86 9.86 0 0 0-2.92-7.04A9.86 9.86 0 0 0 12.04 2zm5.84 14.21c-.25.7-1.45 1.38-1.99 1.42-.51.04-1.16.06-1.86-.12-.43-.13-.99-.31-1.7-.62-2.99-1.29-4.94-4.3-5.09-4.49-.15-.2-1.21-1.61-1.21-3.07 0-1.46.77-2.18 1.04-2.48.27-.3.59-.37.79-.37l.57.01c.18.01.43-.07.67.51.25.6.84 2.07.92 2.22.07.15.12.32.02.52-.1.2-.15.32-.3.5-.15.18-.31.4-.45.54-.15.15-.3.31-.13.6.18.3.79 1.31 1.7 2.12 1.17 1.04 2.16 1.36 2.46 1.51.3.15.48.13.66-.07.18-.2.76-.89.96-1.19.2-.3.4-.25.67-.15.27.1 1.74.82 2.04.97.3.15.5.22.57.35.07.13.07.74-.18 1.44z'/></svg>") center/contain no-repeat;
    flex-shrink: 0;
}
.sidebar-cta:hover { background: var(--c-white); color: var(--c-accent); }

.sidebar-foot {
    padding: 1.5rem 2.25rem 2.5rem;
    font-family: var(--font-serif);
    font-size: 0.95rem;
    color: rgba(255,255,255,0.6);
    line-height: 1.7;
}
.sidebar-foot a {
    color: rgba(255,255,255,0.85);
    border-bottom: 1px solid rgba(255,255,255,0.15);
    transition: all 0.2s;
}
.sidebar-foot a:hover { color: var(--c-accent); border-color: var(--c-accent); }
.sidebar-foot-label {
    display: block;
    font-family: var(--font-serif);
    font-style: italic;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.4);
    margin-bottom: 0.4rem;
    margin-top: 1.25rem;
}
.sidebar-foot-label:first-child { margin-top: 0; }
.sidebar-social {
    display: flex;
    gap: 0.75rem;
    margin-top: 1.25rem;
}
.sidebar-social a {
    width: 32px;
    height: 32px;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.7);
    transition: all 0.25s;
}
.sidebar-social a:hover { background: var(--c-white); color: var(--c-night); border-color: var(--c-white); }
.sidebar-social svg { width: 14px; height: 14px; }

/* ───────── MOBILE TOGGLE ───────── */
.mobile-bar {
    display: none;
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 60;
    background: var(--c-night);
    color: var(--c-white);
    padding: 0.85rem 1.25rem;
    align-items: center;
    justify-content: space-between;
    height: 64px;
}
.mobile-logo img {
    height: 30px;
    width: auto;
    display: block;
    filter: brightness(0) invert(1);
}
.mobile-burger { width: 40px; height: 40px; position: relative; }
.mobile-burger span {
    position: absolute;
    left: 10px; right: 10px;
    height: 1px;
    background: var(--c-white);
    transition: all 0.3s;
}
.mobile-burger span:nth-child(1) { top: 14px; }
.mobile-burger span:nth-child(2) { top: 20px; }
.mobile-burger span:nth-child(3) { top: 26px; }
.mobile-burger.open span:nth-child(1) { top: 20px; transform: rotate(45deg); }
.mobile-burger.open span:nth-child(2) { opacity: 0; }
.mobile-burger.open span:nth-child(3) { top: 20px; transform: rotate(-45deg); }

/* ───────── HERO ───────── */
.hero {
    position: relative;
    height: 100vh;
    min-height: 580px;
    overflow: hidden;
    background: var(--c-paper);
}
.hero-image { position: absolute; inset: 0; z-index: 0; }
.hero-image picture { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-image img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    filter: brightness(0.92) saturate(0.95);
}
.hero-image::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0) 35%, rgba(0,0,0,0) 60%, rgba(0,0,0,0.45) 100%);
    pointer-events: none;
}
.hero-content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 2rem var(--content-pad);
    color: var(--c-white);
}
.hero-eyebrow {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 300;
    font-size: 1rem;
    letter-spacing: 0.04em;
    color: rgba(255,255,255,0.85);
    margin-bottom: 1.75rem;
    display: inline-flex;
    align-items: center;
    gap: 1rem;
}
.hero-eyebrow::before, .hero-eyebrow::after {
    content: '';
    width: 30px; height: 1px;
    background: rgba(255,255,255,0.55);
}
.hero-headline {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(3.5rem, 9vw, 8.5rem);
    line-height: 1.1;
    letter-spacing: 0;
    color: var(--c-white);
    margin-bottom: 1.75rem;
    max-width: 18ch;
    text-shadow: 0 2px 30px rgba(0,0,0,0.25);
}
.hero-headline em { font-style: normal; font-weight: 400; color: var(--c-accent); }
.hero-sub {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 300;
    font-size: 1.35rem;
    line-height: 1.55;
    color: rgba(255,255,255,0.92);
    max-width: 50ch;
    text-shadow: 0 1px 20px rgba(0,0,0,0.3);
}

/* ───────── SECTIONS ───────── */
.section { padding: 7rem var(--content-pad); background: var(--c-white); }
.section-paper { background: var(--c-paper); }
.section-tag {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: var(--c-accent);
    margin-bottom: 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
}
.section-tag::before { content: ''; width: 32px; height: 1px; background: var(--c-accent); }
.section-title {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2.75rem, 5.5vw, 5rem);
    line-height: 1.15;
    letter-spacing: 0;
    color: var(--c-ink);
    margin-bottom: 1.5rem;
    max-width: 18ch;
}
.section-title em { font-style: normal; font-weight: 400; color: var(--c-accent); }
.section-lead {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: 1.33rem;
    line-height: 1.7;
    color: var(--c-ink-soft);
    max-width: 56ch;
}

/* ───────── INTRO ───────── */
.intro {
    padding: 4rem var(--content-pad);
    text-align: center;
    background: var(--c-white);
    min-height: 880px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.intro-eyebrow {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: var(--c-accent);
    margin-bottom: 1.5rem;
}
.intro-text {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2rem, 3.5vw, 2.85rem);
    line-height: 1.35;
    color: var(--c-ink);
    max-width: 30ch;
    margin: 0 auto 2.5rem;
    letter-spacing: 0;
}
.intro-text em { font-style: normal; color: var(--c-accent); }
.intro-rule { width: 40px; height: 1px; background: var(--c-line); margin: 0 auto; }

/* ───────── SERVICES (editorial rows, full-bleed image) ───────── */
.services { background: var(--c-white); }
.service-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    align-items: stretch;
    height: 880px;
    background: var(--c-paper);
}
.service-row:nth-child(even) { background: var(--c-white); }
.service-row:nth-child(even) .service-image { order: 2; }
.service-row:nth-child(even) .service-content { order: 1; }

.service-image { overflow: hidden; position: relative; }
.service-image picture { position: absolute; inset: 0; width: 100%; height: 100%; }
.service-image img {
    width: 100%; height: 100%; object-fit: cover;
    transition: transform 1.6s cubic-bezier(0.19, 1, 0.22, 1);
}
.service-row:hover .service-image img { transform: scale(1.04); }

.service-content {
    padding: 5rem 4rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.service-num {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: var(--c-accent);
    margin-bottom: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
}
.service-num::before { content: ''; width: 28px; height: 1px; background: var(--c-accent); }
.service-title {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2.5rem, 5vw, 4.5rem);
    line-height: 1.15;
    letter-spacing: 0;
    color: var(--c-ink);
    margin-bottom: 1.5rem;
}
.service-title em { font-style: normal; color: var(--c-accent); }
.service-text {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: 1.25rem;
    line-height: 1.7;
    color: var(--c-ink-soft);
    margin: 0 auto 1.75rem;
    max-width: 44ch;
}
.service-link {
    display: inline-flex;
    align-items: baseline;
    gap: 0.6rem;
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 1.05rem;
    color: var(--c-ink);
    border-bottom: 1px solid var(--c-line);
    padding-bottom: 0.3rem;
    transition: color 0.25s, border-color 0.25s;
}
.service-link::after { content: '→'; transition: transform 0.25s; }
.service-link:hover { color: var(--c-accent); border-color: var(--c-accent); }
.service-link:hover::after { transform: translateX(4px); }

/* ───────── ABOUT ───────── */
.about {
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    align-items: stretch;
    height: 880px;
    background: var(--c-white);
}
.about-image { overflow: hidden; position: relative; }
.about-image picture { position: absolute; inset: 0; width: 100%; height: 100%; }
.about-image img { width: 100%; height: 100%; object-fit: cover; }
.about-content {
    padding: 5rem 4rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
}
.about-eyebrow {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: var(--c-accent);
    margin-bottom: 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
}
.about-eyebrow::before { content: ''; width: 32px; height: 1px; background: var(--c-accent); }
.about-title {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2.75rem, 5.5vw, 5rem);
    line-height: 1.15;
    letter-spacing: 0;
    color: var(--c-ink);
    margin-bottom: 1.75rem;
}
.about-title em { font-style: normal; color: var(--c-accent); }
.about-text {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: 1.25rem;
    line-height: 1.75;
    color: var(--c-ink-soft);
    margin: 0 auto 1.25rem;
    max-width: 50ch;
}
.about-signature {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: 1.4rem;
    color: var(--c-ink);
    margin-top: 2rem;
    display: inline-flex;
    align-items: baseline;
    gap: 0.8rem;
}
.about-signature::before { content: '—'; color: var(--c-accent); }

/* ───────── QUOTE ───────── */
.quote {
    padding: 4rem var(--content-pad);
    text-align: center;
    background: var(--c-paper);
    min-height: 880px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
.quote-text {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2rem, 4vw, 3.5rem);
    line-height: 1.35;
    color: var(--c-ink);
    max-width: 25ch;
    margin: 0 auto 2rem;
    letter-spacing: 0;
}
.quote-text em { font-style: normal; color: var(--c-accent); }
.quote-source {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 1rem;
    color: var(--c-ink-soft);
    letter-spacing: 0.04em;
}

/* ───────── CTA ───────── */
.cta {
    padding: 7rem var(--content-pad);
    text-align: center;
    background: var(--c-paper);
    border-top: 1px solid var(--c-line);
}
.cta-eyebrow {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: var(--c-accent);
    margin-bottom: 1.5rem;
}
.cta-title {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2.5rem, 5.5vw, 5rem);
    line-height: 1.15;
    letter-spacing: 0;
    color: var(--c-ink);
    max-width: 22ch;
    margin: 0 auto 2.5rem;
}
.cta-title em { font-style: normal; color: var(--c-accent); }
.cta-email {
    display: inline-block;
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: clamp(1.4rem, 2.4vw, 1.9rem);
    color: var(--c-ink);
    border-bottom: 1px solid var(--c-line);
    padding-bottom: 0.3rem;
    transition: color 0.25s, border-color 0.25s;
}
.cta-email:hover { color: var(--c-accent); border-color: var(--c-accent); }
.cta-meta {
    margin-top: 2.5rem;
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 300;
    font-size: 1rem;
    color: var(--c-ink-soft);
}

/* ───────── FOOTER ───────── */
.site-footer {
    padding: 2.5rem var(--content-pad);
    background: var(--c-white);
    border-top: 1px solid var(--c-line);
}
.footer-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 0.92rem;
    color: var(--c-ink-soft);
}
.footer-row a { color: var(--c-ink-soft); transition: color 0.2s; }
.footer-row a:hover { color: var(--c-accent); }
.footer-legal { display: flex; gap: 1.75rem; flex-wrap: wrap; }

/* ───────── LEGAL PAGES ───────── */
.legal-page { padding: 6rem var(--content-pad); background: var(--c-white); }
.legal-container { max-width: 720px; color: var(--c-ink); }
.legal-container .eyebrow {
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    color: var(--c-accent);
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    margin-bottom: 1.25rem;
}
.legal-container .eyebrow::before { content: ''; width: 32px; height: 1px; background: var(--c-accent); }
.legal-container h1 {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: clamp(2.5rem, 5vw, 4rem);
    letter-spacing: -0.005em;
    line-height: 1.05;
    color: var(--c-ink);
    margin-bottom: 2.5rem;
}
.legal-container h2 {
    font-family: var(--font-display);
    font-weight: 400;
    font-size: 1.4rem;
    margin: 2.5rem 0 0.75rem;
    color: var(--c-ink);
}
.legal-container p {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: 1.2rem;
    line-height: 1.8;
    color: var(--c-ink-soft);
    margin-bottom: 1rem;
}
.legal-container a {
    color: var(--c-ink);
    border-bottom: 1px solid var(--c-line);
    transition: all 0.2s;
}
.legal-container a:hover { color: var(--c-accent); border-color: var(--c-accent); }
.legal-back {
    display: inline-flex;
    align-items: baseline;
    gap: 0.5rem;
    margin-top: 2.5rem;
    font-family: var(--font-serif);
    font-style: italic;
    font-weight: 400;
    font-size: 1rem;
    color: var(--c-ink);
}

/* ───────── REVEAL ───────── */
.fade-up { opacity: 0; transform: translateY(30px); transition: opacity 1.1s cubic-bezier(0.19,1,0.22,1), transform 1.1s cubic-bezier(0.19,1,0.22,1); }
.fade-up.visible { opacity: 1; transform: translateY(0); }
.fade-in { opacity: 0; transition: opacity 1.3s; }
.fade-in.visible { opacity: 1; }

/* ───────── RESPONSIVE ───────── */
@media (max-width: 1280px) {
    :root { --content-pad: 3rem; --sidebar-w: 260px; }
    .service-row, .about { gap: 3rem; }
}
@media (max-width: 1024px) {
    :root { --content-pad: 2.5rem; }
    body { margin-left: 0; padding-top: 64px; }
    .app-content { margin-left: 0; padding-top: 64px; }
    .sidebar {
        transform: translateX(-100%);
        transition: transform 0.4s ease;
        width: min(320px, 90vw);
        top: 64px;
        bottom: 0;
    }
    .sidebar.open { transform: translateX(0); }
    .mobile-bar { display: flex; }
    .mobile-overlay {
        display: none;
        position: fixed;
        top: 64px; left: 0; right: 0; bottom: 0;
        background: rgba(0,0,0,0.55);
        z-index: 40;
    }
    .mobile-overlay.open { display: block; }
    .service-row,
    .service-row:nth-child(even) {
        grid-template-columns: 1fr;
        height: auto;
    }
    .service-row:nth-child(even) .service-image { order: 0; }
    .service-row:nth-child(even) .service-content { order: 0; }
    .service-content { padding: 3.5rem var(--content-pad); }
    .service-image { aspect-ratio: 16/11; max-height: 520px; position: relative; }
    .about { grid-template-columns: 1fr; gap: 0; height: auto; }
    .about-image { aspect-ratio: 16/11; max-height: 500px; position: relative; }
    .about-content { padding: 3.5rem var(--content-pad); }
    .intro, .quote { min-height: 0; }
}
@media (max-width: 600px) {
    :root { --content-pad: 1.5rem; }
    .hero { min-height: 480px; }
    .hero-headline { font-size: clamp(2.25rem, 11vw, 3.75rem); }
    .hero-sub { font-size: 1.05rem; }
    .section, .intro, .quote, .cta, .about { padding: 4rem var(--content-pad); }
    .service-row { padding: 3.5rem var(--content-pad); }
    .footer-row { flex-direction: column; align-items: flex-start; }
    .legal-page { padding: 4rem var(--content-pad); }
}

/* ───────── ELEMENTOR INTEGRATION ─────────
   Verhindert, dass Elementor's eigene Container Padding/Margin in Sektionen einbringt.
   Unsere Sektionen liegen direkt im Page-Content; padding kommt aus den Sektions-Klassen. */
.elementor-section.elementor-section-full_width > .elementor-container { padding: 0; }
.elementor-widget-html .hero,
.elementor-widget-html .intro,
.elementor-widget-html .services,
.elementor-widget-html .quote,
.elementor-widget-html .about,
.elementor-widget-html .cta,
.elementor-widget-html .legal-page { width: 100%; }
