:root {
  --ink:#08090a;
  --ink-raised:#111316;
  --ink-soft:#181a1e;
  --paper:#f5f3ed;
  --warm:#ded9cf;
  --gold:#c8a854;
  --gold-pale:#ecdca7;
  --gold-deep:#72530a;
  --muted:#aaa59b;
  --line:rgba(255,255,255,.14);
  --line-dark:rgba(8,9,10,.15);
  --radius:22px;
  --shadow:0 22px 55px rgba(0,0,0,.2);
  --sans:"Lato",Arial,Helvetica,sans-serif;
  --display:"Lato",Arial,Helvetica,sans-serif;
}

* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-variant-emoji:text; line-height:1.55; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.skip-link { position:fixed; z-index:100; top:10px; left:10px; transform:translateY(-180%); padding:10px 14px; color:var(--ink); background:var(--gold-pale); font-weight:800; }
.skip-link:focus { transform:translateY(0); }
.shell { width:min(1160px,calc(100% - 48px)); margin:0 auto; }
.eyebrow { display:flex; align-items:center; gap:9px; margin:0 0 15px; color:var(--gold); font-size:.72rem; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
.eyebrow::before { width:8px; height:8px; border-radius:50%; background:currentColor; content:""; }
.section-title { max-width:760px; margin:0; font-family:var(--display); font-size:clamp(2.1rem,4.35vw,4rem); font-weight:900; letter-spacing:-.025em; line-height:1.03; }
.lead { max-width:680px; margin:20px 0 0; color:#615f5a; font-size:1.05rem; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; gap:9px; padding:13px 19px; border:1px solid transparent; border-radius:999px; font-weight:850; transition:transform .25s ease,background-position .35s ease,border-color .25s ease,box-shadow .25s ease; }
.button:hover { transform:translateY(-3px); box-shadow:0 12px 25px rgba(0,0,0,.16); }
.button-gold { color:var(--ink); background:linear-gradient(115deg,var(--gold-pale),var(--gold),var(--gold-pale)); background-size:200% 100%; }
.button-gold:hover { background-position:100% 0; }
.button-light { color:#fff; border-color:rgba(255,255,255,.45); background:transparent; }
.button-dark { color:#fff; background:var(--ink); }
.button-line { color:var(--ink); border-color:rgba(8,9,10,.5); background:transparent; }
.link-arrow { position:relative; display:inline-block; width:.82em; height:.82em; margin-left:.34em; vertical-align:-.03em; color:currentColor; }
.link-arrow::before { position:absolute; top:.13em; right:.08em; width:.48em; height:.48em; border-top:1.7px solid currentColor; border-right:1.7px solid currentColor; content:""; }
.link-arrow::after { position:absolute; top:.46em; left:.06em; width:.76em; height:1.7px; transform:rotate(-45deg); transform-origin:right center; background:currentColor; content:""; }

.site-header { position:sticky; z-index:20; top:0; color:#fff; border-bottom:1px solid transparent; background:rgba(8,9,10,.88); backdrop-filter:blur(15px); transition:border-color .25s ease,box-shadow .25s ease,background .25s ease; }
.site-header.scrolled { border-bottom-color:rgba(236,220,167,.24); background:rgba(8,9,10,.96); box-shadow:0 9px 24px rgba(0,0,0,.2); }
.header-row { display:flex; align-items:center; justify-content:space-between; min-height:82px; gap:22px; }
.brand img { display:block; width:auto; height:43px; }
.nav { display:flex; align-items:center; gap:30px; }
.nav a { position:relative; color:#f0ece3; font-size:.91rem; font-weight:700; }
.nav a:not(.button)::after { position:absolute; bottom:-8px; left:0; width:100%; height:1px; transform:scaleX(0); transform-origin:left; background:var(--gold); content:""; transition:transform .2s ease; }
.nav a:hover::after,.nav a[aria-current="page"]::after { transform:scaleX(1); }
.menu-button { display:none; width:46px; height:46px; border:1px solid rgba(255,255,255,.25); border-radius:13px; color:#fff; background:transparent; font-size:1.25rem; }

.hero { position:relative; min-height:635px; height:calc(100svh - 82px); max-height:720px; overflow:hidden; color:#fff; background:linear-gradient(90deg,rgba(0,0,0,.7),rgba(0,0,0,.17)),url("calvenor-cities.png") center/cover; }
.hero::before { position:absolute; z-index:0; inset:0; background:linear-gradient(180deg,rgba(8,9,10,.15),rgba(8,9,10,.82)); content:""; }
.hero::after { position:absolute; z-index:1; inset:-20%; background:radial-gradient(circle at 67% 48%,rgba(236,220,167,.2),transparent 24%),radial-gradient(circle at 28% 72%,rgba(200,168,84,.13),transparent 20%); content:""; pointer-events:none; }
.hero-content { position:relative; z-index:2; height:100%; }
.hero-eyebrow { position:absolute; top:118px; left:0; margin:0; color:var(--gold-pale); font-size:.72rem; font-weight:900; letter-spacing:.17em; text-transform:uppercase; }
.hero-eyebrow::before { display:inline-block; width:8px; height:8px; margin:0 10px 1px 0; border-radius:50%; background:var(--gold); content:""; }
.hero-mark { position:absolute; top:150px; left:0; width:min(570px,calc(100% - 440px)); padding:31px 32px; border:2px solid rgba(236,220,167,.85); background:rgba(8,9,10,.12); }
.hero h1 { max-width:500px; margin:0; font-family:var(--sans); font-size:clamp(3rem,5.7vw,4.8rem); font-weight:900; letter-spacing:.065em; line-height:.98; text-transform:uppercase; }
.hero-detail { position:absolute; right:0; bottom:24px; width:min(470px,43%); margin:0; padding:18px 21px; border:1px solid rgba(236,220,167,.8); color:var(--gold-pale); font-size:.9rem; font-weight:800; letter-spacing:.075em; line-height:1.48; }
.hero-actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:34px; }

.intro { padding:112px 0; background:var(--paper); }
.split-intro { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(280px,.75fr); gap:68px; align-items:end; }
.stamp { padding:24px; border-left:2px solid var(--gold); color:#45433f; background:#ece8df; font-size:1rem; }
.stamp b { display:block; margin-bottom:8px; color:var(--ink); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; }

.dark-section { padding:108px 0; color:#fff; background:var(--ink); }
.dark-section .lead { color:#c4c2bc; }
.brand-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; margin-top:43px; }
.brand-card { display:flex; min-height:295px; flex-direction:column; justify-content:space-between; padding:24px; border:1px solid var(--line); border-radius:var(--radius); color:#fff; background:linear-gradient(150deg,#17191d,#0d0e10); transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease; }
.brand-card:hover { transform:translateY(-7px); border-color:var(--gold); box-shadow:0 20px 30px rgba(0,0,0,.24); }
.brand-index { color:var(--gold-pale); font-size:.72rem; font-weight:900; letter-spacing:.13em; }
.brand-card h3 { margin:34px 0 10px; font-size:1.35rem; letter-spacing:-.018em; line-height:1.12; }
.brand-card p { margin:0; color:#c8c6c0; font-size:.9rem; }
.brand-link { display:inline-flex; width:max-content; margin-top:22px; color:var(--gold-pale); font-size:.83rem; font-weight:800; text-decoration:underline; text-underline-offset:5px; }

.principles { padding:105px 0; background:#e7e2d8; }
.principle-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; margin-top:45px; }
.principle { min-height:210px; padding:23px; border:1px solid var(--line-dark); border-radius:var(--radius); background:#f7f5ef; transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.principle:hover,.support-card:not(.dark-card):hover,.team-card:hover,.contact-item:hover { transform:translateY(-5px); border-color:rgba(114,83,10,.42); box-shadow:0 17px 28px rgba(42,35,20,.09); }
.principle b { display:block; margin-bottom:46px; color:var(--gold-deep); font-size:.73rem; letter-spacing:.12em; }
.principle h3 { margin:0 0 9px; font-size:1.15rem; letter-spacing:-.015em; line-height:1.15; }
.principle p { margin:0; color:#67635c; font-size:.87rem; }

.page-hero { padding:125px 0 72px; color:#fff; background:radial-gradient(circle at 88% 8%,rgba(200,168,84,.31),transparent 29%),var(--ink); }
.page-hero h1 { max-width:880px; margin:0; font-family:var(--display); font-size:clamp(2.8rem,5.8vw,5.5rem); font-weight:900; letter-spacing:-.03em; line-height:1; }
.page-hero .lead { color:#cfcec8; }
.page-hero .eyebrow { margin-bottom:22px; }
.content-section { padding:92px 0; }
.content-section.alternate { background:#e7e2d8; }
.content-section.dark { color:#fff; background:var(--ink); }
.content-section.dark .lead { color:#c5c3bc; }
.policy-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.34fr); gap:56px; align-items:start; }
.policy-copy { max-width:790px; }
.policy-copy h2 { margin:38px 0 11px; font-size:1.45rem; letter-spacing:-.02em; line-height:1.15; }
.policy-copy h2:first-child { margin-top:0; }
.policy-copy p,.policy-copy li { color:#56524b; }
.policy-copy ul { display:grid; gap:9px; padding-left:21px; }
.policy-copy a { color:#5d450a; font-weight:800; text-decoration:underline; text-underline-offset:3px; }
.policy-note { padding:23px; border:1px solid var(--line-dark); border-radius:var(--radius); background:#fff; box-shadow:0 14px 32px rgba(25,22,14,.06); }
.policy-note b { display:block; margin-bottom:9px; color:var(--gold-deep); font-size:.75rem; letter-spacing:.11em; text-transform:uppercase; }
.policy-note p { margin:0; color:#5f5a51; font-size:.9rem; }
.legal-links { display:grid; gap:8px; margin-top:25px; }
.legal-links a { color:#e5e2da; font-size:.84rem; }
.legal-links a:hover { color:var(--gold-pale); }
.support-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:13px; margin-top:43px; }
.support-card { min-height:218px; padding:27px; border:1px solid var(--line-dark); border-radius:var(--radius); background:#fff; transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.support-card .number { display:block; margin-bottom:47px; color:var(--gold-deep); font-size:.74rem; font-weight:900; letter-spacing:.13em; }
.support-card h3 { margin:0 0 11px; font-size:1.4rem; letter-spacing:-.02em; line-height:1.12; }
.support-card p { margin:0; color:#65615b; }
.support-card.dark-card { border-color:var(--line); background:var(--ink-raised); }
.support-card.dark-card h3 { color:#fff; }
.support-card.dark-card p { color:#c0bfb9; }

.team-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; margin-top:42px; }
.team-card { overflow:hidden; border:1px solid var(--line-dark); border-radius:var(--radius); background:#fff; transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.team-card img { display:block; width:100%; aspect-ratio:1.12/1; object-fit:cover; transition:transform .45s ease; }
.team-card:hover img { transform:scale(1.035); }
.team-card-content { padding:21px; }
.team-card h3 { margin:0; font-size:1.25rem; letter-spacing:-.018em; line-height:1.15; }
.team-card p { margin:3px 0 0; color:var(--gold-deep); font-size:.78rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.team-bio { margin-top:18px; padding:13px; border:1px solid #ddd7cb; border-radius:12px; color:#5f594f; background:#fbfaf7; font-size:.79rem; line-height:1.55; }

.statement { display:grid; grid-template-columns:.85fr 1.15fr; gap:55px; align-items:start; }
.statement-quote { margin:0; padding:28px; border-left:2px solid var(--gold); color:#d9d6cd; font-size:1.28rem; line-height:1.3; }
.statement-quote strong { display:block; margin-top:22px; color:var(--gold-pale); font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; }
.bullet-list { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.bullet-list li { padding:18px 0; border-top:1px solid var(--line); color:#dedbd4; }
.bullet-list li:last-child { border-bottom:1px solid var(--line); }

.legal-adviser { display:grid; grid-template-columns:minmax(0,1fr) minmax(300px,.8fr); gap:clamp(34px,6vw,84px); align-items:center; }
.legal-adviser-note { max-width:630px; margin:19px 0 0; color:#625d54; }
.legal-firm-card { display:grid; grid-template-columns:144px 1fr; gap:24px; align-items:center; padding:25px; border:1px solid var(--line-dark); border-radius:var(--radius); background:#fff; box-shadow:0 15px 34px rgba(33,28,18,.07); }
.legal-firm-card img { display:block; width:144px; height:144px; object-fit:contain; }
.legal-firm-card span { display:block; margin-bottom:10px; color:var(--gold-deep); font-size:.72rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.legal-firm-card h3 { margin:0; font-size:1.45rem; letter-spacing:-.02em; }
.legal-firm-card p { margin:5px 0 0; color:#6b665e; }
.bullet-list b { display:block; margin-bottom:5px; color:var(--gold-pale); font-size:.78rem; letter-spacing:.11em; }

.contact-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(34px,5vw,64px); align-items:start; }
.contact-stack { display:grid; gap:11px; margin-top:28px; }
.contact-item { padding:19px; border:1px solid var(--line-dark); border-radius:15px; background:#fff; transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.contact-item b { display:block; margin-bottom:4px; color:#80662b; font-size:.72rem; letter-spacing:.12em; }
.contact-item address,.contact-item a { color:#4f4b44; font-style:normal; }
.contact-form { margin-top:28px; padding:30px; border-radius:var(--radius); color:#fff; background:var(--ink); box-shadow:var(--shadow); }
.contact-form h2 { margin:0; font-size:2rem; letter-spacing:-.025em; line-height:1.08; }
.contact-form > p { color:#c7c5bf; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; margin:24px 0 18px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
.field label { color:#e0ded6; font-size:.76rem; font-weight:800; }
.field input,.field textarea { width:100%; padding:12px 13px; border:1px solid rgba(255,255,255,.2); border-radius:11px; color:#fff; background:rgba(255,255,255,.08); }
.field textarea { min-height:120px; resize:vertical; }
.field input::placeholder,.field textarea::placeholder { color:#b7b6b0; }
.form-note { min-height:24px; margin:13px 0 0; color:#e7d394; font-size:.84rem; }
.honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }

.cta { padding:72px 0; color:#fff; background:linear-gradient(105deg,#896e2e,#d7ba6a,#8b702f); }
.cta-row { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.cta h2 { max-width:680px; margin:0; font-family:var(--display); font-size:clamp(2rem,4.25vw,3.6rem); font-weight:900; letter-spacing:-.025em; line-height:1.04; }
.cta .button { color:#fff; background:var(--ink); }

.site-footer { padding:65px 0 28px; color:#fff; background:#050607; }
.footer-grid { display:grid; grid-template-columns:1.1fr .8fr .9fr; gap:45px; }
.footer-logo { height:45px; }
.site-footer p { margin:19px 0 0; color:#bdbbb5; font-size:.86rem; }
.footer-label { display:block; margin-bottom:15px; color:var(--gold); font-size:.72rem; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.footer-links { display:grid; gap:8px; }
.footer-links a { color:#e5e2da; font-size:.88rem; }
.footer-links a:hover { color:var(--gold-pale); }
.social-links { display:flex; flex-wrap:wrap; gap:9px; margin-top:19px; }
.social-links a { display:inline-grid; width:38px; height:38px; place-items:center; border:1px solid rgba(236,220,167,.3); border-radius:50%; color:var(--gold-pale); background:rgba(255,255,255,.03); transition:transform .22s ease,border-color .22s ease,background .22s ease,color .22s ease; }
.social-links a:hover { transform:translateY(-3px); border-color:var(--gold); color:var(--ink); background:var(--gold-pale); }
.social-links svg { width:17px; height:17px; fill:currentColor; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; margin-top:48px; padding-top:20px; border-top:1px solid var(--line); color:#989792; font-size:.75rem; }

@media (prefers-reduced-motion:no-preference) {
  .hero::after { animation:hero-light 13s ease-in-out infinite alternate; }
  .hero-eyebrow { animation:hero-enter .55s .08s both cubic-bezier(.2,.8,.2,1); }
  .hero-mark { animation:hero-enter .75s .18s both cubic-bezier(.2,.8,.2,1); }
  .hero-detail { animation:hero-enter .65s .42s both cubic-bezier(.2,.8,.2,1); }
  html.motion-ready [data-reveal] { opacity:0; transform:translateY(20px); transition:opacity .62s ease,transform .62s cubic-bezier(.2,.75,.2,1); }
  html.motion-ready [data-reveal].revealed { opacity:1; transform:none; }
}

@keyframes hero-light { from { transform:translate3d(-2%,-1%,0) scale(1); opacity:.42; } to { transform:translate3d(2%,2%,0) scale(1.04); opacity:.82; } }
@keyframes hero-enter { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }

@media (max-width:980px) {
  .brand-grid,.principle-grid,.team-grid { grid-template-columns:repeat(2,1fr); }
  .split-intro,.statement,.contact-layout,.legal-adviser { grid-template-columns:1fr; gap:34px; }
  .policy-layout { grid-template-columns:1fr; gap:28px; }
  .hero { height:auto; min-height:620px; }
  .hero-content { display:flex; height:auto; min-height:620px; flex-direction:column; align-items:flex-start; justify-content:flex-end; padding:72px 0 58px; }
  .hero-eyebrow,.hero-mark,.hero-detail { position:static; }
  .hero-eyebrow { margin-bottom:17px; }
  .hero-mark { width:min(570px,100%); }
  .hero-detail { width:min(470px,100%); margin:24px 0 0; }
}
@media (max-width:760px) {
  .shell { width:min(100% - 32px,1160px); }
  .header-row { min-height:70px; }
  .brand img { height:36px; }
  .menu-button { display:inline-grid; place-items:center; }
  .nav { position:fixed; inset:70px 16px auto; display:none; align-items:stretch; gap:0; padding:11px; border:1px solid var(--line); border-radius:18px; background:#15171b; box-shadow:var(--shadow); }
  .nav.open { display:grid; }
  .nav a { padding:13px; border-radius:10px; }
  .nav a:not(.button)::after { display:none; }
  .nav a:hover,.nav a[aria-current="page"] { color:var(--ink); background:var(--gold-pale); }
  .nav .button { margin-top:5px; }
  .hero { min-height:545px; background-position:54% center; }
  .hero-content { min-height:545px; padding:58px 0 52px; }
  .hero-mark { padding:21px; }
  .hero h1 { font-size:clamp(2.35rem,10vw,4.4rem); letter-spacing:.055em; }
  .hero-detail { margin-top:19px; padding:16px; font-size:.78rem; }
  .intro,.dark-section,.principles,.content-section { padding:70px 0; }
  .support-grid { grid-template-columns:1fr; }
  .legal-firm-card { max-width:520px; }
  .cta-row { align-items:flex-start; flex-direction:column; }
  .footer-grid { grid-template-columns:1fr; gap:32px; }
}
@media (max-width:540px) {
  .brand-grid,.principle-grid,.team-grid,.field-grid { grid-template-columns:1fr; }
  .legal-firm-card { grid-template-columns:1fr; gap:16px; }
  .legal-firm-card img { width:128px; height:128px; }
  .field.full { grid-column:auto; }
  .brand-card { min-height:230px; }
  .principle { min-height:0; }
  .footer-bottom { align-items:flex-start; flex-direction:column; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; transition-duration:.01ms !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; } }
