/* ============================================================
   Юлия Жувагина — Психолог · Клинический психолог · Геронтолог
   Global styles: fonts, resets, keyframes, hovers.
   All layout & color styles are inline on the HTML elements.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Work+Sans:wght@300;400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');

html { font-size: 100%; }

body {
  margin: 0;
  background: #F7F4EE;
  font-family: 'Work Sans', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  color: #2C2A24;
  font-size: 18px;
  line-height: 1.5;
}

* { box-sizing: border-box; }
img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }
a:hover { opacity: 0.75; }

/* Cards & buttons — subtle hover */
.card-hoverable { transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 180ms cubic-bezier(0.16, 1, 0.3, 1); }
.card-hoverable:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(31, 26, 23, 0.1); }

.diploma-card { transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1), box-shadow 180ms cubic-bezier(0.16, 1, 0.3, 1); cursor: pointer; }
.diploma-card:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(31, 26, 23, 0.1); }

/* FAQ item */
.faq-item { cursor: pointer; border-bottom: 1px solid rgba(31, 26, 23, 0.1); padding: 22px 0; }
.faq-item .faq-answer { display: none; margin: 14px 0 0; padding-right: 60px; font-size: 16px; line-height: 1.6; color: #4A3F35; }
.faq-item.is-open .faq-answer { display: block; }
.faq-item .faq-icon::before { content: '+'; }
.faq-item.is-open .faq-icon::before { content: '−'; }

/* Lightbox */
.lightbox {
  position: fixed; inset: 0;
  background: rgba(20, 14, 10, 0.88);
  backdrop-filter: blur(8px);
  z-index: 1000;
  display: none;
  align-items: center; justify-content: center;
  padding: 40px;
  cursor: zoom-out;
  animation: fadeIn 0.2s ease-out;
}
.lightbox.is-open { display: flex; }
.lightbox-close { position: absolute; top: 32px; right: 40px; color: #F7F4EE; font-size: 40px; cursor: pointer; font-family: 'Instrument Serif', Georgia, serif; line-height: 1; }
.lightbox-inner { max-width: 92vw; max-height: 92vh; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.lightbox-inner img { max-width: 100%; max-height: 78vh; object-fit: contain; border-radius: 4px; box-shadow: 0 40px 80px rgba(0, 0, 0, 0.5); }
.lightbox-caption { text-align: center; color: #F7F4EE; }
.lightbox-caption .t { font-family: 'Instrument Serif', Georgia, serif; font-size: 24px; margin-bottom: 4px; }
.lightbox-caption .m { font-size: 14px; color: #B8AF9A; }

/* Availability dot pulse */
.pulse-dot { animation: pulseDot 1.6s infinite ease-in-out; }

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes pulseDot { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }

/* Form focus */
input:focus, textarea:focus {
  outline: 2px solid #5B6E4E;
  outline-offset: 1px;
  border-color: #5B6E4E !important;
}
