.cycle-page .hdr:not(.solid){color:#111}.cycle-page .hdr:not(.solid) .brand-logo-dark{display:block}.cycle-page .hdr:not(.solid) .brand-logo-light{display:none}.cycle-page.menu-open .hdr .brand-logo-dark{display:none!important}.cycle-page.menu-open .hdr .brand-logo-light{display:block!important}.cy-hero{color:#111;background:#fbf6ef}.cy-panel{position:relative;overflow:hidden;min-height:78svh;background:#eee9d6;transition:background 1s ease}.cy-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 86% 80%,var(--cy-glow,#e1d36a),transparent 60%),radial-gradient(ellipse at 20% 110%,#ffffff99,transparent 60%);opacity:.6;transition:background 1s}.cy-inner{position:relative;padding:145px 7.8vw 80px;max-width:1600px;margin:auto}.cy-kicker{font-size:10px;letter-spacing:.17em;margin-bottom:30px;color:#515c63}.cy-inner h1{font-size:min(clamp(48px,6.6vw,100px),var(--type-title));line-height:.9;font-weight:500;letter-spacing:-.065em;margin:0}.cy-accessible{position:absolute;clip-path:inset(50%);height:1px;width:1px;overflow:hidden}.cy-words{display:block;height:1.08em;position:relative}.cy-slot{position:absolute;inset:0 auto auto 0;display:flex;align-items:center;gap:.17em;opacity:0;translate:0 .25em;filter:blur(8px);transition:opacity .45s,translate .45s,filter .45s}.cy-slot.is-active{opacity:1;translate:0 0;filter:blur(0)}.cy-slot svg{height:.9em;width:.9em;overflow:visible;filter:drop-shadow(0 10px 10px #39475d22);color:var(--cy-icon,#c2a02a)}.cy-fixed{display:block;letter-spacing:-.045em;word-spacing:.08em}.cy-fixed br{display:none}.cy-row{display:flex;gap:40px;align-items:center;margin-top:42px}.cy-actions{display:flex;gap:10px;flex-wrap:wrap;flex:none}.cy-actions a{display:inline-flex;align-items:center;min-height:48px;padding:13px 18px;border:1px solid #111;border-radius:8px;text-decoration:none;font-size:13px;letter-spacing:0;transition:background .2s,color .2s}.cy-actions .cy-primary{background:#111;color:#fff}.cy-actions a:hover{background:#6aa6da;color:#111}.cy-actions a:focus-visible,.cy-strip a:focus-visible{outline:3px solid #467fae;outline-offset:4px}.cy-row>p{font-size:14px;line-height:1.6;max-width:390px;color:#555b5a}.cy-strip{position:relative;display:flex;justify-content:space-between;gap:25px;align-items:center;padding:45px 7.8vw 50px;background:#fbf6ef}.cy-notch{position:absolute;left:0;bottom:100%;width:100%;height:44px;fill:#fbf6ef;pointer-events:none}.cy-strip>strong{font-size:24px;line-height:1.1;letter-spacing:-.04em;font-weight:500}.cy-strip a{display:flex;flex-direction:column;gap:8px;text-decoration:none}.cy-strip span{font-size:14px;font-weight:600;color:#326b94}.cy-strip a:hover span{text-decoration:underline;text-underline-offset:3px}@media(max-width:800px){.cy-inner{padding:120px 24px 65px}.cy-panel{min-height:0}.cy-inner h1{font-size:min(clamp(40px,9.5vw,68px),var(--type-title))}.cy-fixed{margin-top:8px}.cy-fixed br{display:block}.cy-row{display:block;margin-top:30px}.cy-actions{gap:9px}.cy-actions a{font-size:12px}.cy-row>p{margin-top:22px}.cy-strip{padding:30px 24px;display:grid;grid-template-columns:1fr 1fr;gap:30px}.cy-strip>strong{font-size:21px}}
@media(prefers-reduced-motion:reduce){.cy-panel,.cy-glow,.cy-slot{transition:none}}
.svc-cat>a{color:inherit;text-decoration:none}.svc-cat>a:hover{color:#467fae}.svc-cat>a:focus-visible,.svc-page-more a:focus-visible{outline:3px solid #467fae;outline-offset:5px}.svc-page-more{margin-top:28px}.svc-page-more a{display:inline-flex;gap:18px;align-items:center;padding:12px 18px;border:1px solid #1112;border-radius:30px;text-decoration:none;color:#326b94;font-size:13px}.svc-page-more a:hover{background:#e1e5ac;color:#111}

/* The animated hero has room for display type on wider screens. */
@media (min-width: 901px){
  .cy-inner h1{font-size:clamp(48px,6.6vw,100px)}
}


/* Services directory */
.svc-directory { scroll-margin-top: 88px; padding-block: 0; }
.svc-card-group { padding-block: clamp(32px, 4.5vw, 64px); }
.svc-card-group--core {
  background: #e5eff5;
  background: color-mix(in srgb, var(--cornflower) 17%, var(--mist));
}
.svc-card-group--supporting {
  background: #f1f2db;
  background: color-mix(in srgb, var(--amber) 38%, var(--mist));
}
.svc-card-heading { display: grid; gap: 8px; margin-bottom: 22px; }
.svc-card-heading h2 { font-size: clamp(27px, 3.2vw, 42px); }
.svc-card-heading p, .svc-card > p { color: var(--text-muted); }
.svc-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: start;
  gap: clamp(12px, 1.8vw, 24px);
  list-style: none;
  padding: 0;
  margin: 0;
}
.svc-card-grid li { min-width: 0; scroll-margin-top: 96px; }
.svc-card {
  --card-accent: var(--cornflower);
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(16px, 2vw, 26px);
  border: 1px solid var(--mist-blue);
  border-radius: 12px;
  background: var(--white);
  color: #111;
}
.svc-card--lime, .svc-card--paper { --card-accent: var(--amber); }
.svc-card--dark { --card-accent: var(--mist-blue); }
.svc-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--text-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
}
.svc-card .svc-icon {
  width: 38px;
  height: 38px;
  padding: 7px;
  border-radius: 8px;
  background: var(--card-accent);
  stroke: #111;
}
.svc-card h3 { font-size: clamp(19px, 2vw, 27px); line-height: 1.15; text-wrap: initial; }
.svc-card > p { font-size: 15px; line-height: 1.45; }
.svc-card-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 32px;
  padding-block: 5px;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.35;
}
.svc-card-action { align-self: flex-start; color: var(--teal); font-weight: 700; }
.svc-card a:hover { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
.svc-card a:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
@media (max-width: 900px) { .svc-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 540px) { .svc-card-grid { grid-template-columns: 1fr; } }

.svc-card-grid { grid-auto-rows: 1fr; align-items: stretch; }
.svc-card-grid > li { display: flex; }
.svc-card {
  width: 100%;
  min-block-size: var(--service-card-height, 0px);
}
.svc-card-action { margin-block-start: auto; }

/* Colour headers distinguish the services. */
.svc-directory { scroll-margin-top: 120px; }
.svc-card-group--core { background: #f7f4ed; }
.svc-card-group .svc-card-heading { padding-bottom: 18px; border-bottom: 1px solid #c9c9c4; }
.svc-card-group .svc-card {
  padding: 0;
  border-color: #dad8d2;
  background: #fffdfa;
}
.svc-card-banner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 11px 11px 0 0;
  display: grid;
  align-content: start;
  flex: 1 0 auto;
  gap: 8px;
  min-block-size: 205px;
  padding: clamp(17px, 2vw, 28px);
  color: #111;
  background: var(--cornflower);
}
.svc-card--dark .svc-card-banner { color: #fff; background: #1c1c1c; }
.svc-card--lime .svc-card-banner { background: var(--amber); }
.svc-banner-number { font-size: 28px; font-weight: 800; line-height: 1; }
.svc-card-banner h3 { font-weight: 800; }
.svc-card-banner p { font-size: 14px; line-height: 1.45; }
.svc-card-banner h3, .svc-card-banner p { max-inline-size: 82%; }
.svc-banner-art {
  position: absolute;
  z-index: -1;
  inset: auto -12px -12px auto;
  inline-size: clamp(82px, 9vw, 132px);
  fill: none;
  stroke: currentColor;
  stroke-width: 1.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .09;
  pointer-events: none;
}
.svc-card-group .svc-card-action {
  margin-inline: clamp(17px, 2vw, 28px);
  margin-block-end: 12px;
}
@media (max-width: 540px) {
  .svc-card-banner { min-block-size: 0; }
}

/* Keep the original card layout while extending its link to the whole card. */
.svc-card-group .svc-card { position: relative; }
.svc-card-banner { background: color-mix(in srgb, var(--cornflower) 84%, white); }
.svc-card--dark .svc-card-banner { background: #323232; }
.svc-card--lime .svc-card-banner { background: color-mix(in srgb, var(--amber) 78%, white); }
.svc-card-action::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: 12px;
}
.svc-card-action:focus-visible::before { outline: 2px solid var(--teal); outline-offset: 3px; }
