@property --spark-shift {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 0%;
}

:root {
  --blue: #3e4198;
  --blue2: #30337d;
  --green: #5cbb4d;
  --lime: #5cbb4d;
  --spark-gold: #e2b95e;
  --spark-pale-gold: #f5dda0;
}

.utility-bar { color: rgba(255, 255, 255, .94); background: linear-gradient(105deg, #22245a 0%, #343787 32%, #5053a8 68%, #2b2e70 100%); box-shadow: inset 0 -1px rgba(255, 255, 255, .14); }
.utility-inner { min-height: 38px; }
.utility-links a { opacity: .92; transition: opacity .2s ease, color .2s ease; }
.utility-links a:hover { color: #fff; opacity: 1; }
.utility-bar + .site-header .header-inner { padding-top: 8px; }
.section.tint { background: linear-gradient(135deg, #f7f7fc, #f5faf3); }
.section.dark { background: radial-gradient(circle at 85% 10%, rgba(92, 187, 77, .2), transparent 29%), #292c6b; }

.header-inner { min-height: 100px; }
.brand { margin-block: 8px; }
.brand img { width: 163px; height: 84px; object-fit: contain; image-rendering: auto; }
.mobile-menu-head img { width: 150px; height: auto; padding: 7px 10px; border-radius: 10px; background: #fff; filter: none; }
.footer-brand img.footer-accreditation { width: 154px; height: 105px; margin-bottom: 20px; padding: 10px 12px; object-fit: contain; border: 1px solid rgba(255, 255, 255, .72); border-radius: 10px; background: #fff; filter: none; }

.button { background: linear-gradient(135deg, #3e4198, #5558aa); box-shadow: 0 12px 28px rgba(62, 65, 152, .2); }
.button.green { color: #fff; background: linear-gradient(135deg, #4a9c40, #5cbb4d); }
.hero-dot.is-active { background: #5cbb4d; }
.dropdown a:hover,
.dropdown a[aria-current=page] { color: #30337d; background: #f0f0fa; }
.nav-link { font-size: calc(.91rem + 1pt); }
.dropdown a { font-size: calc(.9rem + 1pt); }
.mobile-nav a { font-size: calc(1.12rem + 1pt); }
.mobile-nav .child { font-size: calc(.95rem + 1pt); }

.hero { background: linear-gradient(145deg, #fbfbfe, #f1f2fb 48%, #f3faf1); }
.hero:before { background: radial-gradient(circle, rgba(62, 65, 152, .13), transparent 67%); }
.hero:after { background: radial-gradient(circle, rgba(92, 187, 77, .12), transparent 66%); }
.hero-line {
  opacity: .48;
  background: linear-gradient(transparent, rgba(255, 255, 255, .2), var(--spark-pale-gold), #fff, rgba(226, 185, 94, .55), transparent);
  box-shadow: none;
  animation-duration: var(--line-duration, 24s);
  animation-delay: var(--line-delay, -7s);
  animation-timing-function: linear;
}
.hero-line:nth-child(1) { --line-duration: 27s; --line-delay: -11s; }
.hero-line:nth-child(2) { --line-duration: 31s; --line-delay: -23s; }
.hero-line:nth-child(3) { --line-duration: 23s; --line-delay: -4s; }
.hero-line:nth-child(4) { --line-duration: 29s; --line-delay: -18s; top: 22%; left: 5%; width: 46%; height: 1px; transform: rotate(-8deg); }
.hero-line:nth-child(5) { --line-duration: 34s; --line-delay: -8s; top: 52%; left: 52%; width: 38%; height: 1px; transform: rotate(12deg); }
.hero-line:nth-child(6) { --line-duration: 26s; --line-delay: -21s; top: 78%; left: 31%; width: 56%; height: 1px; transform: rotate(-4deg); }

.hero-visual {
  --hero-radius: 36px;
  overflow: hidden;
  border-radius: var(--hero-radius);
  isolation: isolate;
  box-shadow: none;
  contain: paint;
  clip-path: inset(0 round var(--hero-radius));
}
.hero-visual:before,
.media-frame:before,
.video-shell:after,
.outlet-card:before,
.brand-logo:before,
.cert-frame:before,
.store-logo-wrap:before {
  position: absolute;
  z-index: 8;
  inset: 0;
  padding: 2px;
  border-radius: inherit;
  pointer-events: none;
  content: "";
  opacity: .72;
  background: linear-gradient(90deg, transparent 0 36%, rgba(255, 255, 255, .92) 44%, var(--spark-gold) 50%, #fff 55%, transparent 64%) var(--spark-shift) 0 / 260% 100%;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: spark-border var(--spark-duration, 22s) linear var(--spark-delay, -5s) infinite;
  box-shadow: none;
}
.hero-visual { --spark-duration: 19s; --spark-delay: -7s; }
.hero-visual:before { padding: 3px; opacity: .82; }
.hero-shine {
  position: absolute;
  z-index: 4;
  top: -24%;
  bottom: -24%;
  left: -42%;
  width: 32%;
  opacity: 0;
  pointer-events: none;
  background: linear-gradient(105deg, transparent 0 24%, rgba(255, 255, 255, .06) 35%, rgba(245, 221, 160, .42) 48%, rgba(255, 255, 255, .54) 53%, rgba(255, 255, 255, .08) 65%, transparent 76%);
  mix-blend-mode: screen;
  filter: blur(1px);
  transform: translate3d(-20%, 0, 0) skewX(-16deg);
  will-change: transform, opacity;
}
.hero-shine.is-active { animation: hero-shine-pass var(--shine-duration, 3.2s) cubic-bezier(.22, .62, .36, 1) both; }
.hero-caption { z-index: 5; }
.media-frame { --spark-duration: 26s; --spark-delay: -17s; }
.video-shell { --spark-duration: 29s; --spark-delay: -8s; }
.outlet-card:nth-child(4n + 1) { --spark-duration: 23s; --spark-delay: -4s; }
.outlet-card:nth-child(4n + 2) { --spark-duration: 28s; --spark-delay: -19s; }
.outlet-card:nth-child(4n + 3) { --spark-duration: 25s; --spark-delay: -11s; }
.outlet-card:nth-child(4n) { --spark-duration: 31s; --spark-delay: -25s; }
.brand-logo:nth-child(6n + 1) { --spark-duration: 27s; --spark-delay: -3s; }
.brand-logo:nth-child(6n + 2) { --spark-duration: 32s; --spark-delay: -21s; }
.brand-logo:nth-child(6n + 3) { --spark-duration: 24s; --spark-delay: -14s; }
.brand-logo:nth-child(6n + 4) { --spark-duration: 30s; --spark-delay: -7s; }
.brand-logo:nth-child(6n + 5) { --spark-duration: 26s; --spark-delay: -18s; }
.brand-logo:nth-child(6n) { --spark-duration: 34s; --spark-delay: -27s; }
.cert-frame { --spark-duration: 30s; --spark-delay: -13s; }
.store-logo-wrap { --spark-duration: 25s; --spark-delay: -9s; }

@keyframes spark-border { to { --spark-shift: 260%; } }
@keyframes hero-shine-pass {
  0% { opacity: 0; transform: translate3d(-20%, 0, 0) skewX(-16deg); }
  18% { opacity: .12; }
  48% { opacity: .72; }
  82% { opacity: .14; }
  100% { opacity: 0; transform: translate3d(520%, 0, 0) skewX(-16deg); }
}

.hero-slide {
  z-index: 0;
  opacity: 0;
  border-radius: inherit;
  transform: translate3d(0, 0, 0) scale(1.035);
  filter: saturate(.98) contrast(1.01);
  backface-visibility: hidden;
  will-change: opacity, transform;
  transition: opacity 1.85s cubic-bezier(.22, .61, .36, 1), filter 1.85s ease;
}
.hero-slide.is-active {
  z-index: 2;
  opacity: 1;
  animation: slide-breathe var(--slide-duration, 10.8s) cubic-bezier(.2, .62, .3, 1) both;
  filter: saturate(1.02) contrast(1.015);
}
.hero-slide:nth-child(even).is-active { animation-name: slide-drift-alt; }
.hero-slide.is-leaving { z-index: 1; opacity: 0; animation: none; transform: translate3d(0, 0, 0) scale(1.015); }
@keyframes slide-breathe {
  from { transform: translate3d(-.7%, .35%, 0) scale(1.045); }
  to { transform: translate3d(0, 0, 0) scale(1.008); }
}
@keyframes slide-drift-alt {
  from { transform: translate3d(.75%, -.35%, 0) scale(1.04); }
  to { transform: translate3d(0, 0, 0) scale(1.006); }
}

.floating-stat { display: none !important; }
.contact-fab {
  bottom: 30px;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .42);
  background: linear-gradient(135deg, #30337d 0%, #3e4198 56%, #595cab 100%);
  box-shadow: 0 12px 30px rgba(43, 47, 112, .24);
  letter-spacing: .01em;
  animation: fab-float 9.5s ease-in-out -2.3s infinite;
}
.contact-fab:before,
.contact-fab:after { border-color: rgba(255, 255, 255, .52); animation-duration: 8.8s; }
.contact-fab:after { border-color: rgba(226, 185, 94, .48); animation-delay: -4.9s; animation-duration: 11.7s; }
.contact-fab.is-jumping,
.contact-fab.is-wobbling { animation: fab-float 9.5s ease-in-out infinite; }
@keyframes fab-float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -3px, 0); }
}

.mobile-menu { background: rgba(40, 43, 105, .98); }
.site-footer { background: #282b69; }
.footer-title { color: #fff; }
.footer-links a:hover { color: #8ad07f; }
.hero-kicker span:before { display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-radius: 50%; background: #5cbb4d; content: ""; }
.service-card { min-height: 305px; padding: 30px; border-top: 3px solid #3e4198; }
.service-card:after { background: linear-gradient(135deg, rgba(62, 65, 152, .1), rgba(92, 187, 77, .15)); }
.service-index { display: inline-flex; margin-bottom: 42px; color: #3e4198; font-size: .82rem; font-weight: 900; letter-spacing: .16em; }
.service-index:after { width: 42px; height: 1px; margin: 11px 0 0 11px; background: #3e4198; content: ""; }
.number { background: linear-gradient(135deg, #3e4198, #5a5dad); }
.person-visual { background: linear-gradient(145deg, #f0f0fa, #eff8ed); }
.form-status { color: #478f3c; }

.media-frame,
.video-shell,
.outlet-card,
.brand-logo,
.store-logo-wrap { position: relative; isolation: isolate; }
.media-frame,
.video-shell { border: 1px solid rgba(62, 65, 152, .18); box-shadow: none; }
.outlet-card:before { border-radius: 24px; }
.brand-logo { overflow: hidden; border-radius: 14px; }
.brand-logo:before { padding: 1px; }
.store-logo-wrap { display: flex; width: min(210px, 100%); height: 62px; align-items: center; padding: 9px 12px; overflow: hidden; border: 1px solid #e0e2ee; border-radius: 12px; background: #fff; }
.store-logo-wrap.eyez-logo-card { border-color: #000; background: #000; }
.store-logo { width: 100%; max-height: 44px; object-fit: contain; }
.store-identity { display: grid; gap: 13px; }
.store-identity h3 { margin: 0; font-size: clamp(1.28rem, 1.8vw, 1.72rem); }
.store-row { grid-template-columns: minmax(340px, 1.55fr) minmax(250px, 1fr) minmax(150px, .55fr); gap: clamp(20px, 3vw, 44px); padding: 26px; }
.store-row address { font-size: .86rem; line-height: 1.65; }
.store-contact { font-weight: 700; }

.interior-hero { isolation: isolate; background-color: #292c6b; background-position: center; background-size: cover; background-repeat: no-repeat; }
.interior-hero:before { z-index: 1; background: linear-gradient(100deg, rgba(32, 34, 86, .74), rgba(62, 65, 152, .48) 48%, rgba(25, 27, 72, .22)); }
.interior-hero:after {
  z-index: 1;
  inset: -20%;
  background: radial-gradient(ellipse at 80% 44%, transparent 0 16%, rgba(245, 221, 160, .24) 16.2%, transparent 16.7%), radial-gradient(ellipse at 78% 45%, transparent 0 27%, rgba(255, 255, 255, .13) 27.2%, transparent 27.7%);
  animation: health-orbit 24s ease-in-out -8s infinite alternate;
}
.interior-hero .hero-lines:before,
.interior-hero .hero-lines:after {
  position: absolute;
  width: 52vw;
  height: 18vw;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 50%;
  content: "";
  animation: eye-line 34s linear -14s infinite;
}
.interior-hero .hero-lines:before { top: 4%; right: -12%; border-color: rgba(245, 221, 160, .38); }
.interior-hero .hero-lines:after { right: 2%; bottom: -14%; border-color: rgba(255, 255, 255, .24); animation-direction: reverse; animation-duration: 43s; animation-delay: -29s; }
.interior-hero .hero-line { opacity: .54; }
.interior-hero .hero-line:nth-child(4) { top: 19%; left: 42%; width: 52%; --line-duration: 30s; --line-delay: -17s; }
.interior-hero .hero-line:nth-child(5) { top: 51%; left: 55%; width: 38%; --line-duration: 37s; --line-delay: -9s; }
.interior-hero .hero-line:nth-child(6) { top: 78%; left: 28%; width: 64%; --line-duration: 33s; --line-delay: -25s; }
@keyframes health-orbit { to { transform: translate3d(-1.6%, 1.1%, 0) scale(1.018); } }
@keyframes eye-line { to { transform: translate3d(-8%, 2%, 0) rotate(360deg); } }

.cert-frame { position: relative; display: grid; min-height: 360px; place-items: center; padding: 34px; overflow: hidden; border: 1px solid rgba(62, 65, 152, .18); border-radius: 24px; background: #fff; isolation: isolate; }
.cert-frame img { max-width: min(360px, 80%); }
.service-card:hover,
.content-card:hover,
.outlet-card:hover,
.person-card:hover,
.legal-card:hover { border-color: rgba(62, 65, 152, .36); }
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: #3e4198; box-shadow: 0 0 0 4px rgba(62, 65, 152, .12); }

@media (max-width: 1000px) {
  .store-row { grid-template-columns: minmax(260px, 1.35fr) minmax(220px, 1fr); }
  .store-contact { grid-column: 2; text-align: left; }
}

@media (max-width: 860px) {
  .header-inner { min-height: 86px; }
  .utility-bar + .site-header .header-inner { padding-top: 0; }
  .brand { margin-block: 6px; }
  .brand img { width: 148px; height: auto; }
}

@media (max-width: 620px) {
  .header-inner { min-height: 78px; }
  .brand { margin-block: 5px; }
  .brand img { width: 132px; height: auto; }
  .contact-fab { bottom: 26px; width: auto; padding: 0 16px; }
  .contact-fab span { position: static; width: auto; height: auto; overflow: visible; clip: auto; font-size: .76rem; }
  .store-row { grid-template-columns: 1fr; }
  .store-contact { grid-column: auto; }
  .store-logo-wrap { width: 190px; }
  .hero-visual { --hero-radius: 24px; }
  .interior-hero .hero-lines:before,
  .interior-hero .hero-lines:after { width: 90vw; height: 34vw; }
  .service-card { min-height: 280px; }
  .footer-brand img.footer-accreditation { width: 142px; height: 98px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide.is-active,
  .hero-shine,
  .hero-line,
  .hero-visual:before,
  .media-frame:before,
  .video-shell:after,
  .outlet-card:before,
  .brand-logo:before,
  .cert-frame:before,
  .store-logo-wrap:before,
  .interior-hero:after,
  .interior-hero .hero-lines:before,
  .interior-hero .hero-lines:after,
  .contact-fab,
  .contact-fab:before,
  .contact-fab:after { animation: none !important; }
}
