/* Small profile links borrow the approved PixelEngel interaction, in Deniz red. */
.site-nav .nav-cta .nav-cta-label { font: inherit; margin: 0; }
.social-links { display: flex; align-items: center; width: fit-content; gap: 8px; margin-top: 20px; margin-left: -8px; }
.linkedin-link { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border-radius: 4px; color: var(--ink); text-decoration: none; transition: color 160ms ease; }
.linkedin-link svg { width: 28px; height: 28px; fill: currentColor; }
.linkedin-link:hover, .linkedin-link:focus-visible, .linkedin-link:active { color: var(--red); }
.site-footer .linkedin-link { color: #fff; }
.site-footer .linkedin-link:hover, .site-footer .linkedin-link:focus-visible, .site-footer .linkedin-link:active { color: var(--red); }
.footer-brand .linkedin-link { margin-left: 8px; }
@media (min-width: 601px) and (max-width: 900px) { .person-intro .social-links { grid-column: 2; } }

.calendar-launcher { --launcher-bg: #fff; position: fixed; right: max(24px, env(safe-area-inset-right)); bottom: max(24px, env(safe-area-inset-bottom)); z-index: 55; display: grid; place-items: center; width: 56px; height: 56px; padding: 0; border: 1px solid var(--red); border-radius: 50%; color: var(--red); background: var(--launcher-bg); box-shadow: 0 5px 24px #11101020; transition: color 160ms ease, background-color 160ms ease, transform 160ms ease; }
.calendar-launcher:hover { --launcher-bg: var(--red); color: #fff; transform: translateY(-2px); }
.calendar-launcher:active { transform: none; }
.appointment-dialog { --widget-top: calc(var(--nav) + 16px); --widget-bottom: max(92px, calc(env(safe-area-inset-bottom) + 68px)); position: fixed; inset: auto max(24px, env(safe-area-inset-right)) var(--widget-bottom) auto; width: min(392px, calc(100vw - 24px)); height: min(620px, calc(100dvh - var(--widget-top) - var(--widget-bottom))); max-width: none; max-height: none; margin: 0; padding: 0; overflow: hidden; border: 1px solid #11101026; border-top: 2px solid var(--red); border-radius: 12px; background: #fff; color: var(--ink); box-shadow: 0 18px 60px #11101024; font-family: var(--body); }
.appointment-dialog[open] { display: flex; flex-direction: column; animation: appointment-appear 220ms cubic-bezier(.22,.61,.36,1); }
.appointment-dialog::backdrop { background: #1110100a; }
.appointment-header { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 8px; padding: 14px 12px 14px 18px; }
.appointment-identity { display: flex; align-items: center; gap: 12px; min-width: 0; }
.appointment-identity .crosshair { color: var(--red); --size: 24px; }
.appointment-identity h2 { font: 400 25px/1.15 var(--display); letter-spacing: 0; margin: 0 0 6px; max-width: none; }
.appointment-identity p { font: 400 12px/1.5 var(--body); margin: 0; color: #514c49; }
.appointment-close { flex: 0 0 44px; width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 50%; color: var(--ink); background: #f4f4f4; }
.appointment-close:hover { color: var(--red); background: #fff0ef; }
.appointment-content { position: relative; flex: 1 1 auto; min-height: 0; background: #fff; }
.appointment-frame-mount, .appointment-frame-mount > iframe { width: 100%; height: 100%; border: 0; display: block; }
.appointment-status, .appointment-error { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 16px; padding: 24px; text-align: center; font-size: 15px; background: #fff; color: #514c49; }
.appointment-status p, .appointment-error p { margin: 0; }
.appointment-error a { min-height: 44px; display: inline-flex; align-items: center; font-size: 14px; text-underline-offset: 4px; }
.appointment-retry { min-height: 44px; border: 1px solid var(--ink); border-radius: 2px; padding: 10px 18px; background: var(--ink); color: #fff; font-size: 14px; }
.appointment-retry:hover { background: var(--red); border-color: var(--red); }
.appointment-spinner { width: 26px; height: 26px; border: 2px solid #ddd; border-top-color: var(--red); border-radius: 50%; animation: appointment-turn 900ms linear infinite; }
@keyframes appointment-appear { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes appointment-turn { to { transform: rotate(360deg); } }
@media (max-width: 600px) {
  .calendar-launcher { right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); width: 52px; height: 52px; }
  .appointment-dialog { --widget-bottom: max(80px, calc(env(safe-area-inset-bottom) + 64px)); right: max(12px, env(safe-area-inset-right)); height: min(620px, calc(100dvh - var(--widget-top) - var(--widget-bottom))); }
  .appointment-identity h2 { font-size: 24px; }
  .appointment-identity .crosshair { display: none; }
  .site-footer { padding-bottom: 94px; }
}
@media (max-height: 620px) { .appointment-dialog { --widget-bottom: max(12px, env(safe-area-inset-bottom)); } }
@media (prefers-reduced-motion: reduce) { .linkedin-link, .calendar-launcher { transition: none; } .appointment-dialog[open], .appointment-spinner { animation: none; } }
@media print { .calendar-widget { display: none !important; } }
