:root { color-scheme: light; --navy:#10243a; --navy-2:#17314a; --cream:#f4f0e8; --paper:#faf8f3; --ink:#172b3e; --muted:#5f6b72; --gold:#bc9664; --line:#d9d8d3; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; }
a:focus-visible { outline: 3px solid var(--gold); outline-offset: 4px; }
.skip-link { position: absolute; z-index: 10; left: 1rem; top: -4rem; background: white; padding: .7rem 1rem; }
.skip-link:focus { top: 1rem; }
.review-banner { min-height: 34px; display:flex; align-items:center; justify-content:center; gap:8px; padding:7px 16px; background:#e8e2d7; color:#49453f; text-align:center; font-size:11px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; }
.review-dot { width:7px; height:7px; border-radius:50%; background:var(--gold); }
.site-header { max-width:1440px; margin:auto; padding:25px clamp(24px,5.5vw,88px); display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:13px; text-decoration:none; }
.brand-mark { display:grid; place-items:center; width:46px; height:46px; border:1px solid var(--navy); font:700 18px Georgia,serif; letter-spacing:-.08em; }
.brand-period,.footer-brand span { color:var(--gold); }
.brand-words { display:flex; flex-direction:column; gap:3px; }
.brand-words strong { font:700 16px Georgia,serif; letter-spacing:-.02em; }
.brand-words span { font-size:9px; letter-spacing:.27em; font-weight:700; }
nav { display:flex; align-items:center; gap:clamp(20px,3.2vw,45px); }
nav a { text-decoration:none; font-size:12px; font-weight:600; }
.nav-overview { display:none; }
nav a:hover,.text-link:hover,.light-link:hover { text-decoration:underline; text-underline-offset:5px; }
.nav-contact { border-bottom:1px solid var(--gold); padding-bottom:7px; }
.nav-contact span { margin-left:10px; color:var(--gold); }
.language-switch { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; padding-left:18px; border-left:1px solid #cfc9bd; color:#867b6c; font-size:11px; font-weight:700; }
.language-switch a { font-size:11px; }
.language-switch [aria-current="page"] { color:var(--navy); }
.hero { max-width:1440px; margin:auto; min-height:610px; padding:70px clamp(24px,5.5vw,88px) 85px; display:grid; grid-template-columns:minmax(0,1.06fr) minmax(340px,.94fr); align-items:center; gap:clamp(35px,5vw,80px); }
.eyebrow { display:flex; align-items:center; gap:12px; color:#dbbc8e; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.22em; }
.eyebrow.dark { color:#8a6745; }
.eyebrow-line { display:inline-block; width:26px; height:1px; background:currentColor; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:Georgia, 'Times New Roman', serif; font-weight:400; letter-spacing:-.04em; }
h1 em,h2 em { font-style:italic; font-weight:400; }
h1 { max-width:750px; margin:27px 0 26px; font-size:clamp(50px,5.15vw,76px); line-height:1.07; }
.hero h1 em { color:#a67c4c; }
.hero-lead { max-width:520px; color:#4c5c69; font-size:17px; line-height:1.75; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:38px; }
.button-primary { display:inline-flex; align-items:center; justify-content:center; gap:27px; min-height:51px; padding:14px 23px; background:var(--navy); color:white; font-size:12px; font-weight:700; letter-spacing:.025em; text-decoration:none; transition:background .2s,transform .2s; }
.button-primary:hover { background:#254867; transform:translateY(-2px); }
.button-primary span { color:#d6ad79; font-size:18px; }
.text-link { font-size:12px; font-weight:700; text-decoration:none; }
.text-link span { margin-left:7px; color:#a67c4c; }
.hero-art { min-width:0; }
.art-frame { position:relative; height:430px; overflow:hidden; background:var(--navy); }
.art-frame::before { content:""; position:absolute; inset:28px; border:1px solid rgba(232,218,192,.4); }
.art-circle { position:absolute; width:310px; height:310px; top:45px; left:50%; transform:translateX(-50%); border:1px solid rgba(208,180,137,.72); border-radius:50%; }
.art-arc { position:absolute; width:440px; height:440px; top:95px; left:50%; transform:translateX(-50%); border:1px solid rgba(208,180,137,.25); border-radius:50%; }
.art-rule { position:absolute; background:rgba(208,180,137,.3); }
.art-rule-one { width:1px; height:100%; left:50%; }
.art-rule-two { height:1px; width:100%; top:50%; }
.art-initials { position:absolute; left:50%; top:44%; transform:translate(-50%,-50%); color:#e1c5a0; font:400 150px Georgia,serif; letter-spacing:-.12em; padding-right:.12em; }
.art-caption { position:absolute; bottom:49px; width:100%; color:#d9be95; text-align:center; font-size:9px; font-weight:700; letter-spacing:.25em; }
.hero-art-note { margin:13px 0 0; color:#7e8587; font:italic 12px Georgia,serif; text-align:right; }
.intro-strip { background:#e9e5dc; padding:26px clamp(24px,5.5vw,88px); display:flex; justify-content:space-between; align-items:center; gap:35px; }
.intro-strip p { flex:1; max-width:660px; margin:0; font:italic clamp(17px,1.6vw,22px)/1.45 Georgia,serif; }
.intro-number { font-size:10px; letter-spacing:.18em; white-space:nowrap; }
.intro-spark { color:#a67c4c; font-size:32px; }
.section-wrap { max-width:1440px; margin:auto; padding-left:clamp(24px,5.5vw,88px); padding-right:clamp(24px,5.5vw,88px); }
.route-menu { background:var(--cream); }
.route-inner { padding-top:102px; padding-bottom:108px; }
.route-heading h2 { margin:25px 0 38px; font-size:clamp(43px,4.4vw,64px); line-height:1.14; }
.route-heading h2 em { color:#9a7246; }
.route-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; }
.route-card { position:relative; display:flex; flex-direction:column; min-height:245px; padding:30px; background:#fbfaf7; border:1px solid #dedbd4; text-decoration:none; transition:transform .2s,border-color .2s; }
.route-card:hover { transform:translateY(-3px); border-color:#ab875c; }
.route-card>span,.panel-index,.individual-card>span { color:#a1774d; font-size:10px; font-weight:700; letter-spacing:.16em; }
.route-card strong { margin:36px 0 11px; font:400 clamp(25px,2.4vw,34px)/1.18 Georgia,serif; letter-spacing:-.03em; }
.route-card small { max-width:280px; color:#5e6a71; font-size:12px; line-height:1.6; }
.route-card b { position:absolute; right:28px; top:25px; color:#a1774d; font-size:20px; font-weight:400; }
.audience-section { background:var(--paper); }
.audience-warm { background:#e9e7e1; }
.international-section { background:#e9e7e1; }
.audience-layout { display:grid; grid-template-columns:1fr .9fr; align-items:center; gap:clamp(50px,8vw,120px); padding-top:115px; padding-bottom:120px; }
.audience-layout-reverse .audience-copy { order:2; }
.audience-layout-reverse .audience-panel { order:1; }
.audience-copy h2 { max-width:620px; margin:28px 0 24px; font-size:clamp(44px,4.2vw,66px); line-height:1.12; }
.audience-copy h2 em { color:#9a7246; }
.audience-copy>p:not(.eyebrow) { max-width:580px; margin-bottom:31px; color:#57636c; font-size:15px; line-height:1.8; }
.audience-panel { padding:41px clamp(30px,3.2vw,50px); background:#f0ede6; border-top:3px solid var(--gold); }
.audience-panel-warm { background:#fbfaf7; }
.audience-panel h3 { margin:24px 0 23px; font:400 clamp(29px,2.65vw,39px)/1.17 Georgia,serif; letter-spacing:-.03em; }
.audience-panel ul { display:grid; gap:17px; margin:0 0 26px; padding:0; list-style:none; }
.audience-panel li { position:relative; padding-left:22px; font-size:14px; line-height:1.55; }
.audience-panel li::before { content:""; position:absolute; top:.52em; left:0; width:7px; height:7px; border-radius:50%; background:#b68c5d; }
.audience-panel>p { margin:0; padding-top:23px; border-top:1px solid #d5d1c7; color:#5c6971; font-size:12px; line-height:1.7; }
.approach { display:grid; grid-template-columns:.95fr 1.05fr; gap:clamp(45px,8vw,120px); padding-top:115px; padding-bottom:128px; }
.section-heading h2,.contact h2 { margin:26px 0 20px; font-size:clamp(45px,4.4vw,66px); line-height:1.13; }
.section-heading h2 em,.contact h2 em { color:#9a7246; }
.section-heading>p:last-child { max-width:430px; color:#57636c; font-size:15px; line-height:1.8; }
.steps { border-top:1px solid var(--line); }
.step { display:grid; grid-template-columns:50px 1fr; gap:18px; padding:27px 0 29px; border-bottom:1px solid var(--line); }
.step-number { color:#ac8454; font:italic 18px Georgia,serif; }
.step h3 { margin:0 0 9px; font:400 24px Georgia,serif; }
.step p { max-width:410px; margin:0; color:#647078; font-size:13px; line-height:1.7; }
.individuals { background:var(--cream); }
.individuals-inner { padding-top:110px; padding-bottom:112px; }
.individuals-heading { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:60px; }
.individuals-heading .eyebrow { grid-column:1/-1; margin-bottom:-45px; }
.individuals-heading h2 { max-width:780px; margin:0; font-size:clamp(45px,4.5vw,68px); line-height:1.12; }
.individuals-heading h2 em { color:#9a7246; }
.individuals-heading>p:last-child { max-width:430px; margin:0 0 5px; color:#5d6870; font-size:15px; line-height:1.75; }
.individual-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:50px; }
.individual-card { min-height:250px; padding:35px clamp(30px,3.2vw,50px); background:#fbfaf7; border:1px solid #ddd9d1; }
.individual-card:nth-child(2) { background:#e9dfd1; border-color:#d7c9b6; }
.individual-card h3 { max-width:480px; margin:29px 0 15px; font:400 clamp(28px,2.65vw,40px)/1.2 Georgia,serif; letter-spacing:-.03em; }
.individual-card p { max-width:490px; margin:0; color:#56636a; font-size:14px; line-height:1.75; }
.card-link { display:inline-block; margin-top:25px; padding-bottom:6px; border-bottom:1px solid #a1774d; color:#76522e; font-size:12px; font-weight:700; text-decoration:none; }
.card-link:hover { color:var(--navy); }
.card-link span { margin-left:8px; }
.individuals .light-link { color:#76522e; border-bottom:1px solid #a1774d; padding-bottom:7px; }
.individuals-note { max-width:750px; margin:25px 0 0; color:#6c7478; font-size:12px; line-height:1.6; }
.quote-section { background:var(--navy); color:#f4efe5; }
.quote-inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,8vw,110px); padding-top:105px; padding-bottom:110px; }
.quote-inner h2 { margin:27px 0 0; font-size:clamp(48px,4.8vw,70px); line-height:1.13; }
.quote-inner h2 em { color:#d1ad7a; }
.about-copy { padding-top:45px; }
.about-copy p { max-width:535px; color:#d0d7d9; font-size:16px; line-height:1.8; }
.light-link { display:inline-block; margin-top:20px; color:#e8c99e; font-size:12px; font-weight:700; text-decoration:none; }
.light-link span { margin-left:11px; }
.faq { display:grid; grid-template-columns:.86fr 1.14fr; gap:clamp(40px,7vw,100px); padding-top:105px; padding-bottom:110px; }
.faq h2 { margin:26px 0 0; font-size:clamp(43px,4.2vw,62px); line-height:1.14; }
.faq h2 em { color:#9a7246; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { padding:22px 0; border-bottom:1px solid var(--line); }
.faq-list summary { position:relative; padding-right:32px; cursor:pointer; list-style:none; font:400 21px/1.35 Georgia,serif; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; right:2px; top:0; color:#a1774d; font:400 25px Arial,sans-serif; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list details p { max-width:620px; margin:16px 25px 0 0; color:#5d6870; font-size:14px; line-height:1.75; }
.service-breadcrumb { display:flex; align-items:center; gap:11px; padding-top:18px; color:#7b766e; font-size:11px; }
.service-breadcrumb a { text-underline-offset:3px; }
.service-hero { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(280px,.72fr); align-items:center; gap:clamp(35px,6vw,95px); padding-top:78px; padding-bottom:110px; }
.service-hero h1 { max-width:790px; margin:28px 0 25px; font-size:clamp(47px,5vw,72px); line-height:1.09; }
.service-hero h1 em { color:#a67c4c; }
.service-hero .hero-lead { max-width:690px; }
.service-aside { padding:42px clamp(27px,3vw,48px); background:var(--navy); color:#f4efe5; border-top:4px solid var(--gold); }
.service-aside .panel-index { color:#d9be95; }
.service-aside h2 { margin:26px 0 23px; font-size:clamp(29px,2.8vw,42px); line-height:1.2; }
.service-aside p { margin:0; color:#d0d7d9; font-size:14px; line-height:1.75; }
.service-section { padding-top:96px; padding-bottom:100px; }
.service-section-warm { background:var(--cream); }
.service-section-heading h2 { max-width:820px; margin:24px 0 18px; font-size:clamp(43px,4.1vw,61px); line-height:1.14; }
.service-section-heading h2 em { color:#9a7246; }
.service-section-heading>p:last-child:not(.eyebrow) { max-width:780px; color:#5e6a71; font-size:15px; line-height:1.75; }
.service-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; margin-top:37px; }
.service-card { padding:32px; background:#fbfaf7; border:1px solid #ddd9d1; }
.service-card>span { color:#a1774d; font-size:10px; font-weight:700; letter-spacing:.16em; }
.service-card h3 { margin:30px 0 15px; font:400 clamp(26px,2.4vw,35px)/1.2 Georgia,serif; letter-spacing:-.03em; }
.service-card p { margin:0; color:#56636a; font-size:14px; line-height:1.75; }
.service-prose { max-width:870px; }
.service-prose p,.service-copy p { color:#56636a; font-size:15px; line-height:1.85; }
.service-prose .text-link { display:inline-block; margin-top:10px; }
.service-process { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(40px,7vw,110px); padding-top:95px; padding-bottom:108px; }
.service-note { color:#67727a; font-size:12px; line-height:1.7; }
.service-links { display:flex; flex-wrap:wrap; gap:20px; margin-top:20px; }
.service-kicker { color:#8a6745; font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.legal-page { max-width:1100px; padding-top:84px; padding-bottom:110px; }
.legal-page h1 { margin:25px 0 22px; font-size:clamp(50px,5vw,72px); line-height:1.1; }
.legal-page h1 em { color:#9a7246; }
.legal-intro { max-width:790px; color:#56636a; font-size:17px; line-height:1.75; }
.legal-body { display:grid; gap:38px; max-width:850px; margin-top:55px; }
.legal-body section { padding-top:28px; border-top:1px solid var(--line); }
.legal-body h2 { margin:0 0 18px; font-size:clamp(29px,3vw,39px); }
.legal-body p,.legal-body li { color:#56636a; font-size:14px; line-height:1.8; }
.legal-body a { text-underline-offset:3px; }
.legal-facts { display:grid; gap:12px; margin:0 0 22px; }
.legal-facts>div { display:grid; grid-template-columns:185px 1fr; gap:20px; padding:11px 0; border-bottom:1px solid #e5e0d7; }
.legal-facts dt { color:#7a6856; font-size:12px; font-weight:700; }
.legal-facts dd { margin:0; font-size:14px; line-height:1.6; }
.legal-note { padding:28px 30px; background:#e9e7e1; border-left:3px solid var(--gold); }
.legal-note h2 { font-size:27px; }
.legal-note p { margin:0; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,8vw,110px); padding-top:110px; padding-bottom:120px; }
.contact-card { align-self:center; padding:35px 0; border-top:1px solid #c2b7a9; border-bottom:1px solid #c2b7a9; }
.contact-kicker { margin:0 0 20px; color:#8a6745; font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.email-link { display:flex; align-items:center; justify-content:space-between; gap:18px; width:100%; padding-bottom:23px; overflow-wrap:anywhere; font:400 clamp(20px,2.2vw,32px) Georgia,serif; text-decoration:none; }
.email-link:hover { color:#9a7246; }
.email-link span { color:#a67c4c; }
.contact-card>p:last-child { max-width:470px; margin:0; color:#65717b; font-size:13px; line-height:1.7; }
.site-footer { background:#e8e4da; padding:55px clamp(24px,5.5vw,88px) 25px; }
.footer-main,.footer-bottom { max-width:1264px; margin:auto; display:flex; justify-content:space-between; align-items:center; gap:25px; }
.footer-brand { font:400 29px Georgia,serif; letter-spacing:-.035em; }
.footer-main>span:last-child { font-size:12px; }
.footer-bottom { margin-top:55px; padding-top:20px; border-top:1px solid #d0ccc4; color:#647078; font-size:11px; line-height:1.5; }
.footer-bottom a { color:inherit; text-underline-offset:3px; }
.footer-bottom a:hover { color:var(--navy); }
@media (max-width: 1000px) { .audience-layout { grid-template-columns:1fr; gap:35px; } .audience-layout-reverse .audience-copy,.audience-layout-reverse .audience-panel { order:initial; } }
@media (max-width: 1150px) { nav { gap:18px; } .site-header { gap:14px; } }
@media (max-width: 900px) { .site-header nav .nav-overview { display:block; } .site-header nav .nav-audience { display:none; } .hero { grid-template-columns:1fr; padding-top:45px; gap:45px; } .hero-art { max-width:650px; } .individuals-heading { grid-template-columns:1fr; gap:20px; } .individuals-heading .eyebrow { grid-column:auto; margin-bottom:0; } .individuals-heading>p:last-child { max-width:650px; } .approach,.quote-inner,.faq,.contact { grid-template-columns:1fr; gap:28px; } .approach,.faq { padding-top:80px; padding-bottom:90px; } .quote-inner,.contact { padding-top:80px; padding-bottom:85px; } .about-copy { padding-top:0; } }
@media (max-width: 900px) { .service-hero,.service-process { grid-template-columns:1fr; gap:35px; padding-top:70px; padding-bottom:80px; } .service-aside { max-width:750px; } .service-card-grid { grid-template-columns:1fr; } .service-card { padding:30px; } }
@media (max-width: 700px) { .route-inner,.individuals-inner { padding-top:78px; padding-bottom:80px; } .route-grid,.individual-grid { grid-template-columns:1fr; } .route-card { min-height:190px; } .route-card strong { margin-top:30px; } .audience-layout { padding-top:78px; padding-bottom:82px; } .audience-panel { padding:32px 28px; } .individual-card { min-height:0; padding:32px 28px; } }
@media (max-width: 700px) { .service-section,.legal-page { padding-top:72px; padding-bottom:78px; } .service-hero { padding-top:55px; } .legal-facts>div { grid-template-columns:1fr; gap:4px; } }
@media (max-width: 600px) { .site-header { align-items:flex-start; padding-top:18px; padding-bottom:17px; } .site-header nav { gap:13px; flex-wrap:wrap; justify-content:flex-end; } .site-header nav a { font-size:10px; } .site-header nav .nav-overview { display:block; } .site-header nav .nav-audience { display:none; } .language-switch { padding-left:10px; font-size:10px; } .language-switch a { font-size:10px; } .brand-mark { width:40px; height:40px; } .brand-words strong { font-size:14px; } .hero { padding-top:40px; padding-bottom:60px; } h1 { font-size:clamp(45px,12vw,65px); } .hero-lead { font-size:15px; } .hero-actions { align-items:flex-start; flex-direction:column; gap:21px; } .art-frame { height:310px; } .art-circle { width:230px; height:230px; top:30px; } .art-arc { width:340px; height:340px; top:60px; } .art-initials { font-size:110px; } .art-caption { bottom:36px; font-size:7px; } .intro-strip { gap:18px; } .intro-spark { display:none; } .intro-number { align-self:flex-start; padding-top:3px; } .intro-strip p { font-size:17px; } .footer-main,.footer-bottom { align-items:flex-start; flex-direction:column; } .footer-bottom { margin-top:38px; } .review-banner { font-size:9px; letter-spacing:.04em; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } .button-primary { transition:none; } }
