:root {
    --bg: #f5f6f8;
    --surface: #ffffff;
    --surface-2: #eef0f3;
    --ink: #121820;
    --muted: #5f6975;
    --dark: #101820;
    --dark-2: #17212b;
    --line: #dfe3e8;
    --accent: #ffc400;
    --accent-2: #ffd84c;
    --danger: #b42318;
    --success: #147a45;
    --radius: 22px;
    --radius-sm: 14px;
    --shadow: 0 24px 70px rgba(11, 19, 28, .09);
    --container: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--bg);
    font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    font-size: 17px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
svg { display: block; }
.promalp-icon { width: 24px; height: 24px; flex: 0 0 auto; }
.container { width: min(calc(100% - 40px), var(--container)); margin: 0 auto; }
.container--article { width: min(calc(100% - 40px), 880px); }
.screen-reader-text, .skip-link:not(:focus) { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link:focus { position: fixed; z-index: 9999; top: 12px; left: 12px; background: #fff; color: #000; padding: 10px 14px; border-radius: 8px; }

/* Header */
.site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(16, 24, 32, .97);
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,.08);
    backdrop-filter: blur(14px);
    transition: box-shadow .2s ease;
}
.site-header.is-scrolled { box-shadow: 0 10px 28px rgba(0,0,0,.18); }
.site-header__inner { min-height: 78px; display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; min-width: 195px; }
.brand__shield { display: grid; place-items:center; width: 42px; height: 42px; border-radius: 12px; background: var(--accent); color: var(--dark); }
.brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.brand__text strong { font-size: 18px; letter-spacing: -.02em; }
.brand__text small { margin-top: 4px; color: #aeb7c0; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.custom-logo-link img { max-height: 52px; width:auto; }
.primary-nav { flex: 1; }
.primary-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; justify-content: center; gap: 3px; }
.primary-menu > li { position: relative; }
.primary-menu > li > a { display: flex; align-items:center; min-height: 78px; padding: 0 10px; font-size: 14px; font-weight: 650; color: #d9dfe5; transition: .2s ease; }
.primary-menu > li > a:hover, .primary-menu > .current-menu-item > a, .primary-menu > .current-menu-ancestor > a { color: var(--accent); }
.primary-menu .sub-menu { display: none; position: absolute; top: calc(100% - 4px); left: 0; width: 280px; list-style:none; margin:0; padding: 10px; background: #1a2530; border: 1px solid rgba(255,255,255,.1); box-shadow: 0 22px 50px rgba(0,0,0,.28); border-radius: 14px; }
.primary-menu li:hover > .sub-menu, .primary-menu li:focus-within > .sub-menu { display:block; }
.primary-menu .sub-menu a { display:block; padding: 10px 12px; color:#e5e9ed; border-radius: 9px; font-size:14px; line-height:1.3; }
.primary-menu .sub-menu a:hover { background: rgba(255,255,255,.07); color:var(--accent); }
.site-header__contact { display:flex; align-items:center; gap:14px; }
.header-phone { display:flex; align-items:center; gap:7px; font-size:14px; font-weight:700; white-space:nowrap; }
.header-phone .promalp-icon { width:19px; }
.nav-toggle { display:none; color:#fff; background:transparent; border:0; padding:10px; }
.nav-toggle .promalp-icon { width:27px; height:27px; }
.nav-toggle__close { display:none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display:none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display:block; }

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:52px; padding: 13px 22px; border:1px solid transparent; border-radius: 12px; font-weight:800; font-size:15px; line-height:1; transition: transform .18s ease, background .18s ease, border-color .18s ease; }
.btn:hover { transform: translateY(-1px); }
.btn--primary { background: var(--accent); color: var(--dark); }
.btn--primary:hover { background: var(--accent-2); }
.btn--dark { background: var(--dark); color:#fff; }
.btn--ghost { border-color: rgba(255,255,255,.34); color:#fff; background: rgba(255,255,255,.04); }
.btn--ghost:hover { background:rgba(255,255,255,.1); }
.btn--small { min-height:42px; padding:10px 16px; }
.btn--wide { width:100%; }
.text-link { display:inline-flex; align-items:center; gap:7px; font-weight:800; color: var(--ink); }
.text-link .promalp-icon { width:18px; height:18px; }

/* Hero */
.promalp-hero { position:relative; overflow:hidden; color:#fff; background:
    radial-gradient(circle at 80% 35%, rgba(255,196,0,.17), transparent 28%),
    linear-gradient(135deg, #0e161e 0%, #111d27 55%, #0b1218 100%); }
.promalp-hero::before { content:""; position:absolute; inset:0; opacity:.2; background-image: linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px); background-size:48px 48px; mask-image:linear-gradient(to right,transparent,black); }
.promalp-hero__grid { position:relative; min-height:640px; display:grid; grid-template-columns: minmax(0,1.08fr) minmax(360px,.92fr); align-items:center; gap:55px; padding-top:76px; padding-bottom:76px; }
.promalp-kicker { display:inline-flex; align-items:center; gap:9px; color:#aeb8c2; font-size:12px; font-weight:850; text-transform:uppercase; letter-spacing:.13em; margin-bottom:18px; }
.promalp-kicker::before { content:""; width:22px; height:3px; background:var(--accent); border-radius:999px; }
.promalp-hero h1 { max-width: 850px; margin:0; font-size: clamp(48px, 5.4vw, 78px); line-height:.98; letter-spacing:-.055em; font-weight:850; }
.promalp-hero h1 mark { color:var(--accent); background:none; }
.promalp-hero__lead { max-width:780px; margin:27px 0 0; font-size:20px; line-height:1.55; color:#c9d0d6; }
.promalp-hero__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:33px; }
.promalp-hero__facts { margin-top:34px; display:flex; flex-wrap:wrap; gap:20px; color:#bfc8d0; font-size:13px; font-weight:650; }
.promalp-hero__facts span { display:flex; align-items:center; gap:8px; }
.promalp-hero__facts .promalp-icon { width:19px; height:19px; color:var(--accent); }
.promalp-hero__visual { position:relative; min-height:470px; display:flex; align-items:center; justify-content:center; }
.promalp-hero__visual::before { content:""; position:absolute; width:80%; aspect-ratio:1; border-radius:50%; background:var(--accent); filter:blur(90px); opacity:.1; }
.promalp-hero__visual img { position:relative; width:100%; max-height:510px; object-fit:contain; filter: drop-shadow(0 25px 35px rgba(0,0,0,.35)); }
.promalp-hero--generic .promalp-hero__grid { min-height:520px; }
.promalp-hero--generic .promalp-hero__visual { min-height:360px; }

/* Breadcrumbs */
.promalp-breadcrumbs { background:#fff; border-bottom:1px solid var(--line); }
.promalp-breadcrumbs .container { display:flex; align-items:center; gap:8px; min-height:46px; font-size:12px; color:#7a838d; overflow:auto; white-space:nowrap; }
.promalp-breadcrumbs a:hover { color:var(--ink); }

/* Sections */
.content-section { padding:86px 0; background:#fff; }
.content-section + .content-section { border-top:1px solid rgba(10,20,30,.035); }
.section-muted { background:var(--bg); }
.section-dark { color:#fff; background:var(--dark); }
.section-heading { max-width:830px; margin-bottom:36px; }
.section-heading h1, .section-heading h2 { margin:0; font-size:clamp(34px,4vw,52px); line-height:1.06; letter-spacing:-.04em; }
.section-heading p { margin:15px 0 0; color:var(--muted); font-size:18px; }
.section-heading--split { max-width:none; display:grid; grid-template-columns: .9fr 1.1fr; gap:70px; align-items:end; }
.section-heading--split p { margin:0; }
.section-dark .section-heading p { color:#bac2ca; }
.lead-prose { max-width:920px; font-size:20px; color:#414b56; }
.lead-prose p { margin:0; }
.page-content > p:empty { display:none; }

/* Cards */
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.feature-card { min-height:210px; padding:27px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:0 9px 26px rgba(10,20,30,.03); }
.section-muted .feature-card { box-shadow:var(--shadow); border-color:transparent; }
.feature-card__icon, .service-card__icon { display:grid; place-items:center; width:48px; height:48px; margin-bottom:24px; border-radius:13px; background:var(--accent); color:var(--dark); }
.feature-card h3, .service-card h3 { margin:0 0 10px; font-size:21px; line-height:1.2; letter-spacing:-.025em; }
.feature-card p, .service-card p { margin:0; color:var(--muted); font-size:15px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.service-card { position:relative; display:flex; flex-direction:column; min-height:310px; padding:31px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); transition:.2s ease; }
.service-card:hover { transform:translateY(-4px); border-color:#cdd2d8; }
.service-card h3 { font-size:25px; }
.service-card .text-link { margin-top:auto; padding-top:24px; }
.object-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.object-card { display:flex; align-items:center; gap:15px; min-height:92px; padding:18px 22px; background:#fff; border:1px solid var(--line); border-radius:16px; font-size:16px; }
.object-card .promalp-icon { color:#6a7480; }

/* Lists / steps */
.check-list { list-style:none; margin:20px 0 0; padding:0; }
.check-list li { position:relative; padding-left:30px; margin:10px 0; }
.check-list li::before { content:"✓"; position:absolute; left:0; top:0; color:#937000; font-weight:900; }
.check-list--cards { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin:0; }
.check-list--cards li { margin:0; padding:18px 18px 18px 52px; background:#fff; border:1px solid var(--line); border-radius:14px; }
.check-list--cards li::before { left:20px; top:18px; }
.steps-list { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(5,1fr); gap:0; counter-reset:steps; }
.steps-list li { position:relative; padding:24px 24px 24px 0; }
.steps-list li:not(:last-child)::after { content:""; position:absolute; top:40px; left:58px; right:16px; height:1px; background:rgba(255,255,255,.17); }
.steps-list > li > span { position:relative; z-index:1; display:grid; place-items:center; width:52px; height:52px; margin-bottom:24px; border-radius:50%; background:var(--accent); color:var(--dark); font-size:13px; font-weight:900; }
.steps-list h3 { margin:0 0 8px; font-size:18px; }
.steps-list p { margin:0; color:#aeb7c0; font-size:14px; }

/* Related services */
.related-services__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.related-services__grid > a { display:grid; grid-template-columns:1fr auto; gap:8px 18px; padding:22px; background:#fff; border:1px solid var(--line); border-radius:15px; }
.related-services__grid strong { font-size:17px; }
.related-services__grid span { color:var(--muted); font-size:13px; grid-column:1; }
.related-services__grid .promalp-icon { grid-row:1 / span 2; grid-column:2; align-self:center; }

/* License */
.section-license { padding-top:80px; padding-bottom:80px; }
.license-card { display:grid; grid-template-columns:auto 1fr; gap:28px; padding:38px; border-radius:var(--radius); background:linear-gradient(125deg,#ffc400,#ffda54); color:var(--dark); }
.license-card__icon { display:grid; place-items:center; width:70px; height:70px; border-radius:18px; background:rgba(16,24,32,.1); }
.license-card__icon .promalp-icon { width:38px; height:38px; }
.license-card .promalp-kicker { color:#554300; }
.license-card .promalp-kicker::before { background:var(--dark); }
.license-card h2 { margin:0 0 10px; font-size:clamp(30px,3.5vw,45px); line-height:1.05; letter-spacing:-.04em; }
.license-card p { max-width:900px; margin:0; }
.license-card__actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:24px; }
.license-details { display:grid; grid-template-columns:repeat(3,1fr); gap:15px; }
.license-details > div { padding:22px; border:1px solid var(--line); border-radius:15px; background:#fff; }
.license-details span { display:block; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.07em; }
.license-details strong { display:block; margin-top:6px; font-size:16px; word-break:break-word; }
.small-note { max-width:900px; margin:18px 0 0; font-size:13px; color:var(--muted); }

/* Forms */
.form-wrap { padding-top:80px; padding-bottom:80px; }
.promalp-request { display:grid; grid-template-columns:.82fr 1.18fr; gap:55px; padding:48px; border-radius:var(--radius); background:var(--dark); color:#fff; box-shadow:var(--shadow); }
.promalp-request__intro h2 { margin:0; font-size:clamp(32px,3.5vw,48px); line-height:1.05; letter-spacing:-.04em; }
.promalp-request__intro p { color:#b9c2ca; }
.promalp-request__intro .check-list li::before { color:var(--accent); }
.promalp-form-card { padding:27px; border-radius:18px; background:#fff; color:var(--ink); }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.form-grid label, .consent { display:block; }
.form-grid label > span { display:block; margin-bottom:6px; font-size:12px; font-weight:800; color:#4f5964; }
.form-grid input, .form-grid select, .form-grid textarea { width:100%; min-height:48px; padding:12px 13px; border:1px solid #d8dde2; background:#fff; border-radius:10px; color:var(--ink); outline:none; transition:.15s ease; }
.form-grid textarea { resize:vertical; }
.form-grid input:focus, .form-grid select:focus, .form-grid textarea:focus { border-color:#8a929a; box-shadow:0 0 0 3px rgba(20,30,40,.07); }
.form-grid__wide { grid-column:1/-1; }
.file-control small { display:block; margin-top:5px; color:#808891; font-size:11px; }
.consent { display:flex; align-items:flex-start; gap:9px; margin:17px 0; color:#68727c; font-size:11px; line-height:1.45; }
.consent input { margin-top:3px; }
.consent a { text-decoration:underline; }
.hp-field { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-notice { padding:11px 13px; margin-bottom:14px; border-radius:9px; font-size:13px; font-weight:700; }
.form-notice--success { background:#e9f7ef; color:var(--success); }
.form-notice--error { background:#fff0ef; color:var(--danger); }

/* FAQ */
.faq-list { max-width:940px; }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item:first-child { border-top:1px solid var(--line); }
.faq-item summary { list-style:none; display:flex; align-items:center; justify-content:space-between; gap:25px; padding:22px 0; cursor:pointer; font-size:18px; font-weight:800; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary span { display:grid; place-items:center; flex:0 0 auto; width:32px; height:32px; border-radius:50%; background:var(--surface-2); font-size:20px; transition:transform .2s ease; }
.faq-item[open] summary span { transform:rotate(45deg); background:var(--accent); }
.faq-item > div { padding:0 52px 20px 0; color:var(--muted); }
.faq-item p { margin:0; }

/* Blog */
.post-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.post-card { overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:var(--radius); transition:.2s ease; }
.post-card:hover { transform:translateY(-3px); box-shadow:var(--shadow); }
.post-card > a { display:flex; flex-direction:column; height:100%; }
.post-card__visual { min-height:150px; display:grid; place-items:center; color:var(--accent); background:linear-gradient(135deg,var(--dark),#263746); }
.post-card__visual .promalp-icon { width:56px; height:56px; }
.post-card__body { display:flex; flex-direction:column; flex:1; padding:23px; }
.post-card__meta { color:#88919a; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.post-card h2, .post-card h3 { margin:10px 0 10px; font-size:22px; line-height:1.2; letter-spacing:-.025em; }
.post-card p { color:var(--muted); font-size:14px; margin:0 0 20px; }
.post-card .text-link { margin-top:auto; }
.navigation.pagination { margin-top:34px; }
.nav-links { display:flex; gap:8px; }
.page-numbers { display:grid; place-items:center; min-width:42px; height:42px; padding:0 10px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.page-numbers.current { background:var(--dark); color:#fff; border-color:var(--dark); }

/* Article */
.article-header { padding:80px 0 55px; background:var(--dark); color:#fff; }
.article-header h1 { margin:0; font-size:clamp(40px,5vw,67px); line-height:1.02; letter-spacing:-.05em; }
.article-meta { display:flex; gap:18px; margin-top:22px; color:#aeb8c1; font-size:13px; }
.article-content { padding-top:62px; padding-bottom:78px; font-size:18px; }
.article-content .article-lead { font-size:23px; line-height:1.55; color:#3f4953; }
.article-content h2 { margin:48px 0 16px; font-size:32px; line-height:1.15; letter-spacing:-.03em; }
.article-content h3 { margin:34px 0 13px; font-size:23px; }
.article-content p { margin:0 0 20px; }
.article-content .check-list--cards { grid-template-columns:1fr; margin:18px 0 28px; }
.article-note { margin:36px 0; padding:20px 22px; border-left:4px solid var(--accent); background:#fff8d9; border-radius:0 12px 12px 0; font-size:14px; }
.article-cta { margin-top:54px; padding:34px; background:var(--dark); color:#fff; border-radius:var(--radius); }
.article-cta h2 { margin-top:0; color:#fff; }
.article-cta p { color:#bac3cb; }

/* Contacts */
.contact-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.contact-card { display:flex; align-items:center; gap:18px; min-height:110px; padding:23px; border:1px solid var(--line); border-radius:16px; background:#fff; }
.contact-card .promalp-icon { color:#8b7200; }
.contact-card span { display:flex; flex-direction:column; min-width:0; }
.contact-card small { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.07em; }
.contact-card strong { margin-top:3px; font-size:16px; overflow-wrap:anywhere; }

/* Footer */
.site-footer { padding:64px 0 0; background:#0c1319; color:#d4dbe1; }
.site-footer__grid { display:grid; grid-template-columns:1.5fr .8fr .8fr 1.2fr; gap:46px; padding-bottom:45px; }
.site-footer .brand { color:#fff; }
.site-footer__brand > p { max-width:380px; color:#929da7; font-size:13px; }
.footer-license { color:#b1bbc3!important; }
.site-footer h2 { margin:4px 0 18px; color:#fff; font-size:14px; text-transform:uppercase; letter-spacing:.08em; }
.site-footer ul { list-style:none; margin:0; padding:0; }
.site-footer li { margin:9px 0; }
.site-footer li a { color:#a9b3bc; font-size:13px; }
.site-footer li a:hover { color:var(--accent); }
.site-footer__contacts { display:flex; flex-direction:column; gap:12px; }
.site-footer__contacts a, .site-footer__contacts span { display:flex; align-items:flex-start; gap:8px; color:#a9b3bc; font-size:13px; line-height:1.45; }
.site-footer__contacts .promalp-icon { width:18px; height:18px; margin-top:1px; color:var(--accent); }
.site-footer__bottom { min-height:70px; border-top:1px solid rgba(255,255,255,.08); display:flex; align-items:center; justify-content:space-between; gap:20px; color:#77838d; font-size:11px; }
.site-footer__bottom div { display:flex; flex-wrap:wrap; gap:18px; }
.site-footer__bottom a:hover { color:#fff; }

.error-page { min-height:640px; display:flex; align-items:center; background:var(--dark); color:#fff; }
.error-page h1 { margin:0; font-size:clamp(50px,8vw,90px); letter-spacing:-.06em; }
.error-page p { max-width:570px; color:#b7c0c8; }

/* Responsive */
@media (max-width: 1120px) {
    .site-header__inner { gap:16px; }
    .primary-menu > li > a { padding:0 7px; font-size:13px; }
    .header-phone span { display:none; }
    .promalp-hero__grid { min-height:590px; grid-template-columns:1.1fr .9fr; gap:30px; }
    .promalp-hero h1 { font-size:58px; }
    .steps-list { grid-template-columns:repeat(3,1fr); }
    .steps-list li:nth-child(3)::after { display:none; }
}

@media (max-width: 920px) {
    body.nav-open { overflow:hidden; }
    .site-header__inner { min-height:70px; }
    .brand { min-width:0; flex:1; }
    .brand__text small { display:none; }
    .nav-toggle { display:block; order:3; }
    .site-header__contact { order:2; }
    .primary-nav { display:none; position:fixed; top:70px; left:0; right:0; bottom:0; padding:12px 20px 35px; overflow:auto; background:#111b24; }
    .nav-open .primary-nav { display:block; }
    .primary-menu { display:block; }
    .primary-menu > li > a { min-height:48px; padding:0 8px; font-size:16px; }
    .primary-menu .sub-menu { position:static; display:block!important; width:auto; margin:0 0 7px 16px; padding:0; border:0; box-shadow:none; background:transparent; }
    .primary-menu .sub-menu a { color:#9fabb5; padding:8px; }
    .promalp-hero__grid { grid-template-columns:1fr; min-height:0; padding-top:70px; padding-bottom:55px; }
    .promalp-hero__visual { order:-1; min-height:260px; max-height:330px; }
    .promalp-hero__visual img { max-height:320px; }
    .promalp-hero h1 { font-size:clamp(44px,8vw,66px); }
    .feature-grid, .service-grid, .post-grid { grid-template-columns:repeat(2,1fr); }
    .object-grid { grid-template-columns:repeat(2,1fr); }
    .section-heading--split { grid-template-columns:1fr; gap:16px; }
    .related-services__grid { grid-template-columns:repeat(2,1fr); }
    .promalp-request { grid-template-columns:1fr; }
    .site-footer__grid { grid-template-columns:1.3fr 1fr 1fr; }
    .site-footer__contacts { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); }
    .site-footer__contacts h2 { grid-column:1/-1; }
}

@media (max-width: 680px) {
    body { font-size:16px; }
    .container, .container--article { width:min(calc(100% - 28px), var(--container)); }
    .site-header__contact .btn { display:none; }
    .header-phone span { display:inline; font-size:12px; }
    .brand__shield { width:37px; height:37px; }
    .brand__text strong { font-size:16px; }
    .promalp-hero__grid { gap:20px; padding-top:44px; }
    .promalp-hero__visual { min-height:200px; }
    .promalp-hero__visual img { max-height:230px; }
    .promalp-hero h1 { font-size:42px; }
    .promalp-hero__lead { font-size:17px; }
    .promalp-hero__actions .btn { width:100%; }
    .promalp-hero__facts { display:grid; gap:10px; }
    .content-section { padding:60px 0; }
    .section-license, .form-wrap { padding-top:55px; padding-bottom:55px; }
    .section-heading { margin-bottom:26px; }
    .section-heading h1, .section-heading h2 { font-size:34px; }
    .feature-grid, .service-grid, .post-grid, .object-grid, .related-services__grid, .contact-grid, .license-details { grid-template-columns:1fr; }
    .feature-card { min-height:0; }
    .service-card { min-height:260px; }
    .check-list--cards { grid-template-columns:1fr; }
    .steps-list { grid-template-columns:1fr; }
    .steps-list li { display:grid; grid-template-columns:52px 1fr; gap:18px; padding:12px 0 22px; }
    .steps-list > li > span { margin:0; }
    .steps-list li::after { display:none!important; }
    .license-card { grid-template-columns:1fr; padding:27px; }
    .license-card__icon { width:58px; height:58px; }
    .license-card__actions .btn { width:100%; }
    .promalp-request { padding:25px; gap:28px; }
    .promalp-form-card { padding:18px; }
    .form-grid { grid-template-columns:1fr; }
    .form-grid__wide { grid-column:auto; }
    .article-header { padding:58px 0 40px; }
    .article-content { padding-top:42px; }
    .article-content h2 { font-size:28px; }
    .site-footer__grid { grid-template-columns:1fr 1fr; gap:32px; }
    .site-footer__brand, .site-footer__contacts { grid-column:1/-1; }
    .site-footer__contacts { display:flex; }
    .site-footer__bottom { padding:20px 0; flex-direction:column; align-items:flex-start; }
}

@media (max-width: 430px) {
    .header-phone span { display:none; }
    .promalp-hero h1 { font-size:37px; }
    .promalp-hero__visual { min-height:170px; }
    .site-footer__grid { grid-template-columns:1fr; }
    .site-footer__brand, .site-footer__contacts { grid-column:auto; }
}

/* ==========================================================================\n   v1.1 - visual pass based on supplied PromAlp references\n   ========================================================================== */
:root {
    --bg: #f4f5f6;
    --surface: #ffffff;
    --surface-2: #f0f2f4;
    --ink: #121922;
    --muted: #5e6975;
    --dark: #0c141c;
    --dark-2: #121d27;
    --line: #dfe3e7;
    --accent: #ffc400;
    --accent-2: #ffd13c;
    --radius: 7px;
    --radius-sm: 5px;
    --shadow: 0 12px 34px rgba(12,20,28,.08);
    --container: 1240px;
}

body { font-size: 16px; line-height: 1.5; background:#fff; }
.container { width:min(calc(100% - 48px), var(--container)); }
.site-main { overflow:hidden; }

/* Header - compact, flat, reference-like */
.site-header { position:absolute; top:0; left:0; right:0; background:transparent; border-bottom:0; backdrop-filter:none; }
.admin-bar .site-header { top:32px; }
.site-header.is-scrolled { position:fixed; top:0; background:rgba(9,15,21,.97); box-shadow:0 8px 30px rgba(0,0,0,.2); }
.admin-bar .site-header.is-scrolled { top:32px; }
.site-header__inner { min-height:74px; gap:24px; }
.brand { min-width:180px; gap:10px; }
.brand__shield { width:34px; height:40px; border-radius:0; background:transparent; color:var(--accent); }
.brand__shield .promalp-icon { width:34px; height:40px; stroke-width:1.45; }
.brand__text strong { font-size:16px; }
.brand__text small { margin-top:2px; font-size:8px; color:#c5cbd1; letter-spacing:.06em; text-transform:none; }
.primary-menu { gap:0; }
.primary-menu > li > a { min-height:74px; padding:0 13px; font-size:12px; font-weight:700; color:#eef1f4; }
.primary-menu > li > a:hover { color:var(--accent); }
.primary-menu .sub-menu { top:64px; width:245px; padding:8px; border-radius:4px; background:#111a23; }
.primary-menu .sub-menu a { padding:10px 11px; border-radius:3px; font-size:13px; }
.site-header__contact { gap:12px; }
.header-phone { font-size:13px; }
.header-phone .promalp-icon { width:16px; color:var(--accent); }
.site-header .btn--small { min-height:42px; padding:10px 16px; border-radius:4px; font-size:12px; }

/* Buttons */
.btn { min-height:48px; padding:12px 22px; border-radius:4px; font-size:13px; font-weight:800; }
.btn--ghost { background:transparent; border-color:rgba(255,255,255,.72); }
.btn--ghost-dark { background:#fff; color:var(--ink); border-color:#9aa3ac; }
.btn--ghost-dark:hover { background:#f5f6f7; }
.text-link { font-size:13px; }

/* Hero - image integrated into the whole first screen */
.promalp-hero { min-height:555px; background:#0b131b; }
.promalp-hero::before { z-index:1; opacity:.06; background-size:56px 56px; mask-image:none; }
.promalp-hero::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(7,13,19,.98) 0%,rgba(7,13,19,.96) 34%,rgba(7,13,19,.75) 51%,rgba(7,13,19,.18) 77%,rgba(7,13,19,.08) 100%); }
.promalp-hero__photo { position:absolute; inset:0 0 0 36%; overflow:hidden; z-index:0; }
.promalp-hero__photo img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.9) contrast(1.04); }
.promalp-hero--home .promalp-hero__photo img { object-position:center 44%; }
.promalp-hero__grid { position:relative; z-index:2; min-height:555px; grid-template-columns:minmax(0,620px) 1fr; gap:35px; padding-top:112px; padding-bottom:54px; align-items:center; }
.promalp-hero__content { max-width:650px; }
.promalp-kicker { margin-bottom:17px; font-size:10px; letter-spacing:.12em; color:#c8ced4; }
.promalp-kicker::before { width:19px; height:2px; }
.promalp-hero h1 { max-width:650px; font-size:clamp(43px,4.4vw,64px); line-height:1.02; letter-spacing:-.045em; }
.promalp-hero__lead { max-width:560px; margin-top:20px; font-size:16px; line-height:1.55; color:#d0d5da; }
.promalp-hero__actions { margin-top:27px; gap:14px; }
.promalp-hero__facts { margin-top:27px; gap:22px; color:#d0d6dc; font-size:11px; }
.promalp-hero__facts .promalp-icon { width:16px; height:16px; }
.promalp-hero__visual { min-height:360px; align-self:stretch; display:flex; align-items:flex-end; justify-content:flex-end; padding-bottom:22px; }
.promalp-hero__visual::before, .promalp-hero__visual img { display:none; }
.promalp-hero__glass { display:flex; align-items:center; gap:11px; max-width:260px; padding:12px 14px; color:#fff; background:rgba(10,17,24,.65); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(10px); border-radius:4px; box-shadow:0 18px 40px rgba(0,0,0,.18); }
.promalp-hero__glass-icon { display:grid; place-items:center; width:38px; height:38px; background:var(--accent); color:var(--dark); border-radius:3px; }
.promalp-hero__glass-icon .promalp-icon { width:21px; height:21px; }
.promalp-hero__glass span:last-child { display:flex; flex-direction:column; line-height:1.15; }
.promalp-hero__glass small { color:#cfd5da; font-size:9px; }
.promalp-hero__glass strong { margin-top:3px; font-size:12px; }
.promalp-hero--generic { min-height:470px; }
.promalp-hero--generic .promalp-hero__grid { min-height:470px; }

.promalp-breadcrumbs { padding-top:74px; background:#0b131b; color:#cbd1d6; border:0; }
.promalp-breadcrumbs .container { min-height:38px; color:#abb4bd; }

/* Sections */
.content-section { padding:58px 0; }
.content-section + .content-section { border-top:1px solid #eef0f2; }
.section-muted { background:#f5f6f7; }
.section-dark { background:#0d161f; }
.section-heading { max-width:760px; margin:0 auto 30px; text-align:center; }
.section-heading h1, .section-heading h2 { font-size:clamp(28px,3vw,38px); line-height:1.08; letter-spacing:-.035em; }
.section-heading h2::after { content:""; display:block; width:34px; height:3px; margin:12px auto 0; background:var(--accent); }
.section-heading p { margin-top:12px; font-size:15px; }
.section-heading--split { max-width:none; display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:end; text-align:left; }
.section-heading--split h2::after { margin-left:0; }
.section-heading--split p { font-size:15px; }
.lead-prose { max-width:900px; margin:0 auto; font-size:17px; text-align:center; color:#414b56; }

/* Cards - squared, compact, icon-heavy as in supplied references */
.feature-grid { grid-template-columns:repeat(auto-fit,minmax(175px,1fr)); gap:10px; }
.feature-card { min-height:185px; padding:20px 18px; border-radius:4px; border-color:#e4e7ea; box-shadow:0 7px 22px rgba(12,20,28,.045); }
.section-muted .feature-card { border:1px solid #e2e5e8; box-shadow:0 8px 24px rgba(12,20,28,.055); }
.feature-card__icon, .service-card__icon { width:42px; height:42px; margin-bottom:18px; border-radius:4px; background:transparent; color:#172231; }
.feature-card__icon .promalp-icon, .service-card__icon .promalp-icon { width:34px; height:34px; stroke-width:1.45; }
.feature-card h3 { margin-bottom:10px; font-size:16px; }
.feature-card p { font-size:12px; line-height:1.45; }
.service-grid { gap:14px; }
.service-card { min-height:230px; padding:23px; border-radius:5px; box-shadow:0 8px 28px rgba(12,20,28,.06); }
.service-card__icon { color:#172231; }
.service-card h3 { font-size:21px; }
.service-card p { font-size:13px; }
.service-card .text-link { padding-top:18px; }

.object-grid { grid-template-columns:repeat(3,1fr); gap:10px; }
.object-card { min-height:70px; padding:14px 16px; border-radius:4px; font-size:13px; background:#fff; }
.object-card .promalp-icon { width:22px; height:22px; color:#172231; }

/* Home object split visual, matching the high-altitude advantage block */
.page-content--home > .content-section:nth-of-type(2) { position:relative; background:#fff; }
.page-content--home > .content-section:nth-of-type(2) .container { display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; }
.page-content--home > .content-section:nth-of-type(2) .section-heading { grid-column:1; margin:0; padding:28px 42px 24px 0; text-align:left; align-self:end; }
.page-content--home > .content-section:nth-of-type(2) .section-heading h2::after { margin-left:0; }
.page-content--home > .content-section:nth-of-type(2) .object-grid { grid-column:1; padding-right:40px; grid-template-columns:repeat(2,1fr); }
.page-content--home > .content-section:nth-of-type(2) .container::after { content:"Высотный монтаж - наше преимущество\A\A Камеры, линии и оборудование в труднодоступных местах без привлечения отдельной автовышки."; white-space:pre-wrap; grid-column:2; grid-row:1 / span 2; min-height:360px; display:flex; align-items:flex-end; padding:38px; color:#fff; font-size:14px; font-weight:500; background:linear-gradient(180deg,rgba(10,16,22,.10),rgba(10,16,22,.92)),url('../img/section-height-v13.webp') 62% center/cover no-repeat; }

/* Why PromAlp - no SaaS cards */
.page-content--home > .content-section:nth-of-type(3) .feature-grid { grid-template-columns:repeat(4,1fr); gap:24px; }
.page-content--home > .content-section:nth-of-type(3) .feature-card { min-height:0; padding:0 8px; border:0; box-shadow:none; background:transparent; text-align:center; }
.page-content--home > .content-section:nth-of-type(3) .feature-card__icon { margin:0 auto 13px; }

/* Lists */
.check-list li { font-size:13px; }
.check-list--cards { gap:8px; }
.check-list--cards li { padding:14px 14px 14px 42px; border-radius:4px; font-size:13px; }
.check-list--cards li::before { left:15px; top:14px; color:#d6a700; }

/* Steps - reference horizontal line */
.section-dark { padding:54px 0; }
.section-dark .section-heading { text-align:left; margin-left:0; }
.section-dark .section-heading h2::after { margin-left:0; }
.steps-list { grid-template-columns:repeat(5,1fr); }
.steps-list li { padding:18px 18px 10px 0; }
.steps-list li:not(:last-child)::after { top:34px; left:43px; right:8px; background:rgba(255,255,255,.24); }
.steps-list > li > span { width:34px; height:34px; margin-bottom:14px; font-size:10px; }
.steps-list h3 { font-size:14px; }
.steps-list p { font-size:11px; line-height:1.45; }

/* License - split image/document, not giant yellow box */
.section-license { padding-top:54px; padding-bottom:54px; }
.license-card { display:grid; grid-template-columns:1.12fr .88fr; gap:0; padding:0; overflow:hidden; border-radius:5px; color:#fff; background:#101922; box-shadow:0 10px 32px rgba(12,20,28,.12); }
.license-card__content { padding:34px 38px; }
.license-card .promalp-kicker { color:#d7dde2; }
.license-card .promalp-kicker::before { background:var(--accent); }
.license-card h2 { margin:0 0 13px; font-size:31px; }
.license-card p { max-width:650px; color:#d5dbe0; font-size:13px; }
.license-card__list { list-style:none; margin:18px 0 0; padding:0; }
.license-card__list li { position:relative; margin:8px 0; padding-left:22px; font-size:12px; color:#eef1f3; }
.license-card__list li::before { content:"✓"; position:absolute; left:0; color:var(--accent); font-weight:900; }
.license-card__actions { margin-top:22px; gap:10px; }
.license-card__media { min-height:310px; background:#e9ecef; overflow:hidden; }
.license-card__media img { width:100%; height:100%; object-fit:cover; object-position:center 28%; filter:contrast(1.03); }

/* Forms - white calculation panel close to refs */
.form-wrap { padding-top:54px; padding-bottom:54px; }
.promalp-request { grid-template-columns:.9fr 1.1fr; gap:0; padding:0; border-radius:5px; overflow:hidden; background:#fff; color:var(--ink); border:1px solid #e0e4e7; box-shadow:0 10px 32px rgba(12,20,28,.07); }
.promalp-request__intro { padding:36px 36px 34px; background:#101922; color:#fff; }
.promalp-request__intro h2 { font-size:32px; }
.promalp-request__intro p { color:#c0c8cf; font-size:13px; }
.promalp-request__intro .check-list { margin-top:18px; }
.promalp-request__intro .check-list li { margin:8px 0; color:#edf1f3; }
.promalp-form-card { padding:28px 30px; border-radius:0; }
.form-grid { gap:10px 12px; }
.form-grid label > span { margin-bottom:4px; font-size:10px; }
.form-grid input, .form-grid select, .form-grid textarea { min-height:43px; padding:10px 11px; border-radius:3px; font-size:12px; }
.form-grid textarea { min-height:80px; }
.consent { margin:12px 0; font-size:9px; }

/* FAQ with supporting image on service pages */
.faq-list { max-width:none; }
.faq-item { border:1px solid #e0e4e7; border-bottom:0; background:#fff; }
.faq-item:last-child { border-bottom:1px solid #e0e4e7; }
.faq-item:first-child { border-top:1px solid #e0e4e7; }
.faq-item summary { padding:13px 15px; font-size:13px; }
.faq-item summary span { width:23px; height:23px; border-radius:0; font-size:17px; background:transparent; }
.faq-item > div { padding:0 45px 14px 15px; font-size:12px; }

.related-services__grid { gap:8px; }
.related-services__grid > a { padding:17px; border-radius:4px; }
.related-services__grid strong { font-size:14px; }
.related-services__grid span { font-size:11px; }

/* Blog */
.post-grid { gap:12px; }
.post-card { border-radius:5px; }
.post-card__visual { min-height:110px; }
.post-card__visual .promalp-icon { width:37px; height:37px; }
.post-card__body { padding:18px; }
.post-card h2, .post-card h3 { font-size:17px; }
.post-card p { font-size:12px; }

/* Footer CTA and footer */
.footer-cta { position:relative; color:#fff; background:#101922; overflow:hidden; }
.footer-cta__bg { position:absolute; inset:0; background:linear-gradient(90deg,rgba(7,13,19,.88),rgba(7,13,19,.45)),url('../img/cta-city-v13.webp') center/cover no-repeat; }
.footer-cta__inner { position:relative; z-index:1; min-height:190px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:32px 0; }
.footer-cta h2 { margin:0; font-size:31px; letter-spacing:-.035em; }
.footer-cta p { margin:9px 0 18px; color:#d4d9de; font-size:13px; }
.site-footer { padding-top:43px; background:#0d151d; }
.site-footer__grid { gap:40px; padding-bottom:35px; }
.site-footer h2 { font-size:12px; }
.site-footer li a, .site-footer__contacts a, .site-footer__contacts span, .site-footer__brand > p { font-size:11px; }
.site-footer__bottom { min-height:55px; }

/* Article and supporting pages */
.article-header { padding-top:112px; padding-bottom:45px; }
.article-header h1 { font-size:clamp(36px,4.5vw,58px); }
.contact-card { min-height:86px; padding:17px; border-radius:4px; }
.license-details > div { border-radius:4px; }

@media (max-width:1120px) {
    .primary-menu > li > a { padding:0 8px; font-size:11px; }
    .site-header__contact .btn { padding-left:12px; padding-right:12px; }
    .promalp-hero__grid { grid-template-columns:minmax(0,560px) 1fr; }
    .promalp-hero h1 { font-size:52px; }
}

@media (max-width:920px) {
    .site-header { position:fixed; background:rgba(9,15,21,.97); }
    .admin-bar .site-header { top:46px; }
    .site-header__inner { min-height:68px; }
    .primary-nav { top:68px; background:#0d161f; }
    .primary-menu > li > a { min-height:44px; font-size:15px; }
    .promalp-breadcrumbs { padding-top:68px; }
    .promalp-hero { min-height:0; }
    .promalp-hero::after { background:linear-gradient(90deg,rgba(7,13,19,.97),rgba(7,13,19,.78)); }
    .promalp-hero__photo { inset:0; opacity:.62; }
    .promalp-hero__grid { grid-template-columns:1fr; min-height:540px; padding-top:115px; padding-bottom:45px; }
    .promalp-hero__visual { display:none; }
    .promalp-hero__content { max-width:660px; }
    .feature-grid { grid-template-columns:repeat(3,1fr); }
    .page-content--home > .content-section:nth-of-type(2) .container { grid-template-columns:1fr; }
    .page-content--home > .content-section:nth-of-type(2) .section-heading,
    .page-content--home > .content-section:nth-of-type(2) .object-grid { grid-column:1; padding-right:0; }
    .page-content--home > .content-section:nth-of-type(2) .container::after { grid-column:1; grid-row:auto; margin-top:22px; min-height:300px; }
    .page-content--home > .content-section:nth-of-type(3) .feature-grid { grid-template-columns:repeat(2,1fr); }
    .license-card { grid-template-columns:1fr 300px; }
    .license-card__media { min-height:100%; }
    .steps-list { grid-template-columns:repeat(3,1fr); }
}

@media (max-width:680px) {
    .container, .container--article { width:min(calc(100% - 28px), var(--container)); }
    .site-header__contact .btn { display:none; }
    .header-phone span { display:inline; }
    .brand__text small { display:none; }
    .promalp-hero__grid { min-height:520px; padding-top:105px; }
    .promalp-hero h1 { font-size:39px; }
    .promalp-hero__lead { font-size:15px; }
    .promalp-hero__facts { display:grid; gap:8px; }
    .content-section { padding:45px 0; }
    .section-heading { margin-bottom:24px; }
    .section-heading h1, .section-heading h2 { font-size:29px; }
    .section-heading--split { grid-template-columns:1fr; gap:10px; }
    .feature-grid, .service-grid, .post-grid, .object-grid, .related-services__grid, .contact-grid, .license-details { grid-template-columns:1fr; }
    .feature-card { min-height:0; }
    .page-content--home > .content-section:nth-of-type(2) .object-grid { grid-template-columns:1fr; }
    .page-content--home > .content-section:nth-of-type(3) .feature-grid { grid-template-columns:1fr 1fr; gap:22px 8px; }
    .license-card { grid-template-columns:1fr; }
    .license-card__content { padding:28px 23px; }
    .license-card__media { min-height:250px; }
    .promalp-request { grid-template-columns:1fr; }
    .promalp-request__intro { padding:27px 22px; }
    .promalp-form-card { padding:22px; }
    .form-grid { grid-template-columns:1fr; }
    .form-grid__wide { grid-column:auto; }
    .steps-list { grid-template-columns:1fr; }
    .steps-list li { display:grid; grid-template-columns:38px 1fr; gap:13px; padding:8px 0 16px; }
    .steps-list > li > span { margin:0; }
    .steps-list li::after { display:none!important; }
    .footer-cta__inner { min-height:220px; }
    .footer-cta h2 { font-size:27px; }
}

@media (max-width:430px) {
    .header-phone span { display:none; }
    .promalp-hero h1 { font-size:35px; }
    .page-content--home > .content-section:nth-of-type(3) .feature-grid { grid-template-columns:1fr; }
}

/* v1.2 generated photography integration */
.promalp-hero--home .promalp-hero__photo img { object-position:70% center; }
.promalp-hero--video .promalp-hero__photo img { object-position:71% center; }
.promalp-hero--security .promalp-hero__photo img { object-position:68% center; }
.promalp-hero--fire .promalp-hero__photo img { object-position:62% center; }
.promalp-hero--generic .promalp-hero__photo img { object-position:68% center; }
@media (max-width:920px) {
    .promalp-hero--home .promalp-hero__photo img,
    .promalp-hero--video .promalp-hero__photo img,
    .promalp-hero--security .promalp-hero__photo img,
    .promalp-hero--fire .promalp-hero__photo img,
    .promalp-hero--generic .promalp-hero__photo img { object-position:68% center; }
}


/* v1.3.1 - engineering typography */
body {
    font-family: "IBM Plex Sans", "Segoe UI", Arial, sans-serif;
    font-weight: 400;
    letter-spacing: 0;
}

h1, h2, h3, h4, h5, h6,
.brand__text strong,
.primary-menu > li > a,
.primary-menu .sub-menu a,
.header-phone,
.btn,
.text-link,
.promalp-kicker,
.promalp-hero__facts,
.object-card strong,
.steps-list > li > span,
.steps-list h3,
.form-grid label > span,
.faq-item summary,
.post-card h2,
.post-card h3,
.license-details strong {
    font-family: "Roboto Condensed", "Arial Narrow", "Segoe UI", Arial, sans-serif;
}

.brand__text strong {
    font-weight: 700;
    letter-spacing: -.01em;
}

.primary-menu > li > a {
    font-weight: 600;
    letter-spacing: .005em;
}
.primary-menu .sub-menu a { font-weight: 600; }
.header-phone { font-weight: 700; }
.btn, .text-link {
    font-weight: 700;
    letter-spacing: .005em;
}
.promalp-kicker {
    font-weight: 700;
    letter-spacing: .115em;
}
.promalp-hero h1 {
    font-family: "Roboto Condensed", "Arial Narrow", "Segoe UI", Arial, sans-serif;
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: .98;
}
.promalp-hero__lead {
    font-family: "IBM Plex Sans", "Segoe UI", Arial, sans-serif;
    font-weight: 400;
    letter-spacing: -.005em;
}
.promalp-hero__facts { font-weight: 600; }
.section-heading h1,
.section-heading h2 {
    font-family: "Roboto Condensed", "Arial Narrow", "Segoe UI", Arial, sans-serif;
    font-weight: 700;
    letter-spacing: -.018em;
    line-height: 1.02;
}
.feature-card h3,
.service-card h3,
.license-card h2,
.promalp-request__intro h2,
.related-services__grid strong {
    font-family: "Roboto Condensed", "Arial Narrow", "Segoe UI", Arial, sans-serif;
    font-weight: 700;
    letter-spacing: -.012em;
}
.feature-card p,
.service-card p,
.section-heading p,
.lead-prose,
.object-card,
.steps-list p,
.post-card p,
.license-card p,
.promalp-request__intro p,
.form-grid input,
.form-grid select,
.form-grid textarea {
    font-family: "IBM Plex Sans", "Segoe UI", Arial, sans-serif;
}
.object-card strong,
.steps-list h3,
.faq-item summary,
.form-grid label > span { font-weight: 700; }
.steps-list > li > span { font-weight: 700; }
.faq-item summary { letter-spacing: -.005em; }

/* Reduce the previous rounded/heavy feel on large headings */
@media (min-width: 921px) {
    .promalp-hero h1 { font-size: clamp(46px, 4.15vw, 62px); }
}


/* v1.3.3 - long-form article layout for ordinary HTML blocks */
.article-page { background:#fff; }
.article-shell {
    width:min(calc(100% - 40px), 1180px);
    display:grid;
    grid-template-columns:240px minmax(0, 820px);
    justify-content:center;
    gap:64px;
    align-items:start;
    padding-top:56px;
    padding-bottom:82px;
}
.article-content { min-width:0; padding:0; font-size:17px; line-height:1.76; color:#27323c; }
.article-content > p:first-child {
    margin:0 0 38px;
    padding:22px 24px;
    border-left:3px solid var(--accent);
    background:#f4f6f7;
    color:#3f4b55;
    font-size:19px;
    line-height:1.65;
}
.article-content h2,
.article-content h3 { scroll-margin-top:115px; color:#111b24; }
.article-content h2 {
    position:relative;
    margin:58px 0 22px;
    padding-top:24px;
    border-top:1px solid #e4e8eb;
    font-size:31px;
    line-height:1.18;
    letter-spacing:-.025em;
}
.article-content h2::before {
    content:"";
    position:absolute;
    left:0;
    top:-1px;
    width:54px;
    height:3px;
    background:var(--accent);
}
.article-content h2:first-of-type { margin-top:38px; }
.article-content h3 { margin:36px 0 14px; font-size:22px; line-height:1.25; letter-spacing:-.015em; }
.article-content h4 { margin:28px 0 12px; font-size:18px; color:#17222c; }
.article-content p { margin:0 0 20px; }
.article-content strong { color:#101922; font-weight:700; }
.article-content a { color:#8d6e00; text-decoration:underline; text-decoration-color:#e0b500; text-underline-offset:3px; }
.article-content ul,
.article-content ol {
    margin:22px 0 30px;
    padding:20px 26px 20px 48px;
    border:1px solid #e1e5e8;
    background:#f7f8f9;
}
.article-content li { margin:7px 0; padding-left:4px; }
.article-content li::marker { color:#c89d00; font-weight:700; }
.article-content blockquote {
    margin:34px 0;
    padding:22px 26px;
    border-left:4px solid var(--accent);
    background:#fff8d9;
    color:#27323c;
    font-size:18px;
}
.article-content blockquote p:last-child { margin-bottom:0; }
.article-content table {
    width:100%;
    margin:28px 0 36px;
    border-collapse:collapse;
    border:1px solid #dfe4e7;
    background:#fff;
    font-size:14px;
    line-height:1.5;
}
.article-content th,
.article-content td { padding:13px 15px; border:1px solid #dfe4e7; vertical-align:top; text-align:left; }
.article-content th { background:#111b24; color:#fff; font-weight:700; }
.article-content tr:nth-child(even) td { background:#f7f8f9; }
.article-content figure { margin:34px 0; }
.article-content img { max-width:100%; height:auto; }
.article-content figcaption { margin-top:8px; color:#77828b; font-size:12px; line-height:1.5; }
.article-content hr { margin:48px 0; border:0; border-top:1px solid #e0e4e7; }
.article-content code { padding:2px 5px; background:#f0f2f3; font-size:.9em; }

.article-toc { position:relative; min-width:0; }
.article-toc nav {
    position:sticky;
    top:105px;
    padding:22px 20px;
    border:1px solid #e0e5e8;
    border-top:3px solid var(--accent);
    background:#f7f8f9;
}
.article-toc strong { display:block; margin-bottom:13px; color:#111b24; font-size:16px; }
.article-toc ol { margin:0; padding:0; list-style:none; }
.article-toc li { margin:0; border-top:1px solid #e3e6e8; }
.article-toc li:first-child { border-top:0; }
.article-toc a { display:block; padding:9px 0; color:#52606a; font-size:12px; line-height:1.4; transition:.15s ease; }
.article-toc a:hover { color:#111b24; }
.article-toc__level-3 a { padding-left:12px; font-size:11px; color:#78838c; }

@media (max-width:980px) {
    .article-shell { grid-template-columns:minmax(0,820px); gap:0; }
    .article-toc { display:none; }
}
@media (max-width:640px) {
    .article-shell { width:min(calc(100% - 28px), 820px); padding-top:38px; padding-bottom:58px; }
    .article-content { font-size:16px; line-height:1.7; }
    .article-content > p:first-child { padding:18px; font-size:17px; }
    .article-content h2 { margin-top:44px; font-size:26px; }
    .article-content h3 { font-size:20px; }
    .article-content ul,
    .article-content ol { padding:17px 18px 17px 38px; }
    .article-content table { display:block; overflow-x:auto; white-space:normal; }
}


/* v1.3.4 - featured images on blog cards */
.post-card__visual {
    position: relative;
    aspect-ratio: 16 / 9;
    min-height: 0;
    overflow: hidden;
}
.post-card__visual > img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
    transition: transform .28s ease;
}
.post-card:hover .post-card__visual > img { transform: scale(1.025); }
.post-grid--archive .post-card__visual { aspect-ratio: 16 / 8.4; }

/* v1.4 legal form notes */
.privacy-note { margin:10px 0 16px; color:#6c7680; font-size:11px; line-height:1.5; }
.privacy-note a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.legal-document h2 { scroll-margin-top:110px; }
.legal-document h3 { margin-top:28px; }
