/* GRPL Circular v1.2.7 — clean premium CTA system.
   Intentionally scoped: no global body/container/filter styles.
   One subtle outer border, no inner stroke, ring or circular arrow backing. */
.grpl-site .button.grpl-cta {
  --cta-ink:#ffffff;
  --cta-arrow:#ffffff;
  --cta-gradient-start:#1670A7;
  --cta-gradient-end:#075A91;
  position:relative;
  z-index:0;
  box-sizing:border-box;
  width:max-content;
  max-width:100%;
  min-width:0;
  min-height:54px;
  padding:13px clamp(17px,2vw,24px);
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:clamp(12px,1.35vw,18px);
  border:1px solid rgba(1,29,61,.12);
  border-radius:999px;
  background:linear-gradient(115deg,var(--cta-gradient-start),var(--cta-gradient-end));
  color:var(--cta-ink);
  box-shadow:0 4px 12px rgba(1,29,61,.13);
  text-decoration:none;
  text-align:center;
  font:650 clamp(13px,1vw,15px)/1.35 Inter,Arial,sans-serif;
  white-space:normal;
  cursor:pointer;
  user-select:none;
  filter:none;
  transform:translateY(0);
  transition:transform .23s cubic-bezier(.2,.7,.3,1),box-shadow .23s ease,
             background .23s ease,border-color .23s ease;
}
/* Remove the old double stroke / pseudo sheen from every existing CTA. */
.grpl-site .button.grpl-cta::before,
.grpl-site .button.grpl-cta::after,
.grpl-site .button.grpl-cta .grpl-cta__ring {content:none!important;display:none!important}
.grpl-site .button.grpl-cta .grpl-cta__text {
  display:block;
  position:relative;
  z-index:1;
  min-width:0;
  font:inherit;
  letter-spacing:0;
  line-height:inherit;
  color:inherit;
  overflow-wrap:break-word;
  text-wrap:pretty;
}
/* Arrow sits directly on the button surface — no circle, inset stroke, or shadow. */
.grpl-site .button.grpl-cta .grpl-cta__icon {
  position:relative;
  z-index:1;
  flex:0 0 21px;
  width:21px;
  height:21px;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  color:var(--cta-arrow);
  transition:transform .23s cubic-bezier(.2,.7,.3,1);
}
.grpl-site .button.grpl-cta .grpl-cta__icon svg {
  display:block;
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.55;
  stroke-linecap:round;
  stroke-linejoin:round;
  filter:none;
}
.grpl-site .button.grpl-cta:hover {
  transform:translateY(-2px);
  background:linear-gradient(115deg,#12659A,#034B81);
  color:var(--cta-ink);
  border-color:rgba(1,29,61,.16);
  box-shadow:0 6px 16px rgba(1,29,61,.17);
}
.grpl-site .button.grpl-cta:hover .grpl-cta__icon,
.grpl-site .button.grpl-cta:focus-visible .grpl-cta__icon {
  transform:translateX(4px);
}
.grpl-site .button.grpl-cta:active {
  transform:translateY(0) scale(.985);
  box-shadow:0 2px 7px rgba(1,29,61,.13);
}
.grpl-site .button.grpl-cta:focus-visible {
  outline:3px solid #1177B2;
  outline-offset:3px;
}
/* Secondary CTA: clean frosted surface, dark label and arrow, no internal lines. */
.grpl-site .button.outline.grpl-cta {
  --cta-ink:#02356C;
  --cta-arrow:#02356C;
  background:linear-gradient(115deg,#F9FCFF,#E6F0F8);
  border-color:rgba(2,53,108,.16);
  box-shadow:0 3px 10px rgba(1,29,61,.09);
}
.grpl-site .button.outline.grpl-cta:hover {
  background:linear-gradient(115deg,#F4F9FD,#D7E8F5);
  border-color:rgba(2,53,108,.23);
  color:#02356C;
  box-shadow:0 5px 14px rgba(1,29,61,.12);
}
/* Over the video, retain legibility and the two distinct CTA roles. */
.grpl-site .hero-video .button.grpl-cta {
  --cta-ink:#fff;
  --cta-arrow:#fff;
  background:linear-gradient(115deg,#1670A7,#075A91);
  border-color:rgba(255,255,255,.18);
  color:var(--cta-ink);
}
.grpl-site .hero-video .button.grpl-cta:hover {
  background:linear-gradient(115deg,#12659A,#034B81);
  border-color:rgba(255,255,255,.24);
  color:var(--cta-ink);
}
.grpl-site .hero-video .button.outline.grpl-cta {
  --cta-ink:#02356C;
  --cta-arrow:#02356C;
  background:linear-gradient(115deg,rgba(255,255,255,.98),rgba(226,239,248,.96));
  border-color:rgba(255,255,255,.42);
  color:var(--cta-ink);
}
.grpl-site .hero-video .button.outline.grpl-cta:hover {
  background:linear-gradient(115deg,#FFFFFF,#D8E8F5);
  border-color:rgba(255,255,255,.7);
  color:#02356C;
}
/* Navigation CTA: slightly compact, consistent arrow weight and contrast. */
.grpl-site .primary-nav a.button.small.grpl-cta {
  --cta-ink:#fff;
  --cta-arrow:#fff;
  width:max-content;
  max-width:100%;
  min-width:0;
  min-height:43px;
  padding:10px 17px;
  gap:12px;
  font-size:12px;
  color:#fff;
  background:linear-gradient(115deg,#1670A7,#075A91);
  border-color:rgba(1,29,61,.12);
  box-shadow:0 3px 9px rgba(1,29,61,.12);
}
.grpl-site .primary-nav a.button.small.grpl-cta:hover {
  background:linear-gradient(115deg,#12659A,#034B81);
  color:#fff;
  border-color:rgba(1,29,61,.16);
  box-shadow:0 5px 12px rgba(1,29,61,.16);
}
.grpl-site .primary-nav a.button.small.grpl-cta .grpl-cta__icon,
.grpl-site .primary-nav a.button.small.grpl-cta .grpl-cta__icon svg {
  width:19px;height:19px;flex-basis:19px;
}
@media(max-width:900px){
  .grpl-site .button.grpl-cta {min-height:51px;padding:12px 17px;font-size:13px;gap:12px}
  .grpl-site .button.grpl-cta .grpl-cta__icon,
  .grpl-site .button.grpl-cta .grpl-cta__icon svg {width:20px;height:20px;flex-basis:20px}
  .grpl-site .primary-nav a.button.small.grpl-cta {min-height:44px;min-width:0;align-self:flex-start;font-size:13px;padding:10px 16px}
}
@media(max-width:480px){
  .grpl-site .button.grpl-cta {max-width:100%;min-height:50px;padding:11px 16px;gap:11px}
  .grpl-site .hero-video .actions .button.grpl-cta {width:100%;min-width:0;justify-content:space-between;text-align:left}
  .grpl-site .cta-panel .button.grpl-cta,
  .grpl-site .enquiry-form .button.grpl-cta {max-width:100%}
}
@media(prefers-reduced-motion:reduce){
  .grpl-site .button.grpl-cta,
  .grpl-site .button.grpl-cta .grpl-cta__icon {transition:none!important;transform:none!important}
}
