/* «Статьи» on a company's website (app/site_blog.py): the list, the article and the home page's section; the body's
   rendering (.post-body) is the cabinet's preview too (app/blog_desk.py). The company-site's look (company-site.css):
   white cards with a hairline, the forest words, one lime — the booking. An article reads at about 68 characters a line,
   18 px on a computer and 17 px on a phone; the closing booking stands beside it on a wide screen, under it otherwise.
   Families only through brand.css's --sans and --mono. */

/* --- the cards of a list: the cover, the title (the card's link), the lead, the date ------------------------------- */
.blog-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.blog-card { position: relative; display: flex; flex-direction: column; min-width: 0; border: 1px solid #d9e3d8; border-radius: 12px; background: #fff; overflow: hidden; transition: border-color .15s; }
.blog-card:hover { border-color: #38624a; }
.blog-card:has(a:focus-visible) { outline: 3px solid var(--lime-deep, #3d711f); outline-offset: 2px; }
.blog-card-cover { aspect-ratio: 16 / 10; background: var(--shade); }
.blog-card-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.business .biz .blog-card-title, .blog-card-title { margin: 20px 20px 8px; font-size: 19px; line-height: 1.3; letter-spacing: -.01em; }
.blog-card-title a { color: var(--ink); text-decoration: none; }
.blog-card-title a::after { content: ""; position: absolute; inset: 0; }
.blog-card-title a:focus-visible { outline: none; }
.blog-card:hover .blog-card-title a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.business .biz p.blog-card-lead, .blog-card-lead { margin: 0 20px 12px; font-size: 15px; line-height: 1.5; color: #526353; }
.business .biz p.blog-card-date, .blog-card-date { margin: auto 20px 18px; padding-top: 4px; font-size: 13px; color: #526353; }
.blog-all { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; font-weight: 600; color: #16382b; }

/* The home page's section: the website's heading row with «Все статьи →» at its right; a simple page's fold — a list. */
.company-site .blog-home .site-section-heading > p { font-size: 14px; }
.blog-list { list-style: none; margin: 0 0 8px; padding: 0; }
.blog-list li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; padding: 10px 0; border-bottom: 1px solid var(--rule); }
.blog-list a { font-weight: 600; color: var(--ink); }
.blog-list small { font-size: 13px; color: var(--muted); }

/* --- the pages: the list's head and its pages ------------------------------------------------------------------- */
.blog-page .blog-head { margin: 8px 0 32px; }
.blog-page .blog-head h1 { margin: 0 0 8px; font-size: clamp(32px, 4vw, 48px); line-height: 1.1; }
.business .biz .blog-head p { margin: 0; font-size: 16px; color: #526353; }
.business.blog-page .biz .blog-cards-page .blog-card-title { font-size: 21px; }
.blog-pages { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; margin: 32px 0 0; font-size: 15px; }
.blog-pages a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: #16382b; }
.blog-pages span { color: #526353; }
.blog-home-link a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; color: var(--ink); }

/* --- the article: one reading column; a wide screen keeps the booking beside it ----------------------------------- */
.blog-page .post-layout { margin: 0 0 56px; }
.blog-page .post { max-width: 640px; min-width: 0; }
.business .biz .post-back { margin: 0 0 12px; font-size: 15px; }
.post-back a { display: inline-flex; align-items: center; min-height: 44px; color: #16382b; }
.blog-page .post h1 { margin: 0 0 12px; font-size: clamp(30px, 4.2vw, 46px); line-height: 1.12; letter-spacing: -.02em; overflow-wrap: break-word; }
.business .biz .post-date { margin: 0 0 24px; font-size: 14px; color: #526353; }
.post-cover { aspect-ratio: 16 / 10; margin: 0 0 28px; border-radius: 14px; overflow: hidden; background: var(--shade); }
.post-cover img { display: block; width: 100%; height: 100%; object-fit: cover; }
.business .biz .post-lead, .post-lead { margin: 0 0 24px; font-size: 20px; line-height: 1.55; font-weight: 500; color: var(--ink); }

/* The body as the owner wrote it: paragraphs, headings, lists, bold, links and photos. */
.post-body { font-size: 18px; line-height: 1.7; color: var(--ink); overflow-wrap: break-word; }
.business .biz .post-body p, .post-body p { margin: 0 0 1.1em; font-size: inherit; line-height: inherit; color: var(--ink); }
.business .biz .post-body h2, .post-body h2 { margin: 1.7em 0 .55em; font-size: 26px; line-height: 1.25; letter-spacing: -.015em; }
.post-body ul, .post-body ol { margin: 0 0 1.1em; padding-left: 1.4em; }
.post-body li { margin: 0 0 .4em; padding-left: .2em; }
.post-body li::marker { color: #38624a; }
.post-body strong { font-weight: 700; }
.post-body a { color: #16382b; text-decoration: underline; text-decoration-color: var(--lime-deep, #3d711f); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.post-body a:hover { text-decoration-color: currentColor; }
.post-figure { margin: 1.6em 0; }
.post-figure img { display: block; width: 100%; height: auto; border-radius: 12px; background: var(--shade); }
.post-figure figcaption { margin-top: 8px; font-size: 14px; line-height: 1.5; color: #526353; }
.post-body > :last-child { margin-bottom: 0; }

/* The closing block: the company, its one lime, its contacts. */
.post-book { margin: 40px 0 0; padding: 28px; max-width: 640px; border: 1px solid #d9e3d8; border-radius: 14px; background: #fff; }
.business .biz .post-book h2 { margin: 0 0 8px; font-size: 22px; line-height: 1.25; }
.business .biz .post-book p { margin: 0 0 16px; font-size: 16px; color: #3d4f47; }
.business .biz .post-book p.post-book-action { margin: 0 0 16px; }
.post-book .btn.lime { min-height: 52px; padding: 10px 28px; border-radius: var(--radius, 10px); font-size: 16px; text-align: center; }
/* The contacts a row each (the owner's audit, 08.10.2026: no «·» left hanging at a line's end). */
.business .biz .post-book .post-contacts { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 20px; margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.6; color: #526353; }
.business .biz .post-book .post-contacts li { margin: 0; padding: 0; }
.post-contacts a { display: inline-block; padding: 6px 0; color: #16382b; }

.blog-more { margin: 56px 0 0; }
.business .biz .blog-more h2 { margin: 0 0 24px; font-size: 28px; }

@media (min-width: 1100px) {
  .blog-page .post-layout { display: grid; grid-template-columns: minmax(0, 640px) minmax(280px, 340px); column-gap: 64px; align-items: start; }
  .blog-page .post-layout .post-book { position: sticky; top: 96px; margin: 68px 0 0; }
  .blog-page .post-book .btn.lime { width: 100%; }
}
@media (max-width: 1023px) {
  .blog-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 699px) {
  .blog-cards { grid-template-columns: 1fr; gap: 16px; }
  .post-body { font-size: 17px; line-height: 1.65; }
  .business .biz .post-body h2, .post-body h2 { font-size: 22px; }
  .business .biz .post-lead, .post-lead { font-size: 18px; }
  .post-cover { margin-bottom: 24px; border-radius: 12px; }
  .post-book { padding: 22px; }
  .post-book .btn.lime { width: 100%; }
  .blog-page .post-layout { margin-bottom: 40px; }
}
@media (max-width: 1023px) {
  .business.blog-page .control-main.biz { padding-bottom: var(--s6); } /* no sticky booking bar to keep room for */
}
@media (prefers-reduced-motion: reduce) {
  .blog-card { transition: none; }
}
