/* Natural Choice Landscapes — site layer. Loaded after kit.css, palette.css, tint.css, motion.css, presets.css, finish.css.
   The hand is his logo's: a brush painted tree in a tall black frame. So every photograph sits in a MAT (a keyline, a
   band of paper, the picture), the marker is three brush dabs, buttons are square, and the voice is Lora's italic. */

/* ── type ── */
body.nc{background:var(--paper);color:var(--body);font-family:var(--sans);font-size:17px;line-height:1.65}
body.nc h1,body.nc h2,body.nc h3{font-family:var(--serif);font-weight:500;color:var(--ink);letter-spacing:-.012em}
body.nc h1 em,body.nc h2 em{font-style:italic;font-weight:400;color:var(--leaf-txt)}
body.nc .nc-h2{font-size:clamp(1.95rem,3.3vw,2.9rem);line-height:1.14;margin:0;max-width:20ch}
body.nc .nc-h3{font-size:1.5rem;line-height:1.2;margin:0 0 18px}
body.nc .lede{font-size:clamp(1.08rem,1.4vw,1.2rem);line-height:1.68;color:var(--muted);max-width:56ch;margin:20px 0 0}
body.nc .nc-kick{display:flex;align-items:center;gap:12px;margin:0 0 18px;font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--leaf-txt)}
:root{--dabs:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 22'%3E%3Cg fill='none' stroke='%2362C734' stroke-width='3.4' stroke-linecap='round'%3E%3Cpath d='M3 8l19-5'/%3E%3Cpath d='M9 13.5l31-7.5'/%3E%3Cpath d='M4 19l23-5.5'/%3E%3C/g%3E%3C/svg%3E")}
.nc-kick::before,.nc-say-by::before,.nc-incl li::before{content:'';flex:0 0 auto;width:34px;height:17px;background:var(--dabs) center/contain no-repeat}
.nc-kick,.nc-say-by{white-space:nowrap}
@media(max-width:430px){body.nc .nc-kick,body.nc .nc-say-by{font-size:12px;letter-spacing:.08em;gap:9px}.nc-kick::before,.nc-say-by::before{width:24px;height:12px}}
.nc-head{max-width:820px;margin:0 0 clamp(34px,4.6vw,58px)}

/* ── the mat: his logo's frame around every photograph ── */
.nc-mat{display:block;margin:0;padding:9px;background:var(--paper-2);border:1px solid var(--ink);box-shadow:var(--lift-2);overflow:hidden}
.nc-mat img{display:block;width:100%;height:100%;object-fit:cover}

/* ── buttons: square, in the logo's black ── */
.nc-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 30px;border:1px solid var(--ink);border-radius:var(--btn-r);background:var(--ink);font-family:var(--sans);font-size:16.5px;font-weight:600;letter-spacing:.01em;text-decoration:none;cursor:pointer;
  transition:background var(--t-micro) var(--ease-out),border-color var(--t-micro) var(--ease-out),box-shadow var(--t-micro) var(--ease-out),transform var(--t-micro) var(--ease-out)}
body.nc .nc-btn,body.nc .nc-btn:hover{color:var(--paper-2)}
.nc-btn:hover{background:var(--leaf-txt);border-color:var(--leaf-txt);box-shadow:0 0 0 4px color-mix(in srgb,var(--leaf) 45%,transparent);transform:translateY(-1px)}
.nc-btn:active{transform:translateY(0)}
.nc-btn.wide{width:100%}
.nc-btn.lt{background:var(--paper-2);border-color:var(--paper-2)}
body.nc .nc-btn.lt,body.nc .nc-btn.lt:hover{color:var(--ink)}
.nc-btn.lt:hover{background:#fff;border-color:#fff}
.nc-acts{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:30px}
.nc-tl{display:inline-flex;align-items:center;min-height:44px;font-size:17px;font-weight:600;color:var(--paper-2);text-decoration:underline;text-decoration-color:var(--leaf);text-decoration-thickness:2px;text-underline-offset:6px;transition:text-decoration-color var(--t-micro) var(--ease-out)}
.nc-tl:hover{text-decoration-color:currentColor}
.nc-phead .nc-tl,.nc-close .nc-tl,.nc-tl.dk{color:var(--ink)}

/* ── the header: logo left ── */
body.light.nc .nav.nc-nav,body.light.nc.scrolled .nav.nc-nav{background:color-mix(in srgb,var(--paper) 96%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(14px);backdrop-filter:saturate(1.2) blur(14px);border-bottom:1px solid var(--line);z-index:90}
.nav.nc-nav .nav-in{width:min(100% - 44px,1400px);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:26px;height:var(--nav-h)}
.nav.nc-nav .brand{margin:0;gap:14px;min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
.nav.nc-nav .nc-mk{height:68px;width:auto;display:block}
.nav.nc-nav .wm{display:flex;flex-direction:column}
.nav.nc-nav .brand .w1{font-family:var(--serif);font-size:28px;font-weight:500;letter-spacing:-.005em;color:var(--ink);line-height:1;white-space:nowrap}
.nav.nc-nav .brand .w2{font-size:12px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--leaf-txt);margin-top:8px}
.nav.nc-nav .nlinks{justify-self:center;display:flex;gap:clamp(18px,2vw,30px)}
.nav.nc-nav .nlinks a{font-size:17px;font-weight:500;color:var(--ink);padding:10px 0;white-space:nowrap}
.nav.nc-nav .nlinks a::after{background:var(--leaf);height:3px;border-radius:3px}
.nav.nc-nav .nlinks a[aria-current]{color:var(--leaf-txt)}
.nav.nc-nav .ncta{display:flex;align-items:center;gap:22px}
.nav.nc-nav .nphone{display:inline-flex;flex-direction:column;align-items:flex-end;min-height:44px;justify-content:center;font-size:18px;font-weight:600;color:var(--ink);text-decoration:none;line-height:1.15;white-space:nowrap}
.nav.nc-nav .nphone span{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--leaf-txt);margin-bottom:4px}
.nav.nc-nav .nbtn{min-height:52px;padding:0 24px;white-space:nowrap}
.nav.nc-nav .menubtn{border-color:color-mix(in srgb,var(--ink) 34%,transparent);border-radius:var(--btn-r);min-height:52px;color:var(--ink)}
@media(max-width:1419px){.nav.nc-nav .nlinks,.nav.nc-nav .nphone{display:none}.nav.nc-nav .menubtn{display:inline-flex}}
@media(max-width:760px){.nav.nc-nav .nbtn{display:none}.nav.nc-nav .menubtn{width:auto;padding:0 20px}.nav.nc-nav .m-t{position:static;width:auto;height:auto;margin:0;clip:auto;overflow:visible}
  body.light.nc .nav.nc-nav,body.light.nc.scrolled .nav.nc-nav,body.light.nc.menu-open .nav.nc-nav{background:var(--paper);-webkit-backdrop-filter:none;backdrop-filter:none}}
@media(max-width:430px){.nav.nc-nav .nav-in{gap:10px}.nav.nc-nav .nc-mk{height:46px}.nav.nc-nav .brand{gap:9px}.nav.nc-nav .brand .w1{font-size:22px}.nav.nc-nav .brand .w2{font-size:11px;letter-spacing:.2em;margin-top:5px}
  .nav.nc-nav .menubtn{width:52px;padding:0;justify-content:center}.nav.nc-nav .m-t{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
@media(min-width:431px) and (max-width:640px){.nav.nc-nav .nc-mk{height:58px}.nav.nc-nav .brand .w1{font-size:23px}.nav.nc-nav .brand .w2{font-size:11px;letter-spacing:.24em;margin-top:6px}.nav.nc-nav .brand{gap:11px}}
@media(max-width:640px){:root{--nav-h:86px}.nav.nc-nav .nc-mk{max-height:58px}.nav.nc-nav .brand .w1{font-size:23px}.nav.nc-nav .brand .w2{font-size:11px;letter-spacing:.24em;margin-top:6px}.nav.nc-nav .brand{gap:11px}}
.nc .menu-page .mp-links a span{font-family:var(--serif);font-weight:500}

/* ── HOME, the first screen: the riverside garden, his three words low on it, one photograph hung in the logo's frame ── */
.nc-hero{position:relative;min-height:clamp(600px,calc(100svh - var(--nav-h)),860px);display:grid;align-items:end;isolation:isolate;padding:120px 0 clamp(52px,7vh,84px)}
.nc-hero-ph{position:absolute;inset:0;z-index:-2;display:block;overflow:hidden}
.nc-hero-ph img{width:100%;height:100%;object-fit:cover;object-position:50% 38%;display:block}
.nc-hero-ph::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,22,20,0) 0%,rgba(18,22,20,.14) 26%,rgba(18,22,20,.66) 58%,rgba(18,22,20,.9) 100%)}
.nc-hero-in{position:relative}
.nc-place{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:13px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#F8FAF8}
.nc-place .nc-dabs{color:var(--leaf)}
body.nc .nc-h1{font-size:var(--display);line-height:1.04;font-weight:500;color:#F8FAF8;margin:0;max-width:14ch;text-shadow:0 2px 28px rgba(18,22,20,.4)}
body.nc .nc-h1 em{color:#F8FAF8;font-weight:400}
body.nc .nc-sub{font-size:clamp(1.1rem,1.5vw,1.28rem);line-height:1.55;color:#F8FAF8;max-width:36ch;margin:20px 0 0;font-weight:500;text-shadow:0 1px 16px rgba(18,22,20,.5)}
.nc-hung{position:absolute;right:max(22px,calc((100vw - var(--wrap))/2));bottom:-96px;width:clamp(210px,19vw,262px);z-index:3;display:block;transform:rotate(1.2deg);transition:transform 400ms var(--ease-out)}
.nc-hung:hover{transform:rotate(0deg) translateY(-6px)}
.nc-hung .nc-mat{padding:11px;box-shadow:var(--lift-3)}
.nc-hung img{aspect-ratio:5/8}
@media(max-width:1020px){.nc-hung{display:none}}
@media(max-width:700px){
  .nc-hero{min-height:calc(100svh - var(--nav-h) - 74px);padding:150px 0 30px}
  .nc-hero-ph img{object-position:50% 20%}
  .nc-hero-ph::after{background:linear-gradient(180deg,rgba(18,22,20,0) 0%,rgba(18,22,20,.1) 26%,rgba(18,22,20,.74) 52%,rgba(18,22,20,.92) 100%)}
  .nc-place{font-size:12px;letter-spacing:.18em;margin-bottom:12px}
  body.nc .nc-sub{margin-top:14px}
  .nc-hero .nc-acts{flex-direction:column;align-items:stretch;gap:4px;margin-top:22px}.nc-hero .nc-btn{width:100%}.nc-hero .nc-tl{justify-content:center}
}

/* ── the opening words and the facts, as type ── */
.nc-open{padding:clamp(110px,12vw,170px) 0 clamp(70px,8vw,110px)}
.nc-open-in{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);gap:clamp(30px,6vw,90px);align-items:start}
.nc-open-tx .lede{margin-top:0;color:var(--body)}
.nc-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 34px;margin:34px 0 0;border-top:1px solid var(--ink)}
.nc-facts>div{padding:18px 0 16px;border-bottom:1px solid var(--line)}
.nc-facts dt{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--leaf-txt)}
.nc-facts dd{margin:6px 0 0;font-family:var(--serif);font-size:clamp(1.45rem,2.1vw,1.85rem);line-height:1.15;color:var(--ink)}
.nc-facts.col{grid-template-columns:1fr;margin-top:0}
@media(max-width:860px){.nc-open{padding-top:64px}.nc-open-in{grid-template-columns:1fr;gap:26px}}
@media(min-width:1021px){.nc-open-in>div:first-child{padding-right:20px}.nc-open-tx{padding-right:clamp(0px,calc(262px - (100vw - var(--wrap))/2 + 60px),300px)}}

/* ── THE MOMENT: one garden, three visits. The chosen frame opens wide; the other two stay as tall slices. ── */
.nc-garden{padding:clamp(70px,9vw,128px) 0;background:var(--paper-2);border-block:1px solid var(--line)}
.nc-garden.plain{background:transparent;border:0}
.nc-tri{display:flex;gap:clamp(12px,1.6vw,22px);align-items:flex-start}
.nc-visit{position:relative;flex:1 1 0;min-width:0;display:block;cursor:pointer;transition:flex-grow .8s var(--ease-out)}
.nc-visit input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.nc-visit .nc-mat{height:clamp(300px,34vw,470px);transition:box-shadow var(--t-micro) var(--ease-out),border-color var(--t-micro) var(--ease-out)}
.nc-visit:has(input:checked){flex-grow:2.3}
.nc-visit:has(input:checked) .nc-mat{box-shadow:var(--lift-3)}
.nc-visit:has(input:focus-visible) .nc-mat{outline:3px solid var(--leaf-txt);outline-offset:4px}
.nc-visit:hover .nc-mat{border-color:var(--leaf-txt)}
.nc-vcap{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:baseline;padding:18px 2px 0}
.nc-num{grid-row:1 / span 2;font-family:var(--serif);font-style:italic;font-size:1.9rem;line-height:1;color:var(--leaf-txt);min-width:1.5em}
.nc-vcap b{font-family:var(--serif);font-weight:500;font-size:1.32rem;line-height:1.2;color:var(--ink)}
.nc-vcap>span:last-child{grid-column:2;font-size:16.5px;line-height:1.55;color:var(--muted)}
.nc-dim{list-style:none;margin:clamp(44px,6vw,76px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,4vw,56px);border-top:1px solid var(--ink)}
.nc-dim li{padding:24px 0 0;display:grid;gap:10px;align-content:start}
.nc-dim b{font-family:var(--serif);font-weight:500;font-size:clamp(1.7rem,2.6vw,2.3rem);line-height:1.1;color:var(--ink)}
.nc-dim li:last-child b{font-style:italic;font-weight:400;color:var(--leaf-txt)}
.nc-dim span{font-size:17px;line-height:1.6;color:var(--muted);max-width:34ch}
.nc-pair{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(14px,2vw,26px);margin-top:clamp(40px,5vw,64px)}
.nc-pair .nc-mat{aspect-ratio:4/3}.nc-pair .nc-mat+.nc-mat{aspect-ratio:auto}
@media(max-width:820px){
  .nc-tri{gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;padding:4px 2px 10px}
  .nc-tri::-webkit-scrollbar{display:none}
  .nc-visit,.nc-visit:has(input:checked){flex:0 0 min(84%,440px);scroll-snap-align:start}
  .nc-visit .nc-mat{height:auto;aspect-ratio:16/11}
  .nc-dim{grid-template-columns:1fr}.nc-dim li{padding:20px 0;border-bottom:1px solid var(--line)}.nc-dim li:last-child{border-bottom:0;padding-bottom:0}
  .nc-pair{grid-template-columns:1fr}.nc-pair .nc-mat+.nc-mat{aspect-ratio:16/9}
}

/* ── the four services: the list, and the photograph that follows it ── */
.nc-svcs{padding:clamp(80px,10vw,140px) 0}
.nc-svcs-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(30px,6vw,96px);align-items:center}
.nc-rows{list-style:none;margin:clamp(28px,3.6vw,44px) 0 0;padding:0;border-top:1px solid var(--ink)}
.nc-rows a{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:24px 4px;border-bottom:1px solid var(--line);text-decoration:none;transition:background var(--t-micro) var(--ease-out)}
.nc-rows .th{display:none}
.nc-rows .t{display:grid;gap:6px;transition:transform var(--t-micro) var(--ease-out)}
.nc-rows b{font-family:var(--serif);font-weight:500;font-size:clamp(1.5rem,2.3vw,2rem);line-height:1.15;color:var(--ink);transition:color var(--t-micro) var(--ease-out)}
.nc-rows .t>span{font-size:17px;line-height:1.5;color:var(--muted)}
.nc-rows .ar{font-size:1.5rem;color:var(--leaf-txt);transition:transform var(--t-micro) var(--ease-out)}
.nc-rows a:hover,.nc-rows a:focus-visible{background:color-mix(in srgb,var(--leaf) 9%,transparent)}
/* 2026-10-09: the row's words slide (transform), the row no longer animates its padding (layout on every frame). */
.nc-rows a:focus-visible .t{transform:translateX(12px)}
@media(hover:hover) and (pointer:fine){.nc-rows a:hover .t{transform:translateX(12px)}}
.nc-rows a:hover b{color:var(--leaf-txt)}.nc-rows a:hover .ar{transform:translateX(6px)}
.nc-svcs-ph{position:relative;aspect-ratio:4/5;padding:11px;box-shadow:var(--lift-3)}
.nc-svcs-ph img{position:absolute;inset:11px;width:calc(100% - 22px);height:calc(100% - 22px);clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease-out)}
.nc-svcs-ph img:first-child{clip-path:inset(0)}
.nc-svcs:has(.nc-rows li:nth-child(2) a:is(:hover,:focus-visible)) .nc-svcs-ph img:nth-child(2),
.nc-svcs:has(.nc-rows li:nth-child(3) a:is(:hover,:focus-visible)) .nc-svcs-ph img:nth-child(3),
.nc-svcs:has(.nc-rows li:nth-child(4) a:is(:hover,:focus-visible)) .nc-svcs-ph img:nth-child(4){clip-path:inset(0)}
@media(max-width:860px){
  .nc-svcs-in{grid-template-columns:1fr}.nc-svcs-ph{display:none}
  .nc-rows a{grid-template-columns:84px 1fr auto;gap:16px;padding:18px 0}
  .nc-rows .th{display:block;width:84px;height:84px;object-fit:cover;border:1px solid var(--ink);padding:4px;background:var(--paper-2)}
  .nc-rows a:hover,.nc-rows a:focus-visible{padding-left:0}
}

/* ── the band: his own words on his own stone ── */
.nc-band{position:relative;isolation:isolate;min-height:clamp(440px,56vw,720px);display:grid;align-items:end;padding:90px 0 clamp(48px,6vw,80px);overflow:hidden}
.nc-band-ph{position:absolute;inset:0;z-index:-2;display:block}
.nc-band-ph img{width:100%;height:100%;object-fit:cover;display:block}
.nc-band-ph::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,22,20,0) 0%,rgba(18,22,20,.2) 34%,rgba(18,22,20,.78) 72%,rgba(18,22,20,.9) 100%)}
body.nc .nc-say{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.08;letter-spacing:-.012em;color:#F8FAF8;margin:0;max-width:16ch;text-shadow:0 2px 26px rgba(18,22,20,.45)}
body.nc .nc-say-by{display:flex;align-items:center;gap:12px;margin:22px 0 0;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#F8FAF8}

/* ── a review, when there is a real one ── */
.nc-review{padding:clamp(70px,8vw,110px) 0 0}
.nc-review blockquote{margin:0;max-width:30ch;font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,2.8vw,2.4rem);line-height:1.3;color:var(--ink)}
.nc-review footer{margin-top:18px;font-family:var(--sans);font-style:normal;font-size:15px;color:var(--muted)}

/* ── the gallery strip ── */
.nc-wallpeek{padding:clamp(80px,10vw,130px) 0 clamp(40px,5vw,60px);overflow:hidden}
.nc-wallpeek-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px 40px;flex-wrap:wrap;margin-bottom:clamp(28px,3.6vw,44px)}
.nc-strip{display:flex;gap:clamp(12px,1.5vw,20px);align-items:flex-end;padding:6px max(22px,calc((100vw - var(--wrap))/2)) 34px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.nc-strip::-webkit-scrollbar{display:none}
.nc-strip .nc-mat{flex:0 0 auto;height:clamp(220px,25vw,330px);scroll-snap-align:start;transition:transform 400ms var(--ease-out),border-color var(--t-micro) var(--ease-out)}
.nc-strip .nc-mat:nth-child(even){height:clamp(260px,30vw,400px)}
.nc-strip .nc-mat img{width:auto;height:100%}
.nc-strip .nc-mat:hover{transform:translateY(-6px);border-color:var(--leaf-txt)}
@media(max-width:760px){.nc-strip,.nc-strip.swipe{align-items:stretch}.nc-strip .nc-mat,.nc-strip .nc-mat:nth-child(even){flex:0 0 min(78%,380px);height:auto;aspect-ratio:4/3}.nc-strip .nc-mat img{width:100%}}

/* ── the estimate: the form ── */
.nc-est{padding:clamp(60px,8vw,110px) 0 clamp(80px,10vw,140px)}
.nc-est-in{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(30px,6vw,90px);align-items:start}
.nc-est-form{background:var(--paper-2);border:1px solid var(--ink);padding:clamp(22px,3.4vw,42px);box-shadow:var(--lift-2)}
.nc-reach{margin:32px 0 0;border-top:1px solid var(--ink)}
.nc-reach>div{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line)}
.nc-reach dt{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--leaf-txt)}
.nc-reach dd{margin:0;font-family:var(--serif);font-size:clamp(1.15rem,1.7vw,1.4rem);line-height:1.3;color:var(--ink);overflow-wrap:anywhere}
.nc-reach dd.em{font-size:1.06rem;overflow-wrap:normal}
@media(max-width:520px){.nc-reach>div{grid-template-columns:1fr;gap:2px;padding:14px 0}}
.nc-reach a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--leaf);text-decoration-thickness:2px;text-underline-offset:5px;display:inline-flex;min-height:44px;align-items:center}
.nc-reach a:hover{text-decoration-color:currentColor}
body.nc .nc-form .fld label{font-size:12.5px;font-weight:600;letter-spacing:.14em;color:var(--leaf-txt)}
body.nc .nc-form .fld input,body.nc .nc-form .fld textarea{font-size:17px;border-radius:var(--btn-r);background:#FDFEFD;border:1px solid color-mix(in srgb,var(--ink) 40%,transparent);color:var(--ink)}
body.nc .nc-form .fld input:focus,body.nc .nc-form .fld textarea:focus{border-color:var(--leaf-txt);box-shadow:0 0 0 3px color-mix(in srgb,var(--leaf) 40%,transparent)}
body.nc .nc-form .chipset legend{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.14em;color:var(--leaf-txt)}
body.nc .nc-form .fnote{font-size:15px;color:var(--muted)}
body.nc .nc-form .fnote a{color:var(--ink);font-weight:600}
@media(max-width:900px){.nc-est-in{grid-template-columns:1fr}}

/* ── inner pages: the opening ── */
.nc-phead{padding:clamp(40px,5vw,72px) 0 clamp(56px,7vw,96px)}
.nc-phead-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:clamp(28px,5vw,80px);align-items:center}
.nc-crumbs{display:flex;gap:10px;align-items:center;font-size:15px;color:var(--muted);margin-bottom:22px}
.nc-crumbs a{color:var(--muted);min-height:44px;display:inline-flex;align-items:center}
body.nc .nc-h1p{font-size:clamp(2.5rem,5vw,4.4rem);line-height:1.05;margin:0;padding-bottom:.08em}
.nc-phead-ph{aspect-ratio:4/3;transform:rotate(-.8deg)}
.nc-about-logo{margin:0;justify-self:center;max-width:min(360px,72vw);padding:26px 34px;background:var(--paper-2);border:1px solid var(--ink);box-shadow:var(--lift-3);transform:rotate(1deg)}
.nc-about-logo img{display:block;width:100%;height:auto}
.nc-contact-head .nc-phead-in{align-items:start}
@media(max-width:900px){.nc-phead-in{grid-template-columns:1fr}.nc-phead-ph{transform:none}}

/* ── a service page: his words, what it covers, the plates ── */
.nc-cover{padding:clamp(56px,7vw,96px) 0;background:var(--paper-2);border-block:1px solid var(--line)}
.nc-cover-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(30px,6vw,96px);align-items:start}
.nc-cover-tx p{font-size:clamp(1.12rem,1.5vw,1.3rem);line-height:1.65;color:var(--body);margin:0 0 20px;max-width:52ch}
.nc-incl{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink)}
.nc-incl li{display:flex;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);font-size:17.5px;line-height:1.4;color:var(--ink)}
.nc-incl li::before{width:28px;height:14px}
.nc-plates-sec{padding:clamp(70px,9vw,128px) 0}
.nc-plates{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(22px,3vw,40px) clamp(14px,2vw,26px)}
.nc-plate{margin:0;grid-column:span 2}
.nc-plate .nc-mat{aspect-ratio:4/5}
.nc-plate:first-child{grid-column:span 6}.nc-plate:first-child .nc-mat{aspect-ratio:16/9}
.nc-plates.n5 .nc-plate:not(:first-child),.nc-plates.n6 .nc-plate:nth-child(n+5){grid-column:span 3}
.nc-plates.n5 .nc-plate:not(:first-child) .nc-mat,.nc-plates.n6 .nc-plate:nth-child(n+5) .nc-mat{aspect-ratio:3/2}
.nc-plate figcaption{padding:12px 2px 0;font-size:15.5px;line-height:1.5;color:var(--muted)}
@media(max-width:820px){.nc-cover-in{grid-template-columns:1fr}.nc-plates{grid-template-columns:1fr 1fr}.nc-plates .nc-plate.nc-plate,.nc-plates .nc-plate.nc-plate:nth-child(n){grid-column:span 1}.nc-plates .nc-plate.nc-plate:first-child{grid-column:span 2}}
@media(max-width:520px){.nc-plates{grid-template-columns:1fr}.nc-plates .nc-plate.nc-plate,.nc-plates .nc-plate.nc-plate:first-child{grid-column:span 1}}
.nc-others{padding:0 0 clamp(40px,5vw,70px)}
.nc-otherlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(20px,3vw,44px);border-top:1px solid var(--ink)}
.nc-otherlist a{display:grid;gap:6px;padding:22px 0;text-decoration:none;border-bottom:1px solid var(--line);min-height:44px}
.nc-otherlist b{font-family:var(--serif);font-weight:500;font-size:1.45rem;color:var(--ink);transition:color var(--t-micro) var(--ease-out)}
.nc-otherlist span{font-size:16px;line-height:1.5;color:var(--muted)}
.nc-otherlist a:hover b{color:var(--leaf-txt)}
@media(max-width:820px){.nc-otherlist{grid-template-columns:1fr}}

/* ── the closing band on every page ── */
.nc-close{padding:clamp(70px,9vw,128px) 0;border-top:1px solid var(--line)}
.nc-close-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:clamp(30px,6vw,90px);align-items:center}
.nc-close-ph{aspect-ratio:4/3;transform:rotate(1deg)}
@media(max-width:860px){.nc-close-in{grid-template-columns:1fr}.nc-close-ph{transform:none}}

/* ── gallery, questions, footer ── */
.nc-wallsec{padding:0 0 clamp(70px,9vw,120px)}
.nc-wallsec .filters{margin-bottom:26px}
body.nc .wt{border:1px solid var(--ink);padding:6px;background:var(--paper-2)}
body.nc .wt span{left:6px;right:6px;bottom:6px}
body.nc .lb{background:color-mix(in srgb,var(--paper) 98%,transparent)}
.nc-faqsec{padding:clamp(60px,8vw,110px) 0;background:var(--paper-2);border-top:1px solid var(--line)}
.nc-faq-in{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(26px,5vw,80px);align-items:start}
body.nc .faq summary{font-family:var(--serif);font-size:1.3rem;color:var(--ink)}
body.nc .faq .ans{font-size:17px;color:var(--body)}
@media(max-width:820px){.nc-faq-in{grid-template-columns:1fr}}
body.nc .nc-foot{background:var(--stone);border-top:1px solid var(--line)}
body.nc .nc-foot .fclose{font-family:var(--serif);color:var(--ink)}
body.nc .nc-foot .fsub a{color:var(--body);overflow-wrap:anywhere}
body.nc .nc-foot .nc-btn{min-height:52px;padding:0 20px}

/* 2026-10-07: iPhone Safari hung the "(" of a phone number outside the link (finish.css hanging-punctuation): it ate the space before an in-sentence number and pulled footer numbers left. */
a[href^="tel:"]{hanging-punctuation:none}

/* 2026-10-09, before the Panera meeting. Three things a laptop and a phone showed that the gate did not:
   1. Between 761 and 1419px the header put Free estimate and Menu beside the logo and left the rest of the bar empty
      (the actions sat in the grid's 1fr column once the links were hidden). The actions now always take the right
      column; the links show from 1140px and the phone number joins them at 1340px.
   2. The footer's button read ink on ink (kit: body.light .foot a outranks .nc-btn) and took the text links' box.
   3. The footer credit was the dark footer's cream on a light ground. */
.nav.nc-nav .ncta{grid-column:3;justify-self:end}
@media(min-width:1140px) and (max-width:1419px){
  .nav.nc-nav .nav-in{gap:18px}
  .nav.nc-nav .nlinks{display:flex;gap:clamp(18px,1.7vw,26px)}
  .nav.nc-nav .menubtn{display:none}
}
@media(min-width:1340px) and (max-width:1419px){.nav.nc-nav .nphone{display:inline-flex}}
body.nc .nc-foot a.nc-btn,body.nc .nc-foot a.nc-btn:hover{display:flex;margin:0;color:var(--paper-2)}
body.nc .nc-foot .fbot .by{color:var(--muted)}

/* ══════════════════════════════════════════════════════════════════════════════
   THE ESTIMATE CHAT (2026-10-09, Adam: "a high converting branded chat widget"). A lead rail, not an FAQ (nc.js):
   five short questions, contact details last, the request sent the moment a phone number is in. In his hand: the
   logo's black for every action, the canopy green for progress and marks, Lora for the title, his tree in the head,
   square corners and a keyline like the mat round every photograph. Desktop: a button in the corner that says what
   it does, one quiet teaser a visit, never an auto-open. Phone: the bar's "Free estimate" opens it as a sheet that
   rides above the keyboard (nc.js sets --kb / --vvh). Nothing shows until the script is running.
   ══════════════════════════════════════════════════════════════════════════════ */
body.light.nc .chatfab{z-index:92;width:auto;height:56px;padding:0 22px 0 16px;gap:11px;border-radius:var(--btn-r);background:var(--ink);color:var(--paper-2);
  border:1px solid var(--ink);font-family:var(--sans);font-size:16.5px;font-weight:600;letter-spacing:.01em;box-shadow:var(--lift-3);opacity:0;pointer-events:none;
  transition:transform var(--t-micro) var(--ease-out),background-color var(--t-micro) var(--ease-out),border-color var(--t-micro) var(--ease-out),opacity .4s ease}
body.light.nc.chat-ready .chatfab{opacity:1;pointer-events:auto}
body.light.nc .chatfab .q{color:var(--leaf);flex:0 0 auto}
body.light.nc .chatfab .x{display:none;line-height:0}
body.light.nc.chat-open .chatfab{padding:0 17px}
body.light.nc.chat-open .chatfab .ft,body.light.nc.chat-open .chatfab .q{display:none}
body.light.nc.chat-open .chatfab .x{display:block}
@media(hover:hover) and (pointer:fine){body.light.nc .chatfab:hover{transform:translateY(-2px);background:var(--leaf-txt);border-color:var(--leaf-txt);box-shadow:var(--lift-3)}}
body.light.nc .chatfab:focus-visible{outline:3px solid var(--leaf);outline-offset:3px}
/* the teaser: only when nc.js says so, once a visit, above the button */
body.nc .chattag{z-index:91;right:18px;bottom:86px;padding:13px 17px;border-radius:var(--btn-r);background:var(--paper-2);color:var(--ink);border:1px solid var(--ink);
  font-family:var(--sans);font-size:15.5px;font-weight:600;letter-spacing:0;box-shadow:var(--lift-2)}
body.nc.chat-ready .chattag{opacity:0;transform:translateY(8px)}
body.nc.chat-tease .chattag{opacity:1;transform:none}
body.nc.chat-open .chattag{opacity:0}

body.light.nc .chatpanel{z-index:93;width:min(404px,calc(100vw - 36px));max-height:min(640px,calc(100dvh - 116px));background:var(--paper-2);color:var(--body);
  border:1px solid var(--ink);border-radius:var(--btn-r);box-shadow:var(--lift-3);visibility:hidden;
  transition:opacity .28s var(--ease-out),transform .28s var(--ease-out),visibility 0s linear .28s}
body.light.nc.chat-open .chatpanel{visibility:visible;transition-delay:0s}
body.light.nc .chathead{background:var(--stone);border-bottom:1px solid var(--ink);padding:12px 10px 12px 14px;gap:13px}
body.light.nc .chathead .mk{width:auto;height:auto;flex:0 0 auto;display:block;line-height:0}
body.light.nc .chathead .mk img{height:48px;width:auto;display:block}
body.light.nc .chathead .ct{flex:1;min-width:0}
body.light.nc .chathead .ct b{display:block;font-family:var(--serif);font-size:1.3rem;font-weight:500;letter-spacing:-.005em;color:var(--ink);line-height:1.15}
body.light.nc .chathead .ct span{display:block;margin-top:5px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--leaf-txt)}
body.light.nc .chatx{flex:0 0 46px;width:46px;height:46px;min-width:46px;min-height:46px;display:grid;place-items:center;padding:0;cursor:pointer;
  border-radius:var(--btn-r);border:1px solid color-mix(in srgb,var(--ink) 34%,transparent);background:transparent;color:var(--ink);
  transition:background-color var(--t-micro) var(--ease-out),color var(--t-micro) var(--ease-out)}
@media(hover:hover){body.light.nc .chatx:hover{background:var(--ink);color:var(--paper-2)}}
body.light.nc .chatx:focus-visible{outline:2px solid var(--leaf-txt);outline-offset:2px}
.chatprog{height:4px;background:var(--line);overflow:hidden;opacity:0;transition:opacity .3s ease}
.chatprog.on{opacity:1}
.chatprog i{display:block;height:100%;width:100%;background:var(--leaf);transform:scaleX(0);transform-origin:0 50%;transition:transform .4s var(--ease-out)}
body.light.nc .chatbody{padding:18px 16px;gap:10px;overscroll-behavior:contain;scroll-behavior:auto;background:var(--paper-2)}
body.light.nc .chatpanel .msg{font-size:16px;line-height:1.5;border-radius:var(--btn-r);max-width:88%}
body.light.nc .chatpanel .msg.bot{background:var(--paper);color:var(--body);border:1px solid var(--line)}
body.light.nc .chatpanel .msg.bot b{color:var(--ink)}
body.light.nc .chatpanel .msg.me{background:var(--ink);color:var(--paper-2);border:1px solid var(--ink);font-weight:500}
body.light.nc .chatpanel .msg a{color:var(--leaf-txt);text-decoration:underline;text-underline-offset:3px;padding:10px 0;margin:-10px 0}
.chatpanel .msg .sub{display:block;margin-top:8px;font-size:15px;color:var(--muted)}
.chatpanel .msg.typing{display:flex;gap:5px;padding:14px 16px}
.chatpanel .msg.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:ncdot 1s infinite ease-in-out}
.chatpanel .msg.typing i:nth-child(2){animation-delay:.15s}.chatpanel .msg.typing i:nth-child(3){animation-delay:.3s}
@keyframes ncdot{0%,80%,100%{opacity:.25;transform:none}40%{opacity:1;transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.chatpanel .msg.typing i{animation:none}}
body.light.nc .chatpanel .chips{gap:8px;padding:2px 16px 14px;background:var(--paper-2)}
body.light.nc .chatpanel .chips button{font-family:var(--sans);font-size:15.5px;font-weight:600;color:var(--ink);background:var(--paper-2);
  border:1px solid color-mix(in srgb,var(--ink) 55%,transparent);border-radius:var(--btn-r);padding:9px 15px;min-height:44px;cursor:pointer;
  transition:background-color var(--t-micro) var(--ease-out),border-color var(--t-micro) var(--ease-out),color var(--t-micro) var(--ease-out)}
@media(hover:hover){body.light.nc .chatpanel .chips button:hover{background:var(--ink);border-color:var(--ink);color:var(--paper-2)}}
body.light.nc .chatpanel .chips button:focus-visible{outline:2px solid var(--leaf-txt);outline-offset:2px}
body.light.nc .chatform{gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:var(--stone)}
body.light.nc .chatform input{font-size:16px;min-height:48px;color:var(--ink);background:var(--paper-2);border:1px solid color-mix(in srgb,var(--ink) 40%,transparent);border-radius:var(--btn-r);padding:12px 14px}
body.light.nc .chatform input::placeholder{color:var(--muted)}
body.light.nc .chatform input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--leaf) 45%,transparent)}
body.light.nc .chatform button{flex:0 0 48px;width:48px;height:48px;border-radius:var(--btn-r);border:0;background:var(--ink);color:var(--paper-2);display:grid;place-items:center;cursor:pointer;
  transition:background-color var(--t-micro) var(--ease-out)}
@media(hover:hover){body.light.nc .chatform button:hover{background:var(--leaf-txt)}}
body.light.nc .chatform button:focus-visible{outline:2px solid var(--leaf-txt);outline-offset:2px}
body.light.nc .chatpanel .chatnote{font-size:13px;color:var(--muted);padding:0 16px 12px;line-height:1.45;text-align:center;margin:0;background:var(--stone)}
.chatscrim{display:none}
@media(max-width:760px){
  body.light.nc .chatfab,body.nc .chattag{display:none!important}
  .chatscrim{display:block;position:fixed;inset:0;z-index:95;background:rgba(18,22,20,.55);opacity:0;pointer-events:none;transition:opacity .25s ease} /* over the header too */
  body.chat-open .chatscrim{opacity:1;pointer-events:auto}
  body.chat-open{overflow:hidden}
  body.chat-open .bookbar{display:none}
  body.light.nc .chatpanel{z-index:96;left:0;right:0;top:auto;bottom:var(--kb,0px);width:auto;max-height:none;
    height:min(calc(var(--vvh,100vh) * .9),720px);height:min(calc(var(--vvh,100dvh) * .9),720px);
    border-radius:0;border-left:0;border-right:0;border-bottom:0;padding-bottom:env(safe-area-inset-bottom);transform:translateY(28px)}
  body.light.nc.chat-open .chatpanel{transform:none}
  body.light.nc .chatpanel .chips{padding:2px 14px 12px}
  body.light.nc .chatform{padding:10px 12px}
}

/* SEO pass 2026-10-09: the search phrase inside the home h1, set small under the three words; the Eastern Shore line on service pages */
body.nc .nc-h1 .nc-kw{display:block;font-size:clamp(1.05rem,1.6vw,1.35rem);font-weight:400;font-style:italic;line-height:1.3;color:var(--leaf-hot,#7EDB52);margin-top:.45em;text-shadow:none;max-width:none}
body.nc .nc-where{max-width:62ch;margin:1.4rem auto 0;font-size:1.05rem;line-height:1.55;color:var(--muted)}
