/* Island garden palette, measured content rhythm, and local project photography. */
:root {
  --garden-ink: #173b29;
  --garden-copy: #576452;
  --garden-sage: #e9eedf;
  --garden-sand: #f7f5ee;
}
body {
  background: #fffefa;
}
.main-content .optimizer-section .wpb_text_column h2,
.main-content .optimizer-section .vc_custom_heading {
  font:
    700 clamp(27px, 2.7vw, 38px)/1.2 Lato,
    Arial,
    sans-serif !important;
  letter-spacing: -0.025em;
  margin: 0 0 22px !important;
  padding: 0 !important;
}
.main-content .optimizer-section .wpb_text_column p:not(.cta-group) {
  font:
    400 16px/1.8 Lato,
    Arial,
    sans-serif;
  margin: 0 0 20px;
}
.optimizer-section--box-1-image-right .homepage-content-area h2,
.optimizer-section--box-2-image-left .homepage-content-area h2,
.optimizer-section--box-1-image-right .homepage-content-area p,
.optimizer-section--box-2-image-left .homepage-content-area p {
  text-align: left !important;
}
.optimizer-section--box-1-image-right .cta-group,
.optimizer-section--box-2-image-left .cta-group {
  justify-content: flex-start;
}
.optimizer-section--box-1-image-right .homepage-section,
.optimizer-section--box-2-image-left .homepage-section {
  padding-top: 88px !important;
  padding-bottom: 88px !important;
  background: var(--garden-sand);
}
.optimizer-section--box-1-image-right .homepage-content-area,
.optimizer-section--box-2-image-left .homepage-content-area {
  padding: 0 20px !important;
}
/* Static botanical layers remain behind photography and outside its reading area. */
.hero-visual:before,
.island-photo-frame:before,
.wpb_wrapper:has(> .optimizer-section-featured-image):before {
  content: "";
  position: absolute;
  inset: -24px -22px 3px 16px;
  background: #e1e8d3 url("/art/island-botanical.svg") right bottom/auto 110%
    no-repeat;
  border-radius: 12px 100px 12px 90px;
  transform: rotate(3deg);
  z-index: -1;
  pointer-events: none;
}
.hero-visual:after {
  content: "";
  position: absolute;
  inset: 26px -14px 40px 22px;
  border: 1px solid #adc095;
  border-radius: 85px 10px 65px 10px;
  transform: rotate(-4deg);
  z-index: -1;
  pointer-events: none;
}
.hero-visual {
  isolation: isolate;
}
.hero-photo-window {
  inset: 10px 7px 28px;
}
.island-photo-frame,
.wpb_wrapper:has(> .optimizer-section-featured-image) {
  position: relative;
  isolation: isolate;
  margin: 24px 18px;
}
.optimizer-section-featured-image {
  display: block;
  width: 100%;
  height: 420px !important;
  object-fit: cover;
  border-radius: 64px 10px 64px 10px !important;
  box-shadow: 0 18px 35px #173b2912;
}
.landscape-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 72px;
  max-width: 1224px;
  margin: auto;
  padding: 88px 28px 96px;
  color: var(--garden-copy);
}
.content-eyebrow {
  font:
    700 11px/1.6 Lato,
    Arial,
    sans-serif;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: #668047;
  margin: 0 0 16px !important;
}
.landscape-detail h2 {
  font:
    700 clamp(29px, 3vw, 39px)/1.2 Lato,
    Arial,
    sans-serif;
  letter-spacing: -0.025em;
  margin: 0 0 24px;
  color: var(--garden-ink);
}
.landscape-detail p {
  font:
    400 16px/1.85 Lato,
    Arial,
    sans-serif;
}
.landscape-detail .content-eyebrow {
  font-size: 11px;
  font-weight: 700;
}
.detail-introduction {
  margin: 0 0 36px;
  max-width: 68ch;
}
.detail-topics {
  border-top: 1px solid #dfe5d7;
}
.detail-topic {
  display: flex;
  gap: 23px;
  padding: 27px 0;
  border-bottom: 1px solid #dfe5d7;
}
.topic-number {
  font:
    700 12px/1.6 Lato,
    sans-serif;
  color: #819669;
  padding-top: 4px;
  min-width: 24px;
}
.detail-topic h3 {
  font:
    700 22px/1.35 Lato,
    Arial,
    sans-serif;
  color: var(--garden-ink);
  margin: 0 0 12px;
  letter-spacing: -0.015em;
}
.detail-topic p {
  margin: 0;
}
.detail-aside {
  min-width: 0;
}
.island-photo-frame {
  margin: 14px 13px 36px;
}
.island-photo-frame img {
  display: block;
  width: 100%;
  height: 330px;
  object-fit: cover;
  border-radius: 58px 8px 58px 8px;
}
.detail-enquiry {
  padding: 30px 26px;
  border: 1px solid #dfe5d6;
  border-radius: 8px;
  background: var(--garden-sand);
}
.detail-enquiry h3 {
  font:
    700 26px/1.25 Lato,
    Arial,
    sans-serif;
  color: var(--garden-ink);
  margin: 0 0 17px;
  letter-spacing: -0.02em;
}
.detail-enquiry p {
  font-size: 14px;
  margin-bottom: 23px;
}
.detail-enquiry .landscape-button {
  width: 100%;
  padding-inline: 14px !important;
  font-size: 14px !important;
}
.detail-phone {
  display: block;
  text-align: center;
  font:
    700 14px/1.6 Lato,
    sans-serif;
  color: #40612e;
  margin-top: 18px;
}
/* Every service is readable without hover, on touch and with a keyboard. */
.optimizer-section--services {
  padding: 70px 0;
  background: #edf1e6 url("/art/island-botanical.svg") left bottom/380px auto
    no-repeat;
}
.optimizer-section--services > .wpb-content-wrapper > .vc_row {
  background: transparent !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.optimizer-section--services .services-section-title-text h2 {
  color: var(--garden-ink) !important;
}
.optimizer-section--services .post-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
  max-width: 1224px;
  padding: 0 20px;
}
.optimizer-section--services .item-link-container {
  display: block;
  border: 1px solid #d9e2ce;
  border-radius: 30px 7px 7px 7px;
  overflow: hidden;
  background: #fffefa;
  box-shadow: 0 8px 24px #173b2907;
  transition:
    transform 0.2s,
    box-shadow 0.2s;
}
.optimizer-section--services .item-link-container:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px #173b2915;
}
.optimizer-section--services .item-link-container:focus-visible {
  outline: 3px solid #719143;
  outline-offset: 4px;
}
.optimizer-section--services .item-bg-container {
  display: block !important;
  height: 100% !important;
  min-height: 0 !important;
  padding-top: 225px;
  background-size: 100% 225px !important;
  background-position: top center !important;
  background-repeat: no-repeat;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.optimizer-section--services .item-bg-container:before,
.optimizer-section--services .item-bg-container:after {
  display: none !important;
}
.optimizer-section--services .item-bg-container > div {
  position: relative;
  padding: 26px !important;
  background: #fffefa;
  transform: none !important;
}
.optimizer-section--services .title {
  font:
    700 23px/1.3 Lato,
    Arial,
    sans-serif !important;
  color: var(--garden-ink) !important;
  margin: 0 0 14px !important;
}
.optimizer-section--services .excerpt {
  font:
    400 15px/1.75 Lato,
    Arial,
    sans-serif !important;
  color: var(--garden-copy) !important;
  opacity: 1 !important;
  margin: 0 !important;
}
.optimizer-section--reviews {
  padding: 72px 0;
  background: #fffefa;
}
.optimizer-section--reviews > .wpb-content-wrapper > .vc_row {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.optimizer-section--contact-form-full-width {
  padding: 76px 22px;
  background: var(--garden-sand) url("/art/island-botanical.svg") right
    bottom/380px auto no-repeat;
  border-top: 1px solid #e1e5d8;
}
.optimizer-section--contact-form-full-width > .wpb-content-wrapper > .vc_row {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
.optimizer-section--contact-form-full-width .vc_col-sm-8 {
  max-width: 760px;
}
.optimizer-image-grid {
  padding: 40px 0 70px;
  background: var(--garden-sand) url("/art/island-botanical.svg") right
    bottom/420px auto no-repeat;
}
.optimizer-image-grid .grid-item img {
  border: 7px solid #fffefa;
  border-radius: 28px 6px 28px 6px;
  box-shadow: 0 5px 18px #173b2914;
  box-sizing: border-box;
}
#footer h3 {
  font:
    700 18px/1.4 Lato,
    Arial,
    sans-serif !important;
  margin-bottom: 20px;
}
#footer p,
#footer li,
#footer td {
  font-size: 14px;
  line-height: 1.8;
}
@media (max-width: 1050px) {
  .landscape-detail {
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 40px;
  }
  .optimizer-section--services .post-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .landscape-detail {
    display: block;
    padding: 52px 22px 60px;
  }
  .detail-aside {
    margin: 48px auto 0;
    max-width: 500px;
  }
  .detail-aside .island-photo-frame img {
    height: 300px;
  }
  .detail-topic {
    gap: 16px;
    padding: 24px 0;
  }
  .detail-topic h3 {
    font-size: 21px;
  }
  .landscape-detail p {
    font-size: 15px;
    line-height: 1.8;
  }
  .optimizer-section--box-1-image-right .homepage-section,
  .optimizer-section--box-2-image-left .homepage-section {
    padding-top: 52px !important;
    padding-bottom: 52px !important;
  }
  .optimizer-section--box-1-image-right .homepage-content-area,
  .optimizer-section--box-2-image-left .homepage-content-area {
    padding: 0 !important;
  }
  .optimizer-section-featured-image {
    height: 300px !important;
  }
  .optimizer-section--services,
  .optimizer-section--reviews {
    padding: 52px 0;
  }
  .optimizer-section--services .post-grid {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .optimizer-section--contact-form-full-width {
    padding: 52px 10px;
  }
  .hero-visual:before {
    inset: -8px -9px 10px 12px;
  }
  .hero-visual:after {
    inset: 22px -5px 30px 16px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .optimizer-section--services .item-link-container {
    transition: none;
    transform: none;
  }
}
.optimizer-section--services .upb_row_bg,
.optimizer-section--services .upb_color,
.optimizer-section--reviews .upb_row_bg,
.optimizer-section--contact-form-full-width .upb_row_bg {
  display: none !important;
}
.optimizer-section--services .item-bg-container {
  box-sizing: border-box;
}
.main-content
  .wpb_text_column:not(.white-text)
  > .wpb_wrapper
  > p:not(.cta-group) {
  line-height: 1.8;
}
.main-content .wpb_text_column h2 {
  font:
    700 clamp(27px, 2.7vw, 38px)/1.2 Lato,
    Arial,
    sans-serif;
  letter-spacing: -0.025em;
}
.optimizer-section--box-1-image-right .wpb_text_column,
.optimizer-section--box-2-image-left .wpb_text_column {
  color: var(--garden-copy);
}
.optimizer-section--box-1-image-right h2,
.optimizer-section--box-2-image-left h2 {
  color: var(--garden-ink) !important;
}
.FW_EDITOR_STYLE {
  max-width: 820px;
  margin: 0 auto;
  padding: 52px 12px 72px;
  font:
    400 16px/1.85 Lato,
    Arial,
    sans-serif;
  color: var(--garden-copy);
}
.FW_EDITOR_STYLE p {
  margin: 0 0 22px;
}
.FW_EDITOR_STYLE p:has(> strong:only-child) {
  margin-top: 34px;
  font-size: 21px;
  color: var(--garden-ink);
}
