/* ==========================================================================
   Chimes – main stylesheet
   Built by JP Web Solutions
   ========================================================================== */

:root {
  --mo-forest: #1E3A2B;
  --mo-forest-2: #2E5641;
  --mo-moss: #5E7A2A;
  --mo-lime: #CDE37A;
  --mo-lime-soft: #EAF3C9;
  --mo-ivory: #F8F6EF;
  --mo-sand: #EFEBDF;
  --mo-sage: #E2EADB;
  --mo-ink: #15231B;
  --mo-text: #4F5D54;
  --mo-muted: #7A867E;
  --mo-line: rgba(21, 35, 27, .12);
  --mo-white: #FFFFFF;
  --mo-serif: "Fraunces", Georgia, "Times New Roman", serif;
  --mo-sans: "Manrope", "Segoe UI", Arial, sans-serif;
  --mo-radius: 1.5rem;
  --mo-radius-lg: 2rem;
  --mo-shadow: 0 24px 60px -24px rgba(21, 35, 27, .28);
  --mo-shadow-sm: 0 10px 30px -14px rgba(21, 35, 27, .25);
  --mo-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
.mo-home-root{ scroll-behavior: smooth; }
[id] { scroll-margin-top: 6.5rem; }

.mo-home{
  font-family: var(--mo-sans);
  font-size: 1.0625rem;
  line-height: 1.7;
  color: var(--mo-text);
  background-color: var(--mo-ivory);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

:where(.mo-home) :where(h1,h2,h3,h4,h5,h6) {
  font-family: var(--mo-serif);
  font-weight: 400;
  font-variation-settings: "opsz" 72, "SOFT" 50;
  color: var(--mo-ink);
  letter-spacing: -.01em;
  line-height: 1.1;
  margin: 0;
}
:where(.mo-home) :where(h1 em,h2 em) { font-style: italic; font-weight: 400; color: var(--mo-forest-2); }

:where(.mo-home) a{ color: var(--mo-forest-2); text-decoration: none; transition: color .2s ease, background-color .25s ease, border-color .25s ease, box-shadow .25s ease, transform .25s var(--mo-ease); }
:where(.mo-home) a:hover{ color: var(--mo-forest); }

:where(.mo-home) img{ max-width: 100%; height: auto; }

.container { max-width: 1344px; }

.icon { width: 1.25rem; height: 1.25rem; flex: 0 0 auto; }

.skip-link {
  position: absolute; left: 1rem; top: -4rem; z-index: 2000;
  background: var(--mo-forest); color: #fff; padding: .6rem 1rem; border-radius: .5rem;
}
.skip-link:focus { top: 1rem; color: #fff; }

:where(.mo-home) :focus-visible{ outline: 3px solid var(--mo-moss); outline-offset: 3px; }

/* ---------- Type helpers ---------- */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-family: var(--mo-sans);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--mo-moss);
  margin-bottom: 1.25rem;
}
.eyebrow::before {
  content: "";
  width: 1.75rem;
  height: 2px;
  background: currentColor;
  border-radius: 2px;
}
.eyebrow--light { color: var(--mo-lime); }

.section-title { font-size: 3.25rem; }
.section-title--light { color: #fff; }
.section-title--light em { color: var(--mo-lime); }

.lead-text { font-size: 1.25rem; line-height: 1.65; color: var(--mo-text); }

.section { padding: 7.5rem 0; }

/* ---------- Buttons ---------- */
.btn-mo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  padding: 1rem 1.15rem 1rem 1.75rem;
  border: 0;
  border-radius: 50rem;
  font-family: var(--mo-sans);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
}
.btn-mo__icon {
  display: inline-grid;
  place-items: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  transition: transform .35s var(--mo-ease), background-color .25s ease;
}
.btn-mo__icon .icon { width: 1.1rem; height: 1.1rem; }
.btn-mo:hover .btn-mo__icon { transform: translateX(3px); }

.btn-mo--dark { background: var(--mo-forest); color: #fff; }
.btn-mo--dark .btn-mo__icon { background: var(--mo-lime); color: var(--mo-forest); }
.btn-mo--dark:hover { background: var(--mo-ink); color: #fff; }

.btn-mo--lime { background: var(--mo-lime); color: var(--mo-forest); }
.btn-mo--lime .btn-mo__icon { background: var(--mo-forest); color: var(--mo-lime); }
.btn-mo--lime:hover { background: #fff; color: var(--mo-forest); }

.btn-mo--ghost { background: transparent; color: var(--mo-ink); box-shadow: inset 0 0 0 1.5px var(--mo-line); padding: 1rem 1.5rem; }
.btn-mo--ghost:hover { box-shadow: inset 0 0 0 1.5px var(--mo-forest); color: var(--mo-forest); }
.btn-mo--ghost .icon { color: var(--mo-moss); }

.btn-mo--ghost-light { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .3); padding: 1rem 1.5rem; }
.btn-mo--ghost-light:hover { color: var(--mo-forest); background: #fff; }

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-weight: 700;
  color: var(--mo-forest);
}
.link-arrow .icon { width: 1.1rem; height: 1.1rem; transition: transform .3s var(--mo-ease); }
.link-arrow:hover .icon { transform: translateX(4px); }

/* ---------- Top bar ---------- */
.topbar { background: var(--mo-forest); color: rgba(255, 255, 255, .78); font-size: .8125rem; }
.topbar .container { min-height: 2.5rem; }
.topbar__item { display: inline-flex; align-items: center; gap: .45rem; }
.topbar__item .icon { width: .95rem; height: .95rem; color: var(--mo-lime); }
.topbar__group { gap: 2rem; }
.topbar a { color: #fff; font-weight: 700; }
.topbar a:hover { color: var(--mo-lime); }

/* ---------- Header ---------- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: rgba(248, 246, 239, .9);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid transparent;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.site-header.is-scrolled { border-color: var(--mo-line); box-shadow: 0 10px 30px -20px rgba(21, 35, 27, .35); }
.site-header .navbar { min-height: 5.75rem; padding: 0; }

.navbar-brand { padding: 0; margin: 0; }
.navbar-brand img { height: 3.25rem; width: auto; display: block; }

.site-nav { gap: .35rem; background: rgba(21, 35, 27, .05); padding: .35rem; border-radius: 50rem; }
.site-nav .nav-link {
  color: var(--mo-ink);
  font-size: .9688rem;
  font-weight: 600;
  padding: .6rem 1.25rem !important;
  border-radius: 50rem;
}
.site-nav .nav-link:hover { background: rgba(255, 255, 255, .8); color: var(--mo-forest); }
.site-nav .nav-link.active { background: var(--mo-forest); color: #fff; }

.header-actions { gap: .75rem; margin-left: 1.5rem; }
.header-call {
  display: inline-grid;
  place-items: center;
  width: 3.1rem;
  height: 3.1rem;
  border-radius: 50%;
  color: var(--mo-forest);
  box-shadow: inset 0 0 0 1.5px var(--mo-line);
}
.header-call:hover { background: var(--mo-lime); box-shadow: none; color: var(--mo-forest); }
.header-cta { padding-top: .55rem; padding-bottom: .55rem; }

.navbar-toggler { border: 0; padding: .6rem; border-radius: 50%; background: rgba(21, 35, 27, .06); }
.navbar-toggler:focus { box-shadow: 0 0 0 3px var(--mo-lime); }
.navbar-toggler .toggler-bar { display: block; width: 22px; height: 2px; background: var(--mo-forest); margin: 5px 0; border-radius: 2px; transition: transform .25s ease, opacity .25s ease; }
.navbar-toggler[aria-expanded="true"] .toggler-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.navbar-toggler[aria-expanded="true"] .toggler-bar:nth-child(2) { opacity: 0; }
.navbar-toggler[aria-expanded="true"] .toggler-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Hero ---------- */
.hero { padding: 4.5rem 0 0; position: relative; }
.hero__pill {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .45rem 1rem .45rem .5rem;
  background: #fff;
  border-radius: 50rem;
  box-shadow: var(--mo-shadow-sm);
  font-size: .875rem;
  font-weight: 600;
  color: var(--mo-ink);
  margin-bottom: 2rem;
}
.hero__pill-dot { display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--mo-lime); color: var(--mo-forest); }
.hero__pill-dot .icon { width: 1rem; height: 1rem; }
.hero__title { font-size: 5.25rem; line-height: 1.04; letter-spacing: -.02em; }
.hero__aside { padding-top: 4.75rem; }
.hero__text { font-size: 1.25rem; line-height: 1.65; margin-bottom: 2.25rem; max-width: 30rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: .85rem; }

.hero__media { position: relative; margin-top: 4rem; }
.hero__frame { border-radius: var(--mo-radius-lg); overflow: hidden; position: relative; }
.hero__frame img { display: block; width: 100%; height: 34rem; object-fit: cover; }
.hero__frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(21, 35, 27, 0) 55%, rgba(21, 35, 27, .35) 100%); pointer-events: none; }

.hero-card {
  position: absolute;
  left: 2rem;
  bottom: 2rem;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.25rem 1.5rem;
  background: rgba(255, 255, 255, .94);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-radius: 1.25rem;
  box-shadow: var(--mo-shadow);
}
.hero-card__num { font-family: var(--mo-serif); font-size: 3rem; line-height: 1; color: var(--mo-forest); letter-spacing: -.01em; }
.hero-card__label { font-size: .9375rem; line-height: 1.35; font-weight: 600; color: var(--mo-ink); }
.hero-card__label span { display: block; font-weight: 500; color: var(--mo-muted); font-size: .8125rem; }

.hero-badge {
  position: absolute;
  right: 2.5rem;
  top: -3.6rem;
  z-index: 2;
  width: 8.5rem;
  height: 8.5rem;
  border-radius: 50%;
  background: var(--mo-lime);
  display: grid;
  place-items: center;
  box-shadow: var(--mo-shadow-sm);
}
.hero-badge__ring { position: absolute; inset: .55rem; animation: mo-spin 22s linear infinite; }
.hero-badge__ring text { font-family: var(--mo-sans); font-size: 10.5px; font-weight: 700; letter-spacing: 3.1px; text-transform: uppercase; fill: var(--mo-forest); }
.hero-badge .icon { width: 2rem; height: 2rem; color: var(--mo-forest); }
@keyframes mo-spin { to { transform: rotate(360deg); } }

/* ---------- Inner page hero ---------- */
.page-hero { padding: 4.25rem 0 0; }
.page-hero__crumb { display: flex; align-items: center; gap: .5rem; font-size: .875rem; font-weight: 600; color: var(--mo-muted); margin-bottom: 1.75rem; }
.page-hero__crumb a { color: var(--mo-muted); }
.page-hero__crumb a:hover { color: var(--mo-forest); }
.page-hero__crumb .sep { opacity: .5; }
.page-hero__title { font-size: 4.5rem; letter-spacing: -.02em; line-height: 1.06; }
.page-hero__text { font-size: 1.25rem; line-height: 1.65; margin-bottom: 2rem; }
.page-hero__aside { padding-top: 3.25rem; }
.page-hero .hero__media { margin-top: 3.5rem; }
.page-hero .hero__frame img { height: 30rem; }

/* ---------- Trust bar ---------- */
.trust { padding: 3.5rem 0 0; }
.trust__grid { border-top: 1px solid var(--mo-line); border-bottom: 1px solid var(--mo-line); }
.trust__item { display: flex; align-items: center; gap: 1rem; padding: 1.75rem 0; }
.trust__icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--mo-sage); color: var(--mo-forest); flex: 0 0 auto; }
.trust__icon .icon { width: 1.4rem; height: 1.4rem; }
.trust__label { font-weight: 700; color: var(--mo-ink); line-height: 1.3; }
.trust__label span { display: block; font-weight: 500; font-size: .875rem; color: var(--mo-muted); }

/* ---------- Welcome ---------- */
.welcome__media { position: relative; }
.welcome__frame { border-radius: var(--mo-radius-lg); overflow: hidden; background: var(--mo-sage); }
.welcome__frame img { display: block; width: 100%; aspect-ratio: 810 / 560; object-fit: cover; object-position: top; }
.welcome__note {
  position: absolute;
  right: -1.75rem;
  bottom: -2rem;
  max-width: 16rem;
  padding: 1.5rem 1.6rem;
  background: var(--mo-forest);
  color: rgba(255, 255, 255, .82);
  border-radius: 1.25rem;
  box-shadow: var(--mo-shadow);
  font-size: .9375rem;
  line-height: 1.5;
}
.welcome__note .icon { width: 1.75rem; height: 1.75rem; color: var(--mo-lime); margin-bottom: .75rem; }
.welcome__note strong { display: block; font-family: var(--mo-serif); font-weight: 450; font-size: 1.375rem; color: #fff; margin-bottom: .35rem; letter-spacing: -.01em; }
.welcome__content { padding-left: 3.5rem; }
.welcome__content .section-title { margin-bottom: 1.75rem; }
.welcome__content .lead-text { margin-bottom: 1.25rem; color: var(--mo-ink); }
.welcome__content p { margin-bottom: 2rem; }

.checklist { list-style: none; padding: 0; margin: 0 0 2.5rem; display: grid; gap: .85rem; }
.checklist li { display: flex; align-items: center; gap: .85rem; font-weight: 600; color: var(--mo-ink); }
.checklist .tick { display: grid; place-items: center; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--mo-lime); color: var(--mo-forest); flex: 0 0 auto; }
.checklist .tick .icon { width: .95rem; height: .95rem; }

/* ---------- Marquee ---------- */
.marquee { background: var(--mo-lime); color: var(--mo-forest); overflow: hidden; padding: 1.35rem 0; }
.marquee__track { display: flex; width: max-content; animation: mo-marquee 38s linear infinite; }
.marquee__list { display: flex; align-items: center; gap: 2.5rem; padding-right: 2.5rem; margin: 0; list-style: none; }
.marquee__list li { display: flex; align-items: center; gap: 2.5rem; font-family: var(--mo-serif); font-size: 1.75rem; letter-spacing: -.01em; white-space: nowrap; }
.marquee__list li::after { content: ""; width: .6rem; height: .6rem; border-radius: 50%; background: var(--mo-forest); opacity: .5; }
@keyframes mo-marquee { to { transform: translateX(-50%); } }

/* ---------- Services (home) ---------- */
.services { background: var(--mo-forest); color: rgba(255, 255, 255, .75); }
.services__intro { margin-bottom: 4rem; }
.services__aside { font-size: 1.125rem; margin: 0; }

.service-card {
  position: relative;
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--mo-ivory);
  border-radius: var(--mo-radius);
  padding: .75rem;
  color: var(--mo-text);
  transition: transform .45s var(--mo-ease), box-shadow .45s var(--mo-ease);
}
.service-card:hover { transform: translateY(-6px); box-shadow: 0 30px 60px -25px rgba(0, 0, 0, .55); }
.service-card__media { border-radius: 1.1rem; overflow: hidden; aspect-ratio: 4 / 3; }
.service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--mo-ease); }
.service-card:hover .service-card__media img { transform: scale(1.06); }
.service-card__body { padding: 1.75rem 1.25rem 1.25rem; display: flex; flex-direction: column; flex: 1; }
.service-card__num { font-size: .8125rem; font-weight: 700; letter-spacing: .14em; color: var(--mo-moss); margin-bottom: .75rem; }
.service-card__title { font-size: 1.875rem; margin-bottom: .75rem; }
.service-card__text { margin-bottom: 1.75rem; }
.service-card__foot { margin-top: auto; display: flex; align-items: center; justify-content: space-between; padding-top: 1.25rem; border-top: 1px solid var(--mo-line); }
.service-card__go { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--mo-forest); color: var(--mo-lime); transition: background-color .25s ease, transform .35s var(--mo-ease); }
.service-card__go .icon { width: 1.15rem; height: 1.15rem; }
.service-card:hover .service-card__go { background: var(--mo-lime); color: var(--mo-forest); transform: rotate(45deg); }
.service-card__link { color: var(--mo-ink); font-weight: 700; }
.service-card__link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }

/* ---------- Stats ---------- */
.stats-section { background: var(--mo-sand); }
.stats-section .section-title { margin-bottom: 1.5rem; }
.stats-section__text { font-size: 1.125rem; margin-bottom: 2.25rem; }
.stat-tile {
  height: 100%;
  background: #fff;
  border-radius: var(--mo-radius);
  padding: 2rem 1.9rem;
  display: flex;
  flex-direction: column;
  transition: transform .4s var(--mo-ease), box-shadow .4s var(--mo-ease);
}
.stat-tile:hover { transform: translateY(-4px); box-shadow: var(--mo-shadow-sm); }
.stat-tile .icon { width: 1.6rem; height: 1.6rem; color: var(--mo-moss); margin-bottom: 2.5rem; }
.stat-tile__value { font-family: var(--mo-serif); font-size: 3.5rem; line-height: 1; letter-spacing: -.01em; color: var(--mo-forest); margin-bottom: .5rem; }
.stat-tile__label { font-weight: 600; color: var(--mo-text); }
.stat-tile--dark { background: var(--mo-forest); }
.stat-tile--dark .icon { color: var(--mo-lime); }
.stat-tile--dark .stat-tile__value { color: #fff; }
.stat-tile--dark .stat-tile__label { color: rgba(255, 255, 255, .72); }

/* ---------- Process ---------- */
.process__head { margin-bottom: 4rem; }
.process__list { counter-reset: none; }
.step { position: relative; height: 100%; padding-top: 1rem; }
.step__num {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 4rem;
  height: 4rem;
  border-radius: 50%;
  background: var(--mo-forest);
  color: var(--mo-lime);
  font-family: var(--mo-serif);
  font-size: 1.375rem;
  margin-bottom: 2rem;
  box-shadow: 0 0 0 10px var(--mo-ivory);
}
.process__list > li:not(:last-child) .step::before {
  content: "";
  position: absolute;
  left: 5rem;
  right: -.5rem;
  top: 3rem;
  border-top: 2px dashed rgba(46, 86, 65, .3);
}
.step__title { font-size: 1.75rem; margin-bottom: .75rem; }
.step__text { margin: 0; max-width: 23rem; }
.process--sage { background: var(--mo-sage); }
.process--sage .step__num { box-shadow: 0 0 0 10px var(--mo-sage); }

/* ---------- Gallery band ---------- */
.band-image { padding-bottom: 7.5rem; }
.band-image__frame { position: relative; border-radius: var(--mo-radius-lg); overflow: hidden; }
.band-image__frame img { display: block; width: 100%; height: 28rem; object-fit: cover; }
.band-image__frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(21, 35, 27, .78) 0%, rgba(21, 35, 27, .45) 45%, rgba(21, 35, 27, 0) 80%); }
.band-image__content { position: absolute; inset: 0; z-index: 1; display: flex; flex-direction: column; justify-content: center; padding: 3.5rem 4rem; max-width: 40rem; }
.band-image__title { color: #fff; font-size: 3rem; margin-bottom: 1.25rem; }
.band-image__title em { color: var(--mo-lime); }
.band-image__text { color: rgba(255, 255, 255, .85); font-size: 1.125rem; margin-bottom: 2rem; }

/* ---------- CTA card ---------- */
.cta { padding: 0 0 7.5rem; }
.cta.section { padding: 7.5rem 0; }
.reviews + .cta { padding-top: 7.5rem; }
.cta-card {
  position: relative;
  overflow: hidden;
  background: var(--mo-forest);
  border-radius: var(--mo-radius-lg);
  padding: 5rem 4.5rem;
  color: rgba(255, 255, 255, .78);
}
.cta-card::before {
  content: "";
  position: absolute;
  right: -6rem;
  top: -6rem;
  width: 26rem;
  height: 26rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: .12;
  transform: rotate(-18deg);
  pointer-events: none;
}
.cta-card > .row { position: relative; z-index: 1; }
.cta-card__title { color: #fff; font-size: 3.5rem; margin-bottom: 1.25rem; }
.cta-card__title em { color: var(--mo-lime); }
.cta-card__text { font-size: 1.1875rem; max-width: 34rem; margin: 0; }
.cta-card__actions { display: flex; flex-wrap: wrap; gap: .85rem; justify-content: flex-end; }

/* ---------- Intro split (inner pages) ---------- */
.intro-split .section-title { margin-bottom: 0; }
.intro-split__lead { font-size: 1.375rem; line-height: 1.6; color: var(--mo-ink); margin-bottom: 1.5rem; }
.intro-split__text { margin: 0 0 2rem; }
.intro-split__content { padding-left: 2rem; }

/* ---------- Detail cards (maintenance) ---------- */
.details { background: var(--mo-sage); }
.details__head { margin-bottom: 3.5rem; }
.detail-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--mo-ivory);
  border-radius: var(--mo-radius);
  padding: 2.25rem 2rem 2rem;
  transition: transform .4s var(--mo-ease), box-shadow .4s var(--mo-ease), background-color .3s ease;
}
.detail-card:hover { transform: translateY(-5px); box-shadow: var(--mo-shadow-sm); background: #fff; }
.detail-card__icon { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 1rem; background: var(--mo-forest); color: var(--mo-lime); margin-bottom: 3rem; }
.detail-card__icon .icon { width: 1.6rem; height: 1.6rem; }
.detail-card__title { font-size: 1.75rem; margin-bottom: .75rem; }
.detail-card__text { margin: 0; }

/* ---------- Clearance split ---------- */
.clear-split__media { position: relative; }
.clear-split__frame { border-radius: 14rem 14rem var(--mo-radius-lg) var(--mo-radius-lg); overflow: hidden; }
.clear-split__frame img { display: block; width: 100%; aspect-ratio: 4 / 4.4; object-fit: cover; }
.clear-split__chip {
  position: absolute;
  left: -1.75rem;
  bottom: 3rem;
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 1rem 1.25rem;
  background: #fff;
  border-radius: 1rem;
  box-shadow: var(--mo-shadow);
  font-weight: 700;
  color: var(--mo-ink);
  line-height: 1.3;
  max-width: 17rem;
}
.clear-split__chip .trust__icon { width: 2.75rem; height: 2.75rem; background: var(--mo-lime); }
.clear-split__content { padding-left: 4.5rem; }
.clear-split__content .section-title { margin-bottom: 1.75rem; }
.clear-split__lead { font-size: 1.25rem; line-height: 1.65; color: var(--mo-ink); margin-bottom: 2rem; }
.note-card { display: flex; gap: 1rem; padding: 1.4rem 1.5rem; border-radius: 1.1rem; background: var(--mo-lime-soft); color: var(--mo-ink); margin-bottom: 2.25rem; }
.note-card .icon { width: 1.5rem; height: 1.5rem; color: var(--mo-moss); margin-top: .1rem; }
.note-card p { margin: 0; }

/* ---------- Contact ---------- */
.contact-hero { padding: 4.25rem 0 3.5rem; }
.contact-hero .page-hero__title { max-width: 14ch; }
.contact { padding: 0 0 7.5rem; }
.info-card {
  display: flex;
  gap: 1.1rem;
  padding: 1.6rem 1.6rem;
  background: #fff;
  border-radius: var(--mo-radius);
  margin-bottom: 1rem;
  transition: transform .35s var(--mo-ease), box-shadow .35s var(--mo-ease);
}
.info-card:hover { transform: translateY(-3px); box-shadow: var(--mo-shadow-sm); }
.info-card__icon { display: grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--mo-sage); color: var(--mo-forest); flex: 0 0 auto; }
.info-card__icon .icon { width: 1.4rem; height: 1.4rem; }
.info-card__label { display: block; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mo-moss); margin-bottom: .35rem; }
.info-card__value { font-family: var(--mo-serif); font-size: 1.5rem; line-height: 1.3; color: var(--mo-ink); letter-spacing: -.01em; }
.info-card__value a { color: var(--mo-ink); }
.info-card__value a:hover { color: var(--mo-forest-2); }
.info-card__sub { display: block; margin-top: .25rem; font-size: .9375rem; color: var(--mo-muted); }
.info-card--dark { background: var(--mo-forest); }
.info-card--dark .info-card__icon { background: var(--mo-lime); }
.info-card--dark .info-card__label { color: var(--mo-lime); }
.info-card--dark .info-card__value, .info-card--dark .info-card__value a { color: #fff; }
.info-card--dark .info-card__sub { color: rgba(255, 255, 255, .7); }
.info-card address { margin: 0; }

.map-frame { border-radius: var(--mo-radius); overflow: hidden; height: 15rem; background: var(--mo-sage); }
.map-frame iframe { display: block; width: 100%; height: 100%; border: 0; filter: grayscale(.35) contrast(1.05); }

.quote-form {
  background: #fff;
  padding: 3rem;
  border-radius: var(--mo-radius-lg);
  box-shadow: var(--mo-shadow);
}
.quote-form__title { font-size: 2.5rem; margin-bottom: .5rem; }
.quote-form__intro { margin-bottom: 2.25rem; }
.quote-form .form-label { font-size: .875rem; font-weight: 700; color: var(--mo-ink); margin-bottom: .5rem; }
.quote-form .form-control,
.quote-form .form-select {
  background-color: var(--mo-ivory);
  border: 1.5px solid transparent;
  border-radius: .9rem;
  min-height: 3.5rem;
  padding: .9rem 1.1rem;
  font-size: 1rem;
  color: var(--mo-ink);
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.quote-form textarea.form-control { min-height: 9rem; resize: vertical; }
.quote-form .form-control::placeholder { color: #9AA39D; }
.quote-form .form-control:focus,
.quote-form .form-select:focus { background-color: #fff; border-color: var(--mo-forest-2); box-shadow: 0 0 0 4px rgba(205, 227, 122, .55); }
.quote-form .mb-field { margin-bottom: 1.35rem; }

.chip-group { display: flex; flex-wrap: wrap; gap: .6rem; }
.chip-group input { position: absolute; opacity: 0; pointer-events: none; }
.chip-group label {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .7rem 1.1rem;
  border-radius: 50rem;
  background: var(--mo-ivory);
  border: 1.5px solid transparent;
  font-size: .9375rem;
  font-weight: 600;
  color: var(--mo-ink);
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}
.chip-group label .icon { width: 1.05rem; height: 1.05rem; color: var(--mo-moss); }
.chip-group input:checked + label { background: var(--mo-lime-soft); border-color: var(--mo-forest-2); }
.chip-group input:focus-visible + label { outline: 3px solid var(--mo-moss); outline-offset: 2px; }

.quote-form__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem; margin-top: 2rem; }
.quote-form__privacy { font-size: .875rem; line-height: 1.6; margin: 0; max-width: 20rem; color: var(--mo-muted); }
.quote-form__privacy a { color: var(--mo-text); text-decoration: underline; }

/* ---------- Footer ---------- */
.site-footer { background: #3E4C1E; color: rgba(255, 255, 255, .7); padding: 6rem 0 0; font-size: .9688rem; }
.footer-top { padding-bottom: 4rem; margin-bottom: 4rem; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.footer-top__title { color: #fff; font-size: 3.25rem; }
.footer-top__title em { color: var(--mo-lime); }
.footer-brand img { height: 3.25rem; width: auto; margin-bottom: 1.5rem; }
.footer-tagline { margin: 0 0 1.75rem; max-width: 20rem; }
.footer-badges { display: flex; flex-wrap: wrap; gap: .5rem; }
.footer-badges span { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .85rem; border-radius: 50rem; border: 1px solid rgba(255, 255, 255, .15); font-size: .8125rem; font-weight: 600; color: rgba(255, 255, 255, .85); }
.footer-badges .icon { width: .9rem; height: .9rem; color: var(--mo-lime); }
.footer-title { font-family: var(--mo-sans); font-weight: 700; font-size: .8125rem; letter-spacing: .14em; text-transform: uppercase; color: var(--mo-lime); margin-bottom: 1.4rem; }
.footer-list { list-style: none; padding: 0; margin: 0; }
.footer-list li { margin-bottom: .75rem; }
.footer-list a, .site-footer address { color: rgba(255, 255, 255, .78); }
.footer-list a:hover { color: #fff; }
.site-footer address { margin: 0; line-height: 1.9; }
.footer-bottom { margin-top: 4rem; border-top: 1px solid rgba(255, 255, 255, .1); padding: 1.6rem 0 1.75rem; font-size: .8125rem; }
.footer-bottom a { color: rgba(255, 255, 255, .7); }
.footer-bottom a:hover { color: var(--mo-lime); }
.footer-bottom__links { gap: 1.75rem; }

/* ---------- Reviews ---------- */
.reviews { background: var(--mo-forest); color: rgba(255, 255, 255, .78); overflow: hidden; }
.stars { display: inline-flex; gap: .2rem; color: #FBBC04; }
.stars .icon { width: 1.15rem; height: 1.15rem; }
.g-logo { width: 1.5rem; height: 1.5rem; flex: 0 0 auto; }

.reviews__summary { display: flex; flex-direction: column; align-items: flex-start; }
.reviews__summary .section-title { margin-bottom: 2.25rem; }

.google-badge {
  display: flex;
  align-items: center;
  gap: 1.1rem;
  width: 100%;
  padding: 1.35rem 1.5rem;
  margin-bottom: 2rem;
  background: #fff;
  border-radius: 1.25rem;
  box-shadow: var(--mo-shadow);
  color: var(--mo-ink);
}
.google-badge .g-logo { width: 3rem; height: 3rem; }
.google-badge__label { display: block; font-weight: 700; font-size: .9375rem; line-height: 1.2; }
.google-badge__score { display: flex; align-items: center; gap: .6rem; margin: .2rem 0 .1rem; }
.google-badge__score strong { font-family: var(--mo-serif); font-weight: 500; font-size: 1.75rem; line-height: 1; }
.google-badge__count { display: block; font-size: .8125rem; color: var(--mo-muted); }

.review-carousel {
  position: relative;
  background: var(--mo-ivory);
  border-radius: var(--mo-radius-lg);
  padding: 3rem 3.25rem 2.25rem;
  color: var(--mo-text);
  box-shadow: 0 40px 80px -40px rgba(0, 0, 0, .6);
}
.review-carousel__mark { position: absolute; right: 2.5rem; top: 2rem; color: var(--mo-lime); pointer-events: none; }
.review-carousel__mark .icon { width: 5.5rem; height: 5.5rem; }

/* stack slides so the card keeps the height of the longest review */
.review-carousel .carousel-inner { display: grid; overflow: visible; }
.review-carousel .carousel-item { display: block; grid-area: 1 / 1; float: none; margin-right: 0; visibility: hidden; }
.review-carousel .carousel-item.active,
.review-carousel .carousel-item-next,
.review-carousel .carousel-item-prev { visibility: visible; }
.review-carousel.carousel-fade .carousel-item { transition: opacity .7s var(--mo-ease), visibility 0s linear .7s; }
.review-carousel.carousel-fade .carousel-item.active,
.review-carousel.carousel-fade .carousel-item-next.carousel-item-start,
.review-carousel.carousel-fade .carousel-item-prev.carousel-item-end { transition: opacity .7s var(--mo-ease), visibility 0s; }

.review-slide { height: 100%; display: flex; flex-direction: column; margin: 0; }
.review-slide__top { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-bottom: 1.75rem; padding-right: 6rem; }
.review-slide__source { display: inline-flex; align-items: center; gap: .5rem; padding: .35rem .8rem .35rem .45rem; border-radius: 50rem; background: #fff; box-shadow: 0 4px 14px -6px rgba(21, 35, 27, .25); font-size: .8125rem; font-weight: 700; color: var(--mo-ink); }
.review-slide__source .g-logo { width: 1.25rem; height: 1.25rem; }
.review-slide__text { margin: 0 0 2rem; }
.review-slide__text p { font-family: var(--mo-serif); font-size: 1.5rem; line-height: 1.5; color: var(--mo-ink); margin: 0; letter-spacing: -.005em; }
.review-slide__text--lg p { font-size: 2.5rem; line-height: 1.25; letter-spacing: -.015em; }
.review-slide__who { margin-top: auto; display: flex; align-items: center; gap: .85rem; font-weight: 700; color: var(--mo-ink); line-height: 1.3; }
.review-slide__who small { display: block; font-weight: 500; font-size: .8125rem; color: var(--mo-muted); }
.review-card__avatar { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--mo-forest); color: var(--mo-lime); font-family: var(--mo-serif); font-size: 1.25rem; flex: 0 0 auto; }

.review-carousel__nav { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--mo-line); }
.review-carousel__dots { position: static; margin: 0; padding: 0; justify-content: flex-start; gap: .5rem; }
.review-carousel__dots [data-bs-target] {
  width: .6rem; height: .6rem; margin: 0; padding: 0;
  border: 0; border-radius: 50rem;
  background: var(--mo-forest); opacity: .2;
  text-indent: 0;
  transition: width .35s var(--mo-ease), opacity .3s ease;
}
.review-carousel__dots .active { width: 2rem; opacity: 1; }
.review-carousel__arrows { display: flex; gap: .5rem; }
.review-carousel__btn { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; border: 0; background: var(--mo-forest); color: var(--mo-lime); transition: background-color .25s ease, color .25s ease, transform .3s var(--mo-ease); }
.review-carousel__btn:first-child .icon { transform: rotate(180deg); }
.review-carousel__btn:hover { background: var(--mo-lime); color: var(--mo-forest); }
.review-carousel__btn .icon { width: 1.15rem; height: 1.15rem; }

/* ---------- Mobile action bar ---------- */
.mobile-bar {
  position: fixed;
  left: .75rem; right: .75rem;
  bottom: calc(.75rem + env(safe-area-inset-bottom));
  z-index: 1040;
  display: none;
  gap: .5rem;
  padding: .5rem;
  background: rgba(21, 35, 27, .92);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-radius: 50rem;
  box-shadow: var(--mo-shadow);
  transform: translateY(150%);
  transition: transform .4s var(--mo-ease);
}
.mobile-bar.is-visible { transform: translateY(0); }
.mobile-bar .btn-mo { flex: 1; padding: .8rem 1rem; font-size: .9375rem; }
.mobile-bar .btn-mo--ghost-light { box-shadow: none; }
.mobile-bar .icon { width: 1.05rem; height: 1.05rem; }

/* ---------- Reveal on scroll ---------- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--mo-ease), transform .9s var(--mo-ease); }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .marquee__track, .hero-badge__ring { animation: none; }
  .service-card, .service-card__media img, .stat-tile, .detail-card, .info-card { transition: none; }
}

/* ==========================================================================
   Media queries
   ========================================================================== */

/* Mobile */
@media (max-width: 767px) {
  .mo-home{ font-size: 1rem;  }
  .section { padding: 4.5rem 0; }
  .section-title { font-size: 2.375rem; }
  .lead-text { font-size: 1.125rem; }

  .topbar__area { display: none; }
  .topbar__group { gap: 1.25rem; width: 100%; justify-content: space-between; }

  .site-header .navbar { min-height: 4.5rem; }
  .navbar-brand img { height: 2.6rem; }
  .site-nav { background: none; padding: 1rem 0 0; gap: .25rem; }
  .site-nav .nav-link { padding: .85rem 1.1rem !important; font-size: 1.0625rem; }
  .header-actions { margin: 1rem 0 1.5rem; }
  .header-cta { flex: 1; }

  .hero { padding-top: 2.5rem; }
  .hero__pill { margin-bottom: 1.5rem; font-size: .8125rem; }
  .hero__title { font-size: 3rem; }
  .hero__aside { padding-top: 1.5rem; }
  .hero__text { font-size: 1.0625rem; margin-bottom: 1.75rem; }
  .hero__actions .btn-mo { width: 100%; }
  .hero__media { margin-top: 3rem; }
  .hero__frame { border-radius: var(--mo-radius); }
  .hero__frame img { height: 20rem; }
  .hero-card { left: 1rem; right: 1rem; bottom: 1rem; padding: 1rem 1.15rem; }
  .hero-card__num { font-size: 2.25rem; }
  .hero-badge { width: 6.25rem; height: 6.25rem; right: 1rem; top: -2.75rem; }
  .hero-badge__ring text { font-size: 13px; letter-spacing: 2.6px; }
  .hero-badge .icon { width: 1.5rem; height: 1.5rem; }

  .page-hero { padding-top: 2.5rem; }
  .page-hero__title { font-size: 2.875rem; }
  .page-hero__aside { padding-top: 1.25rem; }
  .page-hero__text { font-size: 1.0625rem; }
  .page-hero .hero__media { margin-top: 2.5rem; }
  .page-hero .hero__frame img { height: 15rem; }

  .trust { padding-top: 2.5rem; }
  .trust__item { padding: 1.1rem 0; }
  .trust__icon { width: 2.75rem; height: 2.75rem; }

  .welcome__note { position: relative; right: auto; bottom: auto; max-width: none; margin: -3rem 1rem 0; }
  .welcome__content { padding: 3rem calc(var(--bs-gutter-x) * .5) 0; }

  .marquee__list li { font-size: 1.375rem; }

  .services__intro { margin-bottom: 2.5rem; }
  .services__aside { margin-top: 1rem; }
  .service-card__title { font-size: 1.625rem; }

  .stats-section__text { margin-bottom: 1.75rem; }
  .stats-section .row.g-3 { margin-top: 2rem; }
  .stat-tile { padding: 1.5rem; }
  .stat-tile .icon { margin-bottom: 1.5rem; }
  .stat-tile__value { font-size: 2.5rem; }

  .process__head { margin-bottom: 2.5rem; }
  .process__list > li:not(:last-child) .step::before { display: none; }
  .step { display: grid; grid-template-columns: 3.25rem 1fr; column-gap: 1.25rem; padding: 0; }
  .step__num { width: 3.25rem; height: 3.25rem; font-size: 1.125rem; margin: 0; grid-row: span 2; }
  .step__title { font-size: 1.5rem; }

  .band-image { padding-bottom: 4.5rem; }
  .band-image__frame img { height: 30rem; }
  .band-image__frame::after { background: linear-gradient(180deg, rgba(21, 35, 27, .25) 0%, rgba(21, 35, 27, .85) 70%); }
  .band-image__content { justify-content: flex-end; padding: 2rem 1.5rem; }
  .band-image__title { font-size: 2.125rem; }

  .cta { padding-bottom: 4.5rem; }
  .cta.section { padding: 4.5rem 0; }
  .reviews + .cta { padding-top: 4.5rem; }
  .cta-card { padding: 3rem 1.5rem; border-radius: var(--mo-radius); }
  .cta-card__title { font-size: 2.375rem; }
  .cta-card__actions { justify-content: flex-start; margin-top: 2rem; }
  .cta-card__actions .btn-mo { width: 100%; }

  .intro-split__content { padding: 1.5rem calc(var(--bs-gutter-x) * .5) 0; }
  .details__head { margin-bottom: 2rem; }
  .detail-card { padding: 1.75rem 1.5rem; }
  .detail-card__icon { margin-bottom: 1.75rem; }

  .clear-split__frame { border-radius: 8rem 8rem var(--mo-radius) var(--mo-radius); }
  .clear-split__chip { left: 1rem; bottom: 1rem; }
  .clear-split__content { padding: 3rem calc(var(--bs-gutter-x) * .5) 0; }

  .contact-hero { padding: 2.5rem 0 2rem; }
  .contact { padding-bottom: 4.5rem; }
  .quote-form { padding: 2rem 1.25rem; margin-bottom: 2rem; border-radius: var(--mo-radius); }
  .quote-form__title { font-size: 2rem; }
  .quote-form__foot .btn-mo { width: 100%; }
  .info-card__value { font-size: 1.3125rem; }

  .site-footer { padding-top: 4rem; }
  .footer-top { padding-bottom: 2.5rem; margin-bottom: 2.5rem; }
  .footer-top__title { font-size: 2.25rem; margin-bottom: 1.5rem; }
  .footer-brand { margin-bottom: 2.5rem; }
  .site-footer .footer-col { margin-bottom: 2rem; }
  .footer-bottom { margin-top: 1rem; }
  .footer-bottom__links { margin-top: .75rem; }

  .reviews__summary .btn-mo { width: 100%; }
  .review-carousel { padding: 2rem 1.35rem 1.5rem; border-radius: var(--mo-radius); }
  .review-carousel__mark .icon { width: 3rem; height: 3rem; }
  .review-carousel__mark { right: 1.25rem; top: 1.5rem; }
  .review-slide__top { padding-right: 3.5rem; }
  .review-slide__text p { font-size: 1.1875rem; }
  .review-slide__text--lg p { font-size: 1.75rem; }
  .review-carousel__btn { width: 2.6rem; height: 2.6rem; }

  .mobile-bar { display: flex; }
}

/* ios */
@media (max-width: 340px) {
  .hero__title { font-size: 2.5rem; }
  .page-hero__title { font-size: 2.375rem; }
  .section-title, .cta-card__title { font-size: 2rem; }
  .btn-mo { white-space: normal; }
  .mobile-bar .btn-mo { font-size: .8125rem; padding: .75rem .5rem; }
  .hero-card__label span { display: none; }
}

/* windows */
@media (min-width: 451px) and (max-width: 767px) {
  .hero__title { font-size: 3.75rem; }
  .page-hero__title { font-size: 3.25rem; }
  .hero__actions .btn-mo { width: auto; }
  .hero__frame img { height: 24rem; }
}

/*tab portrait view*/
@media (min-width: 768px) and (max-width: 991px) {
  .section { padding: 5.5rem 0; }
  .section-title { font-size: 2.875rem; }

  .site-nav { background: none; padding: 1rem 0 0; }
  .site-nav .nav-link { padding: .85rem 1.1rem !important; }
  .header-actions { margin: 1rem 0 1.5rem; }

  .hero__title { font-size: 4.25rem; }
  .hero__aside { padding-top: 2rem; }
  .hero__frame img { height: 26rem; }
  .page-hero__title { font-size: 3.75rem; }
  .page-hero__aside { padding-top: 1.5rem; }
  .page-hero .hero__frame img { height: 22rem; }

  .welcome__note { right: 1.5rem; }
  .welcome__content { padding: 4.5rem calc(var(--bs-gutter-x) * .5) 0; }
  .services__aside { margin-top: 1rem; }
  .stats-section .row.g-3 { margin-top: 2.5rem; }
  .process__list > li:not(:last-child) .step::before { display: none; }
  .band-image__frame img { height: 26rem; }
  .cta-card { padding: 4rem 3rem; }
  .cta-card__actions { justify-content: flex-start; margin-top: 2rem; }

  .intro-split__content { padding: 1.5rem calc(var(--bs-gutter-x) * .5) 0; }
  .clear-split__media { max-width: 32rem; margin: 0 auto; }
  .clear-split__chip { left: 1rem; }
  .clear-split__content { padding: 4rem calc(var(--bs-gutter-x) * .5) 0; }
  .quote-form { margin-bottom: 2rem; }

  .footer-top__title { margin-bottom: 2rem; }
  .footer-brand { margin-bottom: 2.5rem; }
  .site-footer .footer-col { margin-bottom: 1.5rem; }
}

/*tab landscape*/
@media (min-width: 992px) and (max-width: 1199px) {
  .site-nav .nav-link { padding: .55rem .9rem !important; font-size: .9375rem; }
  .header-actions { margin-left: .75rem; }
  .header-cta .btn-mo__icon { display: none; }
  .header-cta { padding: .9rem 1.25rem; }
  .hero__title { font-size: 4.75rem; }
  .page-hero__title { font-size: 4.25rem; }
  .section-title, .cta-card__title { font-size: 3rem; }
  .welcome__note { right: 1rem; }
  .welcome__content { padding-left: 2rem; }
  .clear-split__content { padding-left: 3rem; }
  .clear-split__chip { left: 1rem; }
  .cta-card { padding: 4rem 3.25rem; }
  .quote-form { padding: 2.5rem 2rem; }
  .site-nav .nav-link { padding: .55rem .7rem !important; font-size: .875rem; }
  .header-call { display: none !important; }
  .review-carousel { padding: 2.5rem; }
}

/* 1280 resolution */
@media (min-width: 1280px) and (max-width: 1365px) {
  .hero__title { font-size: 4.75rem; }
}

/* large screen */
@media (min-width: 1400px) {
  .hero__frame img { height: 36rem; }
}

@media (min-width: 1440px) and (max-width: 1599px) {
}

/*Large View*/
@media (min-width: 1600px) {
  .container { max-width: 1440px; }
  .hero__title { font-size: 5.75rem; }
  .hero__frame img { height: 40rem; }
  .page-hero .hero__frame img { height: 34rem; }
}

@media (min-width: 1920px) {
  .container { max-width: 1560px; }
  .hero__frame img { height: 44rem; }
}

/* ie */
@media all and (-ms-high-contrast:none) {
  .site-header { background: var(--mo-ivory); }
  .hero-card, .mobile-bar { background: #fff; }
}

/* FireFox */
@-moz-document url-prefix() {
  .quote-form .form-control { -moz-appearance: none; }
}

/* ==========================================================================
   Motion layer – page-load animation, scroll effects and hover effects
   (classes below are added by resources/js/main.js; without JS nothing hides)
   ========================================================================== */
:root { --mo-ease-out: cubic-bezier(.22, 1, .36, 1); }

/* ---------- Scroll progress bar ---------- */
.mo-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 2000; pointer-events: none;
  background: linear-gradient(90deg, var(--mo-moss), var(--mo-lime));
  transform-origin: 0 50%; transform: scaleX(var(--mo-progress, 0));
}

/* ---------- Header: hide when scrolling down, return when scrolling up ---------- */
.mo-js .site-header { transition: transform .45s var(--mo-ease-out), border-color .25s, box-shadow .25s; }
.mo-js .site-header.is-hidden { transform: translateY(-110%); }

/* ---------- Page-load entrance (hero) ---------- */
@keyframes mo-rise { from { opacity: 0; transform: translateY(32px); } to { opacity: 1; transform: none; } }
@keyframes mo-zoom-in { from { opacity: 0; transform: scale(.94); } to { opacity: 1; transform: none; } }
.hero__pill, .page-hero__crumb { animation: mo-rise .9s var(--mo-ease-out) .05s both; }
.hero__title, .page-hero__title { animation: mo-rise 1s var(--mo-ease-out) .15s both; }
.hero__text, .page-hero__text { animation: mo-rise 1s var(--mo-ease-out) .3s both; }
.hero__actions { animation: mo-rise 1s var(--mo-ease-out) .42s both; }
.hero__media { animation: mo-zoom-in 1.2s var(--mo-ease-out) .2s both; }
.hero-card { animation: mo-rise 1s var(--mo-ease-out) .75s both; }
.trust__item { animation: mo-rise .9s var(--mo-ease-out) both; }
.trust__item:nth-child(1) { animation-delay: .5s; }
.trust__item:nth-child(2) { animation-delay: .6s; }
.trust__item:nth-child(3) { animation-delay: .7s; }
.trust__item:nth-child(4) { animation-delay: .8s; }

/* ---------- Extra reveal directions (used by the auto-reveal script) ---------- */
.reveal.reveal--left { transform: translateX(-44px); }
.reveal.reveal--right { transform: translateX(44px); }
.reveal.reveal--zoom { transform: scale(.94); }
.reveal.reveal--left.is-visible, .reveal.reveal--right.is-visible, .reveal.reveal--zoom.is-visible { transform: none; }

/* ---------- Parallax images ---------- */
.mo-parallax { will-change: auto; }

/* ---------- Buttons: light sweep + lift ---------- */
.btn-mo { position: relative; overflow: hidden; isolation: isolate; }
.btn-mo::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -75%; width: 50%; z-index: -1; pointer-events: none;
  background: linear-gradient(110deg, transparent, rgba(255, 255, 255, .35), transparent);
  transform: skewX(-20deg); transition: left .7s var(--mo-ease-out);
}
.btn-mo:hover::after, .btn-mo:focus-visible::after { left: 130%; }
.btn-mo:hover { transform: translateY(-2px); }
.btn-mo:active { transform: translateY(0); }
.header-call { transition: background-color .25s, color .25s, box-shadow .25s, transform .3s var(--mo-ease-out); }
.header-call:hover { transform: translateY(-2px); }

/* ---------- Logo ---------- */
.navbar-brand img { transition: transform .4s var(--mo-ease-out); }
.navbar-brand:hover img { transform: scale(1.04); }

/* ---------- Trust strip ---------- */
@keyframes mo-pop { 0% { transform: scale(1); } 40% { transform: scale(1.18) rotate(-6deg); } 70% { transform: scale(.96); } 100% { transform: scale(1); } }
.trust__icon { transition: background-color .3s, color .3s; }
.trust__item:hover .trust__icon { animation: mo-pop .6s var(--mo-ease-out); }

/* ---------- Checklists ---------- */
.checklist li .tick { transition: transform .35s var(--mo-ease-out); }
.checklist li:hover .tick { transform: scale(1.15) rotate(-8deg); }

/* ---------- Process steps ---------- */
.step { transition: transform .45s var(--mo-ease-out), box-shadow .45s var(--mo-ease-out); }
.step:hover { transform: translateY(-6px); }
.step__num { transition: transform .45s var(--mo-ease-out); display: grid; }
.step:hover .step__num { transform: scale(1.08); }

/* ---------- Icon cards ---------- */
.detail-card__icon, .info-card__icon { transition: transform .45s var(--mo-ease-out); }
.detail-card:hover .detail-card__icon, .info-card:hover .info-card__icon { transform: translateY(-3px) rotate(-8deg) scale(1.08); }

/* ---------- Google badge ---------- */
.google-badge { transition: transform .4s var(--mo-ease-out), box-shadow .4s var(--mo-ease-out); }
.google-badge:hover { transform: translateY(-4px); box-shadow: var(--mo-shadow-sm); }

/* ---------- Image frames: gentle zoom on hover (frames without parallax) ---------- */
.intro-split img, .map-frame iframe { transition: transform .8s var(--mo-ease-out), filter .5s; }
.intro-split .hero__frame:hover img:not(.mo-parallax) { transform: scale(1.04); }

/* ---------- Marquee pauses on hover ---------- */
.marquee:hover .marquee__track { animation-play-state: paused; }

/* ---------- Footer and top bar links: underline grows on hover ---------- */
.footer-list a, .footer-bottom a, .topbar a {
  background-image: linear-gradient(currentColor, currentColor); background-position: 0 100%; background-size: 0 1px; background-repeat: no-repeat;
  transition: color .2s, background-size .35s var(--mo-ease-out);
}
.footer-list a:hover, .footer-bottom a:hover, .topbar a:hover { background-size: 100% 1px; }

/* ---------- Back to top ---------- */
.mo-top {
  position: fixed; right: 1.25rem; bottom: 1.5rem; z-index: 1040; width: 48px; height: 48px; border: 0; border-radius: 50%;
  display: grid; place-items: center; cursor: pointer;
  background: var(--mo-forest); color: var(--mo-lime); box-shadow: 0 12px 30px -10px rgba(0, 0, 0, .45);
  opacity: 0; visibility: hidden; transform: translateY(16px) scale(.9);
  transition: opacity .35s, visibility .35s, transform .35s var(--mo-ease-out), background-color .25s, color .25s;
}
.mo-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.mo-top:hover { background: var(--mo-lime); color: var(--mo-forest); transform: translateY(-3px); }
.mo-top svg { width: 20px; height: 20px; }
@media (max-width: 991.98px) { .mo-top { bottom: 5.25rem; right: 1rem; width: 44px; height: 44px; } }

/* ---------- Respect reduced-motion settings ---------- */
@media (prefers-reduced-motion: reduce) {
  .hero__pill, .page-hero__crumb, .hero__title, .page-hero__title, .hero__text,
  .page-hero__text, .hero__actions, .hero__media, .hero-card, .trust__item { animation: none; }
  .reveal.reveal--left, .reveal.reveal--right, .reveal.reveal--zoom { transform: none; }
  
  .btn-mo::after { display: none; }
  .mo-js .site-header.is-hidden { transform: none; }
  .btn-mo:hover, .header-call:hover, .step:hover, .google-badge:hover, .mo-top:hover { transform: none; }
  .trust__item:hover .trust__icon { animation: none; }
}


/* ---------- How it works: centre-aligned (JP) ---------- */
.process__head { justify-content: center; text-align: center; }
@media (min-width: 768px) {
  .process__list > li { text-align: center; }
  .process__list .step__num { margin-left: auto; margin-right: auto; }
  .process__list .step__text { margin-left: auto; margin-right: auto; }
  .process__list > li:not(:last-child) .step::before { left: calc(50% + 3rem); right: -50%; }
}


/* ---------- Footer credit (JP) ---------- */
.footer-bottom__copy { display: block; margin: 0; text-align: center; line-height: 1.6; }
.footer-bottom__copy a { color: #fff; font-weight: 600; }
.footer-bottom__copy a:hover { color: var(--mo-lime); }
.footer-bottom__copy .footer-bottom__credit { display: inline-block; vertical-align: middle; font-weight: 400; }
.footer-bottom__credit img { display: block; width: auto; height: 32px; margin: -3px 0 -5px 2px; }
@media (max-width: 575px) { .footer-bottom__copy { font-size: .8125rem; } }


/* MRCHIMES THEME: olive / yellow remap of the Chimes template */
:root{--mo-forest:#3E4B1F;--mo-forest-2:#55652B;--mo-moss:#6B7A2E;--mo-lime:#FFEC8F;--mo-lime-soft:#FFF6C9;--mo-ivory:#FBF8EC;--mo-sand:#EFEBDF;--mo-sage:#ECEAD0;--mo-ink:#232B10;--mo-text:#55593F;--mo-muted:#7A7C66;--mo-line:rgba(35,43,16,.12);--mo-serif:"Fraunces",Georgia,"Times New Roman",serif;--mo-sans:"Manrope","Segoe UI",Arial,sans-serif;--mo-shadow:0 24px 60px -24px rgba(35,43,16,.30);--mo-shadow-sm:0 10px 30px -14px rgba(35,43,16,.28)}
.mo-home{overflow-x:clip}
.mo-home .process__list>[class*=col-],.mo-home .process__list>li{min-width:0}

/* MRCHIMES V5: template header, footer, mobile bar fixes for the Mr Chimes site (Bootstrap 4) */
@media(min-width:992px){.site-header .header-call{display:inline-grid!important}}
.site-header .navbar-brand img,.site-footer .footer-brand img{border-radius:16px;height:auto}
.site-header .navbar-brand img{width:auto;max-height:64px}
.site-footer .footer-top__title{font-family:var(--mo-serif)!important}
.site-header .dropdown-menu{border-radius:16px;border:1px solid var(--mo-line);box-shadow:var(--mo-shadow-sm);padding:.5rem}
.site-header .dropdown-item{border-radius:10px;font-weight:600;color:var(--mo-ink)}
@media(max-width:767.98px){body{padding-bottom:5.5rem}}

/* MRCHIMES HEADER COLOURS: yellow top bar + dark olive header (colour only) */
.topbar{background:#FFEC8F!important;color:#232B10!important}
.topbar .topbar__item,.topbar a{color:#232B10!important}
.topbar svg{color:#3E4B1F!important}
.site-header,.site-header.is-scrolled{background:#3E4B1F!important;border-bottom:0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.site-header .site-nav{background:rgba(255,255,255,.07)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)!important}
.site-header .nav-link{color:#fff!important}
.site-header .nav-link:hover{color:#3e4b1f!important}
.site-header .nav-link.active{background:#FFEC8F!important;color:#3E4B1F!important}
.site-header .header-call{background:transparent!important;border-color:rgba(255,255,255,.3)!important;color:#FFEC8F!important}
.site-header .header-call:hover{background:#FFEC8F!important;color:#3E4B1F!important}
.site-header .header-cta.btn-mo--dark{background:#FFEC8F!important;color:#232B10!important}
.site-header .header-cta .btn-mo__icon{background:#3E4B1F!important;color:#FFEC8F!important}
.site-header .navbar-toggler .toggler-bar{background:#fff!important}
@media(max-width:991.98px){.site-header .navbar-collapse{background:#3E4B1F!important}.site-header .site-nav{background:transparent!important;box-shadow:none!important}}

.topbar__item.topbar__area{font-family:"Manrope","Segoe UI",Arial,sans-serif!important}

/* NO ANCHOR UNDERLINE ON HOVER */
a:hover,a:focus,a:active,a:hover *,a:focus *{text-decoration:none!important}

/* HERO FRAME: height follows the real image height */
.hero__frame img{height:auto!important;aspect-ratio:auto!important;object-fit:contain!important}

/* HERO CARD BACKGROUND */
.hero-card{background:#FFEC8F!important}

/* HERO GUILD BADGE ABOVE HERO CARD */
.hero-stack{position:absolute;left:2rem;bottom:2rem;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:1rem}
.hero-stack .hero-card{position:static;left:auto;right:auto;bottom:auto}
.hero-guild{display:block;height:auto}
@media(max-width:767.98px){.hero-stack{left:1rem;right:1rem;bottom:1rem;gap:.75rem}}

/* TRUST BAR: olive band, yellow icons */
.trust{background:#3E4B1F!important;border:0!important;margin:0!important;padding:0!important}
.trust__grid{row-gap:1rem}
.trust__icon{background:#FFEC8F!important;color:#3E4B1F!important;border-radius:50%}
.trust__icon svg{color:#3E4B1F!important}
.trust__label{color:#fff!important}
.trust__label span{color:#fff!important}
.trust__label{font-weight:700}
.trust__label>span{font-weight:500}
.trust__label{color:#FFEC8F!important}
.trust{margin-top:3.5rem!important}

/* NO SCROLL ANIMATIONS */
.reveal,.reveal--zoom,.reveal--left,.reveal--right,.mo-js .reveal,.mo-js .reveal.is-visible{opacity:1!important;transform:none!important;transition:none!important;transition-delay:0s!important;filter:none!important}
.mo-progress{display:none!important}

/* WELCOME FRAME: height follows the real image height */
.welcome__frame img{height:auto!important;aspect-ratio:auto!important;object-fit:contain!important}

/* SERVICE CARDS: vertical gap (Bootstrap 4 has no g-4 gutters) */
.services .row.g-4>[class*="col"]{margin-bottom:1.875rem}
.services .row.g-4{margin-bottom:-1.875rem}

/* STATS SECTION: image at natural size, wider text column */
.stats-section .welcome__frame{display:inline-block;max-width:100%;line-height:0;vertical-align:top}
.stats-section .welcome__frame img{width:470px;max-width:100%;height:auto}

/* WELCOME SECTION: image at natural size, wider text column */
.welcome .welcome__media{display:inline-block;max-width:100%;vertical-align:top}
.welcome .welcome__frame{line-height:0}
.welcome .welcome__frame img{width:520px;max-width:100%;height:auto}

/* REVIEWS: photo avatars */
img.review-card__avatar{display:block;object-fit:cover;background:transparent;padding:0}

/* REVIEW DOTS: Bootstrap 4 attributes (data-target) */
.review-carousel__dots [data-target]{width:.6rem;height:.6rem;margin:0;padding:0;border:0;border-radius:50rem;background:var(--mo-forest);opacity:.2;text-indent:0;flex:0 0 auto;cursor:pointer;transition:width .35s var(--mo-ease),opacity .3s ease}
.review-carousel__dots [data-target].active{width:2rem;opacity:1}

/* REVIEWS: all review text 1.5rem */
.review-slide__text p,.review-slide__text--lg p{font-size:1.5rem!important;line-height:1.5!important;letter-spacing:-.005em}



/* FOOTER: no top radius */
.site-footer{border-top-left-radius:0!important;border-top-right-radius:0!important}

/* FOOTER TYPOGRAPHY */
.site-footer,.site-footer *{font-family:"Manrope","Segoe UI",Arial,sans-serif!important}
.footer-title{font-size:18px!important}
.footer-tagline,.footer-list,.footer-list li,.footer-list a,.site-footer address{font-size:15px!important}

/* FOOTER COPY NO SCROLL ANIMATION */
html.js-reveal .footer-bottom__copy,html.js-reveal .footer-bottom__copy[data-reveal]{opacity:1!important;translate:none!important;transform:none!important;transition:none!important;will-change:auto!important}

/* FOOTER COPY LINKS NO HOVER UNDERLINE */
.footer-bottom__copy a,.footer-bottom__copy a:hover,.footer-bottom__copy a:focus{text-decoration:none!important}

/* FOOTER COPY LINKS NO HOVER BACKGROUND-SIZE */
.footer-bottom__copy a,.footer-bottom__copy a:hover,.footer-bottom__copy a:focus{background-size:0 1px!important;transition:none!important}

/* REMOVE DUPLICATE BACK TO TOP (keep #back-to-top) */
.mo-top{display:none!important}

/* SPACE BEFORE <em> (builder strips the space before inline tags on save) */
.mo-home h1 em,.mo-home h2 em,.mo-home h3 em,.mo-home p em{margin-left:.25em}

/* ===== RESPONSIVE ===== */
/* tab landscape */
@media (min-width:992px) and (max-width:1199px){
.mo-home h1{font-size:4rem!important}
.mo-home .section-title{font-size:2.5rem!important}
.welcome__content{padding-left:2rem!important}
.review-slide__text p,.review-slide__text--lg p{font-size:1.375rem!important}
}
/* 1280 resolution */
@media (min-width:1280px) and (max-width:1365px){
.mo-home h1{font-size:4.5rem!important}
.mo-home .section-title{font-size:3rem!important}
}
/* large screens */
@media (min-width:1400px){ .mo-home .lead-text{font-size:1.25rem} }
@media (min-width:1440px) and (max-width:1599px){ .mo-home .section{padding-top:6.5rem;padding-bottom:6.5rem} }
@media (min-width:1600px){ .mo-home .container{max-width:1500px} }
@media (min-width:1920px){ .mo-home .container{max-width:1680px} .mo-home h1{font-size:5.75rem!important} }
/* tab portrait */
@media (min-width:768px) and (max-width:991px){
.mo-home h1{font-size:3.25rem!important;line-height:1.1!important}
.mo-home .section-title{font-size:2.5rem!important}
.hero-guild{width:110px}
.review-slide__text p,.review-slide__text--lg p{font-size:1.25rem!important}
.stats-section__text{margin-bottom:2rem}
}
/* mobile + windows */
@media (max-width:991px){
.welcome__content{padding-left:15px!important;padding-right:15px!important}
}
@media (max-width:767px){
.mo-home h1{font-size:2.25rem!important;line-height:1.1!important}
.mo-home .section-title{font-size:1.875rem!important;line-height:1.15!important}
.mo-home .lead-text{font-size:1rem!important}
.hero-stack{position:static!important;margin-top:1rem;flex-direction:row;align-items:center;gap:.75rem;left:auto!important;bottom:auto!important;right:auto!important}
.hero-guild{width:84px;flex:0 0 auto}
.hero-stack .hero-card{flex:1 1 auto;font-size:.875rem}
.hero-badge{transform:scale(.7);transform-origin:top right}
.review-slide__text p,.review-slide__text--lg p{font-size:1.125rem!important;line-height:1.5!important}
.stats-section__text{margin-bottom:2rem}
.mo-home .section{padding-top:4rem;padding-bottom:4rem}
.reviews .google-badge{margin-top:1.5rem}

.footer-title{font-size:17px!important}
.footer-tagline,.footer-list,.footer-list li,.footer-list a,.site-footer address{font-size:15px!important}
}
/* windows */
@media (min-width:451px) and (max-width:767px){
.mo-home h1{font-size:2.75rem!important}
.mo-home .section-title{font-size:2.125rem!important}
}
/* ios */
@media (max-width:340px){
.mo-home h1{font-size:1.875rem!important}
.mo-home .section-title{font-size:1.625rem!important}
.hero-stack{flex-direction:column;align-items:flex-start}
.review-slide__text p,.review-slide__text--lg p{font-size:1rem!important}
.btn-mo{padding-left:1.1rem;padding-right:1.1rem}
}
/* ie */
@media all and (-ms-high-contrast:none){ .mo-home img{max-width:100%;height:auto} .hero-stack{display:block} }
/* FireFox */
@-moz-document url-prefix(){ .mo-home h1,.mo-home .section-title{text-rendering:optimizeLegibility} }

/* NAVBAR TOGGLER NO FOCUS SHADOW */
.navbar-toggler:focus,.navbar-toggler:active,.navbar-toggler:focus-visible{box-shadow:none!important;outline:0!important}

/* MOBILE MENU: hide duplicate Contact Us nav link (button remains) */
.site-header .navbar-nav .nav-item.d-lg-none:last-child{display:none!important}

/* HIDE TRUST BAND ON MOBILE */
@media (max-width:767px){.trust{display:none!important}}

/* SPACE AFTER STATS BUTTON ON MOBILE/TABLET */
@media (max-width:991px){.stats-section .btn-mo{margin-bottom:2.5rem}}

/* HIDE STICKY MOBILE BAR */
.mobile-bar,.mobile-bar.is-visible{display:none!important}

/* NO BODY BOTTOM PADDING ON MOBILE */
@media (max-width:767px){body{padding-bottom:0!important}}

/* FOOTER ICONS */
.site-footer .footer-item{display:flex;align-items:flex-start;gap:.875rem;margin-bottom:1rem}
.site-footer .footer-item>a,.site-footer .footer-item>address,.site-footer .footer-item>.footer-list{min-width:0;margin:0;overflow-wrap:anywhere}
.site-footer .footer-item>.footer-list{padding:0;list-style:none}
.site-footer .footer-icon{flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:50%;background:#FFEC8F;color:#3E4B1F;display:inline-flex;align-items:center;justify-content:center}
.site-footer .footer-icon svg{width:1.125rem;height:1.125rem;display:block}
.site-footer .footer-item>a,.site-footer .footer-item>address,.site-footer .footer-item>.footer-list{padding-top:.4rem}
.site-footer .footer-item>.footer-list{padding-top:.1rem}

/* FOOTER: no anywhere-wrap on mobile */
@media (max-width:767px){.site-footer .footer-item>a,.site-footer .footer-item>address,.site-footer .footer-item>.footer-list,.site-footer,.site-footer *{overflow-wrap:normal!important}}

/* ===== INNER PAGES (.ip) ===== */
.ip{overflow:hidden}
.ip .section{padding-top:5.5rem;padding-bottom:5.5rem}
.ip-intro{background:var(--mo-ivory)}
.ip-frame{position:relative;border-radius:2rem;box-shadow:var(--mo-shadow)}
.ip-frame__main{border-radius:2rem;overflow:hidden;line-height:0}
.ip-frame__main img{width:100%;height:auto;display:block}
.ip-frame__sub{position:absolute;right:-1.25rem;bottom:-1.75rem;width:44%;border:.5rem solid var(--mo-ivory);border-radius:1.5rem;overflow:hidden;line-height:0;box-shadow:var(--mo-shadow-sm)}
.ip-frame__sub img{width:100%;height:auto;display:block}
.ip-frame::before{content:"";position:absolute;left:-1rem;top:-1rem;width:38%;height:38%;border-radius:2rem;background:#FFEC8F;z-index:-1}
.ip-rule{display:inline-block;width:3rem;height:3px;border-radius:3px;background:var(--mo-moss);margin-bottom:1.25rem}
.ip-body h1{font-family:var(--mo-serif);color:var(--mo-ink);margin-bottom:1.5rem;line-height:1.1}
.ip-body p{margin-bottom:1.25rem;color:var(--mo-text)}
.ip-body p:first-of-type{font-size:1.1875rem;line-height:1.7;color:var(--mo-ink)}
.ip-body ul{padding-left:1.25rem;margin-bottom:1.25rem}
.ip-body a:not(.btn-mo){color:var(--mo-forest);font-weight:700;text-decoration:underline}
.ip-story{background:var(--mo-sand);position:relative}
.ip-head{text-align:center;max-width:46rem;margin:0 auto 3.25rem}
.ip-head .eyebrow{justify-content:center}
.ip-head h2{font-family:var(--mo-serif);color:var(--mo-ink);line-height:1.15;margin:0}
.ip-row{display:flex;flex-wrap:wrap}
.ip-row>[class*="col"]{margin-bottom:1.875rem}
.ip-card{position:relative;height:100%;background:#fff;border-radius:2rem;padding:2.75rem 2.5rem;box-shadow:var(--mo-shadow-sm);overflow:hidden}
.ip-card__num{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:50%;background:#FFEC8F;color:var(--mo-forest);font-family:var(--mo-serif);font-weight:700;margin-bottom:1.25rem}
.ip-card h3{font-family:var(--mo-serif);font-size:1.75rem;line-height:1.2;color:var(--mo-ink);margin-bottom:1rem}
.ip-card p{color:var(--mo-text);margin-bottom:1rem}
.ip-card p:last-child{margin-bottom:0}
.ip-card--dark{background:var(--mo-forest);color:rgba(255,255,255,.86)}
.ip-card--dark h3{color:#FFEC8F}
.ip-card--dark p{color:rgba(255,255,255,.86)}
.ip-card--dark::after{content:"";position:absolute;right:-2rem;bottom:-2rem;width:11rem;height:11rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' fill='none' stroke='%23FFEC8F' stroke-width='3' stroke-linecap='round'%3E%3Ccircle cx='60' cy='60' r='52'/%3E%3Cpath d='M60 28v32l22 12'/%3E%3C/svg%3E") center/contain no-repeat;opacity:.14;pointer-events:none}
.ip-chips{list-style:none;padding:0;margin:1.5rem 0 0;display:flex;flex-wrap:wrap;gap:.6rem}
.ip-chips li{padding:.45rem 1rem;border-radius:50rem;background:var(--mo-sand);color:var(--mo-forest);font-weight:700;font-size:.9375rem;line-height:1.3}
@media (max-width:991px){
.ip .section{padding-top:4rem;padding-bottom:4rem}
.ip-frame{margin-bottom:2.5rem}
.ip-frame__sub{right:.5rem;bottom:-1.25rem}
.ip-card{padding:2rem 1.5rem}
}
@media (max-width:767px){
.ip-head{margin-bottom:2rem}
.ip-card h3{font-size:1.5rem}
.ip-body h1{font-size:2.25rem}
.ip-head h2{font-size:1.875rem}
}

/* INNER: contact page */
.ip-contact .ct-info{list-style:none;padding:0;margin:1.75rem 0 1.5rem}
.ip-contact .ct-info li{display:flex;align-items:center;gap:.9rem;margin-bottom:1rem;color:#fff}
.ip-contact .ct-info li,.ip-contact .ct-info li a,.ip-contact .ct-info li span:not(.ct-ico){color:#fff;font-weight:600;overflow-wrap:anywhere}
.ip-contact .ct-info .ct-ico{flex:0 0 auto;width:2.5rem;height:2.5rem;border-radius:50%;background:#FFEC8F!important;color:#3E4B1F!important;display:inline-flex;align-items:center;justify-content:center}
.ip-contact .ct-info .ct-ico svg{width:1.125rem;height:1.125rem}
.ip-contact .ip-card--dark h4{font-family:var(--mo-serif);font-size:1.25rem;color:#FFEC8F!important;margin:1.5rem 0 .5rem}
.ip-contact .schedule,.ip-contact .schedule span{color:#fff}
.ip-contact .ip-card--form{padding:2.25rem}
@media (max-width:767px){.ip-contact .ip-card--form{padding:1.25rem}}

/* INNER: privacy / legal text */
.ip-legal{background:var(--mo-sand)}
.ip-legal .container{max-width:62rem}
.ip-legal__card{background:#fff;border-radius:2rem;padding:3.5rem;box-shadow:var(--mo-shadow-sm);color:var(--mo-text)}
.ip-legal__card h1{font-family:var(--mo-serif);font-size:2.75rem;color:var(--mo-ink);line-height:1.1;margin-bottom:2rem;padding-bottom:1.25rem;border-bottom:3px solid #FFEC8F}
.ip-legal__card h2{font-family:var(--mo-serif);font-size:1.5rem;color:var(--mo-forest);margin:2.25rem 0 .9rem;padding-left:1rem;border-left:4px solid #FFEC8F;line-height:1.25}
.ip-legal__card p{margin-bottom:1rem}
.ip-legal__card ul{padding-left:1.25rem;margin-bottom:1.25rem}
.ip-legal__card li{margin-bottom:.4rem}
.ip-legal__card a{color:var(--mo-forest);font-weight:700;text-decoration:underline;overflow-wrap:anywhere}
@media (max-width:767px){.ip-legal__card{padding:1.75rem 1.25rem;border-radius:1.5rem}.ip-legal__card h1{font-size:2rem}.ip-legal__card h2{font-size:1.25rem}}

@media (max-width:380px){.ip-contact .g-recaptcha,.ip-contact [data-sitekey],.ip-contact .grecaptcha-badge{transform:scale(.85);transform-origin:0 0}.ip-contact .ip-card--form{padding:1rem}}

/* H1 3.75rem on laptop + desktop (all pages) */
@media (min-width:992px){.mo-home h1,.mo-home h1.section-title,.mo-home .ip-body h1,.mo-home .ip-legal__card h1{font-size:3.75rem!important}}

/* Inner pages: hero content inside intro */
.mo-home .ip-body .hero__pill{margin-bottom:1.25rem}
.mo-home .ip-body .hero__title{margin:0 0 1.25rem;text-align:left}
.mo-home .ip-body .hero__text{margin-top:1.25rem}
.mo-home .ip-body .hero__actions{margin-top:1.75rem;display:flex;flex-wrap:wrap;gap:.75rem}

/* CONTACT PAGE redesign */
.mo-home .ip-contact .ct-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1.5rem 3rem;margin-bottom:2.5rem}
.mo-home .ip-contact .ct-top__title{flex:1 1 22rem}
.mo-home .ip-contact .ct-top__title .section-title{margin:.5rem 0 0}
.mo-home .ip-contact .ct-top__text{flex:0 1 26rem;color:#5b5f4e}
.mo-home .ip-contact .ct-top__text h3{font-family:var(--mo-serif);font-size:1.25rem;line-height:1.35;color:#3E4B1F;margin:0 0 .5rem}
.mo-home .ip-contact .ct-top__text p{margin:0;font-size:1rem;line-height:1.65}
.mo-home .ip-contact .ct-stack{display:flex;flex-direction:column;gap:1rem;height:100%}
.mo-home .ip-contact .ct-card{display:flex;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;background:#fff;border-radius:1.25rem;box-shadow:0 10px 30px rgba(62,75,31,.07);color:#5b5f4e}
.mo-home .ip-contact .ct-card--dark{background:#3E4B1F;color:rgba(255,255,255,.85)}
.mo-home .ip-contact .ct-ico{flex:0 0 auto;width:2.75rem;height:2.75rem;border-radius:50%;background:rgba(62,75,31,.1);color:#3E4B1F;display:inline-flex;align-items:center;justify-content:center}
.mo-home .ip-contact .ct-card--dark .ct-ico{background:#FFEC8F;color:#3E4B1F}
.mo-home .ip-contact .ct-ico svg{width:1.15rem;height:1.15rem}
.mo-home .ip-contact .ct-txt{display:flex;flex-direction:column;min-width:0}
.mo-home .ip-contact .ct-lbl{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#6b7a3a;margin-bottom:.2rem}
.mo-home .ip-contact .ct-card--dark .ct-lbl{color:#FFEC8F}
.mo-home .ip-contact .ct-txt a,.mo-home .ip-contact .ct-val{font-family:var(--mo-serif);font-size:1.3rem;line-height:1.3;color:#22281a;text-decoration:none;overflow-wrap:anywhere}
.mo-home .ip-contact .ct-card--dark .ct-txt a{color:#fff}
.mo-home .ip-contact .ct-sub{font-size:.9rem;color:#6a6e5c;margin-bottom:.35rem}
.mo-home .ip-contact .ct-map{position:relative;flex:1 1 auto;min-height:15rem;border-radius:1.25rem;overflow:hidden;box-shadow:0 10px 30px rgba(62,75,31,.07)}
.mo-home .ip-contact .ct-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.mo-home .ip-contact .ct-map__link{position:absolute;top:.6rem;left:.6rem;z-index:2;background:#fff;color:#1a56c4;font-size:.8rem;font-weight:600;padding:.3rem .65rem;border-radius:.4rem;box-shadow:0 1px 4px rgba(0,0,0,.25);text-decoration:none}
/* form card */
.mo-home .ip-contact .ip-card--form{background:#fff;border-radius:1.75rem;box-shadow:0 20px 50px rgba(62,75,31,.1);padding:2.25rem;height:100%}
.mo-home .ip-contact .ip-card--form .card{background:transparent;box-shadow:none!important;padding:0!important}
.mo-home .ip-contact .dynamic-ajax-form{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.1rem}
.mo-home .ip-contact .dynamic-ajax-form>*{grid-column:1/-1;margin:0!important}
.mo-home .ip-contact .dynamic-ajax-form>.form-group:nth-of-type(2),.mo-home .ip-contact .dynamic-ajax-form>.form-group:nth-of-type(3){grid-column:span 1}
.mo-home .ip-contact .dynamic-ajax-form label{font-size:.8rem;color:#22281a;margin-bottom:.45rem;display:block}
.mo-home .ip-contact .dynamic-ajax-form .form-control{background:#f7f3e8;border:0;border-radius:.8rem;padding:.85rem 1rem;height:auto;font-size:.95rem;color:#22281a;box-shadow:none}
.mo-home .ip-contact .dynamic-ajax-form textarea.form-control{min-height:8rem;resize:vertical}
.mo-home .ip-contact .dynamic-ajax-form .form-control:focus{outline:2px solid #3E4B1F;background:#fff}
.mo-home .ip-contact .dynamic-ajax-form .newsletter-check{background:#f7f3e8;border:0;border-radius:.8rem}
.mo-home .ip-contact .dynamic-ajax-form .btn-primary{justify-self:end;display:inline-flex;align-items:center;gap:.75rem;background:#3E4B1F;border:0;color:#fff;font-weight:700;border-radius:999px;padding:.55rem .6rem .55rem 1.5rem;height:3.25rem}
.mo-home .ip-contact .dynamic-ajax-form .btn-primary::after{content:"\2192";display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:50%;background:#FFEC8F;color:#3E4B1F}
.mo-home .ip-contact .dynamic-ajax-form .btn-primary:disabled{opacity:.6}
@media (max-width:767px){.mo-home .ip-contact .ip-card--form{padding:1.5rem}.mo-home .ip-contact .dynamic-ajax-form{grid-template-columns:1fr}.mo-home .ip-contact .dynamic-ajax-form>.form-group:nth-of-type(2),.mo-home .ip-contact .dynamic-ajax-form>.form-group:nth-of-type(3){grid-column:1/-1}.mo-home .ip-contact .ct-map{min-height:13rem}.mo-home .ip-contact .dynamic-ajax-form .btn-primary{justify-self:stretch;justify-content:space-between}}
@media (max-width:991px){.mo-home .ip-contact .ct-stack{margin-bottom:1.5rem}}


/* Contact top: pill/title/rule left, text right */
.mo-home .ip-contact .ct-top{align-items:flex-start}
.mo-home .ip-contact .ct-top__title{flex:1 1 22rem;text-align:left}
.mo-home .ip-contact .ct-top__title .hero__pill{margin-bottom:1.25rem}
.mo-home .ip-contact .ct-top__title .hero__title{margin:0 0 1.25rem;text-align:left}
.mo-home .ip-contact .ct-top__title .ip-rule{display:block;margin:0}
.mo-home .ip-contact .ct-top__text{flex:0 1 34rem}
.mo-home .ip-contact .ct-top__text p{margin:0 0 1rem;font-size:1rem;line-height:1.65}
.mo-home .ip-contact .ct-top__text .hero__text{font-size:1.15rem;color:#22281a}
.mo-home .ip-contact .ct-top__title .ip-rule{margin-top:1rem!important}
/* Contact top right text */
.mo-home .ip-contact .ct-top__text{flex:0 1 58rem;align-self:flex-end;padding-bottom:.25rem}
.mo-home .ip-contact .ct-top__text .hero__text{font-family:inherit;font-size:1.25rem;font-weight:600;line-height:1.4;color:#4a5530;margin:0 0 .35rem}
.mo-home .ip-contact .ct-top__text p:not(.hero__text){font-size:1.0625rem;line-height:1.6;color:#5f6648;margin:0}
@media (max-width:991px){.mo-home .ip-contact .ct-top__text{flex:1 1 100%;align-self:flex-start}}
@media (min-width:992px){.mo-home .ip-contact .ct-top{flex-wrap:nowrap}.mo-home .ip-contact .ct-top__title{flex:0 0 20rem}.mo-home .ip-contact .ct-top__text{flex:1 1 0;min-width:0}}
.mo-home .ip-contact .ct-top__text p,.mo-home .ip-contact .ct-top__text .hero__text{max-width:none!important}
/* Privacy page: the builder strips spaces next to inline tags on save, so restore them in CSS */
.mo-home .ip-legal__card li>b,.mo-home .ip-legal__card li>strong{margin-right:.25em}
.mo-home .ip-legal__card li>a{margin-left:.25em}

/* ===== RESPONSIVE: inner pages (about, services, items, contact, privacy) ===== */
/* Mobile */
@media (max-width:767px){
.mo-home.ip .section{padding-top:3rem;padding-bottom:3rem}
.mo-home .ip-contact .ct-top{gap:1rem;margin-bottom:1.75rem}
.mo-home .ip-contact .ct-top__title{flex:1 1 100%}
.mo-home .ip-contact .ct-card{padding:1rem 1.1rem;gap:.85rem}
.mo-home .ip-contact .ct-txt a,.mo-home .ip-contact .ct-val{font-size:1.1rem}
.mo-home .ip-contact .ct-ico{width:2.5rem;height:2.5rem}
.mo-home .ip-contact .ct-top__text .hero__text{font-size:1.1rem}
.mo-home .ip-contact .ct-top__text p:not(.hero__text){font-size:1rem}
.mo-home .ip-body .hero__actions{flex-direction:column;align-items:stretch}
.mo-home .ip-legal__card{padding:1.5rem 1.25rem}
}
/* ios */
@media (max-width:340px){
.mo-home.ip .section{padding-top:2.5rem;padding-bottom:2.5rem}
.mo-home .ip-contact .ct-card{padding:.85rem .9rem;gap:.7rem}
.mo-home .ip-contact .ct-ico{width:2.25rem;height:2.25rem}
.mo-home .ip-contact .ct-txt a,.mo-home .ip-contact .ct-val{font-size:1rem}
.mo-home .ip-contact .ip-card--form{padding:1.1rem}
.mo-home .ip-contact .dynamic-ajax-form .btn-primary{font-size:.9rem}
.mo-home .ip-legal__card{padding:1.25rem 1rem}
}
/* windows */
@media (min-width:451px) and (max-width:767px){
.mo-home .ip-contact .dynamic-ajax-form{grid-template-columns:1fr 1fr}
.mo-home .ip-contact .dynamic-ajax-form>.form-group:nth-of-type(2),.mo-home .ip-contact .dynamic-ajax-form>.form-group:nth-of-type(3){grid-column:span 1}
.mo-home .ip-body .hero__actions{flex-direction:row;align-items:center}
}
/* tab portrait */
@media (min-width:768px) and (max-width:991px){
.mo-home .ip-contact .ct-top__title{flex:1 1 100%}
.mo-home .ip-contact .ct-top__text{flex:1 1 100%;align-self:flex-start}
.mo-home .ip-contact .ct-stack{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.mo-home .ip-contact .ct-stack .ct-map{grid-column:1/-1;min-height:16rem}
.mo-home .ip-contact .ip-card--form{margin-top:0}
}
/* tab landscape */
@media (min-width:992px) and (max-width:1199px){
.mo-home .ip-contact .ct-top__title{flex:0 0 17rem}
.mo-home .ip-contact .ct-card{padding:1.1rem 1.2rem}
.mo-home .ip-contact .ct-txt a,.mo-home .ip-contact .ct-val{font-size:1.15rem}
.mo-home .ip-contact .ip-card--form{padding:1.75rem}
}
/* 1280 resolution */
@media (min-width:1280px) and (max-width:1365px){
.mo-home .ip-contact .ct-top__title{flex:0 0 19rem}
}
/* large screen */
@media (min-width:1400px){
.mo-home .ip-contact .ct-top__text p:not(.hero__text){font-size:1.125rem}
}
@media (min-width:1440px) and (max-width:1599px){
.mo-home .ip-body p{font-size:1.0625rem}
}
/* Large View */
@media (min-width:1600px){
.mo-home .ip-contact .ct-txt a,.mo-home .ip-contact .ct-val{font-size:1.4rem}
.mo-home .ip-contact .ip-card--form{padding:2.75rem}
}
@media (min-width:1920px){
.mo-home .ip-body p,.mo-home .ip-contact .ct-top__text p:not(.hero__text){font-size:1.1875rem}
.mo-home .ip-contact .ct-map{min-height:20rem}
}
/* ie: no CSS grid gap support, fall back to stacked blocks */
@media all and (-ms-high-contrast:none){
.mo-home .ip-contact .dynamic-ajax-form{display:block}
.mo-home .ip-contact .dynamic-ajax-form>*{margin-bottom:1rem!important}
.mo-home .ip-contact .ct-stack{display:block}
.mo-home .ip-contact .ct-card{margin-bottom:1rem}
.mo-home .ip-contact .ct-map{height:16rem}
}
/* FireFox */
@-moz-document url-prefix(){
.mo-home .ip-contact .dynamic-ajax-form textarea.form-control{resize:vertical}
.mo-home .ip-contact .ct-map iframe{border:0}
}
/* Contact map height */
.mo-home .ip-contact .ct-map{height:200px!important;min-height:0!important;flex:0 0 auto!important}
/* Inner pages: link hover colour in white cards */
.mo-home .ip-card:not(.ip-card--dark) a.sc-link:hover{color:#3E4B1F!important}
/* Reviews: space between Google badge and review card when stacked */
@media (max-width:991px){.reviews .reviews__summary{margin-bottom:1.5rem}}
/* Footer tagline: no max-width in tablet portrait */
@media (min-width:768px) and (max-width:991px){.site-footer .footer-tagline,.footer-tagline{max-width:none!important}}

/* PageSpeed: accessibility (contrast + touch targets) */
.mo-home .eyebrow,.mo-home .service-card__num{color:#4e5b1d}
.review-carousel small,.review-slide small,.review-card small{color:#5f614d}
.review-carousel__dots{gap:0}
.review-carousel__dots button,.review-carousel__dots [data-slide-to]{box-sizing:content-box;padding:7.2px;margin:0 -2px;background-clip:content-box}

/* PAGESPEED: do not hide LCP hero image behind fade-in */
.mo-home .hero__media,.mo-home .hero__frame{animation:none!important;opacity:1!important;transform:none!important}

/* restore light eyebrow colour (was overridden by contrast fix) */
.mo-home .eyebrow.eyebrow--light,.mo-home .eyebrow--light{color:#ffec8f!important}

.footer-bottom__copy{font-size: 15px;}
.footer-bottom__copy a img{scale: 0.8;}

/* =====================================================================
   Home hero - text content overlaid on the banner image
   (title / intro / buttons now sit inside the banner, no separate block)
   ===================================================================== */
.mo-home .hero:not(.page-hero) > .container { display: grid; position: relative; }
.mo-home .hero:not(.page-hero) > .container > .row,
.mo-home .hero:not(.page-hero) .hero__media { grid-area: 1 / 1; }
.mo-home .hero:not(.page-hero) .hero__media { margin-top: 0; }
.mo-home .hero:not(.page-hero) .hero__frame img { height: 46rem !important; object-fit: cover !important; }
.mo-home .hero:not(.page-hero) .hero__frame::after { background: linear-gradient(90deg, rgba(21, 35, 27, 0.92) 0%, rgba(21, 35, 27, 0.78) 38%, rgba(21, 35, 27, 0.25) 72%, rgba(21, 35, 27, 0.05) 100%); }
.mo-home .hero:not(.page-hero) > .container > .row { position: relative; z-index: 3; align-self: start; margin: 0; padding: 4.5rem 4rem 0; pointer-events: none; }
.mo-home .hero:not(.page-hero) > .container > .row > [class*="col-"] { flex: 0 0 100%; max-width: 48rem; padding: 0; pointer-events: auto; }
.mo-home .hero:not(.page-hero) .hero__title { font-size: 4.25rem; color: #fff; }
.mo-home .hero:not(.page-hero) .hero__title em { color: var(--mo-lime); }
.mo-home .hero:not(.page-hero) .hero__aside { padding-top: 1.75rem; }
.mo-home .hero:not(.page-hero) .hero__text { color: rgba(255, 255, 255, 0.86); max-width: 34rem; }
.mo-home .hero:not(.page-hero) .btn-mo--dark { background: var(--mo-lime); color: var(--mo-forest); }
.mo-home .hero:not(.page-hero) .btn-mo--dark .btn-mo__icon { background: var(--mo-forest); color: var(--mo-lime); }
.mo-home .hero:not(.page-hero) .btn-mo--dark:hover { background: #fff; color: var(--mo-forest); }
.mo-home .hero:not(.page-hero) .btn-mo--ghost { color: #fff; background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.5); }
.mo-home .hero:not(.page-hero) .btn-mo--ghost:hover { color: var(--mo-forest); background: #fff; box-shadow: inset 0 0 0 1.5px #fff; }
.mo-home .hero:not(.page-hero) .btn-mo--ghost svg,
.mo-home .hero:not(.page-hero) .btn-mo--ghost .icon { color: inherit; stroke: currentColor; }
.mo-home .hero:not(.page-hero) .hero-stack { left: auto; right: 2rem; align-items: flex-end; }

/* Mobile */
@media (max-width: 767px) {
    .mo-home .hero:not(.page-hero) .hero__frame img { height: 44rem !important; }
    .mo-home .hero:not(.page-hero) .hero__frame::after { background: linear-gradient(180deg, rgba(21, 35, 27, 0.9) 0%, rgba(21, 35, 27, 0.78) 55%, rgba(21, 35, 27, 0.35) 100%); }
    .mo-home .hero:not(.page-hero) > .container > .row { padding: 3.5rem 1.25rem 0; }
    .mo-home .hero:not(.page-hero) .hero__title { font-size: 2.6rem; }
    .mo-home .hero:not(.page-hero) .hero__aside { padding-top: 1.25rem; }
    .mo-home .hero:not(.page-hero) .hero-stack { position: absolute !important; left: 1rem !important; right: 1rem !important; bottom: 1rem !important; margin-top: 0; }
    .mo-home .hero:not(.page-hero) .hero-guild { display: none; }
}

/* ios */
@media (max-width: 340px) {
    .mo-home .hero:not(.page-hero) .hero__frame img { height: 48rem !important; }
    .mo-home .hero:not(.page-hero) .hero__title { font-size: 2.2rem; }
}

/* windows */
@media (min-width: 451px) and (max-width: 767px) {
    .mo-home .hero:not(.page-hero) .hero__frame img { height: 40rem !important; }
}

/*tab portrait view*/
@media (min-width: 768px) and (max-width: 991px) {
    .mo-home .hero:not(.page-hero) .hero__frame img { height: 42rem !important; }
    .mo-home .hero:not(.page-hero) > .container > .row { padding: 4rem 2.5rem 0; }
    .mo-home .hero:not(.page-hero) .hero__title { font-size: 3.25rem; }
    .mo-home .hero:not(.page-hero) .hero-guild { display: none; }
}

/*tab landscape*/
@media (min-width: 992px) and (max-width: 1199px) {
    .mo-home .hero:not(.page-hero) .hero__frame img { height: 42rem !important; }
    .mo-home .hero:not(.page-hero) .hero__title { font-size: 3.75rem; }
}

/* 1280 resolution */
@media (min-width: 1280px) and (max-width: 1365px) {
    .mo-home .hero:not(.page-hero) .hero__title { font-size: 4rem; }
}

/* large screen */
@media (min-width: 1400px) {
}

@media (min-width: 1440px) and (max-width: 1599px) {
}

/*Large View*/
@media (min-width: 1600px) {
    .mo-home .hero:not(.page-hero) > .container > .row { padding-top: 5.5rem; }
}

@media (min-width: 1920px) {
}

/* ie */
@media all and (-ms-high-contrast:none) {
}

/* FireFox */
@-moz-document url-prefix() {
}
