/* Karen Murray, MS, LPC
   Layout: Squarespace-era rhythm kept (photo hero / white / slate / white / slate),
   tightened into an editorial grid with a credentials rail and quieter cards. */
:root{
  color-scheme: light;
  /* Color: carried over exactly from the live site */
  --ink:#3F4A49;          /* deep slate teal: text, darkest sections */
  --slate:#495A58;        /* slate teal: alternate dark sections */
  --clay:#D4967D;         /* terracotta: buttons, single accent */
  --clay-deep:#8E513C;    /* clay for text on light backgrounds (WCAG AA) */
  --clay-btn:#A25F47;     /* button fill, white text passes AA */
  --clay-btn-hover:#8E513C;
  --clay-light:#EDC2B0;   /* clay for text on dark backgrounds (AA) */
  --stone:#DCD9D0;        /* warm stone: light alt sections */
  --stone-soft:#EEECE6;   /* lighter stone for panels */
  --paper:#FFFFFF;
  --ink-70:rgba(63,74,73,.86);
  --ink-15:rgba(63,74,73,.16);
  --paper-75:rgba(255,255,255,.78);
  --paper-20:rgba(255,255,255,.22);
  /* Type: Adonis (Adobe Fonts kit oos1aeh) for display, Pontano Sans for text */
  --display:"adonis-web","Libre Baskerville",Georgia,"Times New Roman",serif;
  --text:"Pontano Sans","Helvetica Neue",Arial,sans-serif;
  --base:17px;
  --h1:clamp(2.55rem,5.4vw,4.75rem);
  --h2:clamp(2rem,3.7vw,3.25rem);
  --h3:clamp(1.45rem,2.1vw,1.9rem);
  --lead:clamp(1.15rem,1.5vw,1.32rem);
  --small:.9rem;
  --eyebrow:.78rem;
  /* Layout */
  --max:1240px;
  --gutter:clamp(20px,5vw,64px);
  --sec:clamp(72px,10vw,136px);
  --radius:0px;
}
*,*::before,*::after{box-sizing:border-box}
html{font-size:var(--base);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--text);font-size:1rem;line-height:1.8;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
a:hover{color:var(--clay-deep)}
:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;line-height:1.18;margin:0;text-wrap:balance;letter-spacing:-.005em}
h1{font-size:var(--h1);line-height:1.1}
h2{font-size:var(--h2)}
h3{font-size:var(--h3)}
h1 em,h2 em,h3 em{font-style:italic;font-weight:700}
p{margin:0;max-width:62ch;text-wrap:pretty}
.lead{font-size:var(--lead);line-height:1.75}
.eyebrow{font-size:var(--eyebrow);letter-spacing:.16em;text-transform:uppercase;margin:0;display:flex;align-items:center;gap:.9em}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.stack{display:flex;flex-direction:column;gap:1.35rem}
.stack-lg{display:flex;flex-direction:column;gap:2rem}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.sec{padding-block:var(--sec)}
.on-ink{background:var(--ink);color:var(--paper)}
.on-slate{background:var(--slate);color:var(--paper)}
.on-stone{background:var(--stone);color:var(--ink)}
.on-soft{background:var(--stone-soft);color:var(--ink)}
.on-ink a:hover,.on-slate a:hover{color:var(--stone)}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:16px;z-index:100;background:var(--paper);padding:.6em 1em}

/* Buttons: square, uppercase, tracked (from the original) */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;font-family:var(--text);font-size:.88rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding:1.15em 2.1em;background:var(--clay-btn);color:var(--paper);border:1px solid var(--clay-btn);border-radius:var(--radius);cursor:pointer;transition:background .25s,color .25s,border-color .25s;line-height:1.2}
.btn:hover{background:var(--clay-btn-hover);border-color:var(--clay-btn-hover);color:var(--paper)}
.btn-ghost{background:transparent;color:inherit;border-color:currentColor}
.btn-ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.textlink{font-size:.88rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:.25em}

/* Header */
.site-header{position:absolute;inset:0 0 auto 0;z-index:20;color:var(--paper);padding-top:env(safe-area-inset-top,0px)}
.site-header.solid{position:relative;background:var(--ink)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:26px}
.brand{font-family:var(--display);font-size:clamp(1.3rem,1.9vw,1.6rem);text-decoration:none;white-space:nowrap;line-height:1.2}
.brand:hover{color:inherit}
.nav-links{display:flex;align-items:center;gap:clamp(18px,2.4vw,36px);list-style:none;margin:0;padding:0}
.nav-links a{text-decoration:none;font-size:1rem}
.nav-links a[aria-current="page"]{border-bottom:1px solid currentColor;padding-bottom:2px}
.nav-cta{padding:.95em 1.6em}
.menu-btn{display:none;background:none;border:0;color:inherit;padding:8px;cursor:pointer}
.menu-btn span{display:block;width:26px;height:1px;background:currentColor;margin:7px 0;transition:transform .3s}
@media (max-width:880px){
  .menu-btn{display:block}
  .nav-links{position:fixed;inset:0;background:var(--ink);flex-direction:column;justify-content:center;gap:28px;font-size:1.3rem;transform:translateY(-100%);transition:transform .45s cubic-bezier(.2,.7,.2,1);z-index:30}
  .nav-links a{font-family:var(--display);font-size:1.8rem}
  .nav-links .nav-cta{font-family:var(--text);font-size:.88rem;margin-top:12px}
  .nav-open .nav-links{transform:none}
  .menu-btn{position:relative;z-index:40}
  .nav-open .menu-btn span:first-child{transform:translateY(4px) rotate(45deg)}
  .nav-open .menu-btn span:last-child{transform:translateY(-4px) rotate(-45deg)}
}

/* Hero */
.hero{position:relative;color:var(--paper);background:var(--ink);overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:62% 40%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(53,63,62,.86) 0%,rgba(53,63,62,.62) 45%,rgba(53,63,62,.18) 100%),linear-gradient(0deg,rgba(53,63,62,.55),transparent 40%)}
.hero-inner{position:relative;padding-top:clamp(150px,20vw,230px);padding-bottom:clamp(80px,11vw,150px);display:flex;flex-direction:column;gap:1.8rem;max-width:var(--max)}
.hero h1{max-width:13.5em}
.hero .lead{color:var(--paper-75);max-width:36em}
.page-hero .hero-inner{padding-top:clamp(140px,17vw,200px);padding-bottom:clamp(64px,8vw,110px)}

/* Credentials rail */
.creds{border-bottom:1px solid var(--ink-15)}
.creds ul{list-style:none;margin:0;padding:22px 0;display:flex;flex-wrap:wrap;gap:10px 30px;justify-content:flex-start;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-70)}
.creds li{display:flex;align-items:center;gap:10px}
.creds li::before{content:"";width:5px;height:5px;background:var(--clay);border-radius:50%}

/* Split layouts */
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,6vw,96px);align-items:center}
.split.rev{grid-template-columns:minmax(0,6fr) minmax(0,5fr)}
.split.rev .split-media{order:2}
.split > *{min-width:0}
@media (max-width:860px){.split,.split.rev{grid-template-columns:1fr}.split.rev .split-media{order:0}}
.portrait{position:relative}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 22%}
.portrait figcaption{font-size:var(--small);color:var(--ink-70);margin-top:12px;letter-spacing:.04em}
.photo img{width:100%;object-fit:cover}
.photo.tall img{aspect-ratio:4/5}
.photo.wide img{aspect-ratio:3/2}
.links-inline{display:flex;flex-wrap:wrap;gap:22px;align-items:center}

/* Approach */
.approach{position:relative;overflow:hidden}
.approach .quote{font-family:var(--display);font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.18;max-width:17em;text-wrap:balance}
.approach .quote em{font-weight:700}
.approach-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(32px,6vw,90px);align-items:end}
@media (max-width:860px){.approach-grid{grid-template-columns:1fr}}
.approach p{color:var(--paper-75)}

/* Services */
.svc-head{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:clamp(36px,5vw,64px)}
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--paper-20)}
.svc{padding:clamp(28px,3vw,44px) clamp(20px,2.4vw,36px) clamp(32px,3.4vw,48px);border-right:1px solid var(--paper-20);display:flex;flex-direction:column;gap:1.1rem}
.svc:first-child{padding-left:0}
.svc:last-child{border-right:0;padding-right:0}
.svc svg{width:46px;height:46px;stroke:var(--clay);fill:none;stroke-width:1.3}
.svc h3{font-size:clamp(1.35rem,1.8vw,1.65rem)}
.svc p{color:var(--paper-75);font-size:.98rem}
.svc .tag{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--clay-light)}
@media (max-width:860px){.svc-grid{grid-template-columns:1fr}.svc{border-right:0;border-bottom:1px solid var(--paper-20);padding-inline:0}}

/* Where to begin (interactive guide) */
.guide{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,90px);align-items:start}
.guide > *{min-width:0}
@media (max-width:860px){.guide{grid-template-columns:1fr}}
.guide-card{background:var(--paper);border:1px solid var(--ink-15);padding:clamp(24px,3.4vw,48px)}
.g-step{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.g-step + .g-step{margin-top:30px}
.g-step legend{font-family:var(--display);font-size:1.35rem;margin-bottom:6px;padding:0}
.g-step legend small{display:block;font-family:var(--text);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-70);margin-bottom:6px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;padding:.75em 1.15em;border:1px solid var(--ink-15);font-size:.98rem;line-height:1.3;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
.chip span:hover{border-color:var(--ink)}
.chip input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.chip input:focus-visible + span{outline:2px solid var(--clay);outline-offset:2px}
.g-result{margin-top:34px;padding-top:30px;border-top:1px solid var(--ink-15);display:flex;flex-direction:column;gap:14px}
.g-result h3{font-size:clamp(1.5rem,2.2vw,1.9rem)}
.g-result .note{font-size:var(--small);color:var(--ink-70)}
.g-result[data-state="idle"] .g-filled{display:none}
.g-result[data-state="ready"] .g-idle{display:none}
.g-result .g-filled{display:flex;flex-direction:column;gap:14px;animation:rise .45s ease both}
@keyframes rise{from{transform:translateY(8px)}to{transform:none}}

/* Place / visit */
.visit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
@media (max-width:760px){.visit{grid-template-columns:1fr}}
.visit-card{display:flex;flex-direction:column;gap:16px}
.visit-card img{aspect-ratio:3/2;object-fit:cover;width:100%}
.visit-card h3{font-size:clamp(1.4rem,2vw,1.75rem)}
.addr{font-style:normal;line-height:1.7}

/* FAQ */
.faq{border-top:1px solid var(--ink-15)}
.faq details{border-bottom:1px solid var(--ink-15)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;font-family:var(--display);font-size:clamp(1.2rem,1.7vw,1.45rem);line-height:1.35}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:14px;height:14px;background:linear-gradient(var(--clay-deep),var(--clay-deep)) center/14px 1px no-repeat,linear-gradient(var(--clay-deep),var(--clay-deep)) center/1px 14px no-repeat;transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:0 0 28px;display:flex;flex-direction:column;gap:12px}
.faq .ans p{max-width:68ch}
.faq-layout{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(32px,6vw,90px)}
.faq-layout > *{min-width:0}
@media (max-width:860px){.faq-layout{grid-template-columns:1fr}}

/* CTA band */
.cta-band{text-align:left}
.cta-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end}
@media (max-width:760px){.cta-grid{grid-template-columns:1fr}}
.contact-lines{display:flex;flex-wrap:wrap;gap:8px 32px;font-size:1.05rem}
.contact-lines a{text-decoration:none;border-bottom:1px solid var(--ink-15)}

/* Contact page */
.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ink-15)}
.contact-grid > div{padding:32px 28px 36px 0;display:flex;flex-direction:column;gap:12px;min-width:0}
.contact-grid > div + div{padding-left:28px;border-left:1px solid var(--ink-15)}
.contact-grid .big{font-family:var(--display);font-size:clamp(1.3rem,2vw,1.7rem);line-height:1.3;word-break:break-word;text-decoration:none}
@media (max-width:860px){.contact-grid{grid-template-columns:1fr}.contact-grid > div + div{padding-left:0;border-left:0;border-top:1px solid var(--ink-15)}}
.copy-btn{align-self:flex-start;background:none;border:0;padding:0;font-family:var(--text);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-70);cursor:pointer;border-bottom:1px solid var(--ink-15)}
.copy-btn:hover{color:var(--clay-deep)}

/* Service detail page */
.svc-detail{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(28px,6vw,90px);padding-block:clamp(48px,6vw,80px);border-top:1px solid var(--ink-15)}
.svc-detail:first-of-type{border-top:0}
.svc-detail > *{min-width:0}
.svc-detail .label{display:flex;flex-direction:column;gap:16px}
.svc-detail svg{width:48px;height:48px;stroke:var(--clay-deep);fill:none;stroke-width:1.3}
.svc-detail ul{margin:0;padding-left:1.1em;display:flex;flex-direction:column;gap:6px;max-width:60ch}
@media (max-width:860px){.svc-detail{grid-template-columns:1fr}}

/* Footer */
.site-footer{background:var(--ink);color:var(--paper);padding-top:clamp(64px,8vw,104px);padding-bottom:calc(36px + env(safe-area-inset-bottom,0px))}
.foot-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,2.4fr) minmax(0,3fr) minmax(0,1.6fr);gap:40px}
.foot-grid > *{min-width:0}
.foot-grid h4{font-family:var(--text);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--paper-75);margin-bottom:14px;font-weight:400}
.foot-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.foot-grid a{text-decoration:none}
.foot-brand{font-family:var(--display);font-size:1.7rem;line-height:1.2}
.foot-note{margin-top:56px;padding-top:24px;border-top:1px solid var(--paper-20);display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:.85rem;color:var(--paper-75)}
.foot-note p{max-width:70ch}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid > :first-child{grid-column:1/-1}}

/* Quiet scroll reveal (visible at rest; only adds lift when JS runs) */
.js .reveal{transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.js .reveal.pre{transform:translateY(22px)}
.foot-grid a,.contact-lines a{overflow-wrap:anywhere}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}
.foot-legal{margin-top:56px;padding-top:28px;border-top:1px solid var(--paper-20);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 40px;max-width:760px}
.foot-legal h4{font-family:var(--text);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--paper-75);margin-bottom:12px;font-weight:400}
.foot-legal ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:.92rem}
.foot-legal a{text-decoration:none}
@media (max-width:560px){.foot-legal{grid-template-columns:1fr}}
.foot-legal + .foot-note{margin-top:32px}
.res{display:flex;flex-direction:column;gap:36px}
.res-group h3{font-size:clamp(1.25rem,1.7vw,1.45rem);margin-bottom:10px}
.res-group ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink-15)}
.res-group li{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--ink-15);flex-wrap:wrap}
.res-group li a{font-variant-numeric:tabular-nums;text-decoration:none;color:var(--clay-deep);white-space:nowrap}

/* ===== Enhancements ===== */
/* Sticky header: transparent over the hero, settles into solid slate on scroll */
.site-header.fixed{position:fixed;transition:background .4s,box-shadow .4s,padding .4s}
.site-header.fixed .nav{transition:padding .4s}
.site-header.scrolled{background:rgba(63,74,73,.96);box-shadow:0 1px 0 rgba(255,255,255,.08)}
.site-header.scrolled .nav{padding-block:14px}
@supports (backdrop-filter:blur(8px)){.site-header.scrolled{background:rgba(63,74,73,.86);backdrop-filter:blur(10px) saturate(1.1);-webkit-backdrop-filter:blur(10px) saturate(1.1)}}

/* Hero: slow settle of the photo and a staggered rise of the text on load */
.js .hero-media img{animation:settle 2.4s cubic-bezier(.2,.7,.2,1) both}
@keyframes settle{from{transform:scale(1.07)}to{transform:scale(1)}}
.js .hero-inner > *{animation:rise-in 1s cubic-bezier(.2,.7,.2,1) both}
.js .hero-inner > *:nth-child(2){animation-delay:.12s}
.js .hero-inner > *:nth-child(3){animation-delay:.24s}
.js .hero-inner > *:nth-child(4){animation-delay:.36s}
@keyframes rise-in{from{transform:translateY(16px)}to{transform:none}}

/* Quote fills in word by word as it scrolls through view (readable at rest) */
.js [data-fill] .w{opacity:var(--o,.32);transition:opacity .25s linear}

/* Photo drift on desktop */
@media (hover:hover) and (min-width:861px){
  .js [data-drift]{overflow:hidden}
  .js [data-drift] img{transform:translateY(var(--dy,0)) scale(1.08);will-change:transform}
}

/* Button and link micro-interactions */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;inset:0;background:rgba(255,255,255,.14);transform:translateX(-101%);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.btn:hover::after{transform:none}
.textlink{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;border-bottom-color:var(--ink-15);transition:background-size .4s cubic-bezier(.2,.7,.2,1)}
.on-ink .textlink,.on-slate .textlink{border-bottom-color:var(--paper-20)}
.textlink:hover{background-size:100% 1px}
.svc{transition:background .4s}
@media (hover:hover){.svc:hover{background:rgba(255,255,255,.03)}.svc svg{transition:transform .6s cubic-bezier(.2,.7,.2,1)}.svc:hover svg{transform:translateY(-3px)}}
.portrait img,.photo img,.visit-card img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover){.visit-card:hover img{transform:scale(1.03)}.visit-card{overflow:hidden}}
.visit-card > img{overflow:hidden}

/* Mobile quick-contact bar */
.mbar{display:none}
@media (max-width:860px){
  .mbar{display:grid;grid-template-columns:auto auto 1fr;gap:8px;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:25;padding:8px;background:rgba(63,74,73,.92);color:var(--paper);box-shadow:0 12px 40px -12px rgba(0,0,0,.45);transform:translateY(160%);transition:transform .5s cubic-bezier(.2,.7,.2,1)}
  @supports (backdrop-filter:blur(8px)){.mbar{background:rgba(63,74,73,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}}
  .mbar.show{transform:none}
  .mbar a{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;padding:14px 14px;min-height:48px}
  .mbar svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
  .mbar .mbar-cta{background:var(--clay-btn);color:var(--paper)}
  .site-footer{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}
  .nav-open ~ main .mbar,.nav-open + main + footer + .mbar{display:none}
}

/* Mobile menu: links rise in one after another */
@media (max-width:880px){
  .nav-links li{transform:translateY(14px);opacity:0;transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .5s}
  .nav-open .nav-links li{transform:none;opacity:1}
  .nav-open .nav-links li:nth-child(2){transition-delay:.05s}
  .nav-open .nav-links li:nth-child(3){transition-delay:.1s}
  .nav-open .nav-links li:nth-child(4){transition-delay:.15s}
  .nav-open .nav-links li:nth-child(5){transition-delay:.2s}
  .site-header.scrolled .nav{padding-block:12px}
}
/* Phones: tighter hero, larger tap targets */
@media (max-width:560px){
  .hero-inner{padding-top:128px;padding-bottom:64px;gap:1.4rem}
  .btn-row .btn{flex:1 1 auto}
  .chip span{padding:.85em 1.1em}
  .faq summary{padding:20px 0}
}
@media (prefers-reduced-motion:reduce){.js [data-fill] .w{opacity:1}}

/* Joshua Center band */
.tjc{background:var(--stone-soft);border-bottom:1px solid var(--ink-15)}
.tjc-inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(16px,3vw,48px);align-items:center;padding-block:26px}
.tjc-mark{font-family:var(--display);font-size:clamp(1.25rem,1.8vw,1.55rem);text-decoration:none;white-space:nowrap;padding-right:clamp(16px,3vw,48px);border-right:1px solid var(--ink-15)}
.tjc p{color:var(--ink-70);font-size:.98rem;max-width:60ch}
@media (max-width:860px){.tjc-inner{grid-template-columns:1fr;gap:10px}.tjc-mark{border-right:0;padding-right:0}.tjc .textlink{justify-self:start}}
.svc-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:auto;padding-top:6px}
.svc-links a{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;text-decoration:none;color:var(--paper);border-bottom:1px solid var(--paper-20);padding-bottom:3px}
.svc-links a:hover{color:var(--clay-light);border-color:var(--clay-light)}

/* Single service pages */
.svc-page{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(36px,6vw,96px);align-items:start}
.svc-page > *{min-width:0}
.svc-page .stack p:first-child{font-size:var(--lead);line-height:1.75}
@media (max-width:860px){.svc-page{grid-template-columns:1fr}}
.expect{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink-15)}
.expect li{padding:18px 0 18px 30px;border-bottom:1px solid var(--ink-15);position:relative}
.expect li::before{content:"";position:absolute;left:0;top:1.55em;width:14px;height:1px;background:var(--clay-deep)}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,4vw,56px)}
.facts > div{display:flex;flex-direction:column;gap:10px;min-width:0}
@media (max-width:760px){.facts{grid-template-columns:1fr}}
.related{display:flex;flex-direction:column;gap:22px}
.rel-row{display:flex;flex-wrap:wrap;gap:12px}
.rel{display:flex;align-items:center;gap:12px;padding:14px 20px 14px 16px;border:1px solid var(--ink-15);background:var(--paper);text-decoration:none;font-family:var(--display);font-size:1.12rem;transition:border-color .3s}
.rel:hover{border-color:var(--ink);color:var(--ink)}
.rel svg{width:30px;height:30px;stroke:var(--clay-deep);fill:none;stroke-width:1.4;flex:none}
.disclaimer{font-size:.88rem;color:var(--ink-70);max-width:80ch}

.cap-fig{margin:0;position:relative;overflow:hidden}
.cap-fig img{aspect-ratio:3/2;object-fit:cover;width:100%}
.cap-fig figcaption{position:absolute;left:12px;bottom:10px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--paper);text-shadow:0 1px 8px rgba(0,0,0,.45)}

.credit{font-size:.72rem;color:var(--ink-70);margin-top:4px}
.credit a{color:inherit}

/* Phone refinements */
@media (max-width:880px){
  .brand{font-size:clamp(1rem,5vw,1.45rem)}
  .nav{gap:12px}
  .menu-btn{flex:none;padding:12px 8px;margin-right:-8px}
}
@media (max-width:760px){
  .foot-grid a,.foot-legal a,.foot-note a{display:inline-block;padding-block:9px}
  .foot-grid ul,.foot-legal ul{gap:0}
  .textlink{display:inline-block;padding-top:12px}
  .copy-btn{padding-block:12px 4px}
  .links-inline{gap:4px 22px}
  .svc-links a{padding-top:10px}
  .contact-lines a{display:inline-block;padding-block:10px 4px}
  .eyebrow a{display:inline-block;padding-block:10px}
}
@media (max-width:760px){.res-group li a{padding:8px 0 8px 16px;margin-block:-8px}.brand{padding-block:10px}}
.eyebrow{align-items:flex-start}
.eyebrow::before{margin-top:.72em;flex:none}
@media (max-width:860px){.mbar a{white-space:nowrap}}
@media (max-width:380px){.mbar{grid-template-columns:auto auto 1fr;gap:4px;left:8px;right:8px}.mbar a{padding:14px 10px;letter-spacing:.08em;font-size:.76rem;gap:6px}}
