:root {
  --paper:#f6f7f1; --forest:#153b29; --ink:#132c24; --muted:#626d66;
  --pale:#dfecc8; --soft:#edf3e2; --lime:#a6c969; --line:#d2dbce;
  --gutter:clamp(24px,4vw,70px); --header-height:116px;
  --section-space:clamp(56px,6vw,88px);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:0; }
body { margin:0; min-height:100vh; min-height:100svh; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased; }
p,h1,h2,h3,h4 { margin:0; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
a,button { -webkit-tap-highlight-color:transparent; }
img { display:block; max-width:100%; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #5d8e44; outline-offset:6px; }
::selection { background:var(--lime); color:var(--forest); }
.wrap { width:calc(100% - var(--gutter)*2); max-width:1360px; margin-inline:auto; }
.icon-defs { position:absolute; width:0; height:0; overflow:hidden; }
.icon { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:10px; left:10px; z-index:20; padding:14px 22px; background:var(--forest); color:white; transform:translateY(-150%); opacity:0; pointer-events:none; }
.skip-link:focus { transform:translateY(0); opacity:1; pointer-events:auto; }
sup { font-size:.5em; position:relative; top:-.35em; margin-left:2px; line-height:0; }

/* Shared navigation: one baseline under each complete label, including trademarks. */
.site-header { border-bottom:1px solid var(--line); background:var(--paper); position:relative; z-index:5; }
.header-inner { min-height:calc(var(--header-height) - 1px); display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:block; width:174px; flex:none; }
.brand img { width:100%; height:auto; mix-blend-mode:multiply; }
nav { display:flex; align-items:center; gap:28px; }
nav>a { font-size:15px; white-space:nowrap; }
nav>a:not(.button) { padding-block:14px; }
.nav-label { position:relative; display:inline-block; padding-bottom:5px; }
.nav-label::after { content:''; position:absolute; left:0; right:0; bottom:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .18s ease; }
nav>a:hover .nav-label::after,nav>a:focus-visible .nav-label::after { transform:scaleX(1); }
.nav-label sup { text-decoration:none; }
.menu-toggle { display:none; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:56px; padding:16px 26px; border:1px solid var(--forest); border-radius:99px; background:var(--forest); color:var(--paper); font-size:17px; line-height:1.25; white-space:nowrap; transition:background .2s,transform .2s; }
.button:hover { background:#2d503a; transform:translateY(-2px); }
.button.small { min-height:46px; font-size:15px; padding:12px 22px; gap:10px; }
.button.small .icon { width:19px; height:19px; }
.text-link { display:inline-flex; align-items:center; gap:10px; border-bottom:1px solid; padding-block:8px; min-height:44px; font-size:17px; line-height:1.35; align-self:flex-start; }
.text-link:hover { color:#4c743d; }

/* The first screen includes the header; minimum height allows short screens to scroll. */
.hero { overflow:hidden; }
.hero-inner { position:relative; min-height:calc(100vh - var(--header-height)); min-height:calc(100svh - var(--header-height)); display:flex; align-items:center; isolation:isolate; }
.hero-copy { position:relative; z-index:1; padding-block:clamp(48px,7vh,96px); width:74%; }
h1 { font-size:clamp(70px,6.9vw,102px); line-height:1.02; letter-spacing:-.055em; font-weight:700; }
h1 em { font-family:Georgia,'Times New Roman',serif; font-size:1.06em; letter-spacing:-.055em; font-weight:400; color:var(--forest); white-space:nowrap; }
.hero-copy>p { font-size:25px; line-height:1.45; letter-spacing:-.025em; color:var(--muted); max-width:550px; margin-top:32px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:20px 32px; margin-top:32px; }
.hero-actions .text-link { align-self:center; }
.hero-art { position:absolute; z-index:0; right:-105px; top:50%; transform:translateY(-50%); width:49%; height:665px; pointer-events:none; }
.halo { position:absolute; width:720px; height:720px; border-radius:50%; background:var(--soft); left:0; top:-30px; }
.brand-motif { position:relative; aspect-ratio:337/290; overflow:hidden; mix-blend-mode:multiply; }
.brand-motif svg { display:block; width:100%; height:auto; }
.hero-motif { position:absolute; width:610px; left:85px; top:75px; }

/* Summit banner: a consistent two-column rhythm that stacks at tablet widths. */
.motto-band { background:var(--forest); color:var(--paper); }
.motto-inner { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:clamp(32px,5vw,72px); padding-block:40px; }
.motto-heading { font-size:clamp(24px,2.25vw,30px); line-height:1.4; letter-spacing:-.025em; font-weight:600; }
.summit-promo { border-left:1px solid #e4edd480; padding-left:clamp(32px,4vw,56px); }
.summit-availability { font-size:14px; line-height:1.5; font-weight:600; color:var(--pale); margin-bottom:8px; }
.summit-promo-title { font-size:21px; line-height:1.35; letter-spacing:-.02em; font-weight:600; }
.summit-promo-links { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin-top:18px; }
.summit-promo-links a { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; font-size:15px; line-height:1.4; }
.summit-promo-links .promo-ticket { padding:11px 19px; background:var(--soft); color:var(--forest); border-radius:99px; }
.summit-promo-links .promo-ticket:hover { background:white; }
.summit-promo-links a:not(.promo-ticket) { text-decoration:underline; text-underline-offset:5px; text-decoration-color:#b4c4a8; }
.summit-promo-links a:not(.promo-ticket):hover { color:var(--pale); }
.summit-promo-links .icon { width:17px; height:17px; }

.section { padding-block:var(--section-space); }
.eyebrow { text-transform:uppercase; font-size:12px; line-height:1.6; letter-spacing:.16em; font-weight:500; color:#58705e; margin-bottom:20px; }
h2 { font-size:clamp(44px,4.85vw,68px); line-height:1.06; letter-spacing:-.05em; font-weight:700; }
.section-intro { display:grid; grid-template-columns:1.5fr 1fr; align-items:end; gap:64px; }
.intro-copy { font-size:20px; line-height:1.55; color:var(--muted); max-width:560px; }
.service-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin-top:48px; }
.service-grid article { display:flex; flex-direction:column; padding-inline:32px; border-left:1px solid var(--line); min-width:0; }
.service-grid article:first-child { padding-left:0; border:0; }
.service-grid article:last-child { padding-right:0; }
.service-grid h3 { font-size:clamp(25px,2.3vw,31px); line-height:1.23; letter-spacing:-.035em; font-weight:400; min-height:78px; margin-bottom:20px; }
.service-grid p { font-size:18px; line-height:1.6; color:var(--muted); margin-bottom:24px; }
.service-grid strong { font-weight:700; color:var(--ink); }
.service-grid .text-link { margin-top:auto; }
.two-col { display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(40px,6vw,86px); align-items:center; }
.approach { background:var(--forest); color:var(--paper); }
.approach .eyebrow { color:var(--lime); }
.approach h2 { font-size:clamp(56px,5.6vw,80px); line-height:1.02; }
.section-lead { font-size:21px; line-height:1.5; letter-spacing:-.02em; margin-top:26px; color:#dce4d9; }
.principle { display:grid; grid-template-columns:1fr 1fr; gap:28px; border-bottom:1px solid #83a558; padding-block:30px; }
.principle:first-child { padding-top:0; }
.principle:last-child { border-bottom:0; padding-bottom:0; }
.principle h3 { font-size:25px; line-height:1.25; letter-spacing:-.03em; font-weight:500; }
.principle p { color:#dce4d9; font-size:17px; line-height:1.5; }
.reason { display:grid; grid-template-columns:1.15fr 1fr; gap:26px; border-bottom:1px solid #acc78b; padding-block:24px; }
.reason:first-child { padding-top:0; }
.reason:last-child { border:0; padding-bottom:0; }
.reason h3 { font-size:19px; line-height:1.4; letter-spacing:-.025em; font-weight:600; }
.reason p { font-size:17px; line-height:1.5; color:var(--muted); }

/* The biography follows the same column alignment as the benefits above. */
.about-toby { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); grid-template-areas:'portrait heading' 'portrait bio'; grid-template-rows:auto 1fr; column-gap:clamp(40px,6vw,86px); row-gap:24px; border-top:1px solid var(--line); padding-top:56px; margin-top:56px; scroll-margin-top:0; }
.toby-heading { grid-area:heading; }
.toby-heading h3 { font-size:clamp(36px,3.6vw,52px); line-height:1.1; letter-spacing:-.045em; }
.toby-role { font-size:16px; line-height:1.5; color:#58705e; margin-top:10px; }
.toby-photo { grid-area:portrait; width:100%; max-width:360px; align-self:start; background:var(--soft); }
.toby-portrait { width:100%; height:auto; aspect-ratio:2/3; }
.toby-bio { grid-area:bio; font-size:18px; line-height:1.65; color:var(--muted); max-width:760px; }
.toby-bio p+p { margin-top:18px; }
.contact-section { background:var(--pale); padding-block:52px; }
.contact-inner { display:grid; grid-template-columns:1.35fr .55fr 1fr; gap:32px; align-items:center; }
.contact-inner h2 { font-size:clamp(44px,4.5vw,64px); }
.contact-inner p { font-size:19px; line-height:1.5; margin-top:18px; }
.contact-motif { width:180px; justify-self:center; }
.contact-details { justify-self:end; }
.contact-details .button { font-size:16px; padding-inline:24px; }
address { font-style:normal; display:flex; flex-direction:column; gap:8px; font-size:17px; line-height:1.4; margin-top:24px; }
address a:hover { text-decoration:underline; text-underline-offset:4px; }

/* The social invitation is its own labelled footer group, not an inline badge. */
.footer-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; padding-block:30px; }
.footer-brand { width:144px; }
.footer-location { font-size:12px; line-height:1.5; color:var(--muted); margin-top:10px; }
.footer-social { min-width:160px; padding-left:32px; border-left:1px solid var(--line); }
.footer-social>p { font-size:13px; line-height:1.5; color:var(--muted); margin-bottom:6px; }
.social-link { display:inline-flex; align-items:center; gap:10px; font-size:17px; font-weight:500; min-height:44px; white-space:nowrap; }
.social-link:hover span { text-decoration:underline; text-underline-offset:5px; }
.linkedin-icon { width:30px; height:30px; color:#0a66c2; flex:none; }

@media(min-width:1550px) { .hero-art { right:-80px; } }
@media(max-width:1150px) {
  :root { --header-height:104px; }
  .brand { width:150px; } nav { gap:20px; } nav>a { font-size:13px; }
  .button.small { font-size:14px; padding-inline:19px; }
  h1 { font-size:clamp(64px,7.1vw,84px); }
  .hero-copy>p { font-size:23px; max-width:490px; }
  .hero-art { right:-120px; width:48%; height:610px; }
  .hero-motif { width:520px; top:90px; left:30px; }
  .halo { width:650px; height:650px; left:-60px; }
  .hero-actions { gap:18px 26px; }
  .section-intro { gap:40px; } .intro-copy { font-size:19px; }
  .service-grid article { padding-inline:24px; } .service-grid h3 { font-size:25px; min-height:64px; }
  .service-grid p { font-size:17px; }
  .principle { grid-template-columns:1fr; gap:12px; padding-block:24px; }
  .reason { grid-template-columns:1fr; gap:10px; padding-block:20px; }
  .contact-inner { grid-template-columns:1.2fr 1fr; gap:40px; }
  .contact-motif { display:none; } .desktop-break { display:none; }
  .contact-inner h2 { font-size:48px; }
}
@media(max-width:900px) {
  :root { --header-height:100px; }
  .header-inner { gap:20px; } .brand { width:135px; } nav { gap:16px; } nav>a { font-size:12px; }
  nav .button { font-size:13px; padding-inline:16px; gap:8px; }
  .hero-copy { width:88%; } h1 { font-size:clamp(57px,7.6vw,70px); }
  .hero-copy>p { max-width:430px; font-size:21px; }
  .hero-art { right:-185px; } .hero-motif { width:480px; left:0; top:100px; }
  .motto-inner { grid-template-columns:1fr; gap:24px; padding-block:32px; }
  .motto-heading { font-size:26px; } .motto-heading br { display:none; }
  .summit-promo { border-left:0; border-top:1px solid #e4edd480; padding-left:0; padding-top:24px; }
  .summit-promo-links { margin-top:16px; }
  .service-grid { grid-template-columns:1fr; gap:28px; margin-top:36px; }
  .service-grid article,.service-grid article:first-child,.service-grid article:last-child { padding:0 0 28px; border:0; border-bottom:1px solid var(--line); }
  .service-grid article:last-child { padding:0; border:0; }
  .service-grid h3 { min-height:0; font-size:29px; margin-bottom:14px; } .service-grid h3 br { display:none; }
  .service-grid p { max-width:680px; margin-bottom:18px; }
}
@media(max-width:720px) {
  :root { --gutter:24px; --header-height:90px; --section-space:52px; }
  html { scroll-padding-top:0; }
  .header-inner { position:relative; gap:24px; } .brand { width:130px; }
  .menu-toggle { display:flex; align-items:center; gap:12px; min-height:44px; padding:12px 14px; border:1px solid #a8b6a5; border-radius:5px; background:transparent; font-size:15px; color:var(--forest); }
  .menu-glyph { width:18px; height:12px; border-top:1px solid; border-bottom:1px solid; position:relative; }
  .menu-glyph:after { content:''; position:absolute; top:5px; left:0; right:0; border-top:1px solid; }
  nav { display:none; position:absolute; top:calc(100% + 1px); left:calc(-1 * var(--gutter)); right:calc(-1 * var(--gutter)); padding:12px var(--gutter) 24px; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 16px 24px #173b2910; }
  nav.is-open { display:flex; align-items:stretch; flex-direction:column; gap:4px; }
  nav>a { font-size:17px; white-space:normal; padding:12px 0!important; } .nav-label { padding-bottom:4px; }
  nav .button { margin-top:6px; font-size:16px; padding:16px 22px!important; }
  .hero-copy { padding-block:48px; width:100%; max-width:560px; } .hero-art { display:none; }
  h1 { font-size:clamp(34px,10.5vw,64px); line-height:1.08; } h1 em { font-size:1.02em; }
  .hero-copy>p { font-size:20px; line-height:1.5; margin-top:26px; letter-spacing:-.015em; }
  .hero-actions { margin-top:28px; gap:16px 24px; }
  .motto-heading { font-size:24px; } .motto-heading br { display:block; }
  .summit-promo-title { font-size:21px; } .summit-promo-links { gap:12px 20px; }
  .summit-promo-links a { font-size:16px; }
  .section-intro,.two-col { grid-template-columns:1fr; gap:28px; }
  .eyebrow { font-size:11px; margin-bottom:18px; }
  h2 { font-size:clamp(36px,8.5vw,52px); line-height:1.08; }
  .intro-copy { font-size:18px; } .service-grid p { font-size:17px; }
  .approach h2 { font-size:clamp(48px,11vw,60px); line-height:1.03; }
  .section-lead { font-size:19px; } .section-lead br { display:none; }
  .principle h3 { font-size:24px; } .principle p { font-size:17px; }
  .reason h3 { font-size:22px; } .reason p { font-size:17px; }
  .about-toby { grid-template-columns:minmax(0,1fr); grid-template-areas:'heading' 'portrait' 'bio'; grid-template-rows:auto; gap:24px; padding-top:36px; margin-top:36px; }
  .toby-bio { font-size:18px; line-height:1.65; }
  .contact-section { padding-block:44px; } .contact-inner { grid-template-columns:1fr; gap:28px; }
  .contact-inner h2 { font-size:clamp(38px,9.5vw,54px); }
  .contact-inner p { max-width:500px; } .contact-details { justify-self:stretch; }
  .contact-details .button { font-size:17px; } address a { min-height:36px; display:flex; align-items:center; align-self:flex-start; }
  .footer-inner { gap:24px; padding-block:28px; } .footer-brand { width:124px; }
  .footer-social { min-width:140px; padding-left:24px; } .footer-location { font-size:11px; }
}
@media(max-width:480px) {
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-actions .button { width:100%; justify-content:space-between; padding-inline:22px; }
  .hero-actions .text-link { align-self:flex-start; }
  .summit-promo-links { align-items:flex-start; flex-direction:column; gap:12px; }
  .summit-promo-links .promo-ticket { min-width:148px; justify-content:space-between; }
  .contact-details .button { width:100%; justify-content:space-between; padding-inline:22px; }
}
@media(max-width:360px) {
  :root { --gutter:20px; --header-height:84px; }
  .brand { width:118px; } .hero-copy>p { font-size:19px; }
  .motto-heading { font-size:22px; } .summit-promo-title { font-size:20px; }
  .footer-inner { gap:18px; } .footer-brand { width:110px; }
  .footer-social { min-width:126px; padding-left:18px; } .social-link { font-size:16px; } .linkedin-icon { width:26px; height:26px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }

@media(min-width:721px) and (max-width:900px) {
  :root { --header-height:90px; }
  .header-inner { position:relative; gap:24px; } .brand { width:130px; }
  .menu-toggle { display:flex; align-items:center; gap:12px; min-height:44px; padding:12px 14px; border:1px solid #a8b6a5; border-radius:5px; background:transparent; font-size:15px; color:var(--forest); }
  .menu-glyph { width:18px; height:12px; border-top:1px solid; border-bottom:1px solid; position:relative; }
  .menu-glyph:after { content:''; position:absolute; top:5px; left:0; right:0; border-top:1px solid; }
  nav { display:none; position:absolute; top:calc(100% + 1px); left:calc(-1 * var(--gutter)); right:calc(-1 * var(--gutter)); padding:12px var(--gutter) 24px; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 16px 24px #173b2910; }
  nav.is-open { display:flex; align-items:stretch; flex-direction:column; gap:4px; }
  nav>a { font-size:17px; white-space:normal; padding:12px 0!important; } .nav-label { padding-bottom:4px; }
  nav .button { margin-top:6px; font-size:16px; padding:16px 22px!important; }
}
