/* Публичная страница мастера — премиальный вид.
   Темы задаются классом на <body>: light / dark / rose / mint. */

* { box-sizing: border-box; margin: 0; padding: 0; }

body.page {
  font-family: 'Manrope', -apple-system, "Segoe UI", Roboto, sans-serif;
  line-height: 1.55; min-height: 100vh;
  display: flex; flex-direction: column; align-items: center;
  padding: 22px 16px 96px;
  background: var(--pg-bg); color: var(--pg-ink);
  -webkit-font-smoothing: antialiased;
}

/* темы: accent + accent-2 задают фирменный градиент страницы */
.theme-light { --pg-bg: #f3f4f9; --pg-ink: #16162b; --pg-card: #fff; --pg-muted: #6d7280; --pg-accent: #5b5bd6; --pg-accent-2: #9f7aea; --pg-line: #e8e8f1; --pg-glow: rgba(91,91,214,0.22); }
.theme-dark  { --pg-bg: #121219; --pg-ink: #f2f2f7; --pg-card: #1d1d29; --pg-muted: #9a9ab0; --pg-accent: #8c8cf0; --pg-accent-2: #c084fc; --pg-line: #2e2e42; --pg-glow: rgba(140,140,240,0.30); }
.theme-rose  { --pg-bg: #fcf1f6; --pg-ink: #3b1e2d; --pg-card: #fff; --pg-muted: #9c7386; --pg-accent: #d6538b; --pg-accent-2: #f0a058; --pg-line: #f3dce7; --pg-glow: rgba(214,83,139,0.22); }
.theme-mint  { --pg-bg: #edf9f4; --pg-ink: #123c30; --pg-card: #fff; --pg-muted: #5f8a7c; --pg-accent: #2fa98c; --pg-accent-2: #57c7e3; --pg-line: #d5eee5; --pg-glow: rgba(47,169,140,0.22); }

/* фоновое сияние сверху страницы */
body.page::before {
  content: ""; position: fixed; inset: -40% -20% auto -20%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, var(--pg-glow), transparent 65%);
  pointer-events: none; z-index: 0;
}

.sheet { width: 100%; max-width: 480px; position: relative; z-index: 1; }

/* появление блоков каскадом */
@keyframes rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.p-card      { animation: rise 0.55s cubic-bezier(.22,.9,.3,1) both; }
.p-contacts  { animation: rise 0.55s cubic-bezier(.22,.9,.3,1) 0.10s both; }
.p-section   { animation: rise 0.55s cubic-bezier(.22,.9,.3,1) 0.18s both; }
.p-section + .p-section { animation-delay: 0.26s; }
.owner-bar   { animation: rise 0.55s 0.3s both; }

/* ---------- карточка с обложкой ---------- */

.p-card {
  background: var(--pg-card);
  border: 1px solid var(--pg-line);
  border-radius: 26px; overflow: hidden; margin-bottom: 16px;
  box-shadow: 0 1px 2px rgba(10,10,40,0.04), 0 16px 48px -12px var(--pg-glow);
}

@keyframes coverPan {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}
.p-cover {
  height: 148px; position: relative;
  background: linear-gradient(115deg, var(--pg-accent), var(--pg-accent-2), var(--pg-accent));
  background-size: 240% 240%;
  animation: coverPan 14s ease-in-out infinite alternate;
}
.p-cover[style] { animation: none; background-size: cover; background-position: center; }
.preset-g1 { background-image: linear-gradient(115deg, #5b5bd6, #9f7aea, #6ea8f0, #5b5bd6); }
.preset-g2 { background-image: linear-gradient(115deg, #ec5f9b, #f0a058, #f06292, #ec5f9b); }
.preset-g3 { background-image: linear-gradient(115deg, #2fa98c, #7ed0b0, #57c7e3, #2fa98c); }
.preset-g4 { background-image: linear-gradient(115deg, #23233a, #4b4b7a, #7a5ba6, #23233a); }
.p-cover-fade {
  position: absolute; inset: auto 0 0 0; height: 64px;
  background: linear-gradient(to top, rgba(0,0,0,0.18), transparent);
}

.p-head { text-align: center; padding: 0 22px 26px; margin-top: -54px; position: relative; }

/* аватар в градиентном кольце */
.p-avatar-ring {
  display: inline-flex; padding: 4px; border-radius: 50%;
  background: conic-gradient(from 210deg, var(--pg-accent), var(--pg-accent-2), var(--pg-accent));
  box-shadow: 0 10px 28px -6px var(--pg-glow);
}
.p-avatar {
  width: 104px; height: 104px; border-radius: 50%; object-fit: cover; display: block;
  border: 4px solid var(--pg-card); background: var(--pg-card);
}
.p-avatar-letter {
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--pg-accent), var(--pg-accent-2));
  color: #fff; font-size: 2.5rem; font-weight: 800;
}

.p-head h1 { font-size: 1.65rem; font-weight: 800; letter-spacing: -0.025em; margin-top: 12px; }
.p-sub { color: var(--pg-muted); font-weight: 600; margin-top: 2px; font-size: 0.98rem; }
.p-dot { color: var(--pg-accent); }
.p-bio { margin-top: 12px; color: var(--pg-muted); font-size: 0.95rem; max-width: 40ch; margin-left: auto; margin-right: auto; }

/* главная кнопка записи */
.book-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  margin-top: 18px; padding: 14px 30px;
  background: linear-gradient(135deg, var(--pg-accent), var(--pg-accent-2));
  color: #fff; border-radius: 14px;
  font-weight: 800; font-size: 1rem; letter-spacing: 0.01em;
  text-decoration: none; border: none; cursor: pointer; font-family: inherit;
  box-shadow: 0 10px 26px -8px var(--pg-glow);
  transition: transform 0.18s cubic-bezier(.22,.9,.3,1), box-shadow 0.18s;
}
.book-cta svg { width: 19px; height: 19px; }
.book-cta:hover { transform: translateY(-2px); box-shadow: 0 16px 32px -8px var(--pg-glow); }
.book-cta:active { transform: translateY(0) scale(0.98); }

/* ---------- кнопки связи ---------- */

.p-contacts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 26px; }
.p-contacts.cols-1 { grid-template-columns: 1fr; }
.p-contacts.cols-3 .c-btn:first-child { grid-column: span 2; }

.c-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  padding: 13px 10px; border-radius: 14px;
  font-weight: 700; font-size: 0.95rem; text-decoration: none;
  background: var(--pg-card); border: 1px solid var(--pg-line);
  color: var(--c, var(--pg-accent));
  transition: transform 0.16s cubic-bezier(.22,.9,.3,1), box-shadow 0.16s, background 0.16s;
}
.c-btn svg { width: 19px; height: 19px; flex: none; }
.c-btn:hover {
  transform: translateY(-2px);
  background: color-mix(in srgb, var(--c, var(--pg-accent)) 10%, var(--pg-card));
  box-shadow: 0 10px 22px -10px color-mix(in srgb, var(--c, var(--pg-accent)) 55%, transparent);
}
.c-btn:active { transform: translateY(0); }
.c-wa { --c: #1fb355; }
.c-tg { --c: #2aabee; }
.c-ph { --c: var(--pg-accent); }
.c-ig { --c: #d63076; }

/* ---------- секции ---------- */

.p-section { margin-bottom: 26px; }
.p-section h2 {
  display: flex; align-items: center; gap: 10px;
  font-size: 0.85rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: 0.12em; color: var(--pg-muted); margin-bottom: 12px;
}
.p-section h2::before {
  content: ""; width: 22px; height: 4px; border-radius: 2px;
  background: linear-gradient(90deg, var(--pg-accent), var(--pg-accent-2));
}

/* услуги */
.svc-list { display: flex; flex-direction: column; gap: 10px; }
.svc {
  background: var(--pg-card); border: 1px solid var(--pg-line);
  border-radius: 16px; padding: 16px 18px;
  transition: transform 0.16s cubic-bezier(.22,.9,.3,1), border-color 0.16s, box-shadow 0.16s;
}
.svc:hover {
  transform: translateY(-2px); border-color: color-mix(in srgb, var(--pg-accent) 45%, var(--pg-line));
  box-shadow: 0 12px 26px -14px var(--pg-glow);
}
.svc-top { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.svc-title { font-weight: 700; font-size: 1.0rem; }
.svc-price {
  font-weight: 800; white-space: nowrap; font-variant-numeric: tabular-nums;
  background: linear-gradient(90deg, var(--pg-accent), var(--pg-accent-2));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.svc-desc { color: var(--pg-muted); font-size: 0.9rem; margin-top: 4px; }
.svc-book {
  display: inline-flex; align-items: center; gap: 5px; margin-top: 9px;
  color: var(--pg-accent); font-weight: 700; font-size: 0.9rem; text-decoration: none;
}
.svc-arrow { transition: transform 0.16s; display: inline-block; }
.svc-book:hover .svc-arrow { transform: translateX(4px); }

/* галерея: первая работа крупнее */
.p-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.p-gallery figure { overflow: hidden; border-radius: 14px; }
.p-gallery figure:first-child { grid-column: span 2; grid-row: span 2; }
.p-gallery img {
  width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; display: block;
  transition: transform 0.35s cubic-bezier(.22,.9,.3,1);
}
.p-gallery figure:hover img { transform: scale(1.05); }

.owner-bar {
  display: block; text-align: center; padding: 12px; border-radius: 14px;
  background: var(--pg-card); border: 1.5px dashed var(--pg-accent);
  color: var(--pg-accent); font-weight: 700; text-decoration: none; font-size: 0.92rem;
  transition: background 0.16s;
}
.owner-bar:hover { background: color-mix(in srgb, var(--pg-accent) 8%, var(--pg-card)); }

/* бейдж — виральная петля: плавающая пилюля */
.made-with {
  position: fixed; bottom: 14px; left: 0; right: 0;
  margin: 0 auto; width: fit-content;
  white-space: nowrap;
  background: rgba(18,18,30,0.82); color: #c9c9e8;
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  padding: 10px 20px; border-radius: 999px; font-size: 0.85rem; font-weight: 600;
  text-decoration: none; z-index: 5;
  border: 1px solid rgba(255,255,255,0.08);
  box-shadow: 0 10px 30px rgba(0,0,0,0.30);
  transition: transform 0.16s, background 0.16s;
  animation: rise 0.55s 0.45s both;
}
.made-with b { color: #fff; }
.made-with:hover { transform: translateY(-2px); background: rgba(28,28,46,0.92); }

/* ---------- страница записи ---------- */

.back-link {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--pg-muted); text-decoration: none; font-weight: 600; margin-bottom: 14px;
  transition: color 0.15s;
}
.back-link:hover { color: var(--pg-ink); }
.book-title { font-size: 1.55rem; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 14px; animation: rise 0.45s both; }

.book-form {
  background: var(--pg-card); border: 1px solid var(--pg-line);
  border-radius: 22px; padding: 24px;
  box-shadow: 0 1px 2px rgba(10,10,40,0.04), 0 16px 48px -12px var(--pg-glow);
  animation: rise 0.5s 0.06s both;
}
.book-form label, .book-label { display: block; font-weight: 700; font-size: 0.92rem; margin-bottom: 15px; }
.book-form input:not(.hp), .book-form select {
  width: 100%; padding: 12px 14px; margin-top: 6px;
  border: 1.5px solid var(--pg-line); border-radius: 12px;
  font-size: 1rem; font-family: inherit; font-weight: 500;
  background: var(--pg-card); color: var(--pg-ink);
  transition: border-color 0.15s, box-shadow 0.15s;
}
.book-form input:focus, .book-form select:focus {
  outline: none; border-color: var(--pg-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--pg-accent) 18%, transparent);
}
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

.slots { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 15px; }
@keyframes slotIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: none; } }
.slot {
  padding: 10px 15px; border-radius: 11px; border: 1.5px solid var(--pg-line);
  background: var(--pg-card); color: var(--pg-ink); font-weight: 700;
  font-size: 0.95rem; cursor: pointer; font-family: inherit;
  font-variant-numeric: tabular-nums;
  animation: slotIn 0.25s cubic-bezier(.22,.9,.3,1) both;
  transition: transform 0.13s, border-color 0.13s, background 0.13s, color 0.13s, box-shadow 0.13s;
}
.slot:hover { border-color: var(--pg-accent); transform: translateY(-2px); }
.slot.on {
  background: linear-gradient(135deg, var(--pg-accent), var(--pg-accent-2));
  color: #fff; border-color: transparent;
  box-shadow: 0 8px 18px -6px var(--pg-glow);
}
.slots-empty, .slots-loading { color: var(--pg-muted); font-size: 0.92rem; font-weight: 500; }

.book-submit { width: 100%; margin-top: 6px; }
.book-submit:disabled { opacity: 0.4; cursor: not-allowed; transform: none; box-shadow: none; }
.book-error {
  background: #fdecec; color: #b3261e; padding: 12px 16px;
  border-radius: 12px; margin-bottom: 14px; font-size: 0.95rem; font-weight: 600;
}

@keyframes popIn { 0% { opacity: 0; transform: scale(0.6); } 70% { transform: scale(1.06); } 100% { opacity: 1; transform: none; } }
.book-done {
  background: var(--pg-card); border: 1px solid var(--pg-line);
  border-radius: 22px; padding: 38px 24px; text-align: center;
  box-shadow: 0 1px 2px rgba(10,10,40,0.04), 0 16px 48px -12px var(--pg-glow);
  animation: rise 0.5s both;
}
.book-done h1 { font-size: 1.5rem; font-weight: 800; margin-bottom: 10px; }
.book-done p { margin-bottom: 10px; }
.book-done-icon {
  width: 68px; height: 68px; border-radius: 50%; margin: 0 auto 16px;
  background: linear-gradient(135deg, #22c07a, #57c7e3); color: #fff;
  font-size: 2rem; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 28px -8px rgba(34,192,122,0.5);
  animation: popIn 0.5s cubic-bezier(.22,.9,.3,1) 0.15s both;
}
.paused-icon { background: linear-gradient(135deg, #9ca3af, #6b7280); box-shadow: 0 12px 28px -8px rgba(107,114,128,0.4); }

/* доступность: без анимаций по запросу системы */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
