/* ═══════════════════════════════════════════════════════
   public.css — shared styles for public-facing pages
   (contacts, tariffs, offer, privacy, personal-data, donate)
   Loaded by public-layout.php after app.css.
   ═══════════════════════════════════════════════════════ */

/* ── Hero with gradient background ── */
.pub-hero-full {
  padding: 72px 24px 56px;
  text-align: center;
  position: relative;
  overflow: hidden;
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--accent) 6%, var(--canvas)) 0%,
    var(--canvas) 100%
  );
  border-bottom: 1px solid var(--border);
}
.pub-hero-full::before {
  content: "";
  position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(
    ellipse 70% 60% at 50% 0%,
    color-mix(in srgb, var(--accent) 9%, transparent),
    transparent 65%
  );
}
.pub-hero-inner {
  position: relative; z-index: 1;
  max-width: 620px; margin: 0 auto;
}
.pub-hero-glow {
  position: absolute; top: -80px; left: 50%; transform: translateX(-50%);
  width: 400px; height: 400px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(
    circle,
    color-mix(in srgb, var(--accent) 12%, transparent),
    transparent 60%
  );
  filter: blur(40px);
}
.pub-hero-full h1 {
  font-size: clamp(2rem, 5vw, 3.25rem);
  font-weight: 800; letter-spacing: -.05em;
  color: var(--fg); margin-bottom: 12px; line-height: 1.1;
}
.pub-hero-full p:not(.eyebrow) {
  font-size: 1.0625rem; color: var(--fg-muted);
  line-height: 1.7; max-width: 560px; margin: 8px auto 0;
}

/* ── Page body container ── */
.pub-body { max-width: 1060px; margin: 0 auto; padding: 64px 24px 80px; }

/* ── Section title/sub (used as h2-like blocks on tariffs, contacts) ── */
.pub-section-title {
  font-size: 1.375rem; font-weight: 700;
  letter-spacing: -.03em; color: var(--fg); margin-bottom: 6px;
}
.pub-section-sub {
  font-size: .9375rem; color: var(--fg-muted); line-height: 1.6; margin-bottom: 32px;
}

/* ── Legal pages (offer.php, privacy.php, personal-data.php) ── */
.legal-wrap  { max-width: 1060px; margin: 0 auto; padding: 56px 24px 80px; }
.legal-inner { max-width: 780px; }
.legal-title {
  font-size: clamp(1.8rem, 4vw, 2.5rem);
  font-weight: 700; letter-spacing: -.04em;
  color: var(--fg); margin-bottom: 14px; line-height: 1.15;
  text-wrap: balance;
}
.legal-date {
  display: inline-block; margin-bottom: 40px;
  padding: 6px 14px; background: var(--canvas-subtle);
  border: 1px solid var(--border); border-radius: 8px;
  font-size: .8125rem; color: var(--fg-subtle);
}
.legal-section   { margin-bottom: 40px; }
.legal-section h2 {
  font-size: 1.0625rem; font-weight: 700; color: var(--fg);
  margin-bottom: 12px; padding-bottom: 8px;
  border-bottom: 1px solid var(--border);
}
.legal-section h3 {
  font-size: .9375rem; font-weight: 600; color: var(--fg); margin: 16px 0 8px;
}
.legal-section p,
.legal-section li {
  font-size: .9375rem; color: var(--fg-muted); line-height: 1.75; margin-bottom: 8px;
}
.legal-section ul,
.legal-section ol { padding-left: 22px; }
.legal-section li { margin-bottom: 6px; }
.legal-section strong { color: var(--fg); }
.legal-section a     { color: var(--accent); }
.legal-sep { height: 1px; background: var(--border); margin: 32px 0; }

/* ── Requisites grid (contacts.php, tariffs.php) ── */
.pub-req {
  background: var(--canvas-subtle); border: 1px solid var(--border);
  border-radius: 14px; padding: 22px 26px;
  display: grid; grid-template-columns: auto 1fr;
  gap: 5px 20px; font-size: .875rem; line-height: 1.8;
  margin-bottom: 52px;
}
.pub-req-label { color: var(--fg-muted); }
.pub-req-val   { color: var(--fg); }

/* ── Contact/feedback form ── */
.pub-form-title {
  font-size: 1.375rem; font-weight: 700;
  letter-spacing: -.03em; color: var(--fg); margin-bottom: 6px;
}
.pub-form-sub {
  font-size: .9375rem; color: var(--fg-muted); line-height: 1.6; margin-bottom: 28px;
}
.pub-form         { display: flex; flex-direction: column; gap: 16px; }
.pub-form-row     { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
/* Slightly larger inputs on public pages to match previous design */
.pub-form input[type=text],
.pub-form input[type=email],
.pub-form textarea {
  padding: 11px 14px;
  font-size: .9375rem;
}
.pub-form textarea { resize: vertical; min-height: 130px; line-height: 1.6; }
.pub-form-submit  { width: 100%; justify-content: center; min-height: 46px; font-size: .9375rem; font-weight: 600; }

/* ── Media queries ── */
@media (max-width: 768px) {
  .pub-body     { padding: 40px 16px 64px; }
  .legal-wrap   { padding: 40px 16px 64px; }
  .pub-req      { grid-template-columns: 1fr; gap: 0; }
  .pub-req-label { font-size: .75rem; margin-top: 8px; }
  .pub-req-label:first-child { margin-top: 0; }
  .pub-form-row { grid-template-columns: 1fr; }
  .pub-hero-full { padding: 48px 16px 40px; }
}
