:root { color-scheme:light; --green:#16372f; --ink:#1d302b; --paper:#f4f1e8; --cream:#e8e1d0; --ochre-type:#ab7628; --ochre:#dda93e; --rule:#b7bcad; --wordmark-tracking:.035em; --wordmark-gap:.22em; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.5 "Avenir Next",Avenir,"Segoe UI",Arial,sans-serif; }
img { max-width:100%; }
a { color:inherit; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid var(--ochre); outline-offset:4px; }
.skip-link { position:absolute; top:-80px; left:15px; z-index:10; padding:10px 16px; background:var(--ochre); color:var(--green); }
.skip-link:focus { top:12px; }
.section-wrap,.header-inner { width:min(100% - 80px,1380px); margin-inline:auto; }
.site-header { background:var(--paper); border-bottom:1px solid var(--green); }
.header-inner { min-height:91px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:inline-flex; flex-direction:column; text-decoration:none; line-height:1; white-space:nowrap; }
.brand-name { display:inline-flex; align-items:baseline; column-gap:var(--wordmark-gap); font-size:25px; font-weight:800; letter-spacing:var(--wordmark-tracking); text-transform:uppercase; }
.brand-name i { color:var(--ochre-type); font-family:Georgia,serif; font-size:1em; font-style:italic; font-weight:400; letter-spacing:0; }
.brand-detail { margin-top:5px; font-size:9px; font-weight:800; letter-spacing:.19em; text-transform:uppercase; }
.header-inner nav { display:flex; align-items:center; gap:40px; font-size:12px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.header-inner nav a { text-decoration:none; border-bottom:1px solid transparent; }
.header-inner nav a:hover { border-color:currentColor; }
.nav-contact { padding:13px 0; }
.nav-contact span { margin-left:9px; font-size:17px; }
.masthead { padding-top:43px; padding-bottom:43px; }
.masthead-index { display:flex; justify-content:space-between; gap:20px; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.masthead h1 { display:flex; align-items:baseline; gap:var(--wordmark-gap); width:max-content; max-width:100%; margin:31px 0 0; color:var(--green); font-size:clamp(62px,11.7vw,180px); font-weight:800; line-height:.78; letter-spacing:var(--wordmark-tracking); white-space:nowrap; }
.masthead h1 em { flex:none; color:var(--ochre-type); font-family:Georgia,serif; font-style:italic; font-weight:400; letter-spacing:0; }
.services h2 em,.contact-strip h2 em { color:var(--ochre-type); font-family:Georgia,serif; font-style:italic; font-weight:400; letter-spacing:-.12em; }
.masthead-foot { display:flex; align-items:baseline; justify-content:space-between; gap:30px; padding-top:0; }
.masthead-foot strong { font-size:12px; letter-spacing:.19em; }
.masthead-foot p { max-width:27ch; margin:0; font-size:20px; line-height:1.25; font-weight:500; }
.image-story { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(0,1fr); gap:5px; padding:5px; background:var(--green); }
.image-story figure { position:relative; min-width:0; height:clamp(400px,54vw,740px); margin:0; overflow:hidden; }
.image-story img { width:100%; height:100%; object-fit:cover; display:block; }
.mower-photo img { object-position:42% 50%; }
.dog-photo img { object-position:center 62%; }
.intro-band { background:var(--green); color:var(--paper); }
.intro-inner { min-height:235px; display:flex; justify-content:space-between; align-items:center; gap:40px; padding-block:35px; }
.intro-inner > p { max-width:21ch; margin:0; font-family:Georgia,serif; font-size:clamp(32px,4vw,54px); line-height:1.07; letter-spacing:-.045em; }
.intro-inner > div { display:flex; flex-direction:column; gap:22px; align-items:flex-start; }
.intro-inner span { font-size:15px; }
.intro-inner a { padding-bottom:8px; border-bottom:2px solid var(--ochre); font-size:14px; font-weight:800; text-decoration:none; }
.intro-inner a span { margin-left:20px; font-size:19px; }
.eyebrow { margin:0; font-size:11px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.services { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(55px,9vw,160px); padding-block:clamp(95px,12vw,180px); }
.services-heading h2 { margin:37px 0 26px; font-size:clamp(58px,6.6vw,98px); line-height:.96; letter-spacing:-.08em; }
.services-heading h2 em { letter-spacing:-.09em; }
.services-heading > p:last-child { max-width:30ch; font-size:18px; }
.services-list { list-style:none; padding:0; margin:0; border-top:1px solid var(--green); }
.services-list li { padding:21px 0 25px; border-bottom:1px solid var(--rule); }
.services-list strong { display:block; max-width:26ch; font-size:clamp(20px,2.2vw,31px); font-weight:600; line-height:1.23; letter-spacing:-.045em; }
.contact-strip { background:var(--ochre); color:var(--green); }
.contact-strip-inner { display:flex; align-items:end; justify-content:space-between; gap:30px; padding-block:clamp(70px,9vw,135px); }
.contact-strip h2 { margin:27px 0 20px; font-size:clamp(52px,7vw,110px); line-height:.96; letter-spacing:-.08em; }
.contact-strip h2 em { color:var(--green); }
.contact-strip p:last-child { margin:0; font-size:19px; }
.round-link { display:grid; place-items:center; flex:none; width:126px; height:126px; border:1.5px solid var(--green); border-radius:50%; font-size:65px; line-height:1; text-decoration:none; transition:background .2s,color .2s; }
.round-link:hover { background:var(--green); color:var(--paper); }
.site-footer { background:var(--green); color:var(--paper); }
.footer-inner { display:flex; justify-content:space-between; gap:25px; padding-block:30px; font-size:12px; }
.contact-page { background:var(--paper); color:var(--green); }
.contact-page-inner { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(40px,8vw,120px); padding-block:clamp(70px,9vw,135px); }
.contact-page-intro h1,.thanks-page h1 { max-width:11ch; margin:25px 0 0; font-size:clamp(58px,6.7vw,101px); font-weight:700; line-height:1.02; letter-spacing:-.055em; }
.contact-lead { max-width:32ch; margin:30px 0 0; font:25px/1.35 Georgia,serif; }
.contact-phone-block { display:flex; flex-direction:column; gap:5px; margin-top:80px; padding-top:17px; border-top:1px solid var(--green); }
.contact-phone-block span { font-size:11px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.contact-phone-block a { width:fit-content; font-size:clamp(34px,3.5vw,51px); font-weight:700; letter-spacing:.01em; text-underline-offset:6px; }
.contact-region { margin-top:36px; font-size:14px; line-height:1.7; }
.enquiry-card { padding:clamp(25px,4vw,60px); background:#e6e4d8; border-top:7px solid var(--ochre); }
.enquiry-card h2 { margin:0; font-size:clamp(37px,3.8vw,56px); line-height:1.08; letter-spacing:-.045em; }
.enquiry-card > p { margin:16px 0 37px; }
.form-row { display:grid; gap:20px; margin-bottom:22px; }
.two-column { grid-template-columns:repeat(2,minmax(0,1fr)); }
.form-field { min-width:0; margin-bottom:22px; }
.form-row .form-field { margin-bottom:0; }
.form-field label,.photo-inputs label { display:block; margin-bottom:8px; font-size:13px; font-weight:800; }
.form-field input,.form-field textarea { display:block; width:100%; min-height:51px; padding:12px 13px; border:1px solid #a6ab9f; border-radius:0; background:#faf9f4; color:var(--ink); font:inherit; font-size:16px; line-height:1.4; }
.form-field textarea { min-height:154px; resize:vertical; }
.photo-fields { margin:10px 0 30px; padding:0; border:0; }
.photo-fields legend { font-size:17px; font-weight:800; }
.photo-fields legend span { font-weight:400; }
.photo-fields > p { margin:7px 0 15px; font-size:14px; }
.photo-inputs { display:grid; gap:8px; }
.photo-inputs label { display:grid; grid-template-columns:65px minmax(0,1fr); align-items:center; gap:10px; margin:0; padding:12px; background:#faf9f4; border:1px solid #a6ab9f; }
.photo-inputs input { width:100%; min-width:0; font-size:13px; }
.form-error { color:#9d321d; font-weight:800; }
.form-error[hidden] { display:none; }
.honeypot { position:absolute; left:-9999px; }
.button { display:inline-flex; min-height:54px; align-items:center; gap:22px; padding:11px 19px; border:1px solid var(--green); background:var(--green); color:var(--paper); font-family:inherit; font-size:13px; font-weight:800; line-height:1; letter-spacing:.05em; text-decoration:none; text-transform:uppercase; cursor:pointer; }
.button:hover { background:#285248; }
.button span { font-size:19px; }
.button-light { background:var(--ochre); color:var(--green); border-color:var(--ochre); }
.button-light:hover { background:var(--cream); }
.form-note { margin:18px 0 0; font-size:12px; line-height:1.5; }
.form-note a { text-underline-offset:3px; }
.thanks-page { min-height:65vh; background:var(--paper); }
.thanks-inner { padding-block:clamp(90px,11vw,160px); }
.thanks-inner > p:not(.eyebrow) { margin:25px 0 30px; font-size:21px; }
@media (max-width:850px) {
  .section-wrap,.header-inner { width:min(100% - 44px,1380px); }
  .masthead h1 { font-size:clamp(62px,11vw,105px); }
  .services,.contact-page-inner { grid-template-columns:1fr; gap:55px; }
  .services-heading > p:last-child { max-width:44ch; }
  .contact-phone-block { margin-top:42px; }
}
@media (max-width:600px) {
  .section-wrap,.header-inner { width:min(100% - 34px,1380px); }
  .header-inner { min-height:72px; }
  .brand-name { font-size:20px; }
  .brand-detail { font-size:7.5px; }
  .header-inner nav { gap:0; }
  .header-inner nav a:first-child:not(:last-child) { display:none; }
  .nav-contact { font-size:11px; }
  .masthead { padding-top:26px; padding-bottom:29px; }
  .masthead-index { font-size:9px; letter-spacing:.08em; }
  .masthead h1 { margin:27px 0 10px; font-size:clamp(39px,11.5vw,58px); }
  .masthead-foot { display:block; }
  .masthead-foot strong { font-size:10px; }
  .masthead-foot p { margin-top:13px; font-size:18px; }
  .image-story { grid-template-columns:1.45fr 1fr; gap:3px; padding:3px; }
  .image-story figure { height:clamp(280px,78vw,430px); }
  .mower-photo img { object-position:29% 50%; }
  .dog-photo img { object-position:48% center; }
  .intro-inner { display:block; padding-block:45px 50px; }
  .intro-inner > p { font-size:36px; }
  .intro-inner > div { margin-top:30px; gap:18px; }
  .services { padding-block:80px 95px; gap:37px; }
  .services-heading h2 { margin:22px 0; font-size:60px; }
  .services-list li { padding:17px 0 19px; }
  .services-list strong { font-size:21px; }
  .contact-strip-inner { padding-block:74px; }
  .contact-strip h2 { font-size:52px; }
  .contact-strip p:last-child { max-width:27ch; font-size:16px; }
  .round-link { width:67px; height:67px; align-self:flex-end; font-size:39px; }
  .footer-inner { flex-direction:column; gap:5px; padding-block:27px; }
  .contact-page-inner { padding-block:62px; gap:44px; }
  .contact-page-intro h1 { font-size:clamp(50px,12vw,72px); }
  .contact-lead { font-size:21px; }
  .enquiry-card { padding:28px 17px 35px; }
  .two-column { grid-template-columns:1fr; }
  .photo-inputs label { grid-template-columns:1fr; }
}
@media (max-width:380px) {
  .masthead h1 { font-size:11.3vw; }
  .nav-contact span { display:none; }
  .contact-strip h2 { font-size:45px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .round-link { transition:none; } }
