/* Kohlisys — Single post, generic page, 404, search */

.post-single .back-link,
.case-single .back-link {
  font-family: var(--font-mono);
  font-size: 13px;
  color: var(--ink-500);
}
.post-single .back-link:hover { color: var(--accent-coral); }

.post-single-hero { padding: 64px 0 48px; }
.post-single-hero h1 { max-width: 22ch; }
.post-meta { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-family: var(--font-mono); font-size: 12px; color: var(--ink-500); letter-spacing: 0.06em; }
.post-author { margin-top: 56px; display: flex; gap: 16px; align-items: center; border-top: 1px solid var(--ink-200); padding-top: 32px; }
.post-author .avatar { width: 56px; height: 56px; border-radius: 50%; background-size: cover; background-position: center; border: 1px solid var(--ink-200); }
.post-author strong { display: block; font-size: 15px; }
.post-author span { font-size: 14px; color: var(--ink-500); }

.post-single-photo { padding-bottom: 48px; }
.post-single-photo .photo { border-radius: var(--r-lg); }

.post-single-body { padding: 64px 0 96px; }
.post-body-prose,
.prose {
  max-width: 64ch;
  margin: 0 auto;
  font-size: 18px;
  line-height: 1.7;
  color: var(--ink-800);
}
.post-body-prose h2, .prose h2 { font-size: 32px; margin: 48px 0 16px; }
.post-body-prose h3, .prose h3 { font-size: 24px; margin: 36px 0 12px; }
.post-body-prose p, .prose p { margin: 0 0 20px; }
.post-body-prose a, .prose a { color: var(--accent-coral); text-decoration: underline; }
.post-body-prose ul, .post-body-prose ol,
.prose ul, .prose ol { margin: 0 0 20px 1.4em; }
.post-body-prose li, .prose li { margin-bottom: 8px; }
.post-body-prose blockquote, .prose blockquote {
  border-left: 3px solid var(--accent-coral);
  padding: 8px 0 8px 24px;
  margin: 24px 0;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--ink-900);
}
.post-body-prose code, .prose code {
  font-family: var(--font-mono);
  font-size: 0.92em;
  background: var(--ink-100);
  padding: 2px 6px;
  border-radius: var(--r-sm);
}
.post-body-prose pre, .prose pre {
  background: var(--ink-900);
  color: var(--paper);
  padding: 24px;
  border-radius: var(--r-md);
  overflow-x: auto;
  font-size: 14px;
}
.post-body-prose pre code, .prose pre code {
  background: transparent;
  padding: 0;
  color: inherit;
}

/* Generic page */
.page-default-hero { padding: 96px 0 48px; }
.page-default-hero .accent { color: var(--accent-coral); }
.page-default-body { padding: 0 0 96px; }

/* Page content uses full container width — paragraphs, lists, and
   headings span the parent (.page-content) so editorial copy on
   legacy pages (about-us, it-consulting, software-development, etc.)
   doesn't read as a narrow column. Front page and /services keep
   their own templates and are unaffected. */
.page-content { width: 100%; }
.page-content > h2 { font-size: 32px; margin: 48px 0 16px; }
.page-content > h3 { font-size: 24px; margin: 36px 0 12px; }
.page-content p { margin: 0 0 20px; line-height: 1.7; color: var(--ink-800); font-size: 17px; }
.page-content a { color: var(--accent-coral); text-decoration: underline; }
.page-content ul, .page-content ol { margin: 0 0 20px 1.4em; }
.page-content li { margin-bottom: 8px; }

/* Image alignment — supports text wrap around floated images.
   Used on /about-us where the office photo floats left and prose
   flows around it. */
.page-content .alignleft,
.page-content figure.alignleft {
  float: left;
  margin: 6px 32px 24px 0;
  max-width: 50%;
}
.page-content .alignright,
.page-content figure.alignright {
  float: right;
  margin: 6px 0 24px 32px;
  max-width: 50%;
}
.page-content .aligncenter,
.page-content figure.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
  clear: both;
}
.page-content figure.alignleft img,
.page-content figure.alignright img { display: block; max-width: 100%; height: auto; border-radius: var(--r-md); }
.page-content::after {
  content: '';
  display: table;
  clear: both;
}

/* Gutenberg columns: let them breathe at full container width */
.page-content .wp-block-columns {
  display: grid;
  grid-template-columns: repeat(var(--cols, 2), 1fr);
  gap: 32px;
  margin: 32px 0;
}
.page-content .wp-block-columns .wp-block-column { min-width: 0; }
.page-content .wp-block-columns .wp-block-column > *:first-child { margin-top: 0; }
.page-content .wp-block-group { margin: 24px 0; }
.page-content iframe { max-width: 100%; border-radius: var(--r-md); }
.page-content .wp-block-image img { border-radius: var(--r-md); }
.page-content .wp-block-separator {
  border: 0;
  border-top: 1px solid var(--ink-200);
  margin: 48px 0;
}

/* Contact-us address cards */
.page-content .contact-addresses .wp-block-column { display: flex; }
.page-content .address-card {
  width: 100%;
  background: var(--white);
  border: 1px solid var(--ink-200);
  border-radius: var(--r-lg);
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: all 0.2s ease;
}
.page-content .address-card:hover {
  border-color: var(--ink-900);
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.page-content .address-icon {
  width: 48px; height: 48px;
  border-radius: var(--r-md);
  background: var(--paper-2);
  color: var(--accent-coral);
  display: grid;
  place-items: center;
  margin-bottom: 12px;
}
.page-content .address-title {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 600;
  letter-spacing: -0.015em;
  color: var(--ink-900);
  margin: 0;
  max-width: none;
}
.page-content .address-line {
  font-size: 15px;
  color: var(--ink-700);
  margin: 0;
  line-height: 1.5;
}
.page-content .address-country {
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-500);
  margin: 8px 0 0;
}

/* Jetpack contact form — fit the theme tokens */
.page-content .wp-block-jetpack-contact-form {
  background: var(--white);
  border: 1px solid var(--ink-200);
  border-radius: var(--r-lg);
  padding: 40px !important;
  margin: 48px 0 0;
}
.page-content .wp-block-jetpack-contact-form input[type="text"],
.page-content .wp-block-jetpack-contact-form input[type="email"],
.page-content .wp-block-jetpack-contact-form textarea {
  width: 100%;
  border: 1px solid var(--ink-200);
  border-radius: var(--r-md);
  padding: 12px 14px;
  font-family: var(--font-body);
  font-size: 15px;
  background: var(--paper);
}
.page-content .wp-block-jetpack-contact-form button,
.page-content .wp-block-jetpack-contact-form .wp-block-jetpack-button button {
  background: var(--accent-coral);
  color: var(--paper);
  border: 0;
  padding: 12px 22px;
  border-radius: var(--r-pill);
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 15px;
  cursor: pointer;
}
.page-content .wp-block-jetpack-contact-form button:hover {
  background: var(--accent-coral-700);
}

/* 404 */
.not-found { padding: 96px 0 128px; }
.not-found-inner { max-width: 700px; }
.not-found h1 .accent { color: var(--accent-coral); font-style: italic; font-weight: 500; }
.not-found-links { display: flex; gap: 12px; margin-top: 40px; flex-wrap: wrap; }

/* Search results */
.search-results { padding: 96px 0 128px; }

@media (max-width: 720px) {
  .post-single-hero { padding: 32px 0 24px; }
  .post-single-photo { padding-bottom: 32px; }
  .post-single-body { padding: 32px 0 56px; }
  .post-author { margin-top: 32px; padding-top: 24px; }

  .post-body-prose, .prose { font-size: 17px; line-height: 1.65; }
  .post-body-prose h2, .prose h2 { font-size: 24px; margin: 32px 0 12px; }
  .post-body-prose h3, .prose h3 { font-size: 20px; margin: 24px 0 10px; }
  .post-body-prose blockquote, .prose blockquote { font-size: 18px; padding-left: 16px; }
  .post-body-prose pre, .prose pre { padding: 16px; font-size: 13px; }

  .page-default-hero { padding: 48px 0 24px; }
  .page-default-body { padding: 0 0 56px; }
  .page-content > h2 { font-size: 24px; margin: 32px 0 12px; }
  .page-content > h3 { font-size: 20px; margin: 24px 0 10px; }
  .page-content p { font-size: 16px; }

  /* Floated images: full-width on mobile so prose isn't crushed into a sliver. */
  .page-content .alignleft,
  .page-content figure.alignleft,
  .page-content .alignright,
  .page-content figure.alignright {
    float: none;
    margin: 16px 0;
    max-width: 100%;
  }

  /* Gutenberg columns stack. */
  .page-content .wp-block-columns {
    grid-template-columns: 1fr;
    gap: 20px;
    margin: 24px 0;
  }
  .page-content .contact-addresses .wp-block-column { display: block; }
  .page-content .address-card { padding: 24px; }

  .page-content .wp-block-jetpack-contact-form {
    padding: 24px !important;
    margin: 32px 0 0;
  }

  .not-found { padding: 48px 0 64px; }
  .not-found-links { gap: 8px; margin-top: 28px; }
  .search-results { padding: 48px 0 64px; }
}
