:root { --garden-ink:var(--ink,#1b2823); --garden-muted:color-mix(in srgb,var(--ink,#1b2823) 66%,var(--paper,#fff)); --garden-line:color-mix(in srgb,var(--ink,#1b2823) 14%,var(--paper,#fff)); --garden-sage:var(--lawn,#b7c7aa); --garden-paper:var(--paper,#fff); --garden-ease:cubic-bezier(.2,.7,.2,1); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body.garden-site { margin:0; background:var(--garden-paper); color:var(--garden-ink); font-family:Inter,"Segoe UI",Arial,sans-serif; font-size:16px; line-height:1.5; -webkit-font-smoothing:antialiased; }
::selection { background:#dce6d9; color:#162019; }
a { color:inherit; text-decoration:none; }
button,input,textarea { font:inherit; }
button,a,input,textarea { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
button { color:inherit; cursor:pointer; }
a,button { transition:color .18s,background .18s,border-color .18s,transform .24s var(--garden-ease); }
:focus-visible { outline:2px solid #59725e; outline-offset:5px; }
.garden-skip { position:fixed; z-index:100; top:-100px; left:16px; padding:12px 20px; background:white; border:1px solid var(--garden-ink); }
.garden-skip:focus { top:16px; }
.garden-header { min-height:98px; max-width:1600px; margin:auto; padding:24px 48px; display:flex; align-items:center; justify-content:space-between; gap:30px; background:#fff; position:relative; z-index:5; }
.garden-brand { font-size:23px; font-weight:650; letter-spacing:-1px; line-height:1.05; min-height:48px; display:flex; flex-direction:column; justify-content:center; }
.garden-brand span { font-size:11px; font-weight:500; letter-spacing:2px; margin-top:6px; text-transform:uppercase; }
.garden-brand:hover { color:#647f60; }
.garden-header nav { display:flex; flex-wrap:wrap; align-items:center; min-width:0; gap:4px 36px; margin-left:auto; margin-right:36px; }
.garden-header nav a { font-size:14px; padding:12px 2px; position:relative; max-width:100%; overflow-wrap:anywhere; min-height:44px; }
.garden-header nav a::after { content:""; height:1px; background:var(--garden-ink); position:absolute; bottom:7px; left:0; right:100%; transition:right .25s; }
.garden-header nav a:hover::after,.garden-header nav a[aria-current]::after { right:0; }
.garden-contact-link { display:flex; align-items:center; justify-content:center; gap:26px; min-height:46px; padding:10px 22px; border:1px solid var(--garden-line); border-radius:50px; font-size:13px; }
.garden-contact-link:hover { background:var(--garden-ink); color:white; border-color:var(--garden-ink); }
.garden-contact-link span { transition:transform .2s; }
.garden-contact-link:hover span { transform:translate(2px,-2px); }
.garden-utility { max-width:1600px; margin:auto; padding:0 48px 22px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--garden-line); padding-top:12px; }
.garden-back { display:flex; align-items:center; gap:12px; font-size:12px; color:var(--garden-muted); min-height:44px; padding-right:18px; }
.garden-back span { font-size:19px; transition:transform .2s; }
.garden-back:hover { color:var(--garden-ink); }
.garden-back:hover span { transform:translateX(-4px); }
.garden-scene-controls { display:flex; align-items:center; gap:5px; }
.garden-scene-controls button { border:1px solid transparent; background:white; border-radius:50%; width:44px; height:44px; font-size:20px; display:grid; place-items:center; }
.garden-scene-controls button:hover,.garden-scene-controls button[aria-pressed=true] { background:#edf1eb; border-color:var(--garden-line); }
main { max-width:1600px; margin:auto; padding:0 48px; min-height:55vh; }
.garden-section { margin:0 0 100px; }
h1,h2,h3,p,figure { margin:0; }
h1 { font-size:clamp(42px,5.8vw,80px); letter-spacing:-.06em; font-weight:500; line-height:1.08; text-wrap:balance; }
h2 { font-size:clamp(28px,3.4vw,46px); font-weight:450; line-height:1.15; letter-spacing:-.045em; }
h3 { font-size:22px; font-weight:500; }
.garden-paragraph { color:var(--garden-muted); line-height:1.7; max-width:620px; }
.garden-eyebrow { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--garden-muted); }
.garden-button { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; min-height:50px; padding:13px 24px; border:1px solid var(--garden-ink); background:var(--garden-ink); color:#fff; border-radius:40px; font-size:13px; font-weight:500; width:fit-content; cursor:pointer; }
.garden-button > span:last-child { font-size:18px; transition:transform .25s; }
.garden-button:hover { background:#405944; border-color:#405944; transform:translateY(-2px); }
.garden-button:hover > span:last-child { transform:translate(2px,-2px); }
.garden-button:active { transform:translateY(0); }
.garden-button:disabled { opacity:.5; cursor:wait; }
.garden-button-quiet { background:transparent; color:var(--garden-ink); border-color:var(--garden-line); }
.garden-button-quiet:hover { color:white; }
.garden-stack { display:flex; flex-direction:column; align-items:flex-start; gap:20px; }
.garden-row { flex-direction:row; }
.garden-hero > .garden-stack { display:grid; grid-template-columns:1fr auto; align-items:center; gap:5px 32px; padding:14px 0 44px; }
.garden-hero .garden-eyebrow { grid-column:1 / -1; margin-bottom:15px; }
.garden-hero h1 { grid-column:1; }
.garden-hero .garden-paragraph { font-size:clamp(17px,1.55vw,21px); line-height:1.65; letter-spacing:0; color:var(--garden-muted); grid-column:1; max-width:690px; margin-top:18px; }
.garden-hero .garden-button { grid-column:2; grid-row:2 / 4; align-self:center; }
.garden-scene { position:relative; width:100%; aspect-ratio:3 / 2; overflow:hidden; isolation:isolate; border-radius:14px; background:#eef1eb; }
.garden-scene > img,.garden-scene > svg { display:block; width:100%; height:100%; object-fit:cover; }
.garden-scene > svg { transition:filter 2s; }
.garden-hero > .garden-scene { aspect-ratio:2.15; max-height:690px; }
.garden-hero > .garden-scene img,.garden-hero > .garden-scene svg { object-position:center 58%; }
.garden-scene::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:transparent; transition:background 4s; }
.garden-scene > img,.garden-scene > svg { filter:saturate(1.13); }
.garden-weather { position:absolute; inset:0; z-index:2; width:100%; height:100%; pointer-events:none; }
.garden-scene svg path { transition:filter .75s ease,opacity .75s ease; }
.garden-scene svg path.cell-lit { filter:brightness(1.15) saturate(1.15); }
.garden-services h2 { margin-bottom:16px; }
.garden-services > .garden-paragraph { margin-bottom:38px; }
.garden-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 24px; }
.garden-card { position:relative; min-width:0; }
.garden-card .garden-scene { aspect-ratio:1.35; border-radius:12px; transition:transform .5s var(--garden-ease),box-shadow .5s; }
.garden-card:hover .garden-scene { transform:translateY(-5px); box-shadow:0 14px 35px -22px #17331f66; }
.garden-card .garden-button { display:flex; width:100%; border:0; background:none; color:var(--garden-ink); font-size:16px; padding:16px 0; border-radius:0; border-bottom:1px solid var(--garden-line); }
.garden-card .garden-button:hover { color:#506b51; transform:none; }
.garden-card .garden-scene { cursor:pointer; }
.garden-card:has(a:focus-visible) .garden-scene { outline:2px solid #59725e; outline-offset:4px; }
.garden-card:last-child:nth-child(3n + 1):not([data-width-p]):not([data-width-t]):not([data-width-d]) { grid-column:1 / -1; }
.garden-card:last-child:nth-child(3n + 1) .garden-scene { aspect-ratio:3.4; max-height:350px; }
.garden-service > .garden-scene { aspect-ratio:2.35; max-height:590px; }
.garden-service > .garden-stack { padding-top:40px; display:grid; grid-template-columns:1fr auto; gap:12px 24px; }
.garden-service h1 { font-size:clamp(36px,4.2vw,60px); grid-column:1; }
.garden-service .garden-paragraph { grid-column:1; }
.garden-service .garden-button { grid-column:2; grid-row:1 / 3; align-self:center; }
.garden-plain > h1 { margin:18px 0 42px; }
.garden-plain > .garden-paragraph { margin-bottom:28px; }
.garden-gallery { display:grid; grid-template-columns:2fr 1fr; gap:24px; margin-bottom:36px; }
.garden-gallery .garden-scene:first-child { grid-row:span 2; aspect-ratio:auto; }
.garden-quote { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:stretch; margin-top:14px; }
.garden-quote h1 { font-size:clamp(36px,4.7vw,62px); max-width:430px; }
.garden-quote > .garden-scene { height:100%; min-height:590px; aspect-ratio:auto; }
.garden-form { width:100%; margin-top:14px; display:grid; gap:22px; }
.garden-form > label:not(.garden-consent):not(.garden-honey) { display:grid; gap:8px; font-size:12px; color:#526158; }
.garden-form input:not([type=checkbox]),.garden-form textarea { width:100%; border:0; border-bottom:1px solid #bfc9bf; border-radius:0; padding:10px 0; background:#fff; color:var(--garden-ink); outline-offset:5px; font-size:16px; resize:vertical; }
.garden-form input::placeholder { color:#778079; }
.garden-form input:hover,.garden-form textarea:hover { border-color:#59725e; }
.garden-consent { display:flex; gap:10px; align-items:center; font-size:12px; color:var(--garden-muted); }
.garden-consent input { width:20px; height:20px; accent-color:#405944; }
.garden-consent a { text-decoration:underline; text-underline-offset:3px; }
.garden-honey { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.garden-form-status { min-height:24px; font-size:13px; color:#405944; }
.garden-form-status[data-error] { color:#a5382c; }
.garden-footer { max-width:1600px; margin:0 auto; padding:30px 48px; border-top:1px solid var(--garden-line); display:flex; gap:24px; align-items:center; justify-content:space-between; color:var(--garden-muted); font-size:12px; }
.garden-footer > div { display:flex; gap:26px; }
.garden-footer a { padding:12px 0; min-height:44px; display:inline-flex; align-items:center; }
.garden-footer a:hover { color:var(--garden-ink); text-decoration:underline; text-underline-offset:4px; }
.garden-admin { opacity:.75; }
.is-preview .lc-hover { outline:1px dashed #71836c; outline-offset:3px; }
.is-preview .lc-selected { outline:2px solid #71836c; outline-offset:4px; }
.is-preview .lc-editing { outline:2px solid #49644e; outline-offset:7px; cursor:text; min-width:1em; }
.is-preview .garden-card .garden-scene { pointer-events:auto; }
.is-preview .garden-card .garden-button::before { display:none; }
.garden-intro { position:fixed; inset:0; z-index:90; background:#fff; pointer-events:none; visibility:hidden; }
.garden-intro > span { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:34px; font-weight:500; letter-spacing:-1.5px; line-height:1; color:#111; white-space:nowrap; }
.garden-intro em { display:block; font-style:normal; font-size:12px; letter-spacing:3px; text-transform:uppercase; margin-top:12px; }
.intro-active .garden-intro { visibility:visible; animation:intro-out .95s both; }
.intro-active .garden-intro > span { animation:mark-arrive .9s var(--garden-ease) both; }
@keyframes intro-out { 0%,70%{opacity:1;visibility:visible} 100%{opacity:0;visibility:hidden} }
@keyframes mark-arrive { 0%{opacity:0;filter:blur(5px)} 30%,60%{opacity:1;filter:blur(0);top:50%;left:50%;transform:translate(-50%,-50%)} 100%{opacity:1;top:35px;left:max(48px,calc((100vw - 1504px)/2));transform:none;font-size:23px;letter-spacing:-1px} }
.garden-leaving main { opacity:0; transform:translateY(-4px); }
main { transition:opacity .16s,transform .16s; }
.garden-reveal { animation:arrive .65s var(--garden-ease) both; }
@keyframes arrive { from{opacity:.7;transform:translateY(12px)} to{opacity:1;transform:none} }
::view-transition-old(root) { animation-duration:.16s; }
::view-transition-new(root) { animation-duration:.2s; }
@media(min-width:1600px) { .garden-hero > .garden-stack { padding-top:28px; } }
@media(max-width:1000px) {
  .garden-header { padding:22px 30px; } .garden-utility,main { padding-left:30px; padding-right:30px; }
  .garden-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .garden-card:last-child:nth-child(3n + 1) .garden-scene { aspect-ratio:2.6; }
  .garden-quote { gap:36px; } .garden-quote > .garden-scene { min-height:530px; }
  .garden-footer { padding:24px 30px; } .garden-header nav { margin-right:0; gap:4px 24px; }
}
@media(max-width:600px) {
  .garden-header { min-height:86px; padding:18px 20px; gap:12px; flex-wrap:wrap; }
  .garden-brand { font-size:20px; } .garden-brand span { font-size:9px; }
  .garden-header nav { order:3; width:100%; gap:4px 26px; margin:0; border-top:1px solid #edf0ec; padding-top:4px; }
  .garden-header nav a { font-size:12px; }
  .garden-contact-link { margin-left:auto; padding:10px 15px; gap:18px; font-size:12px; }
  .garden-utility { padding:7px 20px 15px; border:0; }
  main { padding:0 20px; } .garden-section { margin-bottom:58px; }
  .garden-hero > .garden-stack { display:flex; gap:6px; padding:3px 0 28px; }
  .garden-hero .garden-eyebrow { font-size:10px; margin-bottom:12px; }
  h1 { font-size:46px; } .garden-hero .garden-paragraph { font-size:17px; }
  .garden-hero .garden-button { margin-top:19px; align-self:flex-start; }
  .garden-hero > .garden-scene { aspect-ratio:.96; }
  .garden-grid { gap:24px 14px; } .garden-card .garden-scene { aspect-ratio:1; border-radius:9px; }
  .garden-card .garden-button { font-size:13px; gap:8px; min-height:56px; padding:12px 0; }
  .garden-services h2 { margin-bottom:24px; }
  .garden-service > .garden-scene { aspect-ratio:1; }
  .garden-service > .garden-stack { display:flex; gap:15px; padding-top:25px; }
  .garden-service .garden-button { margin-top:6px; }
  .garden-quote { display:flex; flex-direction:column; gap:28px; }
  .garden-quote > .garden-scene { order:-1; min-height:0; height:230px; }
  .garden-quote h1 { font-size:40px; }
  .garden-gallery { grid-template-columns:1fr; gap:16px; }
  .garden-gallery .garden-scene:first-child { aspect-ratio:1.5; }
  .garden-footer { padding:22px 20px; gap:8px 24px; flex-wrap:wrap; }
  .garden-footer > div { width:100%; justify-content:space-between; border-top:1px solid #edf0ec; padding-top:6px; }
  @keyframes mark-arrive { 0%{opacity:0;filter:blur(5px)} 30%,60%{opacity:1;filter:blur(0);top:50%;left:50%;transform:translate(-50%,-50%)} 100%{opacity:1;top:29px;left:20px;transform:none;font-size:20px;letter-spacing:-1px} }
}
@media(prefers-reduced-motion:reduce) {
  @view-transition { navigation:none; }
  html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; }
  .garden-intro { visibility:hidden!important; } .garden-weather { display:none; }
}

/* Existing typed editor controls remain the source of presentation changes. */
.garden-header,.garden-scene-controls button,.garden-form input:not([type=checkbox]),.garden-form textarea { background:var(--garden-paper); }
.garden-button-hot { background:var(--hivis); border-color:var(--hivis); color:var(--garden-on-hivis); }
.garden-button-ink { background:var(--ink); border-color:var(--ink); color:var(--garden-on-ink); }
.garden-button-hot:hover,.garden-button-ink:hover { background:#405944; border-color:#405944; color:#fff; }
.garden-hero .garden-paragraph { color:var(--garden-muted); }
.garden-card[data-card-tone]:not([data-card-tone=plain]) { padding:16px; border-radius:14px; }
.garden-card[data-card-tone=hot] { background:var(--hivis); }
.garden-card[data-card-tone=lawn] { background:var(--lawn); }
.garden-card[data-card-tone=ice] { background:var(--ice); }
.garden-card[data-card-tone=sun] { background:var(--sun); }
.garden-card[data-card-tone=ink] { background:var(--ink); color:var(--paper); }
.garden-card[data-card-tone=ink] .garden-button { color:var(--paper); }
.garden-card[data-card-tone=hot],.garden-card[data-card-tone=hot] .garden-button { color:var(--garden-on-hivis); }
.garden-card[data-card-tone=lawn],.garden-card[data-card-tone=lawn] .garden-button { color:var(--garden-on-lawn); }
.garden-card[data-card-tone=ice],.garden-card[data-card-tone=ice] .garden-button { color:var(--garden-on-ice); }
.garden-card[data-card-tone=sun],.garden-card[data-card-tone=sun] .garden-button { color:var(--garden-on-sun); }
.garden-card[data-card-tone=ink],.garden-card[data-card-tone=ink] .garden-button { color:var(--garden-on-ink); }
.garden-scene[data-focal="0,0"] > img { object-position:0 0; }
.garden-scene[data-focal="1,0"] > img { object-position:50% 0; }
.garden-scene[data-focal="2,0"] > img { object-position:100% 0; }
.garden-scene[data-focal="0,1"] > img { object-position:0 50%; }
.garden-scene[data-focal="1,1"] > img { object-position:50% 50%; }
.garden-scene[data-focal="2,1"] > img { object-position:100% 50%; }
.garden-scene[data-focal="0,2"] > img { object-position:0 100%; }
.garden-scene[data-focal="1,2"] > img { object-position:50% 100%; }
.garden-scene[data-focal="2,2"] > img { object-position:100% 100%; }
[data-align=s] { text-align:left; align-self:start; justify-self:start; }
[data-align=c] { text-align:center; align-self:center; justify-self:center; margin-inline:auto; }
[data-align=e] { text-align:right; align-self:end; justify-self:end; margin-left:auto; }
.garden-grid { grid-template-columns:repeat(12,minmax(0,1fr)); }
.garden-grid > * { grid-column:span 4; }
.garden-gallery { grid-template-columns:repeat(12,minmax(0,1fr)); }
.garden-gallery > * { grid-column:span 4; }
.garden-gallery > :first-child { grid-column:span 8; }
@media(max-width:1000px) { .garden-grid > * { grid-column:span 6; } }
@media(max-width:600px) { .garden-gallery > *,.garden-gallery > :first-child { grid-column:span 12; } }
[data-width-p],[data-width-t],[data-width-d] { --garden-span:12; width:calc(100% * var(--garden-span) / 12); }
[data-width-p="1"]{--garden-span:1} [data-width-p="2"]{--garden-span:2} [data-width-p="3"]{--garden-span:3} [data-width-p="4"]{--garden-span:4}
[data-width-p="5"]{--garden-span:5} [data-width-p="6"]{--garden-span:6} [data-width-p="7"]{--garden-span:7} [data-width-p="8"]{--garden-span:8}
[data-width-p="9"]{--garden-span:9} [data-width-p="10"]{--garden-span:10} [data-width-p="11"]{--garden-span:11} [data-width-p="12"]{--garden-span:12}
@media(min-width:700px) {
  [data-width-t="1"]{--garden-span:1} [data-width-t="2"]{--garden-span:2} [data-width-t="3"]{--garden-span:3} [data-width-t="4"]{--garden-span:4}
  [data-width-t="5"]{--garden-span:5} [data-width-t="6"]{--garden-span:6} [data-width-t="7"]{--garden-span:7} [data-width-t="8"]{--garden-span:8}
  [data-width-t="9"]{--garden-span:9} [data-width-t="10"]{--garden-span:10} [data-width-t="11"]{--garden-span:11} [data-width-t="12"]{--garden-span:12}
}
@media(min-width:1100px) {
  [data-width-d="1"]{--garden-span:1} [data-width-d="2"]{--garden-span:2} [data-width-d="3"]{--garden-span:3} [data-width-d="4"]{--garden-span:4}
  [data-width-d="5"]{--garden-span:5} [data-width-d="6"]{--garden-span:6} [data-width-d="7"]{--garden-span:7} [data-width-d="8"]{--garden-span:8}
  [data-width-d="9"]{--garden-span:9} [data-width-d="10"]{--garden-span:10} [data-width-d="11"]{--garden-span:11} [data-width-d="12"]{--garden-span:12}
}
.garden-grid > :is([data-width-p],[data-width-t],[data-width-d]),.garden-gallery > :is([data-width-p],[data-width-t],[data-width-d]) { width:auto; grid-column:span var(--garden-span); }

/* Useful copy, generous rows and colour carried by the existing illustration. */
body.garden-site { overflow-x:clip; }
.garden-local { font-size:12px; color:var(--garden-muted); }
.garden-hero h1 { max-width:850px; }
.garden-card .garden-paragraph { font-size:15px; line-height:1.7; padding-top:14px; }
.garden-grid { gap:48px 28px; }
.garden-card:last-child:nth-child(3n + 1) .garden-scene { aspect-ratio:3 / 2; }
.garden-plain { display:flex; flex-direction:column; align-items:flex-start; gap:24px; }
.garden-plain:has(> .garden-eyebrow) { background:#edf4e8; border:1px solid #d6e4cc; border-radius:18px; padding:clamp(28px,5vw,72px); }
.garden-plain:has(> .garden-eyebrow) h2 { max-width:730px; }
.garden-plain:has(> .garden-eyebrow) .garden-paragraph { max-width:730px; color:#3c5140; font-size:18px; }
.garden-service .garden-stack { max-width:100%; }
.garden-service .garden-paragraph { font-size:18px; }
.garden-form select { font:inherit; color:var(--garden-ink); width:100%; min-height:50px; padding:12px; border:1px solid var(--garden-line); border-radius:7px; background:var(--garden-paper); }
.garden-motion-toggle { font:inherit; color:inherit; border:0; border-bottom:1px solid transparent; background:transparent; padding:12px 0; min-height:44px; }
.garden-motion-toggle:hover { color:var(--garden-ink); border-bottom-color:currentColor; }
.reveal-ready { opacity:0; transition:opacity .65s ease; transition-delay:var(--reveal-delay,0ms); }
.reveal-ready > * { transform:translateX(-65vw); transition:transform .9s cubic-bezier(.16,1,.3,1); transition-delay:var(--reveal-delay,0ms); }
.reveal-ready:nth-child(even) > * { transform:translateX(65vw); }
.reveal-ready.is-revealed { opacity:1; }
.reveal-ready.is-revealed > * { transform:translateX(0); }
.is-preview .reveal-ready { opacity:1; transform:none; }
.motion-paused .reveal-ready,.motion-paused .reveal-ready > * { opacity:1; transform:none; transition:none; }
@media(max-width:699px) {
  .garden-grid > * { grid-column:span 12; }
  .garden-grid { row-gap:32px; column-gap:0; }
  .garden-card .garden-scene { aspect-ratio:1.45; }
  .garden-card .garden-button { font-size:18px; }
  .garden-card .garden-paragraph { font-size:16px; padding-top:10px; }
  .garden-hero h1 { max-width:600px; }
  .garden-local { font-size:11px; }
  .garden-header nav { gap:4px 24px; }
  .garden-service .garden-paragraph { font-size:16px; }
  .garden-footer > div { gap:20px; }
}
@media(prefers-reduced-motion:reduce) { .reveal-ready,.reveal-ready > * { opacity:1; transform:none; } }
