.journey-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  margin-top: 40px;
  border: 1px solid var(--line);
  background: var(--line);
}

.journey {
  display: flex;
  flex-direction: column;
  background: var(--paper);
  transition: transform .2s, box-shadow .2s;
}

.journey:hover {
  position: relative;
  z-index: 1;
  transform: translateY(-3px);
  box-shadow: 0 15px 34px #1b272f18;
}

.journey img {
  height: 220px;
}

.journey-copy {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 28px;
}

.journey h3 {
  margin: 0 0 8px;
  font: 600 1.7rem var(--serif);
}

.journey p {
  margin: 0 0 20px;
  color: var(--muted);
}

.journey .text-link {
  margin-top: auto;
  color: var(--rose-deep);
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.blog-list {
  display: grid;
  border-top: 1px solid var(--line);
}

.post-row {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  align-items: center;
  gap: 30px;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}

.post-row time {
  color: var(--rose-deep);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.post-row h2 {
  margin: 0 0 8px;
  font-size: 2rem;
}

.event-feature {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  background: var(--ink);
  color: white;
}

.event-feature img {
  min-height: 460px;
}

.event-feature .copy {
  padding: 60px;
}

.event-feature h1 {
  margin: 15px 0;
  font: 500 clamp(3rem, 5vw, 5rem) / .95 var(--serif);
}

.event-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin-top: 38px;
}

.event-card {
  padding: 28px;
  border: 1px solid var(--line);
  background: var(--paper);
}

.event-card h3 {
  margin: 5px 0 12px;
  font: 600 1.55rem var(--serif);
}

.event-meta {
  margin: 4px 0;
  color: var(--muted);
}

.live-reviews {
  background: var(--paper);
}

.review-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 25px;
  margin-bottom: 38px;
}

.review-heading h2 {
  margin-bottom: 0;
}

.live-reviews .elfsight-app-fd141c35-fa06-4b0a-bfe7-9fcb1675114d {
  min-height: 280px;
}

.award-banner {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px 16px;
  padding: 12px 17px;
  background: var(--ink);
  color: white;
  font-size: .73rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  box-shadow: 0 10px 28px #1b272f1c;
}

.award-stars {
  color: #e7c166;
  font-size: 1rem;
  letter-spacing: .12em;
  line-height: 1;
}

.home-visit-section {
  background: white;
}

.home-visit-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 390px);
  align-items: center;
  gap: clamp(48px, 8vw, 105px);
}

.home-visit-copy h2,
.online-consultation-copy h2 {
  margin: 10px 0 20px;
  font: 500 clamp(2.5rem, 4.7vw, 4.35rem) / .98 var(--serif);
  letter-spacing: -.03em;
}

.home-visit-copy > p,
.online-consultation-copy > p {
  color: var(--muted);
  font-size: 1.02rem;
}

.feature-list {
  display: grid;
  gap: 10px;
  margin: 25px 0 30px;
  padding: 0;
  list-style: none;
}

.feature-list li {
  position: relative;
  padding-left: 28px;
}

.feature-list li::before {
  position: absolute;
  left: 0;
  content: "✓";
  color: var(--rose-deep);
  font-weight: 800;
}

.home-video-frame {
  overflow: hidden;
  width: 100%;
  max-width: 380px;
  margin: auto;
  background: var(--ink);
  box-shadow: 0 22px 55px #1b272f2e;
}

.home-video-frame video {
  display: block;
  width: 100%;
  aspect-ratio: 9 / 16;
  object-fit: cover;
}

.online-consultation-section {
  background: white;
}

.online-consultation-grid {
  display: grid;
  grid-template-columns: 56% 44%;
  overflow: hidden;
  border: 1px solid var(--line);
  background: #edf0f1;
}

.online-consultation-image {
  position: relative;
  align-self: stretch;
  margin: 0;
  background: #e5e8e9;
}

.online-consultation-image img {
  width: 100%;
  height: 100%;
  min-height: 625px;
  object-fit: contain;
}

.online-consultation-image figcaption {
  position: absolute;
  right: 22px;
  bottom: 22px;
  left: 22px;
  padding: 14px 16px;
  background: rgba(27, 39, 47, .92);
  color: white;
  font-size: .82rem;
}

.online-consultation-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(38px, 5vw, 68px);
}

.availability-note {
  margin: 0 0 26px;
  padding: 16px 18px;
  border-left: 3px solid var(--rose-deep);
  background: white;
  color: var(--muted);
  font-size: .9rem;
}

.availability-note strong {
  color: var(--ink);
}

.online-consultation-copy .btn {
  align-self: flex-start;
}

.online-education-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  margin-top: 1px;
  border: 1px solid var(--line);
  background: var(--line);
}

.online-education-steps article {
  padding: 27px 24px;
  background: white;
}

.online-education-steps span {
  color: var(--rose-deep);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
}

.online-education-steps h3 {
  margin: 7px 0 8px;
  font: 500 1.45rem / 1.08 var(--serif);
}

.online-education-steps p {
  margin: 0;
  color: var(--muted);
  font-size: .88rem;
}

.engagement-options {
  grid-column: 1 / -1;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.form-choice-intro {
  grid-column: 1 / -1;
  padding-bottom: 6px;
}

.form-choice-intro h2 {
  margin: 6px 0 8px;
}

.form-choice-intro p {
  margin: 0;
  color: var(--muted);
}

.engagement-options[hidden],
.online-date-field[hidden] {
  display: none !important;
}

.engagement-options legend,
.online-date-field > label {
  margin-bottom: 7px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.consultation-choices {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.consultation-choice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 15px;
  border: 1px solid var(--line);
  background: white;
  cursor: pointer;
}

.consultation-choice:has(input:checked) {
  border-color: var(--ink);
  box-shadow: inset 0 0 0 1px var(--ink);
  background: #f8eeee;
}

.consultation-choice input {
  margin-top: 5px;
  accent-color: var(--ink);
}

.consultation-choice strong,
.consultation-choice small {
  display: block;
}

.consultation-choice small {
  margin-top: 2px;
  color: var(--muted);
  font-size: .8rem;
}

.online-date-field {
  display: grid;
  gap: 7px;
  margin-top: 16px;
  padding: 18px;
  border-left: 3px solid var(--rose-deep);
  background: #f8eeee;
}

.online-date-field input {
  width: 100%;
  padding: 13px;
  border: 1px solid var(--line);
  background: white;
  color: var(--ink);
}

.bespoke-hero .hero-image img {
  object-position: center center;
}

.bespoke-steps .step {
  min-height: 245px;
}

.bespoke-feature {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  background: var(--ink);
  color: white;
}

.bespoke-feature-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 70px max(38px, 7vw);
}

.bespoke-feature-copy h2 {
  margin: 10px 0 20px;
  font: 500 clamp(2.5rem, 4vw, 4.2rem) / 1 var(--serif);
}

.bespoke-feature-copy p,
.bespoke-assurance p {
  max-width: 590px;
  color: #e2e5e6;
}

.bespoke-video-shell {
  display: grid;
  place-items: center;
  padding: 45px;
  background: #11191e;
}

.bespoke-video-shell video {
  display: block;
  width: 100%;
  max-height: 610px;
  background: #090e11;
  box-shadow: 0 24px 60px #0005;
}

.bespoke-detail-section {
  background: var(--paper);
}

.bespoke-story-grid {
  display: grid;
  gap: 32px;
}

.bespoke-story-card {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  min-height: 520px;
  border: 1px solid var(--line);
  background: var(--cream);
}

.bespoke-story-card.reverse {
  grid-template-columns: 1.15fr .85fr;
}

.bespoke-story-card.reverse .bespoke-story-media {
  order: 2;
}

.bespoke-story-card.reverse .bespoke-story-copy {
  order: 1;
}

.bespoke-story-media {
  min-height: 520px;
  overflow: hidden;
}

.bespoke-story-media img {
  height: 100%;
  object-fit: cover;
}

.bespoke-story-media.portrait img {
  object-position: center 56%;
}

.bespoke-story-media.landscape img {
  object-position: center;
}

.bespoke-story-media.sketch,
.bespoke-story-media.cad {
  display: flex;
  align-items: center;
  background: #fff;
}

.bespoke-story-media.cad {
  padding: clamp(14px, 3vw, 30px);
}

.bespoke-story-media.sketch img,
.bespoke-story-media.cad img {
  height: auto;
  object-fit: contain;
}

.bespoke-story-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 55px clamp(32px, 6vw, 80px);
}

.bespoke-story-copy h3 {
  margin: 9px 0 18px;
  font: 600 clamp(2rem, 3.2vw, 3.35rem) / 1 var(--serif);
}

.bespoke-story-copy p {
  max-width: 540px;
  color: var(--muted);
}

.story-number {
  margin-bottom: 24px;
  color: var(--line);
  font: 500 3.4rem / 1 var(--serif);
}

.bespoke-assurance {
  padding: 80px 0;
  background: var(--ink);
  color: white;
}

.bespoke-assurance .wrap {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 80px;
}

.bespoke-assurance h2 {
  margin: 10px 0 0;
  font: 500 clamp(2.5rem, 4vw, 4rem) / 1 var(--serif);
}

.bespoke-assurance p {
  font-size: 1.06rem;
}

@media (max-width: 900px) {
  .home-visit-grid,
  .online-consultation-grid,
  .online-education-steps {
    grid-template-columns: 1fr;
  }

  .online-consultation-copy {
    order: -1;
  }

  .online-consultation-image img {
    min-height: 0;
    aspect-ratio: 16 / 9;
  }

  .bespoke-feature,
  .bespoke-story-card,
  .bespoke-story-card.reverse,
  .bespoke-assurance .wrap {
    grid-template-columns: 1fr;
  }

  .bespoke-story-card.reverse .bespoke-story-media,
  .bespoke-story-card.reverse .bespoke-story-copy {
    order: initial;
  }

  .bespoke-story-media {
    min-height: 430px;
  }

  .bespoke-story-media.sketch,
  .bespoke-story-media.cad {
    min-height: 0;
  }

  .bespoke-assurance .wrap {
    gap: 30px;
  }

  .bespoke-feature-copy {
    padding: 60px 30px;
  }

  .bespoke-video-shell {
    padding: 28px;
  }
}

@media (max-width: 850px) {
  .journey-grid,
  .event-grid {
    grid-template-columns: 1fr 1fr;
  }

  .event-feature {
    grid-template-columns: 1fr;
  }

  .post-row {
    grid-template-columns: 1fr;
  }

  .post-row .btn {
    justify-self: start;
  }
}

@media (max-width: 650px) {
  .review-heading {
    align-items: start;
    flex-direction: column;
  }

  .review-heading .btn {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .award-banner {
    align-items: flex-start;
    flex-direction: column;
  }

  .online-consultation-copy {
    padding: 34px 25px;
  }

  .online-consultation-image figcaption {
    position: static;
    background: var(--ink);
  }

  .journey-grid,
  .event-grid {
    grid-template-columns: 1fr;
  }

  .bespoke-story-card {
    min-height: 0;
  }

  .bespoke-story-media {
    min-height: 340px;
  }

  .bespoke-story-copy {
    padding: 38px 26px;
  }

  .bespoke-video-shell {
    padding: 14px;
  }

  .bespoke-assurance {
    padding: 60px 0;
  }
}


/* Ring gallery 1.0.9 */
.gallery-hero{padding-bottom:clamp(42px,7vw,86px)}
.gallery-hero p{max-width:760px}
.gallery-intro{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.65fr);gap:34px;align-items:end;margin-bottom:28px}
.gallery-intro h2,.gallery-intro p{margin-bottom:0}
.gallery-filters{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 32px}
.gallery-filter{border:1px solid var(--line);background:transparent;color:var(--ink);padding:11px 17px;font:600 .82rem var(--sans);letter-spacing:.04em;cursor:pointer}
.gallery-filter:hover,.gallery-filter:focus-visible,.gallery-filter.active{background:var(--navy);border-color:var(--navy);color:#fff}
.ring-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ring-gallery-card{position:relative;display:block;width:100%;padding:0;border:0;background:#f5f3ef;cursor:zoom-in;overflow:hidden;aspect-ratio:1}
.ring-gallery-card[hidden]{display:none}
.ring-gallery-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.ring-gallery-card:hover img,.ring-gallery-card:focus-visible img{transform:scale(1.035)}
.ring-gallery-card span{position:absolute;left:12px;bottom:12px;background:rgba(18,35,56,.9);color:#fff;padding:7px 10px;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase}
.gallery-lightbox{width:min(92vw,980px);max-height:92vh;border:0;padding:0;background:#fff;color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.35)}
.gallery-lightbox::backdrop{background:rgba(8,18,30,.82)}
.gallery-lightbox img{display:block;width:100%;height:min(76vh,800px);object-fit:contain;background:#f4f2ee}
.gallery-lightbox p{margin:0;padding:14px 64px;text-align:center;font-size:.85rem;text-transform:uppercase;letter-spacing:.08em}
.gallery-close,.gallery-prev,.gallery-next{position:absolute;border:0;background:rgba(18,35,56,.9);color:#fff;cursor:pointer;z-index:2}
.gallery-close{right:12px;top:12px;width:44px;height:44px;font-size:1.8rem}
.gallery-prev,.gallery-next{top:50%;width:46px;height:58px;font-size:2rem;transform:translateY(-50%)}
.gallery-prev{left:12px}.gallery-next{right:12px}
@media(max-width:900px){.ring-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.gallery-intro{grid-template-columns:1fr;gap:14px}.ring-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.ring-gallery-card span{left:7px;bottom:7px;padding:6px 8px;font-size:.62rem}.gallery-filter{flex:1 1 calc(50% - 10px)}.gallery-lightbox{width:96vw}.gallery-lightbox img{height:72vh}}


/* Customer video gallery 1.0 */
.customer-gallery-hero{padding-bottom:clamp(42px,7vw,82px)}
.customer-gallery-hero p{max-width:720px}
.customer-video-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.customer-video-card{display:block;width:100%;margin:0;padding:0;text-align:left;background:var(--paper);border:1px solid var(--line);overflow:hidden;cursor:pointer}
.customer-video-image{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:#10151b}
.customer-video-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}
.customer-video-card:hover img,.customer-video-card:focus-visible img{transform:scale(1.025)}
.customer-play{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;transform:translate(-50%,-50%);background:rgba(18,35,56,.9);color:#fff;font-size:1.15rem;padding-left:4px;box-shadow:0 8px 30px rgba(0,0,0,.25)}
.customer-video-label{display:block;padding:14px 16px;color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.customer-video-dialog{width:min(92vw,760px);max-height:92vh;padding:0;border:0;background:#fff;color:var(--ink);box-shadow:0 24px 80px rgba(0,0,0,.4)}
.customer-video-dialog::backdrop{background:rgba(8,18,30,.84)}
.customer-video-dialog video{display:block;width:100%;max-height:80vh;aspect-ratio:1;object-fit:contain;background:#05080c}
.customer-video-dialog p{margin:0;padding:14px 60px;text-align:center;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.customer-video-close{position:absolute;right:12px;top:12px;z-index:2;width:44px;height:44px;border:0;background:rgba(18,35,56,.92);color:#fff;font-size:1.8rem;cursor:pointer}
@media(max-width:880px){.customer-video-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.customer-video-gallery{grid-template-columns:1fr;gap:16px}}
