/* Piperlink patterns: see design-system/future-components.html. */
:root{--paper:var(--pl-color-paper);--ink:var(--pl-color-ink);--line:var(--pl-color-line);--muted:var(--pl-color-muted)}
/* Keep the rounded frame separate from its scrolling content. */
#checkout-dialog,#brief-dialog{overflow:hidden;border-radius:var(--pl-radius-dialog);padding:0}
#checkout-dialog .checkout-inner,#brief-dialog .dialog-inner{max-height:calc(92dvh - 2px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a3a699 transparent}
#checkout-dialog .checkout-inner{scrollbar-gutter:stable both-edges}
.checkout-submit{position:static;bottom:auto;margin:0;padding:8px 0 0;background:transparent}
.checkout-submit .button{min-height:58px;transition:background var(--pl-duration-base),color var(--pl-duration-base);transform:none}
.checkout-submit .button:hover{transform:none;background:#414537}
.checkout-submit .button:disabled{cursor:wait;transform:none}
/* Brand closing: preserve dark/light contrast and oversized editorial typography. */
.closing-main h2 em{color:#fffdf8}
.closing-main h2{min-width:0}
@media(max-width:560px){
 .hero-start>.button{display:flex;width:100%;min-height:58px;padding:17px 20px;font-size:16px;justify-content:space-between;gap:20px}
 .hero-start>.button svg{width:22px;height:22px}.hero-note{font-size:11px;line-height:1.6;margin-top:12px}
 html[lang='en'] .closing-main h2{font-size:12vw;letter-spacing:-.045em;line-height:1.08}
 html[lang='uk'] .closing-main h2{font-size:10.6vw;letter-spacing:-.045em;line-height:1.08}
 .closing-arrow{width:58px;height:58px}
 #checkout-dialog .checkout-inner{padding:26px 18px}.checkout-close{right:18px;top:12px;min-width:44px;min-height:44px}
 .checkout-heading{padding-right:26px}.checkout-heading h2{font-size:27px}
 .checkout-submit{position:static;padding-top:8px;margin:0;background:transparent}
}
.field-optional{font-weight:400;color:var(--muted)}

/* Hero link field (design system 1.6.0): paste the app link, press the coral CTA, the chat start opens. */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.hero-start{display:grid;gap:8px;width:100%;margin-top:4px}
.hero-start>.button{display:flex;width:100%;min-height:58px;justify-content:space-between;gap:20px}
/* Pricing v3 (13.10.2026): the money-back guarantee next to the prices, the real separate price of Release partner crossed out. */
.guarantee-strip{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:18px;align-items:center;margin:0 0 18px;padding:18px 22px;border:1.5px solid #35501e;background:#e7ebdd}
.guarantee-strip svg{width:44px;height:44px;fill:none;stroke:#35501e;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.guarantee-strip strong{display:block;font-size:20px;letter-spacing:-.4px;margin-bottom:4px}
.guarantee-strip p{margin:0;font-size:14px;line-height:1.5;color:#3f4636;max-width:760px}
.guarantee-strip a{font-size:13px;white-space:nowrap;color:inherit;text-underline-offset:3px}
.price-was{display:inline-block;margin-right:12px;font-size:.45em;letter-spacing:-.5px;color:#777b6c;font-weight:400;vertical-align:.35em;text-decoration-color:#df4929;text-decoration-thickness:2px}
@media(max-width:650px){.guarantee-strip{grid-template-columns:36px minmax(0,1fr);padding:16px}.guarantee-strip svg{width:36px;height:36px}.guarantee-strip strong{font-size:18px}.guarantee-strip a{grid-column:2}}
html[lang] .hero-aside .hero-note{font-size:13px;line-height:1.55;color:var(--ink)}
html[lang] .hero-aside .hero-note b{font-weight:700}
/* Offer v3 copy (13.10.2026): the guarantee in every pricing card, update testing and options under the cards,
   the senior-QA fields of the sample report and the vulnerability-testing section. */
.plan-guarantee{display:flex;gap:9px;align-items:flex-start;margin:0 0 18px;font-size:12px;line-height:1.6;font-weight:650}
.plan-guarantee svg{width:16px;height:16px;flex-shrink:0;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pricing-lines{display:grid;gap:10px;margin-top:24px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.pricing-lines p{margin:0;font-size:13px;line-height:1.75;color:#4f5747;max-width:1000px}
.pricing-lines b{font-weight:650;color:var(--ink)}
.pricing-lines a{color:var(--ink);font-weight:650;white-space:nowrap;text-underline-offset:3px}
.report-compare{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.report-compare .report-detail{margin:0}
.report-shot{position:relative;margin-top:8px;padding:24px 12px 12px;border:1px solid #d2d6c6;background:#fff;font-size:11px;line-height:1.5}
.report-shot i{position:absolute;inset:0 0 auto;height:13px;background:#eceee4;border-bottom:1px solid #dcdfd2}
.report-shot b{display:block;padding:5px 7px;font-weight:650;outline:2px solid var(--coral);outline-offset:1px}
.report-shot em{display:block;margin-top:7px;font-style:normal;color:#79816b}
.security .platform-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.security .platform-card{display:flex;flex-direction:column}
.security .platform-card .card-foot{margin-top:auto}
@media(max-width:1000px){.security .platform-grid{grid-template-columns:1fr}}
@media(max-width:560px){.report-compare{grid-template-columns:1fr;gap:0}.report-compare .report-detail{margin:18px 0}}
/* Price row: the unit ("/ 1 платформа") never splits; next to a crossed-out price it drops to a compact line below. */
.price{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:9px;row-gap:4px}
.price>span{margin-left:0;white-space:nowrap}
.price .price-was{position:relative;top:-.35em;margin-right:3px}
.price-featured .price-was{color:var(--ink);text-decoration-color:var(--ink)}
.price-label{gap:10px;height:auto;min-height:24px}.plan-badge{white-space:nowrap;flex-shrink:0}
/* Four nav links (the security link) still fit on one line in Ukrainian just above the mobile menu. */
@media(max-width:620px){html[lang='uk'] .desktop-nav{gap:13px}html[lang='uk'] .desktop-nav a{font-size:11px;white-space:nowrap}}

/* On coral blocks the coral text selection disappeared: select in ink there. */
.closing ::selection,.price-featured ::selection,.hero-machine ::selection,.button-coral::selection,.button-coral ::selection{background:var(--ink);color:var(--paper)}

/* Tools strip: a slow marquee of the tools people build with; static and wrapped when motion is off. */
.tool-marquee{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.tool-track{display:flex;width:max-content;animation:tool-marquee 45s linear infinite}
.tool-marquee:hover .tool-track{animation-play-state:paused}
.tool-set{display:flex;align-items:center;flex-shrink:0}
.tool-set .tool-brand{display:inline-flex;align-items:center}
.tool-set .tool-brand:after{content:'';width:6px;height:6px;margin:0 clamp(20px,3vw,40px);border-radius:50%;background:var(--coral)}
@keyframes tool-marquee{to{transform:translateX(-50%)}}
html[data-motion='off'] .tool-marquee{-webkit-mask-image:none;mask-image:none}
html[data-motion='off'] .tool-track{width:auto;animation:none}
html[data-motion='off'] .tool-set{flex-wrap:wrap;row-gap:10px}
html[data-motion='off'] .tool-set[aria-hidden]{display:none}
@media(prefers-reduced-motion:reduce){.tool-marquee{-webkit-mask-image:none;mask-image:none}.tool-track{width:auto;animation:none}.tool-set{flex-wrap:wrap;row-gap:10px}.tool-set[aria-hidden]{display:none}}

/* Tools strip, lighter: no label, smaller medium-weight names in the muted ink, small dots. */
.ecosystem{padding:18px 0 20px}
.tool-set .tool-brand{font-size:clamp(15px,1.3vw,18px);font-weight:550;letter-spacing:-.02em;color:var(--muted)}
.tool-set .tool-brand:after{width:4px;height:4px;margin:0 clamp(18px,2.4vw,32px);opacity:.8}

.report-intro>p+.text-link{margin-top:28px}
/* Five menu items: links stay on one line; the header button hides earlier. */
.desktop-nav a,.header .nav-cta{white-space:nowrap}
@media(max-width:1060px){.header .nav-cta{display:none}}
/* One accent (audit 13.10): no lime in the interface. Coral stays the only accent; the rest is ink and paper. */
.check-icon,.pipeline-report-icon{background:#ebe9e1}
.pipeline-card.pipeline-report{box-shadow:5px 8px 0 #26282040}
.human-badge{background:var(--ink);color:var(--paper)}
.release-disc{background:var(--coral);border-color:#e14d2c;box-shadow:0 5px 0 #c4441f}
.scan-sheet i{color:var(--ink)}
.report-retest{background:#ebe9e1}
.report-retest>svg{stroke:var(--ink)}
.guarantee-strip{border-color:var(--ink);background:#ffffff66}
.guarantee-strip svg{stroke:var(--ink)}
.legal-page .service-cta{background:#ebe9e1}

/* What we test (owner 13.10): a dark band with three open columns, unlike the security cards below. */
.what-we-test{background:var(--dark);color:var(--paper)}
.what-we-test .eyebrow{color:#a9ad9c}
.what-we-test h2 em{color:var(--coral)}
.what-we-test .section-title-row p{color:#bfc2b4}
.test-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:56px;border-top:1px solid #f5f3ec2e}
.test-col{display:flex;flex-direction:column;padding:32px 36px 4px 0}
.test-col+.test-col{padding-left:36px;border-left:1px solid #f5f3ec2e}
.test-num{font:10px var(--mono);letter-spacing:.08em;color:#a9ad9c;margin-bottom:22px}
.test-col h3{font-size:24px;letter-spacing:-.035em;margin:0 0 14px;color:var(--paper)}
.test-col p{line-height:1.7;color:#c9ccbe;margin:0 0 24px;max-width:46ch}
.test-col .text-link{margin-top:auto;align-self:flex-start;color:var(--paper)}
.what-we-test ::selection{background:var(--paper);color:var(--ink)}
@media(max-width:900px){.test-cols{grid-template-columns:1fr;margin-top:36px}.test-col,.test-col+.test-col{padding:26px 0;border-left:0;border-top:1px solid #f5f3ec2e}.test-col:first-child{border-top:0}}
/* Sample report, compact (owner 13.10): a smaller document card, tighter rhythm, no tilt. */
.manifesto{grid-template-columns:minmax(0,1fr) minmax(0,480px);justify-content:space-between;gap:72px}
.sample-report{transform:none;padding:22px 24px;border:1px solid var(--line);border-radius:16px;background:#fffefa;box-shadow:0 1px 2px #2628200f,0 14px 36px #26282014}
.sample-badge{background:#ebe9e1}
.report-top{padding-bottom:14px}
.report-project{margin:14px 0 4px;gap:4px}
.report-project>strong{font-size:19px;letter-spacing:-.6px}
.report-status{margin:14px 0 8px}
.sample-report h3{font-size:17px;line-height:1.35;margin-bottom:4px}
.report-meta{font-size:11px;color:var(--muted);margin:0 0 4px}
.report-detail{margin:12px 0}
.report-detail p{font-size:12px;line-height:1.6;margin-top:4px}
.report-compare{gap:14px}
.report-shot{padding:19px 10px 8px}
.report-retest{margin-top:14px;padding:10px 12px;border-radius:10px}
.report-disclaimer{margin-top:10px}
@media(max-width:900px){.manifesto{grid-template-columns:1fr;gap:40px}.sample-report{max-width:560px}}
/* Recommended package (owner 13.10): a readable ink badge, no arrow; the card lifts off the page. */
.price-featured .plan-badge{background:var(--ink);color:var(--paper);font:600 10px/1 var(--mono);letter-spacing:.08em;padding:7px 11px;border-radius:999px}
.price-featured{box-shadow:0 18px 44px #ff5b3833}
/* Hero scene title (owner 13.10): readable, in the site font. */
.hero-machine .pipeline-header span{font:600 11.5px/1.4 var(--font);letter-spacing:.06em}
/* Guarantee (owner 13.10): no heavy frame — a soft warm fill carries it. */
.guarantee-strip{border:0;background:#ebe7db}
/* Separators (owner 13.10): no lines between blocks — spacing and the dark/coral blocks separate them; inside the pricing one line only. */
.pricing{border-top:0}
.pricing-lines{border-bottom:0}
/* Phones: service labels never below 10px. */
@media(max-width:700px){.eyebrow,.card-foot,.plan-footer,.price-label span,.report-top span,.sample-badge,.report-status span,.severity,.report-detail>span,.footer>div span{font-size:10px!important;letter-spacing:.04em}}
.faq-doodle span{color:#c9c6bb}
/* The sample-report heading keeps «крок.» on its line. */
.report-intro h2{font-size:clamp(36px,3.5vw,54px)}
/* Sign in (owner 13.10): a plain link before the header button; on phones it is in the menu. */
.header-login,.page-login{font-size:13px;font-weight:650;color:var(--ink);text-decoration:none;white-space:nowrap}
.header-login:hover,.page-login:hover{text-decoration:underline;text-underline-offset:5px}
.page-login{margin-left:auto;margin-right:18px}
@media(max-width:900px){.header-login{display:none}}
@media(max-width:560px){.legal-page .page-home{display:none}.page-login{margin-right:14px}}

/* Sample report preview (owner 13.10): the landing shows the cover of the full report and opens it. */
.rp{display:block;color:var(--ink);text-decoration:none;transition:transform .2s,box-shadow .2s}
.rp:hover{transform:translateY(-3px);box-shadow:0 1px 2px #2628200f,0 22px 48px #2628201f}
.rp-title{display:grid;gap:3px;margin:16px 0 14px}
.rp-title strong{font-size:22px;letter-spacing:-.6px}
.rp-title span{font-size:12px;color:var(--muted)}
.rp-verdict{display:grid;gap:4px;padding:12px 14px;border-left:3px solid var(--coral);background:#fff3ee}
.rp-verdict span{font:600 9.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#a33b22}
.rp-verdict strong{font-size:15px;line-height:1.35}
.rp-counts{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 4px}
.rp-count{display:flex;align-items:baseline;gap:5px;padding:5px 9px;border:1px solid var(--line);font-size:11.5px;color:var(--muted)}
.rp-count b{font-size:16px;color:var(--ink)}
.rp-count--critical b{color:#c23b1c}
.rp-table{width:100%;border-collapse:collapse;margin:10px 0 4px;font-size:12.5px}
.rp-table th{text-align:left;font:600 9.5px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 0;border-bottom:1px solid var(--ink)}
.rp-table th:not(:first-child),.rp-table td:not(:first-child){text-align:right;width:22%}
.rp-table td{padding:6px 0;border-bottom:1px solid var(--line)}
.rp-table .ok{color:#3f6421}.rp-table .bad{color:#c23b1c}
.rp-bug{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;background:#f7f5ef}
.rp-bug p{grid-column:1/-1;margin:0;font-size:13.5px;font-weight:650;line-height:1.35}
.rp-id{font:700 11px var(--mono)}
.rp-sev{justify-self:start;padding:2px 7px;background:#c23b1c;color:#fff;font:700 9.5px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.rp-more{margin:10px 0 0;font-size:12.5px;color:var(--muted)}
.rp-open{display:inline-block;margin-top:14px;font-size:13px;font-weight:700;border-bottom:1px solid;padding-bottom:3px}
.report-intro .text-link+.text-link{margin-left:32px}
@media(max-width:560px){.report-intro .text-link+.text-link{margin-left:0;margin-top:14px}}
/* Logo (owner 14.10): the header wordmark is the same size as in the project room — 24px with the cabinet's proportions, at every width. */
.header .brand .wordmark{font-size:24px;letter-spacing:-1.5px}
.header .brand .wordmark>i{width:.19em;height:.19em;margin:0 0 .1em .16em}
/* A button right under a page's intro (404, the old order page) keeps some air (owner 14.10.2026: «зроби трохи відступ кнопки від підзаголовку»). */
.content-page .page-intro+.button{margin-top:16px}
/* The service pages' hero (web and mobile app testing): the home page's hero with a link to the sample report under the note. */
.service-hero .hero-aside .text-link{margin-top:14px}

/* «Cookie settings» in the legal footer (dist/analytics.js adds it): looks like the links next to it. */
.legal-footer__cookies{padding:0;border:0;background:none;color:var(--ink);font:inherit;text-decoration:underline;text-underline-offset:4px;cursor:pointer}
/* Mobile footer (owner 15.10.2026): the logo on its own line, then «© 2026» and «Pause motion» on one line, aligned with the legal links. */
@media(max-width:560px){.footer{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}.footer>div{margin-left:0;flex-direction:row;justify-content:space-between;align-items:center;width:100%}.footer button{padding-left:0;padding-right:0}}
/* Menu button: three lines, the usual sign of a menu (owner 15.10.2026); the middle one is a pseudo-element, it fades as the two others cross. */
.menu-toggle{gap:5px}.menu-toggle::before{content:"";display:block;order:1;width:24px;height:1px;background:var(--ink);transition:opacity .2s}.menu-toggle span:last-child{order:2}.menu-toggle[aria-expanded='true']::before{opacity:0}.menu-toggle[aria-expanded='true'] span:first-child{transform:translateY(6px) rotate(45deg)}.menu-toggle[aria-expanded='true'] span:last-child{transform:translateY(-6px) rotate(-45deg)}
/* Stand-alone links on phones: at least 32 px high to tap (mobile audit 15.10.2026). */
@media(max-width:700px){.legal-footer nav a,.legal-footer__cookies,.guarantee-strip a,.closing-bottom .text-link,.page-login,.seller-details a{display:inline-flex;align-items:center;min-height:32px}}
@media(max-width:700px){.pricing-fineprint a{display:inline-block;padding:4px 0}}
/* Guide pages (AI SEO 16.10.2026, design-system/future-components.html §10): the service hero with a dated byline, a numbered
   checklist of cards in two columns, a comparison table on .pl-table with our column marked, sources; guide links in the footer. */
.guide-meta{margin-top:28px;font:500 11px/1.5 var(--mono);letter-spacing:.7px;color:var(--muted)}
.guide-facts{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px;font:500 10px/1.5 var(--mono);letter-spacing:.7px;color:var(--ink)}
.guide-facts li{max-width:420px;padding-left:14px;position:relative}.guide-facts li::before{content:"";position:absolute;left:0;top:.45em;width:6px;height:6px;border-radius:50%;background:var(--coral)}
.guide-list .platform-grid{list-style:none;padding:0;grid-template-columns:repeat(2,minmax(0,1fr))}
.guide-list .platform-grid>li{display:flex}.guide-list .platform-grid>li>.platform-card{flex:1}
.guide-list .platform-card p code{font:600 13px var(--mono);background:#fff;padding:1px 4px;border-radius:4px;word-break:break-all}
@media(max-width:700px){.guide-list .platform-grid{grid-template-columns:1fr}}
.guide-table{font-size:15px;line-height:1.45;min-width:760px}
.guide-table thead th{font:600 10px/1.4 var(--mono);letter-spacing:.7px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--ink)}.guide-table thead td{border-bottom:1px solid var(--ink)}
.guide-table tbody th{font:600 15px/1.45 var(--font);width:19%}
.guide-table .guide-ours{background:#fff;font-weight:600}.guide-table thead .guide-ours{color:var(--ink);box-shadow:inset 0 3px 0 var(--coral)}
.guide-compare .pl-table-wrap{margin-top:38px;border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.3)}
.guide-compare .pl-table-wrap:focus-visible{outline-offset:2px}
/* Phones: each row becomes a block — the question, then each option with its name above (no sideways scrolling). */
@media(max-width:700px){.guide-table{min-width:0}.guide-table thead{display:none}.guide-table tr{display:block;padding:20px 22px;border-bottom:1px solid var(--line)}.guide-table tr:last-child{border-bottom:0}
 .guide-table tbody th,.guide-table td{display:block;width:auto;border:0;padding:0}.guide-table tbody th{font-size:18px;margin-bottom:10px}
 .guide-table td{padding:8px 0 8px 12px;border-left:2px solid var(--line)}.guide-table td+td{margin-top:6px}
 .guide-table td::before{content:attr(data-label);display:block;font:500 10px/1.5 var(--mono);letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
 .guide-table .guide-ours{background:none;border-left-color:var(--coral)}}
.guide-note{margin-top:14px;font-size:13px;line-height:1.5;color:var(--muted);max-width:760px}
.guide-sources{padding-bottom:70px}.guide-sources h2{font:500 11px/1.5 var(--mono);letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.guide-sources ol{margin:0;padding-left:20px;display:grid;gap:8px;font-size:14px;line-height:1.5}.guide-sources a{text-decoration:underline;text-underline-offset:4px}
.legal-footer .guide-links{margin-top:0}.legal-footer .guide-links span{font-family:var(--mono);font-size:11px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}
@media(max-width:700px){.legal-footer .guide-links span{width:100%}}
