:root { --ink:#092c32; --gold:#c8a66a; --gold-light:#ead9b7; --paper:#fcfaf6; --text:#17373b; --muted:#64777a; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--text); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }

.site-header { align-items:center; background:rgba(9,44,50,.97); border-bottom:1px solid rgba(255,255,255,.1); color:white; display:grid; grid-template-columns:1fr auto 1fr; min-height:105px; padding:0 5vw; position:absolute; top:0; width:100%; z-index:10; }
.brand { align-items:center; display:inline-flex; justify-self:start; }
.brand-logo { display:block; height:88px; overflow:hidden; width:175px; }
.logo-viewport { display:block; height:88px; overflow:hidden; position:relative; width:175px; }
.logo-viewport img { filter:brightness(0) saturate(100%) invert(81%) sepia(31%) saturate(617%) hue-rotate(358deg) brightness(85%) contrast(84%); height:auto; left:-10px; max-width:none; position:absolute; top:-29px; width:197px; }
.main-nav { display:flex; gap:34px; }
.main-nav a { color:#dbe3e2; font-size:13px; transition:color .2s ease; }
.main-nav a:hover,.main-nav a:focus-visible { color:var(--gold-light); }
.header-cta { align-items:center; border:1px solid rgba(200,166,106,.56); display:flex; font-size:12px; gap:16px; justify-self:end; letter-spacing:.03em; padding:14px 17px; transition:background .2s ease,color .2s ease; }
.header-cta:hover,.header-cta:focus-visible { background:var(--gold); color:var(--ink); }

.hero { align-items:center; background:var(--ink); color:white; display:flex; min-height:810px; overflow:hidden; padding:170px 10vw 115px; position:relative; }
.hero::before { border:1px solid rgba(255,255,255,.06); border-radius:50%; content:""; height:740px; position:absolute; right:-230px; top:70px; width:740px; }
.hero::after { background:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px); background-size:72px 72px; content:""; inset:105px 0 0 54%; mask-image:linear-gradient(90deg,transparent,black); position:absolute; }
.hero-aura { border-radius:50%; pointer-events:none; position:absolute; }
.hero-aura-one { background:radial-gradient(circle,rgba(200,166,106,.13),transparent 69%); height:650px; right:-40px; top:90px; width:650px; }
.hero-aura-two { border:1px solid rgba(200,166,106,.13); height:340px; right:120px; top:250px; width:340px; }
.hero-copy { max-width:850px; position:relative; z-index:2; }
.eyebrow { align-items:center; color:var(--gold-light); display:flex; font-size:10px; font-weight:600; gap:12px; letter-spacing:.28em; margin:0 0 28px; text-transform:uppercase; }
.eyebrow span { background:var(--gold); display:block; height:1px; width:34px; }
.hero h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(56px,6.5vw,100px); font-weight:400; letter-spacing:-.04em; line-height:.98; margin:0; }
.hero h1 em { color:var(--gold-light); font-weight:400; }
.hero-description { color:#c8d3d2; font-size:16px; line-height:1.75; margin:35px 0 0 6px; max-width:610px; }
.hero-actions { align-items:center; display:flex; gap:38px; margin:40px 0 0 6px; }
.button { align-items:center; display:inline-flex; font-size:12px; gap:28px; letter-spacing:.04em; padding:18px 22px; transition:transform .2s ease,background .2s ease; }
.button-gold { background:var(--gold); color:var(--ink); }
.button-gold:hover,.button-gold:focus-visible { background:#d8ba83; transform:translateY(-2px); }
.text-link { border-bottom:1px solid rgba(234,217,183,.46); color:#eef2f1; font-size:12px; padding:8px 0; }
.hero-seal { align-items:center; border:1px solid rgba(200,166,106,.55); border-radius:50%; bottom:145px; display:flex; height:170px; justify-content:center; position:absolute; right:10vw; width:170px; z-index:2; }
.seal-ring { color:var(--gold-light); font-size:8px; letter-spacing:.2em; position:absolute; text-align:center; top:24px; width:115px; }
.seal-cp { color:var(--gold-light); font-family:Georgia,"Times New Roman",serif; font-size:48px; font-style:italic; letter-spacing:-6px; margin-left:-6px; }
.hero-footnote { align-items:center; bottom:38px; display:flex; gap:18px; left:10vw; position:absolute; z-index:2; }
.hero-footnote span { color:var(--gold); font-family:Georgia,"Times New Roman",serif; font-size:28px; }
.hero-footnote p { border-left:1px solid rgba(255,255,255,.18); color:#90a7a8; font-size:10px; letter-spacing:.05em; margin:0; max-width:300px; padding:4px 0 4px 18px; }

.areas-preview { background:var(--paper); padding:105px 7vw 120px; }
.section-heading { margin:0 auto 50px; max-width:1320px; }
.eyebrow-dark { color:#887046; margin-bottom:12px; }
.section-heading h2 { color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(40px,4.6vw,68px); font-weight:400; letter-spacing:-.035em; margin:0; }
.area-grid { border-left:1px solid #d9d6cd; display:grid; grid-template-columns:repeat(4,1fr); margin:0 auto; max-width:1320px; }
.area-card { border-bottom:1px solid #d9d6cd; border-right:1px solid #d9d6cd; border-top:1px solid #d9d6cd; min-height:285px; padding:28px 26px 30px; position:relative; transition:background .25s ease,color .25s ease,transform .25s ease; }
.area-card:hover { background:var(--ink); color:white; transform:translateY(-5px); }
.area-number { color:#a18b60; font-family:Georgia,"Times New Roman",serif; font-size:13px; }
.area-card h3 { font-family:Georgia,"Times New Roman",serif; font-size:25px; font-weight:400; line-height:1.15; margin:50px 0 15px; max-width:210px; }
.area-card p { color:var(--muted); font-size:13px; line-height:1.7; margin:0; max-width:245px; transition:color .25s ease; }
.area-card:hover p { color:#b8c6c5; }
.area-arrow { bottom:27px; color:var(--gold); font-size:18px; position:absolute; right:27px; }

.office-section { display:grid; grid-template-columns:.86fr 1.14fr; min-height:760px; }
.office-visual { align-items:center; background:#e9dfce; display:flex; justify-content:center; min-height:690px; overflow:hidden; position:relative; }
.office-visual::before { background:linear-gradient(135deg,transparent 47%,rgba(9,44,50,.07) 48%,rgba(9,44,50,.07) 52%,transparent 53%); content:""; inset:0; position:absolute; }
.office-logo { filter:brightness(0) saturate(100%) invert(14%) sepia(23%) saturate(1367%) hue-rotate(143deg) brightness(93%) contrast(96%); height:auto; max-width:560px; opacity:.2; position:relative; width:82%; z-index:1; }
.office-outline { border:1px solid rgba(9,44,50,.18); height:64%; position:absolute; transform:rotate(45deg); width:45%; }
.office-visual p { bottom:55px; color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:18px; left:55px; line-height:1.35; margin:0; position:absolute; z-index:2; }
.office-copy { align-self:center; max-width:800px; padding:95px 8vw; }
.office-copy h2 { color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(42px,4.5vw,70px); font-weight:400; letter-spacing:-.04em; line-height:1.04; margin:0 0 34px; }
.office-copy>p { color:var(--muted); font-size:14px; line-height:1.85; max-width:650px; }
.office-copy .office-lead { color:var(--text); font-family:Georgia,"Times New Roman",serif; font-size:20px; line-height:1.65; }
.credentials { border-top:1px solid #d9d6cd; display:grid; grid-template-columns:1fr 1fr; margin-top:44px; }
.credentials div { border-bottom:1px solid #d9d6cd; display:flex; flex-direction:column; gap:8px; min-height:94px; padding:22px 18px 18px 0; }
.credentials div:nth-child(odd) { border-right:1px solid #d9d6cd; }
.credentials div:nth-child(even) { padding-left:28px; }
.credentials span { color:#98845e; font-size:9px; letter-spacing:.16em; text-transform:uppercase; }
.credentials strong { color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:16px; font-weight:400; line-height:1.35; }

.method-section { background:var(--ink); color:white; display:grid; gap:9vw; grid-template-columns:.7fr 1.3fr; padding:120px 9vw; }
.method-intro h2 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(43px,4.8vw,72px); font-weight:400; letter-spacing:-.04em; line-height:1; margin:0 0 28px; }
.method-intro>p:last-child { color:#aabbbb; font-size:14px; line-height:1.75; max-width:410px; }
.method-list { border-top:1px solid rgba(255,255,255,.16); list-style:none; margin:0; padding:0; }
.method-list li { border-bottom:1px solid rgba(255,255,255,.16); display:grid; gap:24px; grid-template-columns:60px 1fr; padding:32px 0; }
.method-list>li>span { color:var(--gold); font-family:Georgia,"Times New Roman",serif; font-size:15px; }
.method-list h3 { font-family:Georgia,"Times New Roman",serif; font-size:26px; font-weight:400; margin:0 0 10px; }
.method-list p { color:#9fb0b1; font-size:13px; line-height:1.7; margin:0; max-width:580px; }

.contact-section { background:#eee7da; display:grid; gap:10vw; grid-template-columns:1.05fr .95fr; padding:120px 9vw; }
.contact-heading h2 { color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(46px,5.5vw,82px); font-weight:400; letter-spacing:-.045em; line-height:1; margin:0 0 30px; max-width:720px; }
.contact-heading>p { color:var(--muted); font-size:14px; line-height:1.75; max-width:570px; }
.button-dark { background:var(--ink); color:white; margin-top:24px; }
.button-dark:hover,.button-dark:focus-visible { background:#154149; transform:translateY(-2px); }
.contact-details { border-top:1px solid #cfc5b5; }
.contact-item { border-bottom:1px solid #cfc5b5; padding:24px 0; }
.contact-item>span { color:#8b7651; display:block; font-size:9px; letter-spacing:.18em; margin-bottom:9px; text-transform:uppercase; }
.contact-item p,.contact-item a { color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:18px; line-height:1.55; margin:0; }
.contact-item a { transition:color .2s ease; }
.contact-item a:hover,.contact-item a:focus-visible { color:#8e7041; }
.contact-note { align-items:flex-start; display:flex; gap:15px; padding-top:25px; }
.contact-note>span { align-items:center; border:1px solid #ac9874; border-radius:50%; color:#7d6740; display:flex; flex:0 0 26px; font-family:Georgia,"Times New Roman",serif; height:26px; justify-content:center; }
.contact-note p { color:#6f7774; font-size:11px; line-height:1.6; margin:3px 0 0; }

.site-footer { align-items:center; background:#061f24; color:white; display:grid; gap:40px; grid-template-columns:1fr 1fr 1fr; padding:58px 7vw; }
.footer-brand { height:98px; justify-self:start; width:195px; }
.footer-brand .logo-viewport { height:98px; width:195px; }
.footer-brand .logo-viewport img { left:-11px; top:-32px; width:219px; }
.site-footer>p { color:#8da0a1; font-size:10px; line-height:1.7; margin:0; }
.site-footer>p:last-child { justify-self:end; text-align:right; }
.floating-contact { background:var(--gold); bottom:22px; box-shadow:0 12px 40px rgba(0,0,0,.2); color:var(--ink); display:none; font-size:12px; gap:20px; justify-content:space-between; left:5vw; padding:17px 20px; position:fixed; right:5vw; z-index:20; }

@media (max-width:950px) {
  .site-header { grid-template-columns:1fr auto; }
  .main-nav { display:none; }
  .hero { min-height:760px; padding-left:7vw; padding-right:7vw; }
  .hero-seal { display:none; }
  .area-grid { grid-template-columns:repeat(2,1fr); }
  .office-section { grid-template-columns:1fr; }
  .office-visual { min-height:480px; }
  .office-copy { max-width:none; }
  .method-section,.contact-section { gap:65px; grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .site-header { min-height:88px; padding:0 5vw; }
  .brand-logo,.logo-viewport { height:74px; width:145px; }
  .logo-viewport img { left:-8px; top:-24px; width:163px; }
  .header-cta { font-size:0; gap:0; padding:11px 14px; }
  .header-cta span { font-size:18px; }
  .hero { align-items:flex-start; min-height:720px; padding:155px 6vw 105px; }
  .hero h1 { font-size:clamp(47px,14vw,65px); line-height:1.02; }
  .hero-description { font-size:14px; margin-left:0; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; margin-left:0; }
  .hero-footnote { left:6vw; }
  .areas-preview { padding:78px 5vw 90px; }
  .area-grid { border-left:0; grid-template-columns:1fr; }
  .area-card { border-left:1px solid #d9d6cd; min-height:245px; }
  .section-heading h2 { font-size:43px; }
  .office-visual { min-height:390px; }
  .office-visual p { bottom:32px; left:6vw; }
  .office-outline { height:63%; width:58%; }
  .office-copy { padding:75px 6vw; }
  .office-copy h2 { font-size:43px; }
  .office-copy .office-lead { font-size:18px; }
  .credentials { grid-template-columns:1fr; }
  .credentials div:nth-child(odd) { border-right:0; }
  .credentials div:nth-child(even) { padding-left:0; }
  .method-section,.contact-section { padding:85px 6vw; }
  .method-intro h2 { font-size:46px; }
  .method-list li { grid-template-columns:42px 1fr; }
  .contact-heading h2 { font-size:49px; }
  .site-footer { gap:32px; grid-template-columns:1fr; padding:55px 6vw 105px; }
  .footer-brand,.footer-brand .logo-viewport { height:92px; width:183px; }
  .footer-brand .logo-viewport img { left:-10px; top:-30px; width:206px; }
  .site-footer>p:last-child { justify-self:start; text-align:left; }
  .floating-contact { display:flex; }
}
