.pc-page [hidden] { display: none !important; }
.pc-page .container { max-width: 1160px; }
.pc-profiles { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.pc-field, .pc-answer { display: grid; gap: 10px; font-weight: 600; }
.pc-page select { appearance: auto; width: 100%; box-sizing: border-box; min-height: 48px; padding: 12px; border: 1px solid #777; border-radius: 6px; background: #fff; color: #111; font: inherit; font-size: 16px; }
.pc-page select:focus-visible, .pc-page button:focus-visible, .pc-page input:focus-visible { outline: 3px solid #185eb1; outline-offset: 3px; }
.pc-niches { margin: 32px 0 0; padding: 24px; border: 1px solid #bbb; border-radius: 8px; display: flex; flex-wrap: wrap; gap: 12px 24px; }
.pc-niches legend { font-size: 18px; font-weight: 600; width: auto; float: none; padding: 0 8px; }
.pc-niches label { display: flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; }
.pc-niches input { appearance: auto; opacity: 1; position: static; width: 20px; height: 20px; accent-color: #111; }
.pc-checks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.pc-check { background: #fff; border-radius: 10px; padding: 28px; border-top: 3px solid #111; display: flex; flex-direction: column; align-items: stretch; }
.pc-page .pc-check h3 { font-size: 21px; }
.pc-check > a { font-size: 14px; margin-top: auto; }
.pc-answer { margin-top: 22px; }
.pc-page button { cursor: pointer; font: inherit; }
.pc-result { padding: 32px; border: 2px solid #111; border-radius: 12px; background: #fff; scroll-margin-top: 100px; }
.pc-result[data-status="ready"] { border-color: #34704a; }
.pc-result li { margin-bottom: 12px; }
.pc-result h3 { margin-top: 28px; }
.pc-notice, .pc-boundary { background: #f5f5f5; padding: 20px; border-left: 4px solid #ffdd26; }
.pc-boundary { margin-top: 32px; }
.pc-page #checklist, .pc-page #requirements { scroll-margin-top: 90px; }
@media(max-width:767px) { .pc-profiles,.pc-checks { grid-template-columns:1fr; } .pc-check,.pc-result { padding:22px; } .pc-niches { padding:16px; } .pc-niches label { width:100%; } .pc-page .service-button { max-width:100%; white-space:normal; text-align:left; } }

#order textarea.pc-message { min-height: 260px; height: auto; resize: vertical; white-space: pre-wrap; }

/* A small companion and visible milestones make the long checklist easier to finish. */
.pc-page .service-hero { padding: 48px 0 56px; overflow: hidden; }
.pc-page .service-hero nav { margin-bottom: 38px; }
.pc-hero-grid { display: grid; grid-template-columns: minmax(0,1.65fr) minmax(260px,1fr); gap: 48px; align-items: center; }
.pc-page .pc-hero-copy h1 { font-size: clamp(34px,4.1vw,58px); max-width: 760px; }
.pc-hero-mascot { position: relative; text-align: center; padding: 12px; }
.pc-hero-mascot::before { content: ''; position: absolute; width: 290px; height: 290px; border-radius: 50%; background: rgba(255,255,255,.34); left: 50%; top: 50%; transform: translate(-50%,-35%); }
.pc-hero-mascot img { position: relative; width: min(100%,330px); height: auto; display: block; margin: 10px auto 0; transform: rotate(-3deg); }
.pc-speech { position: relative; background: #fffdf2; padding: 20px 24px; border: 2px solid #111; border-radius: 20px 20px 20px 4px; box-shadow: 5px 5px 0 #111; transform: rotate(2deg); z-index: 1; }
.pc-page .pc-speech p { font-size: 17px; line-height: 1.5; margin: 8px 0 0; }
.pc-speech-label { display: block; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; text-align: left; }
.pc-mascot-stamp { position: relative; display: inline-block; border: 1px solid #111; background: #ffeb78; border-radius: 30px; padding: 6px 12px; font-size: 10px; font-weight: 700; letter-spacing: .04em; transform: rotate(-3deg); }
.pc-journey { position: sticky; top: var(--pc-header-offset,90px); z-index: 20; background: #fff; border-bottom: 1px solid #d9d9d9; box-shadow: 0 8px 24px #0000000c; padding: 16px 0 12px; }
.pc-journey-inner { display: flex; align-items: center; gap: 20px; }
.pc-companion { width: 64px; height: 64px; object-fit: contain; flex-shrink: 0; background: #fff6c5; border-radius: 50%; }
.pc-journey-main { flex: 1; min-width: 0; }
.pc-progress-heading { display: flex; align-items: baseline; gap: 14px; font-size: 14px; }
.pc-progress-heading [data-progress-count] { margin-left: auto; color: #666; font-variant-numeric: tabular-nums; }
.pc-progress-heading [data-progress-percent] { min-width: 40px; text-align: right; font-size: 20px; font-variant-numeric: tabular-nums; }
.pc-meter { height: 9px; border-radius: 20px; background: #e9e9e9; overflow: hidden; margin: 8px 0 10px; }
.pc-meter > span { display: block; height: 100%; width: 0; border-radius: inherit; background: #e1bb00; transition: width .25s ease; }
.pc-journey[data-complete="true"] .pc-meter > span { background: #111; }
.pc-milestones { margin: 0; padding: 0; list-style: none; display: flex; gap: 24px; font-size: 12px; color: #656565; }
.pc-milestones li { display: flex; align-items: center; gap: 6px; }
.pc-milestones li > span { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border: 1px solid #ccc; border-radius: 50%; font-weight: 700; }
.pc-milestones [data-done="true"] { color: #111; font-weight: 700; }
.pc-milestones [data-done="true"] > span { background: #ffdd26; border-color: #d6b100; }
.pc-next { display: inline-flex; align-items: center; justify-content: center; background: #111; color: #fff; border: 2px solid #111; border-radius: 8px; padding: 12px 18px; min-height: 46px; font-size: 14px !important; font-weight: 600 !important; }
.pc-next:hover { background: #ffdd26; color: #111; }
.pc-page .pc-mascot-message { margin-top: 9px; margin-bottom: 0; padding-left: 84px; font-size: 13px; color: #565656; }
.pc-check { position: relative; border: 1px solid #ddd; border-top: 3px solid #ddd; box-shadow: 0 3px 12px #00000003; transition: border-color .2s ease; }
.pc-check[data-answered="true"] { border-top-color: #d6b100; }
.pc-check[data-answered="true"] .pc-answer::before { content: 'Ответ записан'; color: #6c5700; font-size: 12px; font-weight: 500; }
.pc-field:focus-within { color: #534400; }
.pc-niches label { border: 1px solid #dedede; border-radius: 30px; padding: 6px 14px; background: #fff; }
.pc-niches label:has(input:checked) { background: #fff4b0; border-color: #b99800; }
.pc-progress-explainer { max-width: 820px; color: #555; font-size: 15px; }
.pc-page select { scroll-margin-top: 260px; }
.pc-celebrate .pc-companion { animation: pc-hop .6s ease both; }
@keyframes pc-hop { 0%,100% { transform: translateY(0) rotate(0); } 35% { transform: translateY(-6px) rotate(-8deg); } 65% { transform: translateY(-2px) rotate(5deg); } }
@media(max-width:767px) {
 .pc-page .service-hero { padding: 30px 0; }
 .pc-page .service-hero nav { font-size: 12px; margin-bottom: 26px; }
 .pc-hero-grid { grid-template-columns: 1fr; gap: 26px; }
 .pc-hero-mascot { display: flex; flex-direction: row-reverse; align-items: center; gap: 12px; padding: 0; }
 .pc-hero-mascot img { width: 105px; height: 105px; margin: 0; flex-shrink: 0; }
 .pc-hero-mascot::before,.pc-mascot-stamp { display: none; }
 .pc-speech { padding: 14px; border-radius: 14px 14px 14px 4px; box-shadow: 3px 3px 0 #111; }
 .pc-speech-label { font-size: 9px; }
 .pc-page .pc-speech p { font-size: 13px; margin-top: 5px; }
 .pc-journey { top: var(--pc-header-offset,70px); padding: 12px 0; }
 .pc-journey-inner { gap: 10px; flex-wrap: wrap; }
 .pc-companion { width: 42px; height: 42px; }
 .pc-progress-heading { font-size: 12px; gap: 8px; }
 .pc-progress-heading [data-progress-percent] { font-size: 17px; }
 .pc-milestones { gap: 10px; font-size: 10px; }
 .pc-milestones li { gap: 4px; }
 .pc-milestones li > span { width: 16px; height: 16px; }
 .pc-next { width: 100%; min-height: 40px; padding: 8px 12px; }
 .pc-page .pc-mascot-message { padding-left: 0; font-size: 11px; margin-top: 8px; }
 .pc-niches label { width: auto; max-width: 100%; font-size: 14px; }
}
@media(prefers-reduced-motion:reduce) { .pc-meter > span,.pc-check { transition: none; } .pc-celebrate .pc-companion { animation: none; } }

.pc-page #checklist, .pc-page #requirements, .pc-page .pc-result,
.pc-page select, .pc-page [data-niche] {
    scroll-margin-top: calc(var(--pc-header-offset,90px) + var(--pc-journey-height,150px) + 20px);
}
/* On landscape phones a pinned panel would consume most of the viewport. */
@media(max-height:600px) { .pc-journey { position: static; } }

/* The shared form uses a floating input label; keep it above the expanded summary. */
#order textarea.pc-message { margin-top: 28px; padding: 14px; border: 1px solid #ccc; border-radius: 8px; background: #fff; }
#order textarea.pc-message + .form_label { top: 0; bottom: auto; font-size: 14px; pointer-events: none; }

#order .form_row:has(textarea.pc-message) .form_label { top: 0; bottom: auto; font-size: 14px; pointer-events: none; }
