/*
 * ПОЛИТАНК — шаблон «2b Классика с зелёным» для 1С-Битрикс: Управление сайтом («Стандарт»)
 * Классический светлый B2B-лендинг: скругления, карточки с границами, без теней (кроме CTA).
 * Синий = бренд и навигация, зелёный = все действия. Один шрифт — Golos Text (локально, OFL).
 * Стили шаблона; контентные стили статьи — в styles.css.
 */

/* ==========================================================================
   1. Шрифт: Golos Text 400 / 500 / 600 / 700 / 800
   ========================================================================== */

@font-face { font-family:'Golos Text'; font-style:normal; font-weight:400; font-display:swap;
  src:url("fonts/golos-text-cyrillic-400-normal.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:400; font-display:swap;
  src:url("fonts/golos-text-latin-ext-400-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:400; font-display:swap;
  src:url("fonts/golos-text-latin-400-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:500; font-display:swap;
  src:url("fonts/golos-text-cyrillic-500-normal.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:500; font-display:swap;
  src:url("fonts/golos-text-latin-ext-500-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:500; font-display:swap;
  src:url("fonts/golos-text-latin-500-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:600; font-display:swap;
  src:url("fonts/golos-text-cyrillic-600-normal.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:600; font-display:swap;
  src:url("fonts/golos-text-latin-ext-600-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:600; font-display:swap;
  src:url("fonts/golos-text-latin-600-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:700; font-display:swap;
  src:url("fonts/golos-text-cyrillic-700-normal.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:700; font-display:swap;
  src:url("fonts/golos-text-latin-ext-700-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:700; font-display:swap;
  src:url("fonts/golos-text-latin-700-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:800; font-display:swap;
  src:url("fonts/golos-text-cyrillic-800-normal.woff2") format("woff2");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:800; font-display:swap;
  src:url("fonts/golos-text-latin-ext-800-normal.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Golos Text'; font-style:normal; font-weight:800; font-display:swap;
  src:url("fonts/golos-text-latin-800-normal.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* ==========================================================================
   2. Токены и база
   ========================================================================== */

:root {
  --c-primary:#0099CC;        /* фирменный синий: бренд, навигация, контурные кнопки */
  --c-primary-dark:#00719B;   /* конец градиента CTA-баннера */
  --c-accent:#52B62E;         /* зелёный: все действия, бейджи, рамки спец-карточек */
  --c-accent-text:#3E8A22;    /* тёмно-зелёный: ссылки «подробнее», галочки */
  --c-green-bg:#EDF7E7;       /* светло-зелёная подложка (кружки галочек) */
  --c-green-bg-2:#F2FAEC;     /* карточка «нестандартная ёмкость», формы */
  --c-ink:#14293A;            /* основной текст, фон футера */
  --c-lead:#42586A;           /* лид-текст */
  --c-muted:#6C8496;          /* вторичный текст */
  --c-placeholder:#7A93A5;    /* плейсхолдеры полей */
  --c-border:#DCE8EF;         /* границы карточек */
  --c-line:#E5ECF1;           /* разделитель шапки */
  --c-hero:#EAF6FB;           /* фон hero */
  --c-footer-text:#9FB6C6;
  --c-footer-link:#7FD6F2;
  --f-text:'Golos Text', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --container:1280px;
  --gutter:48px;
  --r-btn:8px;
  --r-card:12px;
  --r-block:14px;
  --shadow-cta:0 6px 16px rgba(82,182,46,.3);
  --shadow-dark:0 6px 16px rgba(0,0,0,.15);
  --shadow-float:0 4px 14px rgba(20,41,58,.15);
  --gradient-cta:linear-gradient(135deg,#0099CC,#00719B);
}

*, *::before, *::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  margin:0;
  background:#fff;
  color:var(--c-ink);
  font-family:var(--f-text);
  font-size:15px;
  line-height:1.5;
  display:flex;
  flex-direction:column;
  min-height:100vh;
}
.pt-main { flex:1 0 auto; width:100%; }
.pt-footer { flex-shrink:0; }
img { max-width:100%; height:auto; border:0; display:block; }
a { color:var(--c-primary); text-decoration:none; transition:color .15s ease; }
a:hover { color:var(--c-primary-dark); text-decoration:underline; }
h1, h2, h3, h4, p { margin:0; }
button { font:inherit; border:0; background:none; cursor:pointer; color:inherit; padding:0; }
input, textarea, select { font:inherit; }

.pt-container { max-width:var(--container); margin:0 auto; padding-left:var(--gutter); padding-right:var(--gutter); }
.pt-section { padding:52px 0; }
.pt-section--tight { padding:36px 0; }
.pt-section--alt { background:#F7FAFC; }

/* Заголовок секции + ссылка «Все →» */
.pt-sec-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:26px; }
.pt-sec-head h2 { font-size:30px; line-height:1.2; font-weight:800; letter-spacing:-.01em; }
.pt-sec-head p { font-size:15px; color:var(--c-muted); margin-top:6px; }
.pt-sec-link { font-size:14.5px; font-weight:700; color:var(--c-accent-text); white-space:nowrap; }
.pt-sec-link:hover { color:var(--c-accent-text); }

/* Метки и бейджи */
.pt-badge { display:inline-block; background:var(--c-green-bg); color:var(--c-accent-text); font-size:12.5px; font-weight:700; padding:6px 14px; border-radius:99px; }
.pt-pill { display:inline-block; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:99px; background:var(--c-green-bg); color:var(--c-accent-text); white-space:nowrap; }
.pt-pill--grey { background:#F2F6F9; color:var(--c-muted); }
.pt-pill--blue { background:var(--c-hero); color:var(--c-primary); }
.pt-label { font-size:12.5px; font-weight:700; color:var(--c-primary); text-transform:uppercase; letter-spacing:.04em; }

/* Галочка в кружке */
.pt-check { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--c-green-bg); color:var(--c-accent-text); font-weight:800; font-size:15px; flex:none; }
.pt-check--sm { width:24px; height:24px; font-size:12px; }

/* ==========================================================================
   3. Кнопки: зелёный = действие, синий контур = вторичная
   ========================================================================== */

.pt-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-weight:700; font-size:15px; line-height:1.2; padding:14px 24px; border-radius:var(--r-btn);
  text-decoration:none; cursor:pointer; border:1.5px solid transparent; text-align:center;
  transition:background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.pt-btn:hover { text-decoration:none; }
.pt-btn--primary, .pt-btn--cta { background:var(--c-accent); color:#fff; box-shadow:var(--shadow-cta); }
.pt-btn--primary:hover, .pt-btn--cta:hover { background:#46A226; color:#fff; box-shadow:0 8px 20px rgba(82,182,46,.35); transform:translateY(-1px); }
.pt-btn--secondary { background:#fff; color:var(--c-primary); border-color:var(--c-primary); }
.pt-btn--secondary:hover { background:var(--c-hero); color:var(--c-primary-dark); }
.pt-btn--ghost { background:var(--c-green-bg); color:var(--c-accent-text); }
.pt-btn--ghost:hover { background:#DFF1D4; color:var(--c-accent-text); }
.pt-btn--banner { box-shadow:var(--shadow-dark); }
.pt-btn--sm { font-size:14px; padding:11px 18px; }
.pt-btn--block { display:flex; width:100%; }

/* ==========================================================================
   4. Топбар (синий)
   ========================================================================== */

.pt-topbar { background:var(--c-primary); color:#fff; font-size:12.5px; }
.pt-topbar__in { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-top:8px; padding-bottom:8px; }
.pt-topbar__left, .pt-topbar__right { display:flex; align-items:center; gap:18px; }
.pt-topbar a { color:#fff; }
.pt-topbar a:hover { color:#fff; text-decoration:underline; }
.pt-topbar__city { font-weight:600; }
.pt-topbar__city::after { content:" \25BE"; font-size:11px; }
.pt-topbar__note { opacity:.85; }

/* ==========================================================================
   5. Шапка
   ========================================================================== */

.pt-header { background:#fff; box-shadow:0 1px 0 var(--c-line); position:relative; z-index:20; }
.pt-header__in { display:grid; grid-template-columns:auto 1fr auto; gap:32px; align-items:center; padding-top:16px; padding-bottom:16px; }
.pt-logo { display:flex; align-items:center; gap:12px; text-decoration:none !important; color:inherit; }
.pt-logo__mark {
  width:42px; height:42px; border-radius:50%; flex:none;
  background:linear-gradient(135deg, var(--c-primary) 55%, var(--c-accent) 55%);
  display:grid; place-items:center; color:#fff; font-weight:800; font-size:20px; line-height:1;
}
.pt-logo__name { font-size:19px; font-weight:800; color:var(--c-primary); letter-spacing:.02em; line-height:1.15; }
.pt-logo__tag { font-size:10.5px; color:var(--c-muted); letter-spacing:.06em; text-transform:uppercase; }

.pt-nav { display:flex; gap:26px; justify-content:center; }
.pt-nav a { font-size:14.5px; font-weight:500; color:var(--c-ink); }
.pt-nav a:hover { color:var(--c-primary); text-decoration:none; }
.pt-nav a.is-active { font-weight:700; color:var(--c-primary); }

.pt-header__contacts { display:flex; align-items:center; gap:20px; }
.pt-header__phone { text-align:right; }
.pt-header__phone a { font-size:16px; font-weight:800; color:var(--c-ink); white-space:nowrap; }
.pt-header__phone a:hover { color:var(--c-primary); text-decoration:none; }
.pt-header__phone-note { font-size:11.5px; color:var(--c-muted); }

/* Бургер (≤1024) */
.pt-burger { display:none; width:44px; height:44px; position:relative; border-radius:var(--r-btn); }
.pt-burger:hover { background:var(--c-hero); }
.pt-burger span, .pt-burger::before, .pt-burger::after {
  content:""; position:absolute; left:11px; right:11px; height:2px; border-radius:2px; background:var(--c-ink); transition:transform .15s ease, opacity .15s ease;
}
.pt-burger::before { top:14px; } .pt-burger span { top:21px; } .pt-burger::after { top:28px; }
.pt-burger[aria-expanded="true"]::before { transform:translateY(7px) rotate(45deg); }
.pt-burger[aria-expanded="true"] span { opacity:0; }
.pt-burger[aria-expanded="true"]::after { transform:translateY(-7px) rotate(-45deg); }

/* Мобильная панель меню */
.pt-mobile-menu { display:none; background:#fff; box-shadow:0 1px 0 var(--c-line); }
.pt-mobile-menu.is-open { display:block; }
.pt-mobile-menu nav { display:flex; flex-direction:column; padding:8px var(--gutter); }
.pt-mobile-menu a { font-size:15px; font-weight:500; color:var(--c-ink); padding:13px 0; border-bottom:1px solid var(--c-line); min-height:44px; display:flex; align-items:center; }
.pt-mobile-menu a:last-child { border-bottom:0; }
.pt-mobile-menu a.is-active { color:var(--c-primary); font-weight:700; }
.pt-mobile-menu__cta { padding:8px var(--gutter) 20px; display:flex; flex-direction:column; gap:10px; }
.pt-mobile-menu__phone { font-size:16px; font-weight:800; color:var(--c-ink); }

/* ==========================================================================
   6. Крошки и заголовок страницы
   ========================================================================== */

.pt-breadcrumbs { border-bottom:1px solid var(--c-line); }
.pt-breadcrumbs__in { padding-top:14px; padding-bottom:14px; font-size:13px; color:var(--c-muted); display:flex; flex-wrap:wrap; gap:6px 8px; }
.pt-breadcrumbs__in a { color:var(--c-muted); }
.pt-breadcrumbs__in a:hover { color:var(--c-primary); text-decoration:none; }
.pt-breadcrumbs__sep { color:var(--c-border); }
.pt-breadcrumbs__current { color:var(--c-ink); font-weight:500; }

.pt-page-head { padding-top:36px; padding-bottom:28px; }
.pt-page-title { font-size:34px; line-height:1.2; font-weight:800; letter-spacing:-.01em; }

/* ==========================================================================
   7. Hero главной
   ========================================================================== */

.pt-hero-wrap { background:linear-gradient(180deg, var(--c-hero) 0%, #fff 100%); }
.pt-hero { display:grid; grid-template-columns:1fr 500px; gap:48px; align-items:center; padding-top:60px; padding-bottom:52px; }
.pt-hero__badge { margin-bottom:18px; }
.pt-hero h1 { font-size:44px; line-height:1.14; font-weight:800; letter-spacing:-.015em; margin-bottom:18px; }
.pt-hero h1 .accent { color:var(--c-primary); }
.pt-hero__lead { font-size:16.5px; line-height:1.55; color:var(--c-lead); max-width:560px; margin-bottom:26px; }
.pt-hero__actions { display:flex; gap:12px; flex-wrap:wrap; }
.pt-advantages { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:28px; }
.pt-advantage { background:#fff; border:1px solid var(--c-border); border-radius:10px; padding:14px; display:flex; gap:12px; align-items:center; }
.pt-advantage__title { font-size:13.5px; font-weight:700; line-height:1.3; }
.pt-advantage__sub { font-size:12px; color:var(--c-muted); margin-top:2px; }
.pt-hero__photo { position:relative; border-radius:var(--r-block); overflow:hidden; min-height:400px; }
.pt-hero__photo img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.pt-hero__float { position:absolute; left:20px; bottom:20px; background:var(--c-accent); color:#fff; font-size:13.5px; font-weight:700; padding:10px 18px; border-radius:99px; box-shadow:var(--shadow-float); }

/* Фото-заглушки до реальных фото */
.pt-ph { background:repeating-linear-gradient(45deg,#EFF6FA 0 12px,#E5F0F6 12px 24px); display:grid; place-items:center; }
.pt-ph__cap { color:var(--c-placeholder); font-size:12px; font-weight:500; padding:8px; text-align:center; }

/* ==========================================================================
   8. Карточки продукции / общие карточки
   ========================================================================== */

.pt-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pt-cards--4 { grid-template-columns:repeat(4,1fr); }
.pt-card {
  display:flex; flex-direction:column; background:#fff; border:1px solid var(--c-border); border-radius:var(--r-card);
  padding:18px; color:inherit; text-decoration:none !important; transition:border-color .15s ease;
}
a.pt-card:hover { border-color:var(--c-primary); color:inherit; }
.pt-card__photo { height:120px; border-radius:8px; overflow:hidden; margin-bottom:14px; }
.pt-card__photo img { width:100%; height:100%; object-fit:cover; }
.pt-card__num { font-size:12.5px; font-weight:600; color:var(--c-muted); margin-bottom:8px; }
.pt-card__name { font-size:17px; font-weight:700; line-height:1.3; margin-bottom:8px; }
a.pt-card:hover .pt-card__name { color:var(--c-primary); }
.pt-card__desc { font-size:13.5px; line-height:1.5; color:var(--c-muted); }
.pt-card__bottom { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-top:auto; padding-top:16px; }
.pt-card__price { font-size:15px; font-weight:800; }
.pt-card__price--na { font-weight:600; color:var(--c-muted); }
.pt-card__more { font-size:13.5px; font-weight:700; color:var(--c-accent-text); white-space:nowrap; }

/* Спец-карточка «на заказ по эскизу» */
.pt-card--custom { background:var(--c-green-bg-2); border:1px dashed var(--c-accent); align-items:center; justify-content:center; text-align:center; }
.pt-card--custom .pt-card__name { color:var(--c-accent-text); }
.pt-card--custom .pt-card__desc { margin-bottom:16px; }
.pt-card--custom .pt-btn { margin-top:auto; }

/* ==========================================================================
   9. Главная: «Как работаем», «Наши работы», «Блог»
   ========================================================================== */

.pt-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.pt-step { background:#fff; border:1px solid var(--c-border); border-radius:var(--r-card); padding:22px 20px; }
.pt-step__num { width:36px; height:36px; border-radius:50%; background:var(--c-primary); color:#fff; font-weight:800; font-size:15px; display:grid; place-items:center; margin-bottom:14px; }
.pt-step__name { font-size:16px; font-weight:700; margin-bottom:6px; }
.pt-step__desc { font-size:13.5px; line-height:1.5; color:var(--c-muted); }

.pt-works { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pt-work { border:1px solid var(--c-border); border-radius:var(--r-card); overflow:hidden; background:#fff; }
.pt-work__photo { height:170px; }
.pt-work__photo img { width:100%; height:100%; object-fit:cover; }
.pt-work__body { padding:16px 18px; }
.pt-work__name { font-size:15.5px; font-weight:700; line-height:1.35; }
.pt-work__meta { font-size:13px; color:var(--c-muted); margin-top:5px; }

.pt-teasers { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.pt-teaser { display:flex; flex-direction:column; background:#fff; border:1px solid var(--c-border); border-radius:var(--r-card); padding:20px; color:inherit; text-decoration:none !important; transition:border-color .15s ease; }
.pt-teaser:hover { border-color:var(--c-primary); }
.pt-teaser__meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:12.5px; color:var(--c-muted); margin-bottom:12px; }
.pt-teaser__title { font-size:17px; font-weight:700; line-height:1.35; margin-bottom:8px; color:var(--c-ink); }
.pt-teaser:hover .pt-teaser__title { color:var(--c-primary); }
.pt-teaser__text { font-size:13.5px; color:var(--c-muted); line-height:1.55; }

/* ==========================================================================
   10. CTA-баннер (вместо лид-блока) и формы
   ========================================================================== */

.pt-banner-wrap { padding:0 0 52px; }
.pt-banner {
  border-radius:16px; background:var(--gradient-cta); color:#fff; padding:40px 44px;
  display:grid; grid-template-columns:1fr 440px; gap:40px; align-items:center;
}
.pt-banner h2 { font-size:26px; line-height:1.25; font-weight:800; margin-bottom:8px; }
.pt-banner p { font-size:15px; line-height:1.55; opacity:.92; }
.pt-banner .pt-input { background:rgba(255,255,255,.95); border-color:transparent; }
.pt-banner .pt-input:focus { border-color:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.35); }
.pt-banner .pt-btn--cta { box-shadow:var(--shadow-dark); }
.pt-banner .pt-agree { color:rgba(255,255,255,.75); }
.pt-banner .pt-agree a { color:#fff; }
.pt-banner .pt-form-note { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.5); color:#fff; }
.pt-banner .pt-form-error { background:rgba(255,255,255,.14); border-color:#FFB3A8; color:#fff; }

.pt-form, .pt-form-wrap form { display:flex; flex-direction:column; gap:10px; }
.pt-form-wrap { min-width:0; }
.pt-form__row { display:flex; gap:10px; }
.pt-form__row > * { flex:1; min-width:0; }
.pt-input {
  display:block; width:100%; border:1px solid var(--c-border); background:#fff; border-radius:var(--r-btn);
  padding:13px 14px; font-size:14.5px; color:var(--c-ink); outline:none; transition:border-color .15s ease, box-shadow .15s ease;
}
.pt-input::placeholder { color:var(--c-placeholder); }
.pt-input:focus { border-color:var(--c-primary); box-shadow:0 0 0 3px rgba(0,153,204,.12); }
.pt-input--error { border-color:#E0574A; }
textarea.pt-input { resize:vertical; min-height:80px; }
.pt-agree { display:flex; gap:8px; align-items:flex-start; font-size:12px; color:var(--c-muted); line-height:1.45; }
.pt-agree input { margin:2px 0 0; accent-color:var(--c-accent); flex:none; width:15px; height:15px; }
.pt-agree a { text-decoration:underline; }
.pt-form-note { background:var(--c-green-bg); border:1px solid var(--c-accent); border-radius:10px; color:var(--c-accent-text); font-size:14px; line-height:1.55; padding:16px 18px; }
.pt-form-error { background:#FDF1F0; border:1px solid #E9A199; border-radius:10px; color:#B23A2E; font-size:13.5px; line-height:1.55; padding:12px 16px; }

/* Лид-карточка (зелёная подложка, напр. на контактах) */
.pt-lead-card { background:var(--c-green-bg-2); border:1px solid #D7ECCB; border-radius:var(--r-card); padding:28px; }
.pt-lead-card h2 { font-size:22px; font-weight:800; margin-bottom:6px; }
.pt-lead-card p { font-size:14.5px; color:var(--c-lead); margin-bottom:18px; }

/* ==========================================================================
   11. Футер
   ========================================================================== */

.pt-footer { background:var(--c-ink); color:var(--c-footer-text); font-size:13px; }
.pt-footer__in { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-top:30px; padding-bottom:30px; }
.pt-footer__brand { display:flex; align-items:center; gap:12px; }
.pt-footer__mark { width:30px; height:30px; border-radius:50%; background:linear-gradient(135deg, var(--c-primary) 55%, var(--c-accent) 55%); color:#fff; font-weight:800; font-size:14px; display:grid; place-items:center; flex:none; }
.pt-footer__brand-name { color:#fff; font-weight:700; font-size:14px; }
.pt-footer__copy { white-space:nowrap; }
.pt-footer__menu { display:flex; gap:22px; flex-wrap:wrap; }
.pt-footer__menu a { color:var(--c-footer-link); font-weight:500; }
.pt-footer__menu a:hover { color:#fff; }
.pt-footer__phone-wrap a { color:#fff; font-weight:700; font-size:15px; white-space:nowrap; }
.pt-footer__phone-wrap a:hover { color:#fff; }

/* ==========================================================================
   12. Модалка «Заявка»
   ========================================================================== */

.pt-modal { position:fixed; inset:0; z-index:200; display:none; }
.pt-modal.is-open { display:block; }
.pt-modal__overlay { position:absolute; inset:0; background:rgba(20,41,58,.55); }
.pt-modal__win {
  position:relative; z-index:1; max-width:480px; margin:8vh auto 24px; background:#fff; border-radius:var(--r-block);
  box-shadow:0 20px 60px rgba(20,41,58,.25); padding:32px; max-height:84vh; overflow:auto;
}
.pt-modal__close { position:absolute; top:12px; right:12px; width:36px; height:36px; border-radius:50%; font-size:22px; line-height:1; color:var(--c-muted); display:grid; place-items:center; }
.pt-modal__close:hover { background:var(--c-hero); color:var(--c-ink); }
.pt-modal__title { font-size:22px; font-weight:800; margin-bottom:6px; padding-right:36px; }
.pt-modal__context { display:none; font-size:13px; color:var(--c-accent-text); font-weight:600; margin-bottom:16px; }
.pt-modal__context.is-visible { display:block; }
.pt-modal__lead { font-size:14px; color:var(--c-muted); margin-bottom:18px; }

/* ==========================================================================
   13. Продукция: хаб, раздел, товар
   ========================================================================== */

.pt-products-head { padding-top:36px; padding-bottom:32px; display:grid; grid-template-columns:1fr 360px; gap:40px; align-items:center; }
.pt-products-head h1 { font-size:34px; line-height:1.2; font-weight:800; letter-spacing:-.01em; margin-bottom:12px; }
.pt-products-head p { font-size:16px; line-height:1.55; color:var(--c-lead); max-width:560px; }
.pt-info-card { background:var(--c-hero); border-radius:var(--r-card); padding:18px 20px; font-size:14px; color:var(--c-ink); display:flex; flex-direction:column; gap:10px; }
.pt-info-card__row { display:flex; align-items:center; gap:10px; }

.pt-products-grid-wrap { padding-bottom:52px; }

.pt-seo { border-top:1px solid var(--c-line); padding-top:32px; margin-bottom:52px; display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.pt-seo p { font-size:14px; line-height:1.65; color:var(--c-muted); }
.pt-seo__title { grid-column:1 / -1; font-size:13px; font-weight:700; color:var(--c-muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:-12px; }

/* Товар */
.pt-product { display:grid; grid-template-columns:520px 1fr; gap:40px; padding-top:32px; padding-bottom:48px; }
.pt-product__main-photo { height:360px; border:1px solid var(--c-border); border-radius:var(--r-card); overflow:hidden; background:#fff; }
.pt-product__main-photo img { width:100%; height:100%; object-fit:contain; }
.pt-product__thumbs { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:10px; }
.pt-product__thumb { border:1px solid var(--c-border); border-radius:8px; height:72px; padding:0; overflow:hidden; cursor:pointer; background:#fff; }
.pt-product__thumb img { width:100%; height:100%; object-fit:cover; }
.pt-product__thumb.is-active { border:2px solid var(--c-primary); }
.pt-product__thumb--more { display:grid; place-items:center; color:var(--c-muted); font-size:12.5px; font-weight:600; }

.pt-product__art { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.pt-product__info h1 { font-size:30px; line-height:1.2; font-weight:800; letter-spacing:-.01em; margin-bottom:12px; }
.pt-product__desc { font-size:15.5px; line-height:1.55; color:var(--c-lead); margin-bottom:20px; }
.pt-pricebox { border:1px solid var(--c-border); border-radius:var(--r-card); padding:18px 20px; display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; flex-wrap:wrap; }
.pt-pricebox__price { font-size:28px; font-weight:800; line-height:1.1; }
.pt-pricebox__note { font-size:13px; color:var(--c-muted); margin-top:4px; }
.pt-pricebox__badge { display:inline-block; border:1px solid var(--c-accent); color:var(--c-accent-text); font-size:12.5px; font-weight:700; padding:6px 12px; border-radius:99px; white-space:nowrap; }
.pt-product__actions { display:flex; gap:10px; margin-bottom:24px; }
.pt-product__actions .pt-btn { flex:1; }

.pt-chars { border-top:1px solid var(--c-line); }
.pt-chars__row { display:grid; grid-template-columns:1fr 1fr; gap:16px; border-bottom:1px solid var(--c-line); }
.pt-chars__name { padding:12px 0; font-size:13.5px; color:var(--c-muted); }
.pt-chars__val { padding:12px 0; font-size:14px; font-weight:600; text-align:right; }

.pt-product-cols { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding-bottom:48px; }
.pt-product-cols__col { background:#fff; border:1px solid var(--c-border); border-radius:var(--r-card); padding:26px 28px; }
.pt-product-cols h2 { font-size:20px; font-weight:800; margin-bottom:16px; }
.pt-check-list { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; font-size:14.5px; line-height:1.5; color:var(--c-lead); }
.pt-check-list li { display:flex; gap:10px; align-items:flex-start; }
.pt-check-list .pt-check--sm { margin-top:1px; }

.pt-text-pad { padding-top:8px; padding-bottom:48px; }

.pt-volumes { padding-bottom:52px; }
.pt-volumes .pt-sec-head h2 { font-size:24px; }
.pt-volume { display:block; background:#fff; border:1px solid var(--c-border); border-radius:var(--r-card); padding:18px 20px; color:inherit; text-decoration:none !important; transition:border-color .15s ease; }
a.pt-volume:hover { border-color:var(--c-primary); }
.pt-volume.is-current { background:var(--c-green-bg-2); border-color:var(--c-accent); }
.pt-volume__art { font-size:12.5px; color:var(--c-muted); margin-bottom:6px; }
.pt-volume__vol { font-size:18px; font-weight:800; }
.pt-volume__price { font-size:14px; font-weight:700; margin-top:8px; }
.pt-volume__tag { color:var(--c-accent-text); font-weight:700; }

/* ==========================================================================
   14. Блог: список, фильтры, пагинация
   ========================================================================== */

.pt-blog-head { padding-top:36px; padding-bottom:24px; display:flex; justify-content:space-between; align-items:flex-end; gap:24px; }
.pt-blog-head h1 { font-size:34px; line-height:1.2; font-weight:800; letter-spacing:-.01em; margin-bottom:10px; }
.pt-blog-head p { font-size:15.5px; color:var(--c-lead); max-width:560px; }
.pt-filters { display:flex; gap:8px; flex-wrap:wrap; }
.pt-filters a { font-size:13px; font-weight:600; border:1px solid var(--c-border); color:var(--c-lead); padding:8px 16px; border-radius:99px; }
.pt-filters a:hover { text-decoration:none; border-color:var(--c-primary); color:var(--c-primary); }
.pt-filters a.is-active { background:var(--c-primary); border-color:var(--c-primary); color:#fff; }

.pt-featured { margin-top:8px; border:1px solid var(--c-border); border-radius:var(--r-block); overflow:hidden; display:grid; grid-template-columns:460px 1fr; color:inherit; text-decoration:none !important; background:#fff; transition:border-color .15s ease; }
a.pt-featured:hover { border-color:var(--c-primary); }
.pt-featured__photo { min-height:260px; }
.pt-featured__photo img { width:100%; height:100%; object-fit:cover; }
.pt-featured__body { padding:32px 36px; }
.pt-featured__meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:12.5px; color:var(--c-muted); margin-bottom:12px; }
.pt-featured__title { font-size:24px; font-weight:800; line-height:1.3; margin-bottom:12px; color:var(--c-ink); }
a.pt-featured:hover .pt-featured__title { color:var(--c-primary); }
.pt-featured__text { font-size:15px; color:var(--c-lead); line-height:1.6; max-width:560px; margin-bottom:18px; }
.pt-featured__more { font-size:14.5px; font-weight:700; color:var(--c-accent-text); }

.pt-blog-grid { padding-top:24px; }

.pt-pager { display:flex; gap:8px; align-items:center; justify-content:center; padding:36px 0 52px; font-size:14px; font-weight:600; }
.pt-pager a, .pt-pager .is-current { min-width:40px; height:40px; display:inline-grid; place-items:center; padding:0 12px; border-radius:var(--r-btn); border:1px solid var(--c-border); color:var(--c-lead); }
.pt-pager a:hover { text-decoration:none; border-color:var(--c-primary); color:var(--c-primary); }
.pt-pager .is-current { background:var(--c-primary); border-color:var(--c-primary); color:#fff; }
.pt-pager__dots { color:var(--c-muted); padding:0 4px; }
.pt-pager__next { border:0 !important; color:var(--c-accent-text) !important; font-weight:700; padding:0 8px !important; }

/* ==========================================================================
   15. Статья
   ========================================================================== */

.pt-article { display:grid; grid-template-columns:1fr 340px; gap:48px; padding-top:36px; padding-bottom:52px; }
.pt-article__main { min-width:0; }
.pt-article__meta { display:flex; align-items:center; gap:10px; flex-wrap:wrap; font-size:13px; color:var(--c-muted); margin-bottom:16px; }
.pt-article__title { font-size:36px; line-height:1.2; font-weight:800; letter-spacing:-.015em; margin-bottom:16px; }
.pt-article__lead { font-size:17px; line-height:1.6; color:var(--c-lead); margin-bottom:28px; }

.pt-faq { display:flex; flex-direction:column; gap:10px; }
.pt-faq__item { border:1px solid var(--c-border); border-radius:10px; padding:16px 18px; }
.pt-faq__q { font-size:15px; font-weight:700; margin-bottom:8px; }
.pt-faq__a { font-size:14.5px; line-height:1.6; color:var(--c-lead); }

.pt-article__foot { border-top:1px solid var(--c-line); margin-top:28px; padding-top:16px; display:flex; justify-content:space-between; gap:16px; font-size:13px; color:var(--c-muted); flex-wrap:wrap; }

.pt-article__aside { display:flex; flex-direction:column; gap:20px; }
.pt-aside-box { border:1px solid var(--c-border); border-radius:var(--r-card); padding:20px 22px; background:#fff; }
.pt-aside-box--green { background:var(--c-green-bg-2); border-color:#D7ECCB; }
.pt-aside-box__title { font-size:14px; font-weight:700; margin-bottom:12px; }
.pt-toc { display:flex; flex-direction:column; gap:8px; font-size:14px; line-height:1.45; }
.pt-toc a { color:var(--c-lead); display:flex; gap:10px; }
.pt-toc a:hover { color:var(--c-primary); text-decoration:none; }
.pt-toc__num { color:var(--c-primary); font-weight:700; flex:none; min-width:22px; }

.pt-aside-product__name { font-size:16px; font-weight:700; line-height:1.35; margin-bottom:6px; }
.pt-aside-product__desc { font-size:13.5px; color:var(--c-muted); line-height:1.5; margin-bottom:12px; }
.pt-aside-product__price { font-size:15px; font-weight:800; margin-bottom:14px; }
.pt-aside-product .pt-btn { display:flex; width:100%; }

.pt-also__item { display:block; padding:12px 0; border-bottom:1px solid var(--c-line); color:inherit; text-decoration:none !important; }
.pt-also__item:last-child { border-bottom:0; padding-bottom:0; }
.pt-also__item:first-of-type { padding-top:0; }
.pt-also__meta { font-size:12px; color:var(--c-muted); margin-bottom:4px; }
.pt-also__title { font-size:14.5px; font-weight:700; line-height:1.4; color:var(--c-ink); }
.pt-also__item:hover .pt-also__title { color:var(--c-primary); }

/* ==========================================================================
   16. Контакты
   ========================================================================== */

.pt-cities { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding-bottom:28px; }
.pt-city { background:#fff; border:1px solid var(--c-border); border-radius:var(--r-card); padding:24px; }
.pt-city--main { background:var(--c-green-bg-2); border-color:#D7ECCB; }
.pt-city .pt-label { display:block; margin-bottom:12px; }
.pt-city__phone { font-size:20px; font-weight:800; color:var(--c-ink); display:inline-block; margin-bottom:12px; }
.pt-city__phone:hover { color:var(--c-primary); text-decoration:none; }
.pt-city__info { font-size:14px; line-height:1.7; color:var(--c-lead); }

.pt-map { border-radius:var(--r-block); overflow:hidden; border:1px solid var(--c-border); height:320px; position:relative; margin-bottom:28px; }
.pt-map__canvas { position:absolute; inset:0; filter:grayscale(.6); transition:filter .3s ease; }
.pt-map:hover .pt-map__canvas { filter:grayscale(0); }

.pt-contacts-cols { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding-bottom:52px; }
.pt-contacts-cols__col { background:#fff; border:1px solid var(--c-border); border-radius:var(--r-card); padding:28px; }
.pt-contacts-cols h2 { font-size:22px; font-weight:800; margin-bottom:14px; }
.pt-requisites { font-size:14.5px; line-height:1.9; color:var(--c-lead); }
.pt-requisites__download { margin-top:16px; }

/* ==========================================================================
   17. 404 и служебное
   ========================================================================== */

.pt-404 { padding:72px 0 96px; }
.pt-404__code { font-size:72px; font-weight:800; color:var(--c-primary); line-height:1; margin-bottom:16px; }
.pt-404 p { font-size:16px; color:var(--c-lead); margin-bottom:28px; max-width:520px; }

#panel { position:relative; z-index:300; }
.pt-visually-hidden { position:absolute !important; width:1px; height:1px; margin:-1px; clip:rect(0 0 0 0); overflow:hidden; }

/* ==========================================================================
   18. Адаптив
   ========================================================================== */

@media (max-width:1024px) {
  :root { --gutter:24px; }

  .pt-nav, .pt-header__contacts { display:none; }
  .pt-burger { display:block; grid-column:3; justify-self:end; }
  .pt-header__in { grid-template-columns:auto 1fr auto; gap:16px; padding-top:12px; padding-bottom:12px; }
  .pt-topbar__note, .pt-topbar__hours { display:none; }

  .pt-hero { grid-template-columns:1fr; gap:28px; padding-top:40px; padding-bottom:40px; }
  .pt-hero h1 { font-size:36px; }
  .pt-hero__photo { min-height:300px; }

  .pt-cards, .pt-cards--4, .pt-works, .pt-teasers { grid-template-columns:repeat(2,1fr); }
  .pt-steps { grid-template-columns:repeat(2,1fr); }

  .pt-banner { grid-template-columns:1fr; gap:24px; padding:32px 28px; }

  .pt-products-head { grid-template-columns:1fr; gap:20px; }
  .pt-product { grid-template-columns:1fr; gap:28px; }
  .pt-featured { grid-template-columns:1fr; }
  .pt-featured__photo { min-height:220px; }
  .pt-article { grid-template-columns:1fr; gap:32px; }
  .pt-cities { grid-template-columns:1fr; }
  .pt-blog-head { flex-direction:column; align-items:flex-start; }
  .pt-footer__in { flex-wrap:wrap; row-gap:16px; }
}

@media (max-width:640px) {
  .pt-section { padding:40px 0; }
  .pt-topbar__in { font-size:12px; }
  .pt-logo__tag { display:none; }
  .pt-topbar__right { gap:12px; }

  .pt-cards, .pt-cards--4, .pt-works, .pt-teasers, .pt-steps, .pt-advantages { grid-template-columns:1fr; }
  .pt-hero h1 { font-size:30px; }
  .pt-hero__actions .pt-btn { width:100%; }
  .pt-sec-head { flex-direction:column; align-items:flex-start; gap:8px; }
  .pt-sec-head h2 { font-size:26px; }
  .pt-page-title, .pt-products-head h1, .pt-blog-head h1 { font-size:28px; }
  .pt-article__title { font-size:28px; }
  .pt-product__info h1 { font-size:26px; }

  .pt-form__row { flex-direction:column; }
  .pt-product__actions { flex-direction:column; }
  .pt-product-cols, .pt-contacts-cols { grid-template-columns:1fr; }
  .pt-seo { grid-template-columns:1fr; }
  .pt-banner { padding:28px 22px; border-radius:var(--r-card); }
  .pt-modal__win { margin:0; max-width:none; min-height:100%; max-height:none; border-radius:0; }
  .pt-pager { flex-wrap:wrap; }
  .pt-footer__in { flex-direction:column; align-items:flex-start; gap:18px; }
  .pt-footer__menu { gap:10px 18px; }
}

/* ==========================================================================
   19. Дополнения для статичной заглушки главной (index.html)
   ========================================================================== */

.pt-card--static { cursor:default; }
.pt-card__photo { height:150px; background:#fff; border:1px solid var(--c-line); }
.pt-card__photo img { width:100%; height:100%; object-fit:contain; display:block; padding:6px; box-sizing:border-box; }
.pt-work__photo { background:#fff; border-bottom:1px solid var(--c-line); }
.pt-work__photo img { object-fit:contain; padding:8px; box-sizing:border-box; }
.pt-hero__photo { background:#fff; border:1px solid var(--c-border); }
.pt-hero__photo img { width:100%; height:100%; object-fit:cover; display:block; }
.pt-geo { display:grid; grid-template-columns:1fr 1.6fr; gap:40px; align-items:center; }
.pt-geo__text p { font-size:15.5px; line-height:1.6; color:var(--c-lead); margin-top:12px; }
.pt-geo__map img { width:100%; height:auto; display:block; }
@media (max-width:1024px) { .pt-geo { grid-template-columns:1fr; gap:24px; } }
.pt-contact-card { background:#fff; border-radius:var(--r-card); padding:24px 26px; color:var(--c-ink); }
.pt-contact-card__label { font-size:12.5px; font-weight:700; color:var(--c-muted); text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.pt-contact-card__phone { display:inline-block; font-size:26px; font-weight:800; color:var(--c-ink); line-height:1.15; margin-bottom:12px; }
.pt-contact-card__phone:hover { color:var(--c-primary); text-decoration:none; }
.pt-contact-card__row { font-size:14.5px; color:var(--c-lead); margin-top:6px; }
.pt-contact-card__row a { font-weight:600; }
.pt-contact-card .pt-btn { margin-top:16px; }
.pt-banner__actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.pt-banner .pt-btn--secondary { background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.6); }
.pt-banner .pt-btn--secondary:hover { background:rgba(255,255,255,.22); color:#fff; }
@media (max-width:640px) { .pt-contact-card__phone { font-size:22px; } }

/* Плашка «Сайт на реконструкции» над сайтом */
.pt-notice { background:var(--c-green-bg); border-bottom:1px solid #D7ECCB; color:var(--c-ink); font-size:14px; }
.pt-notice__in { display:flex; align-items:center; justify-content:center; gap:10px 18px; flex-wrap:wrap; padding-top:10px; padding-bottom:10px; text-align:center; }
.pt-notice__icon { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--c-accent); color:#fff; font-weight:800; font-size:14px; flex:none; }
.pt-notice__text { font-weight:500; }
.pt-notice__text strong { color:var(--c-accent-text); font-weight:700; }
.pt-notice__phone { font-weight:800; color:var(--c-ink); white-space:nowrap; }
.pt-notice__phone:hover { color:var(--c-primary); text-decoration:none; }
.pt-notice__mail { color:var(--c-accent-text); font-weight:600; white-space:nowrap; }
@media (max-width:640px) {
  .pt-notice { font-size:13.5px; }
  .pt-notice__in { flex-direction:column; gap:6px; }
}
