:root {
  --green-950: #041b18;
  --green-900: #062722;
  --green-850: #08332c;
  --green-800: #0d3b33;
  --gold: #c3975d;
  --gold-dark: #9d7341;
  --ivory: #f6f1e9;
  --ivory-2: #eee7dc;
  --white: #fffdf9;
  --ink: #15201e;
  --muted: #6e7773;
  --line: rgba(20, 34, 31, .14);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --shadow: 0 26px 70px rgba(4, 27, 24, .16);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--ivory);
  font-family: var(--sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font: inherit; }
.shell { width: min(1280px, calc(100% - 64px)); margin-inline: auto; }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 30;
  color: var(--white);
  border-bottom: 1px solid rgba(255, 255, 255, .13);
  transition: background .25s ease, box-shadow .25s ease, transform .25s ease;
}
.site-header.is-stuck {
  position: fixed;
  background: rgba(4, 27, 24, .94);
  backdrop-filter: blur(16px);
  box-shadow: 0 10px 30px rgba(0,0,0,.12);
}
.header-inner { height: 86px; display: flex; align-items: center; gap: 36px; }
.brand { display: inline-flex; align-items: center; gap: 14px; min-width: 250px; }
.brand-mark {
  font: 600 36px/1 var(--serif);
  letter-spacing: -.09em;
  color: var(--gold);
}
.brand-text { display: flex; flex-direction: column; line-height: 1.05; }
.brand-text strong { font: 600 18px/1.05 var(--serif); letter-spacing: .015em; }
.brand-text small { margin-top: 7px; font-size: 8px; letter-spacing: .27em; color: #d9d3ca; }
.main-nav { margin-left: auto; display: flex; align-items: center; gap: 34px; font-size: 12px; font-weight: 600; }
.main-nav a { position: relative; padding: 33px 0 27px; }
.main-nav a::after { content: ""; position: absolute; height: 1px; left: 0; right: 100%; bottom: 22px; background: var(--gold); transition: .25s ease; }
.main-nav a:hover::after, .main-nav a.active::after { right: 0; }
.header-cta {
  margin-left: 18px;
  border: 1px solid rgba(195,151,93,.7);
  min-height: 42px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  gap: 22px;
  font: 600 12px/1 var(--serif);
  transition: .2s ease;
}
.header-cta:hover { background: var(--gold); color: var(--green-950); }
.menu-toggle { display:none; margin-left:auto; width:42px; height:42px; border:1px solid rgba(255,255,255,.2); background:transparent; color:#fff; }
.menu-toggle span { width:20px; height:1px; background:currentColor; display:block; margin:5px auto; }

.hero {
  min-height: 760px;
  position: relative;
  display: grid;
  align-items: center;
  overflow: hidden;
  background: var(--green-950);
  color: var(--white);
}
.hero-photo {
  position: absolute;
  inset: 0 0 0 43%;
  background: url('assets/hero-office.webp') center center / cover no-repeat;
}
.hero-overlay {
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(4,27,24,1) 0%, rgba(4,27,24,.97) 36%, rgba(4,27,24,.63) 59%, rgba(4,27,24,.18) 100%),
    linear-gradient(180deg, rgba(4,27,24,.18) 0%, rgba(4,27,24,.04) 55%, rgba(4,27,24,.42) 100%);
}
.hero-inner { position: relative; z-index: 2; padding-top: 86px; }
.hero-copy { width: min(650px, 56%); padding: 94px 0 74px; }
.eyebrow, .section-label { margin:0 0 16px; color:var(--gold); font-size:10px; font-weight:700; letter-spacing:.28em; }
.hero h1 { margin:0; font:600 clamp(64px, 6vw, 96px)/.86 var(--serif); letter-spacing:-.045em; }
.hero h1 span { display:block; margin-top:8px; }
.hero-lead { max-width: 570px; margin: 26px 0 0; color: #e1e4df; font-size: 17px; line-height: 1.75; }
.hero-points { display:flex; gap:0; margin-top:30px; }
.mini-point { display:flex; align-items:center; gap:12px; padding: 0 26px; min-height:54px; border-left:1px solid rgba(195,151,93,.5); color:#f4efe7; font:500 11px/1.5 var(--serif); }
.mini-point:first-child { padding-left:0; border-left:0; }
.mini-icon { width:31px; height:31px; color:var(--gold); flex:0 0 auto; }
.mini-icon svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.phone-button { margin-top:32px; width: 300px; min-height:58px; padding:0 18px; display:flex; align-items:center; gap:14px; background:linear-gradient(135deg,#ad814c,#c89f68); color:#fff; box-shadow:0 16px 32px rgba(0,0,0,.16); }
.phone-button strong { font:600 18px/1 var(--serif); letter-spacing:.02em; }
.phone-button .arrow { margin-left:auto; font-size:22px; }
.phone-icon { font-size:17px; }

.about-section { background:var(--white); overflow:hidden; }
.about-grid { min-height: 430px; display:grid; grid-template-columns: 1.15fr .85fr 1.05fr; align-items:stretch; }
.about-copy { padding: 62px 60px 58px 0; }
.about-copy h2, .principles-head h2, .process-title h2, .contact-strip h2, .contact-details h2 {
  margin:0;
  font:600 clamp(42px, 4.3vw, 66px)/.95 var(--serif);
  letter-spacing:-.035em;
}
.about-copy p:not(.section-label) { margin: 20px 0 0; max-width:560px; color:#606a66; font-size:13px; }
.text-link { margin-top:24px; display:inline-flex; align-items:center; gap:20px; border:1px solid var(--gold-dark); padding:11px 18px; color:#6f4d29; font:600 13px/1 var(--serif); }
.about-statement { align-self:center; border-left:1px solid #d9cdbd; padding:38px 48px; }
.quote-mark { color:#caa16b; font:700 68px/1 var(--serif); }
.about-statement blockquote { margin:-12px 0 18px; font:500 22px/1.38 var(--serif); font-style:italic; color:#35413e; }
.signature-line { width:34px; height:2px; background:var(--gold); margin:20px 0 10px; }
.about-statement strong { font-size:12px; }
.about-visual { position:relative; min-height:430px; overflow:hidden; }
.about-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(4,27,24,.48)); }
.about-visual img { width:100%; height:100%; object-fit:cover; }
.visual-caption { position:absolute; z-index:2; left:38px; bottom:40px; color:#fff; font:600 17px/1.25 var(--serif); letter-spacing:.08em; }
.visual-caption::after { content:""; display:block; width:30px; height:2px; background:var(--gold); margin-top:14px; }

.principles-section { position:relative; padding: 70px 0 76px; background:var(--green-900); color:#fff; overflow:hidden; }
.principles-bg { position:absolute; inset:0; opacity:.11; background:radial-gradient(circle at 90% 18%,rgba(195,151,93,.6),transparent 32%), linear-gradient(130deg,transparent 0 35%,rgba(255,255,255,.08) 36% 37%,transparent 38%); }
.principles-section .shell { position:relative; z-index:1; }
.section-label.light { color:#d6ad75; }
.principles-head { display:grid; grid-template-columns: 1fr 1.2fr; gap:70px; align-items:end; }
.principles-head h2 { font-size:clamp(46px,4.5vw,64px); }
.principles-head > p { margin:0 0 6px; max-width:690px; color:#d6ddd9; font-size:13px; }
.principle-cards { margin-top:28px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.principle-card { min-height:220px; position:relative; padding:27px 28px 24px 112px; border:1px solid rgba(195,151,93,.7); background:linear-gradient(135deg,rgba(255,255,255,.025),rgba(255,255,255,.005)); overflow:hidden; }
.principle-card::after { content:""; position:absolute; width:150px; height:150px; right:-60px; bottom:-70px; border:1px solid rgba(195,151,93,.14); border-radius:50%; }
.card-icon { position:absolute; left:24px; top:28px; width:66px; height:66px; border:1px solid var(--gold); border-radius:50%; display:grid; place-items:center; color:var(--gold); box-shadow:0 0 22px rgba(195,151,93,.12); }
.card-icon svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.card-number { color:var(--gold); font:600 16px/1 var(--serif); }
.principle-card h3 { margin:12px 0 7px; font:600 30px/1 var(--serif); }
.principle-card p { margin:0; color:#d6ddd9; font-size:12px; line-height:1.65; }
.card-foot { display:block; margin-top:17px; color:#cda56e; font-size:8px; font-weight:700; letter-spacing:.24em; }

.process-section { padding:82px 0; background:var(--ivory); }
.process-grid { display:grid; grid-template-columns:.9fr 1.4fr; gap:70px; align-items:start; }
.process-title h2 { font-size:clamp(45px,4.2vw,62px); }
.process-steps { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.process-step { padding:32px 26px; min-height:210px; }
.process-step + .process-step { border-left:1px solid var(--line); }
.process-step span { color:var(--gold-dark); font:600 16px/1 var(--serif); }
.process-step h3 { margin:38px 0 8px; font:600 26px/1 var(--serif); }
.process-step p { margin:0; color:var(--muted); font-size:12px; }

.contact-strip { padding:34px 0; background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.contact-strip-grid { display:grid; grid-template-columns:.8fr 1.4fr; gap:40px; align-items:center; }
.contact-strip h2 { font-size:34px; line-height:1.02; }
.contact-quick { display:grid; grid-template-columns:1fr 1fr auto; gap:0; align-items:center; }
.quick-item { min-height:70px; display:flex; gap:14px; align-items:center; padding:0 28px; border-left:1px solid var(--line); }
.quick-icon { width:42px; height:42px; display:grid; place-items:center; background:linear-gradient(135deg,#b48751,#c9a36f); color:#fff; border-radius:50%; }
.quick-item span:last-child { display:flex; flex-direction:column; }
.quick-item small { font-size:8px; letter-spacing:.15em; color:#777f7a; }
.quick-item strong { margin-top:4px; font:600 14px/1.25 var(--serif); }
.gold-button { min-height:48px; padding:0 25px; display:flex; align-items:center; gap:25px; justify-content:center; background:linear-gradient(135deg,#ad814c,#c89f68); color:#fff; font:600 14px/1 var(--serif); }

.contact-section { background:var(--green-950); color:#fff; }
.contact-grid { min-height:380px; display:grid; grid-template-columns:.85fr 1.2fr .62fr; }
.contact-details { padding:58px 46px 52px 0; }
.contact-details h2 { font-size:48px; }
.contact-details > p:not(.section-label) { color:#aebbb5; max-width:420px; font-size:12px; margin:16px 0 0; }
.contact-list { margin-top:28px; display:grid; gap:18px; }
.contact-row { display:flex; align-items:flex-start; gap:15px; }
.contact-symbol { color:var(--gold); font-size:20px; width:26px; }
.contact-row span:last-child { display:flex; flex-direction:column; }
.contact-row small { color:#9faea8; font-size:8px; letter-spacing:.18em; }
.contact-row strong { margin-top:4px; color:#f2eee7; font-size:11px; line-height:1.55; }
.map-wrap { min-height:380px; background:#dedbd2; }
.map-wrap iframe { width:100%; height:100%; min-height:380px; border:0; filter:grayscale(.8) sepia(.1) contrast(.92); }
.contact-brand { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:linear-gradient(145deg,#0a302a,#041b18); padding:40px 28px; border-left:1px solid rgba(255,255,255,.08); }
.footer-mark { font:600 62px/.8 var(--serif); letter-spacing:-.08em; color:#fff; }
.contact-brand strong { margin-top:20px; font:600 17px/1 var(--serif); letter-spacing:.06em; }
.contact-brand small { margin-top:8px; color:#c7d0cc; font-size:8px; letter-spacing:.25em; }
.brand-rule { width:34px; height:1px; background:var(--gold); margin:22px 0; }
.contact-brand p { margin:0; max-width:190px; color:#d3dad6; font:500 16px/1.45 var(--serif); }

.site-footer { background:#031512; color:#8fa099; border-top:1px solid rgba(255,255,255,.08); }
.footer-inner { min-height:110px; display:grid; grid-template-columns:1fr auto 1fr; gap:32px; align-items:center; }
.footer-left { display:flex; align-items:center; gap:15px; }
.footer-mark.small { font-size:36px; color:var(--gold); }
.footer-left div { display:flex; flex-direction:column; }
.footer-left strong { color:#f7f3ed; font:600 15px/1 var(--serif); }
.footer-left small { margin-top:5px; font-size:7px; letter-spacing:.2em; }
.site-footer nav { display:flex; gap:28px; font-size:9px; color:#d4dbd7; }
.site-footer nav a:hover { color:var(--gold); }
.footer-copy { text-align:right; font-size:9px; }

.back-top { position:fixed; z-index:20; right:20px; bottom:20px; width:42px; height:42px; border:1px solid rgba(195,151,93,.7); border-radius:50%; background:rgba(4,27,24,.88); color:var(--gold); opacity:0; pointer-events:none; transition:.2s ease; }
.back-top.show { opacity:1; pointer-events:auto; }

.reveal { opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 1100px) {
  .shell { width:min(100% - 40px, 960px); }
  .main-nav { gap:20px; }
  .brand { min-width:auto; }
  .header-cta { display:none; }
  .hero-photo { left:38%; }
  .hero-copy { width:62%; }
  .about-grid { grid-template-columns:1fr 1fr; }
  .about-visual { grid-column:1 / -1; min-height:360px; }
  .principle-card { padding-left:95px; }
  .card-icon { width:54px; height:54px; }
  .contact-strip-grid { grid-template-columns:1fr; }
  .contact-quick { grid-template-columns:1fr 1fr auto; }
  .contact-grid { grid-template-columns:1fr 1.3fr; }
  .contact-brand { grid-column:1 / -1; min-height:240px; }
}

@media (max-width: 820px) {
  .site-header { position:absolute; }
  .site-header.is-stuck { position:fixed; }
  .header-inner { height:74px; }
  .brand-mark { font-size:31px; }
  .brand-text strong { font-size:15px; }
  .menu-toggle { display:block; }
  .main-nav { display:none; position:absolute; top:74px; left:20px; right:20px; margin:0; flex-direction:column; align-items:stretch; gap:0; padding:10px; background:rgba(4,27,24,.98); border:1px solid rgba(195,151,93,.28); box-shadow:var(--shadow); }
  .main-nav.open { display:flex; }
  .main-nav a { padding:14px 12px; }
  .main-nav a::after { display:none; }
  .hero { min-height:760px; }
  .hero-photo { inset:0; opacity:.7; }
  .hero-overlay { background:linear-gradient(90deg,rgba(4,27,24,.98) 0%,rgba(4,27,24,.86) 60%,rgba(4,27,24,.42) 100%), linear-gradient(180deg,rgba(4,27,24,.2),rgba(4,27,24,.55)); }
  .hero-copy { width:82%; padding:100px 0 70px; }
  .hero-points { flex-wrap:wrap; gap:18px 0; }
  .mini-point { width:50%; }
  .mini-point:nth-child(3) { border-left:0; padding-left:0; }
  .about-grid, .principles-head, .process-grid, .contact-grid { grid-template-columns:1fr; }
  .about-copy { padding:58px 0 25px; }
  .about-statement { border-left:0; border-top:1px solid #d9cdbd; padding:35px 0 48px; }
  .about-visual { grid-column:auto; min-height:340px; }
  .principles-head { gap:24px; }
  .principle-cards { grid-template-columns:1fr; }
  .principle-card { min-height:190px; }
  .process-steps { grid-template-columns:1fr; }
  .process-step + .process-step { border-left:0; border-top:1px solid var(--line); }
  .process-step { min-height:auto; }
  .contact-quick { grid-template-columns:1fr; }
  .quick-item { border-left:0; border-top:1px solid var(--line); padding:14px 0; }
  .gold-button { margin-top:10px; }
  .contact-details { padding:58px 0; }
  .map-wrap, .map-wrap iframe { min-height:330px; }
  .contact-brand { grid-column:auto; min-height:260px; }
  .footer-inner { grid-template-columns:1fr; padding:32px 0; text-align:left; }
  .site-footer nav { flex-wrap:wrap; }
  .footer-copy { text-align:left; }
}

@media (max-width: 540px) {
  .shell { width:calc(100% - 28px); }
  .brand-text { display:none; }
  .hero { min-height:720px; }
  .hero-photo { background-position:58% center; }
  .hero-copy { width:100%; padding-top:98px; }
  .hero h1 { font-size:62px; }
  .hero-lead { font-size:14px; max-width:340px; }
  .hero-points { margin-top:24px; }
  .mini-point { width:100%; padding:0; border-left:0; }
  .phone-button { width:100%; max-width:330px; }
  .about-copy h2, .principles-head h2, .process-title h2 { font-size:43px; }
  .about-statement blockquote { font-size:20px; }
  .about-visual { min-height:280px; }
  .principles-section { padding:60px 0; }
  .principle-card { padding:24px 22px 24px 94px; }
  .card-icon { left:22px; width:52px; height:52px; }
  .contact-strip h2 { font-size:30px; }
  .contact-details h2 { font-size:40px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
}
