/**
 * PICHY Theme — типографика и утилиты.
 * В блоках используйте только классы .type-* и .pichy-* из этого файла.
 */

/* ─── Base ─── */
body,
.font-sans {
  font-family: var(--pichy-font-body);
  background-color: #FAEDE5;
  color: #302C73;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1;
}

.font-sans {
  background-color: transparent;
}

/* ─── Modular type scale (ratio 1.618 — golden section) ─── */

:root {
  --pichy-font-display: 'Unbounded', sans-serif;
  --pichy-font-body: 'Manrope', sans-serif;

  --pichy-ratio: 1.667;
  --pichy-ratio-sm: 1.414;

  --pichy-base: 0.9375rem; /* 15px mobile body */
  --pichy-t-1: calc(var(--pichy-base) / var(--pichy-ratio));
  --pichy-t0: var(--pichy-base);
  --pichy-t1: calc(var(--pichy-t0) * var(--pichy-ratio));
  --pichy-t2: calc(var(--pichy-t1) * var(--pichy-ratio));
  --pichy-t3: calc(var(--pichy-t2) * var(--pichy-ratio));
  --pichy-t4: calc(var(--pichy-t3) * var(--pichy-ratio));
  --pichy-t5: calc(var(--pichy-t4) * var(--pichy-ratio));

  --pichy-sm1: calc(var(--pichy-t0) / var(--pichy-ratio-sm));
  --pichy-sm2: calc(var(--pichy-sm1) / var(--pichy-ratio-sm));

  /* Hero — Unbounded широкий: размеры ниже обычной шкалы */
  --pichy-hero: clamp(1.375rem, 6vw, 1.625rem); /* mobile 22–26px */
  --pichy-display: clamp(var(--pichy-t1), 7vw, var(--pichy-t2));
  --pichy-h2: clamp(var(--pichy-t1), 6vw, var(--pichy-t2));
  --pichy-h2-sm: clamp(var(--pichy-t0), 4.5vw, var(--pichy-t1));

  --pichy-leading-display: 1.05;
  --pichy-leading-h2: 1.05;
  --pichy-leading-h3: 1.1;
  --pichy-leading-lead: 1.45;
  --pichy-leading-body: 1.65;

  --pichy-tracking-label: 0.2em;
  --pichy-tracking-lead: 0.012em;
  --pichy-tracking-body: 0.014em;
  --pichy-tracking-caption: 0.08em;
  --pichy-tracking-btn: 0.12em;
}

@media (min-width: 640px) {
  :root {
    --pichy-hero: clamp(1.75rem, 4.5vw, 2.125rem); /* 28–34px */
    --pichy-display: clamp(var(--pichy-t2), 7.5vw, var(--pichy-t3));
    --pichy-h2: clamp(var(--pichy-t2), 6.5vw, var(--pichy-t3));
  }
}

@media (min-width: 768px) {
  :root {
    --pichy-base: 1rem; /* 16px */
    --pichy-t-1: calc(var(--pichy-base) / var(--pichy-ratio));
    --pichy-t0: var(--pichy-base);
    --pichy-t1: calc(var(--pichy-t0) * var(--pichy-ratio));
    --pichy-t2: calc(var(--pichy-t1) * var(--pichy-ratio));
    --pichy-t3: calc(var(--pichy-t2) * var(--pichy-ratio));
    --pichy-t4: calc(var(--pichy-t3) * var(--pichy-ratio));
    --pichy-t5: calc(var(--pichy-t4) * var(--pichy-ratio));
    --pichy-sm1: calc(var(--pichy-t0) / var(--pichy-ratio-sm));
    --pichy-sm2: calc(var(--pichy-sm1) / var(--pichy-ratio-sm));

    --pichy-hero: clamp(2rem, 3.8vw, 2.375rem); /* 32–38px */
    --pichy-display: var(--pichy-t3);
    --pichy-h2: var(--pichy-t2);
    --pichy-h2-sm: var(--pichy-t1);
  }
}

@media (min-width: 1024px) {
  :root {
    --pichy-hero: clamp(2.25rem, 3vw, 2.75rem); /* 36–44px */
    --pichy-display: clamp(var(--pichy-t3), 6vw, var(--pichy-t4));
    --pichy-h2: var(--pichy-t3);
    --pichy-h2-sm: var(--pichy-t2);
  }
}

@media (min-width: 1280px) {
  :root {
    --pichy-hero: 2.75rem; /* 44px — максимум для Unbounded */
    --pichy-display: var(--pichy-t4);
  }
}

/* ─── Typography classes ─── */

.type-hero,
.type-display,
.type-h2,
.type-h2-sm,
.type-h3,
.type-h3-card,
.type-accent,
.type-faq-q,
.type-principle-title,
.type-stat,
.type-logo,
.type-logo-lg {
  font-family: var(--pichy-font-display);
  letter-spacing: -0.04em;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: none;
  -webkit-hyphens: none;
}

.type-hero,
.type-display {
  font-weight: 800;
  font-size: var(--pichy-hero);
  line-height: var(--pichy-leading-display);
}

.type-hero {
  text-transform: uppercase;
  max-width: 100%;
  letter-spacing: -0.03em;
}

.type-display {
  font-size: var(--pichy-display);
  text-transform: none;
}

.type-h2,
.type-h2-sm {
  font-weight: 700;
  text-transform: none;
}

.type-h2 {
  font-size: var(--pichy-h2);
  line-height: var(--pichy-leading-h2);
}

.type-h2-sm {
  font-size: var(--pichy-h2-sm);
  line-height: var(--pichy-leading-h2);
}

.type-h3,
.type-h3-card,
.type-accent,
.type-faq-q,
.type-principle-title {
  font-weight: 600;
  text-transform: none;
}

.type-h3 {
  font-size: var(--pichy-t0);
  line-height: var(--pichy-leading-h3);
}
@media (min-width: 768px) {
  .type-h3 { font-size: var(--pichy-t1); }
}

.type-h3-card {
  font-size: var(--pichy-t1);
  line-height: var(--pichy-leading-h3);
}

.type-accent {
  font-size: var(--pichy-t0);
  line-height: var(--pichy-leading-h3);
}
@media (min-width: 768px) {
  .type-accent { font-size: var(--pichy-t1); }
}

.type-principle-title {
  font-size: var(--pichy-t0);
  line-height: var(--pichy-leading-h3);
}
@media (min-width: 768px) {
  .type-principle-title { font-size: var(--pichy-t1); }
}

.type-faq-q {
  font-size: var(--pichy-t0);
  line-height: var(--pichy-leading-h3);
}
@media (min-width: 768px) {
  .type-faq-q { font-size: var(--pichy-t1); }
}

.type-stat {
  font-weight: 700;
  font-size: var(--pichy-t2);
  line-height: var(--pichy-leading-display);
}
@media (min-width: 768px) {
  .type-stat { font-size: var(--pichy-t3); }
}

.type-logo {
  font-weight: 700;
  font-size: var(--pichy-t1);
  line-height: 1;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .type-logo { font-size: var(--pichy-t2); }
}

.type-logo-lg {
  font-weight: 800;
  font-size: var(--pichy-t2);
  line-height: 1;
  text-transform: uppercase;
}
@media (min-width: 768px) {
  .type-logo-lg { font-size: var(--pichy-t3); }
}

.type-lead,
.type-subtitle-lg,
.type-subtitle,
.type-body,
.type-body-sm,
.type-body-muted,
.type-body-strong,
.type-tagline,
.type-note,
.type-caption,
.type-caption-sentence,
.type-meta,
.type-label,
.type-label-sm,
.type-badge,
.type-proof,
.type-footer-legal,
.type-form-response,
.type-platform-name,
.type-platform-role {
  font-family: var(--pichy-font-body);
  letter-spacing: normal;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.type-lead,
.type-subtitle-lg {
  letter-spacing: var(--pichy-tracking-lead);
}

.type-lead {
  font-weight: 500;
  font-size: calc(var(--pichy-t0) * 1.0625);
  line-height: var(--pichy-leading-lead);
  text-transform: none;
}
@media (min-width: 640px) {
  .type-lead { font-size: calc(var(--pichy-t0) * 1.125); }
}
@media (min-width: 768px) {
  .type-lead {
    font-size: var(--pichy-t1);
    line-height: 1.4;
    letter-spacing: 0.008em;
  }
}

.type-subtitle {
  font-size: var(--pichy-t0);
  font-weight: 500;
  line-height: var(--pichy-leading-body);
  letter-spacing: var(--pichy-tracking-body);
  text-transform: none;
  -webkit-font-smoothing: antialiased;
}

.type-subtitle-lg {
  font-weight: 500;
  font-size: calc(var(--pichy-t0) * 1.0625);
  line-height: var(--pichy-leading-lead);
  text-transform: none;
}
@media (min-width: 768px) {
  .type-subtitle-lg {
    font-size: var(--pichy-t1);
    line-height: 1.38;
    letter-spacing: 0.008em;
  }
}

.type-body {
  font-size: var(--pichy-t0);
  font-weight: 400;
  line-height: var(--pichy-leading-body);
  letter-spacing: var(--pichy-tracking-body);
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "kern" 1;
}

.type-body-sm {
  font-size: var(--pichy-sm1);
  font-weight: 400;
  line-height: var(--pichy-leading-body);
  letter-spacing: var(--pichy-tracking-body);
  text-transform: none;
  -webkit-font-smoothing: antialiased;
}

.type-body-muted {
  font-size: var(--pichy-t0);
  font-weight: 400;
  line-height: var(--pichy-leading-body);
  letter-spacing: var(--pichy-tracking-body);
  opacity: 0.8;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
}

.type-body-strong {
  font-size: inherit;
  font-weight: 600;
}

.type-tagline {
  font-size: var(--pichy-sm1);
  font-weight: 400;
  font-style: italic;
  line-height: var(--pichy-leading-body);
  opacity: 0.85;
  text-transform: none;
}

.type-note {
  font-size: var(--pichy-sm1);
  font-weight: 400;
  line-height: var(--pichy-leading-body);
  opacity: 0.7;
  text-transform: none;
}

.type-label {
  display: block;
  font-size: var(--pichy-sm2);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--pichy-tracking-label);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 768px) {
  .type-label { font-size: 0.6875rem; }
}

.type-label-sm {
  font-size: var(--pichy-sm2);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--pichy-tracking-label);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

.type-proof {
  font-size: var(--pichy-sm2);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--pichy-tracking-label);
  line-height: 1.65;
  opacity: 0.92;
  -webkit-font-smoothing: antialiased;
}
@media (min-width: 768px) {
  .type-proof { font-size: 0.6875rem; }
}

.type-badge {
  font-size: var(--pichy-sm2);
  font-weight: 700;
  text-transform: none;
  letter-spacing: normal;
}

.type-meta {
  font-size: var(--pichy-sm2);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: var(--pichy-tracking-label);
  opacity: 0.55;
}

.type-caption {
  font-size: var(--pichy-sm1);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: var(--pichy-tracking-caption);
  line-height: var(--pichy-leading-body);
  opacity: 0.75;
}

.type-caption-sentence {
  font-size: var(--pichy-sm1);
  font-weight: 500;
  text-transform: none;
  letter-spacing: var(--pichy-tracking-body);
  line-height: 1.55;
  opacity: 0.88;
}
@media (min-width: 768px) {
  .type-caption-sentence {
    font-size: calc(var(--pichy-sm1) * 1.05);
  }
}

.type-platform-name {
  font-size: var(--pichy-t0);
  font-weight: 500;
  line-height: var(--pichy-leading-body);
  text-transform: none;
}

.type-platform-role {
  font-size: var(--pichy-sm1);
  line-height: var(--pichy-leading-body);
  opacity: 0.75;
  text-transform: none;
}

.type-footer-legal {
  font-size: var(--pichy-sm1);
  line-height: var(--pichy-leading-body);
  opacity: 0.55;
  text-transform: none;
  letter-spacing: var(--pichy-tracking-body);
}

.type-form-response {
  font-size: var(--pichy-t0);
  line-height: var(--pichy-leading-body);
}

/* ─── Buttons ─── */
.type-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 2rem;
  font-family: var(--pichy-font-body);
  font-size: var(--pichy-sm2);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--pichy-tracking-btn);
  transition: color 0.3s, background-color 0.3s, border-color 0.3s;
}

.type-btn-light {
  border: 1px solid #FAEDE5;
  color: #FAEDE5;
}
.type-btn-light:hover {
  background-color: #FAEDE5;
  color: #DE6916;
}

.type-btn-dark {
  border: 1px solid #302C73;
  color: #302C73;
}
.type-btn-dark:hover {
  background-color: #302C73;
  color: #FAEDE5;
}

.type-btn-form {
  padding: 1.25rem 2.5rem;
  font-family: var(--pichy-font-body);
  font-size: var(--pichy-sm1);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--pichy-tracking-btn);
}

/* ─── Layout helpers ─── */
.section-y { padding-top: 5rem; padding-bottom: 5rem; }
@media (min-width: 768px) {
  .section-y { padding-top: 8rem; padding-bottom: 8rem; }
}

.section-y-md { padding-top: 4rem; padding-bottom: 4rem; }
@media (min-width: 768px) {
  .section-y-md { padding-top: 6.5rem; padding-bottom: 6.5rem; }
}

.section-inner { max-width: 80rem; margin-left: auto; margin-right: auto; }
.section-inner-md { max-width: 64rem; margin-left: auto; margin-right: auto; }
.section-inner-sm { max-width: 48rem; margin-left: auto; margin-right: auto; }

.px-section { padding-left: 1.5rem; padding-right: 1.5rem; }
@media (min-width: 768px) {
  .px-section { padding-left: 3rem; padding-right: 3rem; }
}

/* ─── Hairlines (from tokens) ─── */
.hairline-b { border-bottom: 1px solid rgba(48, 44, 115, 0.15); }
.hairline-t { border-top: 1px solid rgba(48, 44, 115, 0.15); }
.hairline-r { border-right: 1px solid rgba(48, 44, 115, 0.15); }
.hairline-l { border-left: 1px solid rgba(48, 44, 115, 0.15); }
.hairline-light-b { border-bottom: 1px solid rgba(250, 237, 229, 0.2); }
.hairline-light-t { border-top: 1px solid rgba(250, 237, 229, 0.2); }
.hairline-light-r { border-right: 1px solid rgba(250, 237, 229, 0.2); }
.hairline-light-l { border-left: 1px solid rgba(250, 237, 229, 0.2); }

/* ─── Geometric & Motion Blur Utilities ─── */
.motion-blur-blob {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.6;
  z-index: 0;
  pointer-events: none;
}
.geometric-circle {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(48, 44, 115, 0.15);
  z-index: 0;
  pointer-events: none;
}
.geometric-circle-light {
  border-color: rgba(250, 237, 229, 0.2);
}

/* ─── Blog / entry content ─── */
.entry-content,
.pichy-article {
  font-family: var(--pichy-font-body);
  color: #302C73;
}
.entry-content p,
.pichy-article p {
  margin-bottom: 1.5rem;
  line-height: var(--pichy-leading-body);
  font-size: var(--pichy-t0);
  font-weight: 400;
  letter-spacing: var(--pichy-tracking-body);
  opacity: 0.9;
}
.entry-content h1,
.pichy-article h1,
h1.wp-block-heading {
  font-family: var(--pichy-font-display);
  font-size: var(--pichy-display);
  margin-top: 3.5rem;
  margin-bottom: 1.5rem;
  line-height: var(--pichy-leading-display);
  text-transform: uppercase;
  letter-spacing: normal;
  font-weight: 800;
}
.entry-content h2,
.pichy-article h2,
h2.wp-block-heading {
  font-family: var(--pichy-font-display);
  font-size: var(--pichy-h2);
  margin-top: 3.5rem;
  margin-bottom: 1.5rem;
  line-height: var(--pichy-leading-h2);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 700;
}
.entry-content h3,
.pichy-article h3,
h3.wp-block-heading {
  font-family: var(--pichy-font-display);
  font-size: var(--pichy-h2-sm);
  margin-top: 2.5rem;
  margin-bottom: 1rem;
  line-height: var(--pichy-leading-h2);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 700;
}
.entry-content a,
.pichy-article a {
  color: #DE6916;
  text-decoration: underline !important;
  text-underline-offset: 4px;
  box-shadow: none !important;
}
.entry-content a:hover,
.pichy-article a:hover { opacity: 0.8; }
.entry-content img,
.pichy-article img,
.wp-block-image img {
  border-radius: 0;
  margin: 0;
  max-width: 100%;
  height: auto;
}
.entry-content ul li::before,
.pichy-article ul li::before {
  content: "•";
  color: #DE6916;
  position: absolute;
  left: 0;
  font-weight: bold;
}
.entry-content blockquote,
.pichy-article blockquote {
  border-left: 2px solid #DE6916;
  padding-left: 1.5rem;
  font-style: italic;
  opacity: 0.8;
  margin-bottom: 1.5rem;
  font-size: var(--pichy-t1);
  margin-top: 1.5rem;
}

/* WP fullwidth overrides */
html, body { margin: 0 !important; padding: 0 !important; max-width: 100% !important; }
#page, #content, #primary, #main:not(.pichy-single), .site-main, .page-content,
.ast-container, .site-content, .elementor-section-wrap, .wp-site-blocks, .wp-block-post-content {
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
}
article:not(.pichy-single__article),
.entry-content:not(.pichy-single__content) {
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  width: 100% !important;
}
.site-header, .site-footer, .ast-site-header, .ast-site-footer, .entry-header,
.page-header, .site-branding, .menu-toggle, .main-navigation { display: none !important; }
p:empty { display: none !important; }
/* Скрыть автопараграфы WP только на главной, не в статьях */
.home .entry-content > p,
.home .page-content > p {
  margin: 0 !important;
  padding: 0 !important;
  display: none !important;
}
a { text-decoration: none !important; box-shadow: none !important; outline: none !important; }
