/* Holly Davis Art: site.css
   Palette is the logo: the painted bird of paradise (leaf green, sage, coral-orange petals, sun gold),
   the periwinkle "ART SERVICES AND GALLERY" lettering, and the peach watercolor bed behind the badge.
   Pass 1 (Holly: "a little masculine… add more art or colors"): the deep surfaces are now the logo's
   periwinkle taken down to dusk violet. The --leaf / --leaf-d / --leaf-dd names are kept so nothing
   else had to move; they ARE violet now. Leaf green lives on in sage, photos and the paintings. See §W.
   Brief hexes #d8c0a8 / #c0a890 / #a89078 (the watercolor bed's sand tones) are --sand / --sand-2 / --sand-3.
   Type: Caprasimo (display) + Nunito Sans (body, and every digit in display type).
   Native scroll only. Motion = CSS + one IntersectionObserver. */

@font-face{font-family:"Caprasimo";src:url(/fonts/caprasimo.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}
@font-face{font-family:"Nunito Sans";src:url(/fonts/nunitosans.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}
/* Caprasimo's figures are old-style; set digits in Nunito Sans so phone numbers sit on the line */
@font-face{font-family:"HD Figures";src:url(/fonts/nunitosans.woff2) format("woff2");font-weight:400 900;font-display:swap;unicode-range:U+0030-0039}

:root{
  --paper:#fbf3ea;
  --paper-2:#f6e8da;
  --peach:#f8e6d6;
  --sand:#d8c0a8;
  --sand-2:#c0a890;
  --sand-3:#a89078;
  --ink:#251e3a;
  --ink-2:#4f4763;
  --leaf:#3d3477;
  --leaf-d:#2c2554;
  --leaf-dd:#221c42;
  --sage:#7d8f7b;
  --sage-l:#e3e9dd;
  --coral:#e8693f;
  --coral-d:#c4512a;
  --coral-dd:#b0441d;
  --coral-l:#f6a989;
  --sun:#f4c55e;
  --peri:#5656a6;
  --peri-d:#43438a;
  --peri-l:#c3c6f4;
  --cream:#f6eee3;
  --fog:#d8d3ea;
  --line:rgba(37,30,58,.14);
  --line-l:rgba(246,238,227,.18);
  --display:"HD Figures","Caprasimo",Georgia,"Times New Roman",serif;
  --body:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --gut:max(clamp(18px,5vw,44px),env(safe-area-inset-left,0px),env(safe-area-inset-right,0px));
  --max:1240px;
  --edge:max(var(--gut),calc((var(--vw,100vw) - var(--max)) / 2));
  --hdr-h:68px;
  --r:6px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --sec:clamp(64px,10vw,124px);
  color-scheme:light;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--hdr-h) + 16px);-webkit-tap-highlight-color:rgba(232,105,63,.18)}
@media (pointer:fine){html{overscroll-behavior-y:none}}
a,button,summary,label,input,select,textarea{touch-action:manipulation}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6;font-weight:400;overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,video,svg{display:block;max-width:100%}
img{height:auto}
figure,blockquote{margin:0}
:where(ul,ol)[role="list"]{list-style:none;margin:0;padding:0}
h1,h2,h3,h4,p{margin:0}
a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
address{font-style:normal}
details>summary{list-style:none}
details>summary::-webkit-details-marker{display:none}
:focus-visible{outline:3px solid var(--peri);outline-offset:3px;border-radius:2px}
.t-leaf :focus-visible,.hero :focus-visible,.phero :focus-visible,.t-peri :focus-visible,.ftr :focus-visible,.hdr :focus-visible,.drawer :focus-visible,.moment :focus-visible{outline-color:var(--sun)}
::selection{background:var(--coral-l);color:var(--ink)}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
:where(a,button,span,p,li,label)>svg:where(:not([width])){width:1.1em;height:1.1em;flex:none}
.tel{white-space:nowrap}

.skip{position:fixed;left:12px;top:-60px;z-index:200;background:var(--sun);color:var(--ink);padding:10px 16px;border-radius:var(--r);font-weight:800;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}

/* ---------- layout ---------- */
.wrap{width:100%;max-width:calc(var(--max) + 2 * var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.sec{position:relative;padding-block:var(--sec)}
.sec-tight{padding-block:clamp(48px,7vw,84px)}
.t-paper{background:var(--paper)}
.t-peach{background:var(--paper-2)}
.t-sand{background:var(--sand)}
.t-sage{background:var(--sage-l)}
.t-leaf{background:var(--leaf-d);color:var(--cream)}
.t-ink{background:var(--leaf-dd);color:var(--cream)}
.t-peri{background:var(--peri);color:#fff}
.t-coral{background:var(--coral);color:var(--ink)}

/* painted, ragged top edge on colored bands (a dry-brush stroke) */
.edge::before{content:"";position:absolute;left:0;right:0;top:-17px;height:18px;background:inherit;pointer-events:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 18' preserveAspectRatio='none'%3E%3Cpath d='M0 18V10c22-3 40 2 63-1s39-7 66-4 37 6 62 3 47-8 74-5 33 7 58 5 50-9 81-6 38 6 66 4 44-6 73-4 34 5 61 2 51-8 79-5 42 8 70 5 39-6 65-5 46 7 74 4 41-7 69-5 35 6 60 3 44-5 70-3 30 4 52 1 36-4 58-1 21 3 38 0V18z' fill='%23000'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 18' preserveAspectRatio='none'%3E%3Cpath d='M0 18V10c22-3 40 2 63-1s39-7 66-4 37 6 62 3 47-8 74-5 33 7 58 5 50-9 81-6 38 6 66 4 44-6 73-4 34 5 61 2 51-8 79-5 42 8 70 5 39-6 65-5 46 7 74 4 41-7 69-5 35 6 60 3 44-5 70-3 30 4 52 1 36-4 58-1 21 3 38 0V18z' fill='%23000'/%3E%3C/svg%3E") center/100% 100% no-repeat}

/* ---------- type ---------- */
.h-display,h1,h2,.h2,.svc-txt h3,.step h3,.quote-name,.brand-wm b,.moment-q,.d-big,.ftr h2{font-family:var(--display);font-weight:800;font-synthesis:none;letter-spacing:-.005em}
h2,.h2{font-size:clamp(2.05rem,7.6vw,3.65rem);line-height:1.02;text-wrap:balance}
h3{font-size:clamp(1.18rem,4.4vw,1.42rem);line-height:1.2;font-weight:800}
.ac{color:var(--coral-d)}
.t-leaf .ac,.t-ink .ac,.hero .ac,.phero .ac,.moment .ac{color:var(--sun)}
.t-peri .ac{color:var(--sun)}
.t-coral .ac{color:var(--leaf-dd)}
.kicker{display:inline-flex;align-items:center;gap:.6em;flex-wrap:wrap;font-family:var(--body);font-weight:800;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--peri);margin-bottom:16px}
.kicker::before{content:"";width:12px;height:12px;flex:none;border-radius:58% 42% 52% 48%/48% 56% 44% 52%;background:var(--coral);transform:rotate(-12deg)}
.t-leaf .kicker,.t-ink .kicker,.hero .kicker,.phero .kicker,.moment .kicker{color:var(--peri-l)}
.t-peri .kicker{color:#fff}
.t-peri .kicker::before{background:var(--sun)}
.t-coral .kicker{color:var(--leaf-dd)}
.t-coral .kicker::before{background:var(--leaf-dd)}
.lede{font-size:clamp(1.08rem,3.6vw,1.24rem);line-height:1.55;color:var(--ink-2);max-width:56ch}
.t-leaf .lede,.t-ink .lede{color:var(--fog)}
.t-peri .lede{color:#eceefe}
.prose p+p,.prose .para+p,.prose p+.para,.prose .para+.para{margin-top:1em}
.prose p{max-width:66ch}
.para{max-width:66ch}
.para p+p{margin-top:.75em}
.para-lede{max-width:56ch}
.para-lede p{font-size:clamp(1.08rem,3.6vw,1.24rem);line-height:1.55}
@media (min-width:900px){
  .para p{display:inline}
  .para p+p{margin-top:0}
  .para p+p::before{content:" "}
}
.prose a:not(.btn){color:var(--coral-dd);font-weight:700}
.t-leaf .prose a:not(.btn),.t-ink .prose a:not(.btn){color:var(--sun)}
.slashes{font-weight:800;letter-spacing:.02em}
.slashes i{font-style:normal;color:var(--coral-d);padding-inline:.15em}
.fine{font-size:.9rem;color:var(--ink-2)}

.sec-head{display:grid;gap:14px;margin-bottom:clamp(30px,5vw,54px);grid-template-columns:minmax(0,1fr)}
.sec-head .lede{margin-top:2px}
.sec-head.center{text-align:center;justify-items:center}
@media (min-width:960px){
  .sec-head.duo{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:end;gap:48px}
}

/* ---------- buttons ---------- */
.btn{--bg:var(--coral);--fg:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:52px;padding:13px 22px;border-radius:var(--r);border:2px solid var(--bg);background:var(--bg);color:var(--fg);font-family:var(--body);font-weight:800;font-size:1rem;line-height:1.15;text-decoration:none;text-align:center;transition:transform .18s var(--ease),background-color .18s,border-color .18s,color .18s,box-shadow .18s;touch-action:manipulation}
.btn svg{width:1.15em;height:1.15em}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px -12px rgba(34,28,66,.55)}
.btn:active{transform:translateY(0)}
.btn-coral:hover{--bg:#f07a52}
.btn-leaf{--bg:var(--leaf);--fg:#fff}
.btn-leaf:hover{--bg:var(--leaf-d)}
.btn-ghost{--bg:transparent;--fg:#fff;border-color:rgba(255,255,255,.7)}
.btn-ghost:hover{--bg:rgba(255,255,255,.12);border-color:#fff}
.btn-line{--bg:transparent;--fg:var(--ink);border-color:var(--ink)}
.btn-line:hover{--bg:var(--ink);--fg:var(--paper)}
.btn-sun{--bg:var(--sun);--fg:var(--ink)}
.btn-sun:hover{--bg:#f7d27e}
.prose a.btn{color:var(--fg)}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.link{display:inline-flex;align-items:center;gap:.45em;font-weight:800;color:var(--coral-dd);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:2px}
.link svg{width:1em;height:1em;transition:transform .2s var(--ease)}
.link:hover svg{transform:translateX(4px)}
.t-leaf .link,.t-ink .link,.t-peri .link,.moment .link,.hero .link,.phero .link{color:var(--sun)}

/* ---------- header ---------- */
.hdr{position:fixed;inset:0 0 auto;z-index:100;height:calc(var(--hdr-h) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);color:#fff;transition:background-color .25s,transform .3s var(--ease),box-shadow .25s}
.hdr-in{height:var(--hdr-h);display:flex;align-items:center;gap:10px;width:100%;max-width:calc(var(--max) + 2 * var(--gut));margin-inline:auto;padding-inline:var(--gut)}
.hdr.stuck,body:not(.pg-home) .hdr{background:var(--leaf-dd);box-shadow:0 1px 0 rgba(255,255,255,.06)}
.hdr.tuck{transform:translateY(-102%)}
.hdr.tuck:focus-within{transform:none}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0;margin-right:auto}
.brand img{height:50px;width:auto;flex:none}
.brand-wm{display:flex;flex-direction:column;line-height:1;min-width:0}
.brand-wm b{font-size:1.18rem;font-weight:800;letter-spacing:0;white-space:nowrap}
.brand-wm small{font-size:.6rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--peri-l);margin-top:5px;white-space:nowrap}
.nav{display:none}
.hdr-call{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:46px;height:46px;padding:0 12px;border-radius:var(--r);background:var(--coral);color:var(--ink);font-weight:800;text-decoration:none;flex:none;transition:background-color .18s}
.hdr-call:hover{background:#f07a52}
.hdr-call svg{width:20px;height:20px}
.hdr-call .lbl{display:none}
.burger{width:46px;height:46px;display:grid;place-items:center;border:1.5px solid rgba(255,255,255,.45);border-radius:var(--r);background:transparent;flex:none;padding:0}
.burger span,.burger span::before,.burger span::after{display:block;width:20px;height:2px;background:#fff;border-radius:2px;transition:transform .25s var(--ease),opacity .2s;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-6px}
.burger span::after{top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg)}
.burger[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg)}
@media (min-width:560px){.hdr-call .lbl{display:inline}}
@media (min-width:1120px){
  .burger{display:none}
  .nav{display:flex;align-items:center;gap:2px;margin-right:10px}
  .nav>a,.dd>button{display:inline-flex;align-items:center;gap:5px;height:44px;padding:0 12px;border:0;background:transparent;color:#fff;font-weight:700;font-size:.97rem;text-decoration:none;border-radius:var(--r);transition:background-color .18s}
  .nav>a:hover,.dd>button:hover,.dd.open>button{background:rgba(255,255,255,.1)}
  .nav>a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--sun);border-radius:0}
  .dd{position:relative}
  .dd>button svg{width:14px;height:14px;transition:transform .2s}
  .dd.open>button svg{transform:rotate(180deg)}
  .dd-panel{position:absolute;top:calc(100% + 8px);left:0;min-width:290px;padding:10px;background:var(--paper);color:var(--ink);border-radius:var(--r);box-shadow:0 24px 48px -18px rgba(34,28,66,.45);display:none}
  .dd.open .dd-panel{display:grid}
  .dd-panel a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;border-radius:4px;text-decoration:none;font-weight:700}
  .dd-panel a small{font-weight:600;color:var(--ink-2);font-size:.8rem}
  .dd-panel a:hover{background:var(--paper-2)}
  .dd-panel .dd-all{margin-top:6px;border-top:1px solid var(--line);border-radius:0 0 4px 4px;color:var(--coral-dd);justify-content:flex-start}
}

/* phone drawer */
.drawer{position:fixed;inset:0;z-index:90;background:var(--leaf-dd);color:var(--cream);padding:calc(var(--hdr-h) + env(safe-area-inset-top,0px) + 14px) var(--gut) calc(30px + env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;transition:opacity .25s,visibility 0s .25s}
.drawer.open{opacity:1;visibility:visible;transition:opacity .25s}
.drawer nav{display:grid;gap:4px;max-width:560px;margin-inline:auto}
.d-big{font-size:1.75rem;line-height:1.15;padding:8px 0;text-decoration:none;color:#fff}
.d-group{font-size:.74rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--peri-l);margin-top:14px}
.d-links{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 16px;padding-bottom:6px}
.d-links a{padding:9px 0;text-decoration:none;font-weight:700;color:var(--fog);border-bottom:1px solid var(--line-l)}
.drawer .btns{margin-top:22px}
.drawer .btn{flex:1 1 200px}

/* ---------- home hero ---------- */
.hero{position:relative;isolation:isolate;overflow:hidden;min-height:max(720px,100svh);display:flex;align-items:center;color:#fff;background:var(--leaf-dd);padding:calc(var(--hdr-h) + env(safe-area-inset-top,0px) + 14px) 0 92px}
.hero-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.hero-media picture,.hero-media img{display:block;width:100%;height:100%}
.hero-media img{object-fit:cover;object-position:28% 42%}
.kb img{animation:kb 30s ease-in-out infinite alternate;transform-origin:30% 45%;will-change:transform}
@keyframes kb{from{transform:scale(1.03)}to{transform:scale(1.15) translate(-1.6%,-1.2%)}}
.hero-scrim{position:absolute;inset:0;z-index:-1;background:
  radial-gradient(ellipse 62% 58% at 50% 50%,rgba(26,20,52,.72),rgba(26,20,52,.42) 72%,rgba(26,20,52,.3)),
  linear-gradient(180deg,rgba(26,20,52,.62) 0%,rgba(26,20,52,.18) 26%,rgba(26,20,52,.34) 62%,rgba(26,20,52,.92) 100%)}
.hero-in{position:relative;width:100%;max-width:940px;margin-inline:auto;padding-inline:var(--gut);text-align:center;display:flex;flex-direction:column;align-items:center}
.hero-logo{width:clamp(168px,44vw,250px);height:auto;margin-bottom:14px;filter:drop-shadow(0 12px 26px rgba(0,0,0,.42))}
.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 11px;border:1.5px solid rgba(255,255,255,.42);border-radius:999px;font-size:.8rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:rgba(26,20,52,.35)}
.pill svg{width:15px;height:15px;color:var(--coral-l)}
.hero h1{margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:10px}
.h1-k{font-family:var(--body);font-weight:800;font-size:clamp(.86rem,3.2vw,1.02rem);letter-spacing:.12em;text-transform:uppercase;color:var(--peri-l);line-height:1.35;text-wrap:balance;max-width:34ch}
.h1-big{font-size:clamp(2.6rem,11.2vw,6.1rem);line-height:.98;text-wrap:balance;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.h1-big .ac{display:block}
.hero-sub{margin-top:18px;font-size:clamp(1.06rem,3.7vw,1.26rem);line-height:1.5;max-width:44ch;color:#f3ede4;text-shadow:0 1px 12px rgba(0,0,0,.45)}
.hero .btns{margin-top:26px;justify-content:center;width:100%}
.hero .btns .btn{flex:1 1 230px;max-width:300px}
.trust{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 18px;margin-top:26px;font-size:.88rem;font-weight:700;color:#efe9df}
.trust li{display:inline-flex;align-items:center;gap:7px}
.trust svg{width:17px;height:17px;color:var(--sun)}
.motion-btn{position:absolute;right:max(14px,env(safe-area-inset-right,0px));bottom:14px;z-index:3;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);background:rgba(26,20,52,.45);color:#fff;padding:0}
.motion-btn svg{width:16px;height:16px}
.motion-btn .i-play{display:none}
html.motion-off .motion-btn .i-play{display:block}
html.motion-off .motion-btn .i-pause{display:none}
html.motion-off .kb img,html.motion-off .kb video{animation-play-state:paused}
@media (min-width:760px){
  .hero-media img{object-position:30% 45%}
  .hero{padding-bottom:110px}
}

/* ---------- inner page hero ---------- */
.phero{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:var(--leaf-dd)}
.phero-media{position:relative;height:clamp(220px,60vw,340px);margin-top:calc(var(--hdr-h) + env(safe-area-inset-top,0px));overflow:hidden}
.phero-media picture,.phero-media img{display:block;width:100%;height:100%}
.phero-media img{object-fit:cover}
.phero-media::after{content:"";position:absolute;inset:auto 0 0;height:46%;background:linear-gradient(180deg,rgba(34,28,66,0),var(--leaf-dd));pointer-events:none}
.phero-scrim{display:none}
.phero-in{position:relative;padding-top:6px;padding-bottom:76px}
.crumbs{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:.84rem;font-weight:700;color:var(--fog);margin-bottom:14px;width:fit-content}
.crumbs a{color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.crumbs a:hover{border-color:#fff}
.crumbs span[aria-hidden]{color:var(--sand-3)}
.phero h1{display:flex;flex-direction:column;gap:10px;max-width:980px}
.phero .h1-k{color:var(--peri-l);max-width:none}
.phero .h1-big{font-size:clamp(2.3rem,9.6vw,5rem);text-shadow:none}
.phero .h1-big .ac{display:inline}
.phero .lede{color:#ece6dc;margin-top:16px}
.phero .btns{margin-top:24px}
.phero .btns .btn{flex:1 1 220px;max-width:300px}
.credit{margin-top:22px;font-size:.74rem;color:var(--fog);opacity:.85}
.credit a{color:inherit}
.phero .motion-btn{top:calc(var(--hdr-h) + env(safe-area-inset-top,0px) + 12px);bottom:auto}
@media (min-width:760px){
  .phero{min-height:min(76svh,700px);display:flex;flex-direction:column;justify-content:flex-end}
  .phero-media{position:absolute;inset:0;height:auto;margin-top:0;z-index:-2}
  .phero-media::after{display:none}
  .phero-scrim{display:block;position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(26,20,52,.9) 0%,rgba(26,20,52,.82) 40%,rgba(26,20,52,.4) 78%,rgba(26,20,52,.25)),linear-gradient(0deg,rgba(26,20,52,.6),rgba(26,20,52,0) 50%)}
  .phero-in{padding-top:calc(var(--hdr-h) + 80px);padding-bottom:clamp(64px,8vw,104px)}
  .phero .motion-btn{top:auto;bottom:16px}
}
@media (min-width:760px) and (max-width:1199px){
  .phero-scrim{background:linear-gradient(90deg,rgba(26,20,52,.9) 0%,rgba(26,20,52,.84) 70%,rgba(26,20,52,.6)),linear-gradient(0deg,rgba(26,20,52,.6),rgba(26,20,52,0) 50%)}
}

/* ---------- photo frames ---------- */
.ph{display:block;position:relative;overflow:hidden;background:var(--sand)}
.ph img{display:block;width:100%;height:100%;object-fit:cover}
.r-43{aspect-ratio:4/3}.r-32{aspect-ratio:3/2}.r-11{aspect-ratio:1/1}.r-45{aspect-ratio:4/5}.r-34{aspect-ratio:3/4}.r-169{aspect-ratio:16/9}.r-54{aspect-ratio:5/4}.r-23{aspect-ratio:2/3}
.cap{display:block;margin-top:10px;font-size:.86rem;line-height:1.4;color:var(--ink-2)}
.cap b{color:var(--ink);font-weight:800}
.t-leaf .cap,.t-ink .cap{color:var(--fog)}
.t-leaf .cap b,.t-ink .cap b{color:#fff}
.t-peri .cap{color:#e6e7fb}

/* ---------- strip ---------- */
.strip{background:var(--sand);padding:18px 0;border-bottom:1px solid rgba(37,30,58,.08)}
.strip ul{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 0;font-weight:800;font-size:.92rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}
.strip li{display:inline-flex;align-items:center}
.strip li+li::before{content:"//";color:var(--coral-dd);padding:0 .7em;font-weight:800}

/* ---------- intro duo ---------- */
.duo{display:grid;gap:clamp(30px,5vw,64px);grid-template-columns:minmax(0,1fr);align-items:center}
.duo-media{position:relative;margin-inline:calc(-1 * var(--gut))}
.duo-media .cap{padding-inline:var(--gut)}
.duo-copy h2{margin-bottom:18px}
.duo-copy .btns{margin-top:26px}
.sig{display:flex;align-items:center;gap:14px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}
.sig img{width:64px;height:auto;flex:none}
.sig p{font-size:.95rem;color:var(--ink-2);line-height:1.45}
.sig b{color:var(--ink)}
@media (min-width:900px){
  .duo{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
  .duo.flip .duo-media{order:2}
  .duo-media{margin-inline:0;margin-left:calc(-1 * var(--edge))}
  .duo.flip .duo-media{margin-left:0;margin-right:calc(-1 * var(--edge))}
  .duo-media .cap{padding-inline:var(--edge) 0}
  .duo.flip .duo-media .cap{padding-inline:0 var(--edge)}
}

/* ---------- services grid (home + hub) ---------- */
.svc-grid{display:grid;gap:34px 18px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.svc-grid>li{display:grid;min-width:0}
.svc-grid>li.s-lead{grid-column:1 / -1}
.svc-card{display:grid;align-content:start;gap:12px;text-decoration:none;color:inherit;height:100%}
.svc-grid>li.s-lead .svc-card .ph{margin-inline:calc(-1 * var(--gut))}
.svc-card .ph img{transition:transform .6s var(--ease)}
.svc-card:hover .ph img{transform:scale(1.04)}
.svc-txt{display:grid;gap:6px;align-content:start}
.svc-n{font-family:var(--body);font-weight:800;font-size:.76rem;letter-spacing:.2em;color:var(--peri)}
.svc-txt h3{font-size:clamp(1.3rem,5vw,1.9rem);line-height:1.06}
.s-lead .svc-txt h3{font-size:clamp(1.7rem,7vw,2.5rem)}
.svc-txt p.d{font-size:.98rem;line-height:1.5;color:var(--ink-2)}
.svc-grid>li:not(.s-lead) .svc-txt p.d{display:none}
.svc-txt .more{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-size:.92rem;color:var(--coral-dd)}
.svc-txt .more svg{width:1em;height:1em;transition:transform .2s var(--ease)}
.svc-card:hover .more svg{transform:translateX(4px)}
@media (min-width:640px){.svc-grid>li:not(.s-lead) .svc-txt p.d{display:block}}
@media (min-width:960px){
  .svc-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:48px 24px}
  .svc-grid>li{grid-column:span 3}
  .svc-grid>li.s-lead{grid-column:span 6}
  .svc-grid>li.s-lead .svc-card .ph{margin-inline:0}
}

/* ---------- signature: blank wall -> mural ---------- */
.wall{display:grid;gap:clamp(28px,5vw,60px);grid-template-columns:minmax(0,1fr);align-items:center}
.wall-fig{position:relative;margin-inline:calc(-1 * var(--gut))}
.wall-stage{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--cream)}
.wall-stage img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.primer{position:absolute;inset:0;display:none;grid-template-rows:repeat(5,1fr);pointer-events:none}
html.js .primer{display:grid}
.primer i{display:block;position:relative;margin-block:-1px;background:
  repeating-linear-gradient(90deg,rgba(255,255,255,.0) 0 7px,rgba(196,180,160,.13) 7px 9px),
  linear-gradient(180deg,#f3ece2,#efe6da);transform-origin:100% 50%;transition:transform 1.05s cubic-bezier(.65,.05,.3,1)}
.primer i::before{content:"";position:absolute;left:-14px;top:0;bottom:0;width:16px;background:inherit;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 100' preserveAspectRatio='none'%3E%3Cpath d='M16 0H9c-3 6 2 10-1 16s-6 8-3 15-3 10 0 17 5 9 1 15-6 9-2 15 4 8 2 22h10z' fill='%23000'/%3E%3C/svg%3E") 0 0/100% 100%;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 100' preserveAspectRatio='none'%3E%3Cpath d='M16 0H9c-3 6 2 10-1 16s-6 8-3 15-3 10 0 17 5 9 1 15-6 9-2 15 4 8 2 22h10z' fill='%23000'/%3E%3C/svg%3E") 0 0/100% 100%}
.primer i:nth-child(2){transition-delay:.16s}
.primer i:nth-child(3){transition-delay:.32s}
.primer i:nth-child(4){transition-delay:.48s}
.primer i:nth-child(5){transition-delay:.64s}
.wall-fig.painted .primer i{transform:scaleX(0)}
.wall-fig.painted .primer i::before{opacity:0;transition:opacity .2s .9s}
.wall-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--display);font-weight:800;font-size:clamp(1.3rem,5vw,2rem);color:var(--sand-3);letter-spacing:.01em;white-space:nowrap;transition:opacity .4s;pointer-events:none;display:none}
html.js .wall-label{display:block}
.wall-fig.painted .wall-label{opacity:0}
.wall-fig .cap{padding-inline:var(--gut)}
.wall-copy ol{counter-reset:w;display:grid;gap:14px;margin:22px 0 0;padding:0;list-style:none}
.wall-copy ol li{counter-increment:w;display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:start}
.wall-copy ol li::before{content:counter(w,decimal-leading-zero);font-family:var(--display);font-weight:800;font-size:1.25rem;color:var(--coral-d);line-height:1.3}
.wall-copy ol b{display:block;font-weight:800}
.wall-copy ol span{color:var(--ink-2);font-size:.98rem}
.replay{margin-top:16px;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1.5px solid var(--ink);border-radius:var(--r);background:transparent;font-weight:800;font-size:.92rem}
.replay:hover{background:var(--ink);color:var(--paper)}
.replay svg{width:16px;height:16px}
html:not(.js) .replay{display:none}
@media (prefers-reduced-motion:reduce){html.js .primer,html.js .wall-label,.replay{display:none}}
@media (min-width:900px){
  .wall{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
  .wall-fig{margin-inline:0;margin-left:calc(-1 * var(--edge))}
  .wall-fig .cap{padding-inline:var(--edge) 0}
}

/* ---------- photo moment ---------- */
.moment{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(440px,78vw,720px);display:flex;align-items:flex-end;color:#fff;background:var(--leaf-dd)}
.moment-media{position:absolute;inset:0;z-index:-2;overflow:hidden}
.moment-media picture,.moment-media img{display:block;width:100%;height:100%}
.moment-media img{object-fit:cover;object-position:40% 45%}
.moment::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(26,20,52,.95) 0%,rgba(26,20,52,.9) 58%,rgba(26,20,52,.5) 80%,rgba(26,20,52,.12) 100%)}
.moment-in{padding-block:clamp(70px,10vw,110px)}
@media (max-width:759px){.moment{min-height:600px}}
@media (min-width:760px){
  .moment-media img{object-position:80% 45%}
  .moment::after{background:linear-gradient(90deg,rgba(26,20,52,.94) 0%,rgba(26,20,52,.88) 42%,rgba(26,20,52,.45) 68%,rgba(26,20,52,.1) 100%),linear-gradient(0deg,rgba(26,20,52,.5),rgba(26,20,52,0) 45%)}
}
.moment-q{font-size:clamp(1.9rem,7.4vw,3.6rem);line-height:1.04;max-width:20ch;text-wrap:balance}
.moment p.lede{color:#efe8de;margin-top:14px}
.moment .motion-btn{bottom:auto;top:14px}
@media (max-width:759px){.moment{padding-bottom:0}.moment-in{padding-bottom:84px}}

/* ---------- gallery mosaic (3px seams) ---------- */
.mosaic{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin-inline:calc(-1 * var(--gut))}
.mosaic>li{position:relative;min-width:0}
.mosaic .tile{display:block;position:relative;width:100%;height:100%;padding:0;border:0;background:var(--sand);cursor:zoom-in;overflow:hidden;text-align:left;color:#fff}
.mosaic .tile img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;transition:transform .6s var(--ease),filter .3s}
.mosaic .tile:hover img{transform:scale(1.05)}
.mosaic .w2,.mosaic .w2m{grid-column:span 2}
.mosaic .w2 .tile img,.mosaic .w2m .tile img{aspect-ratio:2/1}
.tile-cap{position:absolute;inset:auto 0 0;padding:28px 12px 10px;font-size:.8rem;font-weight:700;line-height:1.3;background:linear-gradient(0deg,rgba(26,20,52,.88),rgba(26,20,52,0));opacity:1}
@media (min-width:760px){
  .mosaic{grid-template-columns:repeat(4,minmax(0,1fr));margin-inline:0;grid-auto-flow:dense}
  .mosaic .w2m{grid-column:auto}
  .mosaic .w2m .tile img{aspect-ratio:1/1}
  .mosaic .tall{grid-row:span 2}
  .mosaic .tall .tile img{aspect-ratio:auto;height:100%}
  .tile-cap{opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
  .mosaic .tile:hover .tile-cap,.mosaic .tile:focus-visible .tile-cap{opacity:1;transform:none}
}
@media (hover:none){.tile-cap{opacity:1!important;transform:none!important}}
.gal-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:26px}

/* lightbox */
.lb{border:0;padding:0;margin:auto;background:transparent;max-width:min(96vw,1200px);max-height:92svh;overflow:visible;overscroll-behavior:contain}
html:has(.lb[open]){overflow:hidden}
.lb::backdrop{background:rgba(12,20,15,.92)}
.lb figure{display:grid;gap:10px;justify-items:center}
.lb img{max-width:min(96vw,1200px);max-height:80svh;width:auto;height:auto;object-fit:contain;background:#120e24}
.lb figcaption{color:#efe8de;font-weight:700;font-size:.95rem;text-align:center;padding-inline:12px}
.lb-close{position:fixed;top:max(12px,env(safe-area-inset-top,0px));right:max(12px,env(safe-area-inset-right,0px));width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);background:rgba(26,20,52,.6);color:#fff;display:grid;place-items:center;padding:0}
.lb-close svg{width:20px;height:20px}
.lb-nav{position:fixed;top:50%;transform:translateY(-50%);width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);background:rgba(26,20,52,.6);color:#fff;display:grid;place-items:center;padding:0}
.lb-nav svg{width:22px;height:22px}
.lb-prev{left:max(10px,env(safe-area-inset-left,0px))}
.lb-next{right:max(10px,env(safe-area-inset-right,0px))}

/* ---------- classes feature ---------- */
.classes{display:grid;gap:clamp(30px,5vw,64px);grid-template-columns:minmax(0,1fr)}
.cl-photos{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:3px;margin-inline:calc(-1 * var(--gut))}
.cl-photos .ph:first-child{grid-row:span 2}
.cl-photos .ph:first-child img{aspect-ratio:auto}
.ways{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;margin-top:26px;border-top:1px solid var(--line-l)}
.ways li{padding:14px 12px 14px 0;border-bottom:1px solid var(--line-l)}
.ways li:nth-child(odd){padding-right:14px;border-right:1px solid var(--line-l)}
.ways li:nth-child(even){padding-left:14px}
.ways b{display:block;font-family:var(--display);font-weight:800;font-size:1.22rem;color:#fff;line-height:1.15}
.ways span{display:block;font-size:.88rem;color:var(--fog);line-height:1.4;margin-top:4px}
.badge-row{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px;font-weight:800;font-size:.92rem}
.badge-row li{display:inline-flex;align-items:center;gap:8px}
.badge-row svg{width:20px;height:20px;color:var(--sun)}
.classes .btns{margin-top:26px}
@media (min-width:960px){
  .classes{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center}
  .cl-photos{margin-inline:0;margin-left:calc(-1 * var(--edge))}
}

/* ---------- process steps ---------- */
.steps{display:grid;gap:0;grid-template-columns:minmax(0,1fr);counter-reset:s;border-top:1px solid var(--line)}
.step{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;padding:22px 0;border-bottom:1px solid var(--line)}
.step-n{font-family:var(--display);font-weight:800;font-size:3.2rem;line-height:.85;color:transparent;-webkit-text-stroke:1.5px var(--coral-d);min-width:1.4em}
.step h3{font-size:1.35rem;line-height:1.15;margin-bottom:6px}
.step p{color:var(--ink-2);font-size:.98rem}
.t-leaf .steps,.t-leaf .step{border-color:var(--line-l)}
.t-leaf .step-n{-webkit-text-stroke-color:var(--sun)}
.t-leaf .step p{color:var(--fog)}
@media (min-width:860px){
  .steps{grid-template-columns:repeat(4,minmax(0,1fr));border-top:0;gap:28px}
  .step{grid-template-columns:minmax(0,1fr);border-bottom:0;border-top:2px solid var(--ink);padding:20px 0 0;gap:12px}
  .t-leaf .step{border-top-color:var(--sun)}
  .step-n{font-size:4.4rem}
}

/* ---------- reviews ---------- */
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,84vw);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);padding:4px var(--gut) 22px;margin-inline:calc(-1 * var(--gut));scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.4) transparent;overscroll-behavior-x:contain}
ul.rail{list-style:none;margin-block:0}
.rail>li{scroll-snap-align:start;display:flex;min-width:0}
.quote{position:relative;display:flex;flex-direction:column;width:100%;padding:26px 22px 22px;background:var(--paper);color:var(--ink);border-radius:var(--r)}
.quote-stars{display:flex;gap:3px;color:var(--coral);margin-bottom:12px}
.quote-stars svg{width:18px;height:18px}
.quote blockquote{flex:1;font-size:1rem;line-height:1.6;color:var(--ink)}
.quote blockquote p+p{margin-top:.8em}
.quote figcaption{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.quote-name{font-size:1.12rem;line-height:1.2}
.quote-src{font-size:.82rem;font-weight:700;color:var(--ink-2)}
.quote::before{content:"\201C";position:absolute;right:16px;top:-6px;font-family:var(--display);font-size:5.2rem;line-height:1;color:var(--peri-l);pointer-events:none}
.rail-btns{display:flex;gap:10px}
.rail-btns button{width:48px;height:48px;border-radius:50%;border:1.5px solid rgba(255,255,255,.6);background:transparent;color:#fff;display:grid;place-items:center;padding:0;transition:background-color .18s}
.rail-btns button:hover{background:rgba(255,255,255,.14)}
.rail-btns svg{width:20px;height:20px}
.rev-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:18px;margin-bottom:28px}
.rev-meta{display:inline-flex;align-items:center;gap:10px;margin-top:12px;font-weight:800;font-size:.95rem}
.rev-meta .quote-stars{margin:0;color:var(--sun)}
@media (min-width:760px){.rail{grid-auto-columns:minmax(300px,46%)}}
@media (min-width:1120px){.rail{grid-auto-columns:minmax(300px,calc((100% - 2 * var(--gut) - 28px) / 3));}}

/* ---------- towns ---------- */
.towns{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line)}
.towns>li{min-width:0;border-bottom:1px solid var(--line)}
.town{display:grid;grid-template-columns:96px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 0;text-decoration:none;color:inherit}
.town .ph{aspect-ratio:4/3}
.town-txt b{display:block;font-family:var(--display);font-weight:800;font-size:1.3rem;line-height:1.1}
.town-txt small{display:block;font-size:.86rem;color:var(--ink-2);margin-top:3px}
.town>svg{width:22px;height:22px;color:var(--coral-d);transition:transform .2s var(--ease)}
.town:hover>svg{transform:translateX(4px)}
.town:hover .town-txt b{color:var(--coral-dd)}
@media (min-width:860px){
  .towns{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}
}
.area-note{margin-top:22px;font-size:.95rem;color:var(--ink-2);max-width:70ch}

/* ---------- FAQ ---------- */
.faq{display:grid;gap:0;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 0;cursor:pointer;font-weight:800;font-size:1.06rem;line-height:1.35}
.faq summary::after{content:"";flex:none;width:30px;height:30px;border-radius:50%;background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b0441d' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/16px no-repeat;transition:transform .25s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .ans{padding:0 0 20px;color:var(--ink-2);max-width:72ch}
.faq-grid{display:grid;gap:30px;grid-template-columns:minmax(0,1fr)}
@media (min-width:960px){.faq-grid{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px;align-items:start}}

/* ---------- CTA + form ---------- */
.cta{display:grid;gap:clamp(30px,5vw,60px);grid-template-columns:minmax(0,1fr);align-items:start}
.cta-copy h2{margin-bottom:16px}
.cta-list{display:grid;gap:12px;margin-top:24px}
.cta-list a,.cta-list div{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:700}
.cta-list svg{width:22px;height:22px;color:var(--sun);flex:none}
.cta-list a:hover span{text-decoration:underline}
.hours-mini{margin-top:18px;font-size:.92rem;color:var(--fog)}
form.lead-form{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding:clamp(22px,4vw,34px);background:var(--paper);color:var(--ink);border-radius:var(--r)}
form.lead-form h3{font-family:var(--display);font-weight:800;font-size:1.6rem;line-height:1.1}
form.lead-form p{color:var(--ink-2)}
form.lead-form .fine{color:var(--ink-2)}
.fld{display:grid;gap:6px}
.fld label,.opts legend{font-weight:800;font-size:.92rem;color:var(--ink)}
.fld input,.fld textarea,.fld select{width:100%;min-height:50px;padding:12px 14px;border:1.5px solid var(--sand-2);border-radius:var(--r);background:#fff;font-size:1rem;transition:border-color .18s,box-shadow .18s}
.fld textarea{min-height:110px;resize:vertical}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--peri);box-shadow:0 0 0 3px rgba(86,86,166,.25)}
.fld-row{display:grid;gap:14px;grid-template-columns:minmax(0,1fr)}
.opts{border:0;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.opts legend{margin-bottom:8px;padding:0}
.opt{position:relative;display:flex}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt span{display:flex;align-items:center;width:100%;min-height:46px;padding:9px 12px;border:1.5px solid var(--sand-2);border-radius:var(--r);background:#fff;font-weight:700;font-size:.9rem;line-height:1.25;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.opt input:checked+span{background:var(--leaf);border-color:var(--leaf);color:#fff}
.opt input:focus-visible+span{outline:3px solid var(--peri);outline-offset:2px}
form.lead-form button[type="submit"]{width:100%;white-space:normal}
.form-msg{display:none;padding:12px 14px;border-radius:var(--r);font-weight:700;font-size:.95rem}
.form-msg.show{display:block}
.form-msg.ok{background:var(--sage-l);color:var(--leaf-d)}
.form-msg.err{background:#fde3d8;color:#7a2a10}
.form-msg a{display:inline-block;margin-left:6px;color:inherit;font-weight:800}
.hp-trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (min-width:600px){.fld-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.opts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:980px){.cta{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}}

/* ---------- service page blocks ---------- */
.intro-grid{display:grid;gap:clamp(30px,5vw,60px);grid-template-columns:minmax(0,1fr)}
.incl{display:grid;gap:0;border-top:2px solid var(--ink)}
.incl li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}
.incl svg{width:22px;height:22px;color:var(--coral-d);margin-top:2px}
.incl b{display:block;font-weight:800;font-size:1.04rem}
.incl span{display:block;color:var(--ink-2);font-size:.96rem;margin-top:2px}
.incl-h{font-family:var(--display);font-weight:800;font-size:1.5rem;line-height:1.15;margin-bottom:14px}
@media (min-width:960px){.intro-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:72px;align-items:start}.incl-wrap{position:sticky;top:calc(var(--hdr-h) + 24px)}}

.strip-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;margin-inline:calc(-1 * var(--gut))}
.strip-photos>li{min-width:0}
.strip-photos .ph img{aspect-ratio:1/1}
.strip-photos figcaption{padding:8px 10px 0;font-size:.8rem;color:var(--ink-2);line-height:1.35}
@media (min-width:760px){.strip-photos{grid-template-columns:repeat(4,minmax(0,1fr));margin-inline:0}.strip-photos .ph img{aspect-ratio:4/5}}

.fits{display:grid;gap:3px;grid-template-columns:minmax(0,1fr)}
.fit{padding:22px;background:var(--paper);border-radius:0}
.fit b{display:block;font-family:var(--display);font-weight:800;font-size:1.3rem;line-height:1.15;margin-bottom:6px}
.fit span{color:var(--ink-2);font-size:.98rem}
.t-sand .fit{background:rgba(251,243,234,.72)}
@media (min-width:700px){.fits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1100px){.fits.n4{grid-template-columns:repeat(4,minmax(0,1fr))}.fits.n6{grid-template-columns:repeat(3,minmax(0,1fr))}}

.rel{display:grid;gap:3px;grid-template-columns:repeat(2,minmax(0,1fr))}
.rel a{display:grid;gap:10px;text-decoration:none;color:inherit;align-content:start}
.rel b{font-family:var(--display);font-weight:800;font-size:1.15rem;line-height:1.15;padding:0 4px}
.rel a:hover b{color:var(--coral-dd)}
@media (min-width:860px){.rel{grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips a{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1.5px solid currentColor;border-radius:var(--r);text-decoration:none;font-weight:800;font-size:.92rem;transition:background-color .15s,color .15s}
.chips a:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.t-leaf .chips a:hover{background:var(--sun);color:var(--ink);border-color:var(--sun)}

.svc-local{display:grid;gap:0;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line)}
.svc-local>li{border-bottom:1px solid var(--line)}
.svc-local a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;padding:18px 0;text-decoration:none;color:inherit;align-items:center}
.svc-local b{font-family:var(--display);font-weight:800;font-size:1.3rem;line-height:1.15}
.svc-local span.d{grid-column:1;color:var(--ink-2);font-size:.97rem}
.svc-local svg{grid-row:1 / span 2;grid-column:2;width:22px;height:22px;color:var(--coral-d);transition:transform .2s}
.svc-local a:hover svg{transform:translateX(4px)}
.svc-local a:hover b{color:var(--coral-dd)}
@media (min-width:900px){.svc-local{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:44px}}

.facts{display:grid;gap:0;grid-template-columns:minmax(0,1fr);border-top:2px solid var(--sun)}
.facts li{padding:16px 0;border-bottom:1px solid var(--line-l)}
.facts b{display:block;font-family:var(--display);font-weight:800;font-size:1.2rem;color:#fff;line-height:1.2}
.facts span{display:block;color:var(--fog);font-size:.95rem;margin-top:4px}
@media (min-width:860px){.facts{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}}

/* ---------- about ---------- */
.story{display:grid;gap:clamp(30px,5vw,64px);grid-template-columns:minmax(0,1fr)}
.pull{font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,5.4vw,2.3rem);line-height:1.15;color:var(--leaf);padding-left:20px;border-left:6px solid var(--coral);margin:28px 0;max-width:24ch}
.pull cite{display:block;margin-top:10px;font-family:var(--body);font-style:normal;font-size:.86rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--peri)}
.cred{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px;font-weight:800}
.cred li{display:inline-flex;align-items:center;gap:8px}
.cred svg{width:20px;height:20px;color:var(--coral-d)}
@media (min-width:960px){.story{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start}.story-media{position:sticky;top:calc(var(--hdr-h) + 24px)}}

/* ---------- contact ---------- */
.contact-grid{display:grid;gap:clamp(30px,5vw,60px);grid-template-columns:minmax(0,1fr)}
.nap-card{display:grid;gap:16px}
.nap-card a,.nap-card div{display:flex;gap:12px;align-items:flex-start;text-decoration:none;font-weight:700;color:var(--ink)}
.nap-card svg{width:22px;height:22px;color:var(--coral-d);margin-top:2px;flex:none}
.nap-card a:hover span{text-decoration:underline}
.hours{display:grid;gap:0;border-top:1px solid var(--line);margin-top:8px;max-width:420px}
.hours div{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:.96rem;font-variant-numeric:tabular-nums}
.hours div.today{font-weight:800;color:var(--coral-dd)}
.map{position:relative;aspect-ratio:4/3;background:var(--sand);margin-inline:calc(-1 * var(--gut))}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (min-width:960px){.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}.map{margin-inline:0;aspect-ratio:16/10}}

/* ---------- footer ---------- */
.ftr{background:var(--leaf-dd);color:var(--fog);padding:clamp(56px,8vw,90px) 0 calc(96px + env(safe-area-inset-bottom,0px));font-size:.96rem}
.ftr-grid{display:grid;gap:36px;grid-template-columns:minmax(0,1fr)}
.ftr-brand img{width:150px;height:auto;margin-bottom:16px}
.ftr-brand p{max-width:40ch}
.nap{display:grid;gap:4px;margin-top:16px}
.nap strong{color:#fff;font-size:1.05rem}
.nap a{color:#fff;font-weight:700;text-decoration:none;overflow-wrap:anywhere}
.nap a:hover{text-decoration:underline}
.ftr h2{font-size:1.25rem;color:#fff;margin-bottom:12px;line-height:1.2}
.ftr ul{display:grid;gap:2px}
.ftr ul a{display:inline-block;padding:6px 0;color:var(--fog);text-decoration:none;font-weight:600}
.ftr ul a:hover{color:#fff;text-decoration:underline}
.ftr-hours{margin-top:12px;font-size:.9rem}
.ftr-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-top:44px;padding-top:22px;border-top:1px solid var(--line-l);font-size:.86rem}
.ftr-base a{color:#fff;font-weight:700}
.stock-note{margin-top:10px;font-size:.8rem;color:var(--sand-3)}
@media (min-width:760px){.ftr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ftr-brand{grid-column:1 / -1}}
@media (min-width:1100px){.ftr-grid{grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr))}.ftr-brand{grid-column:auto}.ftr{padding-bottom:56px}}

/* sticky phone action bar */
.actbar{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:rgba(246,238,227,.18);padding-bottom:env(safe-area-inset-bottom,0px);padding-inline:env(safe-area-inset-left,0px) env(safe-area-inset-right,0px);transform:translateY(110%);transition:transform .3s var(--ease)}
.actbar.on{transform:none}
.actbar a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:58px;background:var(--leaf-dd);color:#fff;font-weight:800;text-decoration:none;font-size:.98rem}
.actbar a:first-child{background:var(--coral);color:var(--ink)}
.actbar svg{width:19px;height:19px}
@media (min-width:1100px){.actbar{display:none}}

/* ---------- reveal ---------- */
html.js .rise{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
html.js .rise.is-in{opacity:1;transform:none}
html.js .rise.d1{transition-delay:.08s}
html.js .rise.d2{transition-delay:.16s}

/* ---------- 404 ---------- */
.nf{min-height:80svh;display:grid;place-items:center;text-align:center;padding:calc(var(--hdr-h) + 60px) var(--gut) 80px}
.nf h1{font-size:clamp(2.4rem,9vw,4.6rem);line-height:1}
.nf p{margin:16px auto 26px;max-width:44ch;color:var(--ink-2)}
.nf .btns{justify-content:center}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .kb img{animation:none!important}
  html.js .rise{opacity:1;transform:none}
}
@media print{.hdr,.actbar,.drawer,.motion-btn{display:none!important}.hero,.phero{min-height:0;color:#000;background:#fff}}

/* =====================================================================
   §W  THE WATERCOLOR LAYER (pass 1, 2026-10-15)
   Holly's text: "It's a little masculine for me and I think we would need to add more
   art or colors." So the site now leads with the art and the logo's softer side: the
   hero is a salon wall of Holly's brightest paintings, corners are soft, buttons are
   pills, and the light sections carry the logo's peach watercolor bed with coral,
   sun-gold and periwinkle blooms. Every color is a logo color or a tint of one.
   ===================================================================== */
:root{--r:14px}

/* -- hero: a wall of Holly's paintings (12 tiles on phones, 16 on tablets, 18 on desktop) -- */
.hero-art .art-wall{position:absolute;inset:-3%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:6px;animation:kb-wall 34s ease-in-out infinite alternate;transform-origin:50% 40%}
.art-wall>li{position:relative;overflow:hidden;border-radius:12px;background:var(--leaf-d)}
.art-wall>li:nth-child(n+13){display:none}
.hero-art.kb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;animation:none;will-change:auto}
@keyframes kb-wall{from{transform:scale(1.02)}to{transform:scale(1.09) translate(-1.1%,-.9%)}}
html.motion-off .hero-art .art-wall{animation-play-state:paused}
/* the art shows clearest around the logo; the copy sits on a deeper dusk veil */
.hero-art~.hero-scrim{background:linear-gradient(180deg,rgba(26,20,52,.8) 0%,rgba(26,20,52,.46) 10%,rgba(26,20,52,.42) 25%,rgba(26,20,52,.82) 32%,rgba(26,20,52,.82) 84%,rgba(26,20,52,.94) 100%)}
.pg-home .hero .pill{background:rgba(26,20,52,.74);border-color:rgba(255,255,255,.5)}
.pg-home .hdr:not(.stuck){background-image:linear-gradient(180deg,rgba(26,20,52,.72),rgba(26,20,52,0))}
.brand-wm small{color:#d6d8fa}
/* narrow phones: the wordmark + tagline ran under the call and menu buttons below ~390px */
@media (max-width:389px){
  .hdr-in{gap:8px}
  .brand{gap:8px}
  .brand img{height:44px}
  .brand-wm b{font-size:1.04rem}
  .brand-wm small{font-size:.52rem;letter-spacing:.15em}
  .hdr-call,.burger{width:44px;min-width:44px;height:44px}
}
@media (max-width:359px){
  .brand img{height:42px}
  .brand-wm b{font-size:.94rem}
  .brand-wm small{display:none}
}
@media (min-width:760px){
  .hero-art .art-wall{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .art-wall>li:nth-child(n+13){display:block}
  .art-wall>li:nth-child(n+17){display:none}
}
@media (min-width:1100px){
  .hero-art .art-wall{grid-template-columns:repeat(6,minmax(0,1fr))}
  .art-wall>li:nth-child(n+17){display:block}
  .hero-art~.hero-scrim{background:
    radial-gradient(ellipse 40% 50% at 50% 58%,rgba(26,20,52,.86) 0%,rgba(26,20,52,.8) 64%,rgba(26,20,52,0) 100%),
    linear-gradient(180deg,rgba(26,20,52,.78) 0%,rgba(26,20,52,.5) 8%,rgba(26,20,52,.26) 15%,rgba(26,20,52,.26) 68%,rgba(26,20,52,.85) 100%)}
}

/* -- soft shapes -- */
.btn,.hdr-call,.replay{border-radius:999px}
.burger{border-radius:50%}
.quote{border-radius:20px}
.svc-grid>li:not(.s-lead) .ph,.town .ph{border-radius:16px}
@media (min-width:960px){.svc-grid>li.s-lead .ph{border-radius:20px}}
.mosaic{gap:8px;margin-inline:0}
.mosaic .tile{border-radius:14px}
.strip-photos{gap:8px;margin-inline:0}
.strip-photos .ph{border-radius:14px}

/* -- watercolor blooms: the peach bed from the logo, plus coral, sun-gold and periwinkle -- */
.edge::before{background-image:none}
main>.t-paper,main>.t-peach{background-image:
  radial-gradient(34% 40% at 94% 24%,rgba(246,169,137,.3),rgba(246,169,137,0) 72%),
  radial-gradient(36% 42% at 4% 92%,rgba(195,198,244,.42),rgba(195,198,244,0) 72%)}
main>.t-paper:nth-of-type(even){background-image:
  radial-gradient(32% 40% at 6% 26%,rgba(244,197,94,.24),rgba(244,197,94,0) 72%),
  radial-gradient(38% 44% at 96% 90%,rgba(246,169,137,.3),rgba(246,169,137,0) 72%)}
main>.t-peach:nth-of-type(even){background-image:
  radial-gradient(34% 40% at 6% 22%,rgba(195,198,244,.4),rgba(195,198,244,0) 72%),
  radial-gradient(36% 44% at 94% 88%,rgba(244,197,94,.22),rgba(244,197,94,0) 72%)}
main>.t-leaf{background-image:
  radial-gradient(40% 46% at 96% 30%,rgba(232,105,63,.2),rgba(232,105,63,0) 72%),
  radial-gradient(44% 50% at 2% 96%,rgba(86,86,166,.5),rgba(86,86,166,0) 72%)}

/* -- more color in the furniture -- */
.t-peach .ac{color:var(--peri-d)}
.t-peach .kicker::before{background:var(--peri)}
main>.t-paper:nth-of-type(even) .kicker::before{background:var(--sage)}
.t-leaf .kicker::before,.t-ink .kicker::before{background:var(--coral-l)}
.strip{position:relative;background:var(--peach);border-bottom:0}
.strip::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:linear-gradient(90deg,var(--coral),var(--sun),var(--coral-l),var(--peri-l),var(--peri))}
.strip li+li::before{content:"";width:10px;height:10px;padding:0;margin:0 .85em;border-radius:58% 42% 52% 48%/48% 56% 44% 52%;background:var(--coral);transform:rotate(-12deg)}
.strip li:nth-child(3)::before{background:var(--sun)}
.strip li:nth-child(4)::before{background:var(--peri)}
.strip li:nth-child(5)::before{background:var(--sage)}
.strip li:nth-child(6)::before{background:var(--coral-l)}
.ftr{position:relative}
.ftr::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--coral),var(--sun),var(--coral-l),var(--peri-l),var(--peri))}

@media (prefers-reduced-motion:reduce){.hero-art .art-wall{animation:none!important;transform:none}}
