:root { --ivory:#f9f6ef; --sand:#eee6d8; --sage:#55776c; --teal:#34645f; --ink:#273332; --muted:#64706a; --gold:#b68c58; --line:rgba(39,51,50,.16); --serif:'Playfair Display', Georgia, serif; --sans:'DM Sans', Arial, sans-serif; }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; color:var(--ink); background:var(--ivory); font:16px/1.65 var(--sans); } a { color:inherit; } .site-header { height:80px; padding:0 clamp(24px,6vw,96px); display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; z-index:10; background:rgba(249,246,239,.94); backdrop-filter:blur(12px); border-bottom:1px solid rgba(39,51,50,.07); }.brand { text-decoration:none; font:600 21px/1 var(--serif); letter-spacing:-.5px; }.brand span { color:var(--sage); }.brand small { display:block; font:500 9px/1.2 var(--sans); text-transform:uppercase; letter-spacing:1.35px; margin-top:5px; }.site-nav { display:flex; align-items:center; gap:28px; font-size:14px; }.site-nav a { text-decoration:none; }.site-nav a:hover { color:var(--sage); }.nav-contact { border:1px solid var(--sage); border-radius:40px; padding:8px 15px; color:var(--sage); }.menu-toggle { display:none; background:none; border:0; padding:6px; }.menu-toggle span { display:block; width:24px; height:1.5px; background:var(--ink); margin:5px; transition:.2s; }
.hero { min-height:calc(100vh - 80px); padding:clamp(60px,11vw,155px) clamp(24px,10vw,160px) 80px; display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:center; overflow:hidden; }.eyebrow,.section-label p { color:var(--sage); text-transform:uppercase; font-size:11px; font-weight:700; letter-spacing:1.9px; }.hero h1,h2 { font:500 clamp(44px,5.4vw,82px)/1.07 var(--serif); margin:17px 0 25px; letter-spacing:-2.5px; }.hero h1 em,h2 em { color:var(--sage); font-weight:500; }.intro { max-width:535px; font-size:19px; }.credentials { font-size:13px; color:var(--muted); margin:25px 0 30px; }.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 20px; }.button { display:inline-flex; align-items:center; gap:18px; padding:13px 19px; border-radius:30px; text-decoration:none; font-size:14px; font-weight:700; transition:transform .2s, background .2s; }.button:hover { transform:translateY(-2px); }.primary { background:var(--teal); color:white; }.primary:hover { background:var(--ink); }.secondary { border:1px solid var(--teal); color:var(--teal); }.text-link { text-decoration:none; font-weight:700; color:var(--teal); }.text-link span { margin-left:5px; }.hero-art { height:min(490px,58vw); min-height:390px; background:var(--sand); border-radius:48% 48% 45% 45% / 36% 36% 22% 22%; position:relative; overflow:hidden; }.hero-art .sun { width:145px;height:145px; border-radius:50%; background:#dcc7a7; position:absolute;top:68px;right:73px; }.arch { position:absolute; width:285px;height:350px;border:1px solid var(--sage);border-bottom:0;border-radius:155px 155px 0 0; bottom:-1px;left:calc(50% - 142px); }.hero-art p { font:500 22px/1.35 var(--serif);position:absolute;bottom:35px;left:35px;color:var(--sage); }.leaf { position:absolute; border:1.5px solid var(--sage); border-radius:100% 0 100% 0; transform:rotate(35deg); }.leaf-one { width:100px;height:185px;bottom:-33px;right:20px; }.leaf-two { width:65px;height:130px;bottom:42px;right:95px; }.leaf-three { width:48px;height:102px;bottom:125px;right:40px; }
.section { padding:clamp(75px,11vw,150px) clamp(24px,10vw,160px); }.tinted { background:var(--sand); }.section-label { display:flex; align-items:center; gap:12px; margin-bottom:30px; }.section-label span { color:var(--gold); font:500 14px var(--serif); }.section-label p { margin:0; }.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,10vw,150px); }.about-intro h2 { margin-top:0; }.large-copy { font:400 21px/1.5 var(--serif); }.founder-note { border-left:2px solid var(--gold); margin-top:38px; padding-left:16px; font-size:14px; font-weight:700; }.founder-note span,.quiet-note { color:var(--muted); font-weight:400; }.about-copy { max-width:570px; }.about-copy p { margin:0 0 19px; }.quiet-note { border-top:1px solid var(--line); padding-top:18px; font-size:13px; }.section-heading { display:grid;grid-template-columns:1fr 2fr;align-items:start; }.section-heading h2 { margin-top:0; }.specialisation-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; margin-top:50px; }.support-card { background:rgba(249,246,239,.72); border:1px solid rgba(39,51,50,.09); border-radius:18px; padding:28px 25px; min-height:217px; transition:transform .25s,box-shadow .25s; }.support-card:hover { transform:translateY(-4px); box-shadow:0 12px 25px rgba(43,61,53,.08); }.support-card h3 { font:500 23px/1.25 var(--serif); margin:16px 0 12px; }.support-card p { font-size:13.5px; color:#52605b; margin:0; }.card-icon { font:26px var(--serif); color:var(--sage); }.climate { background:#d9e3d8; }.philosophy-top { display:grid;grid-template-columns:1fr 1fr;gap:90px; align-items:end; }.philosophy-top h2 { margin:0; }.principles { display:flex; flex-wrap:wrap; gap:9px; margin:50px 0 35px; }.principles span { border:1px solid var(--line); padding:11px 15px; border-radius:30px; font-size:14px; }.principles span:last-child { background:var(--sage);color:white;border-color:var(--sage); }.philosophy-closing { max-width:640px; font:500 18px/1.55 var(--serif); }.services-grid { display:grid;grid-template-columns:1fr 1fr;gap:100px; }.services-grid h2 { margin-top:0; }.service-list { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }.service-list li { padding:16px 0; border-bottom:1px solid var(--line); font:500 18px var(--serif); }.service-list li:before { content:'✦'; color:var(--gold);font-size:12px;margin-right:14px; }.services-cta { border-top:1px solid var(--line); padding-top:30px; margin-top:65px; display:flex;justify-content:space-between;align-items:center; }.services-cta p { font:20px var(--serif); }.why { background:var(--teal);color:#f7f4eb; }.why .section-label p { color:#cedbd4; }.why-grid { display:grid;grid-template-columns:1fr 1fr;gap:100px; }.why h2 { margin:0; }.why h2 em { color:#e2c99e; }.why-grid > div > p { margin-top:0; }.why blockquote { margin:37px 0 0; border-left:1px solid #d6b985; padding:6px 0 6px 20px; font:500 21px/1.5 var(--serif); color:#f3ead9; }.contact { min-height:680px;position:relative;overflow:hidden; padding:clamp(75px,11vw,145px) clamp(24px,10vw,160px);background:var(--ivory); }.contact-content { max-width:760px;position:relative;z-index:1; }.contact h2 { margin:12px 0; }.contact-art { position:absolute;right:7vw;top:10%;font:300 clamp(220px,33vw,540px)/1 var(--serif);color:rgba(85,119,108,.10); }.contact-links { margin-top:35px; border-top:1px solid var(--line); }.contact-links a { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:15px 0; border-bottom:1px solid var(--line); text-decoration:none; font:500 clamp(14px,1.7vw,18px) var(--serif); }.contact-links a:hover { color:var(--sage); }.contact-links small { width:105px; flex-shrink:0; color:var(--muted);font:700 10px var(--sans);text-transform:uppercase;letter-spacing:1.2px; }.contact-links span { color:var(--sage); }.location { margin-top:27px;color:var(--muted);font-size:14px; } footer { padding:50px clamp(24px,10vw,160px); background:#e7dfd2;display:flex;justify-content:space-between;gap:35px;align-items:end;font-size:12px;color:#56605a; } footer .brand { color:var(--ink); } footer p { margin:10px 0 0; }.footer-note { max-width:390px;text-align:right; }.footer-note p:last-child { font-size:11px;line-height:1.5; }.reveal { opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease; }.reveal.visible { opacity:1;transform:none; }
@media (max-width:800px) { .site-header { height:72px;padding:0 24px; }.menu-toggle { display:block;z-index:2; }.site-nav { display:none;position:absolute;left:0;right:0;top:71px;padding:22px 24px 27px; background:var(--ivory);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:18px; }.site-nav.open { display:flex; }.hero { min-height:auto;grid-template-columns:1fr;padding-top:70px;gap:45px; }.hero-art { height:380px;min-height:0;max-width:500px;width:100%;margin:auto; }.hero h1,h2 { letter-spacing:-1.7px; }.section-heading,.about-grid,.philosophy-top,.services-grid,.why-grid { grid-template-columns:1fr;gap:25px; }.specialisation-grid { grid-template-columns:1fr 1fr;margin-top:30px; }.philosophy-top { gap:8px; }.services-cta { flex-direction:column;align-items:flex-start;gap:15px;margin-top:45px; }.why-grid { gap:25px; }.contact { min-height:0; }.contact-art { right:-60px;top:240px; }.contact-links a { align-items:center; }.contact-links small { width:85px; } footer { display:block; }.footer-note { text-align:left;margin-top:30px; } }
@media (max-width:500px) { .hero-actions { align-items:stretch;flex-direction:column; }.hero-actions .button { justify-content:space-between; }.hero-art { height:315px; }.hero-art .sun { width:100px;height:100px;right:48px;top:48px; }.arch { width:220px;height:280px;left:calc(50% - 110px); }.hero-art p { font-size:18px; }.section { padding-top:75px;padding-bottom:75px; }.specialisation-grid { grid-template-columns:1fr; }.support-card { min-height:auto; }.large-copy { font-size:19px; }.contact-links a { font-size:13px; }.contact-links small { width:70px;font-size:9px; }.contact-links span { display:none; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.reveal { opacity:1;transform:none;transition:none; }.button,.support-card { transition:none; } }
