:root { --forest:#244f3d; --oat:#f6f1e6; --ochre:#e2b558; --ink:#26382d; --rule:#c6cec2; --heading:"Trebuchet MS","Segoe UI",Arial,sans-serif; --body:"Segoe UI",Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-padding-top:24px; }
body { margin:0; color:var(--ink); background:var(--oat); font:400 18px/1.65 var(--body); }
h1,h2,h3,p,figure,dl,dd { margin:0; }
h1,h2,h3 { font-family:var(--heading); font-weight:700; line-height:1.15; color:var(--forest); overflow-wrap:anywhere; }
h1 { font-size:clamp(34px,3.4vw,48px); letter-spacing:-.035em; }
h2 { font-size:clamp(30px,3vw,40px); letter-spacing:-.025em; }
h3 { font-size:24px; letter-spacing:-.015em; }
p+p { margin-top:16px; }
a { color:var(--forest); text-underline-offset:5px; }
a:hover { text-decoration-thickness:2px; }
a:focus-visible,summary:focus-visible { outline:3px solid var(--forest); outline-offset:5px; }
img { display:block; width:100%; height:auto; }
.wrap { width:min(1160px,calc(100% - 64px)); margin-inline:auto; }
.section { padding-block:80px; }
.eyebrow { font-size:13px; line-height:1.5; font-weight:600; letter-spacing:.09em; text-transform:uppercase; margin-bottom:14px; }
.small,figcaption { font-size:15px; line-height:1.6; }
.skip-link { position:absolute; top:8px; left:8px; z-index:5; padding:12px; background:var(--oat); transform:translateY(-200%); }
.skip-link:focus { transform:none; }
.concept-notice { padding:12px 24px; border-bottom:1px solid var(--rule); text-align:center; font-size:14px; line-height:1.5; color:var(--forest); }
.header-inner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px 32px; padding-block:24px; }
.wordmark { display:inline-flex; align-items:center; gap:12px; text-decoration:none; color:var(--forest); font:700 29px/1.05 var(--heading); }
.wordmark svg { flex:none; }
.brand-sub { display:block; margin-top:6px; font:400 17px/1.2 var(--body); letter-spacing:.035em; }
nav { display:flex; flex-wrap:wrap; gap:10px 38px; }
nav a { display:inline-flex; align-items:center; min-height:44px; font-size:17px; font-weight:600; text-decoration:none; }
nav a:hover { text-decoration:underline; }
.hero { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); padding-top:4px; padding-bottom:72px; }
.hero-photo { grid-column:1/-1; grid-row:1; border-radius:40px 100px 40px 100px; overflow:hidden; }
.hero-photo img { aspect-ratio:2/1; object-fit:cover; object-position:50% 20%; }
.hero-intro { grid-column:1; grid-row:2; margin:-112px 0 0 32px; position:relative; border-radius:24px; padding:36px 40px; background:var(--oat); border:1px solid var(--rule); box-shadow:0 8px 0 rgba(36,79,61,.055); }
.lead { font-size:18px; line-height:1.65; margin-top:20px; max-width:560px; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:16px 24px; margin-top:26px; }
.button { display:inline-flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:12px; min-height:48px; padding:13px 20px; border-radius:28px; background:var(--forest); color:var(--oat); font-size:16px; line-height:1.5; font-weight:600; text-decoration:none; text-align:center; }
.button:hover { text-decoration:underline; }
.text-link { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:16px; font-weight:600; }
.hero-note { grid-column:2; grid-row:2; padding:28px 12px 0 38px; color:var(--forest); }
.hero-note>p:first-of-type { font:700 22px/1.4 var(--heading); }
.hero-note .small { margin-top:16px; }
.trail { display:block; max-width:100%; height:auto; margin-bottom:12px; }
.services { background:#fff; border-top:1px solid var(--rule); border-radius:80px 80px 0 0; }
.section-heading { max-width:700px; margin-bottom:36px; }
.section-heading>p:last-child { margin-top:20px; }
.service-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.service-card { border-radius:24px; padding:36px; min-width:0; }
.walks { background:var(--oat); border:1px solid var(--rule); }
.visits { background:var(--forest); color:var(--oat); }
.service-number { display:block; font-size:12px; font-weight:600; letter-spacing:.08em; margin-bottom:28px; }
.service-card h3 { font-size:30px; margin-bottom:20px; }
.service-card details { border-block:1px solid var(--rule); margin-block:24px 14px; padding-block:8px; }
.service-card summary { cursor:pointer; min-height:44px; padding:8px 4px; font-size:17px; font-weight:600; }
.service-card details p { padding:8px 4px 16px; font-size:16px; }
.visits h3,.visits a { color:var(--oat); }
.visits a:focus-visible,.visits summary:focus-visible { outline-color:var(--oat); }
.visits details { border-color:#a7bcae; }
.routine-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:90px; align-items:start; }
.routine-intro>p:not(.eyebrow) { margin-top:22px; }
.routine-leaf { display:block; margin-top:28px; color:var(--forest); }
.routine-list { list-style:none; margin:0; padding:0; }
.routine-list li { display:grid; grid-template-columns:40px minmax(0,1fr); gap:18px; border-top:1px solid var(--rule); padding-block:22px; }
.routine-list li:first-child { border-top:0; padding-top:0; }
.routine-list li>span { color:var(--forest); background:var(--ochre); border-radius:50%; width:40px; height:40px; display:grid; place-items:center; font-size:14px; font-weight:600; }
.routine-list h3 { font-size:22px; margin-bottom:10px; }
.routine-list p { font-size:17px; }
.approach { background:#fff; }
.care-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; list-style:none; margin:44px 0 0; padding:0; }
.care-steps li { border-top:2px dashed #b7c4b8; padding-top:24px; }
.step-number { display:inline-grid; place-items:center; min-width:48px; min-height:48px; padding:5px; border-radius:50%; background:var(--ochre); color:var(--forest); font:700 22px/1.3 var(--heading); }
.care-steps h3 { margin-block:20px 14px; }
.care-steps p { font-size:17px; }
.photo-story { background:var(--forest); color:var(--oat); border-radius:0 80px 0 0; }
.story-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:64px; align-items:center; }
.story-grid img { border-radius:30px 100px 30px 100px; aspect-ratio:4/3; object-fit:cover; }
.story-grid figcaption { margin-top:18px; }
.story-copy h2,.story-copy a { color:var(--oat); }
.story-copy>p:not(.eyebrow) { margin-top:22px; }
.story-copy a { margin-top:24px; }
.story-copy a:focus-visible { outline-color:var(--oat); }
.meet { background:var(--oat); }
.meet-heading { max-width:760px; margin-bottom:40px; }
.meet-heading>p:last-child { margin-top:22px; }
.contact-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; }
.contact-grid>section { min-width:0; }
.contact-grid h3 { font-size:22px; margin-bottom:20px; }
.contact-details dl { margin-block:24px; }
.contact-details dl>div+div { margin-top:16px; }
.contact-details dt { font-size:14px; font-weight:600; }
.contact-details dd { overflow-wrap:anywhere; }
.hours-panel { border:1px solid var(--rule); border-radius:24px; padding:28px; }
.hours>div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 20px; padding-block:12px; border-bottom:1px solid var(--rule); font-size:17px; }
.hours dd { white-space:nowrap; }
.hours-panel .small { margin-top:18px; }
.demo-explanation { margin-top:40px; padding-top:28px; border-top:1px solid var(--rule); font-size:16px; }
.demo-explanation>a { display:inline-flex; align-items:center; min-height:44px; margin-top:16px; gap:12px; }
.site-footer { color:var(--oat); background:var(--forest); }
.footer-inner { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px 24px; padding-block:24px; font-size:14px; }
.site-footer a { display:inline-flex; align-items:center; min-height:44px; gap:10px; color:var(--oat); }
.site-footer a:focus-visible { outline-color:var(--oat); }
@media(max-width:1023px) { .hero { grid-template-columns:minmax(0,1.8fr) minmax(0,1fr); }.hero-intro { margin-left:20px; padding:30px; }.hero-note { padding-left:28px; }.routine-grid { gap:48px; }.story-grid { gap:36px; }.service-card { padding:28px; }.contact-grid { gap:40px; } }
@media(max-width:767px) { .wrap { width:calc(100% - 32px); }.section { padding-block:48px; }.concept-notice { font-size:15px; text-align:left; padding:12px 16px; }.header-inner { padding-block:20px; gap:16px; }.wordmark { font-size:27px; }nav { gap:8px 28px; }nav a { font-size:16px; min-inline-size:44px; }.hero { display:block; padding-top:4px; padding-bottom:48px; }.hero-photo { border-radius:24px 60px 24px 60px; }.hero-photo img { aspect-ratio:4/3; object-position:60% 35%; }.hero-intro { margin:20px 0 0; padding:26px 22px; border-radius:24px; }h1 { font-size:34px; }.hero-actions { gap:14px; margin-top:22px; }.hero-actions .button { width:100%; }.hero-note { padding:24px 4px 0; }.hero-note>p:first-of-type { font-size:20px; }.trail { display:none; }.hero-note .small { margin-top:10px; }.services { border-radius:40px 40px 0 0; }.section-heading { margin-bottom:28px; }.service-grid,.routine-grid,.care-steps,.story-grid,.contact-grid { grid-template-columns:minmax(0,1fr); gap:28px; }.service-card { padding:28px 24px; }.service-card h3 { font-size:28px; }.service-number { margin-bottom:22px; }.routine-leaf { display:none; }.routine-list li { grid-template-columns:36px minmax(0,1fr); gap:14px; }.routine-list li>span { width:36px; height:36px; }.routine-list h3 { font-size:21px; }.care-steps { margin-top:30px; }.care-steps li { padding-top:22px; }.care-steps h3 { margin-top:16px; }.photo-story { border-radius:0 40px 0 0; }.story-grid img { border-radius:24px 64px 24px 64px; }.story-copy a { margin-top:18px; }.meet-heading { margin-bottom:30px; }.hours-panel { padding:24px; }.demo-explanation { margin-top:28px; }.footer-inner { font-size:15px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
