/* pages.css — законченный сайт ivese.com: шапка с меню, подвал, внутренние страницы, формы, документы */
.skip{position:absolute;left:1rem;top:-4rem;z-index:20;background:#EDEEF2;color:#07080C;padding:.7rem 1rem;border-radius:8px;font-weight:600;text-decoration:none;transition:top .2s}
.skip:focus{top:1rem}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* сцена появляется плавно */
.story canvas{opacity:0;transition:opacity 1.4s ease}
.story.leb3d-mounted canvas{opacity:1}
@media(prefers-reduced-motion:reduce){.story canvas{transition:none}}

/* шапка */
.site-header{transition:background .3s}
.site-header.is-scrolled{background:linear-gradient(180deg,rgba(7,8,12,.94),rgba(7,8,12,.78))}
.site-nav{display:flex;align-items:center;gap:.25rem 1.6rem;font-size:.95rem}
.site-nav a:not(.leb-btn){color:#C7CBD6;text-decoration:none;padding:.5rem 0;min-height:44px;display:inline-flex;align-items:center;position:relative}
.site-nav a:not(.leb-btn):hover{color:#fff}
.site-nav a:not(.leb-btn)[aria-current],.site-nav a.is-here:not(.leb-btn){color:#fff}
.site-nav a:not(.leb-btn)[aria-current]::after,.site-nav a.is-here:not(.leb-btn)::after{content:"";position:absolute;left:0;right:0;bottom:.35rem;height:1px;background:var(--glow);box-shadow:0 0 8px var(--glow)}
.site-nav .site-cta{margin-left:.6rem;display:inline-flex}
.menu-btn{display:none;align-items:center;gap:.6rem;min-height:44px;padding:.4rem .2rem .4rem .8rem;background:none;border:0;color:#EDEEF2;font:500 .78rem/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.menu-ico{width:22px;height:12px;position:relative;display:block}
.menu-ico::before,.menu-ico::after{content:"";position:absolute;left:0;right:0;height:1.5px;background:currentColor;transition:transform .25s,top .25s}
.menu-ico::before{top:0}.menu-ico::after{top:10px}
.menu-btn[aria-expanded="true"] .menu-ico::before{top:5px;transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .menu-ico::after{top:5px;transform:rotate(-45deg)}
.scroll-progress{position:absolute;left:0;right:0;bottom:0;height:1px;background:transparent;pointer-events:none}
.scroll-progress span{display:block;height:100%;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--leb-accent),var(--glow))}
@media(max-width:860px){
  .site-header-in{flex-wrap:nowrap}
  .menu-btn{display:inline-flex;order:2;margin-left:auto}
  .site-nav{position:fixed;left:0;right:0;top:0;max-height:100vh;max-height:100dvh;overflow-y:auto;overscroll-behavior:contain;padding:5.2rem 16px 1.6rem;flex-direction:column;align-items:stretch;gap:0;font-size:1.15rem;background:rgba(7,8,12,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--leb-line);transform:translateY(-105%);visibility:hidden;transition:transform .3s cubic-bezier(.2,.7,.2,1),visibility 0s .3s;z-index:-1}
  .site-nav.is-open{transform:none;visibility:visible;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
  .site-nav a:not(.leb-btn){min-height:52px;border-bottom:1px solid var(--leb-line)}
  .site-nav a:not(.leb-btn)[aria-current]::after,.site-nav a.is-here:not(.leb-btn)::after{display:none}
  .site-nav .site-cta{display:inline-flex;margin:1.2rem 0 0;justify-content:center;min-height:50px;font-size:1rem}
  .site-logo{position:relative;z-index:2}
}

/* внутренние страницы */
.page-head{min-height:88vh}
.page-head h1{max-width:16ch;font-size:clamp(2.4rem,5.4vw,4.8rem)}
.page-home .hero h1{max-width:13ch;font-size:clamp(2.6rem,6.2vw,5.6rem)}
.svc{min-height:96vh}
.svc .col,.doc-panel .col{max-width:36rem}
.svc h2{font-size:clamp(1.9rem,3.4vw,3rem)}
.svc-price{font:500 1.05rem/1.4 var(--font-mono);color:#fff;letter-spacing:.02em;margin:.2rem 0 .3rem;padding:.5rem 0;border-top:1px solid var(--leb-line);border-bottom:1px solid var(--leb-line)}
.svc-note{font:400 .84rem/1.5 var(--font-mono);color:var(--leb-muted);margin:.4rem 0 1rem}
.svc p{color:#B9BECB}
.svc-list{list-style:none;padding:0;margin:1.1rem 0 0;display:grid;gap:.55rem}
.svc-list li{position:relative;padding-left:1.4rem;color:#A7ADBC;font-size:.97rem;max-width:none}
.svc-list li::before{content:"";position:absolute;left:0;top:.62em;width:.7rem;height:1px;background:var(--glow)}
.svc-actions,.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;margin-top:1.8rem}
.part-link{margin-top:1.1rem}
.plans{display:grid;gap:1.5rem;margin:2rem 0}
@media(min-width:760px){.plans{grid-template-columns:repeat(3,1fr);gap:2.5rem}}
.plans article{border-top:1px solid var(--leb-line);padding-top:1rem}
.plans .svc-price{border:0;padding:0;margin:0 0 .6rem;color:var(--glow);font-size:.95rem}
.plans p{color:#A7ADBC}
.price-source{font:400 .84rem/1.6 var(--font-mono);color:var(--leb-muted);max-width:70ch}
.cta-panel{min-height:70vh}
.stack{list-style:none;padding:0;margin:1.5rem 0;display:flex;flex-wrap:wrap;gap:.5rem}
.stack li{font:500 .8rem/1 var(--font-mono);letter-spacing:.04em;padding:.6rem .85rem;border:1px solid rgba(143,160,255,.35);border-radius:999px;color:#DDE1EC;max-width:none}
.facts{margin:1.5rem 0 0;border-top:1px solid var(--leb-line)}
.facts>div{display:grid;grid-template-columns:9.5rem 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--leb-line)}
.facts dt{font:400 .8rem/1.6 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--leb-muted)}
.facts dd{margin:0;color:#EDEEF2}
.work-list>div[data-bodies]{outline-offset:6px}

/* формы */
.form-page{align-items:flex-start;padding-top:clamp(7rem,16vh,10rem)}
.form-page .col{max-width:36rem}
.lead-form{margin-top:2rem;display:grid;gap:1.1rem}
.lead-form .leb-field{display:grid;gap:.4rem}
.lead-form label{color:#fff;font-weight:500}
.lead-form .opt{font:400 .74rem/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--leb-muted);margin-left:.4rem}
.lead-form input,.lead-form textarea,.lead-form select{width:100%;font:inherit;font-size:1rem;min-height:50px;padding:.75rem .9rem;background:rgba(12,14,24,.82);border:1px solid rgba(237,238,242,.3);color:#fff;border-radius:var(--leb-radius);transition:border-color .2s,box-shadow .2s}
.lead-form textarea{min-height:7.5rem;resize:vertical}
.lead-form select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,#C7CBD6 50%),linear-gradient(135deg,#C7CBD6 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:2.6rem}
.lead-form select option{background:#0B0D16;color:#fff}
.lead-form input:focus,.lead-form textarea:focus,.lead-form select:focus{border-color:var(--glow);box-shadow:0 0 0 3px rgba(143,160,255,.18);outline:none}
.lead-form [aria-invalid="true"]{border-color:#FF8A7A}
.lead-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem 1rem;margin:.4rem 0 0}
.form-note{color:#C7CBD6;font-size:.92rem;margin:0}
.form-note.is-error{color:#FFB3A8}
.form-alt{color:var(--leb-muted);font-size:.92rem;margin:0}
.lead-form.is-sending button,.lead-form button[aria-disabled="true"]{opacity:.6;pointer-events:none}
.form-done{margin-top:2rem;border-left:1px solid var(--glow);padding:.2rem 0 .2rem 1.25rem}
.form-done h2{font-size:1.6rem;margin:0 0 .5rem;outline:none}
.form-done p{color:#B9BECB}
.contact-card{margin:1.6rem 0 0}
.contact .form-alt{max-width:34rem}

/* документы */
.doc-panel{display:block;min-height:0;padding-top:clamp(7rem,16vh,10rem)}
.doc{position:relative;max-width:46rem}
.doc::before{content:"";position:absolute;inset:-3rem -4rem;z-index:-1;background:linear-gradient(90deg,rgba(7,8,12,.94),rgba(7,8,12,.9) 70%,rgba(7,8,12,0));pointer-events:none}
.doc h1{font-size:clamp(2.2rem,4.6vw,3.8rem);max-width:none}
.doc h2{font-size:1.5rem;letter-spacing:-.02em;margin:2.8rem 0 .8rem;scroll-margin-top:6rem}
.doc h3{font-size:1.08rem;margin:1.6rem 0 .4rem}
.doc p,.doc li{color:#C2C7D4;max-width:70ch}
.doc ul{padding-left:1.2rem}
.doc section{scroll-margin-top:6rem}
.doc-meta{font:400 .82rem/1.6 var(--font-mono);color:var(--leb-muted)}
.doc-toc{margin:2rem 0 1rem;padding:1.2rem 0;border-top:1px solid var(--leb-line);border-bottom:1px solid var(--leb-line)}
.doc-toc ol{margin:0;padding-left:1.4rem;columns:2;column-gap:2.5rem}
.doc-toc li{margin:.15rem 0;font-size:.95rem;break-inside:avoid}
.doc-toc a{display:inline-block;padding:.3rem 0;min-height:30px}
.doc address{font-style:normal;color:#C2C7D4;line-height:1.8}
@media(max-width:700px){.doc-toc ol{columns:1}.doc::before{inset:-2rem -16px;background:rgba(7,8,12,.9)}.facts>div{grid-template-columns:1fr;gap:.1rem}.svc,.page-head{min-height:0}.svc{align-items:flex-end;padding-top:46vh;padding-bottom:10vh}.page-head{padding-bottom:42vh}.form-page{padding-bottom:6rem}}

/* подвал */
.site-footer{position:relative;background:linear-gradient(180deg,rgba(7,8,12,0),#07080C 18%);padding-top:5rem}
.foot{display:grid;gap:2.4rem 2rem;padding:3rem 0 2.5rem;border-top:1px solid var(--leb-line);grid-template-columns:1fr 1fr}
@media(min-width:900px){.foot{grid-template-columns:1.5fr 1.15fr 1fr 1fr 1.2fr}}
.foot-brand{grid-column:1/-1}
@media(min-width:900px){.foot-brand{grid-column:auto}}
.foot-brand p{color:#A7ADBC;font-size:.95rem;max-width:30ch;margin:.9rem 0 0}
.foot-brand .foot-note{font:400 .8rem/1.6 var(--font-mono);color:var(--leb-muted)}
.foot-col{display:grid;gap:.1rem;align-content:start;font-style:normal}
.foot-col h2{font:500 .74rem/1.4 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--glow);margin:0 0 .6rem}
.foot-col a,.foot-col span{color:#C7CBD6;text-decoration:none;font-size:.95rem;padding:.42rem 0;line-height:1.45}
.foot-col a:hover{color:#fff}
.foot-legal{display:flex;flex-wrap:wrap;gap:.4rem 2rem;justify-content:space-between;padding:1.2rem 0 2rem;border-top:1px solid var(--leb-line);font:400 .78rem/1.6 var(--font-mono);color:#6B7082}

/* тап-цели: ссылки-действия и ссылки в справочных блоках не ниже 44 px */
.link-arrow{display:inline-flex;align-items:center;min-height:44px}
.facts dd a,.foot-note a,.form-alt a,.price-source a,.contact-card a,.requisites a{display:inline-block;padding:.55rem 0;margin:-.55rem 0}
.doc p a,.doc li a,.doc address a{padding:.3rem 0}
.lead a,.about a{padding:.35rem 0}

/* узкий экран: под текстом поверх сцены — плотная подложка, иначе яркое тело спорит с буквами */
@media(max-width:700px){
  .svc .col::before,.part .col::before,.page-head .col::before,.form-page .col::before{inset:-3rem -16px;background:linear-gradient(180deg,rgba(7,8,12,0),rgba(7,8,12,.9) 10%,rgba(7,8,12,.9) 90%,rgba(7,8,12,0))}
  .lead-form input,.lead-form textarea,.lead-form select{font-size:16px}
}
