/* страницы услуг (/lazernaya-gravirovka-na-metalle/ и др.) — собираются scripts/build-pages.mjs; токены и сброс — в base.css */
html, body { min-height:100%; }
body { background:radial-gradient(80% 60% at 50% 0%, #151619 0%, var(--bg) 70%) fixed, var(--bg); color:var(--logo);
  font-family:-apple-system,"Helvetica Neue",Arial,sans-serif; -webkit-font-smoothing:antialiased; line-height:1.6; font-size:15px; }
a { color:inherit; }

/* шапка */
.pg-top { display:flex; align-items:center; gap:14px 28px; flex-wrap:wrap; max-width:1080px; margin:0 auto; padding:26px 24px 0; }
.pg-logo { display:block; flex:none; width:104px; aspect-ratio:5594 / 2493; background:var(--logo);
  -webkit-mask:url("/logo.svg") center / contain no-repeat; mask:url("/logo.svg") center / contain no-repeat; }
.pg-nav { display:flex; flex-wrap:wrap; gap:4px 18px; margin-left:auto; }
.pg-nav a { padding:8px 0; font-size:11px; letter-spacing:.14em; text-transform:uppercase; text-decoration:none; opacity:.5; transition:opacity .3s; }
.pg-nav a:hover, .pg-nav a:focus-visible, .pg-nav a[aria-current] { opacity:1; outline:none; }
.pg-nav a[aria-current] { box-shadow:0 1px 0 var(--logo); }

/* кнопки */
.pg-btn { display:inline-block; padding:12px 20px; border:1px solid rgba(245,245,245,.55); border-radius:10px; font-size:11px; letter-spacing:.24em;
  text-transform:uppercase; text-decoration:none; color:var(--logo); transition:background .35s, color .35s, border-color .35s; }
.pg-btn:hover, .pg-btn:focus-visible { background:var(--logo); color:#0a0a0b; border-color:var(--logo); outline:none; }
.pg-btn-solid { background:var(--logo); color:#0a0a0b; border-color:var(--logo); }
.pg-btn-solid:hover, .pg-btn-solid:focus-visible { background:transparent; color:var(--logo); }
.pg-top > .pg-btn { padding:10px 16px; }

/* контент */
.pg { max-width:1080px; margin:0 auto; padding:34px 24px 40px; }
.pg > * { max-width:720px; }
.pg > .pg-rel { max-width:none; }
.pg-crumbs { font-size:12px; letter-spacing:.06em; opacity:.55; }
.pg-crumbs a { text-decoration:none; }
.pg-crumbs a:hover { text-decoration:underline; }
.pg-crumbs i { font-style:normal; opacity:.5; margin:0 4px; }
.pg h1 { margin-top:18px; font-weight:300; font-size:clamp(30px,5.4vw,46px); line-height:1.12; letter-spacing:-.015em; }
.pg-lead { margin-top:18px; font-size:17px; line-height:1.6; opacity:.78; max-width:640px; }
.pg section { margin-top:42px; }
.pg h2 { font-weight:400; font-size:19px; letter-spacing:-.005em; }
.pg section p, .pg section li { opacity:.8; }
.pg section p { margin-top:10px; }
.pg ul, .pg ol { margin:12px 0 0 20px; }
.pg li { margin-top:7px; padding-left:2px; }
.pg section a { text-decoration:underline; text-decoration-color:rgba(245,245,245,.4); text-underline-offset:3px; }
.pg section a:hover { text-decoration-color:var(--logo); }

/* контакты */
.pg-contacts dl { margin-top:14px; border-top:1px solid rgba(245,245,245,.12); }
.pg-contacts dl > div { display:grid; grid-template-columns:150px 1fr; gap:6px 20px; padding:14px 0; border-bottom:1px solid rgba(245,245,245,.12); }
.pg-contacts dt { font-size:11px; letter-spacing:.18em; text-transform:uppercase; opacity:.5; padding-top:3px; }
.pg-contacts dd { opacity:.9; }
@media (max-width:560px) { .pg-contacts dl > div { grid-template-columns:1fr; } }

/* вопросы */
.pg-faq details { border-bottom:1px solid rgba(245,245,245,.12); }
.pg-faq details:first-of-type { margin-top:12px; border-top:1px solid rgba(245,245,245,.12); }
.pg-faq summary { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:15px 0; cursor:pointer; list-style:none; font-size:16px; font-weight:300; }
.pg-faq summary::-webkit-details-marker { display:none; }
.pg-faq summary::after { content:""; flex:none; width:11px; height:11px; opacity:.55; transition:transform .4s cubic-bezier(.2,.8,.2,1);
  background:linear-gradient(currentColor,currentColor) center / 100% 1px no-repeat, linear-gradient(currentColor,currentColor) center / 1px 100% no-repeat; }
.pg-faq details[open] summary::after { transform:rotate(135deg); opacity:.9; }
.pg-faq summary:focus-visible { outline:1px solid rgba(245,245,245,.5); outline-offset:2px; }
.pg-faq details p { margin:0 0 16px; max-width:640px; }

/* призыв */
.pg-cta { margin-top:48px; padding:28px 26px; border:1px solid rgba(245,245,245,.16); border-radius:16px;
  background:radial-gradient(100% 140% at 0% 0%, rgba(200,215,255,.07), transparent 70%); }
.pg-cta h2 { font-weight:300; font-size:24px; }
.pg-cta p { margin-top:8px; opacity:.7; }
.pg-cta-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }

/* смотрите также */
.pg-rel ul { list-style:none; margin:14px 0 0; display:grid; grid-template-columns:repeat(auto-fit, minmax(210px, 1fr)); gap:12px; }
.pg-rel li { margin:0; padding:0; opacity:1; }
.pg-rel a { display:flex; flex-direction:column; gap:6px; height:100%; padding:16px 16px 18px; border:1px solid rgba(245,245,245,.14); border-radius:14px; text-decoration:none !important;
  background:rgba(245,245,245,.02); transition:border-color .3s, background .3s; }
.pg-rel a:hover, .pg-rel a:focus-visible { border-color:rgba(245,245,245,.45); background:rgba(245,245,245,.05); outline:none; }
.pg-rel b { font-weight:400; font-size:15px; }
.pg-rel span { font-size:13px; line-height:1.45; opacity:.6; }

/* подвал */
.pg-foot { border-top:1px solid rgba(245,245,245,.1); margin-top:24px; }
.pg-foot-in { display:flex; flex-wrap:wrap; gap:22px 48px; justify-content:space-between; max-width:1080px; margin:0 auto; padding:26px 24px 34px; font-size:13px; line-height:1.7; opacity:.6; }
.pg-foot a, .pg-foot button { color:inherit; text-decoration:none; background:none; border:0; padding:0; font:inherit; cursor:pointer; }
.pg-foot a:hover, .pg-foot button:hover { text-decoration:underline; }

@media (max-width:640px) {
  .pg-top { padding:20px 18px 0; }
  .pg-nav { order:3; width:100%; margin-left:0; gap:2px 18px; }
  .pg-top > .pg-btn { margin-left:auto; }
  .pg { padding:28px 18px 32px; }
  .pg-foot-in { padding:22px 18px 30px; }
}
@media (prefers-reduced-motion:reduce) { .pg-btn, .pg-nav a, .pg-rel a, .pg-faq summary::after { transition:none; } }

/* таблицы цен (страница /ceny/ и блоки «Цена и срок») */
.pg-table { width:100%; margin-top:14px; border-collapse:collapse; font-size:14px; }
.pg-table th, .pg-table td { padding:10px 12px 10px 0; text-align:left; border-bottom:1px solid rgba(245,245,245,.12); vertical-align:top; }
.pg-table th { font-weight:400; font-size:11px; letter-spacing:.14em; text-transform:uppercase; opacity:.5; }
.pg-table td:last-child, .pg-table th:last-child { text-align:right; padding-right:0; }
.pg-table td:not(:first-child):not(:last-child) { white-space:nowrap; }
.pg-table td { opacity:.85; }
.pg-tnote { margin-top:10px; font-size:13px; opacity:.6; }
@media (max-width:560px) { .pg-table { font-size:13px; } .pg-table th, .pg-table td { padding-right:8px; } }
