:root { color-scheme: light; --paper:#f4f2ed; --ink:#111; --muted:#66645f; --line:#d5d2ca; }
    * { box-sizing:border-box; }
    html { scroll-behavior:smooth; scroll-padding-top:28px; }
    body { margin:0; background:var(--paper); color:var(--ink); font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
    a { color:inherit; text-decoration:none; }
    a:hover { text-decoration:underline; text-underline-offset:5px; }
    a:focus-visible, summary:focus-visible { outline:2px solid var(--ink); outline-offset:7px; }
    .page { width:100%; max-width:1600px; margin:auto; padding:0 clamp(24px,4.45vw,72px); }
    .skip { position:absolute; left:24px; top:-100px; padding:14px; background:var(--ink); color:var(--paper); z-index:2; }
    .skip:focus { top:12px; }
    .top { min-height:220px; display:flex; justify-content:space-between; align-items:center; gap:32px; }
    .logo { display:block; width:306px; height:162px; }
    nav { display:flex; gap:32px; }
    nav a { display:inline-flex; align-items:center; min-height:44px; font-size:12px; letter-spacing:.04em; }
    .sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
    figure { margin:0; }
    .hero img { display:block; width:100%; height:auto; aspect-ratio:2.05; object-fit:cover; object-position:center 53%; }
    figcaption { display:flex; justify-content:space-between; gap:24px; padding-top:14px; color:var(--muted); font-size:10px; letter-spacing:.045em; line-height:1.5; }
    .split { display:grid; grid-template-columns:34% minmax(0,1fr); gap:0; }
    .label { margin:0; padding-top:12px; color:var(--muted); font-size:12px; font-weight:400; letter-spacing:.04em; line-height:1.5; }
    .services { padding-top:90px; padding-bottom:88px; }
    .services ul { list-style:none; margin:0; padding:0; display:grid; gap:18px; }
    .services li { font-size:clamp(30px,3.7vw,54px); line-height:1.14; letter-spacing:-.035em; }
    .about { padding-bottom:100px; }
    .intro { margin:0; max-width:820px; font-size:clamp(24px,2.6vw,38px); font-weight:400; line-height:1.18; letter-spacing:-.025em; }
    .contact { padding:58px 0 76px; border-top:1px solid var(--line); }
    .contact h2 { margin:0 0 34px; font-size:clamp(38px,4.8vw,70px); line-height:1.04; font-weight:400; letter-spacing:-.04em; }
    .email { display:inline-block; max-width:100%; font-size:clamp(23px,3.15vw,46px); line-height:1.22; letter-spacing:-.03em; overflow-wrap:anywhere; border-bottom:1px solid currentColor; padding-bottom:5px; }
    .email:hover { text-decoration:none; opacity:.65; }
    .contact-note { margin:19px 0 0; font-size:13px; line-height:1.5; color:var(--muted); }
    footer { padding:25px 0 36px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:30px; align-items:start; font-size:11px; line-height:1.7; color:var(--muted); }
    footer p { margin:0 0 5px; }
    .footer-name { color:var(--ink); font-size:12px; letter-spacing:.035em; }
    .footer-right { text-align:right; }
    details { margin-top:4px; max-width:540px; }
    summary { cursor:pointer; width:fit-content; }
    details p { margin:8px 0 0; }
    @media (max-width:719px) {
      .top { min-height:184px; gap:12px; }
      .logo { width:216px; height:114px; }
      nav { gap:12px; }
      nav a { font-size:10px; }
      .hero img { aspect-ratio:1.12; }
      figcaption { font-size:9px; gap:15px; }
      .split { grid-template-columns:1fr; }
      .label { padding:0; margin-bottom:28px; font-size:10px; }
      .services { padding-top:54px; padding-bottom:62px; }
      .services ul { gap:13px; }
      .services li { font-size:clamp(27px,7.3vw,42px); }
      .about { padding-bottom:65px; }
      .intro { font-size:26px; max-width:540px; }
      .contact { padding:38px 0 60px; }
      .contact h2 { font-size:42px; margin-bottom:29px; }
      .email { font-size:clamp(20px,5.6vw,34px); }
      footer { grid-template-columns:1fr; gap:19px; padding-bottom:30px; }
      .footer-right { text-align:left; }
    }
    @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
    /* Image-free alternative: typography carries the first screen. */
    .type-hero { padding:34px 0 80px; }
    .hero-meta { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:0 0 42px; border-top:1px solid var(--line); }
    .hero-meta .label { padding-top:20px; }
    .type-hero ul { display:block; }
    .type-hero li { font-size:clamp(60px,9.25vw,144px); line-height:1.01; letter-spacing:-.058em; }
    .about { padding-top:47px; border-top:1px solid var(--line); }
    @media(max-width:719px) {
      .type-hero { padding:13px 0 60px; }
      .hero-meta { padding-bottom:48px; }
      .hero-meta .label { margin:0; padding-top:18px; font-size:9px; }
      .type-hero li { font-size:clamp(24px,8.4vw,65px); line-height:1.06; letter-spacing:-.055em; }
      .about { padding-top:34px; }
    }
    @media(max-width:480px) { .top { min-height:0; padding:24px 0 16px; flex-wrap:wrap; row-gap:8px; } .top nav { flex-basis:100%; justify-content:flex-end; gap:24px; } .top nav a { font-size:10px; white-space:nowrap; } }

/* Bilingual navigation: original logo, palette, typography and grid retained. */
nav { align-items:center; }
.languages { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; }
.languages > span { font-size:11px; color:var(--muted); }
.languages a { color:var(--muted); }
.languages a[aria-current="page"] { color:var(--ink); text-decoration:underline; text-underline-offset:5px; }
.legal { border-top:1px solid var(--line); padding:46px 0 80px; max-width:900px; }
.legal h1 { margin:24px 0 32px; font-size:clamp(29px,4vw,54px); line-height:1.1; font-weight:400; letter-spacing:-.035em; overflow-wrap:anywhere; }
.legal h2 { margin:32px 0 12px; font-size:22px; font-weight:400; letter-spacing:-.025em; }
.legal p, .legal li { font-size:16px; line-height:1.6; overflow-wrap:anywhere; }
.legal ul { padding-left:22px; }
.legal a:not(.label) { text-decoration:underline; text-underline-offset:3px; }
.legal .draft-note { border:1px solid var(--line); padding:18px; }
.legal .legal-small { font-size:13px; color:var(--muted); }
.brand { flex-shrink:0; }
.locations { margin:10px 0 0; color:var(--muted); font-size:10px; line-height:1.5; letter-spacing:.06em; }
@media (min-width:481px) and (max-width:600px) {
  .top { flex-wrap:wrap; row-gap:8px; padding-bottom:16px; }
  .top nav { flex-basis:100%; justify-content:flex-end; }
}
