    :root { color-scheme: light; --ink:#102b3c; --ink-soft:#385365; --sand:#f3eee7; --line:#d8d8d3; --gold:#d3a859; --white:#fff; --sky:#d9e6e9; --gold-ink:#806020; --light-ink:#d9e3e8; --gold-hover:#edc47a; --rule-warm:#cdc7bf; --closing:#173b4f; --gutter:clamp(1.25rem,5.5vw,6.7rem); --ease:cubic-bezier(.22,1,.36,1); }
    * { box-sizing: border-box; }
    html { scroll-behavior: auto; }
    body { margin:0; color:var(--ink); background:var(--white); font-family:Arial,Helvetica,sans-serif; font-size:1rem; line-height:1.55; }
    a { color:inherit; -webkit-tap-highlight-color:transparent; }
    section[id],div[id] { scroll-margin-top:1.5rem; }
    h1,h2,h3 { text-wrap:balance; }
    p { text-wrap:pretty; }
    a:focus-visible { outline:3px solid currentColor; outline-offset:4px; }
    .skip { position:absolute; top:-4rem; left:1rem; z-index:10; padding:.7rem 1rem; background:var(--white); }
    .skip:focus { top:1rem; }
    .site-header { position:relative; z-index:2; background:var(--white); }
    .header-inner { max-width:1440px; margin:auto; min-height:96px; padding:0 clamp(1.25rem,4vw,4rem); display:flex; align-items:center; justify-content:space-between; gap:2rem; }
    .brand { display:inline-flex; align-items:center; gap:.78rem; text-decoration:none; min-width:max-content; }
    .brand-mark { display:grid; place-items:center; width:42px; height:42px; background:var(--ink); color:var(--gold); border-radius:2px; }
    .brand-mark svg { width:28px; height:28px; }
    .brand-name { display:flex; flex-direction:column; font-family:Georgia,serif; font-size:1.28rem; font-weight:bold; letter-spacing:-.025em; line-height:1.1; }
    .brand-name small { margin-top:.33rem; font:700 .75rem Arial,sans-serif; letter-spacing:.18em; text-transform:uppercase; }
    nav { display:flex; align-items:center; gap:clamp(1.2rem,2.4vw,2.8rem); font-size:.88rem; font-weight:700; letter-spacing:.025em; }
    nav a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; transition:color 180ms var(--ease),background 180ms var(--ease); }
    nav a:hover { color:var(--gold-ink); }
    .nav-cta { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.5rem 1.1rem; border:1px solid var(--ink); }
    .nav-cta:hover { background:var(--ink); color:var(--white); }
    .hero { display:grid; grid-template-columns:minmax(0,45%) minmax(0,55%); min-height:640px; background:var(--ink); color:var(--white); }
    .hero-copy { align-self:center; padding:clamp(3.5rem,6vw,6rem) var(--gutter); }
    .eyebrow { margin:0 0 1.65rem; color:var(--gold); font-size:.875rem; font-weight:700; line-height:1.5; letter-spacing:.12em; text-transform:uppercase; }
    h1,h2,h3,p { margin-top:0; }
    h1,h2 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.035em; }
    h1 { max-width:650px; margin-bottom:1.5rem; font-size:clamp(3rem,4.6vw,5.5rem); line-height:1.1; }
    .hero-copy>p:not(.eyebrow) { max-width:520px; color:var(--light-ink); font-size:clamp(1rem,1.3vw,1.13rem); line-height:1.7; }
    .hero-actions { display:flex; flex-wrap:wrap; gap:1.4rem; align-items:center; margin-top:2.5rem; }
    .button { display:inline-flex; align-items:center; justify-content:center; gap:.8rem; min-height:52px; padding:.75rem 1.4rem; background:var(--gold); color:var(--ink); font-size:.9rem; font-weight:700; text-decoration:none; transition:transform 180ms var(--ease),background 180ms var(--ease); }
    .button:hover { background:var(--gold-hover); transform:translateY(-2px); }
    .hero .button:focus-visible { outline-color:var(--white); }
    .button:active { transform:translateY(0); }
    .text-link { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; border-bottom:1px solid var(--gold); padding:.5rem 0; font-size:.9rem; font-weight:700; }
    .text-link:hover { color:var(--gold); }
    .hero-photo { min-height:480px; position:relative; background:var(--sky); overflow:hidden; }
    .hero-photo img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:45% center; }
    .intro-strip { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:1.5rem clamp(1.25rem,5.5vw,6.7rem); background:var(--sand); border-bottom:1px solid var(--line); }
    .intro-strip p { margin:0; font-size:1rem; font-weight:700; letter-spacing:0; }
    .intro-strip span { font-family:Georgia,serif; font-size:1rem; font-style:italic; color:var(--ink-soft); }
    .section { max-width:1440px; margin:auto; padding:clamp(4rem,7vw,7rem) var(--gutter); }
    .section-heading { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:end; margin-bottom:3.5rem; }
    .section-heading h2 { max-width:570px; margin:0; font-size:clamp(2.4rem,3.6vw,4.2rem); line-height:1.1; }
    .section-heading p { max-width:430px; margin:0; color:var(--ink-soft); font-size:1.08rem; }
    .services { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
    .service { min-height:230px; padding:2.25rem 2rem 2.25rem 0; display:flex; flex-direction:column; }
    .service+.service { border-left:1px solid var(--line); padding-left:2rem; }
    .service h3 { margin:0 0 1rem; font:400 clamp(1.6rem,2.2vw,2.25rem)/1.13 Georgia,serif; letter-spacing:-.035em; }
    .service p { max-width:330px; margin:0; color:var(--ink-soft); font-size:1rem; line-height:1.6; }
    .approach { background:var(--sand); }
    .approach-inner { max-width:1440px; margin:auto; padding:clamp(4rem,7vw,7rem) var(--gutter); display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(3rem,8vw,9rem); }
    .approach h2 { margin-bottom:1.5rem; font-size:clamp(2.4rem,3.6vw,4.2rem); line-height:1.1; }
    .approach-lede { max-width:560px; color:var(--ink-soft); font-size:1.14rem; line-height:1.75; }
    .principles { align-self:center; border-top:1px solid var(--rule-warm); }
    .principle { display:grid; grid-template-columns:3rem 1fr; gap:1rem; padding:1.5rem 0; border-bottom:1px solid var(--rule-warm); }
    .principle span { color:var(--gold-ink); font-size:.875rem; font-weight:700; }
    .principle h3 { margin:0 0 .35rem; font:400 1.42rem Georgia,serif; }
    .principle p { margin:0; color:var(--ink-soft); font-size:1rem; }
    .closing { padding:clamp(5rem,8vw,8rem) 1.25rem; background:var(--closing); color:var(--white); text-align:center; }
    .closing h2 { max-width:800px; margin:0 auto 1.5rem; font-size:clamp(2.8rem,4.5vw,5.5rem); line-height:1.12; }
    .closing p { max-width:560px; margin:0 auto 2rem; color:var(--light-ink); font-size:1.08rem; }
    footer { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; padding:2rem clamp(1.25rem,5.5vw,6.7rem); background:var(--ink); color:var(--light-ink); font-size:.875rem; }
    footer p { margin:0; }
    footer a { display:inline-flex; align-items:center; min-height:44px; text-decoration:none; }
    footer a:hover { color:var(--gold); }
    @media (max-width:900px) {
      .header-inner { min-height:78px; }
      nav { gap:1rem; }
      .nav-cta { display:none; }
      .hero { grid-template-columns:1fr; }
      .hero-copy { padding:3.5rem clamp(1.25rem,7vw,4rem); }
      .hero-photo { min-height:0; aspect-ratio:16/9; }
      .section-heading,.approach-inner { grid-template-columns:1fr; gap:2rem; }
      .section-heading { margin-bottom:2.5rem; }
    }
    @media (max-width:620px) {
      .header-inner { align-items:flex-start; flex-direction:column; gap:.5rem; padding-top:1rem; padding-bottom:.5rem; }
      .brand-mark { width:38px; height:38px; }
      nav { width:100%; justify-content:space-between; font-size:.875rem; }
      .hero-copy { padding:2.75rem 1.25rem 3rem; }
      h1 { font-size:clamp(2.65rem,10.5vw,3.75rem); }
      .hero-photo { min-height:0; aspect-ratio:4/3; }
      .hero-actions { gap:1rem; margin-top:1.75rem; }
      .intro-strip { align-items:flex-start; flex-direction:column; gap:.55rem; }
      .services { grid-template-columns:1fr; }
      .service,.service+.service { min-height:0; padding:1.75rem 0; border-left:0; }
      .service+.service { border-top:1px solid var(--line); }
      .service h3 { margin:0 0 .7rem; }
      .approach-inner { gap:2.5rem; }
    }
    @media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } a,.button { transition:none; } .button:hover { transform:none; } }
    .service-link { margin-top:1.5rem; align-self:flex-start; }
    .service-link:hover,.related-link:hover { color:var(--gold-ink); }
    .page-hero { background:var(--ink); color:var(--white); }
    .page-hero-inner { max-width:1440px; margin:auto; padding:1.5rem var(--gutter) clamp(3.5rem,6vw,6rem); }
    .breadcrumbs { display:flex; justify-content:flex-start; align-items:center; flex-wrap:wrap; gap:.6rem; margin-bottom:2.75rem; font-size:.875rem; font-weight:400; color:var(--light-ink); }
    .breadcrumbs a:hover { color:var(--gold); }
    .page-hero-grid { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:3rem; }
    .page-hero h1 { margin:0; font-size:clamp(2.75rem,4.8vw,5.25rem); }
    .page-hero .page-lede { max-width:48ch; margin:0; color:var(--light-ink); font-size:1.15rem; line-height:1.7; }
    .detail-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2.5rem,6vw,6rem); }
    .detail-grid h2,.faq h2,.related h2 { font-size:clamp(2.2rem,3.2vw,3.5rem); line-height:1.15; }
    .detail-grid p { color:var(--ink-soft); max-width:60ch; }
    .detail-list { margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
    .detail-list li { padding:1.5rem 0; border-bottom:1px solid var(--line); }
    .detail-list h3 { margin:0 0 .6rem; font:400 1.6rem/1.2 Georgia,serif; }
    .detail-list p { margin:0; }
    .faq { max-width:960px; }
    .faq details { border-bottom:1px solid var(--line); padding:.35rem 0; }
    .faq summary { cursor:pointer; padding:1rem 0; min-height:44px; font-size:1.1rem; font-weight:700; }
    .faq summary:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
    .faq details p { max-width:65ch; padding:.25rem 0 1rem; color:var(--ink-soft); }
    .related { background:var(--sand); }
    .related-inner { max-width:1440px; margin:auto; padding:3.5rem var(--gutter); }
    .related h2 { margin:0 0 1.5rem; }
    .related-links { display:flex; flex-wrap:wrap; gap:1rem 2.5rem; }
    .related-link { display:inline-flex; align-items:center; min-height:44px; text-underline-offset:.4rem; font-weight:700; }
    @media(max-width:900px) { .page-hero-grid,.detail-grid { grid-template-columns:1fr; gap:2rem; } }
    @media(max-width:620px) { .breadcrumbs { justify-content:flex-start; font-size:.875rem; margin-bottom:1.75rem; } .page-hero h1 { font-size:clamp(2.6rem,10vw,3.75rem); } }

