/*
Theme Name: ЛенСтальКанат
Author: Impartner
Author URI: https://impartner.ru
Description: Адаптивная тема производственной компании ЛенСтальКанат.
Version: 1.6.32
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: traversa
*/

:root {
  color-scheme: light;
  --ink: #191919;
  --link: #5a4421;
  --green: #476239;
  --action: #426536;
  --action-hover: #34512b;
  --surface-green: #f5f8f1;
  --border-green: #dbe5d5;
  --ochre: #d69b50;
  --panel-radius: 8px;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font: 14px/1.35 Arimo, Arial, Helvetica, sans-serif; color: var(--ink); background: #fff; }
a { color: var(--link); text-underline-offset: 0.17em; }
a:hover { color: var(--green); text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid #285e21; outline-offset: 3px; }
img { display: block; max-inline-size: 100%; block-size: auto; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
.visually-hidden {
  position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
}
.shell { width: min(100% - 2rem, clamp(1000px, 80vw, 1240px)); margin-inline: auto; }
ul { padding-inline-start: 1.4em; }
.brand { position: relative; min-width: 0; }
.logo { position: absolute; top: 22px; left: 38px; display: block; width: 184px; max-width: 100%; text-decoration: none; }
.logo-descriptor {
  display: block; margin-top: 4px; text-align: center;
  color: #435459; font-size: 13px; line-height: 1.22;
  font-style: italic; font-weight: 700; text-transform: uppercase;
}
.contacts { list-style: none; margin: 0; padding: 0; }
.contacts li { min-width: 0; overflow-wrap: anywhere; }
.contacts strong, .contacts a { display: block; color: inherit; }
.phone { text-decoration: none; }
.phone:hover { text-decoration: underline; }
.hours { margin: 6px 0 0; font-size: 13px; }
.primary ul, .catalog ul, .news ul { list-style: none; margin: 0; padding: 0; }
.city-contacts { position: absolute; top: 28px; left: 36%; right: 12px; }
.city-contacts .contacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.contacts .hours { display: block; margin-top: 3px; }
.hours-open { display: inline-flex; align-items: center; gap: 6px; color: var(--green); font-weight: 700; }
.hours-open::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.city-picker { display: flex; flex-wrap: wrap; align-items: center; gap: 0 10px; margin: 6px 0 0; }
.city-context { color: #4c5948; }
.city-action {
  padding: 4px 0; min-height: 32px; border: 0; background: transparent;
  color: var(--green); font-weight: 700; text-decoration: underline; text-underline-offset: 0.15em;
}
.city-action:hover { color: var(--action-hover); }
.city-dialog {
  width: min(500px, calc(100% - 24px)); max-height: calc(100% - 24px);
  padding: clamp(14px, 3vw, 22px); overflow: auto;
  border: 1px solid var(--border-green); border-radius: var(--panel-radius);
  background: #fff; color: var(--ink); box-shadow: 0 16px 44px rgb(25 31 23 / 22%);
}
.city-dialog::backdrop { background: rgb(25 31 23 / 48%); }
.city-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.city-dialog-heading h2 { margin: 0; color: var(--green); font-size: 23px; }
.city-dialog-close {
  display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
  border: 1px solid var(--border-green); border-radius: 6px; background: var(--surface-green); color: var(--ink);
}
.city-dialog-intro { margin: 4px 0 12px; color: #4c5948; }
.city-filter {
  width: 100%; min-height: 44px; padding: 6px 10px; border: 1px solid #899b82;
  border-radius: 6px; background: #fff; color: var(--ink); font: inherit; font-size: 16px;
}
.city-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 12px; margin: 12px 0 0; padding: 0; list-style: none; }
.city-list a { display: flex; align-items: center; min-height: 44px; padding: 6px 8px; border-radius: 6px; overflow-wrap: anywhere; }
.city-list a:hover, .city-list a[aria-current="page"] { background: var(--surface-green); color: var(--green); }
.city-list a[aria-current="page"] { font-weight: 700; }
.city-empty { margin: 12px 0 0; color: #4c5948; }
.site-header {
  --crane-art: url(assets/img/crane-header.webp?v=2);
  --crane-width: min(calc(100cqw * 2192 / 1852), calc(100vw - 1rem));
  --crane-height: calc(var(--crane-width) * 529 / 2192);
  --crane-body-height: calc(var(--crane-width) * 475 / 2192);
  position: relative;
  isolation: isolate;
  container-type: inline-size;
  display: grid;
  grid-template-columns: minmax(0, 761fr) minmax(0, 240fr);
}
.site-header::before {
  content: ""; position: absolute; inset: auto auto 0 50%; translate: -50% 0; z-index: -1;
  width: var(--crane-width); height: var(--crane-height);
  background: var(--crane-art) center bottom / 100% 100% no-repeat;
  pointer-events: none;
}
.brand {
  min-height: clamp(352px, calc(19.2vw + 96px), 394px);
  min-height: max(352px, calc(25.65cqw + 116px));
}
.primary { position: relative; z-index: 1; padding: 22px 0 0 27px; }

.primary nav a { display: inline-block; min-height: 36px; padding: 6px 8px 6px 4px; color: var(--green); font-size: 18px; }

.layout { display: grid; align-items: start; }
.layout > * { min-width: 0; }
.site-header + .layout { margin-top: var(--header-gap, 16px); }
.home {
  --home-column-gap: 19.5px;
  --home-news-width: calc((100% - 2 * var(--home-column-gap)) * 240 / 961);
  --header-gap: 16px;
}
.home .layout { grid-template-columns: minmax(0, 267fr) minmax(0, 454fr) minmax(0, 240fr); column-gap: var(--home-column-gap); }
.home-showcases .layout { grid-template-columns: minmax(0, 1fr) minmax(0, var(--home-news-width)); }
.inner .layout { grid-template-columns: minmax(0, clamp(267px, 18vw, 295px)) minmax(0, 1fr); column-gap: clamp(15px, 1.5vw, 24px); }
.catalog details {
  border: 1px solid var(--border-green); border-radius: var(--panel-radius);
  background: var(--surface-green);
}
.catalog-heading {
  display: block; padding: 12px 16px; list-style: none;
  color: var(--green); font-size: 16px; font-weight: 700; line-height: 1.25;
}
.catalog-heading::-webkit-details-marker { display: none; }
.catalog ul { padding: 0 16px 16px; }
.catalog li { display: flex; align-items: baseline; gap: 8px; }
.catalog li::before, .spec-list li::before {
  content: ""; flex: 0 0 7px; height: 7px;
  border: solid #a29d7d; border-width: 1px 1px 0 0; transform: rotate(45deg);
}
.catalog li a {
  display: block; flex: 1; min-width: 0; padding: 7px 5px;
  color: #3d311b; text-decoration-thickness: 1px;
}
.catalog li a:hover { color: var(--green); text-decoration-thickness: 1px; }
.catalog li a[aria-current="page"], .catalog li.current-menu-ancestor > a, .catalog li.current_page_ancestor > a { color: var(--green); background: #e7efdf; border-radius: 4px; font-weight: 700; text-decoration: none; }
.catalog nav img { width: 100%; border-radius: 0 0 var(--panel-radius) var(--panel-radius); }
@media (min-width: 681px) {
  .home .catalog ul { background: linear-gradient(var(--surface-green) 65%, #fdfaf5); }
}
.hero-title {
  margin: 0 0 14px; color: var(--ink); font-size: clamp(23px, 1.9vw, 28px);
  font-weight: 700; line-height: 1.15; overflow-wrap: anywhere; text-wrap: balance;
}
.news-section h2 {
  margin: 0; padding: 10px 16px;
  border: 1px solid var(--border-green); border-radius: var(--panel-radius);
  background: var(--surface-green); color: var(--green); font-size: 18px; line-height: 1.25;
}
.news-items { padding-top: 12px; }
.news-items li { margin-bottom: 10px; }
.news-items li a { color: #555; }
.news-items time { display: block; color: #514529; font-weight: bold; }
.wagon-track { margin-top: 12px; }
.wagon-column .wagon-track { margin-top: 0; }
.news-picture { width: 100%; }

@media (min-width: 961px) and (min-height: 440px) and (prefers-reduced-motion: no-preference) {
  .home .news,
  .home .wagon-column {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    container-type: inline-size;
  }
  .wagon-track {
    position: relative;
    flex: 1;
    min-height: 116cqw;
    container-type: size;
    overflow: clip;
    isolation: isolate;
  }
  .wagon-track::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    aspect-ratio: 3;
    background: url(assets/img/wagon-rails.svg) center bottom / contain no-repeat;
    pointer-events: none;
  }
  .wagon {
    --wagon-start: max(16px, calc((100dvh - 100cqw) / 2));
    --wagon-end: calc(100dvh - 100cqw);
    position: sticky;
    top: calc(var(--wagon-start) + (var(--wagon-end) - var(--wagon-start)) * var(--wagon-progress, 0));
    z-index: 1;
    mix-blend-mode: multiply;
  }
  @supports (animation-timeline: scroll(root block)) {
    .wagon {
      animation: wagon-descent linear both;
      animation-timeline: scroll(root block);
    }
  }
  .wagon::before {
    content: "";
    position: absolute;
    /* The cable moves with the wagon and is clipped at the top of the track. */
    inset: auto 0 calc(100% - 0.889cqw);
    height: 100cqh;
    background: url(assets/img/wagon-cable-strip.png) center bottom / 100% auto repeat-y;
    pointer-events: none;
  }
}

@keyframes wagon-descent {
  from { top: var(--wagon-start); }
  to { top: var(--wagon-end); }
}

.gallery { margin: 0; max-width: 600px; }
.gallery-frame {
  position: relative; overflow: hidden; border-radius: var(--panel-radius);
  background: #f4f5f0;
}
.slides { margin: 0; padding: 0; list-style: none; }
.slide img { width: 100%; aspect-ratio: 454 / 307; object-fit: cover; }
.gallery figcaption { text-align: center; margin-block: 8px 16px; font-style: italic; }
.gallery-prev, .gallery-next {
  position: absolute; top: 50%; transform: translateY(-50%);
  display: grid; place-items: center; width: 44px; height: 44px; padding: 0;
  border: 0; border-radius: 50%; background: rgb(20 29 17 / 78%); color: #fff;
}
.gallery-prev { left: 8px; }
.gallery-next { right: 8px; }
.gallery-prev:hover, .gallery-next:hover { background: #182411; }
.gallery-prev:focus-visible, .gallery-next:focus-visible { outline-color: #fff; outline-offset: 2px; }
.gallery-thumbnails {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 48px), 1fr));
  gap: clamp(5px, 1vw, 10px); margin-top: 8px;
}
.gallery-thumbnails button {
  min-width: 0; min-height: 44px; padding: 2px; overflow: hidden;
  border: 2px solid transparent; border-radius: 6px; background: #f4f5f0;
}
.gallery-thumbnails button:hover { border-color: #82917b; }
.gallery-thumbnails button[aria-pressed="true"] { border-color: var(--action); }
.gallery-thumbnails img { width: 100%; aspect-ratio: 454 / 307; object-fit: cover; border-radius: 3px; }
.copy { max-width: 68ch; font-size: 16px; line-height: 1.55; }
.copy p { margin: 0 0 0.8em; }
.copy :is(h2, h3, h4):not(.home-article-title) { margin: 1.15em 0 0.45em; line-height: 1.25; text-wrap: balance; }
.copy h2:not(.home-article-title) { font-size: clamp(1.25rem, 2vw, 1.5rem); }
.copy h3 { font-size: 1.125rem; }
.copy h4 { font-size: 1rem; }
.copy > :is(h2, h3, h4):not(.home-article-title):first-child { margin-top: 0; }
.copy :is(ul, ol) { margin: 0 0 0.9em; padding-inline-start: 1.5em; }
.copy li + li { margin-top: 0.3em; }
.copy li > :is(ul, ol) { margin-block: 0.3em 0; }
.copy dl { margin: 0 0 0.9em; }
.copy dt { font-weight: 700; }
.copy dd { margin: 0 0 0.75em; }
.copy .certificate-list {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 100px), 1fr));
  gap: 12px; padding: 0; list-style: none;
}
.copy .certificate-list li + li { margin-top: 0; }
.certificate-list img { margin-inline: auto; }
.home-article-title { margin: 0 0 0.5em; color: #080808; font-size: 32px; line-height: 1.15; }
.home .copy h3 { font-size: 24px; line-height: 1.15; margin: 0.85em 0 0.5em; }
.inner main { padding: 8px 0 0 10px; }
.breadcrumbs {
  margin: 0 0 12px; color: #4c5948; font-size: 0.875rem; line-height: 1.45;
  overflow-wrap: anywhere;
}
.breadcrumbs a, .breadcrumbs a:hover { text-decoration-thickness: 1px; }
.product-title {
  margin: 0 0 14px; color: var(--green); font-size: 1.5rem; line-height: 1.22;
  font-weight: normal; overflow-wrap: anywhere; text-wrap: balance;
}
.inner .product-title {
  margin-bottom: 18px;
  font-size: clamp(1.5rem, 1.25rem + 0.8vw, 2rem); font-weight: 700;
}
.quote-panel {
  margin: 0 0 16px; padding: clamp(12px, 1.2vw, 16px);
  border: 1px solid var(--border-green); border-radius: var(--panel-radius);
  background: var(--surface-green); line-height: 1.45;
}
.quote-panel h2 { margin: 0 0 4px; color: var(--green); font-size: 18px; line-height: 1.25; }
.quote-panel p { margin: 0 0 7px; max-width: 66ch; }
.quote-panel .quote-hours { margin-bottom: 12px; color: #4c5948; }
.quote {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px;
  padding: 8px 12px; border-radius: 8px; list-style: none; cursor: pointer;
  background: var(--action); color: #fff; font-weight: 700;
}
.quote:hover { background: var(--action-hover); color: #fff; }
.quote { text-decoration: none; }
.quote-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.quote-email-help { color: #4c5948; font-size: 13px; }
.products {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.5vw, 20px); margin: 0 0 24px; padding: 0; list-style: none;
}
.products li { min-width: 0; }
.products a {
  display: grid; grid-template-rows: auto 1fr; gap: 12px; height: 100%;
  padding: clamp(10px, 1.2vw, 16px);
  border: 1px solid #dbe1d7; border-radius: var(--panel-radius); background: #fff;
  color: var(--ink); text-decoration: none;
}
.products .product-link--text { grid-template-rows: 1fr; min-height: 68px; align-items: center; }
.products a:hover {
  border-color: #849a79; color: var(--green);
  text-decoration: underline; text-decoration-thickness: 1px;
}
.products img { justify-self: center; width: min(100%, 232px); aspect-ratio: 4 / 3; object-fit: contain; }
.products .product-illustration { aspect-ratio: 3 / 2; }
.products span { font-size: 16px; line-height: 1.3; font-weight: 700; overflow-wrap: anywhere; }
.home-showcase { margin-block-end: clamp(32px, 3.4vw, 48px); }
.home-showcase h2 { margin: 0; }
.home-products { border: 1px solid var(--border-green); border-radius: var(--panel-radius); }
.home-showcase-heading {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 0 16px; padding: 8px clamp(16px, 1.6vw, 24px);
  background: var(--surface-green); color: var(--green);
}
.home-products .home-showcase-heading {
  border-block-end: 1px solid var(--border-green);
  border-start-start-radius: calc(var(--panel-radius) - 1px);
  border-start-end-radius: calc(var(--panel-radius) - 1px);
}
.home-works .home-showcase-heading {
  margin-block-end: 16px; border: 1px solid var(--border-green); border-radius: var(--panel-radius);
}
.home-products .products {
  gap: 16px clamp(12px, 1.6vw, 24px); margin: 0; padding: 12px clamp(16px, 1.6vw, 24px) 16px;
}
.home-products .product-link {
  align-items: start; gap: 8px; min-height: 68px; padding: 0; text-align: center;
  border: 0; background: none; text-decoration: underline; text-decoration-thickness: 1px;
}
.home-products .product-link img {
  width: min(100%, clamp(112px, 12vw, 168px)); aspect-ratio: 3 / 2;
  padding: 5px; border-radius: var(--panel-radius); background: var(--surface-green);
}
.home-products .product-link .product-illustration { padding: 0; background: #fff; }
.home-work-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.home-work { min-width: 0; padding: 8px; border: 1px solid var(--border-green); border-radius: var(--panel-radius); }
.home-work-link { display: block; color: var(--green); text-decoration-thickness: 1px; }
.home-work img {
  width: 100%; aspect-ratio: 16 / 10; object-fit: contain; border-radius: 4px;
  background: #f8f9f6;
}
.home-work h3 {
  margin: 12px 4px 0; font-size: 1rem; line-height: 1.4; text-wrap: balance; overflow-wrap: anywhere;
}
.home-work p { margin: 4px; color: #3b4539; font-size: 0.875rem; line-height: 1.45; overflow-wrap: anywhere; }
.home-showcase-link {
  display: inline-flex; align-items: center; min-height: 44px; margin-inline-start: auto;
  color: var(--green); font-weight: 700; text-decoration-thickness: 1px;
}
.home-showcases main > .quote-panel { margin-block-end: 32px; }
/* Keep the title and section headings in order across the home page. */
.home-showcases main > h1 { font-size: 2rem; line-height: 1.2; letter-spacing: -0.015em; }
.home-showcases :is(.home-showcase, .copy) h2 { font-size: 1.5rem; line-height: 1.3; text-wrap: balance; }
.home-showcases main .copy h3 { font-size: 1.125rem; line-height: 1.3; }
.home-showcases .quote-panel h2 { font-size: 1.25rem; line-height: 1.3; }
.home-showcases main > .copy { max-width: none; font-size: clamp(16px, 1.17vw, 18px); line-height: 1.6; }
.error-page {
  margin-block: clamp(16px, 3vw, 40px); padding: clamp(16px, 3vw, 40px);
  border: 1px solid var(--border-green); border-radius: var(--panel-radius);
  background: var(--surface-green);
}
.error-page-code { margin: 0 0 4px; color: var(--green); font-size: 1rem; font-weight: 700; }
.error-page-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; }
.error-page-actions > a { display: inline-flex; align-items: center; min-height: 44px; }
.product-subheading { color: #82592d; font-size: 20px; font-weight: normal; }
.spec-list { list-style: none; padding: 0; margin: 0.5rem 0; }
.spec-list li { display: flex; gap: 0.6em; margin-block: 0.28em; align-items: baseline; }
.footer { margin-top: 30px; color: #5a4421; }
.footer-info, .footer .contacts { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: 12px 24px; }
.footer-info { padding: 14px 18px; border: 1px solid #e8dfc9; border-radius: var(--panel-radius); background: #f7f2e7; }
.footer-info p { margin: 0; }
.footer-company a { display: block; width: fit-content; margin-top: 6px; font-size: 13px; text-decoration-thickness: 1px; }

@media (min-width: 961px) {
  .home { --wagon-inline-shift: clamp(-8px, calc((100vw - 1088px) / 16), 0px); }
  .home .site-header::after, .home .wagon-track { translate: var(--wagon-inline-shift) 0; }
  .brand { min-height: max(412px, calc(25.65cqw + 140px)); }
  .home .site-header::after {
    content: ""; position: absolute; inset: auto 0 calc(-1 * var(--header-gap)) auto; z-index: -1;
    /* Match the right column width so the hoist shares the wagon cable axis. */
    width: var(--home-news-width);
    height: calc(0.52 * var(--crane-body-height) + var(--header-gap));
    background:
      linear-gradient(#292723 75%, #d29a2e 75%) 50.8% top / 10% 6px no-repeat,
      linear-gradient(to right, transparent 46.78%, #262522 46.78% 47.56%,
        transparent 47.56% 53.89%, #262522 53.89% 54.67%, transparent 54.67%);
    pointer-events: none;
  }
}
@media (min-width: 681px) {
  .catalog-heading { pointer-events: none; }
}
@media (min-width: 681px) and (max-width: 960px) {
  /* Reserve room for the part of the illustration that reaches the menu column. */
  .primary { padding-bottom: calc(0.63 * var(--crane-body-height) + 8px); }
}
@media (max-width: 960px) {
  .city-contacts { left: max(43%, 230px); }
  .city-contacts .contacts { grid-template-columns: minmax(0,1fr); gap: 8px; }
  .home .layout { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); }
  .home .news { grid-column: 2; margin-top: 16px; }
  .home-showcases .layout { grid-template-columns: minmax(0, 1fr); }
  .wagon-column { display: none; }
  .news-picture { width: min(240px,100%); }
  .inner .layout { grid-template-columns: minmax(0, 220px) minmax(0, 1fr); }
  .products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  body { font-size: 15px; line-height: 1.42; }
  .shell { width: min(100% - 1.5rem, 560px); }
  .site-header { grid-template-columns: minmax(0,1fr); }
  .site-header::before { content: none; }
  .brand {
    min-height: 0; padding-top: 12px; padding-bottom: calc(100cqw * 529 / 2192);
    background: var(--crane-art) center bottom / 100% auto no-repeat;
  }
  .logo { position: static; margin-inline-start: 12px; width: min(150px, calc(100% - 24px)); }
  .logo-descriptor { font-size: 11px; }
  .city-contacts { position: static; margin: 12px; }
  .city-picker {
    position: absolute; inset-block-start: 12px; inset-inline: min(174px, 58%) 12px;
    display: grid; justify-items: end; margin: 0; text-align: end;
  }
  .city-context { font-size: 13px; overflow-wrap: anywhere; }
  .city-action { min-height: 44px; font-size: 14px; text-align: end; }
  .city-list { grid-template-columns: minmax(0, 1fr); }
  .footer-info .contacts { flex-direction: column; }
  .desktop-break { display: none; }
  
  .primary { margin: 0; padding: 0.25rem 0 0; min-height: 0; }
  .primary nav ul { display: flex; flex-wrap: wrap; gap: 0 0.25rem; }
  .primary nav a { display: flex; align-items: center; padding: 0.375rem 0.25rem; font-size: 15px; line-height: 1.25; }
  .home .layout, .inner .layout, .home-showcases .layout { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .site-header + .layout { margin-top: 12px; }
  .catalog-heading {
    min-height: 44px; display: flex; justify-content: space-between; align-items: center;
    padding: 0.65rem 0.8rem; font-size: 16px; font-weight: bold; cursor: pointer;
  }
  .catalog-heading::after { content: "+"; padding-inline-start: 0.5rem; }
  details[open] > .catalog-heading::after { content: "−"; }
  .catalog nav img { display: none; }
  .catalog ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 0.8rem; padding: 0.5rem 0.75rem; }
  .catalog li a { min-height: 44px; padding-block: 0.55rem; overflow-wrap: anywhere; }
  .hero-title { font-size: clamp(22px, 5.7vw, 24px); }
  .home-showcases main > h1 { font-size: 1.625rem; line-height: 1.3; }
  .home-showcases :is(.home-showcase, .copy) h2 { font-size: 1.25rem; line-height: 1.4; }
  .home-work-list { grid-template-columns: minmax(0, 1fr); }
  .home-article-title { font-size: clamp(23px,6vw,29px); }
  .home .copy h3 { font-size: 20px; }
  .home .news { grid-column: auto; margin-top: 0; }
  .inner main { padding: 6px 0 0; }
  .products { gap: 10px; }
  .products a { gap: 8px; }
  .products span { font-size: 14px; }
}

.blog-sections ul {
  display: flex; flex-wrap: wrap; gap: 8px 20px;
  margin: 0 0 24px; padding: 0; list-style: none;
}
.blog-pagination { margin-block: 28px 16px; }
.blog-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 6px; }
.blog-pagination .page-numbers {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px;
  padding: 0.45rem 0.7rem; border: 1px solid transparent; border-radius: 6px;
  color: var(--green); font-weight: 600; text-decoration: none;
}
.blog-pagination a.page-numbers { border-color: var(--border-green); }
.blog-pagination a.page-numbers:hover { border-color: var(--green); background: var(--surface-green); }
.blog-pagination .page-numbers.current { border-color: var(--action); background: var(--action); color: #fff; }
.blog-pagination .page-numbers.dots { min-width: 1.75rem; padding-inline: 0.25rem; }
.blog-pagination .screen-reader-text {
  position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
}
.city-page-contacts { margin-block: 20px; }
.city-page-contacts h2 { font-size: 18px; margin: 0 0 8px; }
.city-page-contacts p { margin: 4px 0; }
.city-page-contacts address { margin-block: 8px; font-style: normal; }
.city-map {
  display: block; width: min(100%, 760px); height: clamp(280px, 45vw, 420px);
  margin-block: 12px; border: 1px solid var(--border-green); border-radius: var(--panel-radius);
}

.legacy-table { max-width: 100%; overflow-x: auto; margin-block: 12px; }

.entry-list { display: grid; gap: 14px; }
.entry-card {
  display: grid; gap: 16px; align-items: start;
  padding: clamp(14px, 2vw, 22px); border: 1px solid var(--border-green);
  border-radius: var(--panel-radius); background: #fff;
}
.entry-card--image { grid-template-columns: clamp(112px, 22%, 180px) minmax(0, 1fr); }
.entry-card-media { overflow: hidden; border-radius: var(--panel-radius); background: var(--surface-green); }
.entry-card-media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.entry-card time, .entry-detail-header time { color: #4c5948; font-size: 13px; }
.entry-card h2, .entry-card h3 { margin: 4px 0 6px; font-size: clamp(18px, 2.1vw, 23px); line-height: 1.25; text-wrap: balance; }
.entry-card h2 a, .entry-card h3 a { color: var(--green); text-decoration-thickness: 1px; }
.entry-card p { margin: 0; max-width: 65ch; color: #3b4539; font-size: 15px; line-height: 1.5; }
.entry-empty { padding: 18px; border-radius: var(--panel-radius); background: var(--surface-green); }
.entry-detail-header { margin-bottom: 20px; padding-bottom: 12px; border-bottom: 1px solid var(--border-green); }
.entry-detail-header .product-title { margin: 6px 0 0; }
.entry-detail-photo { max-width: 760px; margin: 0 0 22px; }
.entry-detail-photo img { border-radius: var(--panel-radius); }
.entry-body figure { max-width: 100%; margin: 16px 0; }
.entry-body figcaption, .entry-body .wp-caption-text { margin-top: 6px; color: #4c5948; font-size: 13px; }
.work-products, .related-works { margin-block: 26px 16px; }
.work-products h2, .related-works h2 { color: var(--green); }
.work-products > h2, .related-works > h2 { margin: 0 0 12px; font-size: clamp(21px, 2.5vw, 28px); }
.work-products .products {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 290px));
  margin-bottom: 0;
}

.photo-trigger {
  display: inline-block; max-width: 100%; padding: 0; border: 0; background: none;
  vertical-align: top; cursor: zoom-in;
}
.entry-card-media .photo-trigger { display: block; width: 100%; }
.photo-dialog {
  width: min(94vw, 1060px); max-height: 94dvh; padding: 52px 12px 12px;
  border: 0; border-radius: var(--panel-radius); color: #fff; background: #20251f;
}
.photo-dialog::backdrop { background: rgb(15 19 14 / 82%); }
.photo-dialog-frame { display: grid; justify-items: center; margin: 0; }
.photo-dialog-frame img { width: auto; max-width: 100%; max-height: calc(94dvh - 104px); object-fit: contain; }
.photo-dialog-frame figcaption { margin: 8px 52px 0; text-align: center; }
.photo-dialog-frame figcaption:empty { margin: 0; }
.photo-dialog button {
  position: absolute; display: grid; place-items: center; width: 44px; height: 44px;
  padding: 0; border: 1px solid #616b5f; border-radius: 8px;
  color: #fff; background: #303a2f;
}
.photo-dialog button:hover { background: #425440; }
.photo-dialog button:focus-visible { outline-color: #dce7d6; }
.photo-close { top: 5px; right: 8px; }
.photo-prev { top: 50%; left: 8px; }
.photo-next { top: 50%; right: 8px; }

@media (max-width: 560px) {
  .entry-card--image { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .entry-card-media img { aspect-ratio: 16 / 9; }
}

@media (max-width: 680px) {
  .city-contacts .contacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .city-contacts .contacts > :only-child { grid-column: 1 / -1; }
  .city-contacts .contacts a[href^="mailto:"] { font-size: 0.875rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .hours-open::before { animation: hours-indicator 1.6s ease-in-out infinite; }
}

@keyframes hours-indicator {
  50% { opacity: 0.2; }
}
