:root {
  --burgundy: #651f2c;
  --burgundy-dark: #4d1722;
  --blue: #718796;
  --blue-light: #e8eef1;
  --ink: #1f2528;
  --muted: #687075;
  --paper: #f7f6f3;
  --white: #fff;
  --line: rgba(31,37,40,.14);
  --serif: "Playfair Display", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --max: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); line-height: 1.7; }
a { color: inherit; text-decoration: none; }
.container { width: min(calc(100% - 48px), var(--max)); margin: 0 auto; }
.narrow { max-width: 900px; }
.site-header { position: sticky; top: 0; z-index: 20; background: rgba(247,246,243,.94); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
.nav-wrap { min-height: 78px; display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; margin-right: auto; }
.brand-mark { display: grid; place-items: center; width: 44px; height: 44px; background: var(--burgundy); color: white; font-weight: 600; letter-spacing: .04em; font-size: 13px; }
.brand-name { font-size: 12px; letter-spacing: .19em; font-weight: 600; }
.nav { display: flex; gap: 24px; font-size: 13px; color: #454d51; }
.nav a:hover { color: var(--burgundy); }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 50px; padding: 0 24px; background: var(--burgundy); color: white; font-weight: 600; font-size: 13px; letter-spacing: .02em; transition: .2s ease; }
.button:hover { background: var(--burgundy-dark); transform: translateY(-1px); }
.button-small { min-height: 42px; padding: 0 18px; }
.menu-toggle { display:none; border:0; background:none; font-size:25px; color:var(--ink); }
.hero { padding: 92px 0 86px; background: var(--paper); }
.hero-grid { display:grid; grid-template-columns: 1.08fr .82fr; gap: 90px; align-items:center; }
.eyebrow { margin:0 0 18px; font-size:11px; text-transform:uppercase; letter-spacing:.18em; font-weight:600; color:var(--burgundy); }
.eyebrow.blue { color:#536b79; }
.eyebrow.light { color: rgba(255,255,255,.72); }
h1,h2,h3 { margin:0; font-family:var(--serif); font-weight:500; line-height:1.13; letter-spacing:-.025em; }
h1 { font-size: clamp(45px, 5.2vw, 72px); max-width: 780px; }
h1 em, h2 em { color: var(--burgundy); font-style:normal; }
.hero-text { max-width: 680px; margin: 30px 0 28px; font-size: 17px; color: #4d5559; }
.hero-actions { display:flex; gap:24px; align-items:center; }
.text-link { font-size:13px; font-weight:600; }
.text-link span { color:var(--burgundy); margin-left:6px; }
.qualifications { margin-top: 42px; display:flex; flex-wrap:wrap; gap:8px 20px; color:#606a6f; font-size:12px; }
.qualifications span::before { content:""; display:inline-block; width:5px; height:5px; border-radius:50%; background:var(--burgundy); margin:0 9px 2px 0; }
.portrait { position:relative; }
.portrait-placeholder { min-height: 610px; background: #d7d8d6; display:flex; flex-direction:column; justify-content:center; align-items:center; color:#858886; letter-spacing:.18em; font-size:11px; position:relative; overflow:hidden; }
.portrait-placeholder::before { content:""; position:absolute; inset: 7% 12%; border:1px solid rgba(255,255,255,.6); }
.portrait-placeholder small { letter-spacing:0; margin-top:10px; font-size:11px; }
.portrait-caption { position:absolute; left:-30px; bottom:28px; background:var(--burgundy); color:white; padding:15px 21px; font-family:var(--serif); font-size:18px; }
.portrait-caption span { font-family:var(--sans); font-size:11px; opacity:.72; letter-spacing:.08em; text-transform:uppercase; }
.intro { padding: 105px 0; background:var(--blue); color:white; }
.intro h2 { font-size:clamp(36px,4vw,56px); max-width:900px; }
.intro p { color:rgba(255,255,255,.86); max-width:850px; font-size:16px; }
.statement { margin:45px 0 22px; padding:25px 0; border-top:1px solid rgba(255,255,255,.25); border-bottom:1px solid rgba(255,255,255,.25); font-size:20px; }
.statement span { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.18em; color:rgba(255,255,255,.62); margin-bottom:7px; }
.signature { font-family:var(--serif); font-size:25px !important; }
.section { padding: 115px 0; }
.practice { background:#f7f6f3; }
.section-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:100px; }
.section-heading h2 { font-size:clamp(38px,4.4vw,60px); }
.section-heading > p:last-child { margin-top:28px; color:var(--muted); max-width:430px; }
.section-content > p { color:#555f64; }
.check-list { list-style:none; padding:0; margin:28px 0 42px; display:grid; grid-template-columns:1fr 1fr; gap:0; border-top:1px solid var(--line); }
.check-list li { padding:13px 10px 13px 0; border-bottom:1px solid var(--line); font-size:14px; }
.check-list li::before { content:"✓"; color:var(--burgundy); margin-right:10px; font-weight:600; }
.callout { padding:38px; color:white; }
.callout h3 { font-size:36px; }
.callout p:not(.eyebrow) { color:rgba(255,255,255,.82); }
.burgundy { background:var(--burgundy); }
.light-link { color:white; }
.practice-blue { background:var(--blue-light); }
.practice-blue .check-list { border-color:rgba(48,68,78,.16); }
.practice-blue .check-list li { border-color:rgba(48,68,78,.16); }
.practice-blue .check-list li::before { color:#536b79; }
.subsection { margin-bottom:58px; }
.subsection h3 { font-size:32px; margin-bottom:10px; }
.exclusive { color:var(--burgundy) !important; font-weight:600; margin-top:24px; }
.weg { padding-top:42px; border-top:1px solid rgba(31,37,40,.15); }
.about { background:#fff; }
.about-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:100px; align-items:center; }
.about-photo .portrait-placeholder { min-height:600px; }
.about-copy h2 { font-size:clamp(40px,4.5vw,62px); }
.lead { font-size:18px; color:#4f585c; margin:30px 0; }
.three-lines { border-left:3px solid var(--burgundy); padding-left:25px; margin-top:35px; }
.three-lines p { margin:4px 0; font-family:var(--serif); font-size:21px; }
.contact { padding:100px 0; background:var(--burgundy); color:white; }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.contact h2 { font-size:clamp(46px,5vw,68px); }
.contact h2 em { color:#e3c4ca; }
.contact > .container > div:first-child > p:last-child { max-width:580px; color:rgba(255,255,255,.78); margin-top:30px; }
.contact-card { border-left:1px solid rgba(255,255,255,.25); padding-left:55px; }
.email { display:block; font-family:var(--serif); font-size:clamp(22px,3vw,34px); margin-bottom:10px; overflow-wrap:anywhere; }
.phone { display:block; font-size:18px; margin-bottom:28px; }
.contact-card p { color:rgba(255,255,255,.72); margin-bottom:30px; }
.button-light { background:white; color:var(--burgundy); }
.button-light:hover { background:#f3ecee; }
.footer { padding:60px 0 24px; background:#202528; color:#b9c0c2; font-size:12px; }
.footer-grid { display:grid; grid-template-columns:1.2fr 1fr .5fr; gap:50px; padding-bottom:45px; }
.footer-brand { color:white; display:inline-flex; margin-bottom:18px; }
.footer-name { color:white; font-size:13px; }
.footer p { margin:8px 0; }
.footer a:hover { color:white; }
.footer-links { display:flex; flex-direction:column; gap:8px; }
.copyright { border-top:1px solid rgba(255,255,255,.12); padding-top:18px; color:#7f888c; }

@media (max-width: 980px) {
  .nav { display:none; position:absolute; left:24px; right:24px; top:78px; background:var(--paper); border:1px solid var(--line); padding:18px; flex-direction:column; box-shadow:0 18px 40px rgba(0,0,0,.08); }
  .nav.open { display:flex; }
  .menu-toggle { display:block; }
  .nav-wrap > .button-small { display:none; }
  .hero-grid, .section-grid, .about-grid, .contact-grid { grid-template-columns:1fr; gap:55px; }
  .hero { padding-top:65px; }
  .portrait-placeholder { min-height:500px; }
  .portrait-caption { left:18px; }
  .section { padding:80px 0; }
  .contact-card { border-left:0; border-top:1px solid rgba(255,255,255,.25); padding:38px 0 0; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-links { grid-column:1/-1; flex-direction:row; gap:24px; }
}
@media (max-width: 620px) {
  .container { width:min(calc(100% - 32px), var(--max)); }
  .nav { left:16px; right:16px; }
  h1 { font-size:43px; }
  .hero { padding:50px 0 65px; }
  .hero-actions { flex-direction:column; align-items:flex-start; }
  .qualifications { display:block; }
  .qualifications span { display:block; margin-bottom:8px; }
  .portrait-placeholder, .about-photo .portrait-placeholder { min-height:430px; }
  .intro { padding:75px 0; }
  .check-list { grid-template-columns:1fr; }
  .callout { padding:28px; }
  .footer-grid { grid-template-columns:1fr; gap:30px; }
  .footer-links { grid-column:auto; }
}


/* --- Fotografie v2 --- */
.hero-portrait {
  position: relative;
  min-height: 610px;
  overflow: hidden;
  background: #d7d8d6;
}
.hero-portrait img {
  width: 100%;
  height: 610px;
  object-fit: cover;
  object-position: 50% 32%;
  filter: saturate(.90) contrast(.98);
}
.portrait-caption {
  position: absolute;
  left: 0;
  bottom: 28px;
  background: var(--burgundy);
  color: white;
  padding: 15px 21px;
  font-family: var(--serif);
  font-size: 18px;
}
.portrait-caption span {
  font-family: var(--sans);
  font-size: 11px;
  opacity: .72;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.about { background: #fff; padding-bottom: 0; }
.about-copy-top {
  display: grid;
  grid-template-columns: .65fr 1.35fr;
  gap: 90px;
  align-items: start;
  padding-bottom: 20px;
}
.about-copy-top h2 { font-size: clamp(40px, 4.5vw, 62px); }
.about-intro { max-width: 800px; margin-top: 25px; }
.about-intro .lead { margin-top: 0; }

.personal-image {
  position: relative;
  height: clamp(440px, 50vw, 650px);
  overflow: hidden;
  margin-top: 55px;
}
.personal-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 52%;
}
.personal-image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(24,31,34,.68) 0%, rgba(24,31,34,.30) 48%, rgba(24,31,34,.05) 100%);
}
.personal-caption {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.personal-quote {
  margin: 0;
  max-width: 720px;
  color: white;
  font-family: var(--serif);
  font-size: clamp(30px, 4vw, 52px);
  line-height: 1.22;
  letter-spacing: -.025em;
}
.about-closing { padding: 35px 0 90px; }
.about-closing .signature {
  margin: 0;
  font-family: var(--serif);
  font-size: 25px;
  color: var(--burgundy);
}

@media (max-width: 980px) {
  .hero-portrait, .hero-portrait img { min-height: 500px; height: 500px; }
  .about-copy-top { grid-template-columns: 1fr; gap: 20px; }
  .personal-image { margin-top: 30px; height: 520px; }
  .personal-caption { justify-content: flex-end; padding-bottom: 55px; }
}
@media (max-width: 620px) {
  .hero-portrait, .hero-portrait img { min-height: 430px; height: 430px; }
  .personal-image { height: 470px; }
  .personal-image-overlay { background: linear-gradient(180deg, rgba(24,31,34,.12) 0%, rgba(24,31,34,.72) 100%); }
  .personal-caption { padding-bottom: 35px; }
  .personal-quote { font-size: 29px; }
}


/* --- Smartphone contact refinement v4 --- */
@media (max-width: 980px) {
  .contact-grid {
    gap: 48px;
  }

  .contact-card {
    padding-top: 34px;
  }

  .contact-card .eyebrow {
    margin-bottom: 14px;
  }

  .contact-email {
    display: block;
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
    font-size: clamp(21px, 5.4vw, 28px);
    line-height: 1.28;
    letter-spacing: -.015em;
  }

  .contact-button {
    margin-top: 24px;
    min-height: 50px;
    padding-left: 22px;
    padding-right: 22px;
  }

  .contact-card .phone {
    display: block;
    margin-top: 21px;
    font-size: 18px;
    line-height: 1.45;
    letter-spacing: .01em;
  }

  .contact-card p {
    line-height: 1.62;
  }
}

@media (max-width: 620px) {
  .contact {
    padding: 62px 0 68px;
  }

  .contact-grid {
    gap: 38px;
  }

  .contact h2 {
    font-size: clamp(40px, 11vw, 47px);
    line-height: 1.05;
  }

  .contact > .container > div:first-child > p:last-child {
    margin-top: 21px;
    max-width: 34em;
    font-size: 15px;
    line-height: 1.68;
  }

  .contact-card {
    padding-top: 29px;
  }

  .contact-card .eyebrow {
    margin-bottom: 13px;
  }

  .contact-email {
    font-size: 21px;
    line-height: 1.34;
    padding-right: 2px;
  }

  .contact-button {
    display: flex;
    width: 100%;
    justify-content: center;
    align-items: center;
    min-height: 52px;
    margin-top: 22px;
    padding: 0 20px;
  }

  .contact-card .phone {
    margin-top: 22px;
    font-size: 18px;
    line-height: 1.5;
  }

  /* Keep the address/contact details visually separated without introducing new colors. */
  .contact-card .address,
  .contact-card address {
    margin-top: 27px;
    line-height: 1.65;
  }
}

/* Legal pages */
.legal-page { background: var(--paper); }
.legal-main { padding: 92px 0 110px; }
.legal-wrap { max-width: 900px; }
.legal-wrap h1 { font-size: clamp(44px, 6vw, 68px); margin-bottom: 18px; }
.legal-wrap .legal-lead { color: var(--muted); font-size: 17px; margin: 0 0 55px; max-width: 720px; }
.legal-section { padding: 34px 0; border-top: 1px solid var(--line); }
.legal-section h2 { font-size: 30px; margin-bottom: 14px; }
.legal-section h3 { font-family: var(--sans); font-size: 17px; line-height: 1.4; font-weight: 600; margin: 26px 0 8px; }
.legal-section p, .legal-section li { color: #555f64; font-size: 15px; line-height: 1.75; }
.legal-section ul { padding-left: 20px; }
.legal-section a { color: var(--burgundy); text-decoration: underline; text-underline-offset: 3px; }
.legal-note { padding: 22px 24px; margin-top: 22px; background: var(--blue-light); }
.legal-nav { display:flex; gap:24px; margin-top:42px; flex-wrap:wrap; }
.legal-nav a { color:var(--burgundy); font-weight:600; font-size:13px; }
@media (max-width: 620px) {
  .legal-main { padding: 58px 0 72px; }
  .legal-wrap h1 { font-size: 42px; line-height: 1.08; }
  .legal-wrap .legal-lead { font-size: 15px; margin-bottom: 35px; }
  .legal-section { padding: 27px 0; }
  .legal-section h2 { font-size: 27px; }
  .legal-section p, .legal-section li { font-size: 14.5px; line-height: 1.72; }
  .legal-nav { gap: 16px; }
}
