/* Пет-паспорт — тёплая палитра (золотистый/шоколадный: оттенки «лабрадора») */

:root {
  --pp-bg: #faf6f0;
  --pp-bg-card: #fffdf9;
  --pp-bg-warm: #f3ebe3;
  --pp-bg-mint: #f7f0e8;
  --pp-ink: #1c140e;
  --pp-ink-muted: #5a4f44;
  /* Основной акцент: «золотой»; тёмный — «шоколад»; мягкий — крем. Имена --pp-* сохранены для шаблонов. */
  --pp-teal: #a86f2a;
  --pp-teal-dark: #5c3d1e;
  --pp-teal-soft: #f0e0c8;
  --pp-rose: #c45a4a;
  --pp-gold: #c9a24a;
  --pp-honey: #8b6b45;
  --pp-success: #5a7142;
  --pp-warning: #c17f1a;
  --pp-danger: #b91c1c;
  --pp-radius: 1rem;
  --pp-radius-sm: 0.75rem;
  --pp-shadow: 0 4px 24px rgba(50, 32, 18, 0.07);
  --pp-shadow-hover: 0 8px 32px rgba(50, 32, 18, 0.11);
  --pp-font: "DM Sans", system-ui, -apple-system, sans-serif;
  --pp-hero-grad: linear-gradient(145deg, #d4a84b 0%, #9a6a3a 38%, #4d3424 100%);
  --pp-hero-fg: #fff8f0;
  --pp-hero-fg-dim: rgba(255, 248, 240, 0.78);
}

.pp-body {
  font-family: var(--pp-font);
  background: var(--pp-bg);
  color: var(--pp-ink);
  -webkit-font-smoothing: antialiased;
}

/* Картинки не участвуют в выделении мышью (как текст) */
.pp-body img {
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}

.pp-navbar {
  background: var(--pp-bg-card) !important;
  box-shadow: 0 1px 0 rgba(60, 40, 25, 0.08);
}

.pp-brand {
  font-weight: 700;
  letter-spacing: -0.03em;
  font-size: 1.2rem;
}

.navbar .nav-link {
  color: var(--pp-ink);
  font-weight: 500;
  border-radius: 0.5rem;
}

.navbar .nav-link:hover {
  color: var(--pp-teal-dark);
  background: rgba(168, 111, 42, 0.1);
}

.pp-btn-nav {
  border-radius: 999px;
  padding: 0.5rem 1.1rem;
  font-weight: 600;
  box-shadow: 0 2px 10px rgba(92, 61, 30, 0.22);
}

.btn-primary {
  --bs-btn-bg: var(--pp-teal);
  --bs-btn-border-color: var(--pp-teal);
  --bs-btn-hover-bg: var(--pp-teal-dark);
  --bs-btn-hover-border-color: var(--pp-teal-dark);
  --bs-btn-active-bg: var(--pp-teal-dark);
  --bs-btn-active-border-color: var(--pp-teal-dark);
  font-weight: 600;
  border-radius: 0.75rem;
  padding: 0.6rem 1.25rem;
}

.btn-outline-primary {
  --bs-btn-color: var(--pp-teal);
  --bs-btn-border-color: var(--pp-teal);
  --bs-btn-hover-bg: var(--pp-teal);
  --bs-btn-hover-border-color: var(--pp-teal);
  font-weight: 600;
  border-radius: 0.75rem;
}

/* PDF для врача: как outline-primary (тот же радиус, вес), золотая гамма — рядом с +Корм / primary не спорит */
.btn-pp-pdf,
.pp-body a.btn.btn-pp-pdf,
.pp-body a.btn.btn-pp-pdf.btn-sm {
  --bs-btn-color: var(--pp-ink);
  --bs-btn-border-color: var(--pp-gold);
  --bs-btn-bg: var(--pp-teal-soft);
  --bs-btn-hover-color: #fff8f0;
  --bs-btn-hover-bg: var(--pp-gold);
  --bs-btn-hover-border-color: var(--pp-honey);
  --bs-btn-active-color: #fff8f0;
  --bs-btn-active-bg: #b8923a;
  --bs-btn-active-border-color: #7a5a1e;
  --bs-btn-focus-shadow-rgb: 201, 162, 74;
  font-weight: 600;
  border-radius: 0.75rem;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.pp-body a.btn.btn-pp-pdf:hover,
.pp-body a.btn.btn-pp-pdf.btn-sm:hover {
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset;
}

.text-primary {
  color: var(--pp-teal) !important;
}

a:not(.btn):not(.nav-link):not(.page-link) {
  color: var(--pp-teal-dark);
  text-underline-offset: 0.2em;
}

a:not(.btn):not(.nav-link):not(.page-link):hover {
  color: var(--pp-teal);
}

.pp-card,
.card {
  border: none;
  border-radius: var(--pp-radius);
  box-shadow: var(--pp-shadow);
  background: var(--pp-bg-card);
}

.pp-card--lift {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.pp-card--lift:hover {
  transform: translateY(-2px);
  box-shadow: var(--pp-shadow-hover);
}

/* Landing */
.pp-hero {
  position: relative;
  background: var(--pp-hero-grad);
  color: var(--pp-hero-fg);
  overflow: hidden;
}

.pp-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 50% at 100% 0%, rgba(255, 220, 180, 0.2), transparent 52%);
  pointer-events: none;
}

.pp-hero .text-white-50 {
  color: var(--pp-hero-fg-dim) !important;
}

.pp-hero h1 {
  letter-spacing: -0.03em;
  line-height: 1.1;
}

.pp-hero .lead {
  line-height: 1.6;
  opacity: 0.95;
}

.pp-hero-illus {
  filter: drop-shadow(0 12px 32px rgba(0, 0, 0, 0.15));
}

.pp-hero-photo {
  width: 100%;
  max-width: 200px;
  aspect-ratio: 1;
  object-fit: cover;
  border: 2px solid rgba(255, 245, 230, 0.45);
  box-shadow: 0 8px 28px rgba(40, 24, 12, 0.35);
}

/* Векторные «аватары» hero: единая подложка, целиком влезает рисунок */
.pp-hero-avatar {
  object-fit: contain;
  background: rgba(255, 250, 242, 0.14);
}

/* Картинка + подпись: одна колонка, подпись строго под своим фото (любой формат исходника) */
.pp-hero-tile {
  max-width: 200px;
  width: 100%;
  display: block;
  text-align: center;
}

.pp-hero-tile .pp-hero-attrib {
  text-align: center;
  text-wrap: balance;
  hyphens: auto;
  margin-left: 0;
  margin-right: 0;
  max-width: 100%;
}

.pp-hero-attrib {
  color: var(--pp-hero-fg-dim);
  line-height: 1.45;
}

.pp-hero-attrib__link {
  color: var(--pp-hero-fg-dim);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.pp-hero-attrib__link:hover,
.pp-hero-attrib__link:focus {
  color: var(--pp-hero-fg);
}

.pp-section {
  padding: 4rem 0;
}

.pp-section--alt {
  background: var(--pp-bg-mint);
}

.pp-section--dark {
  background: #2a1c14;
  color: #f5ece4;
}

.pp-section-title {
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--pp-ink);
}

.pp-kicker {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--pp-teal);
}

.pp-step-num {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: var(--pp-teal-soft);
  color: var(--pp-teal-dark);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.pp-trust-icon {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.75rem;
  background: rgba(168, 111, 42, 0.14);
  color: var(--pp-teal-dark);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.pp-footer {
  background: var(--pp-bg-card);
  border-top: 1px solid rgba(60, 40, 25, 0.08) !important;
  color: var(--pp-ink-muted);
}

.pp-footer a {
  color: var(--pp-ink-muted);
  text-decoration: none;
}

.pp-footer a:hover {
  color: var(--pp-teal);
}

/* Auth pages */
.pp-auth-ribbon {
  background: var(--pp-hero-grad);
  color: var(--pp-hero-fg);
  border-radius: var(--pp-radius);
  padding: 1.75rem;
}

.pp-progress {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.pp-progress__dot {
  flex: 1;
  height: 4px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.25);
}

.pp-progress__dot--active {
  background: #fff;
}

/* Dashboard */
.pp-dash-hero {
  background: var(--pp-hero-grad);
  color: var(--pp-hero-fg);
  border-radius: var(--pp-radius);
  padding: 1.5rem 1.75rem;
  box-shadow: var(--pp-shadow);
}

.pp-pet-tile {
  border-radius: var(--pp-radius);
  overflow: hidden;
  background: var(--pp-bg-card);
  box-shadow: var(--pp-shadow);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.pp-pet-tile:hover {
  box-shadow: var(--pp-shadow-hover);
  transform: translateY(-2px);
}

.pp-pet-tile__img {
  height: 140px;
  object-fit: cover;
  width: 100%;
}

.pp-pet-tile__img--placeholder {
  object-fit: contain;
  padding: 1.25rem;
  background: linear-gradient(180deg, #faf4eb 0%, #f0e6d8 100%);
}

.pp-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: var(--pp-teal-soft);
  color: var(--pp-teal-dark);
}

.form-control:focus {
  border-color: var(--pp-teal);
  box-shadow: 0 0 0 0.2rem rgba(168, 111, 42, 0.22);
}

.form-label {
  font-weight: 500;
  color: var(--pp-ink);
}

.alert {
  border: none;
  border-radius: var(--pp-radius-sm);
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  .pp-card--lift:hover,
  .pp-pet-tile:hover {
    transform: none;
  }
}
