:root{--shadow:0 18px 48px rgba(24,61,53,.1)}
section[id],#quote{scroll-margin-top:110px}*{min-width:0}h1{line-height:1.04;font-size:clamp(3rem,5.4vw,4.9rem)}.scribble{white-space:normal}.scribble:after{display:none}.hero-grid{grid-template-columns:1fr 1fr}.hero-art img{height:560px;object-position:62% center}.hero-points{gap:12px}.section-head{align-items:center}.section-head p{padding-top:16px}.field label,.calc-field label,.form-grid label{font-size:.875rem}.field:focus-within,.calc-field:focus-within{outline:3px solid #438c82;outline-offset:3px}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #2f6f66;outline-offset:4px}.calculator :focus-visible{outline-color:var(--yellow)}button,a.button,select,input{min-height:44px}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--surface);padding:15px}.skip-link:focus{top:10px}.service-select{margin-top:20px;width:100%;background:var(--mist);color:var(--ink)}.service.selected{border:2px solid #2f6f66;padding:22px;background:#eaf0e5}.service.selected .service-select{background:var(--ink);color:var(--paper)}.journey{display:flex;align-items:center;gap:22px;list-style:none;padding:0;margin:0 0 28px;color:var(--muted);font-size:.9rem;font-weight:750}.journey li{display:flex;align-items:center;gap:8px}.journey b{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%}.journey .current{color:#2f6f66}.journey .current b{background:var(--aqua);border-color:var(--aqua)}.calculator{align-items:start;gap:28px;padding:32px}.calc-controls{gap:18px}.calc-field{background:#244b41}.calc-field select,.calc-field input{font-size:1rem}.calc-field input::placeholder{color:#d0ded1}.calc-hint{grid-column:1/-1;color:#d0ded1;margin:0;font-size:.9rem}.extras-label{grid-column:1/-1;margin:0;font-size:1rem}.extras{display:grid;grid-template-columns:1fr 1fr}.chip{text-align:left;border-radius:14px;font-size:.9rem;min-height:58px;padding:13px}.chip:before{content:'＋';margin-right:7px}.chip.active:before{content:'✓'}.breakdown{padding:15px 0;border-top:1px solid var(--line);margin:6px 0}.breakdown div{display:flex;justify-content:space-between;gap:16px;font-size:.9rem;margin:9px 0}.breakdown dt{color:var(--muted)}.breakdown dd{margin:0;font-weight:750}.total{position:sticky;top:100px;padding:26px}.total .amount{font-size:3.6rem}.error-text{color:#ffcfca;margin:8px 0 0;font-size:.9rem}.postcode-error{grid-column:1/-1}.quote .error-text{color:#a62925}.note{padding:12px 15px;border-radius:12px;background:#eaf0e5;color:#2f6f66;font-size:.9rem}.review-dialog{border:0;border-radius:26px;padding:30px;width:min(620px,calc(100% - 28px));max-height:85dvh;overflow:auto;color:var(--ink);box-shadow:var(--shadow)}.review-dialog::backdrop{background:rgba(13,35,28,.7);backdrop-filter:blur(4px)}.review-dialog h2{font-size:2rem;line-height:1.1;margin:10px 35px 22px 0;letter-spacing:-.04em}.review-dialog h3{font-size:1rem}.review-dialog .close{min-height:44px;width:44px}.review-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.review-fields label{font-size:.9rem;font-weight:750}.review-fields input,.review-fields select{display:block;width:100%;border:1px solid var(--line);padding:12px;border-radius:12px;margin-top:6px;background:var(--surface);color:var(--ink)}.review-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.review-actions .secondary{background:var(--mist);color:var(--ink)}.review-note{color:var(--muted);font-size:.9rem}.mobile-nav,.mobile-quote{display:none}.nav-menu{display:none}.navlinks{gap:18px}.quote-helper{font-size:.9rem;color:var(--muted);margin:12px 0}.field input{min-width:0}.total[aria-live]{min-height:380px}
@media(max-width:1000px){.hero-grid{grid-template-columns:1fr}.hero-art{order:0}.hero-art img{height:390px}.hero .quote{max-width:100%}.hero h1{max-width:750px}.calculator{grid-template-columns:1fr}.total{position:static}.navlinks a:not(.button){display:none}.nav-menu{display:inline-flex;background:var(--mist);color:var(--ink);padding:10px 15px}.mobile-nav.open{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding:14px}.mobile-nav a{padding:9px 12px;border-radius:10px;background:var(--mist);font-weight:750}.section-head{display:block}.hero{padding-top:35px}.trust{grid-template-columns:1fr 1fr}}
@media(max-width:620px){body{padding-bottom:78px}nav{gap:8px}.logo{font-size:1.08rem}.navlinks>.button:not(.nav-menu){display:none}.hero h1{font-size:clamp(2.7rem,12vw,3.5rem)}.hero-art img{height:300px}.hero{padding-top:24px}.hero .lead{font-size:1.05rem}.trust{gap:15px;font-size:.87rem}.trust b{flex-shrink:0}.calculator{padding:20px;border-radius:24px}.calc-controls{grid-template-columns:1fr}.extras{grid-template-columns:1fr}.journey{gap:10px;font-size:.8rem}.journey b{width:25px;height:25px}.review-fields{grid-template-columns:1fr}.review-dialog{padding:24px}.mobile-quote{display:flex;position:fixed;bottom:0;left:0;right:0;background:rgba(247,245,239,.97);border-top:1px solid var(--line);padding:12px 18px calc(12px + env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:15px;z-index:25}.mobile-quote small{display:block;color:var(--muted);font-size:.8rem}.mobile-quote strong{font-size:1.15rem}.mobile-quote .button{padding:10px 20px}.cta{padding:26px}.promise-main h2{font-size:2.7rem}.room button{gap:15px}.room ul{padding-left:35px}.review-actions .button{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Forest, ivory and sage palette. Teal is reserved for small accents. */
button, input, select, textarea { color: inherit; }
.logo { gap: 8px; flex-shrink: 0; }
.logo > span { white-space: nowrap; }
.logo-icon { display: block; width: 56px; height: 56px; flex: 0 0 56px; object-fit: contain; }
.footer-grid .logo { display: inline-flex; align-items: center; color: var(--paper); font-size: 1.25rem; }
.footer-grid .logo-icon { background: var(--paper); border-radius: 14px; }
@media (max-width: 620px) {
  header .logo-icon { width: 44px; height: 44px; flex-basis: 44px; }
}
.button.yellow { background: var(--ink); color: var(--paper); }
.button.yellow:hover { background: #2d5a4d; }
.button.aqua:hover { background: #c8d9c9; color: var(--ink); }
.service-select:hover { background: #e0e8dc; color: var(--ink); }
.service.selected .service-select:hover { background: #2d5a4d; color: var(--paper); }
.nav-menu:hover { background: #e0e8dc; color: var(--ink); }
.review-actions .secondary:hover { background: #e0e8dc; color: var(--ink); }
.field input { color: var(--ink); background: transparent; }
.field input::placeholder { color: var(--muted); opacity: 1; }
.review-dialog { background: var(--surface); }
.calc-field { border-color: #78988a; }
.chip { border-color: #78988a; }
.review-fields input, .review-fields select, .field { border-color: #6c8274; }
.calc-field:focus-within { outline-color: var(--aqua); }

/* Brightly Clean editorial typography */
body,
button,
input,
select,
textarea {
  font-family: "Merriweather", Georgia, serif;
}

h1,
.section h2,
.cta h2,
.promise-main h2,
.modal-card h2,
.review-dialog h2 {
  font-family: "Merriweather", Georgia, serif;
  font-weight: 900;
  letter-spacing: -0.035em;
}

h1 {
  line-height: 1.08;
  font-size: clamp(3rem, 5.1vw, 4.8rem);
}

.section h2,
.cta h2 {
  line-height: 1.1;
}

.logo,
.navlinks,
.button,
.kicker,
.eyebrow,
.price,
.field label,
.calc-field label {
  letter-spacing: 0;
}

.navlinks,
.button,
.kicker,
.eyebrow,
.field label,
.calc-field label {
  font-size: 0.82rem;
}

/* Full-width first-section banner */
.hero {
  padding: 34px 0 72px;
}

.hero-grid {
  display: block;
  position: relative;
}

.hero-art img {
  width: 100%;
  height: clamp(540px, 58vw, 680px);
  object-fit: cover;
  object-position: center;
  border-radius: 38px;
}

.hero-copy {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: clamp(28px, 5vw, 68px);
  transform: translateY(-50%);
  width: min(560px, calc(100% - 96px));
  padding: clamp(26px, 3.5vw, 46px);
  border: 1px solid rgba(247, 245, 239, 0.8);
  border-radius: 30px;
  background: rgba(247, 245, 239, 0.94);
  box-shadow: 0 24px 70px rgba(24, 61, 53, 0.18);
  backdrop-filter: blur(14px);
}

.hero-copy h1 {
  margin-top: 18px;
  font-size: clamp(2.7rem, 4.4vw, 4.45rem);
}

.hero-copy .lead {
  color: #425c50;
}

.hero-copy .quote {
  max-width: 100%;
}

.hero-copy + .hero-art .float-card {
  left: auto;
  right: 32px;
  bottom: 28px;
}

@media (max-width: 820px) {
  .hero {
    padding-top: 20px;
  }

  .hero-art img {
    height: 680px;
    object-position: 61% center;
    border-radius: 28px;
  }

  .hero-copy {
    top: 24px;
    left: 20px;
    right: 20px;
    width: auto;
    transform: none;
    padding: 24px;
    border-radius: 24px;
  }

  .hero-copy h1 {
    font-size: clamp(2.45rem, 9vw, 3.4rem);
  }

  .hero-copy + .hero-art .float-card {
    right: 18px;
    bottom: 18px;
  }
}

@media (max-width: 520px) {
  .hero-art img {
    height: 720px;
    object-position: 64% center;
  }

  .hero-copy {
    left: 12px;
    right: 12px;
    padding: 21px;
  }

  .hero-copy h1 {
    margin: 14px 0 15px;
    font-size: clamp(2.2rem, 10vw, 2.85rem);
  }

  .hero-copy .lead {
    font-size: 0.95rem;
  }

  .hero-copy .hero-points {
    margin: 16px 0;
  }
}

/* Equal visible gaps between the four homepage highlights. */
.trust{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:28px 0}
.trust>div{flex:0 0 auto;gap:12px;min-height:40px}
.trust>div>b{flex:0 0 40px;width:40px;height:40px}
.trust>div>span{white-space:nowrap;line-height:1.5}
@media(max-width:1100px){.trust{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:24px}.trust>div>span{white-space:normal}}
@media(max-width:620px){.trust{grid-template-columns:1fr;gap:24px}}
