/* Shared glass controls: primary actions, navigation, article cards and contact dialog. */
.button,.button.light,.contact-modal__submit,.contact-modal__done{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid rgba(167,205,255,.86);
  border-radius:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.16),transparent 48%),linear-gradient(135deg,#246dF0,#0757ed 55%,#0643bb);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.78),inset 0 -2px 4px rgba(3,35,104,.16),0 8px 20px rgba(7,87,255,.19),0 0 0 1px rgba(7,87,255,.05);
  color:#fff;
  text-shadow:0 1px 2px rgba(3,35,104,.24);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  transition:transform .2s,box-shadow .2s,background .2s;
}
.button::before,.contact-modal__submit::before,.contact-modal__done::before{
  content:"";
  position:absolute;
  z-index:-1;
  top:2px;
  left:3px;
  right:3px;
  height:43%;
  border-radius:9px 9px 6px 6px;
  background:linear-gradient(180deg,rgba(255,255,255,.19),rgba(255,255,255,0));
  pointer-events:none;
}
.button:hover,.button.light:hover,.contact-modal__submit:not(:disabled):hover,.contact-modal__done:hover{
  background:linear-gradient(180deg,rgba(255,255,255,.18),transparent 48%),linear-gradient(135deg,#1e64df,#064edb 55%,#043ba7);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.85),inset 0 -2px 4px rgba(3,35,104,.15),0 11px 25px rgba(7,87,255,.25);
  transform:translateY(-2px);
}
.button:active,.contact-modal__submit:not(:disabled):active,.contact-modal__done:active{transform:translateY(0)}
.contact-modal__submit:disabled{opacity:.7;cursor:wait;transform:none}

.blog-button,.back-link,.post-link,.post-card>a,.service>a{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:11px 15px;
  border:1px solid rgba(153,187,239,.62);
  border-radius:11px;
  background:radial-gradient(ellipse at 20% 0%,rgba(255,255,255,.98),transparent 72%),linear-gradient(145deg,rgba(242,248,255,.94),rgba(218,234,255,.53));
  box-shadow:inset 0 1px 1px #fff,inset 0 -2px 4px rgba(79,135,218,.07),0 5px 13px rgba(28,80,158,.07);
  color:#164b98;
  line-height:1.4;
  text-decoration:none;
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  transition:transform .2s,box-shadow .2s,background .2s;
}
.blog-button span,.back-link span,.post-link span,.post-card>a span,.service>a span{color:inherit}
.blog-button:hover,.back-link:hover,.post-link:hover,.post-card>a:hover,.service>a:hover{
  border-color:rgba(114,162,235,.8);
  background:radial-gradient(ellipse at 20% 0%,#fff,transparent 72%),linear-gradient(145deg,#edf5ff,rgba(193,220,255,.7));
  box-shadow:inset 0 1px 1px #fff,0 8px 18px rgba(28,80,158,.12);
  color:#0845a8;
  transform:translateY(-2px);
}
.blog-button:hover span{color:inherit}
.post-card>a,.service>a{margin-top:auto}
.contact-modal__close{
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(153,187,239,.65);
  border-radius:12px;
  background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(218,234,255,.68));
  box-shadow:inset 0 1px 1px #fff,0 4px 10px rgba(28,80,158,.1);
  color:#164b98;
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  transition:background .2s,box-shadow .2s;
}
.contact-modal__close:hover,.contact-modal__close:focus-visible{background:linear-gradient(145deg,#fff,#dcecff);box-shadow:inset 0 1px 1px #fff,0 6px 14px rgba(28,80,158,.15)}
:is(.button,.blog-button,.back-link,.post-link,.post-card>a,.service>a,.contact-modal__submit,.contact-modal__done,.contact-modal__close):focus-visible{outline:3px solid #0757ff;outline-offset:4px}

/* Service symbols follow the same pale-glass / cobalt-glass hierarchy as the flows. */
.service-icon{
  line-height:1;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.98);
  border-radius:12px;
  background:radial-gradient(ellipse at 20% 0%,#fff,transparent 65%),linear-gradient(145deg,rgba(236,246,255,.95),rgba(154,196,255,.46));
  box-shadow:inset 0 1px 1px #fff,inset 0 -2px 5px rgba(69,129,218,.13),0 6px 13px rgba(45,103,189,.13),0 0 0 1px rgba(108,160,235,.2);
  color:#0757ed;
  text-shadow:0 1px 0 rgba(255,255,255,.9);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
}
.service-icon svg{display:block;width:26px;height:26px;overflow:visible;pointer-events:none}
.service-icon::before{content:"";position:absolute;z-index:-1;inset:2px 3px auto;height:43%;border-radius:9px;background:linear-gradient(180deg,rgba(255,255,255,.6),transparent);pointer-events:none}
.featured .service-icon{
  border-color:rgba(167,205,255,.9);
  background:linear-gradient(145deg,#4389f8,#0757ed 55%,#0643bb);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.85),inset 0 -2px 4px rgba(3,35,104,.16),0 7px 15px rgba(7,87,255,.22);
  color:#fff;
  text-shadow:0 1px 2px rgba(3,35,104,.2);
}
@media(max-width:480px){.back-link{padding:8px 10px;gap:7px}.blog-button{padding:8px 12px}}
@media(prefers-reduced-motion:reduce){.button,.blog-button,.back-link,.post-link,.post-card>a,.service>a,.contact-modal__submit,.contact-modal__done,.contact-modal__close{transition:none;transform:none}}
