/* Self-hosted Latin web fonts; licenses in assets/fonts. */
@font-face { font-family:'Lora';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/lora-400.woff2') format('woff2') }
@font-face { font-family:'Cabin';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/cabin-400.woff2') format('woff2') }
@font-face { font-family:'Cabin';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/cabin-600.woff2') format('woff2') }
@font-face { font-family:'Cabin';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/cabin-700.woff2') format('woff2') }

:root { --ink:#25483e;--muted:#58665c;--cream:#f7f5ee;--paper:#fffef9;--sage:#e7ebdf;--accent:#795572;--accent-hover:#63435d;--plum-deep:#503b4d;--plum-light:#e8dce5;--lavender:#eee6ed;--line:#d4d9cc;--text-body:19px;--text-support:17px;--text-small:14px;--text-ui:16px;--sans:'Cabin',Arial,sans-serif;--serif:'Lora',Georgia,serif }

* { box-sizing:border-box }

/* One seamless paper grain, painted behind content rather than over text.
   Increase the veil opacity for a softer texture; 1 hides it completely. */
:root {
 --paper-grain:url('../images/paper-grain.svg');
 --paper-grain-veil:rgb(247 245 238 / .25);
}

html { scroll-behavior:smooth;scroll-padding-top:110px }

body { margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:var(--text-body);line-height:1.65 }

a { color:inherit;text-decoration-thickness:1px;text-underline-offset:5px }

button,input,textarea,select { font:inherit }

a,button,input,select,textarea,summary { -webkit-tap-highlight-color:transparent }

:focus-visible { outline:3px solid var(--accent);outline-offset:5px }

img { max-width:100%;display:block }

h1,h2,h3,p,figure { margin:0 }

h1,h2,h3 { font-weight:400;line-height:1.1 }

h1,h2 { font-family:var(--serif);letter-spacing:-.025em }

h1 { font-size:clamp(42px,4.65vw,68px) }

h2 { font-size:clamp(35px,3.9vw,52px) }

h3 { font-family:var(--serif);font-size:29px }

em { font-style:normal;font-weight:400;color:var(--accent) }

p+p { margin-top:18px }

.wrap { width:min(1180px,calc(100% - 80px));margin-inline:auto }

.preview-banner { padding:8px 20px;background:var(--ink);color:white;text-align:center;font-size:var(--text-small);letter-spacing:.3px }

.preview-banner span { opacity:.82;margin-left:9px }

.site-header { position:sticky;top:0;background:rgba(247,245,238,.97);z-index:10;border-bottom:1px solid var(--line) }

.header-inner { min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:30px }

.brand { display:flex;gap:12px;align-items:center;text-decoration:none;font:30px/1.1 var(--serif) }

.brand-sub { display:block;font:11px var(--sans);letter-spacing:1px;margin-top:2px }

nav { display:flex;align-items:center;gap:30px;font-size:var(--text-ui) }

nav>a { text-decoration:none }

.button { display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--accent);color:var(--paper);padding:15px 24px;border:1px solid var(--accent);border-radius:3px;text-decoration:none;font-size:var(--text-ui);font-weight:600;cursor:pointer }

.button:hover { background:var(--accent-hover) }

.button:disabled { opacity:.6;cursor:default }

.button.small { padding:11px 18px;font-size:var(--text-ui);gap:20px }

.text-link { display:inline-flex;gap:20px;align-items:center;font-size:var(--text-body);font-weight:600 }

.hero { display:grid;grid-template-columns:1.12fr 1fr;gap:65px;align-items:center;padding-block:66px 70px }

.eyebrow { font-size:var(--text-ui);font-weight:600;margin-bottom:22px }

.hero h1 { margin-bottom:27px }

.lead { font-size:22px;line-height:1.45;max-width:400px }

.hero-description { color:var(--muted);max-width:420px;font-size:var(--text-body) }

.actions { display:flex;align-items:center;gap:26px;margin-top:29px }

.fine-print { font-size:var(--text-small);color:var(--muted);margin-top:17px }

.hero-art { background:#e4e8da;border-radius:48% 48% 4px 4px;overflow:hidden;position:relative }

.hero-art>img { width:100%;height:auto }

.hero-art figcaption { position:absolute;bottom:23px;left:0;right:0;text-align:center;font-size:var(--text-small);letter-spacing:2.7px }

.hero-art figcaption span { display:block;font-size:var(--text-small);letter-spacing:.4px;margin-top:5px;color:var(--muted) }

.service-ribbon { background:var(--lavender);border-block:1px solid var(--line);padding:22px 0 }

.service-ribbon .wrap { display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:var(--text-ui) }

.service-ribbon span:first-child { font-family:var(--serif);font-size:23px;font-style:normal }

.service-ribbon i { font-style:normal;color:var(--accent) }

.section { padding-block:95px }

.meet-grid { display:grid;grid-template-columns:.88fr 1fr;gap:105px;align-items:center }





.placeholder-label { font-size:var(--text-small);letter-spacing:1.6px;display:block;margin-top:25px }

.large-copy { font-size:22px;line-height:1.5;margin-top:25px }

.meet-grid p:not(.eyebrow),.area-grid p:not(.eyebrow) { max-width:495px }

.draft-note { padding:17px 20px;border-left:2px solid var(--accent);margin:25px 0;font-size:var(--text-support);color:var(--muted);background:var(--lavender) }

.draft-note strong { display:block;color:var(--ink);margin-bottom:4px }

.services-section { background:#eeeee5 }

.section-heading { display:flex;justify-content:space-between;align-items:end;gap:70px;margin-bottom:40px }

.section-heading>p { max-width:370px;color:var(--muted);font-size:var(--text-body) }

.service-cards { display:grid;grid-template-columns:1fr 1fr;gap:25px }

.service-card { background:var(--paper);padding:36px 40px;position:relative;border:1px solid var(--line);border-radius:4px }

.service-card svg { width:48px;height:48px;fill:none;stroke:var(--accent);stroke-width:1.7;margin-bottom:20px }

.service-card h3 { margin-bottom:18px }

.service-card p { font-size:var(--text-body);color:var(--muted) }

.service-card .card-foot { font-size:var(--text-support);border-top:1px solid var(--line);padding-top:19px;margin-block:25px 20px }

.steps { list-style:none;padding:0;margin:40px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:42px }

.steps li { border-top:1px solid #aab69f;padding-top:25px }

.steps h3 { margin:0 0 16px;font-size:28px }

.steps p { font-size:var(--text-body);color:var(--muted) }

.trust-section { padding:75px 0;background:var(--plum-deep);color:var(--cream) }

.trust-grid { display:grid;grid-template-columns:1fr 1fr;gap:105px }

.trust-grid>div>p:not(.eyebrow) { max-width:375px;margin-top:24px;color:var(--plum-light);font-size:var(--text-body) }

.trust-list article { padding:0 0 23px;margin-bottom:23px;border-bottom:1px solid #8c7186 }


.trust-list h3 { font-size:26px }

.trust-list p { margin-top:8px;font-size:var(--text-body);color:var(--plum-light) }

.trust-list .trust-note { font-size:var(--text-small) }

.area-grid { display:grid;grid-template-columns:.88fr 1fr;gap:105px;align-items:center }

.area-art { height:310px;background:#e4e8da;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:4px }

.area-art p { font:36px var(--serif);z-index:1;background:#e4e8da;padding:10px;text-align:center }

.area-art p span { display:block;font:14px var(--sans);letter-spacing:1.5px;margin-top:12px }

.map-dot { height:20px;width:20px;background:var(--accent);border:5px solid #f7f5ee;border-radius:50%;box-shadow:0 0 0 1px var(--accent);z-index:1 }

.map-line { position:absolute;border:1px solid #c6ceba;width:600px;height:190px;border-radius:50%;transform:rotate(-25deg) }

.map-line.one { top:-40px }

.map-line.two { top:40px }

.map-line.three { top:210px }

.area-grid .text-link { margin-top:25px }

.faq-section { background:#eeeee5 }

.faq-grid { display:grid;grid-template-columns:.85fr 1.2fr;gap:95px }

.faq-grid>div>p:last-child { font-size:var(--text-body);margin-top:25px;max-width:270px;color:var(--muted) }

details { border-bottom:1px solid #cbd1c2;padding:20px 0 }

details:first-child { border-top:1px solid #cbd1c2 }

summary { cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:15px;font-size:var(--text-body);font-weight:600 }

summary::-webkit-details-marker { display:none }

summary:after { content:'+';font-size:22px;line-height:1 }

details[open] summary:after { content:'−' }

details p { font-size:var(--text-body);color:var(--muted);margin-top:16px;padding-right:30px }

.contact-grid { display:grid;grid-template-columns:.8fr 1.2fr;gap:90px }

.contact-grid>div>p:not(.eyebrow) { margin-top:24px;font-size:var(--text-body);max-width:330px }

.contact-note { background:var(--lavender);border-left:2px solid var(--accent);padding:20px;margin-top:30px;font-size:var(--text-support) }

.contact-note p { margin-top:8px;color:var(--muted) }

form { padding:30px;background:var(--paper);border:1px solid var(--line);border-radius:4px }

.form-intro { font-size:var(--text-small);letter-spacing:1.4px;font-weight:700;margin-bottom:22px }

.form-intro span { display:block;font-size:var(--text-small);font-weight:400;letter-spacing:0;color:var(--muted);margin-top:5px }

.form-row { display:grid;grid-template-columns:1fr 1fr;gap:18px }

.field { margin-bottom:19px;min-width:0 }

.field label { display:block;font-size:var(--text-support);font-weight:600;margin-bottom:7px }

.field label span { font-weight:400;color:var(--muted) }

input,select,textarea { width:100%;min-height:45px;min-width:0;border:1px solid #a9b2a3;border-radius:2px;background:#fffefb;color:var(--ink);padding:9px 11px;font-size:var(--text-body) }

textarea { resize:vertical }

small { display:block;font-size:var(--text-small);line-height:1.5;color:var(--muted);margin-top:7px }

[aria-invalid=true] { border:2px solid var(--accent) }

.form-status:empty { display:none }

.form-status { padding:14px;background:var(--lavender);font-size:var(--text-support);margin:0 0 20px }

footer { border-top:1px solid var(--line);padding:40px 0 20px }

.footer-top { display:flex;justify-content:space-between;align-items:center;gap:30px }

.footer-top p { font-size:var(--text-support) }

.footer-bottom { display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px;margin-top:35px;font-size:var(--text-support);color:var(--muted) }

.skip-link { position:fixed;top:-100px;left:20px;z-index:50;background:var(--paper);padding:15px }

.skip-link:focus { top:10px }

.utility { max-width:760px;padding-block:75px;min-height:70vh }

.utility h1 { font-size:48px;margin-bottom:30px }

.utility h2 { font-size:27px;margin-top:30px;margin-bottom:15px }

.utility p { margin-top:16px }

@media(min-width:1500px){
.hero { padding-block:85px }

.hero-art { max-width:495px }
}
@media(max-width:1000px){
.wrap { width:calc(100% - 48px) }

.hero { gap:30px }

.header-inner { gap:15px }

nav { gap:18px }

.brand { font-size:26px }

.brand-sub { font-size:11px }

.meet-grid,.area-grid,.trust-grid { gap:50px }

.contact-grid,.faq-grid { gap:40px }

.actions { gap:18px;flex-wrap:wrap }

.section-heading { gap:35px }

.service-card { padding:30px }

.contact-grid { grid-template-columns:.8fr 1.2fr }

form { padding:24px }
}
@media(max-width:700px){
html { scroll-padding-top:135px }

.wrap { width:calc(100% - 40px) }

.preview-banner { font-size:var(--text-small);padding:7px 12px }

.preview-banner span { display:block;margin:0 }

.header-inner { flex-wrap:wrap;padding-block:14px;gap:14px;min-height:0 }

.brand { font-size:24px }

.brand img { width:32px;height:32px }

.brand-sub { font-size:11px }

nav { width:100%;justify-content:space-between;gap:10px;font-size:var(--text-ui) }

nav .button.small { padding:9px 11px;font-size:var(--text-ui);gap:8px }

.hero { grid-template-columns:1fr;gap:34px;padding-block:38px 40px }

h1 { font-size:46px;letter-spacing:-.025em }

.hero h1 { max-width:520px }

.eyebrow { font-size:var(--text-ui);margin-bottom:20px }

.hero-description { font-size:var(--text-body) }

.lead { font-size:19px }

.hero-art { width:min(100%,390px);margin:auto }

.hero-art img { max-height:410px;object-fit:cover;object-position:center 55% }

.hero-art figcaption { bottom:16px }

.service-ribbon { padding:18px 0 }

.service-ribbon .wrap { flex-wrap:wrap;gap:10px;justify-content:center;font-size:var(--text-ui) }

.service-ribbon span:first-child { width:100%;text-align:center;font-size:22px }

.section { padding-block:55px }

.meet-grid,.area-grid,.contact-grid,.faq-grid,.trust-grid { grid-template-columns:1fr;gap:32px }





.section-heading { display:block;margin-bottom:28px }

.section-heading>p { margin-top:20px }

.service-cards { grid-template-columns:1fr;gap:18px }

.service-card { padding:28px }

.steps { grid-template-columns:1fr;gap:24px;margin-top:28px }

.steps li { padding-top:18px }

.steps h3 { margin-top:0 }

.trust-section { padding-block:50px }



.area-art { height:240px }

.faq-grid>div>p:last-child { max-width:100% }

summary { font-size:var(--text-body) }

.contact-grid h2 br:nth-of-type(2) { display:none }

.contact-grid>div>p:not(.eyebrow) { max-width:none }

.form-row { grid-template-columns:1fr;gap:0 }

form { padding:22px 18px }

.footer-top { flex-wrap:wrap;gap:25px }

.footer-top p { font-size:var(--text-support) }

.footer-bottom { flex-direction:column;gap:10px }

.utility { padding-block:45px }

.utility h1 { font-size:40px }
}
@media(prefers-reduced-motion:reduce){
html { scroll-behavior:auto }

* { animation:none!important;transition:none!important }
}
/* Mobile disclosure navigation; without JavaScript the links remain visible. */
.menu-toggle { display:none;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:8px 12px;border:1px solid var(--ink);border-radius:3px;background:transparent;color:var(--ink);font-size:14px;font-weight:600;cursor:pointer }

.menu-toggle svg { fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round }

.menu-toggle[aria-expanded="true"] { background:var(--sage) }

#main-nav[hidden],.menu-toggle[hidden] { display:none }

@media(max-width:767px){
html { scroll-padding-top:95px }

.header-inner { flex-wrap:wrap;min-height:76px;padding-block:14px;gap:10px }

.header-inner .brand { font-size:24px;gap:8px }

.header-inner .brand img { width:32px;height:32px }

.header-inner .brand-sub { font-size:10px;letter-spacing:.3px;max-width:125px;line-height:1.4 }

.menu-toggle:not([hidden]) { display:inline-flex }

#main-nav { width:100%;display:flex;flex-direction:column;align-items:stretch;gap:4px;font-size:var(--text-ui) }

#main-nav>a { display:flex;align-items:center;min-height:48px;padding:12px 16px;border-radius:3px }

#main-nav>a:hover { background:var(--sage) }

#main-nav .button.small { font-size:var(--text-ui);padding:12px 16px;justify-content:space-between;margin-top:6px }

#main-nav .button.small:hover { background:var(--accent-hover) }

.nav-ready #main-nav { position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:12px 20px 20px;border-bottom:1px solid var(--line);box-shadow:0 10px 15px #25483e12;max-height:calc(100dvh - 90px);overflow-y:auto }

}
@media(max-width:360px){
.header-inner { gap:8px }

.menu-toggle { gap:6px;padding-inline:8px;font-size:var(--text-ui) }

}
.site-credit { display:inline-flex;align-items:center;gap:7px;min-height:44px;font-size:var(--text-support);white-space:nowrap;text-decoration:none;color:var(--muted) }

.site-credit img { width:20px;height:20px;flex-shrink:0 }


.footer-bottom { align-items:center;flex-wrap:wrap }

.utility-credit { margin-top:12px }

@media(max-width:700px){
.footer-bottom { align-items:flex-start }
}
.contact-email { display:inline;overflow-wrap:anywhere;font-size:inherit }

/* A welcome note tucked into the sage band, with a window onto home. */
.hero-paper { padding:30px 28px 0;background:var(--sage) var(--paper-grain) }
.hero-paper .hero {
 width:min(1280px,100%);padding:60px 50px 88px;
}
.hero-paper .hero,.paper-footer .footer-top,.utility-paper {
 position:relative;isolation:isolate;
 --paper-edge:polygon(2px 3px,3% 1px,7% 2px,12% 0,18% 2px,25% 1px,31% 3px,38% 1px,46% 2px,53% 0,61% 2px,68% 1px,74% 3px,81% 1px,88% 2px,94% 0,calc(100% - 2px) 2px,calc(100% - 1px) 7%,calc(100% - 3px) 15%,100% 24%,calc(100% - 2px) 33%,calc(100% - 1px) 43%,calc(100% - 3px) 52%,100% 63%,calc(100% - 2px) 72%,calc(100% - 1px) 83%,calc(100% - 3px) 92%,100% 100%,0 100%,2px 92%,1px 83%,3px 74%,0 64%,2px 55%,1px 45%,3px 36%,0 27%,2px 18%,1px 9%);
}
/* Shape only the paper layers: text, window and focus outlines stay crisp. */
.hero-paper .hero::before,.hero-paper .hero::after,
.paper-footer .footer-top::before,.paper-footer .footer-top::after,
.utility-paper::before,.utility-paper::after {
 content:'';position:absolute;inset:0;pointer-events:none;
}
.hero-paper .hero::before,.paper-footer .footer-top::before,.utility-paper::before {
 z-index:-1;clip-path:var(--paper-edge);background-color:var(--cream);
 background-image:linear-gradient(var(--paper-grain-veil),var(--paper-grain-veil)),var(--paper-grain);
}
.hero-paper .hero::after,.paper-footer .footer-top::after,.utility-paper::after {
 /* Keep the soft shadow outside the clipped paper silhouette. */
 z-index:-2;inset:3px 3px 0;
 box-shadow:0 2px 5px #25483e1a,0 8px 24px #25483e24;
}
.hero-art { background:none;border-radius:0;overflow:visible;padding:0 8px }
.hero-window {
 position:relative;border:12px solid #fdfaf0;border-bottom-width:16px;
 border-radius:50% 50% 3px 3px / 38% 38% 3px 3px;
 background:#e4e8da;box-shadow:0 0 0 1px #d1cfbd,0 14px 30px #25483e15;
}
.hero-window img { width:100%;height:auto;border-radius:inherit }
.window-transom {
 position:absolute;top:27%;left:0;right:0;height:9px;background:#fdfaf0;
 box-shadow:0 2px 3px #25483e16;pointer-events:none;
}
.window-transom::before { content:'';position:absolute;bottom:100%;left:calc(50% - 4px);width:8px;height:180px;background:#fdfaf0 }
.hero-window { overflow:hidden }
.hero-art::after { content:'';display:block;height:12px;margin:-2px -8px 0;background:#eee8d8;border:1px solid #d1cfbd;border-radius:2px;box-shadow:0 7px 12px #25483e12 }
.hero-art { display:flex;flex-direction:column }
.hero-art figcaption { position:static;order:1;padding-top:22px;font:22px/1.35 var(--serif);letter-spacing:0 }
.hero-art figcaption span { font:14px/1.5 var(--sans);letter-spacing:0;margin-top:7px }
.hero-paper + .service-ribbon { position:relative;margin-top:-24px;z-index:1;box-shadow:0 -8px 18px -12px #25483e55 }
@media(max-width:1000px) {
 .hero-paper { padding:24px 20px 0 }
 .hero-paper .hero { padding:42px 30px 74px;gap:36px }
}
@media(max-width:700px) {
 .hero-paper { padding:18px 12px 0 }
 .hero-paper .hero { padding:32px 19px 64px;gap:32px }
 .hero-window { border-width:9px;border-bottom-width:12px }
 .hero-window img { max-height:none;object-fit:contain }
 .hero-art figcaption { font-size:21px;padding-top:20px }
 .window-transom { height:7px }
}

body,.site-header {
 background-image:linear-gradient(var(--paper-grain-veil),var(--paper-grain-veil)),var(--paper-grain);
 background-size:auto,240px 240px;
}

.service-ribbon,.services-section,.faq-section,.contact-note {
 background-image:var(--paper-grain);
 background-size:240px 240px;
}

@media print {
 body,.site-header,.service-ribbon,.services-section,.faq-section,.contact-note { background-image:none }
}


/* Shared reading scale across the marketing and utility pages. */
h3{line-height:1.25}
.hero-art figcaption{letter-spacing:1.2px;padding-inline:12px}
.placeholder-label,.form-intro{letter-spacing:1px}
.footer-bottom{gap:12px 24px}
footer{font-size:var(--text-support)}
.site-credit{white-space:normal}
.site-credit span{white-space:nowrap}
@media(min-width:768px) and (max-width:1000px){
 nav{gap:14px}
 .button.small{gap:10px;padding-inline:12px}
 .header-inner .brand img{width:34px;height:34px}
 .header-inner .brand-sub{font-size:10px;letter-spacing:.4px}
}
@media(max-width:767px){
 :root{--text-body:17px;--text-support:16px;--text-small:14px;--text-ui:16px}
 .large-copy{font-size:20px}
 .footer-top .brand-sub{font-size:10px}
 .header-inner .brand{flex-shrink:0}
 .menu-toggle{font-size:14px;padding-inline:10px;gap:6px}
}

/* The same sheet reappears below the content and ends above the footer credits. */
.paper-footer { position:relative;isolation:isolate;border-top:0;padding:0 28px 30px;background:var(--sage) var(--paper-grain) }
/* The section above casts down onto the emerging paper, not up onto itself. */
.paper-footer::before {
 content:'';position:absolute;z-index:1;top:0;left:0;right:0;height:18px;
 background:linear-gradient(to bottom,#25483e20,#25483e08 7px,transparent);
 pointer-events:none;
}
.paper-footer .footer-top { width:min(1280px,100%);min-height:270px;padding:65px 50px 75px }
.paper-footer .footer-top::before { transform:scaleY(-1) }
.paper-footer .footer-top::after { inset:0 3px 3px;clip-path:inset(0 -40px -40px) }
.paper-footer .footer-bottom { width:min(1180px,100%);border-top:0;padding-top:0;margin-top:34px;gap:14px 24px }
@media(max-width:1000px) {
 .paper-footer { padding-inline:20px }
 .paper-footer .footer-top { padding:55px 30px 65px }
}
@media(max-width:700px) {
 .paper-footer { padding:0 12px 24px }
 .paper-footer .footer-top { flex-direction:column;align-items:flex-start;gap:28px;padding:46px 19px 55px }
 .paper-footer .footer-bottom { width:calc(100% - 38px);margin-top:28px }
}

/* Authentic portrait supplied by Jennifer; preserve both faces in the crop. */
.jennifer-portrait { position:relative;background:var(--paper);padding:13px 13px 78px;border:1px solid #e4dfd4;border-radius:1px;--photo-angle:-2deg;transform:rotate(var(--photo-angle));box-shadow:0 3px 5px #25483e14,5px 15px 28px #25483e26 }
.jennifer-portrait > img { width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;border-radius:0 }

/* Plum carries through the page in links and service headings. */
.text-link { color:var(--accent) }
.service-card h3 { color:var(--accent) }

@media(max-width:700px) {
 .jennifer-portrait { width:calc(100% - 12px);margin-inline:auto;padding:10px 10px 78px;--photo-angle:-1deg }
}

/* Short, one-time motion; the base styles always show the photograph. */
@media(prefers-reduced-motion:no-preference) {
 .jennifer-portrait.photo-settle { animation:photo-settle 550ms cubic-bezier(.2,.65,.3,1) both }
 .button { transition:transform 160ms ease,background-color 160ms ease }
 .button:not(:disabled):active { transform:translateY(1px) }
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
 .button:not(:disabled):hover { transform:translateY(-2px) }
 .button:not(:disabled):active { transform:translateY(1px) }
}
@keyframes photo-settle {
 from { opacity:.35;transform:translateY(-10px) rotate(calc(var(--photo-angle) - 1deg)) }
 to { opacity:1;transform:translateY(0) rotate(var(--photo-angle)) }
}

/* Link feedback without moving text or changing the layout. */
a:not(.button):focus-visible {
 color:var(--accent-hover);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;
}
a.brand:focus-visible { text-decoration:none }
@media(hover:hover) and (pointer:fine) {
 a:not(.button):hover {
  color:var(--accent-hover);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;
 }
 a.brand:hover { text-decoration:none }
}
@media(prefers-reduced-motion:no-preference) {
 a:not(.button) { transition:color 160ms ease,text-decoration-color 160ms ease,text-underline-offset 160ms ease,background-color 160ms ease }
}

/* Jennifer’s handwritten note sits within the print’s 78px lower border. */
.portrait-note { position:absolute;inset-inline:16px;bottom:7px;height:64px;display:flex;align-items:center;justify-content:center }
.portrait-note img { display:block;width:240px;max-width:100%;height:auto;max-height:64px;object-fit:contain }

/* A second personal photograph accompanies the care options. */
.services-layout { display:grid;grid-template-columns:.85fr 1.15fr;gap:40px;align-items:start }
.services-layout .service-cards { grid-template-columns:1fr }
.service-photo { margin:0 }
.service-photo img { display:block;width:100%;height:auto;border-radius:4px;box-shadow:0 8px 24px #25483e18 }
@media(max-width:700px) { .services-layout { grid-template-columns:1fr;gap:28px } .service-photo { max-width:440px;margin-inline:auto } }

/* Team introductions stay simple until individual biographies are supplied. */
.team-section { display:grid;grid-template-columns:1fr 320px;gap:70px;align-items:center;padding-block:40px 80px;border-top:1px solid var(--line) }
.team-intro p { max-width:380px;color:var(--muted) }
 .team-member { margin:0 }
.team-polaroid { margin:0;background:var(--paper);padding:13px 13px 0;border:1px solid #e4dfd4;border-radius:1px;transform:rotate(2deg);box-shadow:0 3px 5px #25483e14,5px 15px 28px #25483e26 }
.team-polaroid>img { display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;object-position:50% 15%;border-radius:0 }
.team-polaroid figcaption { height:78px;display:flex;align-items:center;justify-content:center }
.team-polaroid h3 { margin:0;color:var(--accent);font-size:30px }
.team-member .team-role { margin:24px 0 0;text-align:center;color:var(--muted) }
@media(max-width:700px) { .team-section { grid-template-columns:1fr;gap:24px;padding-block:32px 56px } .team-member { width:calc(100% - 12px);max-width:360px;margin-inline:auto } .team-polaroid { padding:10px 10px 0;transform:rotate(1deg) } }

/* Service detail, prices and client letters use the existing page widths. */
.service-list { padding-left:20px;margin:20px 0;color:var(--muted) }
.service-list li+li { margin-top:8px }
.service-extras { margin-top:40px;padding-top:30px;border-top:1px solid var(--line);max-width:850px }
.section-links { display:flex;flex-wrap:wrap;gap:12px 26px;margin:0 0 30px }
.section-links a { color:var(--accent) }
.pricing-overview { display:grid;grid-template-columns:1.2fr 1fr;gap:60px;margin-bottom:35px }
.pricing-overview p { max-width:560px }
.pricing-overview>div:last-child { border-left:2px solid var(--accent);padding-left:28px }
.rate-table { width:100%;border-collapse:collapse;font-size:var(--text-body);margin:30px 0 }
.rate-table caption { text-align:left;font-weight:700;margin-bottom:15px }
.rate-table th,.rate-table td { text-align:left;padding:18px 20px;border-bottom:1px solid var(--line);vertical-align:top }
.rate-table thead { background:var(--lavender) }
.rate-table th[scope="row"] { width:65%;font-weight:600 }
.rate-table th span { display:block;font-weight:400;font-size:var(--text-support);color:var(--muted);margin-top:5px;max-width:600px }
.rate-table td { color:var(--accent);font-weight:600 }
.testimonials-section { border-bottom:1px solid var(--line) }
.section-intro { max-width:650px;color:var(--muted) }
.testimonial-grid { display:grid;grid-template-columns:1fr 1fr;gap:55px;margin-top:35px }
.testimonial-grid figure { margin:0;padding:0 0 0 25px;border-left:2px solid var(--accent) }
.testimonial-grid blockquote { margin:0 0 22px;font-family:var(--serif);font-size:clamp(23px,2.2vw,30px);line-height:1.45 }
.testimonial-grid figcaption { color:var(--accent);font-weight:600 }
.testimonial-grid figcaption span { display:block;color:var(--muted);font-size:var(--text-support);font-weight:400;margin-top:5px }
.policy-list { max-width:900px }
@media(max-width:700px) {
 .pricing-overview,.testimonial-grid { grid-template-columns:1fr;gap:30px }
 .pricing-overview>div:last-child { padding-left:20px }
 .rate-table th,.rate-table td { padding:15px 8px }
 .rate-table th[scope="row"] { width:58% }
 .rate-table td { overflow-wrap:anywhere }
}

/* Service-area keepsake and introductions attached to their headings. */
.section-heading.section-heading-stacked { display:block }
.section-heading-stacked>p { max-width:620px;margin-top:18px }
.service-area-note { position:relative;margin:12px auto;width:calc(100% - 16px);max-width:620px;padding:30px 12px 12px;background:var(--paper);border:1px solid #dcd9cc;box-shadow:0 14px 28px #25483e14,0 3px 5px #25483e0a;transform:rotate(-1deg) }
.service-area-note::before { content:"";position:absolute;top:-12px;left:calc(50% - 42px);width:84px;height:25px;background:#ddd2bcaa;transform:rotate(4deg) }
.service-area-note figcaption { text-align:center;font:clamp(24px,2.4vw,32px) var(--serif);color:var(--accent) }
.service-area-note img { display:block;width:100%;height:auto }
@media(max-width:700px) { .service-area-note { padding:25px 4px 6px } }

.service-area-note .map-caption { margin:8px 0 10px;max-width:none;text-align:center;font-size:14px;color:var(--muted) }

/* Rate groups make comparison easier without a wall of rules. */
.pricing-overview .package-rate { padding:30px;background:var(--lavender);border-radius:3px 28px 3px 3px;box-shadow:0 3px 6px #503b4d0a,0 12px 24px -12px #503b4d30,inset 0 1px 0 #ffffff70 }
.package-rate .rate-pending { font:clamp(28px,3vw,38px)/1.2 var(--serif);color:var(--accent);margin:18px 0 }
.package-rate .package-note { font-size:var(--text-support);margin-top:20px }
.pricing-overview>div.consultation-rate { border-left:0;padding:22px 0;align-self:center }
.rate-table caption span { display:block;font-weight:400;color:var(--muted);font-size:var(--text-support);margin-top:9px;max-width:650px }
.rate-table th,.rate-table td { border-bottom:0 }
.rate-table tbody tr:nth-child(odd):not(.rate-group) { background:#e7ebdf55 }
.rate-table .rate-group th { padding:30px 20px 12px;color:var(--accent);font-family:var(--serif);font-size:24px;border-bottom:1px solid var(--line) }
.rate-table td { font-variant-numeric:tabular-nums }
/* Full-width plum fabric with openwork lace edging. */
.trust-section { position:relative;isolation:isolate;padding:75px 0;margin-block:44px;background-color:var(--plum-deep);background-image:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff0c 3px 4px),repeating-linear-gradient(90deg,transparent 0 3px,#00000026 3px 4px),repeating-linear-gradient(45deg,transparent 0 11px,#ffffff07 11px 12px);box-shadow:0 8px 14px -12px #30232d66 }
.trust-section>.trust-grid { position:relative;z-index:1 }
.trust-section::before,.trust-section::after { content:"";position:absolute;left:0;width:100%;height:44px;background:url('../images/plum-lace-edge-v2.svg') repeat-x left top / 64px 44px;pointer-events:none }
.trust-section::before { top:-43px;transform:rotate(180deg);filter:drop-shadow(0 -2px 2px #30232d26) }
.trust-section::after { bottom:-43px;filter:drop-shadow(0 3px 3px #30232d38) }
@media(max-width:700px) { .trust-section { padding-block:48px;margin-block:36px }.trust-section::before,.trust-section::after { height:34px;background-size:50px 34px }.trust-section::before { top:-33px }.trust-section::after { bottom:-33px } }
.testimonials-section { border-bottom:0 }
.steps li { border-top:0;padding-top:8px }
@media(max-width:700px) { .pricing-overview .package-rate { padding:24px 20px }.rate-table .rate-group th { padding-inline:8px;font-size:22px } }

.daily-rates { display:flex;flex-wrap:wrap;gap:22px 42px;margin:24px 0;color:var(--accent) }
.daily-rates dt { font-size:var(--text-support);font-weight:600 }
.daily-rates dd { margin:4px 0 0;font-size:var(--text-support) }
.daily-rates strong { font:clamp(36px,4vw,48px)/1.1 var(--serif) }

/* Client letters sit on warm stationery; quotations remain selectable text. */
.testimonial-grid { align-items:start;padding:10px 8px 20px }
.testimonial-grid figure { --letter-paper:#fffaf0;--letter-fold:36px;position:relative;isolation:isolate;margin:0;padding:clamp(28px,3.5vw,52px);border:0;background:none;filter:drop-shadow(2px 7px 7px #493a2d20);transform:rotate(-1.4deg) }
.testimonial-grid figure::before { content:"";position:absolute;inset:0;z-index:-1;background-color:var(--letter-paper);background-image:linear-gradient(180deg,transparent 49.5%,#a99b7810 50%,#ffffff90 50.3%,transparent 51%),var(--paper-grain);clip-path:polygon(0 0,100% 0,100% calc(100% - var(--letter-fold)),calc(100% - var(--letter-fold)) 100%,0 100%);pointer-events:none }
.testimonial-grid figure:nth-child(2) { --letter-paper:#fdf8ee;margin-top:32px;transform:rotate(1.7deg) }
.testimonial-grid figure::after { content:"";position:absolute;right:0;bottom:0;width:var(--letter-fold);height:var(--letter-fold);background:linear-gradient(135deg,#eee5d2,#d6cbb5);clip-path:polygon(0 0,100% 0,0 100%);pointer-events:none }
.testimonial-grid figcaption { margin-top:26px }
@media(max-width:700px) {
 .testimonial-grid { gap:28px;padding:6px 2px 12px }
 .testimonial-grid figure,.testimonial-grid figure:nth-child(2) { margin-top:0;transform:rotate(-.5deg);padding:28px 24px }
 .testimonial-grid figure:nth-child(2) { transform:rotate(.6deg) }
}

/* Center section titles while preserving readable left-aligned content. */
.pricing-section>.section-heading { justify-content:center;text-align:center }
.testimonials-section>h2 { text-align:center }

/* The service-area note and its explanation form one centered composition. */
.area-grid { grid-template-columns:1fr;gap:40px;justify-items:center;text-align:center }
.area-grid>div { width:100%;max-width:660px }
.area-grid p:not(.eyebrow) { max-width:660px;margin-inline:auto }
.area-grid .service-area-note { max-width:675px }

/* A welcoming service strip with small hand-drawn botanical separators. */
.service-ribbon { padding-block:30px;border-block:0 }
.service-ribbon .wrap { justify-content:center;gap:clamp(32px,4vw,72px) }
.service-ribbon .ribbon-message:first-child { font:clamp(28px,2.6vw,38px)/1.2 var(--serif);flex-shrink:0 }
.ribbon-services { display:grid;grid-template-columns:auto 42px auto 42px auto;align-items:center;gap:clamp(14px,2vw,35px) }
.service-ribbon .ribbon-services span { width:auto;font:500 clamp(18px,1.6vw,23px)/1.4 var(--serif);text-align:center }
.ribbon-flower { display:block;width:42px;height:auto }
.ribbon-flower-last { transform:rotate(12deg) }
@media(max-width:1000px) {
 .service-ribbon .wrap { flex-direction:column;gap:18px }
 .service-ribbon .ribbon-message:first-child { width:100%;text-align:center }
}
@media(max-width:480px) {
 .service-ribbon { padding-block:27px }
 .ribbon-services { grid-template-columns:auto 34px auto;gap:10px 18px }
 .ribbon-flower { width:34px }
 .ribbon-flower-last { display:none }
 .ribbon-location { grid-column:1/-1 }
}

/* Quiet fabric detail keeps the primary actions familiar and legible. */
.button { border-radius:7px;box-shadow:0 3px 5px #503b4d22,inset 0 1px #ffffff15 }
.button,.button:hover,#main-nav .button.small:hover { background-image:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff06 3px 4px),repeating-linear-gradient(90deg,transparent 0 3px,#00000009 3px 4px) }
.button:not(:disabled):active { box-shadow:0 1px 2px #503b4d1a,inset 0 1px 2px #30232d22 }
.button:disabled { box-shadow:none }
@media(prefers-reduced-motion:no-preference) { .button { transition:transform 160ms ease,background-color 160ms ease,box-shadow 160ms ease } }

/* A small translucent strip of washi holds each Polaroid to the page. */
.team-polaroid { position:relative }
.jennifer-portrait::before,.team-polaroid::before { content:"";position:absolute;z-index:2;top:-13px;left:calc(50% - 58px);width:116px;height:28px;background-color:#79557270;background-image:repeating-linear-gradient(100deg,transparent 0 5px,#ffffff18 5px 6px),repeating-linear-gradient(0deg,transparent 0 3px,#503b4d0c 3px 4px);transform:rotate(6deg);clip-path:polygon(2% 0,98% 2%,100% 15%,98% 30%,100% 46%,98% 64%,100% 82%,98% 100%,1% 98%,3% 82%,0 65%,2% 48%,0 30%,3% 15%);pointer-events:none }
.team-polaroid::before { width:100px;left:calc(50% - 50px);transform:rotate(-8deg) }
@media(max-width:700px) { .jennifer-portrait::before,.team-polaroid::before { width:94px;height:25px;top:-12px;left:calc(50% - 47px) } }

#inquiry-form fieldset { border:0;padding:0;margin:0;min-width:0 }
#form-notice { margin:0 0 26px }

.services-section .section-heading-stacked { text-align:center;margin-bottom:22px }
.services-section .section-heading-stacked>p { margin-inline:auto }
.services-section .section-links { justify-content:center;margin-bottom:40px }

#process>.section-heading { justify-content:center;text-align:center }

/* Keep compact introductions and their actions comfortably separated. */
.team-intro h2,.faq-grid>div:first-child h2,.consultation-rate h3 { margin-bottom:18px }
.consultation-rate>.button,.faq-grid>div:first-child>.text-link,.meet-grid>div>.text-link { margin-top:18px }
@media(max-width:700px) { .service-extras h3 { margin-bottom:18px } }

/* A quieter version of the header signature closes the page. */
.paper-footer .brand .footer-brand-icon { width:34px;height:34px;flex-shrink:0 }
@media(max-width:700px) { .paper-footer .brand .footer-brand-icon { width:28px;height:28px } }

/* A shared paper sheet for supporting pages. */
.utility-paper-page { background:var(--sage) var(--paper-grain) }
.utility-paper-page .utility-paper { width:calc(100% - 56px);max-width:920px;margin:36px auto 48px;padding:60px 80px;min-height:0 }
.utility-paper-page>footer { background:transparent;border-top:0;padding-top:0 }
@media(min-width:768px) { .utility-paper-page .header-inner { width:100%;max-width:none;padding-inline:clamp(28px,4vw,88px) } }
@media(max-width:700px) { .utility-paper-page .utility-paper { width:calc(100% - 24px);margin:20px auto 32px;padding:38px 20px 44px }.utility-paper h1 { font-size:36px } }

.form-trap { position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden }
#turnstile-widget { margin:20px 0;min-width:0 }
#form-notice:focus { outline:2px solid var(--accent);outline-offset:4px }
#inquiry-form[aria-busy="true"] { cursor:progress }

/* A quieter, continuous hero headline. */
.hero h1 { font-size:clamp(39px,4.1vw,60px);line-height:1.16;letter-spacing:-.025em;text-wrap:balance;max-width:16ch }

/* Cabin navigation: clear emphasis without all-caps styling. */
#main-nav > a,.menu-toggle { font-weight:600;letter-spacing:.015em }
@media (min-width:1001px) { #main-nav { gap:34px } }

/* A small pen stroke echoes the handwritten notes without moving the links. */
#main-nav > a:not(.button) { position:relative;text-decoration:none }
#main-nav > a:not(.button)::after { content:"";position:absolute;left:0;right:0;bottom:-7px;height:7px;background:url('../images/nav-pen-stroke.svg') center / 100% 100% no-repeat;opacity:0;transform:scaleX(.65);transform-origin:left;pointer-events:none }
#main-nav > a:not(.button):focus-visible::after { opacity:1;transform:scaleX(1) }
@media(hover:hover) and (pointer:fine) {
 #main-nav > a:not(.button):hover::after { opacity:1;transform:scaleX(1) }
}
@media(prefers-reduced-motion:no-preference) { #main-nav > a:not(.button)::after { transition:opacity 160ms ease,transform 180ms ease } }
@media(max-width:767px) { #main-nav > a:not(.button)::after { left:16px;right:auto;width:100px;bottom:5px } }

/* Content actions follow the reading scale; compact navigation stays separate. */
main .button { font-size:var(--text-body) }
.paper-footer .text-link { font-size:var(--text-support) }
.menu-toggle { font-size:var(--text-ui) }

/* Group business identity and contact details into two balanced paper columns. */
.paper-footer .footer-top { display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:40px }
.footer-identity p { margin-top:20px }
.footer-contact { display:flex;flex-direction:column;align-items:flex-start;gap:10px;justify-self:end;font-size:var(--text-body) }
.footer-contact > a { overflow-wrap:anywhere }
.footer-contact .text-link { margin-top:8px;font-size:var(--text-body) }
.paper-footer .footer-bottom { display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font-size:var(--text-support) }
.footer-links { display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center }
.paper-footer .site-credit { justify-self:end }
@media(max-width:1000px) {
 .paper-footer .footer-bottom { grid-template-columns:1fr auto }
 .paper-footer .footer-bottom > span { grid-column:1/-1 }
}
@media(max-width:700px) {
 .paper-footer .footer-top { grid-template-columns:1fr;gap:28px }
 .footer-contact { justify-self:start }
 .paper-footer .footer-bottom { grid-template-columns:1fr;gap:16px }
 .paper-footer .site-credit { justify-self:start }
}

/* A folded corner belongs to the sheet silhouette, including its shadow. */
.hero-paper .hero { --fold-size:68px;--paper-edge:polygon(2px 3px,7% 2px,12% 0,25% 1px,38% 1px,53% 0,68% 1px,81% 1px,calc(100% - var(--fold-size)) 0,100% var(--fold-size),calc(100% - 3px) 24%,100% 43%,calc(100% - 2px) 63%,100% 100%,0 100%,2px 83%,0 64%,2px 45%,0 27%,2px 9%) }
.hero-paper .hero::before,.hero-paper .hero::after { content:none }
.hero-sheet { position:absolute;inset:0;z-index:-1;pointer-events:none;filter:drop-shadow(0 2px 3px #25483e1a) drop-shadow(0 8px 12px #25483e24) }
.hero-sheet::before { content:"";position:absolute;inset:0;clip-path:var(--paper-edge);background-color:var(--cream);background-image:linear-gradient(var(--paper-grain-veil),var(--paper-grain-veil)),var(--paper-grain) }
.hero .hero-fold { position:absolute;top:0;right:0;width:var(--fold-size);height:var(--fold-size);overflow:visible;pointer-events:none;z-index:1 }
@media(max-width:700px) { .hero-paper .hero { --fold-size:38px } }

/* A quiet Black Hills sketch on the stationery beneath the hero sheet. */
.hero-paper {
 background-image:url('../images/black-hills-stationery-v2.svg'),var(--paper-grain);
 background-repeat:no-repeat,repeat;
 background-position:center top,left top;
 background-size:100% auto,240px 240px;
 padding-top:58px;
}
@media(max-width:700px) {
 .hero-paper { padding-top:56px;background-image:url('../images/black-hills-mobile-v2.svg'),var(--paper-grain);background-size:100% 60px,240px 240px }
}

/* Connect the client letters to the centered service-area note. */
.testimonials-section { padding-bottom:62px }
#area { padding-top:62px }
@media(max-width:700px) {
 .testimonials-section { padding-bottom:36px }
 #area { padding-top:36px }
}

/* Teddy looks over the sheet, with his paws resting on its front edge. */
.hero-paper { padding-top:124px }
.teddy-peek { position:absolute;top:0;left:38%;width:150px;height:0;transform:translateX(-50%);z-index:2;pointer-events:none }
.teddy-head-window { position:absolute;bottom:-2px;left:0;width:100%;height:110px;overflow:hidden }
.teddy-head-window img { position:relative;top:8px;width:100%;height:auto;transform:translateY(0) }
.teddy-paws { position:absolute;top:-8px;left:0;width:100%;height:auto }
@media(prefers-reduced-motion:no-preference) {
 .teddy-head-window img { animation:teddy-peek 4.8s ease-in-out 1 both }
}
@keyframes teddy-peek {
 0% { transform:translateY(92%) }
 24%,42% { transform:translateY(0) }
 65%,73% { transform:translateY(92%) }
 100% { transform:translateY(0) }
}
@media(max-width:700px) {
 .hero-paper { padding-top:104px }
 .teddy-peek { left:40%;width:120px }
 .teddy-head-window { height:88px }
 .teddy-paws { top:-6px }
}

/* A sleepy companion resting on the lower edge of the footer sheet. */
.paper-footer .has-sleepy-cat { padding-bottom:125px }
.footer-cat { position:absolute;width:140px;height:auto;right:15%;bottom:-33px;overflow:visible;pointer-events:none }
.cat-tail { transform-origin:135px 66px }
@media(prefers-reduced-motion:no-preference) {
 .cat-settle .cat-tail { animation:sleepy-tail 3.8s ease-in-out 1 }
}
@keyframes sleepy-tail {
 0%,100% { transform:rotate(0deg) }
 35% { transform:rotate(-9deg) }
 70% { transform:rotate(4deg) }
}
@media(max-width:700px) {
 .footer-cat { width:115px;right:10%;bottom:-27px }
 .paper-footer .has-sleepy-cat { padding-bottom:110px }
}

/* A small horse beside the service-area stationery. */
.map-horse { position:absolute;width:115px;height:auto;right:-64px;bottom:-8px;pointer-events:none;overflow:visible }
.horse-ear { transform-origin:57px 34px }
@media(prefers-reduced-motion:no-preference) {
 .horse-settle .horse-ear { animation:horse-ear-flick 2.6s ease-in-out 1 }
}
@keyframes horse-ear-flick {
 0%,30%,100% { transform:rotate(0deg) }
 44% { transform:rotate(-17deg) }
 58% { transform:rotate(5deg) }
 72% { transform:rotate(-6deg) }
}
@media(max-width:900px) {
 .map-horse { width:86px;right:4px;bottom:-66px }
 .area-grid .service-area-note { margin-bottom:74px }
}

/* A quiet path between the wordmark and navigation, only with desktop room. */
.nav-paw-trail { display:none }
@media(min-width:1200px) {
 .nav-paw-trail { display:block;flex:1 1 0;min-width:0;height:48px;background:url('../icons/nav-paw-trail.svg?v=2') center / 104px 48px repeat-x;mask-image:linear-gradient(to right,transparent,#000 20px,#000 calc(100% - 20px),transparent);opacity:.25;pointer-events:none }
 .header-inner > .brand,.header-inner > nav { flex-shrink:0 }
}

/* A few quiet steps from the letters toward the service-area paper. */
#area { position:relative }
.area-paw-trail { position:absolute;top:-43px;left:calc(50% - 110px);width:160px;height:100px;background:url('../images/area-paw-trail.svg') center/contain no-repeat;opacity:.23;pointer-events:none }
@media(max-width:700px) {
 .area-paw-trail { top:-25px;left:calc(50% - 66px);width:96px;height:60px;background-size:96px 60px;clip-path:inset(16px 0 0) }
}

/* The fixed hit area stays put while only Teddy's head ducks. */
.teddy-hover-motion { display:block }
@media(min-width:1000px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
 .teddy-peek::before { content:"";position:absolute;left:0;top:-110px;width:100%;height:140px;pointer-events:auto }
 .teddy-hover-motion { transition:transform 420ms cubic-bezier(.22,.61,.36,1) }
 .teddy-peek:hover .teddy-hover-motion { transform:translateY(100%) }
}

/* A wandering route from Jennifer's Polaroid to her introduction. */
.meet-copy { position:relative }
.meet-paw-trail { display:none }
@media(min-width:1100px) {
 .meet-copy { padding-top:140px }
 .meet-paw-trail { display:block;position:absolute;width:275px;height:195px;left:-100px;top:-65px;background:url('../images/meet-paw-trail.svg?v=3') center/contain no-repeat;opacity:.32;pointer-events:none }
}

/* Footsteps cross the lavender edge into services without crossing content. */
.services-section { position:relative }
.team-services-paw-trail { display:none }
@media(min-width:1100px) {
 .team-services-paw-trail { display:block;position:absolute;z-index:1;left:calc(50% - 250px);top:-250px;width:280px;height:335px;background:url('../images/team-services-paw-trail.svg?v=3') center/contain no-repeat;opacity:.32;pointer-events:none }
}

/* Three team Polaroids, with room for the people and their dogs. */
.wide-layout .team-section { display:block;padding-top:70px;padding-bottom:150px }
.team-intro { text-align:center;margin:0 auto 58px }
.team-intro p { max-width:540px;margin-inline:auto }
.team-gallery { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,64px);max-width:1120px;margin-inline:auto;align-items:start }
.team-gallery .team-member { width:100%;max-width:340px;margin-inline:auto }
.team-gallery .team-polaroid { transform:rotate(-2.5deg) }
.team-gallery .team-member:nth-child(2) { margin-top:30px }
.team-gallery .team-member:nth-child(2) .team-polaroid { transform:rotate(1deg) }
.team-gallery .team-member:nth-child(3) .team-polaroid { transform:rotate(3deg) }
.team-gallery .team-polaroid>img { aspect-ratio:3/4;object-position:50% 40% }
.team-gallery .team-member:first-child img { object-position:50% 15% }
.team-gallery .team-polaroid h3 { font-size:clamp(22px,2.3vw,30px) }
.team-services-paw-trail { top:-110px;left:calc(50% - 75px);width:150px;height:180px }
@media(max-width:700px) {
 .wide-layout .team-section { padding-block:50px 65px }
 .team-intro { margin-bottom:40px }
 .team-gallery { grid-template-columns:1fr;gap:40px;padding-inline:12px }
 .team-gallery .team-member:nth-child(2) { margin-top:0 }
 .team-gallery .team-polaroid h3 { font-size:28px }
}

/* Let the desktop team share Jennifer’s section width. */
@media(min-width:701px) {
 .team-gallery { max-width:none }
 .team-gallery .team-member { max-width:440px }
}
