
  :root{
    --bg:#F4F2EA;
    --bg-deep:#1C2A3B;
    --bg-deep-2:#15202C;
    --ink:#1D2024;
    --ink-soft:#4C4F55;
    --cream:#F8F6EF;
    --accent:#93711F;
    --sage:#5C7364;
    --link:#7A5C12;
    --line:#D9D3C1;
    --line-deep:rgba(243,239,226,0.22);
    --on-dark:#F8F6EF;
    --on-dark-soft:#C7CCD2;
    --max:1160px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#171A20;
      --ink:#EAE7DC;
      --ink-soft:#AEB0AC;
      --cream:#1E242C;
      --line:#333A42;
      --link:#D9BE7C;
    }
  }
  :root[data-theme="dark"]{
    --link:#D9BE7C;
    --bg:#171A20;
    --ink:#EAE7DC;
    --ink-soft:#AEB0AC;
    --cream:#1E242C;
    --line:#333A42;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;overflow-x:hidden;scroll-padding-top:76px;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    font-weight:400;
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img,svg{max-width:100%;display:block;}
  a{color:inherit;}
  .wrap{max-width:var(--max);margin:0 auto;padding:0 28px;}
  h1,h2,h3{font-family:'Fraunces', serif;font-weight:500;letter-spacing:-0.01em;margin:0;}

  /* ---------- NAV ---------- */
  header.site-nav{
    position:sticky;top:0;z-index:50;
    background:var(--bg-deep);
    color:var(--on-dark);
  }
  .nav-inner{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 28px;max-width:var(--max);margin:0 auto;
  }
  .wordmark{
    font-family:'Fraunces', serif;font-size:1.15rem;font-weight:500;
    color:var(--on-dark);text-decoration:none;letter-spacing:0.01em;
    display:flex;align-items:center;gap:11px;
  }
  .wordmark img{width:36px;height:36px;border-radius:50%;display:block;}
  .wordmark span{color:#C8B685;}
  nav.links{display:flex;gap:28px;align-items:center;}
  nav.links a{
    color:var(--on-dark);text-decoration:none;font-size:0.92rem;opacity:0.85;
  }
  nav.links a:hover{opacity:1;}
  .cta-btn{
    display:inline-block;background:var(--accent);color:#F8F4E9;
    padding:10px 20px;border-radius:3px;text-decoration:none;
    font-size:0.92rem;font-weight:500;white-space:nowrap;
    transition:background 0.2s ease;
  }
  .cta-btn:hover{background:#7A5F22;}
  .nav-toggle{display:none;}

  /* ---------- HERO ---------- */
  .hero{
    background:var(--bg-deep);
    color:var(--on-dark);
    padding:76px 0 96px;
    position:relative;
    overflow:hidden;
  }
  .hero .wrap{position:relative;z-index:2;}
  .eyebrow{
    font-size:0.95rem;color:#C8B685;margin:0 0 18px;font-weight:500;
  }
  .hero h1{
    font-size:clamp(2.6rem, 6vw, 4.6rem);
    line-height:1.03;
    max-width:11ch;
    color:var(--on-dark);
  }
  .hero h1 em{font-style:italic;font-weight:400;color:#C8B685;}
  .hero p.lede{
    max-width:46ch;
    font-size:1.15rem;
    color:#C7CCD2;
    margin-top:26px;
  }
  .hero-ctas{display:flex;gap:16px;margin-top:38px;flex-wrap:wrap;}
  .ghost-btn{
    display:inline-block;border:1px solid var(--line-deep);color:var(--on-dark);
    padding:10px 20px;border-radius:3px;text-decoration:none;font-size:0.92rem;
  }
  .ghost-btn:hover{border-color:var(--on-dark);}
  .ghost-btn .btn-ico{display:inline-block;width:16px;height:16px;fill:currentColor;vertical-align:-3px;margin-right:8px;}

  .motion-line{margin-top:64px;opacity:0.85;}

  /* ---------- SECTION SCAFFOLD ---------- */
  section{padding:88px 0;}
  .section-head{
    display:flex;justify-content:space-between;align-items:flex-end;
    gap:24px;margin-bottom:52px;border-bottom:1px solid var(--line);padding-bottom:22px;
  }
  .section-head h2{font-size:clamp(1.7rem,3.2vw,2.3rem);}
  .section-head .tag{font-size:0.95rem;color:var(--ink-soft);max-width:34ch;text-align:right;}

  /* ---------- ABOUT ---------- */
  .about-grid{
    display:block;
  }
  .founder-card{
    background:var(--bg-deep);border-radius:4px;padding:34px;color:var(--on-dark);
    display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:44px;align-items:center;max-width:960px;margin:0 auto;
  }
  .founder-tagline{margin:22px 0 0;font-family:'Fraunces',serif;font-style:italic;font-size:1.25rem;line-height:1.4;color:#E9D9A6;}
  .founder-body .founder-bio{margin:12px 0 0;color:#D5D9DE;font-size:1.02rem;line-height:1.75;max-width:52ch;}
  .founder-mark{width:74px;height:74px;margin-bottom:22px;}
  .founder-photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top center;border-radius:4px;margin:0;display:block;}
  .founder-card h3{color:var(--on-dark);font-size:1.7rem;margin:0 0 6px;}
  .founder-card .role{color:#C8B685;font-size:0.92rem;margin:0;}
  .founder-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line-deep);}
  .founder-stats div b{display:block;font-family:'Fraunces',serif;font-size:1.6rem;font-weight:500;color:var(--on-dark);}
  .founder-stats div span{font-size:0.82rem;color:#9FA6AD;}
  .about-text p{margin:0 0 18px;color:var(--ink-soft);font-size:1.03rem;max-width:60ch;}
  .about-text p:first-child{color:var(--ink);font-size:1.12rem;}
  .cred-list{list-style:none;padding:0;margin:26px 0 0;display:flex;flex-wrap:wrap;gap:10px;}
  .cred-list li{
    border:1px solid var(--line);padding:7px 14px;border-radius:20px;font-size:0.85rem;color:var(--ink-soft);
  }

  /* ---------- GALLERY ---------- */
  .gallery-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:16px;
  }
  .gallery-grid figure{
    margin:0;border-radius:4px;overflow:hidden;background:var(--line);
    position:relative;aspect-ratio:3/4;
  }
  .gallery-grid img{
    width:100%;height:100%;object-fit:cover;display:block;
  }
  .gallery-grid figure.tall{grid-row:span 2;}
  @media (max-width:640px){
    .gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
    .gallery-grid figure.tall{grid-row:span 1;}
  }

  /* ---------- SERVICES ---------- */
  .services-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  }
  .service-card{
    background:var(--bg);border:1px solid var(--line);border-radius:6px;
    padding:26px 24px;display:flex;flex-direction:column;gap:14px;
    transition:border-color 0.2s ease, transform 0.2s ease;
  }
  .service-card:hover{border-color:var(--accent);transform:translateY(-2px);}
  .service-icon{
    width:46px;height:46px;border-radius:10px;background:rgba(147,113,31,0.12);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }
  .service-icon svg{width:24px;height:24px;stroke:var(--accent);fill:none;}
  .service-card h4{
    font-family:'Fraunces',serif;font-weight:500;font-size:1.1rem;margin:0;
  }
  .service-card p{margin:0;color:var(--ink-soft);font-size:0.92rem;line-height:1.5;flex-grow:1;}
  .service-link{
    font-size:0.86rem;font-weight:500;color:var(--accent);text-decoration:none;
    display:inline-flex;align-items:center;gap:5px;
  }
  .service-link:hover{text-decoration:underline;}

  /* ---------- APPROACH ---------- */
  .approach-strip{
    background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  }
  .approach-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  }
  .approach-item{
    padding:8px 32px 8px 0;border-left:1px solid var(--line);padding-left:32px;
  }
  .approach-item:first-child{border-left:none;padding-left:0;}
  .approach-icon{
    width:52px;height:52px;border-radius:50%;background:rgba(147,113,31,0.12);
    display:flex;align-items:center;justify-content:center;margin-bottom:18px;
  }
  .approach-icon svg{width:26px;height:26px;stroke:var(--accent);fill:none;}
  .approach-item h3{font-size:1.15rem;margin-bottom:10px;}
  .approach-item p{color:var(--ink-soft);font-size:0.95rem;margin:0;}

  /* ---------- REVIEWS ---------- */
  .review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:36px;}
  .review-card{
    background:var(--cream);border:1px solid var(--line);border-radius:4px;
    padding:26px 24px;
  }
  .review-stars{color:var(--accent);font-size:0.95rem;letter-spacing:2px;margin-bottom:14px;}
  .review-card p{margin:0 0 16px;font-size:0.96rem;color:var(--ink);}
  .review-name{font-size:0.85rem;color:var(--ink-soft);}
  .review-cta{
    display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;
    border-top:1px solid var(--line);padding-top:28px;
  }
  .review-cta p{margin:0;color:var(--ink-soft);font-size:0.95rem;max-width:44ch;}
  .review-cta .btn-row{display:flex;gap:14px;flex-wrap:wrap;}
  .outline-btn{
    display:inline-block;border:1px solid var(--ink);color:var(--ink);
    padding:10px 20px;border-radius:3px;text-decoration:none;font-size:0.9rem;
  }

  /* ---------- LOCATION ---------- */
  .loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
  .loc-block h3{font-size:1.05rem;margin-bottom:10px;color:var(--accent);font-family:'Inter',sans-serif;font-weight:500;}
  .loc-block p{margin:0 0 22px;color:var(--ink-soft);}
  table.hours{border-collapse:collapse;width:100%;max-width:360px;}
  table.hours td{padding:9px 0;border-top:1px solid var(--line);font-size:0.95rem;}
  table.hours td:last-child{text-align:right;color:var(--ink-soft);}
  .map-frame{
    border:1px solid var(--line);border-radius:4px;overflow:hidden;
    background:var(--bg-deep);aspect-ratio:4/3;position:relative;
  }

  /* ---------- CTA / FOOTER ---------- */
  .closing{
    background:var(--bg-deep);color:var(--on-dark);text-align:left;
  }
  .closing h2{
    color:var(--on-dark);font-size:clamp(2rem,4.5vw,3.2rem);max-width:14ch;margin-bottom:26px;
  }
  .closing p{color:#C7CCD2;max-width:48ch;font-size:1.05rem;margin-bottom:34px;}
  footer{
    background:var(--bg-deep-2);color:#9FA6AD;padding:44px 0 30px;font-size:0.88rem;
  }
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;gap:28px;padding-bottom:28px;border-bottom:1px solid var(--line-deep);}
  .footer-social{display:flex;gap:10px;margin-top:16px;}
  .footer-social a{
    width:34px;height:34px;border-radius:50%;border:1px solid var(--line-deep);
    display:flex;align-items:center;justify-content:center;color:#B9AF97;
  }
  .footer-social a:hover{color:var(--on-dark);border-color:var(--on-dark);}
  .footer-social svg{width:16px;height:16px;fill:currentColor;}
  .footer-timings{margin:20px 0 0;font-size:0.95rem;color:#E4DEC9;line-height:1.9;}
  .footer-timings b{color:#FFFFFF;font-weight:600;}
  .footer-timings .ico{display:inline-block;width:15px;height:15px;vertical-align:-2px;margin-right:6px;fill:none;stroke:#C8B685;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
  .footer-timings a{color:#F1D98F;font-weight:500;}
  .footer-timings a:hover{color:#FFFFFF;}
  footer h4{color:var(--on-dark);font-family:'Inter',sans-serif;font-weight:500;font-size:0.92rem;margin:0 0 12px;}
  footer a{text-decoration:none;color:#9FA6AD;}
  footer a:hover{color:var(--on-dark);}
  footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;}
  .footer-bottom{padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

  @media (max-width: 640px){
    .nav-inner{padding:14px 18px;gap:10px;}
    .wordmark{font-size:0.95rem;gap:8px;}
    .wordmark img{width:28px;height:28px;}
    .nav-inner .cta-btn{padding:8px 14px;font-size:0.78rem;}
  }
  @media (max-width: 860px){
    .founder-card{grid-template-columns:1fr;gap:24px;padding:24px 22px;}
    .nav-inner{flex-wrap:wrap;row-gap:10px;}
    .nav-inner nav.links{display:flex;order:3;width:100%;justify-content:space-between;gap:8px;padding-top:10px;border-top:1px solid var(--line-deep);}
    nav.links a{font-size:0.88rem;opacity:0.95;}
    html{scroll-padding-top:112px;}
    .about-grid, .loc-grid{grid-template-columns:1fr;}
    .approach-grid{grid-template-columns:1fr;}
    .approach-item{border-left:none;padding-left:0;padding-top:24px;border-top:1px solid var(--line);}
    .approach-item:first-child{border-top:none;padding-top:0;}
    .service-row{grid-template-columns:1fr;gap:6px;}
    .review-grid{grid-template-columns:1fr;}
    .review-cta{flex-direction:column;align-items:flex-start;}
    .footer-grid{grid-template-columns:1fr 1fr;gap:24px;}
    .footer-grid > div:first-child{grid-column:1 / -1;}
    section{padding:60px 0;}
    .section-head{flex-direction:column;align-items:flex-start;}
    .section-head .tag{text-align:left;}
  }


  /* ---------- CONDITION PAGES ---------- */
  .page-hero{padding:56px 0 64px;}
  .page-hero h1{max-width:20ch;font-size:clamp(2.1rem,4.6vw,3.4rem);}
  .page-hero p.lede{max-width:56ch;}
  .crumbs{font-size:0.85rem;color:var(--on-dark-soft);margin:0 0 22px;display:flex;flex-wrap:wrap;gap:6px;}
  .crumbs a{color:var(--on-dark-soft);text-decoration:underline;text-underline-offset:3px;}
  .crumbs a:hover{color:var(--on-dark);}
  .page-body{padding:64px 0 72px;}
  .page-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px;align-items:start;}
  .prose{min-width:0;max-width:68ch;}
  .prose h2{font-size:clamp(1.4rem,2.6vw,1.8rem);margin:44px 0 14px;}
  .prose h2:first-child{margin-top:0;}
  .prose p{margin:0 0 14px;color:var(--ink);line-height:1.7;}
  .prose ul{margin:0 0 14px;padding:0;list-style:none;display:grid;gap:10px;}
  .prose ul li{position:relative;padding-left:22px;line-height:1.6;color:var(--ink);}
  .prose ul li::before{content:"";position:absolute;left:0;top:0.7em;width:8px;height:2px;background:var(--accent);}
  .prose a{color:var(--link);text-underline-offset:3px;}
  .callout{margin:44px 0 0;padding:24px 24px 20px;border:1px solid var(--line);border-left:4px solid #B3412F;border-radius:4px;background:var(--cream);}
  .callout h2{margin:0 0 10px !important;font-size:1.3rem !important;}
  .callout p{color:var(--ink-soft);}
  .callout ul li::before{background:#B3412F;}
  .faq{margin-top:44px;}
  .faq details{border-bottom:1px solid var(--line);padding:16px 0;}
  .faq details:first-of-type{border-top:1px solid var(--line);}
  .faq summary{cursor:pointer;font-weight:500;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;}
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary::after{content:"+";font-size:1.4rem;color:var(--link);line-height:1;flex:none;}
  .faq details[open] summary::after{content:"\2212";}
  .faq details p{margin:12px 0 0;color:var(--ink-soft);}
  .side{position:sticky;top:92px;display:grid;gap:18px;min-width:0;}
  .side-card{background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:24px;}
  .side-card h3{font-size:1.15rem;margin-bottom:12px;}
  .side-card p{margin:0 0 10px;color:var(--ink-soft);font-size:0.95rem;line-height:1.55;}
  .side-card .cta-btn{display:block;text-align:center;margin-top:14px;}
  .side-card .alt-link{display:block;text-align:center;margin-top:12px;color:var(--link);font-size:0.92rem;}
  .side-card table.hours{width:100%;}
  .side-card ul{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
  .side-card ul a{color:var(--link);font-size:0.95rem;}
  .related-strip{background:var(--cream);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .related-strip h2{font-size:clamp(1.5rem,3vw,2rem);margin-bottom:28px;}
  .service-card .service-link{color:var(--link);}
  .cond-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .cond-card{display:flex;flex-direction:column;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:24px;text-decoration:none;color:var(--ink);transition:border-color .2s ease,transform .2s ease;}
  .cond-card:hover{border-color:var(--accent);transform:translateY(-2px);}
  .cond-card h3{font-size:1.2rem;}
  .cond-card p{margin:0;color:var(--ink-soft);font-size:0.95rem;line-height:1.55;flex:1;}
  .cond-card span{color:var(--link);font-size:0.9rem;font-weight:500;}
  @media (max-width:980px){
    .page-grid{grid-template-columns:1fr;gap:40px;}
    .side{position:static;}
    .cond-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:640px){
    .cond-grid{grid-template-columns:1fr;}
    .page-body{padding:44px 0 52px;}
    .page-hero{padding:40px 0 48px;}
  }
  @media (max-width:860px){
    .footer-grid{grid-template-columns:1fr 1fr;}
  }
  a:focus-visible,summary:focus-visible,.cta-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

  .cond-sub{font-size:clamp(1.25rem,2.4vw,1.55rem);margin:52px 0 22px;padding-top:28px;border-top:1px solid var(--line);}
