/* Практика полета — bundle.css. Подключать после tokens.css. Классы с префиксом pp-. Все цвета/отступы — из tokens.css. */
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
.pp-display,.pp-h1,.pp-h2,.pp-h3,.pp-h4{font-family:var(--font-display);margin:0;color:var(--ink)}
.pp-display{font-size:72px;line-height:.95;font-weight:800;letter-spacing:-.025em}
.pp-h1{font-size:56px;line-height:1;font-weight:800;letter-spacing:-.02em}
.pp-h2{font-size:40px;line-height:1.05;font-weight:800;letter-spacing:-.015em}
.pp-h3{font-size:28px;line-height:1.15;font-weight:700;letter-spacing:-.01em}
.pp-h4{font-size:20px;line-height:1.3;font-weight:700}
.pp-accent{color:var(--brand-text)}
.pp-lead{font-size:20px;line-height:1.5;color:var(--text);margin:0}
.pp-body{font-size:16px;line-height:1.5;margin:0;color:var(--text)}
.pp-body-sm{font-size:14px;line-height:1.5;margin:0;color:var(--ink-muted)}
.pp-label{font-size:12px;line-height:1.3;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin:0}
.pp-label.is-accent{color:var(--accent-text)}
.pp-caption{font-size:13px;line-height:1.4;font-weight:500;color:var(--ink-muted);margin:0}
.pp-muted{color:var(--ink-muted)}
@media (max-width:767px){.pp-display{font-size:40px}.pp-h1{font-size:40px;line-height:1.05}.pp-h2{font-size:32px}.pp-h3{font-size:24px}.pp-lead{font-size:18px}}

/* Focus */
.pp-btn:focus-visible,.pp-input:focus-visible,.pp-textarea:focus-visible,.pp-nav a:focus-visible,.pp-tag:focus-visible,.pp-card-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}

/* Buttons */
.pp-btn{transition:background-color var(--motion-micro,160ms) var(--motion-ease,ease),border-color var(--motion-micro,160ms),color var(--motion-micro,160ms);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:48px;padding:0 var(--space-5);border-radius:var(--radius-md);border:1px solid transparent;font:600 15px/1 var(--font-sans);text-decoration:none;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s;white-space:nowrap}
.pp-btn-sm{height:40px;padding:0 var(--space-4);font-size:14px}
.pp-btn-lg{height:56px;padding:0 var(--space-6);font-size:16px}
.pp-btn-primary{background:var(--brand);color:var(--on-brand)}
.pp-btn-primary:hover{background:var(--brand-strong)}
.pp-btn-primary:active{background:var(--brand-strong);transform:translateY(1px)}
.pp-btn-secondary{background:transparent;color:var(--ink);border-color:var(--ink)}
.pp-btn-secondary:hover{background:var(--surface-alt)}
.pp-btn-ghost{background:transparent;color:var(--brand-text)}
.pp-btn-ghost:hover{background:var(--brand-soft)}
.pp-btn-inverse{background:var(--on-brand-surface);color:var(--surface-brand)}
.pp-btn-inverse:hover{background:var(--surface-alt)}
.pp-btn[disabled],.pp-btn.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}
.pp-btn .pp-icon{width:20px;height:20px;flex:none}
.pp-icon{display:inline-block;width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* Tags & badges */
.pp-tag{display:inline-flex;align-items:center;gap:var(--space-1);height:28px;padding:0 var(--space-3);border-radius:var(--radius-sm);font:500 12px/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;background:var(--surface-alt);color:var(--ink-muted);border:1px solid transparent}
.pp-tag-brand{background:var(--brand-soft);color:var(--brand-text)}
.pp-tag-accent{background:var(--accent-soft);color:var(--accent-text)}
.pp-tag-success{background:var(--success-soft);color:var(--success-text)}
.pp-tag-danger{background:var(--danger-soft);color:var(--danger)}
.pp-tag-outline{background:transparent;border-color:var(--line);color:var(--ink-muted)}
.pp-tag .pp-dot{width:8px;height:8px;border-radius:var(--radius-full);background:currentColor}

/* Cards */
.pp-card{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);color:var(--ink)}
.pp-card:hover{box-shadow:var(--shadow-sm)}
.pp-card-lg{padding:var(--space-6);gap:var(--space-4)}
.pp-card-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--brand-soft);color:var(--brand)}
.pp-card-icon .pp-icon{width:24px;height:24px;stroke:var(--brand)}
.pp-card-media{margin:calc(-1 * var(--space-5)) calc(-1 * var(--space-5)) 0;aspect-ratio:16/10;background:var(--surface-alt);border-radius:var(--radius-lg) var(--radius-lg) 0 0;overflow:hidden}
.pp-card-lg .pp-card-media{margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-6)) 0}
.pp-card-media img{width:100%;height:100%;object-fit:cover;display:block}
.pp-card-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto}
.pp-card-link{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--brand-text);font-weight:600;text-decoration:none;border-radius:var(--radius-sm)}
.pp-card-link:hover{text-decoration:underline}
.pp-card-dark{background:var(--surface-brand);border-color:var(--surface-brand);color:var(--on-brand-surface)}
.pp-card-dark .pp-h3,.pp-card-dark .pp-h4{color:var(--on-brand-surface)}
.pp-card-dark .pp-body-sm,.pp-card-dark .pp-label{color:#a8b6cc}
[data-theme="dark"] .pp-card-dark{background:var(--surface-raised);border-color:var(--line)}
[data-theme="dark"] .pp-header-dark{border-bottom-color:var(--line)}
.pp-grid{display:grid;gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1023px){.pp-grid{grid-template-columns:1fr 1fr}}
@media (max-width:639px){.pp-grid{grid-template-columns:1fr}}

/* Header */
.pp-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);height:72px;padding:0 var(--space-6);background:var(--surface);border-bottom:1px solid var(--line)}
.pp-header-logo{display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--ink)}
.pp-header-logo img{height:40px;width:auto;display:block}
.pp-header-tagline{font-size:11px;line-height:1.35;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);border-left:1px solid var(--line);padding-left:var(--space-3);white-space:pre-line}
.pp-nav{display:flex;align-items:center;gap:var(--space-6);margin:0;padding:0;list-style:none}
.pp-nav a{font:500 15px/1 var(--font-sans);color:var(--ink);text-decoration:none;padding:var(--space-2) 0;border-bottom:2px solid transparent;border-radius:var(--radius-sm)}
.pp-nav a:hover{color:var(--brand-text)}
.pp-nav a.is-active{border-bottom-color:var(--brand);color:var(--ink)}
.pp-header-actions{display:flex;align-items:center;gap:var(--space-3)}
.pp-header-dark{background:var(--surface-brand);border-bottom-color:#2b3d5f}
.pp-header-dark .pp-nav a,.pp-header-dark .pp-header-logo{color:var(--on-brand-surface)}
.pp-header-dark .pp-header-tagline{color:#a8b6cc;border-color:#2b3d5f}
.pp-header-dark .pp-nav a:hover{color:#8fb0ff}

/* Route line */
.pp-route{display:block;width:100%;height:auto;overflow:visible}
.pp-route-line{fill:none;stroke:var(--brand);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4}
.pp-route-planned{fill:none;stroke:var(--brand);stroke-width:4;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:2 10;opacity:.7}
.pp-route-planned.is-white{stroke:#fff}
.pp-route-home{fill:none;stroke:var(--brand);stroke-width:3}
.pp-route-craft{fill:none;stroke:var(--brand);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.pp-route-craft.is-white{stroke:#fff}
.pp-route-line.is-thick{stroke-width:6}
.pp-route-line.is-white{stroke:#fff}
.pp-route-point{fill:var(--surface);stroke:var(--accent);stroke-width:3}
.pp-route-tick{fill:var(--accent)}
.pp-route-text{font:500 11px/1.3 var(--font-sans);letter-spacing:.12em;text-transform:uppercase;fill:var(--ink-muted)}

/* Forms */
.pp-field{display:flex;flex-direction:column;gap:var(--space-2)}
.pp-field-label{font:500 14px/1.3 var(--font-sans);color:var(--ink)}
.pp-field-hint{font:400 13px/1.4 var(--font-sans);color:var(--ink-muted)}
.pp-input,.pp-textarea,.pp-select{width:100%;height:48px;padding:0 var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);font:400 16px/1.5 var(--font-sans);transition:border-color .15s}
.pp-textarea{height:auto;min-height:120px;padding:var(--space-3) var(--space-4);resize:vertical}
.pp-input::placeholder,.pp-textarea::placeholder{color:var(--ink-subtle)}
.pp-input:hover,.pp-textarea:hover{border-color:var(--ink-muted)}
.pp-input:focus,.pp-textarea:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px var(--brand-soft)}
.pp-field.is-error .pp-input,.pp-field.is-error .pp-textarea{border-color:var(--danger)}
.pp-field-error{display:flex;align-items:center;gap:var(--space-1);font:500 13px/1.4 var(--font-sans);color:var(--danger)}
.pp-check{display:flex;align-items:flex-start;gap:var(--space-3);font:400 14px/1.5 var(--font-sans);color:var(--ink-muted);cursor:pointer}
.pp-check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--brand);flex:none}
.pp-form{display:grid;gap:var(--space-4)}
.pp-form-row{display:grid;gap:var(--space-4);grid-template-columns:1fr 1fr}
@media (max-width:639px){.pp-form-row{grid-template-columns:1fr}}

/* Hero */
.pp-hero{position:relative;overflow:hidden;background:var(--surface);padding:var(--space-9) var(--space-6);border-radius:var(--radius-xl)}
.pp-hero-inner{max-width:680px;display:grid;gap:var(--space-5)}
.pp-hero-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}
.pp-hero-route{position:absolute;right:0;top:0;width:52%;height:100%;pointer-events:none}
.pp-hero-photo{background:var(--surface-brand);color:var(--on-brand-surface)}
.pp-hero-photo .pp-display,.pp-hero-photo .pp-h1{color:var(--on-brand-surface)}
.pp-hero-photo .pp-lead{color:#c9d3e6}
.pp-hero-photo::before{content:"";position:absolute;inset:0;background:var(--overlay-photo);z-index:0}
.pp-hero-photo>*{position:relative;z-index:1}

/* Stat */
.pp-stat{display:grid;gap:var(--space-2)}
.pp-stat-value{font:800 48px/1 var(--font-display);letter-spacing:-.02em;color:var(--ink)}
.pp-stat-value.is-brand{color:var(--brand-text)}
.pp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);padding:var(--space-6) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
@media (max-width:1023px){.pp-stats{grid-template-columns:1fr 1fr}}

/* Footer */
.pp-footer{background:var(--surface-brand);color:var(--on-brand-surface);padding:var(--space-8) var(--space-6) var(--space-6)}
.pp-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:var(--space-6)}
@media (max-width:1023px){.pp-footer-grid{grid-template-columns:1fr 1fr}}
.pp-footer img{height:44px;width:auto}
.pp-footer .pp-label{color:#a8b6cc;margin-bottom:var(--space-3)}
.pp-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}
.pp-footer a{color:var(--on-brand-surface);text-decoration:none;font-size:15px}
.pp-footer a:hover{color:#8fb0ff}
.pp-footer-bottom{display:flex;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid #2b3d5f;font-size:13px;color:#a8b6cc}

/* Container */
.pp-container{max-width:var(--container);margin:0 auto;padding:0 20px}
@media (min-width:768px){.pp-container{padding:0 28px}}
@media (min-width:1280px){.pp-container{padding:0 40px}}
.pp-section{padding:var(--space-8) 0}
@media (min-width:1024px){.pp-section{padding:var(--space-9) 0}}
.pp-section-soft{background:var(--surface-soft)}
.pp-section-alt{background:var(--surface-alt)}

/* SectionHeading */
.pp-section-heading{display:grid;gap:var(--space-3);max-width:var(--measure);margin-bottom:var(--space-7)}
.pp-section-heading .pp-label{margin-bottom:var(--space-1)}
.pp-section-heading.is-split{max-width:none;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:end}
@media (max-width:1023px){.pp-section-heading.is-split{grid-template-columns:1fr}}

/* Process (how we work) */
.pp-process{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}
@media (max-width:1023px){.pp-process{grid-template-columns:1fr 1fr}}
@media (max-width:639px){.pp-process{grid-template-columns:1fr}}
.pp-process-line{grid-column:1/-1;display:block;width:100%;height:56px}
.pp-step{display:grid;gap:var(--space-2);padding-top:var(--space-2)}
.pp-step-num{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);border:2px solid var(--accent);background:var(--surface);font:800 13px/1 var(--font-display);color:var(--ink)}
.pp-step .pp-h4{margin-top:var(--space-1)}

/* TeamCard */
.pp-team{display:grid;gap:var(--space-2);color:var(--ink)}
.pp-team-photo{aspect-ratio:4/5;border-radius:var(--radius-lg);background:var(--surface-alt);overflow:hidden}
.pp-team-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.9)}
.pp-team .pp-h4{margin-top:var(--space-2)}

/* CaseCard */
.pp-case{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-raised);color:var(--ink)}
@media (max-width:767px){.pp-case{grid-template-columns:1fr}}
.pp-case-photo{aspect-ratio:4/3;background:var(--surface-alt)}
.pp-case-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pp-case-body{display:grid;gap:var(--space-3);padding:var(--space-6);align-content:start}
.pp-case-facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--line)}
.pp-case-fact .pp-stat-value{font-size:32px}

/* Quote */
.pp-quote{display:grid;gap:var(--space-4);max-width:var(--measure);margin:0;padding:0}
.pp-quote-text{font:500 24px/1.4 var(--font-display);letter-spacing:-.01em;color:var(--ink);margin:0}
.pp-quote-text::before{content:"«"}.pp-quote-text::after{content:"»"}
.pp-quote-cite{display:flex;align-items:center;gap:var(--space-3);font-style:normal}
.pp-quote-mark{width:24px;height:3px;border-radius:2px;background:var(--accent)}
@media (max-width:767px){.pp-quote-text{font-size:20px}}

/* CTASection */
.pp-cta{position:relative;overflow:hidden;display:grid;grid-template-columns:1.4fr 1fr;gap:var(--space-6);align-items:center;padding:var(--space-8) var(--space-7);border-radius:var(--radius-xl);background:var(--surface-brand);color:var(--on-brand-surface)}
@media (max-width:1023px){.pp-cta{grid-template-columns:1fr;padding:var(--space-7) var(--space-5)}}
.pp-cta .pp-h2{color:var(--on-brand-surface)}
.pp-cta .pp-lead{color:#c9d3e6}
.pp-cta-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-self:start}
@media (min-width:1024px){.pp-cta-actions{justify-self:end}}
.pp-cta-route{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:.9}
.pp-cta>*:not(.pp-cta-route){position:relative;z-index:1}

/* PartnerLogoRow */
.pp-partners{display:grid;gap:var(--space-4)}
.pp-partners-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-6) var(--space-8)}
.pp-partner{display:flex;align-items:center;height:40px;color:var(--ink-muted);filter:grayscale(1);opacity:.75;transition:opacity var(--motion-micro,160ms),filter var(--motion-micro,160ms)}
.pp-partner:hover{filter:none;opacity:1}
.pp-partner img,.pp-partner svg{height:100%;width:auto;max-width:160px}
.pp-partner-placeholder{height:40px;min-width:120px;border:1px dashed var(--line-strong);border-radius:var(--radius-sm);display:grid;place-items:center;font:500 11px/1 var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-subtle)}

/* Motion helpers */
.pp-reveal{opacity:0;transform:translateY(12px);transition:opacity var(--motion-section,380ms) var(--motion-ease,ease),transform var(--motion-section,380ms) var(--motion-ease,ease)}
.pp-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}.pp-reveal{opacity:1;transform:none}}
