/* Omid Fard Portfolio | Premium controls v1
   Scoped polish for CTAs and card surfaces.
   Maintains existing HTML structure, image treatments and layout. */
:root {
  --omid-action-start: #1c59cb;
  --omid-action-end: #243b9a;
  --omid-action-hover-start: #1648ad;
  --omid-action-hover-end: #182d80;
  --omid-action-shadow: rgba(25, 64, 153, .22);
  --omid-action-ring: #92cafa;
}

/* Main buttons - clear contrast and consistently sized targets */
:is(a.btn, button.btn, a.project-link-btn, a.social-btn) {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  text-decoration: none;
  min-height: 44px;
  border-radius: 13px;
  font-family: inherit;
  font-weight: 750;
  font-size: 14px;
  line-height: 1.35;
  letter-spacing: .005em;
  padding: 12px 19px;
  border: 1px solid transparent;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  max-width: 100%;
  white-space: normal;
  text-align: center;
  transition: background-color .18s ease, border-color .18s ease,
              box-shadow .18s ease, transform .18s ease;
}

:is(a.btn-gradient, button.btn-gradient, a.project-link-btn, a.social-btn.accent, a.social-btn.hope) {
  background: linear-gradient(115deg, var(--omid-action-start), var(--omid-action-end));
  color: #fff !important;
  border-color: rgba(255,255,255,.14);
  box-shadow: 0 7px 18px var(--omid-action-shadow),
              inset 0 1px rgba(255,255,255,.19);
  text-shadow: none;
}
:is(a.btn-gradient, button.btn-gradient, a.project-link-btn, a.social-btn.accent, a.social-btn.hope):hover {
  background: linear-gradient(115deg, var(--omid-action-hover-start), var(--omid-action-hover-end));
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 11px 23px rgba(23, 56, 139, .27),
              inset 0 1px rgba(255,255,255,.16);
}
:is(a.btn-gradient, button.btn-gradient, a.project-link-btn, a.social-btn.accent, a.social-btn.hope):active {
  transform: translateY(0);
  box-shadow: 0 4px 12px rgba(23,56,139,.19);
}

/* Header CTA is compact to remain balanced beside navigation. */
.site-header .header-cta {
  padding-inline: 17px;
  font-size: 13px;
  min-height: 43px;
  border-radius: 12px;
}

/* Outline button for dark hero surface. */
.hero .btn-outline {
  background: rgba(255, 255, 255, .08);
  color: #fff !important;
  border: 1px solid rgba(214, 233, 255, .42);
  box-shadow: 0 5px 14px rgba(1, 12, 40, .10);
  backdrop-filter: blur(5px);
}
.hero .btn-outline:hover {
  background: rgba(255, 255, 255, .16);
  border-color: rgba(229, 240, 255, .8);
  transform: translateY(-2px);
}

/* Secondary social actions, consistent but with platform identity. */
a.social-btn:not(.accent):not(.hope):not(.linkedin) {
  background: #203452;
  color: #fff;
  border-color: #203452;
  box-shadow: 0 6px 15px rgba(23, 46, 81, .15);
}
a.social-btn:not(.accent):not(.hope):not(.linkedin):hover {
  background: #152942;
  transform: translateY(-2px);
}
a.social-btn.linkedin {
  background: #085b97;
  color: #fff;
  border-color: #085b97;
  box-shadow: 0 6px 15px rgba(8, 91, 151, .16);
}
a.social-btn.linkedin:hover {
  background: #064c81;
  transform: translateY(-2px);
}

/* Light surface links that should read as links, not bright blocks. */
.section-head > a,
.project-body > a:not(.project-link-btn) {
  color: #174eac;
  text-underline-offset: .23em;
  transition: color .18s ease;
}
.section-head > a:hover,
.project-body > a:not(.project-link-btn):hover {
  color: #0d367f;
  text-decoration: underline;
}

/* Gentle, consistent card borders/shadows (no image or content changes). */
:is(.service.card, .project.card, .featured-project.card, .domain-card, .contact-card, .contact-form) {
  border-color: #dce6f2;
  box-shadow: 0 7px 25px rgba(20, 42, 75, .055);
}

/* Keyboard visibility on both dark and light backgrounds. */
:is(a.btn, button.btn, a.project-link-btn, a.social-btn, .mini-socials a):focus-visible {
  outline: 3px solid var(--omid-action-ring);
  outline-offset: 3px;
}

@media (max-width: 640px) {
  :is(a.btn, button.btn, a.project-link-btn, a.social-btn) {
    min-height: 46px;
    padding: 12px 16px;
    font-size: 14px;
  }
  .hero-actions .btn { flex: 1 1 145px; }
  .freelance-actions .social-btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  :is(a.btn, button.btn, a.project-link-btn, a.social-btn) {
    transition: none !important;
    transform: none !important;
  }
}
