/* V1 colours and typography; the imported editorial content remains unchanged. */
:root {
  --ink: #113d43;
  --teal: #075a64;
  --dark: #073a43;
  --blue: #65aaa3;
  --mint: #c7eddd;
  --pale: #e7f3ec;
  --paper: #f7f9f5;
  --muted: #687d7d;
  --line: #dbe4df;
  --font: 'DM Sans', sans-serif;
  --display: 'Manrope', sans-serif;
}
body.v2.detail-page {
  padding: 20px 20px 0;
  background: #e5eeea;
  color: var(--ink);
  font-family: var(--font);
  -webkit-font-smoothing: antialiased;
}
.detail-page main,
.detail-page .site-header,
.detail-page .site-footer,
.detail-page .page-index { max-width: 1560px; }
.detail-page main { background: var(--paper); }
.detail-page .site-header {
  min-height: 96px;
  padding: 20px 48px;
  gap: 25px;
  border-radius: 24px 24px 0 0;
  background: #fff;
}
.detail-page .brand {
  display: flex;
  flex: 0 0 auto;
  width: auto;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  text-decoration: none;
  line-height: 1.2;
}
.detail-page .brand-icon {
  display: grid;
  place-items: center;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #dfefe8;
  color: #176772;
}
.detail-page .brand-icon svg {
  width: 25px;
  height: 25px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.detail-page .brand strong {
  display: block;
  font: 800 22px/1.2 var(--display);
  letter-spacing: -1px;
}
.detail-page .brand-dot { color: #65aaa3; }
.detail-page .brand small {
  display: block;
  margin-top: 5px;
  font-size: 7.5px;
  font-weight: 650;
  letter-spacing: 2.5px;
}
.detail-page .site-header nav { gap: clamp(13px, 1.4vw, 23px); }
.detail-page .site-header nav a {
  padding: 11px 0;
  font: 550 15px/1.4 var(--font);
  color: var(--ink);
}
.detail-page .site-header nav a:hover,
.detail-page .site-header nav a[aria-current] { color: var(--teal); border-color: var(--teal); }
.detail-page .site-header nav a[target]:after { color: #4f9291; }
.detail-page .site-header nav a:last-child {
  padding: 13px 21px;
  background: var(--dark);
  color: #fff;
  border: 0;
}
.detail-page .page-index { padding: 0 48px 18px; }
.detail-page .page-index a { font-size: 14px; color: var(--teal); background: var(--paper); }
.detail-page .page-index a:hover { background: var(--mint); }
.detail-page .v2-section { background: var(--paper) !important; }
.detail-page .v2-section:nth-child(even) { background: #edf4ed !important; }
.detail-page .v2-pricing { background: #e1efe5 !important; }
.detail-page .v2-form-section { background: #dcece3 !important; }
.detail-page .v2-map-image { background: #edf4ed !important; }
.detail-page .u-text { font-family: var(--font) !important; }
.detail-page h1.u-text,
.detail-page h2.u-text,
.detail-page h3.u-text,
.detail-page h4.u-text {
  font-family: var(--display) !important;
  font-weight: 650;
  letter-spacing: -.045em;
  line-height: 1.12;
}
.detail-page .u-list-item { background: #ecf3eb !important; }
.detail-page .u-list-item:nth-child(3n + 2) { background: var(--dark) !important; }
.detail-page .u-list-item:nth-child(3n) { background: var(--mint) !important; }
.detail-page .u-list-item h4 b { font-weight: 650; }
.detail-page .u-list-item .u-container-layout:before { font-family: var(--display); }
.detail-page .u-btn:not(.u-text .u-btn) {
  font-family: var(--font);
  background: var(--dark) !important;
  border-color: var(--dark) !important;
}
.detail-page .u-btn:not(.u-text .u-btn):hover { background: #0d5660 !important; }
.detail-page .u-list-item .u-btn:not(.u-text .u-btn) { font-size: 15px; }
.detail-page .u-list-item:nth-child(3n + 2) .u-btn:not(.u-text .u-btn) {
  background: var(--mint) !important;
  color: var(--dark) !important;
  border-color: var(--mint) !important;
}
.detail-page .u-text a,
.detail-page .u-form-agree a { color: var(--teal) !important; }
.detail-page .u-table table { font-family: var(--font); }
.detail-page .u-table tbody tr:nth-child(odd):not(:first-child) { background: #f1f6ef; }
.detail-page .u-input {
  font-family: var(--font);
  border-color: var(--line) !important;
  background: var(--paper) !important;
}
.detail-page .u-input::placeholder { color: #687d7d; }
.detail-page .u-form-agree input { accent-color: var(--teal); }
.detail-page .u-social-icons .u-icon { background: var(--teal) !important; }
.detail-page .v2-hero h1.u-text { background: var(--paper); }
.detail-page .v2-hero h1 span { color: var(--teal) !important; }
.detail-page .v2-hero .u-btn:not(.u-text .u-btn) {
  background: var(--mint) !important;
  color: var(--dark) !important;
  border: 0 !important;
}
.detail-page .site-footer { background: var(--dark); }
.detail-page .site-footer p { color: #d3e5de !important; }
.detail-page :focus-visible { outline-color: var(--teal); }
@media (max-width: 1250px) {
  .detail-page .site-header { padding: 20px 28px; gap: 20px; }
  .detail-page .site-header nav { gap: 12px; }
  .detail-page .site-header nav a { font-size: 15px; }
  .detail-page .brand strong { font-size: 21px; }
}
@media (max-width: 1180px) {
  .detail-page .site-header nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    padding: 16px 28px 28px;
    background: #fff;
    border-radius: 0 0 24px 24px;
    box-shadow: 0 16px 20px #113d4312;
    align-items: stretch;
  }
  .detail-page .site-header nav.is-open { display: flex; flex-direction: column; gap: 2px; }
  .detail-page .site-header nav a { font-size: 18px; padding: 12px 0; }
  .detail-page .site-header nav a:last-child { align-self: flex-start; margin-top: 8px; padding: 13px 21px; }
  .detail-page .menu-toggle {
    display: flex;
    width: 46px;
    height: 46px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 6px;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: var(--paper);
    cursor: pointer;
  }
  .detail-page .menu-toggle span { display: block; width: 20px; height: 2px; background: var(--ink); }
}
@media (max-width: 600px) {
  body.v2.detail-page { padding: 0; background: var(--paper); }
  .detail-page .site-header { min-height: 88px; padding: 18px 20px; border-radius: 0; }
  .detail-page .brand { width: auto; flex-basis: auto; gap: 10px; }
  .detail-page .brand-icon { width: 38px; height: 38px; flex-basis: 38px; }
  .detail-page .brand strong { font-size: 20px; }
  .detail-page .brand small { font-size: 7px; letter-spacing: 2.2px; }
  .detail-page .page-index { padding: 0 20px 18px; }
}
