:root {
  --green: #214734;
  --green-deep: #153829;
  --green-mid: #476f4b;
  --green-light: #799858;
  --olive: #a8be90;
  --cream: #fffefa;
  --paper: #f7f4ec;
  --warm-paper: #f2eee4;
  --blush: #c46b80;
  --blush-light: #f8e5e2;
  --brown: #946949;
  --ink: #20362b;
  --muted: #64746a;
  --line: #e3e6dc;
  --radius: 22px;
  --shadow: 0 24px 75px rgba(24, 62, 39, .12);
}

*, *::before, *::after {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:108px
}

body {
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:"Avenir Next",Avenir,"Segoe UI",Arial,sans-serif;
  -webkit-font-smoothing: antialiased;
  font-size:16px;
  line-height:1.6
}

body.menu-open {
  overflow:hidden
}

::selection {
  color:var(--green-deep);
  background:#d9eac5
}

a {
  color:inherit;
  text-decoration:none
}

img {
  display:block;
  max-width:100%
}

button,input,select,textarea {
  font:inherit
}

button,select {
  cursor:pointer
}

svg {
  display:block
}

.icon-defs {
  position:absolute!important;
  width:0;
  height:0;
  overflow:hidden
}

.container {
  width:min(1236px,calc(100% - 76px));
  margin:0 auto
}

.skip-link {
  position:absolute;
  top:-60px;
  left:15px;
  z-index:999;
  background:#fff;
  color:var(--green);
  padding:10px 18px;
  border-radius:10px
}

.skip-link:focus {
  top:12px
}

:focus-visible {
  outline:3px solid var(--blush);
  outline-offset:4px
}

.top-note {
  background:var(--green-deep);
  color:#ecf1e7;
  text-align:center;
  padding:7px 16px;
  font-size:.74rem;
  letter-spacing:.10em;
  font-weight:650;
  line-height:1.4
}

.top-note-flower {
  color:#f2b2b8;
  font-size:1.05rem;
  margin:0 10px;
  vertical-align:-1px
}

.site-header {
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,254,250,.97);
  border-bottom:1px solid rgba(56,83,63,.08);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  height:91px
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:9px;
  white-space:nowrap;
  flex-shrink:0
}

.brand-mark-wrap {
  width:63px;
  height:63px;
  display:grid;
  place-items:center;
  overflow:hidden
}

.brand-mark {
  width:62px;
  height:60px;
  object-fit:contain;
  transform:scale(1.08)
}

.brand-lettering {
  display:flex;
  flex-direction:column;
  line-height:1;
  gap:7px
}

.brand-lettering strong {
  font-size:1.8rem;
  letter-spacing:-.055em;
  font-weight:760;
  color:var(--green-deep)
}

.brand-lettering span {
  font-size:.63rem;
  letter-spacing:.18em;
  font-weight:850;
  color:var(--green-mid)
}

.brand-lettering b {
  color:var(--blush);
  font-weight:850
}

.site-nav {
  display:flex;
  align-items:center;
  gap:31px;
  margin-left:auto
}

.site-nav>a {
  font-size:.87rem;
  font-weight:600;
  transition:color .2s;
  position:relative
}

.site-nav>a:hover {
  color:var(--green-light)
}

.site-nav>a:not(.mobile-nav-contact)::after {
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-8px;
  height:2px;
  background:var(--blush);
  transition:right .2s
}

.site-nav>a:hover::after {
  right:0
}

.mobile-nav-contact,.menu-button {
  display:none!important
}

.btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  min-height:54px;
  border:1px solid transparent;
  border-radius:999px;
  padding:15px 25px;
  font-size:.87rem;
  font-weight:780;
  letter-spacing:.003em;
  transition:background .22s,color .22s,transform .22s,box-shadow .22s;
  text-align:center
}

.btn:hover {
  transform:translateY(-2px)
}

.btn:active {
  transform:translateY(0)
}

.btn-small {
  min-height:47px;
  padding:12px 19px;
  font-size:.78rem;
  background:var(--green);
  color:white
}

.btn-small:hover,.btn-primary:hover {
  background:#315c40;
  box-shadow:0 10px 25px #21473422
}

.btn-primary {
  background:var(--green);
  color:#fff
}

.btn-text {
  padding:12px 0;
  border-radius:0;
  border-bottom:1px solid var(--green);
  min-height:42px;
  justify-content:flex-start;
  color:var(--green);
  gap:12px
}

.btn-text:hover {
  color:var(--blush);
  border-bottom-color:var(--blush)
}

.arrow-icon {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .2s;
  flex-shrink:0
}

a:hover .arrow-icon,button:hover .arrow-icon {
  transform:translateX(3px)
}

.hero {
  position:relative;
  overflow:hidden;
  background:linear-gradient(119deg,#f8f4ea 0%,#f4f0e5 58%,#e8eede 100%)
}

.hero-grid {
  min-height:675px;
  display:grid;
  grid-template-columns:52% 48%;
  align-items:center;
  gap:0;
  position:relative;
  padding-bottom:57px
}

.hero-copy {
  padding:53px 12px 80px 0;
  position:relative;
  z-index:2
}

.eyebrow,.section-label {
  font-size:.72rem;
  font-weight:850;
  letter-spacing:.19em;
  color:var(--green-mid);
  line-height:1.7
}

.eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 31px
}

.eyebrow-dot {
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--blush);
  box-shadow:0 0 0 5px #d4819124
}

h1,h2,h3,h4,p {
  margin-top:0
}

h1,h2 {
  font-family:Georgia,"Times New Roman",serif;
  font-weight:500;
  letter-spacing:-.055em
}

h1 {
  font-size:clamp(4.1rem,6vw,6.55rem);
  line-height:1.08;
  color:var(--green-deep);
  margin:0 0 30px
}

h1 em,h2 em {
  font-weight:400;
  color:var(--blush);
  font-style:italic
}

.hero-lede {
  max-width:490px;
  font-size:1.1rem;
  line-height:1.85;
  color:#53675a;
  margin-bottom:29px
}

.hero-actions {
  display:flex;
  align-items:center;
  gap:30px;
  flex-wrap:wrap
}

.hero-micro {
  display:flex;
  align-items:center;
  gap:13px;
  margin-top:47px;
  color:var(--green-deep)
}

.micro-icon {
  background:#e6eadb;
  display:grid;
  place-items:center;
  border-radius:50%;
  width:46px;
  height:46px;
  font-size:1.7rem;
  color:#73945e;
  flex-shrink:0
}

.hero-micro p {
  margin:0;
  font-size:.79rem;
  color:#728074;
  line-height:1.65
}

.hero-micro p strong {
  font-size:.80rem;
  font-weight:700;
  color:var(--green)
}

.hero-art {
  position:relative;
  height:560px;
  margin-left:14px;
  align-self:center;
  isolation:isolate
}

.hero-art::before {
  content:"";
  position:absolute;
  z-index:-1;
  left:-23px;
  right:15px;
  top:20px;
  bottom:0;
  border-radius:48% 45% 26% 21%;
  background:#c4d2b4;
  transform:rotate(-5deg)
}

.hero-image-shell {
  position:absolute;
  inset:1px 0 10px 4px;
  border-radius:47% 45% 23% 24%;
  overflow:hidden;
  background:#d4e5d0;
  box-shadow:18px 24px 45px rgba(32,77,45,.10)
}

.hero-image {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.015)
}

.image-glow {
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(13,55,25,0) 50%,rgba(6,39,24,.12) 100%);
  pointer-events:none
}

.hero-sticker {
  position:absolute;
  right:-27px;
  top:50px;
  width:144px;
  height:144px;
  border-radius:50%;
  background:#f8e4e3;
  color:var(--green-deep);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.5;
  transform:rotate(13deg);
  font-size:.87rem;
  font-weight:750;
  box-shadow:0 10px 30px #244a3a16;
  z-index:2
}

.sticker-flower {
  font-size:2rem;
  color:#ce7885;
  line-height:1.15
}

.hero-tag {
  position:absolute;
  left:-47px;
  bottom:18px;
  padding:18px 31px 18px 26px;
  z-index:3;
  background:#fffef9;
  border-radius:15px;
  box-shadow:0 18px 35px #16412b1d;
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:256px;
  transform:rotate(-4deg)
}

.hero-tag .tag-small {
  font-size:.55rem;
  letter-spacing:.14em;
  font-weight:800;
  color:#6b8564
}

.hero-tag strong {
  font-family:Georgia,serif;
  font-weight:400;
  font-size:1.8rem;
  letter-spacing:-.045em;
  color:var(--green)
}

.hero-tag svg {
  position:absolute;
  right:15px;
  bottom:1px;
  width:57px;
  height:33px;
  color:var(--blush)
}

.hero-bottom-wave {
  position:absolute;
  bottom:-1px;
  width:100%;
  height:83px;
  pointer-events:none
}

.hero-bottom-wave svg {
  width:100%;
  height:100%
}

.service-strip {
  background:var(--cream);
  border-bottom:1px solid #e6e8df
}

.strip-inner {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(35px,9vw,145px);
  padding:22px 0
}

.strip-inner span {
  font-size:.79rem;
  letter-spacing:.08em;
  color:#62735e;
  font-weight:770;
  white-space:nowrap
}

.strip-inner i {
  font-style:normal;
  color:#c98598;
  font-size:1.2rem;
  margin-right:13px
}

.section {
  padding:113px 0
}

.section-heading {
  margin-bottom:45px
}

.heading-split,.gallery-heading {
  display:grid;
  grid-template-columns:1.2fr .56fr;
  align-items:end;
  gap:85px
}

.section-label {
  display:inline-block;
  margin-bottom:21px
}

.section-label span {
  color:var(--blush);
  margin-left:7px
}

h2 {
  font-size:clamp(2.8rem,4vw,4.35rem);
  line-height:1.15;
  color:var(--green-deep);
  margin:0
}

.section-heading>p,.gallery-heading>p {
  font-size:.98rem;
  line-height:1.83;
  color:var(--muted);
  margin:0 0 5px;
  max-width:343px
}

.service-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px
}

.service-card {
  display:flex;
  flex-direction:column;
  min-height:330px;
  background:#fff;
  border:1px solid #e3e9de;
  border-radius:20px;
  padding:29px 30px 25px;
  transition:transform .25s,box-shadow .25s,border-color .25s
}

.service-card:hover {
  transform:translateY(-5px);
  box-shadow:0 18px 50px rgba(31,68,44,.09);
  border-color:#bfd1b4
}

.card-top {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom:23px
}

.service-icon {
  width:64px;
  height:64px;
  background:#edf2e9;
  border-radius:18px;
  display:grid;
  place-items:center;
  color:#517c55
}

.service-card:nth-child(2) .service-icon,.service-card:nth-child(5) .service-icon {
  color:#c17b88;
  background:#faedeb
}

.service-card:nth-child(3) .service-icon,.service-card:nth-child(6) .service-icon {
  color:#a27857;
  background:#f4eee5
}

.service-icon svg {
  width:39px;
  height:39px;
  stroke:currentColor;
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
  stroke-linejoin:round
}

.card-number {
  font-size:.65rem;
  font-weight:850;
  color:#9aa99b;
  letter-spacing:.08em
}

.service-card h3 {
  color:#214732;
  font-family:Georgia,serif;
  font-size:1.47rem;
  line-height:1.27;
  letter-spacing:-.035em;
  font-weight:500;
  margin-bottom:12px
}

.service-card p {
  font-size:.88rem;
  color:#6c7b70;
  line-height:1.75;
  margin:0 0 22px;
  max-width:290px
}

.card-link {
  margin-top:auto;
  color:var(--green);
  font-weight:800;
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:.79rem;
  width:max-content
}

.card-link span {
  font-size:1.08rem;
  color:var(--blush);
  transition:transform .2s
}

.card-link:hover span {
  transform:translate(3px,-2px)
}

.service-note {
  text-align:center;
  margin-top:36px;
  color:#637166;
  font-size:.88rem
}

.service-note>span {
  color:var(--blush);
  margin-right:8px;
  font-size:1.2rem
}

.service-note a {
  font-weight:800;
  text-decoration:underline;
  text-decoration-color:var(--blush);
  text-underline-offset:4px;
  color:var(--green)
}

.about-section {
  padding:115px 0;
  background:#eef2e8;
  overflow:hidden
}

.about-grid {
  display:grid;
  grid-template-columns:1.01fr .99fr;
  align-items:center;
  gap:90px
}

.about-art {
  position:relative;
  padding:10px 28px 27px 0
}

.about-art-card {
  position:relative;
  background:linear-gradient(150deg,#d4dfca,#dce6d4 55%,#e4e8d7);
  padding:28px 39px;
  border-radius:50% 48% 43% 17%;
  overflow:hidden;
  min-height:487px;
  display:grid;
  place-items:center;
  box-shadow:10px 20px 0 #dbe7d5
}

.about-art-card img {
  width:82%;
  max-width:420px;
  aspect-ratio:1;
  object-fit:contain;
  border-radius:50%;
  box-shadow:0 18px 70px #31543a1a;
  background:#fff;
  position:relative;
  z-index:1
}

.about-decor {
  position:absolute;
  font-size:4rem;
  color:#b4c9a4;
  line-height:1;
  z-index:0
}

.decor-a {
  left:35px;
  top:32px
}

.decor-b {
  right:25px;
  bottom:40px;
  color:#d9afb0;
  font-size:7rem
}

.about-stamp {
  position:absolute;
  right:-36px;
  bottom:24px;
  background:#fffdf8;
  border-radius:50%;
  width:144px;
  height:144px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  transform:rotate(-14deg);
  font-size:.62rem;
  line-height:1.6;
  letter-spacing:.12em;
  font-weight:900;
  color:var(--green);
  box-shadow:0 12px 30px #1c55381f;
  z-index:2
}

.stamp-daisy {
  font-size:2.2rem;
  color:var(--blush);
  line-height:1.1;
  margin-top:4px
}

.about-copy {
  max-width:540px
}

.about-copy h2 {
  margin-bottom:23px
}

.about-copy .about-lead {
  font-family:Georgia,serif;
  color:var(--green);
  font-size:1.33rem;
  line-height:1.6;
  margin-bottom:13px
}

.about-copy>p:not(.about-lead) {
  color:#607366;
  font-size:.98rem;
  line-height:1.9;
  margin-bottom:27px
}

.about-values {
  display:grid;
  gap:13px;
  margin:27px 0 32px
}

.about-values>div {
  display:flex;
  align-items:center;
  gap:13px;
  color:#3f5b45;
  font-size:.91rem;
  font-weight:680
}

.value-tick {
  display:grid;
  place-items:center;
  width:25px;
  height:25px;
  border-radius:50%;
  background:#d6e4ce;
  flex:0 0 auto;
  color:var(--green)
}

.value-tick svg {
  width:15px;
  height:15px;
  stroke-width:2.6;
  fill:none;
  stroke:currentColor;
  stroke-linecap:round;
  stroke-linejoin:round
}

.inline-arrow {
  display:inline-flex;
  align-items:center;
  gap:14px;
  font-size:.9rem;
  font-weight:820;
  color:var(--green);
  border-bottom:1.5px solid var(--green);
  padding-bottom:8px
}

.inline-arrow:hover {
  color:#b9687d;
  border-color:#b9687d
}

.gallery-section {
  background:var(--cream)
}

.gallery-grid {
  display:grid;
  grid-template-columns:1.16fr .84fr;
  grid-auto-rows:246px;
  gap:17px
}

.gallery-item {
  position:relative;
  overflow:hidden;
  border-radius:19px;
  background:#cbdac3;
  margin:0;
  isolation:isolate
}

.gallery-item.gallery-feature {
  grid-row:span 2
}

.gallery-item.gallery-wide {
  grid-column:span 2;
  grid-row:span 1
}

.gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease
}

.gallery-item:hover img {
  transform:scale(1.045)
}

.gallery-item::after {
  content:"";
  position:absolute;
  inset:32% 0 0;
  background:linear-gradient(transparent,rgba(14,36,19,.68));
  pointer-events:none
}

.gallery-item figcaption {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  z-index:2;
  padding:24px 30px;
  color:white;
  display:flex;
  flex-direction:column;
  gap:3px
}

.gallery-item figcaption span {
  font-size:.62rem;
  font-weight:760;
  letter-spacing:.19em;
  opacity:.86
}

.gallery-item figcaption strong {
  font-family:Georgia,serif;
  font-size:1.7rem;
  font-weight:400;
  letter-spacing:-.035em;
  line-height:1.2
}

.gallery-item.gallery-wide figcaption strong {
  font-size:2rem
}

.gallery-disclaimer {
  font-size:.74rem;
  color:#778578;
  text-align:right;
  margin:17px 0 0
}

.gallery-disclaimer a {
  text-decoration:underline
}

.steps-section {
  background:#f7f4ec
}

.steps-heading {
  max-width:800px;
  margin:0 auto 67px;
  text-align:center
}

.steps-list {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:36px;
  position:relative
}

.steps-list::before {
  content:"";
  position:absolute;
  left:13%;
  right:13%;
  top:40px;
  border-top:1px dashed #bcc9b6
}

.step {
  text-align:center;
  position:relative;
  z-index:1
}

.step-number {
  width:79px;
  height:79px;
  border-radius:50%;
  background:#fff;
  display:grid;
  place-items:center;
  margin:0 auto 23px;
  color:var(--green);
  font-family:Georgia,serif;
  font-size:1.75rem;
  box-shadow:0 8px 26px #294e3915;
  border:1px solid #e5eadd
}

.step-icon {
  position:absolute;
  top:-7px;
  left:calc(50% + 30px);
  color:#d48e98;
  font-size:1.3rem
}

.step h3 {
  font-family:Georgia,serif;
  font-size:1.39rem;
  font-weight:500;
  color:var(--green);
  letter-spacing:-.025em;
  margin:0 0 13px
}

.step p {
  font-size:.86rem;
  line-height:1.75;
  color:var(--muted);
  max-width:282px;
  margin:0 auto
}

.quote-section {
  background:var(--green-deep);
  color:#f8f7ed;
  padding:104px 0;
  overflow:hidden;
  position:relative
}

.quote-section::before {
  content:"";
  position:absolute;
  width:550px;
  height:550px;
  border:1px solid rgba(210,227,186,.12);
  border-radius:50%;
  left:-260px;
  bottom:-250px;
  box-shadow:0 0 0 65px #f6fce904,0 0 0 135px #f6fce904
}

.quote-grid {
  display:grid;
  grid-template-columns:.85fr 1fr;
  gap:100px;
  align-items:start;
  position:relative
}

.quote-copy {
  padding-top:56px;
  max-width:440px
}

.light-label {
  color:#b6cfa6
}

.quote-copy h2 {
  color:#fffefa;
  font-size:clamp(3rem,4.6vw,5rem);
  line-height:1.12;
  margin:0 0 25px
}

.quote-copy h2 em {
  color:#e6a0ad
}

.quote-copy>p:not(.quote-aside) {
  color:#cbdacb;
  font-size:1rem;
  line-height:1.9;
  max-width:370px
}

.quote-doodle svg {
  width:350px;
  max-width:95%;
  height:auto;
  margin:25px 0 5px
}

.quote-aside {
  color:#d7e7d4;
  font-size:.83rem;
  font-weight:680
}

.quote-aside span {
  color:#e2a7af;
  font-size:1.5rem;
  margin-right:11px
}

.quote-form-card {
  background:var(--cream);
  border-radius:24px;
  color:var(--green);
  padding:34px 35px 35px;
  box-shadow:0 24px 70px #081f151a;
  min-width:0
}

.form-card-heading {
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:25px
}

.form-daisy {
  display:grid;
  place-items:center;
  flex:0 0 55px;
  width:55px;
  height:55px;
  border-radius:50%;
  background:#f9e8e8;
  color:#c87e8e;
  font-size:2rem
}

.form-card-heading h3 {
  font-family:Georgia,serif;
  font-size:1.57rem;
  font-weight:500;
  letter-spacing:-.035em;
  margin:0
}

.form-card-heading p {
  font-size:.8rem;
  color:#748173;
  margin:2px 0 0
}

.field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px
}

.form-field {
  margin-bottom:18px
}

.form-field label {
  font-size:.76rem;
  color:#385742;
  font-weight:750;
  display:block;
  margin:0 0 7px
}

.form-field label span {
  color:#ce7b87
}

.form-field input,.form-field select,.form-field textarea {
  display:block;
  width:100%;
  border:1px solid #d9e4d8;
  border-radius:11px;
  background:white;
  padding:12px 13px;
  color:#254532;
  font-size:.83rem;
  outline:0;
  min-height:48px;
  transition:border-color .2s,box-shadow .2s
}

.form-field input::placeholder,.form-field textarea::placeholder {
  color:#9ca89e
}

.form-field input:focus,.form-field select:focus,.form-field textarea:focus {
  border-color:#739874;
  box-shadow:0 0 0 3px #86b08925
}

.form-field .invalid {
  border-color:#b85067!important;
  box-shadow:0 0 0 3px #d6809030!important
}

.form-field textarea {
  min-height:106px;
  resize:vertical;
  line-height:1.65
}

.btn-submit {
  width:100%;
  justify-content:space-between;
  min-height:54px
}

.form-status {
  font-size:.8rem;
  color:#315a41;
  margin:12px 0 0;
  min-height:0
}

.form-status:empty {
  display:none
}

.btn-outline {
  color:var(--green);
  border-color:#9eb69d;
  min-height:43px;
  padding:11px 18px;
  background:#fff;
  margin-top:10px
}

.btn-outline:hover {
  background:#eff5eb
}

.faq-section {
  padding:104px 0;
  background:#fffefa
}

.faq-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:100px
}

.faq-grid>div:first-child>p {
  max-width:290px;
  margin-top:20px;
  color:var(--muted);
  line-height:1.75
}

.faq-list {
  border-top:1px solid #dfe6dc
}

.faq-list details {
  border-bottom:1px solid #dfe6dc
}

.faq-list summary {
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:22px 2px;
  cursor:pointer;
  font-size:.96rem;
  color:var(--green);
  font-weight:750
}

.faq-list summary::-webkit-details-marker {
  display:none
}

.faq-list summary span {
  font-size:1.65rem;
  color:var(--blush);
  font-weight:350;
  transition:transform .2s;
  line-height:1
}

.faq-list details[open] summary span {
  transform:rotate(45deg)
}

.faq-list details p {
  padding:0 30px 22px 2px;
  margin:0;
  max-width:560px;
  color:#6f806f;
  font-size:.88rem;
  line-height:1.85
}

.site-footer {
  background:#f0f2e9;
  padding:59px 0 0;
  border-top:1px solid #e7ebdd
}

.footer-top {
  display:flex;
  justify-content:space-between;
  gap:80px;
  padding-bottom:62px
}

.footer-brand .brand-lettering strong {
  font-size:2.07rem
}

.footer-top>div:first-child>p {
  color:#6c7f70;
  line-height:1.8;
  font-size:.86rem;
  margin:22px 0 0
}

.footer-links {
  display:flex;
  gap:90px;
  padding-top:10px
}

.footer-links>div {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:11px
}

.footer-links h3 {
  font-size:.78rem;
  color:var(--green);
  letter-spacing:.11em;
  text-transform:uppercase;
  margin:0 0 7px
}

.footer-links a {
  color:#627368;
  font-size:.84rem
}

.footer-links a:hover {
  color:var(--blush)
}

.footer-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding:21px 0;
  border-top:1px solid #dae2d6;
  color:#7a8a7f;
  font-size:.73rem
}

/* -----------------------------------------------------------
   The gardener's interactive mowing scrollbar
   Desktop enhancement: the normal scrollbar is retained when
   motion is reduced, the pointer is coarse, or space is narrow.
   ----------------------------------------------------------- */
html.mower-scroll-ready {
  scrollbar-width:none
}

html.mower-scroll-ready::-webkit-scrollbar {
  display:none
}

/* Keep page content clear of the interactive right-edge mower rail. */
html.mower-scroll-ready .container {
  padding-right:90px
}

.mower-scroll[hidden] {
  display:none!important
}

.mower-scroll {
  position:fixed;
  top:125px;
  right:6px;
  bottom:17px;
  width:98px;
  z-index:48;
  border:1px solid rgba(73,115,76,.19);
  border-radius:38px;
  background:linear-gradient(180deg,rgba(255,254,249,.96),rgba(239,247,231,.93));
  box-shadow:0 10px 27px rgba(25,70,43,.09);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter: blur(10px);
  user-select:none;
  -webkit-user-select: none;
  touch-action:none;
  cursor:grab;
  isolation:isolate;
}

.mower-scroll:active {
  cursor:grabbing
}

.mower-scroll:focus-visible {
  outline:3px solid var(--blush);
  outline-offset:3px
}

.mower-scroll-label {
  position:absolute;
  top:10px;
  left:0;
  right:0;
  text-align:center;
  color:#62815c;
  font-size:8px;
  font-weight:900;
  line-height:1.4;
  letter-spacing:.115em;
}

.mower-track {
  position:absolute;
  top:35px;
  bottom:34px;
  left:2px;
  right:2px
}

.mower-lawn {
  position:absolute;
  top:7px;
  bottom:5px;
  right:0;
  width:38px;
  overflow:hidden;
  background:#f5f9f0;
  border-radius:12px
}

.mower-long-grass,.mower-cut-grass {
  position:absolute;
  top:0;
  right:0;
  left:0;
  background-repeat:repeat-y;
  background-position:right top;
  background-size:38px 50px;
}

.mower-long-grass {
  height:100%;
  background-image:url("assets/grass-tall.svg")
}

.mower-cut-grass {
  height:var(--cut-height,0%);
  background-color:#f5f9f0;
  background-image:url("assets/grass-cut.svg");
  border-bottom:2px solid #a3c288;
  will-change:height
}

.mower-thumb {
  position:absolute;
  left:-4px;
  top:0;
  width:94px;
  height:86px;
  display:block;
  transform:translate3d(0,var(--mower-y,0px),0);
  filter:drop-shadow(0 2px 1px rgba(255,254,249,.88));
  pointer-events:none;
  will-change:transform;
}

.mower-thumb img {
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  max-width:none;
  transform:rotate(-90deg) scaleX(-1);
  transform-origin:center center
}

.mower-clippings {
  position:absolute;
  top:58px;
  right:3px;
  width:26px;
  height:25px;
  pointer-events:none
}

.mower-clippings i {
  position:absolute;
  background:#718f57;
  width:4px;
  height:7px;
  border-radius:6px 0 6px 0;
  opacity:0
}

.mower-clippings i:nth-child(1) {
  top:3px;
  left:4px;
  --clip-x: 12px;
  --clip-y: -14px;
}

.mower-clippings i:nth-child(2) {
  top:11px;
  left:10px;
  --clip-x: 16px;
  --clip-y: 8px;
}

.mower-clippings i:nth-child(3) {
  top:6px;
  left:15px;
  --clip-x: 12px;
  --clip-y: -5px;
}

.mower-clippings i:nth-child(4) {
  top:15px;
  left:3px;
  --clip-x: 9px;
  --clip-y: 13px;
}

.mower-clippings i:nth-child(5) {
  top:18px;
  left:14px;
  --clip-x: 13px;
  --clip-y: -11px;
}

.mower-scroll.is-mowing .mower-clippings i {
  animation:mower-clipping .48s ease-out infinite
}

.mower-scroll.is-mowing .mower-clippings i:nth-child(2) {
  animation-delay:.10s
}

.mower-scroll.is-mowing .mower-clippings i:nth-child(3) {
  animation-delay:.21s
}

.mower-scroll.is-mowing .mower-clippings i:nth-child(4) {
  animation-delay:.08s
}

.mower-scroll.is-mowing .mower-clippings i:nth-child(5) {
  animation-delay:.29s
}

.mower-scroll-footer {
  position:absolute;
  bottom:9px;
  left:0;
  right:0;
  color:var(--green-mid);
  text-align:center;
  font-size:8px;
  line-height:1.15;
  letter-spacing:.06em;
  font-weight:850;
}

.mower-progress {
  color:var(--green-deep)
}

@keyframes mower-clipping {
  0% {
    opacity:0;
    transform:translate(0,0) rotate(0deg)
  }
  25% {
    opacity:1
  }
  100% {
    opacity:0;
    transform:translate(var(--clip-x),var(--clip-y)) rotate(90deg)
  }
}

@media (max-width:1179px), (pointer:coarse), (prefers-reduced-motion:reduce) {
  .mower-scroll {
    display:none!important
  }
}

@media (max-width:1120px) {
  .container {
    width:min(1120px,calc(100% - 58px))
  }
  .site-nav {
    gap:18px
  }
  .site-nav>a {
    font-size:.81rem
  }
  .header-inner {
    gap:15px
  }
  .header-cta {
    padding:11px 14px;
    gap:9px
  }
  h1 {
    font-size:clamp(3.8rem,6.3vw,5.6rem)
  }
  .hero-art {
    height:510px
  }
  .hero-sticker {
    right:-12px;
    width:123px;
    height:123px;
    font-size:.77rem
  }
  .about-grid {
    gap:60px
  }
  .quote-grid {
    gap:55px
  }
}

@media (max-width:900px) {
  .container {
    width:calc(100% - 48px)
  }
  .header-inner {
    height:77px
  }
  .brand-mark-wrap {
    width:53px;
    height:53px
  }
  .brand-mark {
    width:53px;
    height:53px
  }
  .brand-lettering strong {
    font-size:1.57rem
  }
  .site-nav {
    position:fixed;
    top:77px;
    right:0;
    left:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
    background:#fffefa;
    padding:11px 28px 25px;
    box-shadow:0 19px 30px rgba(18,53,32,.12);
    transform:translateY(-15px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s,transform .2s,visibility .2s;
    max-height:calc(100vh - 77px);
    overflow-y:auto
  }
  .site-nav.is-open {
    transform:translateY(0);
    opacity:1;
    visibility:visible;
    pointer-events:auto
  }
  .site-nav a {
    padding:15px 0;
    border-bottom:1px solid #e8ebe2;
    font-size:.94rem
  }
  .site-nav>a:not(.mobile-nav-contact)::after {
    display:none
  }
  .mobile-nav-contact,.menu-button {
    display:flex!important
  }
  .header-cta {
    display:none
  }
  .menu-button {
    border:0;
    background:transparent;
    width:49px;
    height:49px;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:6px;
    position:relative;
    padding:0
  }
  .menu-button span {
    display:block;
    width:24px;
    height:2px;
    background:var(--green);
    transition:transform .2s,opacity .2s
  }
  .menu-button[aria-expanded=true] span:first-child {
    transform:translateY(8px) rotate(45deg)
  }
  .menu-button[aria-expanded=true] span:nth-child(2) {
    opacity:0
  }
  .menu-button[aria-expanded=true] span:last-child {
    transform:translateY(-8px) rotate(-45deg)
  }
  .hero-grid {
    grid-template-columns:1fr 1fr;
    min-height:550px
  }
  .hero-copy {
    padding:43px 16px 60px 0
  }
  .eyebrow {
    font-size:.65rem
  }
  h1 {
    font-size:clamp(3.2rem,6.8vw,4.8rem)
  }
  .hero-lede {
    font-size:.94rem;
    line-height:1.75
  }
  .hero-art {
    height:430px;
    margin-left:0
  }
  .hero-sticker {
    width:105px;
    height:105px;
    right:-6px;
    top:40px;
    font-size:.7rem
  }
  .hero-tag {
    min-width:0;
    left:-23px;
    bottom:0;
    padding:12px 20px
  }
  .hero-tag strong {
    font-size:1.45rem
  }
  .hero-tag .tag-small {
    font-size:.47rem
  }
  .hero-micro {
    margin-top:25px
  }
  .hero-actions {
    gap:15px
  }
  .hero-actions .btn {
    font-size:.78rem
  }
  .strip-inner {
    gap:20px;
    justify-content:space-between
  }
  .strip-inner span {
    font-size:.65rem
  }
  .section {
    padding:85px 0
  }
  h2 {
    font-size:clamp(2.6rem,5.5vw,3.8rem)
  }
  .heading-split,.gallery-heading {
    grid-template-columns:1.1fr .8fr;
    gap:24px
  }
  .service-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .service-card {
    min-height:290px
  }
  .about-section {
    padding:85px 0
  }
  .about-grid {
    gap:30px
  }
  .about-art-card {
    min-height:360px;
    padding:22px
  }
  .about-art-card img {
    width:92%
  }
  .about-stamp {
    width:110px;
    height:110px;
    right:-5px;
    font-size:.47rem
  }
  .about-copy .about-lead {
    font-size:1.13rem
  }
  .about-copy>p:not(.about-lead) {
    font-size:.88rem
  }
  .quote-grid {
    grid-template-columns:1fr 1.15fr;
    gap:32px
  }
  .quote-copy h2 {
    font-size:3.3rem
  }
  .quote-form-card {
    padding:27px 23px
  }
  .field-row {
    grid-template-columns:1fr;
    gap:0
  }
  .faq-grid {
    gap:37px
  }
  .footer-links {
    gap:50px
  }
}

@media (max-width:680px) {
  html {
    scroll-padding-top:75px
  }
  .container {
    width:calc(100% - 36px)
  }
  .top-note {
    font-size:.62rem;
    letter-spacing:.05em;
    padding:8px 10px
  }
  .top-note-flower {
    margin:0 3px
  }
  .header-inner {
    height:72px
  }
  .site-nav {
    top:72px
  }
  .brand {
    gap:5px
  }
  .brand-mark-wrap {
    width:49px;
    height:49px
  }
  .brand-mark {
    width:48px;
    height:48px
  }
  .brand-lettering strong {
    font-size:1.44rem
  }
  .brand-lettering span {
    font-size:.53rem
  }
  .hero-grid {
    display:flex;
    flex-direction:column;
    min-height:unset;
    align-items:stretch;
    padding-bottom:55px
  }
  .hero-copy {
    order:0;
    padding:50px 2px 30px
  }
  .eyebrow {
    margin-bottom:19px;
    font-size:.6rem
  }
  h1 {
    font-size:clamp(3.35rem,10vw,5.4rem);
    line-height:1.07;
    margin-bottom:21px
  }
  .hero-lede {
    max-width:480px;
    margin-bottom:21px;
    font-size:1rem
  }
  .hero-actions {
    gap:19px
  }
  .hero-micro {
    margin-top:26px
  }
  .hero-art {
    order:1;
    height:420px;
    width:min(510px,100% - 8px);
    align-self:center;
    margin:0 auto 0
  }
  .hero-art::before {
    left:0;
    right:0
  }
  .hero-image-shell {
    inset:0 4px 9px 9px
  }
  .hero-sticker {
    right:-3px;
    top:20px
  }
  .hero-tag {
    left:-8px;
    bottom:7px;
    transform:rotate(-3deg)
  }
  .hero-bottom-wave {
    height:44px
  }
  .service-strip {
    padding:4px 0
  }
  .strip-inner {
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:center;
    padding:17px 0
  }
  .strip-inner span {
    font-size:.65rem
  }
  .strip-inner i {
    font-size:.85rem;
    margin-right:4px
  }
  .section {
    padding:76px 0
  }
  .heading-split,.gallery-heading {
    display:block
  }
  .section-heading {
    margin-bottom:28px
  }
  h2 {
    font-size:clamp(2.55rem,9.2vw,3.85rem)
  }
  .section-heading>p,.gallery-heading>p {
    margin:18px 0 0;
    max-width:550px
  }
  .service-grid {
    grid-template-columns:1fr;
    gap:13px
  }
  .service-card {
    min-height:0;
    padding:25px 25px 22px
  }
  .card-top {
    margin-bottom:15px
  }
  .service-icon {
    height:52px;
    width:52px;
    border-radius:15px
  }
  .service-icon svg {
    width:33px;
    height:33px
  }
  .service-card h3 {
    font-size:1.5rem
  }
  .service-card p {
    max-width:100%;
    margin-bottom:15px
  }
  .service-note {
    margin-top:25px;
    line-height:1.9
  }
  .about-section {
    padding:76px 0
  }
  .about-grid {
    display:flex;
    flex-direction:column;
    gap:47px;
    align-items:stretch
  }
  .about-art {
    padding:0 20px 0 0;
    max-width:570px;
    width:100%;
    margin:0 auto
  }
  .about-art-card {
    min-height:390px
  }
  .about-art-card img {
    width:77%
  }
  .about-stamp {
    bottom:-7px;
    right:0
  }
  .about-copy {
    max-width:570px
  }
  .about-values {
    margin:18px 0 27px
  }
  .gallery-grid {
    grid-template-columns:1fr 1fr;
    grid-auto-rows:210px;
    gap:11px
  }
  .gallery-item.gallery-feature {
    grid-column:span 2;
    grid-row:span 1
  }
  .gallery-item.gallery-wide {
    grid-column:span 2;
    grid-row:span 1
  }
  .gallery-item figcaption {
    padding:16px
  }
  .gallery-item figcaption strong {
    font-size:1.25rem
  }
  .gallery-item.gallery-wide figcaption strong {
    font-size:1.45rem
  }
  .gallery-item figcaption span {
    font-size:.53rem
  }
  .gallery-disclaimer {
    text-align:left;
    line-height:1.7
  }
  .steps-heading {
    margin-bottom:44px
  }
  .steps-list {
    display:flex;
    flex-direction:column;
    gap:30px
  }
  .steps-list::before {
    display:none
  }
  .step-number {
    margin-bottom:16px;
    width:65px;
    height:65px;
    font-size:1.5rem
  }
  .step-icon {
    left:calc(50% + 21px);
    top:-8px
  }
  .step h3 {
    margin-bottom:6px
  }
  .quote-section {
    padding:75px 0
  }
  .quote-grid {
    display:flex;
    flex-direction:column;
    gap:27px
  }
  .quote-copy {
    padding-top:0
  }
  .quote-copy h2 {
    font-size:clamp(3rem,10vw,4.3rem)
  }
  .quote-copy>p:not(.quote-aside) {
    font-size:.92rem
  }
  .quote-doodle {
    display:none
  }
  .quote-aside {
    margin:12px 0 0
  }
  .quote-form-card {
    width:100%;
    padding:24px 19px
  }
  .form-card-heading h3 {
    font-size:1.43rem
  }
  .form-daisy {
    flex:0 0 45px;
    width:45px;
    height:45px;
    font-size:1.7rem
  }
  .faq-grid {
    display:block
  }
  .faq-grid>div:first-child {
    margin-bottom:32px
  }
  .faq-grid>div:first-child>p {
    margin-top:14px
  }
  .faq-list summary {
    font-size:.86rem
  }
  .site-footer {
    padding-top:50px
  }
  .footer-top {
    flex-direction:column;
    gap:36px;
    padding-bottom:40px
  }
  .footer-links {
    justify-content:flex-start;
    gap:80px
  }
  .footer-bottom {
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    font-size:.7rem
  }
}

@media (max-width:390px) {
  .top-note {
    font-size:.56rem
  }
  .brand-lettering strong {
    font-size:1.27rem
  }
  .brand-lettering span {
    font-size:.48rem
  }
  .hero-actions {
    flex-direction:column;
    align-items:flex-start;
    gap:10px
  }
  h1 {
    font-size:3.1rem
  }
  .hero-art {
    height:330px
  }
  .hero-sticker {
    width:86px;
    height:86px;
    font-size:.62rem
  }
  .hero-tag {
    padding:11px 14px
  }
  .hero-tag strong {
    font-size:1.1rem
  }
  .about-art-card {
    min-height:270px
  }
  .footer-links {
    gap:43px
  }
}

@media (prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation-duration:.01ms!important;
    transition-duration:.01ms!important
  }
}

/* ============================================================
   VIRTUAL GARDEN EXPLORER — 2026 Bloom & Broom concept
   One perspective landscape, with real keyboard / touch hotspots
   and illustrative example views instead of repetitive service cards.
   ============================================================ */
.virtual-garden-section {
  padding-top:112px;
  padding-bottom:110px;
  background:radial-gradient(ellipse at 5% 25%,#f6f4e7 0%,transparent 45%),#fffefa;
}

.garden-heading {
  display:grid;
  grid-template-columns:1.4fr .8fr;
  gap:50px;
  align-items:end;
  margin-bottom:34px
}

.garden-heading h2 {
  margin:17px 0 0;
  line-height:1.09
}

.garden-intro {
  padding-bottom:10px
}

.garden-intro p {
  font-size:.98rem;
  line-height:1.82;
  color:#5c7063;
  margin:0 0 16px;
  max-width:385px
}

.garden-instruction {
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:#3f6e4a;
  background:#eaf1e5;
  padding:8px 13px;
  border-radius:30px;
  font-size:.73rem;
  font-weight:800;
  letter-spacing:.006em
}

.garden-instruction>span {
  color:#c37c89;
  font-size:1.12rem
}

.garden-explorer {
  display:grid;
  grid-template-columns:minmax(0,1.92fr) minmax(282px,.92fr);
  gap:22px;
  align-items:start
}

.garden-scene-column {
  min-width:0
}

.garden-viewport {
  border-radius:24px;
  border:8px solid #f7f6ec;
  background:#e3edd5;
  overflow:hidden;
  box-shadow:0 17px 52px rgba(36,72,46,.14);
  outline-offset:3px
}

.garden-scene {
  width:100%;
  position:relative;
  aspect-ratio:1000/650;
  isolation:isolate;
  overflow:hidden
}

.garden-artwork {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  user-select:none;
  pointer-events:none;
  object-fit:fill
}

.garden-scenery-caption {
  position:absolute;
  top:4.5%;
  left:4.5%;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:9px 17px 10px;
  background:rgba(255,254,244,.91);
  border:1px solid rgba(73,114,65,.22);
  box-shadow:0 4px 11px rgba(52,88,51,.11);
  border-radius:12px;
  transform:rotate(-3deg);
  z-index:2;
  pointer-events:none
}

.caption-kicker {
  font-size:.47rem;
  letter-spacing:.24em;
  color:#69805d;
  font-weight:850
}

.garden-scenery-caption strong {
  font:italic 1.13rem Georgia,serif;
  letter-spacing:-.035em;
  color:#355b38;
  line-height:1.1
}

.garden-hotspot {
  position:absolute;
  left:var(--x);
  top:var(--y);
  z-index:5;
  width:42px;
  height:42px;
  transform:translate(-50%,-50%);
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  display:grid;
  place-items:center;
  color:#2f6040;
  overflow:visible;
}

.garden-hotspot::before {
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:50%;
  border:2px solid rgba(255,254,239,.55);
  background:rgba(29,86,46,.11);
  transition:background .18s,transform .18s;
  z-index:-1
}

.hotspot-pin {
  display:grid;
  place-items:center;
  width:37px;
  height:37px;
  background:#fffefa;
  border-radius:50%;
  box-shadow:0 4px 0 rgba(46,93,48,.22),0 6px 16px rgba(20,56,36,.22);
  border:3px solid #47774d;
  transition:transform .22s ease,background .22s,border-color .22s,color .22s;
  position:relative;
  z-index:1
}

.hotspot-pin span {
  font-size:.69rem;
  font-weight:900;
  line-height:1;
  font-variant-numeric:tabular-nums
}

.garden-hotspot:hover::before,.garden-hotspot:focus-visible::before,.garden-hotspot[aria-pressed="true"]::before {
  transform:scale(1.18);
  background:rgba(255,252,238,.44)
}

.garden-hotspot:hover .hotspot-pin,.garden-hotspot:focus-visible .hotspot-pin {
  background:#f7dfdc;
  border-color:#be6c7c;
  transform:scale(1.12)
}

.garden-hotspot[aria-pressed="true"] .hotspot-pin {
  background:#db8490;
  border-color:#fffefa;
  color:#fff;
  box-shadow:0 0 0 3px rgba(174,73,99,.45),0 5px 12px rgba(32,66,37,.22)
}

.garden-hotspot[aria-pressed="true"]:hover .hotspot-pin {
  background:#c97282
}

.hotspot-label {
  position:absolute;
  left:50%;
  bottom:calc(100% + 9px);
  transform:translate(-50%,7px);
  background:#244b35;
  color:#fffefa;
  font-size:.72rem;
  line-height:1.15;
  white-space:nowrap;
  padding:9px 12px;
  border-radius:8px;
  box-shadow:0 5px 18px rgba(14,54,29,.24);
  opacity:0;
  pointer-events:none;
  transition:opacity .15s,transform .15s;
  font-weight:780
}

.hotspot-label::after {
  content:"";
  position:absolute;
  top:100%;
  left:calc(50% - 6px);
  border-left:6px solid transparent;
  border-right:6px solid transparent;
  border-top:6px solid #244b35
}

.garden-hotspot:hover .hotspot-label,.garden-hotspot:focus-visible .hotspot-label {
  transform:translate(-50%,0);
  opacity:1
}

.garden-scene-bottom {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:17px 1px 0;
  flex-wrap:wrap;
  font-size:.73rem;
  line-height:1.5;
  color:#75816e
}

.garden-discover-count {
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-weight:850;
  color:#365943
}

.count-dot {
  height:8px;
  width:8px;
  border-radius:50%;
  background:#d88a94;
  box-shadow:0 0 0 4px #fae6e4
}

.garden-credit {
  max-width:260px;
  text-align:right;
  font-size:.7rem
}

.garden-swipe-hint {
  display:none
}

.garden-detail {
  padding:24px 23px 21px;
  border-radius:23px;
  background:linear-gradient(155deg,#ffffff 0%,#faf9f2 100%);
  border:1px solid #e1e9dd;
  box-shadow:0 12px 34px rgba(39,79,53,.07);
  position:relative;
  min-width:0
}

.garden-detail-top {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:4px
}

.detail-overline {
  font-size:.58rem;
  letter-spacing:.16em;
  font-weight:900;
  color:#74927b
}

.detail-overline span {
  color:#ca7f8b
}

.detail-flower {
  font-size:1.55rem;
  color:#d58e9a;
  line-height:1
}

.detail-location {
  font-size:.59rem;
  color:#b57f63;
  font-weight:880;
  letter-spacing:.19em;
  margin:2px 0 7px
}

.garden-detail h3 {
  font-family:Georgia,serif;
  font-size:clamp(1.55rem,2vw,2.03rem);
  font-weight:500;
  line-height:1.17;
  letter-spacing:-.045em;
  color:var(--green);
  margin:0 0 11px
}

.detail-description {
  font-size:.81rem;
  line-height:1.71;
  color:#617264;
  margin:0 0 17px;
  min-height:70px
}

.garden-examples {
  border-top:1px solid #dde8d9;
  padding-top:15px
}

.examples-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px
}

.examples-heading strong {
  font-size:.79rem;
  color:#315a41;
  font-weight:800
}

.examples-heading span {
  font-size:.63rem;
  color:#8a9387;
  white-space:nowrap
}

.examples-pair {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px
}

.examples-pair figure {
  margin:0;
  min-width:0;
  position:relative
}

.examples-pair img {
  width:100%;
  height:auto;
  aspect-ratio:320/210;
  object-fit:cover;
  border-radius:10px;
  display:block;
  background:#ecf1e6;
  border:1px solid #e5e7db
}

.examples-pair figcaption {
  color:#637364;
  font-size:.65rem;
  font-weight:790;
  letter-spacing:.06em;
  padding:4px 0;
  text-align:center
}

.garden-work-note {
  font-size:.64rem;
  line-height:1.55;
  color:#7e897d;
  margin:11px 0 14px
}

.garden-enquire {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:13px 17px;
  border-radius:12px;
  background:#2c563d;
  color:#fffefa;
  font-size:.78rem;
  font-weight:800;
  transition:background .18s,transform .18s
}

.garden-enquire:hover {
  background:#47744f;
  transform:translateY(-1px)
}

.garden-enquire span {
  font-size:1.05rem;
  color:#e7b1b6
}

.garden-shortcuts {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px
}

.garden-shortcut {
  border:1px solid #d7e2d1;
  background:#fff;
  border-radius:99px;
  padding:10px 14px 10px 15px;
  display:inline-flex;
  align-items:center;
  gap:13px;
  font-size:.73rem;
  font-weight:760;
  color:#365941;
  transition:background .17s,border-color .17s,transform .17s
}

.garden-shortcut span {
  color:#b87986;
  font-size:.88rem
}

.garden-shortcut:hover {
  background:#f4f7f0;
  border-color:#b3c7a9;
  transform:translateY(-1px)
}

.garden-shortcut[aria-pressed="true"] {
  background:#315b41;
  border-color:#315b41;
  color:white
}

.garden-shortcut[aria-pressed="true"] span {
  color:#e9b0b4
}

.garden-service-note {
  margin:25px 0 0;
  text-align:center;
  font-size:.83rem;
  color:#677769;
  line-height:1.8
}

.garden-service-note>span:first-child {
  color:#c7798d;
  font-size:1.15rem;
  margin-right:7px
}

.garden-service-note a {
  color:#28563d;
  font-weight:800;
  text-decoration:underline;
  text-decoration-color:#c48a93;
  text-underline-offset:4px
}

.garden-service-confirmation {
  display:block;
  font-size:.72rem;
  color:#859283;
  margin-top:4px
}

@media(max-width:1050px) {
  .garden-heading {
    gap:26px
  }
  .garden-explorer {
    grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);
    gap:16px
  }
  .garden-detail {
    padding:21px 18px 20px
  }
  .detail-description {
    font-size:.78rem;
    min-height:0
  }
  .garden-credit {
    text-align:left
  }
}

@media(max-width:900px) {
  .virtual-garden-section {
    padding-top:82px;
    padding-bottom:85px
  }
  .garden-heading {
    grid-template-columns:1fr 1fr
  }
  .garden-explorer {
    grid-template-columns:minmax(0,1fr);
    gap:18px
  }
  .garden-detail {
    max-width:none;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 30px;
    align-items:start
  }
  .garden-detail-top,.detail-location,.garden-detail h3,.detail-description,.garden-work-note,.garden-enquire {
    grid-column:1
  }
  .garden-examples {
    grid-column:2;
    grid-row:1 / span 5;
    padding-top:4px;
    border-top:0
  }
  .detail-description {
    min-height:0
  }
  .garden-work-note {
    grid-column:2;
    grid-row:6;
    margin-top:-1px
  }
  .garden-enquire {
    grid-column:1;
    grid-row:6;
    align-self:end
  }
}

@media(max-width:680px) {
  .garden-heading {
    display:block;
    margin-bottom:25px
  }
  .garden-heading h2 {
    margin-top:12px
  }
  .garden-intro {
    padding:13px 0 0
  }
  .garden-intro p {
    font-size:.9rem;
    line-height:1.7;
    margin:0 0 13px
  }
  .garden-instruction {
    font-size:.68rem;
    padding:7px 11px
  }
  .garden-viewport {
    border-width:5px;
    border-radius:20px;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    scroll-snap-type:x proximity;
    scrollbar-color:#a4be8d #eaf0e3;
    scrollbar-width:thin;
    -webkit-overflow-scrolling: touch;
  }
  .garden-scene {
    min-width:755px;
    width:755px;
    height:auto;
    aspect-ratio:1000/650;
    scroll-snap-align:start
  }
  .garden-scene-bottom {
    gap:8px;
    margin:13px 0 0
  }
  .garden-swipe-hint {
    display:inline-flex;
    gap:6px;
    align-items:center;
    color:#426e50;
    font-weight:800
  }
  .garden-credit {
    width:100%;
    max-width:100%;
    font-size:.67rem
  }
  .garden-scenery-caption {
    font-size:.8rem
  }
  .garden-shortcuts {
    gap:8px;
    margin-top:18px
  }
  .garden-shortcut {
    font-size:.68rem;
    padding:9px 12px;
    gap:9px
  }
  .garden-detail {
    display:block;
    padding:22px 20px
  }
  .garden-detail h3 {
    font-size:1.9rem
  }
  .detail-description {
    font-size:.88rem;
    max-width:460px
  }
  .garden-examples {
    border-top:1px solid #dfe7db;
    padding-top:18px;
    margin-top:18px
  }
  .garden-work-note {
    margin:10px 0 17px;
    font-size:.69rem
  }
  .garden-enquire {
    min-height:47px
  }
  .garden-service-note {
    margin-top:23px;
    font-size:.77rem;
    text-align:left
  }
}

@media (prefers-reduced-motion:reduce) {
  .hotspot-label,.hotspot-pin,.garden-hotspot::before,.garden-shortcut,.garden-enquire {
    transition:none
  }
}

/* Second visual selected by client: preserve the approved garden-services artwork.
   Text, icons and labels are drawn within the image. Transparent real controls
   align to those labels so they remain interactive and keyboard accessible. */
.preferred-garden-design {
  padding-top:70px;
  background:#fffefa
}

.preferred-garden-design .garden-heading {
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.preferred-garden-design .garden-explorer {
  display:flex;
  flex-direction:column;
  gap:22px
}

.preferred-garden-design .garden-scene-column {
  width:100%
}

.preferred-garden-design .garden-scene {
  aspect-ratio:3 / 2
}

.preferred-garden-design .garden-viewport {
  border:0;
  background:#e2efec;
  border-radius:22px;
  box-shadow:0 18px 50px rgba(41,73,49,.15);
}

.preferred-garden-design .garden-artwork {
  object-fit:contain
}

.preferred-garden-design .garden-scenery-caption {
  display:none
}

.preferred-garden-design .garden-hotspot.poster-hotspot {
  position:absolute;
  left:var(--x);
  top:var(--y);
  width:var(--w);
  height:var(--h);
  border:2px solid transparent;
  border-radius:var(--radius,18px);
  transform:translate(-50%,-50%);
  background:transparent;
  box-shadow:none;
  padding:0;
  display:block;
  overflow:visible;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}

.preferred-garden-design .garden-hotspot.poster-hotspot::before {
  display:none
}

.preferred-garden-design .garden-hotspot.poster-hotspot:hover, .preferred-garden-design .garden-hotspot.poster-hotspot:focus-visible, .preferred-garden-design .garden-hotspot.poster-hotspot[aria-pressed="true"] {
  background:rgba(244,251,232,.10);
  border-color:rgba(249,253,242,.96);
  box-shadow:0 0 0 3px rgba(44,92,49,.22),0 8px 24px rgba(22,50,30,.16),inset 0 0 0 1px rgba(255,255,255,.55);
}

.preferred-garden-design .garden-hotspot.poster-hotspot:focus-visible {
  outline:3px solid #cb7594;
  outline-offset:3px
}

.preferred-garden-design .garden-hotspot.poster-hotspot .area-heading {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, calc(-100% - 12px)) translateY(8px);
  max-width:min(80%, 235px);
  width:max-content;
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,250,240,.97);
  border:1px solid rgba(86,108,72,.18);
  box-shadow:0 8px 22px rgba(29,61,33,.16);
  color:#264630;
  font-size:.82rem;
  line-height:1.15;
  font-weight:800;
  text-align:center;
  opacity:0;
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease;
}

.preferred-garden-design .garden-hotspot.poster-hotspot .area-heading::after {
  content:"";
  position:absolute;
  left:50%;
  top:100%;
  transform:translateX(-50%);
  border-left:8px solid transparent;
  border-right:8px solid transparent;
  border-top:9px solid rgba(255,250,240,.97);
}

.preferred-garden-design .garden-hotspot.poster-hotspot:hover .area-heading, .preferred-garden-design .garden-hotspot.poster-hotspot:focus-visible .area-heading {
  opacity:1;
  transform:translate(-50%, calc(-100% - 12px)) translateY(0);
}

.preferred-garden-design .garden-detail {
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
  column-gap:34px;
  row-gap:0;
  max-width:100%;
  width:100%;
  padding:27px 32px;
  align-items:start;
}

.preferred-garden-design .garden-detail-top, .preferred-garden-design .detail-location, .preferred-garden-design .garden-detail h3, .preferred-garden-design .detail-description, .preferred-garden-design .garden-enquire {
  grid-column:1
}

.preferred-garden-design .garden-examples {
  grid-column:2;
  grid-row:1 / span 5;
  border-top:0;
  padding-top:0
}

.preferred-garden-design .garden-work-note {
  grid-column:2;
  grid-row:6;
  margin:8px 0 0
}

.preferred-garden-design .garden-enquire {
  grid-row:6;
  align-self:end;
  max-width:345px
}

.preferred-garden-design .detail-description {
  min-height:0;
  max-width:450px
}

.preferred-garden-design .examples-pair {
  gap:15px
}

.preferred-garden-design .garden-scene-bottom {
  margin-top:15px
}

.preferred-garden-design .garden-credit {
  max-width:none
}

@media (max-width:900px) {
  .preferred-garden-design {
    padding-top:62px
  }
  .preferred-garden-design .garden-detail {
    grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
    gap:0 20px;
    padding:22px
  }
  .preferred-garden-design .garden-detail h3 {
    font-size:1.65rem
  }
}

@media (max-width:680px) {
  .preferred-garden-design .garden-viewport {
    overflow-x:auto;
    overflow-y:hidden;
    border-radius:18px
  }
  .preferred-garden-design .garden-scene {
    width:980px;
    min-width:980px;
    aspect-ratio:3 / 2
  }
  .preferred-garden-design .garden-swipe-hint {
    display:inline-flex
  }
  .preferred-garden-design .garden-detail {
    display:block;
    padding:22px 20px
  }
  .preferred-garden-design .garden-detail h3 {
    font-size:1.85rem
  }
  .preferred-garden-design .garden-examples {
    border-top:1px solid #dfe7db;
    padding-top:18px;
    margin-top:18px
  }
  .preferred-garden-design .garden-work-note {
    margin:10px 0 17px
  }
  .preferred-garden-design .garden-enquire {
    max-width:none
  }
}

@media (max-width:680px) {
  .preferred-garden-design .garden-hotspot.poster-hotspot .area-heading {
    font-size:.74rem;
    max-width:150px;
    padding:8px 11px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .preferred-garden-design .garden-hotspot.poster-hotspot {
    transition:none
  }
}

/* ------------------------------------------------------------
   Contact form: delivery information and spam trap
   ------------------------------------------------------------ */
.form-privacy, .form-email-alternative {
  color: #68786d;
  font-size: 0.76rem;
  line-height: 1.6;
}

.form-privacy {
  margin: 13px 0 18px;
}

.form-email-alternative {
  margin: 13px 0 0;
}

.form-email-alternative a {
  color: #2c563d;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.form-honeypot {
  position: absolute !important;
  left: -9999px !important;
  height: 1px !important;
  width: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Fix George's logo in the About section */
.about-art-card img {
    width: 80%;
    max-width: 400px;
    height: auto;
    aspect-ratio: 1;
    object-fit: contain;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    mix-blend-mode: multiply;
}

/* Prevent the decorative badge covering
   the logo on smaller screens */
@media (max-width: 680px) {
    .about-stamp {
        display: none;
    }
}

/* ============================================================
   Customer review section: wooden garden markers, flower ratings,
   richly textured soil and a less uniform, natural earth edge.
   All original website styles above are unchanged.
   ============================================================ */
/* ============================================================
   George's Bloom & Broom - flowerbed customer review markers
   Paste at the very bottom of styles.css. All classes are
   prefixed bb- to avoid altering the rest of the website.
   ============================================================ */
.bb-garden-reviews {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  padding: 66px 0 0;
  background: #f2f4eb;
  color: #214734;
}

.bb-reviews-heading {
  margin: 0 auto 34px;
  max-width: 750px;
  text-align: center;
}

.bb-reviews-heading h2 {
  margin: 12px 0 9px;
  font: 500 clamp(2.1rem, 3.8vw, 3.6rem)/1.12 Georgia, serif;
  letter-spacing: -0.035em;
}

.bb-reviews-heading h2 em {
  color: #c46b80;
  font-weight: 400;
}

.bb-reviews-heading p {
  margin: 0;
  color: #607265;
  font-size: 1rem;
  line-height: 1.65;
}

.bb-review-garden {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: 24px;
  position: relative;
  z-index: 2;
  padding: 0 0 64px;
}

.bb-review {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  text-align: center;
}

/* Curved garden labels, like wooden plant markers. */
.bb-review-marker {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  min-height: 242px;
  padding: 37px 24px 25px;
  border: 3px solid #bca37e;
  border-radius: 95px 95px 18px 18px / 48px 48px 18px 18px;
  background:
    repeating-linear-gradient(176deg,
      rgba(148, 105, 66, .028) 0px 1px,
      transparent 2px 15px),
    radial-gradient(ellipse at 20% 80%, rgba(150, 107, 62, .07), transparent 54%),
    linear-gradient(145deg, #fffdf6 0%, #f8f3e8 52%, #eae0cb 100%);
  box-shadow:
    inset 0 0 0 5px rgba(255,255,255,.52),
    inset 0 -8px 12px rgba(110,83,50,.09),
    0 13px 22px rgba(47,54,37,.13),
    2px 3px 0 rgba(115,86,55,.07);
  transform-origin: center bottom;
}

.bb-review-marker::before {
  content: "";
  position: absolute;
  top: 11px;
  left: 50%;
  width: 9px;
  height: 9px;
  transform: translateX(-50%);
  border: 1px solid rgba(115,84,56,.45);
  border-radius: 50%;
  background: radial-gradient(circle at 34% 28%, #f8ebcf, #b59a73 54%, #786047);
  box-shadow: inset 0 1px 1px rgba(255,255,255,.7), 0 2px 3px rgba(77,54,32,.2);
}

/* A fine inner edge gives the painted wood a subtle thickness. */
.bb-review-marker::after {
  content: "";
  position: absolute;
  inset: 10px;
  border: 1px solid rgba(142,108,74,.15);
  border-radius: 90px 90px 11px 11px / 40px 40px 11px 11px;
  pointer-events: none;
}

/* Small handmade variations, not perfectly identical signs. */
.bb-review:nth-child(1) .bb-review-marker { transform: rotate(-.35deg); }
.bb-review:nth-child(2) .bb-review-marker { transform: rotate(.3deg); }
.bb-review:nth-child(3) .bb-review-marker { transform: rotate(-.2deg); }

.bb-marker-top {
  margin-bottom: 14px;
  color: #a36a7c;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .15em;
}

.bb-review-text {
  display: flex;
  flex: 1;
  align-items: center;
  margin: 0 0 17px;
  color: #314a3c;
  font: italic 1.12rem/1.48 Georgia, serif;
}

.bb-review-author {
  margin: auto 0 0;
  padding-top: 12px;
  border-top: 1px solid #d9d9c5;
  width: 100%;
  font-size: .95rem;
  font-weight: 800;
  line-height: 1.4;
  color: #214734;
}

/* A narrow wooden stake extends from each marker into the flowerbed. */
.bb-marker-stake {
  position: relative;
  z-index: 1;
  width: 16px;
  height: 58px;
  margin-top: -2px;
  background:
    repeating-linear-gradient(179deg,
      transparent 0px 13px,
      rgba(93,59,36,.09) 14px,
      transparent 17px),
    linear-gradient(90deg,
      #714b32 0%, #b08259 19%, #dabb90 46%,
      #ab7b53 77%, #704b34 100%);
  border-left: 1px solid rgba(88,56,37,.5);
  border-right: 1px solid rgba(88,56,37,.5);
  clip-path: polygon(0 0, 100% 0, 96% 93%, 50% 100%, 4% 93%);
  filter: drop-shadow(2px 2px 2px rgba(50,34,25,.17));
}

/* Fine timber grain and a small knot in each stake. */
.bb-marker-stake::before {
  content: "";
  position: absolute;
  top: 22px;
  left: 3px;
  width: 6px;
  height: 12px;
  transform: rotate(12deg);
  border: 1px solid rgba(99,61,37,.22);
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(100,59,37,.19), transparent 75%);
}

.bb-marker-stake::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 11px;
  width: 1px;
  transform: rotate(-2deg);
  background: linear-gradient(180deg, rgba(255,239,202,.44), rgba(104,69,46,.12));
}

/* Each star sits inside its own five-petal flower head. */
.bb-flower-rating {
  position: relative;
  z-index: 3;
  display: flex;
  justify-content: center;
  flex-wrap: nowrap;
  gap: clamp(1px, .5vw, 5px);
  width: 100%;
  margin-top: -4px;
}

.bb-rating-flower {
  --bb-petal: #efd0d8;  /* unrated flower */
  --bb-petal-shadow: #dca8b6;
  --bb-centre: #fff1c8;
  --bb-star: #7d8d7a;
  position: relative;
  display: block;
  flex: 0 0 clamp(35px, 3.55vw, 45px);
  width: clamp(35px, 3.55vw, 45px);
  height: clamp(35px, 3.55vw, 45px);
  background:
    radial-gradient(circle at 50% 49%, var(--bb-centre) 0 22%,
      rgba(255,241,200,.95) 23% 30%, transparent 31%),
    radial-gradient(circle at 42% 36%, rgba(255,255,255,.45) 0 10%, transparent 11%),
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.14) 0 68%, transparent 69%);
}

.bb-rating-flower::before {
  content: "\273F";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--bb-petal);
  font: 52px/1 "Segoe UI Symbol", "DejaVu Sans", sans-serif;
  text-shadow: 0 1px 0 rgba(255,255,255,.55), 0 3px 5px rgba(108,73,77,.18);
  filter: drop-shadow(0 2px 3px rgba(52,67,49,.14));
}

.bb-rating-flower::after {
  content: "\2605";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -54%);
  color: var(--bb-star);
  font: 800 19px/1 Arial, sans-serif;
  text-shadow: 0 1px 0 rgba(255,255,255,.45), 0 2px 3px rgba(58,47,23,.18);
}

/* Use is-filled ONLY when George confirms the customer's rating. */
.bb-rating-flower.is-filled {
  --bb-petal: #df8fa3;
  --bb-petal-shadow: #c56f87;
  --bb-centre: #fff2cb;
  --bb-star: #fff7dd;
}

.bb-rating-caption {
  position: relative;
  z-index: 3;
  margin: 3px 0 0;
  color: #fff4db;
  text-shadow: 0 1px 2px rgba(45,27,18,.55);
  font-size: .78rem;
  font-weight: 700;
}

/* Continuous mound of soil below the three stakes. */
.bb-review-soil {
  position: relative;
  z-index: 1;
  height: 110px;
  margin-top: -126px;
  overflow: visible;
  background:
    /* tiny grains of light sand */
    radial-gradient(circle at 13% 31%, rgba(230,196,159,.44) 0 1px,
      transparent 1.7px) 0 0/43px 27px,
    /* dark granular earth */
    radial-gradient(circle at 53% 73%, rgba(53,35,26,.33) 0 1.5px,
      transparent 2px) 0 0/39px 33px,
    /* irregular small pebble-like fragments */
    radial-gradient(ellipse 4px 2px at 30% 20%, rgba(188,143,102,.48) 0 70%,
      transparent 75%) 0 0/104px 54px,
    radial-gradient(ellipse 3px 1.8px at 75% 66%, rgba(57,39,29,.42) 0 70%,
      transparent 75%) 0 0/87px 49px,
    /* mottled patches and soft earthy shadow */
    radial-gradient(ellipse at 18% 12%, rgba(207,159,113,.20), transparent 24%),
    radial-gradient(ellipse at 70% 35%, rgba(47,29,21,.17), transparent 35%),
    repeating-linear-gradient(113deg, transparent 0 37px,
      rgba(56,35,22,.035) 38px 40px, transparent 41px 77px),
    linear-gradient(180deg, #9b7052 0%, #815b42 39%, #6e4a35 75%, #5b3d2e 100%);
  box-shadow: inset 0 12px 16px rgba(255,255,255,.035),
    inset 0 -15px 22px rgba(40,26,19,.24);
}

.bb-review-soil::before {
  content: "";
  position: absolute;
  left: -1%;
  right: -1%;
  top: -32px;
  height: 54px;
  /* These small rises and dips create a genuine uneven soil edge. */
  clip-path: polygon(
    0 63%, 2% 56%, 4% 61%, 7% 40%, 10% 51%,
    13% 42%, 16% 53%, 19% 29%, 22% 44%, 25% 39%,
    28% 51%, 32% 37%, 35% 26%, 38% 38%, 41% 50%,
    44% 44%, 47% 54%, 50% 34%, 53% 39%, 56% 48%,
    59% 33%, 62% 36%, 65% 54%, 68% 44%, 71% 49%,
    74% 29%, 77% 45%, 80% 39%, 83% 51%, 86% 35%,
    89% 40%, 92% 52%, 95% 42%, 98% 51%, 100% 46%,
    100% 100%, 0 100%
  );
  background:
    radial-gradient(ellipse 30px 8px at 19% 40%, rgba(55,35,23,.2), transparent 90%),
    radial-gradient(ellipse 27px 11px at 48% 52%, rgba(209,160,114,.12), transparent 90%),
    radial-gradient(ellipse 32px 9px at 76% 30%, rgba(54,36,27,.18), transparent 90%),
    radial-gradient(circle at 13% 67%, rgba(218,173,131,.35) 0 1.2px,
      transparent 1.7px) 0 0/42px 26px,
    radial-gradient(circle at 61% 37%, rgba(66,42,29,.35) 0 1.6px,
      transparent 2px) 0 0/49px 31px,
    linear-gradient(180deg, #9d785b 0%, #967054 55%, #93674b 100%);
  filter: drop-shadow(0 -2px 1px rgba(71,48,33,.15));
  pointer-events: none;
}

/* A few bark-chip and small-stone highlights near the surface. */
.bb-review-soil::after {
  content: "";
  position: absolute;
  inset: -7px 0 auto;
  height: 29px;
  pointer-events: none;
  opacity: .72;
  background:
    radial-gradient(ellipse 5px 2px at 8% 70%, #b58a66 0 60%, transparent 65%),
    radial-gradient(ellipse 3px 2px at 18% 40%, #513a2b 0 60%, transparent 65%),
    radial-gradient(ellipse 5px 2px at 29% 83%, #a77b55 0 60%, transparent 65%),
    radial-gradient(ellipse 4px 2px at 42% 51%, #573a2a 0 60%, transparent 65%),
    radial-gradient(ellipse 4px 2px at 57% 72%, #b18a67 0 60%, transparent 65%),
    radial-gradient(ellipse 3px 2px at 67% 40%, #4e3628 0 60%, transparent 65%),
    radial-gradient(ellipse 6px 2px at 79% 88%, #c29d76 0 60%, transparent 65%),
    radial-gradient(ellipse 4px 2px at 91% 47%, #543a2c 0 60%, transparent 65%);
}

.bb-reviews-disclaimer {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: 12px 20px 14px;
  background: #f8f4eb;
  text-align: center;
  color: #67776c;
  font-size: .78rem;
  line-height: 1.45;
}

@media (max-width: 960px) {
  .bb-review-garden { gap: 12px; }
  .bb-review-marker { padding: 39px 14px 24px; }
  .bb-review-text { font-size: 1.04rem; }
  .bb-marker-top { letter-spacing: .1em; }
}

@media (max-width: 700px) {
  .bb-garden-reviews { padding-top: 49px; }
  .bb-reviews-heading { margin-bottom: 24px; }
  .bb-reviews-heading h2 { font-size: clamp(2rem, 8vw, 2.8rem); }
  .bb-review-garden { grid-template-columns: 1fr; gap: 20px; padding-bottom: 18px; }
  .bb-review {
    padding: 0 20px 24px;
    overflow: hidden;
    border-radius: 20px;
  }
  /* Each stacked mobile marker has its own small bed of soil. */
.bb-review::before {
    content: "";
    position: absolute;
    z-index: 0;
    bottom: 0;
    left: 0;
    right: 0;
    height: 103px;
    border-radius: 0 0 20px 20px;
    clip-path: polygon(
      0 43%, 5% 39%, 10% 46%, 16% 30%, 21% 38%,
      28% 31%, 34% 42%, 41% 29%, 48% 33%, 54% 22%,
      61% 37%, 67% 28%, 74% 43%, 81% 29%, 88% 40%,
      95% 30%, 100% 40%, 100% 100%, 0 100%
    );
    background:
      radial-gradient(circle at 14% 25%, rgba(228,187,146,.39) 0 1px,
        transparent 1.7px) 0 0/42px 27px,
      radial-gradient(circle at 49% 66%, rgba(52,34,25,.38) 0 1.4px,
        transparent 2px) 0 0/39px 30px,
      radial-gradient(ellipse 3px 2px at 65% 35%, rgba(192,149,109,.55) 0 70%,
        transparent 75%) 0 0/86px 41px,
      radial-gradient(ellipse at 20% 10%, rgba(213,165,121,.21), transparent 43%),
      radial-gradient(ellipse at 75% 54%, rgba(44,27,21,.18), transparent 45%),
      linear-gradient(180deg, #997051, #815b43 45%, #64442f);
    box-shadow: inset 0 -10px 16px rgba(45,29,20,.16);
}
  .bb-review-marker { max-width: 370px; min-height: 219px; }
  .bb-review-text { font-size: 1.1rem; }
  .bb-flower-rating { gap: 4px; }
  .bb-rating-flower { flex-basis: 43px; width: 43px; height: 43px; }
  .bb-rating-caption { color: #fff8ea; }
  .bb-review-soil { display: none; }
}


/* Soft, rolling soil contours where the browser supports CSS curves. */
@supports (clip-path: shape(from 0% 50%, curve to 100% 50% with 30% 30% / 70% 70%, line to 100% 100%, line to 0% 100%, close)) {
  .bb-review-soil::before {
    clip-path: shape(
      from 0% 66%,
      curve to 15% 42% with 4% 59% / 9% 31%,
      curve to 31% 58% with 21% 61% / 25% 55%,
      curve to 48% 39% with 37% 45% / 41% 53%,
      curve to 66% 57% with 54% 33% / 59% 66%,
      curve to 83% 40% with 71% 46% / 76% 26%,
      curve to 100% 60% with 88% 61% / 95% 45%,
      line to 100% 100%,
      line to 0% 100%,
      close
    );
  }

  @media (max-width: 700px) {
    .bb-review::before {
      clip-path: shape(
        from 0% 47%,
        curve to 23% 30% with 8% 44% / 15% 25%,
        curve to 46% 46% with 29% 52% / 37% 38%,
        curve to 70% 31% with 54% 25% / 62% 42%,
        curve to 100% 45% with 82% 31% / 92% 50%,
        line to 100% 100%,
        line to 0% 100%,
        close
      );
    }
  }
}


/* Confirmed first customer review; preserve aligned wooden signs. */
.bb-review-garden { align-items: stretch; }
.bb-review-marker { flex-grow: 1; }
.bb-review-title {
  margin: 0 0 12px;
  color: #244934;
  font: 600 1.23rem/1.27 Georgia, serif;
  letter-spacing: -.015em;
}
.bb-review:first-child .bb-review-text {
  display: block;
  flex: 1;
  margin: 0 0 14px;
  font: italic 1.02rem/1.54 Georgia, serif;
}
@media (max-width: 700px) {
  .bb-review-title { font-size: 1.25rem; }
  .bb-review:first-child .bb-review-text { font-size: 1rem; }
}

/* ============================================================
   GEORGE'S BLOOM & BROOM - NEW TOP WELCOME SECTION
   Replaces only the old hero section. No JavaScript is needed.
   Keep the existing header, services, reviews, FAQ, form and mower.
   ============================================================ */
.gb-welcome {
  position: relative;
  overflow: hidden;
  padding: 33px 0 49px;
  background: linear-gradient(145deg, #f7f7ed, #eff3e8 66%, #f8f6ef);
}
.gb-welcome-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  gap: 12px;
  width: min(1368px, calc(100% - 56px));
  padding: 10px;
  margin: 0 auto;
  border: 2px solid #fffefa;
  border-radius: 28px;
  background: #fffefa;
  box-shadow: 0 17px 42px rgba(23,61,36,.09);
}
/* The existing animated mower has a 98px-wide right-edge rail. */
html.mower-scroll-ready .gb-welcome {
  padding-right: 103px;
}
.gb-welcome-about,
.gb-welcome-map-panel {
  position: relative;
  min-width: 0;
  min-height: 606px;
  border-radius: 20px;
  overflow: hidden;
}
.gb-welcome-about {
  isolation: isolate;
  background: linear-gradient(120deg,#fffdf7 6%,#faf7ec 62%,#f2f2e4);
}
.gb-welcome-copy {
  position: relative;
  z-index: 2;
  width: 49%;
  padding: 63px 0 0 30px;
}
.gb-welcome-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  white-space: nowrap;
  color: #587959;
  font: 800 .63rem/1.6 "Segoe UI", Arial, sans-serif;
  letter-spacing: .14em;
}
.gb-welcome-kicker::before {
  content: "";
  flex: 0 0 22px;
  height: 2px;
  background: #c77b8b;
}
.gb-welcome-copy h1 {
  margin: 0 0 27px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.25rem,5.05vw,5.1rem);
  font-weight: 500;
  line-height: .98;
  letter-spacing: -.065em;
  color: #173d29;
}
.gb-welcome-copy h1 span {
  display: block;
  color: #456e34;
}
.gb-welcome-bio {
  margin: 0;
  max-width: 325px;
  color: #3d5447;
  font: 400 clamp(.93rem,1.04vw,1.09rem)/1.58 Georgia,serif;
}
.gb-welcome-portrait {
  position: absolute;
  top: 48px;
  right: 1px;
  z-index: 1;
  width: 48%;
  height: 462px;
  margin: 0;
  overflow: hidden;
  border-radius: 47% 48% 34% 30% / 25% 25% 18% 21%;
  background: #e5eacf;
  box-shadow: 0 0 0 4px #cbd9aa;
}
.gb-welcome-portrait img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.gb-welcome-portrait figcaption {
  position: absolute;
  left: 7px;
  right: 7px;
  bottom: 10px;
  z-index: 2;
  padding: 6px 8px;
  border-radius: 8px;
  text-align: center;
  background: rgba(255,253,245,.92);
  color: #305444;
  font: 600 .64rem/1.35 "Segoe UI",Arial,sans-serif;
}
.gb-welcome-actions {
  position: absolute;
  bottom: 25px;
  left: 26px;
  right: 26px;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 11px;
}
.gb-welcome-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  min-height: 56px;
  padding: 10px 9px;
  border: 1.5px solid #214734;
  border-radius: 13px;
  font-size: clamp(.76rem,.98vw,.98rem);
  line-height: 1.3;
  font-weight: 770;
  text-align: center;
  transition: transform .2s ease,background-color .2s ease;
}
.gb-welcome-button:hover {
  transform: translateY(-2px);
}
.gb-welcome-button-primary {
  background: #19442e;
  color: #fffefa;
}
.gb-welcome-button-primary:hover {
  background: #315a40;
}
.gb-welcome-button-outline {
  background: #fffcf5;
  color: #214734;
}
.gb-welcome-button-outline:hover {
  background: #edf3e6;
}
.gb-welcome-button-arrow {
  font-size: 1.4em;
  line-height: 1;
}
.gb-welcome-map-panel {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 15px 12px;
  background: #fffef8;
  border: 1px solid #e3e9db;
}
.gb-welcome-map-panel h2 {
  flex: 0 0 auto;
  margin: 0 8px 2px;
  font: 500 clamp(1.9rem,2.85vw,3rem)/1.13 Georgia,serif;
  letter-spacing: -.045em;
  color: #193b29;
}
.gb-welcome-map-panel h2 em {
  color: #c66b82;
  font-style: italic;
}
.gb-welcome-map-frame {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  border-radius: 14px;
  background: #e6efd6;
}
.gb-welcome-map-frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}
.gb-welcome-map-note {
  flex: 0 0 auto;
  margin: 0;
  font-size: .68rem;
  color: #697d6d;
  text-align: center;
  line-height: 1.45;
}
@media (min-width: 1051px) and (max-width: 1260px) {
  .gb-welcome-copy {
    width: 50%;
    padding-top: 55px;
    padding-left: 22px;
  }
  .gb-welcome-copy h1 {
    font-size: clamp(3.05rem,5vw,4.2rem);
  }
  .gb-welcome-portrait {
    right: -7px;
    width: 46%;
  }
  .gb-welcome-bio {
    font-size: .89rem;
  }
  .gb-welcome-actions {
    left: 17px;
    right: 17px;
  }
}
@media (max-width: 1050px) {
  html.mower-scroll-ready .gb-welcome {padding-right:0;}
  .gb-welcome-layout {
    grid-template-columns: 1fr;
    max-width: 700px;
    gap: 12px;
  }
  .gb-welcome-about {min-height: 560px;}
  .gb-welcome-map-panel {min-height: 550px;}
  .gb-welcome-copy {
    width: 51%;
    padding-top: 46px;
  }
  .gb-welcome-copy h1 {font-size: 4.45rem;}
  .gb-welcome-bio {font-size: 1rem;}
  .gb-welcome-portrait {width: 48%; height: 450px;top:30px;}
  .gb-welcome-map-frame img {object-fit: contain;}
}
@media (max-width: 550px) {
  .gb-welcome {padding: 16px 0 25px;}
  .gb-welcome-layout {
    width: calc(100% - 20px);
    padding: 7px;
    gap: 8px;
    border-radius: 20px;
  }
  .gb-welcome-about,
  .gb-welcome-map-panel {min-height: 0; border-radius: 15px;}
  .gb-welcome-about {
    display: flex;
    flex-direction: column;
    padding: 24px 18px 19px;
    align-items: stretch;
  }
  .gb-welcome-copy {
    width: 100%;
    padding: 0;
  }
  .gb-welcome-kicker {
    font-size: .56rem;
    letter-spacing: .09em;
    margin-bottom: 12px;
  }
  .gb-welcome-copy h1 {
    font-size: clamp(3rem,11vw,4.1rem);
    margin-bottom: 15px;
  }
  .gb-welcome-copy h1 span {display: inline;}
  .gb-welcome-bio {
    font-size: 1rem;
    max-width: none;
    line-height: 1.53;
  }
  .gb-welcome-portrait {
    position: relative;
    top: auto;
    right: auto;
    width: min(290px,100%);
    height: 275px;
    margin: 17px auto 15px;
    border-radius: 45% 45% 23% 24% / 34% 34% 16% 16%;
  }
  .gb-welcome-actions {
    position: relative;
    inset: auto;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .gb-welcome-button {
    min-height: 50px;
    padding: 10px 7px;
    gap: 5px;
    font-size: .73rem;
  }
  .gb-welcome-map-panel {
    min-height: 0;
    padding: 13px 11px 11px;
    gap: 9px;
  }
  .gb-welcome-map-panel h2 {
    font-size: clamp(1.9rem,8vw,2.4rem);
  }
  .gb-welcome-map-frame {
    flex: 0 0 auto;
    aspect-ratio: 866/778;
  }
  .gb-welcome-map-note {
    font-size: .64rem;
  }
}
@media (max-width: 355px) {
  .gb-welcome-kicker {font-size: .49rem;}
  .gb-welcome-copy h1 {font-size: 2.85rem;}
  .gb-welcome-button {font-size: .68rem;}
  .gb-welcome-portrait {height: 250px;}
}
@media (prefers-reduced-motion: reduce) {
  .gb-welcome-button {transition: none;}
}

/* ================================================================
   GEORGE'S BLOOM & BROOM - THICKER GROWING VINE HEADER
   Decorative only: does not intercept clicks or replace navigation.
   ================================================================ */
.site-header { --gb-flower-x: 50%; overflow: visible; }
.gb-vine-border {
  position: relative;
  isolation: isolate;
  height: 59px;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,254,250,.985), #fbfcf5 88%);
  border-bottom: 1px solid rgba(87,121,73,.17);
  pointer-events: none;
}
.gb-vine-svg {
  position: absolute;
  left: 50%; top: 0;
  transform: translateX(-50%);
  display: block;
  height: 100%;
  width: max(100%, 980px);
  overflow: visible;
}
.gb-vine-shadow {
  fill: none;
  stroke: #a9c097;
  stroke-width: 7.2;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  opacity: .64;
}
.gb-vine-growing {
  fill: none;
  stroke: #4d7b4c;
  stroke-width: 4.4;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
  transition: stroke-dashoffset .65s ease-out;
}
.gb-vine-stem {
  fill: none;
  stroke: #668f5d;
  stroke-width: 3.05;
  vector-effect: non-scaling-stroke;
  stroke-linecap: round;
}
.gb-vine-leaf {
  fill: #82a56d;
  stroke: #5b8655;
  stroke-width: 1.4;
  vector-effect: non-scaling-stroke;
}
.gb-vine-sprig:nth-of-type(4n) .gb-vine-leaf { fill: #9bbb87; }
.gb-vine-sprig:nth-of-type(6n) .gb-vine-leaf { fill: #6e9a68; }
.gb-vine-small-leaf { opacity: .86; }
.gb-vine-petal {
  fill: #e495aa;
  stroke: #cb7b96;
  stroke-width: 1.15;
  vector-effect: non-scaling-stroke;
}
.gb-vine-flower-centre { fill: #f3d091; stroke: #d5af70; stroke-width: 1.3; }
.gb-hover-flower {
  position: absolute;
  z-index: 4;
  left: var(--gb-flower-x);
  top: 1px;
  width: 57px;
  height: 57px;
  opacity: 0;
  transform: translateX(-50%) scale(.12) rotate(-15deg);
  transform-origin: center;
  filter: drop-shadow(0 3px 5px rgba(93,49,60,.16));
  transition: opacity .2s ease-out, transform .45s cubic-bezier(.18,1.3,.35,1);
}
.gb-hover-flower svg { display:block; width:100%;height:100%; }
.gb-hover-petals ellipse { fill:#d87e9d;stroke:#c16a88;stroke-width:1.1; }
.site-header.gb-vine-blooming .gb-hover-flower {
  opacity: 1;
  transform: translateX(-50%) scale(1) rotate(0deg);
}
@media (max-width: 900px) {
  .gb-vine-border { height: 42px; }
  .gb-vine-svg { width: max(100%, 900px); }
  .gb-hover-flower { width: 43px; height: 43px; top: 0; }
  .site-header .site-nav { position: absolute; top: 100%; max-height: calc(100vh - 119px); }
}
@media (max-width: 680px) {
  .gb-vine-border { height: 37px; }
  .gb-vine-svg { width: max(100%, 790px); }
  .gb-hover-flower { width: 38px; height: 38px; }
  .site-header .site-nav { top: 100%; max-height: calc(100vh - 109px); }
}
@media (prefers-reduced-motion: reduce) {
  .gb-vine-growing, .gb-hover-flower { transition: none !important; }
}


/* ================================================================
   REVIEW CAROUSEL - groups of three plant markers
   Desktop and mobile, soft planting/bloom animation, reduced-motion safe.
   ================================================================ */
.bb-review-stage{position:relative; width:min(1410px,calc(100% - 28px));margin:0 auto;padding:0 clamp(49px,5.8vw,78px);z-index:4;}
.bb-review-viewport{overflow:hidden;width:100%;border-radius:2px;transition:height .45s ease;}
.bb-review-track{display:flex;align-items:flex-start;transition:transform .54s cubic-bezier(.2,.8,.2,1);will-change:transform;}
.bb-review-page{flex:0 0 100%;width:100%;min-width:0;}
.bb-review-page[aria-hidden="true"]{pointer-events:none;}
.bb-review-garden{align-items:stretch;}
.bb-review-marker{flex-grow:1;}
.bb-review-title{margin:0 0 12px;color:#244934;font:600 1.23rem/1.27 Georgia,serif;letter-spacing:-.015em;}
.bb-review-page:first-child .bb-review:first-child .bb-review-text{display:block;flex:1;margin:0 0 14px;font:italic 1.02rem/1.54 Georgia,serif;}
/* Full, dimensional flower heads in a colour unique to each marker */
.bb-review:nth-child(1) {--bb-flower-col:#e49aae; --bb-flower-edge:#c77792; --bb-flower-light:#ffebee;}
.bb-review:nth-child(2) {--bb-flower-col:#ae94da; --bb-flower-edge:#8f72c2; --bb-flower-light:#e8dafb;}
.bb-review:nth-child(3) {--bb-flower-col:#f1ab83; --bb-flower-edge:#dc916a; --bb-flower-light:#ffe5d0;}
.bb-rating-flower{background:none;display:grid;place-items:center;isolation:isolate;}
.bb-rating-flower::before,.bb-rating-flower::after{content:none!important;display:none!important;}
.bb-petal-blossom{width:120%;height:120%;max-width:none;overflow:visible;filter:drop-shadow(0px 3px 2px rgba(60,55,41,.19));}
.bb-flower-star{fill:#fff8e3;stroke:#9c7151;stroke-width:.45px;}
.bb-rating-flower:not(.is-filled) .bb-flower-star{fill:#fff9e9;stroke:#bda083;stroke-width:1.3px;opacity:.70;}
.bb-review-future .bb-review-marker{opacity:.84;}
.bb-review-future .bb-rating-caption{opacity:.8;}
.bb-review-nav{position:absolute;top:43%;transform:translateY(-50%);width:50px;height:50px;display:grid;place-items:center;z-index:7;border-radius:50%;background:#fffdf7;border:2px solid #c8b995;box-shadow:0 7px 20px rgba(45,65,44,.17),inset 0 0 0 3px #f9f5eb;color:#23543a;cursor:pointer;transition:background .2s,box-shadow .2s,transform .2s,opacity .2s;}
.bb-review-nav svg{width:25px;height:25px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}
.bb-review-nav-prev{left:8px;}
.bb-review-nav-next{right:8px;}
.bb-review-nav:hover:not(:disabled){background:#e9efe3;transform:translateY(-50%) scale(1.06);box-shadow:0 10px 24px rgba(45,65,44,.22),inset 0 0 0 3px #f9f5eb;}
.bb-review-nav:disabled{opacity:.37;cursor:not-allowed;box-shadow:0 3px 7px rgba(45,65,44,.06);}
.bb-review-nav:focus-visible{outline:3px solid #c96c8b;outline-offset:3px;}
.bb-review-counter{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);z-index:5;background:#f9f6eb;border:1px solid #d1d6c3;border-radius:99px;white-space:nowrap;padding:4px 14px;font-size:.66rem;font-weight:850;letter-spacing:.09em;color:#52765a;box-shadow:0 5px 14px rgba(40,50,36,.08);}
.bb-review-counter strong{color:#b86f86;font-size:.88rem;}
.bb-review-counter .bb-slash{padding:0 5px;color:#b4bda6;}
.bb-reviews-disclaimer{padding-top:17px;}
@media(max-width:700px){
 .bb-review-stage{padding:0 2px 77px;width:min(465px,calc(100% - 18px));}
 .bb-review-viewport{border-radius:12px;}
 .bb-review-nav{top:auto;bottom:15px;transform:none;width:48px;height:48px;}
 .bb-review-nav-prev{left:calc(50% - 114px);}
 .bb-review-nav-next{right:calc(50% - 114px);}
 .bb-review-nav:hover:not(:disabled){transform:scale(1.06);}
 .bb-review-counter{bottom:23px;}
 .bb-review-garden{padding-bottom:0;}
 .bb-review{padding-bottom:28px;}
 .bb-review-title{font-size:1.25rem;}
 .bb-review-page:first-child .bb-review:first-child .bb-review-text{font-size:1rem;}
 .bb-review-demo-label{font-size:.58rem;line-height:1.6;padding:0 18px;}
 .bb-reviews-heading{margin-bottom:18px;}
}
@media(prefers-reduced-motion:reduce){.bb-review-track,.bb-review-viewport,.bb-review-nav{transition:none!important;}}

/* ============================================================
  Preview interaction: signs get planted, blossoms grow out of soil.
  These styles are isolated to the review carousel only.
============================================================ */
.bb-review-page .bb-review:nth-child(1){--bb-card-stagger:0ms}
.bb-review-page .bb-review:nth-child(2){--bb-card-stagger:79ms}
.bb-review-page .bb-review:nth-child(3){--bb-card-stagger:158ms}
.bb-flower-rating .bb-rating-flower:nth-child(1){--bb-bloom-stagger:0ms}
.bb-flower-rating .bb-rating-flower:nth-child(2){--bb-bloom-stagger:76ms}
.bb-flower-rating .bb-rating-flower:nth-child(3){--bb-bloom-stagger:151ms}
.bb-flower-rating .bb-rating-flower:nth-child(4){--bb-bloom-stagger:227ms}
.bb-flower-rating .bb-rating-flower:nth-child(5){--bb-bloom-stagger:302ms}

/* While the next set slides in, the markers are still above the soil. */
.bb-review-page.bb-is-ready .bb-review-marker{opacity:0;transform:translateY(-48px) scale(.987)}
.bb-review-page.bb-is-ready .bb-marker-stake{opacity:0;transform:translateY(-44px) scaleY(.68)}
.bb-review-page.bb-is-ready .bb-rating-flower{opacity:0;transform:translateY(17px) scale(.04) rotate(-24deg)}
.bb-review-page.bb-is-ready .bb-rating-caption{opacity:0;transform:translateY(8px)}

/* Lift the old set gently before the horizontal carousel transition. */
.bb-review-page.bb-is-leaving .bb-review-marker{
  animation:bb-lift-out 220ms ease-in forwards;
}
.bb-review-page.bb-is-leaving .bb-marker-stake{
  animation:bb-stake-lift 220ms ease-in forwards;
}
.bb-review-page.bb-is-leaving .bb-rating-flower{
  animation:bb-close-blossom 184ms ease-in forwards;
}
.bb-review-page.bb-is-leaving .bb-rating-caption{
  animation:bb-caption-away 147ms ease-in forwards;
}

/* Each incoming sign drops, sinks into the soil, then settles. */
.bb-review-page.bb-is-planting .bb-review-marker{
  animation:bb-plant-marker 693ms cubic-bezier(.24,.62,.29,1) both;
  animation-delay:var(--bb-card-stagger,0ms);
}
.bb-review-page.bb-is-planting .bb-marker-stake{
  transform-origin:50% 100%;
  animation:bb-plant-stake 682ms cubic-bezier(.24,.62,.29,1) both;
  animation-delay:var(--bb-card-stagger,0ms);
}
.bb-review-page.bb-is-planting .bb-rating-flower{
  transform-origin:center 75%;
  animation:bb-bloom 556ms cubic-bezier(.2,.7,.24,1.06) both;
  animation-delay:calc(430ms + var(--bb-card-stagger,0ms) + var(--bb-bloom-stagger,0ms));
}
.bb-review-page.bb-is-planting .bb-petal-blossom .bb-flower-leaves{
  transform-box:fill-box;
  transform-origin:center bottom;
  animation:bb-leaf-open 514ms ease-out both;
  animation-delay:calc(430ms + var(--bb-card-stagger,0ms) + var(--bb-bloom-stagger,0ms));
}
.bb-review-page.bb-is-planting .bb-rating-caption{
  animation:bb-caption-appear 452ms ease-out both;
  animation-delay:calc(914ms + var(--bb-card-stagger,0ms));
}

/* Small soil grains appear where each stake settles into earth. */
.bb-soil-impact{
  position:absolute;
  width:65px;height:19px;
  left:50%;bottom:65px;
  transform:translateX(-50%);
  z-index:2;pointer-events:none;opacity:0;
}
.bb-soil-impact::before,.bb-soil-impact::after{
  content:"";position:absolute;border-radius:50%;
  background:#a87a52;box-shadow:
  -19px 2px 0 -1px #d1a077,
  -9px -5px 0 -1px #80573d,
  13px 0 0 -1px #c59870,
  24px 7px 0 -1px #6f4935;
}
.bb-soil-impact::before{width:6px;height:5px;left:24px;top:7px;}
.bb-soil-impact::after{width:4px;height:5px;left:32px;top:9px;opacity:.65;transform:scale(.7) rotate(19deg);}
.bb-review-page.bb-is-planting .bb-soil-impact{
  animation:bb-earth-burst 504ms ease-out both;
  animation-delay:calc(404ms + var(--bb-card-stagger,0ms));
}

@keyframes bb-lift-out{
  0%{opacity:1;translate:0 0}
  100%{opacity:.72;translate:0 -18px}
}
@keyframes bb-stake-lift{
  0%{opacity:1;translate:0 0}
  100%{opacity:.8;translate:0 -15px}
}
@keyframes bb-close-blossom{
  0%{opacity:1;transform:scale(1) translateY(0)}
  100%{opacity:.1;transform:scale(.17) translateY(12px)}
}
@keyframes bb-caption-away{
  from{opacity:1}to{opacity:0}
}
@keyframes bb-plant-marker{
  0%{opacity:0;transform:translateY(-54px) scale(.98) rotate(-1.5deg)}
  26%{opacity:1}
  60%{opacity:1;transform:translateY(6px) scale(1.003) rotate(.18deg)}
  80%{transform:translateY(-2px) scale(.999) rotate(-.08deg)}
  100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}
}
@keyframes bb-plant-stake{
  0%{opacity:0;transform:translateY(-54px) scaleY(.65)}
  30%{opacity:1}
  60%{transform:translateY(6px) scaleY(1.016)}
  80%{transform:translateY(-1.5px) scaleY(.996)}
  100%{opacity:1;transform:translateY(0) scaleY(1)}
}
@keyframes bb-bloom{
  0%{opacity:0;transform:translateY(18px) scale(.07) rotate(-35deg)}
  45%{opacity:1}
  70%{opacity:1;transform:translateY(-3px) scale(1.08) rotate(3deg)}
  87%{transform:translateY(1px) scale(.985) rotate(-1deg)}
  100%{opacity:1;transform:translateY(0) scale(1) rotate(0deg)}
}
@keyframes bb-leaf-open{
  0%{opacity:0;transform:scale(.25) rotate(-25deg)}
  70%{opacity:1;transform:scale(1.025) rotate(3deg)}
  100%{opacity:1;transform:scale(1) rotate(0)}
}
@keyframes bb-earth-burst{
  0%{opacity:0;transform:translateX(-50%) translateY(3px) scale(.42)}
  25%{opacity:.78}
  55%{opacity:.78;transform:translateX(-50%) translateY(-9px) scale(1.04)}
  100%{opacity:0;transform:translateX(-50%) translateY(5px) scale(1.6)}
}
@keyframes bb-caption-appear{
  from{opacity:0;transform:translateY(8px)}
  to{opacity:1;transform:translateY(0)}
}
@media(max-width:700px){
  .bb-soil-impact{bottom:68px}
}
@media(prefers-reduced-motion:reduce){
 .bb-review-page.bb-is-ready .bb-review-marker,
 .bb-review-page.bb-is-ready .bb-marker-stake,
 .bb-review-page.bb-is-ready .bb-rating-flower,
 .bb-review-page.bb-is-ready .bb-rating-caption{
  opacity:1;transform:none;
 }
 .bb-review-page.bb-is-planting *,
 .bb-review-page.bb-is-leaving *{
  animation:none!important;
 }
 .bb-soil-impact{display:none}
}

/* Fuller, detailed petals: unique colours for each review marker. */
.bb-flower-petal {
  fill: var(--bb-flower-col, #e49aae);
  stroke: var(--bb-flower-edge, #c77792);
  stroke-width: .8px;
}
.bb-flower-highlight { fill: var(--bb-flower-light, #ffebee); opacity: .42; }
.bb-review-future .bb-review-marker { opacity: .93; }
.bb-review-future .bb-review-author { font-style: italic; }
.bb-review-page[aria-hidden="true"] { visibility: hidden; }
.bb-review-page.bb-is-ready { visibility: visible !important; }
.bb-review-stage .bb-review-garden { margin: 0; }
.bb-review-nav { touch-action: manipulation; }
/* Gentle focus styling is kept even for keyboard-only users. */
.bb-review-nav:focus-visible { outline: 3px solid #c46b80; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .bb-review-page .bb-review-marker,
  .bb-review-page .bb-marker-stake,
  .bb-review-page .bb-rating-flower,
  .bb-review-page .bb-rating-caption { animation: none !important; }
}
/* Make the desktop-only mower a little more discreet without removing it. */
@media (min-width: 1180px) and (pointer: fine) {
  .mower-scroll { width: 82px; right: 6px; }
  .mower-thumb { width: 78px; height: 72px; left: -1px; }
  .mower-lawn { width: 33px; }
  .mower-clippings { top: 48px; right: 1px; transform: scale(.85); }
  html.mower-scroll-ready .gb-welcome { padding-right: 88px; }
}
/* Portrait within its organic cut-out is centred across breakpoints. */
.gb-welcome-portrait img { object-position: 50% 43%; }

/* Remove oversized decorative navigation vine */
.gb-vine-border {
  display: none !important;
}

/* Keep the normal navigation bar */
.site-header {
  overflow: visible;
}
