@font-face { font-family: 'DM Sans'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/assets/fonts/dm-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: 'Instrument Serif'; font-style: italic; font-weight: 400; font-display: swap; src: url(/assets/fonts/instrument-serif-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } @font-face { font-family: 'Instrument Serif'; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/instrument-serif-regular-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; } :root { --paper:#f7f8f4; --white:#fff; --ink:#202923; --muted:#647068; --line:#dce1d9; --blue:#254be8; --pale:#e9edff; --lime:#e3eead } * { box-sizing:border-box } html { scroll-behavior:smooth; scroll-padding-top:110px } body { margin:0; background:var(--paper); color:var(--ink); font:17px/1.6 'DM Sans',Arial,sans-serif } ::selection { background:var(--lime); color:var(--ink) } img { max-width:100%; height:auto; display:block } a { color:inherit; text-underline-offset:5px } button,input,select,textarea { font:inherit } button,a,input,textarea,select,summary { -webkit-tap-highlight-color:transparent } a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,select:focus-visible { outline:3px solid var(--blue); outline-offset:5px } p { margin:0 0 22px } h1,h2,h3 { font-weight:500; line-height:1.08; margin:0 0 24px; letter-spacing:-.045em } h1 { font-size:clamp(48px,6.3vw,88px) } h2 { font-size:clamp(36px,4.1vw,58px) } h3 { font-size:27px; line-height:1.2; letter-spacing:-.025em } em { font-family:'Instrument Serif',Georgia,serif; font-weight:400 } .container { width:min(1280px,calc(100% - 96px)); margin:auto } .skip { position:fixed; top:-100px; left:20px; background:var(--ink); color:white; padding:12px; z-index:100 } .skip:focus { top:10px } .site-header { position:sticky; top:0; z-index:20; background:rgba(247,248,244,.96); backdrop-filter:blur(15px); border-bottom:1px solid var(--line) } .nav-row { height:90px; display:flex; align-items:center; justify-content:space-between; gap:30px } .brand { display:flex; align-items:center; gap:10px; font-size:25px; font-weight:650; letter-spacing:-1px; text-decoration:none; white-space:nowrap } .brand-mark { width:30px; height:30px; background:var(--blue); color:white; display:grid; place-items:center; border-radius:50%; font-family:Georgia,serif; font-size:28px; line-height:1 } .nav-links { display:flex; align-items:center; gap:30px } .nav-links a { font-size:14px; text-decoration:none } .nav-links a:hover,.nav-links a[aria-current=page] { color:var(--blue) } .nav-links .nav-cta { background:var(--ink); color:white; padding:11px 20px; border-radius:5px } .menu-toggle { display:none; background:none; border:1px solid var(--line); padding:9px 14px; border-radius:4px; font-size:14px; color:var(--ink) } .eyebrow { font-size:12px; font-weight:650; text-transform:uppercase; letter-spacing:1.65px; margin-bottom:25px; display:flex; align-items:center; gap:12px } .eyebrow:before { content:''; height:7px; width:7px; border:1.5px solid currentColor; transform:rotate(45deg); flex-shrink:0 } .hero { padding:70px 0 72px; display:grid; grid-template-columns:1.06fr 1fr; gap:64px; align-items:center } .hero h1 { max-width:680px } .hero .intro { max-width:480px; font-size:18px; color:var(--muted); line-height:1.65 } .hero-visual { position:relative; padding-bottom:24px } .hero-visual img { width:100%; height:565px; object-fit:cover; border-radius:6px } .photo-note { position:absolute; bottom:0; left:-25px; background:var(--blue); color:white; padding:23px 28px; max-width:330px; border-radius:4px; box-shadow:0 15px 35px #142a6c18 } .photo-note span { font-size:11px; letter-spacing:1.4px; text-transform:uppercase; opacity:.8 } .photo-note p { font-family:'Instrument Serif',Georgia,serif; font-size:31px; line-height:1.15; margin:8px 0 0 } .button { display:inline-flex; justify-content:center; align-items:center; min-height:49px; padding:13px 24px; background:var(--blue); color:white; text-decoration:none; border:1px solid var(--blue); border-radius:4px; font-size:14px; font-weight:550; cursor:pointer; transition:background .15s } .button:hover { background:#1738be } .button.light { background:var(--white); color:var(--ink); border-color:var(--white) } .button.secondary { background:transparent; color:var(--ink); border-color:#b7c1b6 } .button.secondary:hover { background:var(--white) } .actions { display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:30px } .text-link { font-size:14px; font-weight:550 } .hero-foot { font-size:12px; margin-top:25px; color:var(--muted) } .statement-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:23px 0 } .statement-strip .container { display:flex; align-items:center; justify-content:space-between; gap:30px } .statement-strip span { font-size:14px; color:var(--muted) } .statement-strip b { font-weight:500; font-size:17px } .section { padding:105px 0 } .section-head { display:flex; justify-content:space-between; align-items:flex-end; gap:65px; margin-bottom:48px } .section-head h2 { max-width:680px; margin:0 } .section-head p { max-width:340px; color:var(--muted); margin:0 } .cards { display:grid; grid-template-columns:repeat(3,1fr); gap:24px } .service-card { background:white; border:1px solid var(--line); border-radius:6px; padding:32px; display:flex; flex-direction:column; min-height:350px; text-decoration:none; transition:border-color .15s,transform .15s } .service-card:hover { border-color:var(--blue); transform:translateY(-4px) } .service-card .index { font:italic 30px 'Instrument Serif',Georgia,serif; color:var(--blue); margin-bottom:55px } .service-card p { color:var(--muted); font-size:16px; line-height:1.7 } .service-card .card-link { margin-top:auto; padding-top:17px; border-top:1px solid var(--line); font-size:13px; font-weight:550 } .service-card h3 { margin-bottom:16px } .dark-section { background:var(--ink); color:var(--paper) } .dark-section .eyebrow { color:var(--lime) } .dark-section .muted { color:#bbc5ba } .split { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:center } .feature-photo { width:100%; height:520px; object-fit:cover; border-radius:5px } .image-caption { font-size:12px; color:var(--muted); margin:12px 0 0 } .dark-section .image-caption { color:#b0bcae } .split-copy h2 { max-width:520px } .split-copy p { color:var(--muted) } .dark-section .split-copy p { color:#c3cdc2 } .step-list { list-style:none; padding:0; margin:35px 0 } .step-list li { display:grid; grid-template-columns:34px 1fr; gap:16px; padding:19px 0; border-top:1px solid #ffffff29 } .step-list .num { color:var(--lime); font-size:13px } .step-list b { display:block; font-weight:500; font-size:18px; margin-bottom:3px } .step-list p { font-size:14px; margin:0; line-height:1.6 } .process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:38px; margin-top:55px } .process-item { border-top:1px solid var(--line); padding-top:20px } .process-item>span { color:var(--blue); font-size:13px } .process-item h3 { font-size:23px; margin-top:25px } .process-item p { color:var(--muted); font-size:15px } .question-section { background:var(--pale) } .question-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:100px } .question-grid h2 { max-width:430px } .questions a { display:flex; justify-content:space-between; padding:25px 0; border-bottom:1px solid #cbd3f0; font-size:23px; letter-spacing:-.5px; text-decoration:none; gap:22px } .questions a:hover { color:var(--blue) } .questions small { font-size:12px; color:var(--muted); white-space:nowrap; align-self:center } .journal-grid { display:grid; grid-template-columns:1.35fr 1fr; gap:50px; align-items:center } .journal-image { width:100%; height:360px; object-fit:cover; object-position:center 65%; border-radius:4px } .journal-content h3 { font-size:37px } .label { font-size:12px; color:var(--blue); letter-spacing:1.2px; text-transform:uppercase; margin-bottom:17px } .cta { background:var(--blue); color:white; padding:72px 0 } .cta .container { display:flex; justify-content:space-between; align-items:center; gap:40px } .cta h2 { max-width:700px; margin-bottom:18px } .cta p { color:#dce3ff; margin:0 } .site-footer { padding:62px 0 24px } .footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:35px } .footer-brand p { max-width:270px; color:var(--muted); font-size:14px; margin:20px 0 } .footer-group b { font-size:12px; text-transform:uppercase; letter-spacing:1.1px; display:block; margin-bottom:20px } .footer-group a { display:block; text-decoration:none; font-size:14px; color:var(--muted); margin:11px 0 } .footer-group a:hover { color:var(--blue) } .footer-bottom { border-top:1px solid var(--line); margin-top:48px; padding-top:22px; display:flex; justify-content:space-between; gap:25px; font-size:12px; color:var(--muted) } .page-hero { padding:65px 0 70px; border-bottom:1px solid var(--line) } .breadcrumbs { display:flex; gap:12px; font-size:12px; color:var(--muted); margin-bottom:45px; flex-wrap:wrap } .breadcrumbs a { text-decoration:none } .page-hero h1 { max-width:920px; font-size:clamp(45px,5.4vw,75px) } .page-hero .lead { font-size:20px; color:var(--muted); max-width:680px; margin:0 } .page-hero .label { margin-bottom:22px } .detail-layout { display:grid; grid-template-columns:1.6fr .75fr; gap:90px; align-items:start } .prose { max-width:750px } .prose h2 { font-size:35px; line-height:1.18; margin-top:50px } .prose h2:first-child { margin-top:0 } .prose h3 { font-size:25px; margin-top:30px } .prose p,.prose li { color:#536057 } .prose ul,.prose ol { padding-left:25px } .prose li { padding-left:5px; margin:12px 0 } .prose strong { font-weight:550; color:var(--ink) } .sidebar { background:var(--white); border:1px solid var(--line); padding:30px; border-radius:5px } .sidebar h3 { font-size:22px } .sidebar dl { font-size:14px } .sidebar dt { color:var(--muted); margin-top:23px } .sidebar dd { margin:5px 0 0 } .sidebar .button { margin-top:25px; width:100% } .callout { border-left:3px solid var(--blue); background:var(--pale); padding:25px 30px; margin:35px 0 } .callout p:last-child { margin-bottom:0 } .wide-image { width:100%; height:460px; object-fit:cover; border-radius:5px } .values { display:grid; grid-template-columns:1fr 1fr; gap:50px } .value { border-top:1px solid var(--line); padding-top:25px } .value p { color:var(--muted) } .faq-list { max-width:860px; margin:auto } .faq-list details { border-bottom:1px solid var(--line); padding:25px 0 } .faq-list summary { font-size:22px; line-height:1.4; cursor:pointer; font-weight:500; padding-right:10px } .faq-list p { margin:18px 0 0; color:var(--muted); max-width:760px } .contact-form { background:white; padding:40px; border:1px solid var(--line); border-radius:6px } .form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px } .field { margin-bottom:23px } .field label { display:block; font-size:14px; font-weight:550; margin-bottom:8px } .field input,.field select,.field textarea { width:100%; padding:13px 14px; border:1px solid #bac4b8; background:#fff; border-radius:3px; color:var(--ink); font-size:16px } .field textarea { resize:vertical; min-height:150px } .form-note { font-size:13px; color:var(--muted) } .form-status { font-size:14px; color:var(--blue); margin:20px 0 0; min-height:23px } .contact-aside h2 { font-size:39px } .contact-aside p { color:var(--muted) } .notice { padding:16px 20px; background:var(--pale); font-size:14px; border-radius:4px; margin:25px 0 } .article { max-width:760px; margin:auto } .article .intro { font-size:22px; line-height:1.65; color:var(--muted) } .article blockquote { margin:35px 0; padding:22px 30px; border-left:3px solid var(--blue); background:var(--pale); font-family:'Instrument Serif',Georgia,serif; font-size:30px; line-height:1.35 } .tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:30px } .tags span { border:1px solid var(--line); border-radius:30px; padding:7px 14px; font-size:12px; color:var(--muted) } @media(min-width:1600px) { .hero-visual img { height:620px } } @media(max-width:1100px) { .container { width:calc(100% - 64px) } .nav-links { gap:19px } .hero { gap:40px } .hero h1 { font-size:67px } .hero-visual img { height:520px } .split { gap:50px } .section { padding:80px 0 } .question-grid { gap:50px } .service-card { padding:25px } .detail-layout { gap:45px } .process-grid { gap:22px } .footer-grid { grid-template-columns:1.5fr 1fr 1fr 1fr } } @media(max-width:800px) { .container { width:calc(100% - 40px) } .nav-row { height:75px } .menu-toggle { display:block } .nav-links { display:none; position:absolute; top:75px; left:0; right:0; background:var(--paper); padding:22px; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; gap:0 } .nav-links.is-open { display:flex } .nav-links a { padding:14px } .nav-links .nav-cta { margin-top:10px; text-align:center } .hero { padding:45px 0 55px; gap:38px; grid-template-columns:1fr } .hero h1 { font-size:clamp(49px,9vw,72px); max-width:640px } .hero .intro { max-width:550px } .hero-visual { max-width:640px; padding-bottom:22px } .hero-visual img { height:430px } .photo-note { left:16px; padding:20px 25px; max-width:320px } .statement-strip .container { flex-wrap:wrap; gap:12px 20px } .statement-strip span { width:100% } .statement-strip b { font-size:14px } .section { padding:65px 0 } .section-head { display:block; margin-bottom:32px } .section-head p { max-width:550px; margin-top:22px } .cards { grid-template-columns:1fr; gap:16px } .service-card { min-height:0; padding:30px } .service-card .index { margin-bottom:26px } .split,.question-grid,.journal-grid,.detail-layout { grid-template-columns:1fr; gap:38px } .feature-photo { height:400px } .process-grid { grid-template-columns:1fr 1fr; gap:30px } .questions a { font-size:21px } .journal-image { height:330px } .cta .container { align-items:flex-start; flex-direction:column; gap:28px } .cta { padding:55px 0 } .footer-grid { grid-template-columns:1fr 1fr; gap:30px } .footer-brand { grid-column:1/-1 } .footer-brand p { max-width:380px } .page-hero { padding:38px 0 50px } .breadcrumbs { margin-bottom:30px } .page-hero h1 { font-size:52px } .page-hero .lead { font-size:18px } .wide-image { height:330px } .contact-form { padding:25px } .sidebar { max-width:600px } .values { gap:30px } .article .intro { font-size:20px } } @media(max-width:440px) { .hero h1 { font-size:49px; letter-spacing:-2.5px } .hero-visual img { height:360px } .hero .intro { font-size:17px } .photo-note { max-width:280px } .photo-note p { font-size:28px } .section h2 { font-size:37px } .process-grid,.values,.form-row { grid-template-columns:1fr } .process-grid { gap:24px } .process-item h3 { margin-top:17px } .footer-bottom { flex-direction:column; gap:10px } .page-hero h1 { font-size:43px } .journal-content h3 { font-size:31px } .questions a { display:block } .questions small { display:block; margin-top:8px } .contact-form { padding:22px } .cta h2 { font-size:38px } .feature-photo { height:320px } .eyebrow { letter-spacing:1.2px; font-size:11px } } @media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto } * { transition:none!important } } .section-flush { padding-top: 0; } button[hidden] { display: none; } button:disabled { opacity: .6; cursor: not-allowed; } @media(max-width: 800px) { .nav-links:not(.is-enhanced) { display: flex; position: static; width: 100%; flex-wrap: wrap; padding: 12px 0; } .nav-row:has(.nav-links:not(.is-enhanced)) { height: auto; min-height: 90px; flex-wrap: wrap; padding-block: 16px; } } 