:root{
    /* AiDRONIK corporate palette (green) */
    --bg:#f0fef2;                 /* light background */
    --text:#18221c;               /* near-black forest */
    --muted:#3d584c;              /* muted text */
    --softtext:#5E8874;           /* secondary muted */

    --brand:#4CDA6A;              /* primary green */
    --brand2:#052e16;             /* deep green */
    --ink:#052e16;                /* controls/icons background */

    --chip:rgba(76,218,106,.12);
    --card:rgba(255,255,255,.88);
    --line:rgba(5,46,22,.12);

    --accent: var(--brand);
    --accent-soft: rgba(76,218,106,.14);
    --accent-ring: rgba(76,218,106,.28);
    --accent-shadow: rgba(76,218,106,.18);

    --radius:18px;
    --maxw:980px;
    --sidew:260px;
    --header-h:64px;
  }

html,body{
    background:var(--bg);
    color:var(--text);
  }

  /* ilink-like soft blobs across whole app */
  body::before, body::after{
    content:"";
    position:fixed;
    inset:auto;
    width:680px;
    height:680px;
    border-radius:999px;
    filter:blur(70px);
    opacity:.55;
    pointer-events:none;
    z-index:0;
  }
  body::before{
    left:-180px;
    top:-220px;
    background:radial-gradient(circle at 30% 30%, rgba(76,218,106,.45), rgba(76,218,106,0) 60%);
  }
  body::after{
    right:-220px;
    top:-160px;
    background:radial-gradient(circle at 30% 30%, rgba(5,46,22,.35), rgba(5,46,22,0) 62%);
  }


  *{box-sizing:border-box}
  html,body{height:100%}
  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
    display:flex;
    min-height:100vh;
  }

  /* ======== PAGE LOADER ======== */

  .page-loader{
    position:fixed;
    inset:0;
    background:var(--bg);
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:3000;
    transition:opacity .3s ease, visibility .3s ease;
  }
  .page-loader.hidden{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
  }

  .loader{
    display:flex;
    gap:6px;
    font-size:72px;
    font-weight:700;
    font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Ubuntu,"Helvetica Neue",Arial,sans-serif;
    color:var(--brand);
    perspective:700px;
  }

  .loader span{
    display:inline-block;
    transform-origin:0 70%;
    animation:flip 1.8s infinite linear;
  }

  .loader span:nth-child(2){ animation-delay:.15s; }
  .loader span:nth-child(3){ animation-delay:.30s; }
  .loader span:nth-child(4){ animation-delay:.45s; }
  .loader span:nth-child(5){ animation-delay:.60s; }
  .loader span:nth-child(6){ animation-delay:.75s; }

  @keyframes flip{
    0%   { transform:rotateX(0deg); }
    35%  { transform:rotateX(360deg); }
    100% { transform:rotateX(360deg); }
  }

  @media (max-width:600px){
    .loader{
      padding:16px 22px;
    }
    .loader > span{
      font-size:52px;
      letter-spacing:4px;
    }
  }

  /* ======== ОСНОВНОЙ UI ======== */

  /* Sidebar */
  .side{
    width:var(--sidew);
    min-width:var(--sidew);
    border-right:1px solid var(--line);
    /* green corporate sidebar (no blue/purple remnants) */
    background:
      radial-gradient(520px 320px at 18% 0%, rgba(76,218,106,.18), rgba(76,218,106,0) 62%),
      radial-gradient(520px 320px at 96% 18%, rgba(5,46,22,.14), rgba(5,46,22,0) 62%),
      rgba(255,255,255,.88);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    padding:14px 10px 18px;
    display:flex;
    flex-direction:column;
    gap:12px;
    position:relative;
    z-index:20;
  }
  .brand{
    font-weight:600;
    font-size:15px;
    padding:8px 10px;
    color:var(--text);
  }
  .navhdr{
    font-size:12px;
    color:var(--muted);
    padding:6px 10px;
  }
  .nav{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:0 6px;
  }
  .nav button{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    padding:10px 10px;
    border:0;
    background:transparent;
    border-radius:10px;
    cursor:pointer;
    color:var(--text);
    position:relative;
  }
  .nav button:hover{
    background:rgba(76,218,106,.10);
  }
  .nav button.active{
    background:linear-gradient(135deg, rgba(76,218,106,.18), rgba(5,46,22,.10));
  }

  .ico{
    width:20px;
    height:20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 20px;
  }
  .ico svg{
    width:18px;
    height:18px;
    stroke:rgba(0,0,0,.55);
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
    fill:none;
  }
  .nav button:hover .ico svg{
    stroke:rgba(0,0,0,.8);
  }
  .nav button.active .ico svg{
    stroke:var(--brand);
  }

  .sep{
    height:1px;
    background:var(--line);
    margin:8px 6px;
  }

  .side-backdrop{
    display:none;
  }

  /* Main */
  .main{
    flex:1;
    display:flex;
    flex-direction:column;
    min-width:0;
  }
  .header{
    padding:14px 18px;
    border-bottom:1px solid var(--line);
    display:flex;
    align-items:center;
    gap:12px;
  }
  .burger{
    display:none;
  }
  .wrap{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    /* запас под фиксированный композер, чтобы интро/контент не обрезались снизу */
    padding-bottom:calc(var(--composer-h, 140px) + 24px);
  }
  .thread{
    flex:1;
    width:100%;
    padding:18px 26px 22px;
    max-width:1240px;
    margin:0 auto;
  }
  .msg{
    display:flex;
    gap:12px;
    margin:18px 0;
    width:100%;
  }
  .avatar{
    width:32px;
    height:32px;
    border-radius:50%;
    background:var(--chip);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    color:#2b2e30;
    flex:0 0 auto;
  }
  .body{
    flex:1;
    min-width:0;
  }
  /* If intro hero ever ends up inside a chat message, neutralize the avatar/role column so it stays centered. */
  .hero-host-msg{
    gap:0 !important;
    margin:0 !important;
  }
  .hero-host-msg .avatar,
  .hero-host-msg .role{
    display:none !important;
  }
  .hero-host-msg .body{
    flex:1 !important;
    max-width:100% !important;
  }

  .role{
    font-size:12px;
    color:var(--muted);
    margin-bottom:6px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
  }

  /* КНОПКА СКАЧАТЬ ОТДЕЛЬНОЕ СООБЩЕНИЕ АССИСТЕНТА */
  .msg-download-btn{
    flex:0 0 auto;
    margin-left:8px;
    width:24px;
    height:24px;
    border-radius:999px;
    border:0;
    background:var(--chip);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
  }
  .msg-download-btn svg{
    width:16px;
    height:16px;
    stroke:var(--ink);
    stroke-width:2.4; /* ЖИРНАЯ СТРЕЛКА */
    stroke-linecap:round;
    stroke-linejoin:round;
    fill:none;
  }
  .msg-download-btn:hover{
    background:rgba(76,218,106,.18);
  }

  /* ассистент — без пузыря */
  .msg.assistant .msg-text{
    background:transparent;
    padding:0;
    border-radius:0;
    border:0;
    line-height:1.55;
  }
  /* пользователь — пузырь справа */
  .msg.user{justify-content:flex-end}
  .msg.user .avatar{order:3}
  .msg.user .body{max-width:70%;flex:0 0 auto;
margin-left:auto}
  .msg.user .msg-text{
    background:var(--ink);
    color:#fff;
    padding:10px 12px;
    border-radius:14px 14px 4px 14px;
    display:inline-block;
  }

  /* Composer */
  .composer{
    position:fixed;
    left:var(--sidew);
    right:0;
    bottom:0;
    /* важно: композер всегда должен быть поверх скроллящегося контента (особенно после "Новый чат") */
    z-index:1500;
    border-top:1px solid var(--line);
    background:linear-gradient(180deg, rgba(240,254,242,.0) 0%, rgba(240,254,242,1) 28%);
    padding:14px 16px;
  }
  .composer .inner{
    max-width:var(--maxw);
    margin:0 auto;
    display:flex;
    align-items:flex-end;
    gap:8px;
  }

  .attach-btn{
    width:34px;
    height:34px;
    border-radius:999px;
    border:0;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    background:rgba(0,0,0,.04);
    color:rgba(0,0,0,.65);
    font-size:22px;
    flex:0 0 auto;
    line-height:1;
  }
  .attach-btn:hover{
    background:rgba(0,0,0,.08);
  }
  .attach-btn.has-file{
    background:linear-gradient(135deg,#4CDA6A 0%, #16a34a 55%, #052e16 100%);
    color:#fff;
  }

  .manager-btn{
    width:34px;
    height:34px;
    border-radius:999px;
    border:1px solid rgba(76,218,106,.20);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    background:rgba(76,218,106,.10);
    color:var(--brand,#4CDA6A);
    font-size:16px;
    flex:0 0 auto;
    line-height:1;
  }
  .manager-btn:hover{
    background:rgba(76,218,106,.16);
  }
  .manager-btn.pending{
    border-color:rgba(76,218,106,.35);
    background:rgba(76,218,106,.14);
    color:var(--accent,#4CDA6A);
  }
  .manager-btn.active{
    border-color:rgba(76,218,106,.45);
    background:linear-gradient(135deg, rgba(76,218,106,.95) 0%, rgba(76,218,106,.95) 100%);
    color:#fff;
  }

  .composer-input-wrap{
    position:relative;
    flex:1;
  }

  .composer-attachments{
    max-width:100%;
    margin:0 0 4px;
    font-size:12px;
    display:none;
    flex-wrap:wrap;
    gap:6px;
  }
  .composer-attachments span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px 10px;
    border-radius:999px;
    background:var(--chip);
    color:var(--text);
    white-space:nowrap;
  }
  .composer-attachments span button{
    border:0;
    background:transparent;
    cursor:pointer;
    font-size:13px;
    padding:0;
    line-height:1;
  }

  #ta{
    width:100%;
    flex:1;
    min-height:52px;
    max-height:160px;
    resize:vertical;
    padding:18px 52px 10px 12px;
    border-radius:12px;
    border:1px solid(var(--line));
    background:#fff;
    color:var(--text);
    outline:none;
    text-transform:none !important;
  }
  #ta::placeholder{
    text-transform:none;
    letter-spacing:0;
    color:var(--softtext);
    font-size:12px;
  }

  .send-btn{
    position:absolute;
    right:10px;
    bottom:10px;
    width:32px;
    height:32px;
    border-radius:10px;
    border:0;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    background:rgba(0,0,0,.04);
    color:rgba(0,0,0,.35);
    font-size:16px;
    transition:background .15s ease,color .15s.ease,transform .1s ease;
  }
  .send-btn.active{
    background:var(--ink);
    color:#fff;
  }
  .send-btn:active{
    transform:translateY(1px);
  }

  .mic-btn{
    position:absolute;
    right:48px;
    bottom:10px;
    width:32px;
    height:32px;
    border-radius:10px;
    border:0;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    background:rgba(0,0,0,.02);
    color:rgba(0,0,0,.5);
    font-size:16px;
    transition:background .15s ease,color .15s ease,transform .1s ease;
  }
  .mic-btn:hover{
    background:rgba(0,0,0,.05);
  }
  .mic-btn.listening{
    background:#000;
    color:#fff;
  }
  .mic-btn svg{
    width:16px;
    height:16px;
    stroke:currentColor;
    stroke-width:1.8;
    fill:none;
  }

  .chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:var(--chip);
    padding:6px 14px;
    border-radius:var(--radius);
    font-size:12px;
    cursor:pointer;
    margin-right:8px;
    border:1px solid rgba(0,0,0,.06);
    outline:none;
    box-shadow:0 1px 3px rgba(0,0,0,.04);
  }
  .chip:hover{
    filter:none;
    background:rgba(76,218,106,.18);
    box-shadow:0 2px 6px rgba(0,0,0,.06);
  }
  .chip:focus-visible{
    outline:2px solid rgba(76,218,106,.40);
    outline-offset:2px;
  }

  .team-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:10px;
    margin-top:10px;
  }

  .team-card{
    background:var(--card);
    border-radius:12px;
    border:1px solid(var(--line));
    padding:10px 12px;
    display:flex;
    gap:10px;
    align-items:flex-start;
    opacity:0;
    transform:translateY(8px) scale(.96);
    animation:cardPop .32s cubic-bezier(.16,.84,.44,1) forwards;
    animation-delay:var(--delay, 0s);
  }

  .team-photo{
    width:44px;
    height:44px;
    border-radius:999px;
    overflow:hidden;
    flex:0 0 44px;
    cursor:pointer;
  }
  .team-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }
  .team-info{
    flex:1;
    min-width:0;
  }
  .team-name{
    font-size:14px;
    font-weight:600;
    margin-bottom:2px;
  }
  .team-role{
    font-size:12px;
    color:var(--muted);
    margin-bottom:4px;
  }
  .team-contacts{
    font-size:12px;
    color:var(--softtext);
    word-wrap:break-word;
    word-break:break-word;
  }
  .team-contacts a{
    color:var(--ink);
    text-decoration:none;
  }
  .team-contacts a:hover{
    text-decoration:underline;
  }

  @keyframes cardPop{
    0%{
      opacity:0;
      transform:translateY(8px) scale(.96);
    }
    100%{
      opacity:1;
      transform:translateY(0) scale(1);
    }
  }

  .json-block{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:12px 14px;
    margin-top:12px;
    font-size:14px;
    color:var(--text);
  }
  .json-block h2{
    margin:0 0 6px;
    font-size:16px;
    font-weight:600;
  }
  .json-block p{
    margin:4px 0;
    line-height:1.4;
  }
  .img-block{
    margin-top:8px;
  }
  .img-block img{
    width:100%;
    border-radius:var(--radius);
    display:block;
  }
  .contact-map{
    width:100%;
    border-radius:var(--radius);
    display:block;
    margin-bottom:8px;
  }
  .contact-info{
    font-size:14px;
    line-height:1.4;
  }
  
  .cases-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:12px;
  margin-top:10px;
}
.case-card{
  background:var(--card);
  border-radius:12px;
  border:1px solid var(--line);
  padding:12px;
}
.case-title{
  font-weight:700;
  margin-bottom:6px;
}
.case-meta{
  font-size:12px;
  color:var(--softtext);
  line-height:1.4;
}
.case-actions{
  margin-top:10px;
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.case-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--line);
  text-decoration:none;
  color:var(--brand);
  font-weight:600;
  font-size:13px;
  background:#fff;
}
.case-img{
  width:100%;
  height:160px;
  object-fit:cover;
  border-radius:12px;
  margin-bottom:10px;
  display:block;
}


  .news-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:16px;
    margin-top:12px;
  }
  .news-card{
    background:var(--card);
    border-radius:12px;
    border:1px solid(var(--line));
    overflow:hidden;
    box-shadow:0 1px 3px rgba(0,0,0,.08);
    display:flex;
    flex-direction:column;
  }
  .news-image img{
    width:100%;
    height:160px;
    object-fit:cover;
    display:block;
  }
  .news-content{
    padding:12px;
  }
  .news-title{
    font-weight:600;
    margin-bottom:4px;
  }
  .news-snippet{
    font-size:14px;
    color:var(--softtext);
  }
  .news-link{
    font-size:14px;
    color:var(--brand);
    text-decoration:none;
    margin-top:6px;
    display:inline-block;
    font-weight:600;
  }

  @media (max-width:768px){
    .hero-banner{
      margin:6px 10px 0;
      padding:10px 12px;
      gap:10px;
    }
    .hero-title{font-size:16px;}
    .hero-sub{font-size:12px;}
  }

  /* ======== ILINK-LIKE INTRO HERO (AiDRONIK) ======== */

  /* Hero lives inside .thread.
     IMPORTANT: keep it aligned with the same column as chat messages.
     The earlier “bleed to edges” (negative margins) made the hero look shifted-left
     compared to the chat column, especially noticeable right after the first assistant answer.
  */
  .thread > .ilink-hero{ margin:0 0 18px; }

  /* Defensive: if the hero ever gets injected inside a chat message, remove bubble offsets so it doesn't look "shifted left". */
  .msg .ilink-hero{
    margin:0 !important;
    width:100% !important;
  }
  .msg .ilink-hero-shell{ max-width:1100px; margin:0 auto; }

  .ilink-hero{
    width:100%;
    position:relative;
    border-radius:18px;
    overflow:hidden;
    border-bottom:1px solid var(--line);
    padding:34px 26px 26px;
    background:
      radial-gradient(900px 520px at 16% 22%, rgba(76,218,106,.26), rgba(76,218,106,0) 62%),
      radial-gradient(860px 520px at 86% 12%, rgba(5,46,22,.18), rgba(5,46,22,0) 60%),
      linear-gradient(180deg, rgba(255,255,255,.72) 0%, rgba(255,255,255,.42) 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    /* IMPORTANT: не режем контент интро — высота должна расти по содержимому,
       иначе на некоторых экранах карточки обрываются из-за max-height + overflow:hidden */
    max-height:none;
    min-height:unset;
    transition: opacity .35s ease, padding .35s ease, border-color .35s ease;
  }
  body.no-intro .ilink-hero{display:none;}

  .ilink-hero-shell{
    max-width:1100px;
    margin:0 auto;
    position:relative;
    z-index:2;
  }
  .ilink-hero-top{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:12px;
    padding:2px 0 14px;
  }
  .ilink-logo{
    height:34px;
    width:auto;
    object-fit:contain;
    filter:drop-shadow(0 8px 18px rgba(15,23,42,.08));
  }

  .ilink-hero-grid{
    display:grid;
    grid-template-columns: 1.08fr .92fr;
    gap:18px;
    align-items:stretch;
  }

  .ilink-kicker{
    font-size:12px;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:rgba(45,62,54,.72);
    font-weight:700;
  }
  .ilink-title{
    margin:10px 0 0;
    /* Match platform hero typography: bigger + heavier, but responsive */
    font-size:clamp(34px, calc(4.2vw + 8px), 92px);
    font-weight:900;
    line-height:1.02;
    letter-spacing:-0.03em;
    color:var(--text);
  }
  .ilink-sub{
    margin:12px 0 0;
    font-size:clamp(15px, 1.05vw, 20px);
    line-height:1.5;
    color:rgba(45,62,54,.84);
    max-width:60ch;
  }
  /* extra breathing room between multiple subtitle paragraphs */
  .ilink-sub + .ilink-sub{ margin-top:16px; }

  .ilink-actions{
    display:flex;
    gap:10px;
    margin-top:18px;
    flex-wrap:wrap;
  }
  .ilink-btn{
    appearance:none;
    border:1px solid rgba(5,46,22,.14);
    background:rgba(255,255,255,.70);
    color:var(--text);
    padding:11px 14px;
    border-radius:12px;
    font-weight:700;
    cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
    backdrop-filter:blur(10px);
  }
  .ilink-btn.primary{
    border:0;
    color:#fff;
    background:linear-gradient(135deg,#4CDA6A 0%, #16a34a 55%, #052e16 100%);
    box-shadow:0 14px 34px rgba(76,218,106,.22);
  }
  .ilink-btn.ghost{
    background:rgba(255,255,255,.55);
  }
  .ilink-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 16px 44px rgba(15,23,42,.14);
    border-color:rgba(76,218,106,.34);
  }
  .ilink-btn:active{ transform:translateY(0); }

  .ilink-metrics{
    display:flex;
    gap:10px;
    margin-top:18px;
    flex-wrap:wrap;
  }
  .ilink-metric{
    background:rgba(255,255,255,.56);
    border:1px solid rgba(15,23,42,.10);
    border-radius:14px;
    padding:10px 12px;
    min-width:126px;
    backdrop-filter:blur(10px);
  }
  .ilink-metric .n{
    font-weight:900;
    font-size:14px;
    color:var(--text);
  }
  .ilink-metric .t{
    font-size:12px;
    color:rgba(45,62,54,.70);
    margin-top:2px;
  }

  .ilink-hero-cards{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
  }
  .ilink-card{
    text-align:left;
    border:1px solid rgba(15,23,42,.10);
    background:rgba(255,255,255,.62);
    border-radius:18px;
    padding:14px 14px;
    cursor:pointer;
    position:relative;
    overflow:hidden;
    backdrop-filter:blur(10px);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  }
  .ilink-card::before{
    content:"";
    position:absolute;
    inset:-2px;
    background:radial-gradient(120px 80px at 20% 10%, rgba(76,218,106,.30), transparent 70%),
               radial-gradient(160px 90px at 80% 0%, rgba(5,46,22,.20), transparent 68%),
               radial-gradient(220px 120px at 30% 120%, rgba(24,34,28,.14), transparent 65%);
    opacity:.55;
    pointer-events:none;
  }
  .ilink-card:hover{
    transform:translateY(-2px);
    box-shadow:0 22px 54px rgba(15,23,42,.16);
    border-color:rgba(76,218,106,.34);
  }
  .ilink-card-ico{
    width:36px;
    height:36px;
    border-radius:12px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg, rgba(76,218,106,.18), rgba(5,46,22,.10));
    color:var(--ink);
    font-size:18px;
    font-weight:900;
    position:relative;
    z-index:2;
  }
  .ilink-card-title{
    margin-top:10px;
    font-weight:900;
    color:var(--text);
    position:relative;
    z-index:2;
  }
  .ilink-card-sub{
    margin-top:6px;
    color:rgba(45,62,54,.82);
    font-size:13px;
    line-height:1.35;
    position:relative;
    z-index:2;
  }
  .ilink-card-more{
    margin-top:10px;
    font-size:12px;
    color:var(--brand2);
    font-weight:800;
    position:relative;
    z-index:2;
  }



  /* =============================
     Online Admin block (home)
     ============================= */
  .site-admin{margin-top:16px;}
  .site-admin__shell{
    max-width:1100px;
    margin:0 auto;
    border-radius:22px;
    border:1px solid rgba(15,23,42,.10);
    background:rgba(255,255,255,.66);
    box-shadow:0 14px 34px rgba(15,23,42,.08);
    padding:16px 16px 14px;
  }
  .site-admin__grid{
    display:grid;
    grid-template-columns: 1.15fr .85fr;
    gap:16px;
    align-items:stretch;
  }
  .site-admin__badge{
    display:inline-flex;
    align-items:center;
    padding:6px 10px;
    border-radius:999px;
    border:1px solid rgba(76,218,106,.32);
    background:rgba(76,218,106,.10);
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:rgba(15,23,42,.72);
  }
  .site-admin__title{
    margin:10px 0 0;
    /* Keep the same typography system as the rest of the site */
    font-size:clamp(30px, calc(2.6vw + 10px), 52px);
    line-height:1.02;
    font-weight:900;
    letter-spacing:-0.03em;
    color:var(--text);
  }
  .site-admin__lines{margin-top:12px; display:grid; gap:8px; color:rgba(45,62,54,.84); font-size:clamp(15px, 1.05vw, 18px); line-height:1.5; max-width:60ch;}
  .site-admin__cta{margin-top:12px;}
  .site-admin__trust{margin-top:10px; font-size:13px; color:rgba(45,62,54,.78);}

  .site-admin__right{
    border-radius:18px;
    border:1px solid rgba(15,23,42,.10);
    background:rgba(255,255,255,.78);
    padding:14px;
  }
  .site-admin__miniTitle{font-weight:900; color:var(--text); margin:0 0 10px; font-size:14px;}
  .site-admin__steps{display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:10px;}
  .site-admin__step{
    border-radius:16px;
    border:1px solid rgba(15,23,42,.10);
    background:rgba(255,255,255,.86);
    padding:10px 10px;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .site-admin__num{
    width:28px; height:28px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(76,218,106,.32);
    background:rgba(76,218,106,.12);
    color:rgba(15,23,42,.78);
    font-weight:900;
    flex:0 0 auto;
  }
  .site-admin__stepTxt{font-size:13px; font-weight:800; color:rgba(15,23,42,.72); line-height:1.2;}

  .site-admin__benefits{margin-top:14px; display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:12px;}
  .site-admin__benefit{
    border-radius:18px;
    border:1px solid rgba(15,23,42,.10);
    background:rgba(255,255,255,.74);
    padding:12px 12px;
    box-shadow:0 10px 22px rgba(15,23,42,.06);
  }
  .site-admin__benefitTitle{font-weight:900; color:var(--text); font-size:15px; margin:0;}
  .site-admin__benefitText{margin-top:6px; font-size:14px; color:rgba(45,62,54,.84); line-height:1.45;}

  .site-admin__strip{
    margin-top:12px;
    padding:10px 12px;
    border-radius:16px;
    border:1px solid rgba(15,23,42,.10);
    background:rgba(5,46,22,.05);
    color:rgba(15,23,42,.78);
    font-weight:800;
    font-size:14px;
  }

  @media (max-width: 820px){
    .site-admin__grid{grid-template-columns:1fr;}
    .site-admin__steps{grid-template-columns:1fr;}
    .site-admin__benefits{grid-template-columns:1fr;}
    /* clamp() already adapts; keep small screens readable */
    .site-admin__title{font-size:clamp(26px, 7.2vw, 36px);}
  }

  /* Order modal */
  .order-modal{max-width:420px;}
  .order-close{
    position:absolute;
    top:10px;
    right:10px;
    width:34px;
    height:34px;
    border-radius:999px;
    border:1px solid rgba(0,0,0,.08);
    background:rgba(0,0,0,.04);
    cursor:pointer;
    font-size:20px;
    line-height:1;
  }
  .order-close:hover{background:rgba(0,0,0,.06);}
  .order-help{margin-top:10px; font-size:12px; color:var(--softtext); line-height:1.45;}
  .order-status{margin-top:8px; font-size:12px; color:var(--softtext);}
  .order-success{padding-top:8px;}
  .order-success__title{font-size:16px; font-weight:900; margin:4px 0 6px; color:var(--text);}
  .order-success__text{font-size:13px; color:var(--softtext); line-height:1.45;}

  /* =============================
     Constructor promo (home hero)
     ============================= */
  .constructor-promo{margin-top:16px;}
  .constructor-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;}
  .constructor-title{max-width:720px;}
  .constructor-h2{margin:8px 0 0;font-size:20px;line-height:1.18;color:var(--text);font-weight:900;letter-spacing:-.01em;}
  .constructor-sub{margin:8px 0 0;color:rgba(45,62,54,.82);font-size:13px;line-height:1.45;}
  .constructor-banner{margin-top:12px;border-radius:18px;overflow:hidden;border:1px solid rgba(15,23,42,.10);background:rgba(255,255,255,.62);}
  .constructor-banner img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;}
  .constructor-accordion{margin-top:12px;display:grid;gap:10px;}
  .constructor-faq{border:1px solid rgba(15,23,42,.10);background:rgba(255,255,255,.62);border-radius:18px;padding:12px 14px;backdrop-filter:blur(10px);}
  .constructor-faq summary{list-style:none;cursor:pointer;font-weight:900;color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:12px;}
  .constructor-faq summary::-webkit-details-marker{display:none;}
  .constructor-faq summary::after{content:"+";width:30px;height:30px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg, rgba(76,218,106,.18), rgba(5,46,22,.10));color:var(--brand2);font-weight:900;flex:0 0 auto;}
  .constructor-faq[open] summary::after{content:"–";}
  .constructor-faq__a{margin-top:10px;color:rgba(45,62,54,.82);font-size:13px;line-height:1.5;}

  @media (max-width:560px){
    .constructor-h2{font-size:18px;}
    .constructor-banner{border-radius:16px;}
    .constructor-faq{border-radius:16px;}
  }

  .ilink-blob{
    position:absolute;
    width:320px;
    height:320px;
    border-radius:999px;
    filter:blur(44px);
    opacity:.55;
    pointer-events:none;
    mix-blend-mode:multiply;
    animation:ilinkFloat 10s ease-in-out infinite;
  }
  .ilink-blob.b1{ left:-120px; top:-140px; background:rgba(76,218,106,.55); }
  .ilink-blob.b2{ right:-160px; top:-90px; background:rgba(5,46,22,.38); animation-duration:12s; }
  .ilink-blob.b3{ left:10%; bottom:-220px; background:rgba(24,34,28,.32); animation-duration:14s; }

  @keyframes ilinkFloat{
    0%,100%{ transform:translate3d(0,0,0) scale(1); }
    50%{ transform:translate3d(22px,-18px,0) scale(1.08); }
  }

  @media (max-width: 980px){
    /* clamp() handles scaling */
  }
  @media (max-width: 820px){
    .thread > .ilink-hero{ margin:0 0 16px; }
    .ilink-hero{ padding:26px 16px 22px; }
    .ilink-hero-grid{ grid-template-columns:1fr; }
    .ilink-hero-cards{ grid-template-columns:1fr; }
    /* clamp() handles scaling */
  }
  @media (max-width: 420px){
    .ilink-hero{ padding:18px 14px 20px; }
    .ilink-logo{ height:30px; }
  }

  .intro-slider{
    width:100%;
    max-width:none;
    margin:0;
    position:relative;
    height:min(220px, 40vh);
    overflow:hidden;
    opacity:1;
    transition:opacity .8s.ease, height .8s.ease, margin .8s.ease;
    border-radius:0;
  }
  body.no-intro .intro-slider{
    opacity:0;
    height:0;
    margin:0;
    pointer-events:none;
  }
  .intro-slide{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    opacity:0;
    transition:opacity 1.2s.ease-in-out;
    z-index:0;
  }
  .intro-slide.active{
    opacity:1;
    z-index:1;
  }
  .intro-slide img,
  .intro-slide video{
    width:100%;
    height:100%;
    display:block;
    border-radius:0;
    object-fit:cover;
    box-shadow:none;
    border:none;
  }

  @media (max-width:768px){
    .intro-slider{
      margin:0;
      height:min(180px, 36vh);
    }
  }

  .intro-director{
    max-width:var(--maxw);
    margin:16px auto 0;
    padding-top:4px;
    display:flex;
    gap:18px;
    align-items:stretch;
  }

  .director-video-wrap{
    position:relative;
    flex:0 0 auto;

    width:min(320px, 40vw);
    aspect-ratio:1/1;
    border-radius:18px;
    overflow:hidden;
    background:var(--bg);
  }

  .director-video{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    opacity:0;
    transform:scale(1.02);
    transition:opacity .6s.ease, transform .6s.ease;
  }

  body.dir-video-ready .director-video-wrap{
    background:#000;
  }
  body.dir-video-ready .director-video{
    opacity:1;
    transform:scale(1);
  }

  .director-mute{
    position:absolute;
    left:10px;
    top:10px;
    width:32px;
    height:32px;
    border-radius:999px;
    border:0;
    padding:0;
    background:rgba(255,255,255,.75);
    color:#444;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    font-size:16px;
    box-shadow:0 0 0 1px rgba(0,0,0,.06);
  }

  .director-copy{
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:flex-start;
  padding:6px 4px 6px 4px;
  overflow:hidden;

  /* ВАЖНО: по умолчанию текст видим */
  opacity:1;

  /* Анимация остаётся, но если она не сработает — текст не пропадёт */
  animation:textRevealDown 1.1s ease forwards;
  animation-delay:0.35s;
}

  @keyframes textRevealDown{
  0%{opacity:0; transform:translateY(-12px);}
  100%{opacity:1; transform:translateY(0);}
}


  .dir-word-main{
    font-size:clamp(36px, 7vw, 80px);
    line-height:0.9;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.12em;
    color:var(--brand);
    word-break:break-word;
  }
  .dir-word-sub-wrap{
    display:flex;
    flex-direction:column;
    gap:4px;
  }
  .dir-word-sub{
    font-size:clamp(28px, 4.3vw, 42px);
    line-height:1.1;
    font-weight:500;
    color:var(--brand);
  }

  @media (max-width:768px){
    .intro-director{
      max-width:none;
      margin:10px 10px 0;
      padding-top:0;
      flex-direction:column;
      align-items:center;
    }
    .director-video-wrap{
      width:100%;
      max-width:360px;
    }
    .director-copy{
      display:none;
    }
  }

  .photo-modal{
    position:fixed;
    inset:0;
    padding:16px;
    display:none;
    align-items:center;
    justify-content:center;
    background:rgba(0,0,0,.6);
    z-index:1600;
  }
  .photo-modal.open{
    display:flex;
    animation:photoFade .22s.ease-out;
  }
  .photo-modal img{
    max-width:96vw;
    max-height:92vh;
    border-radius:18px;
    box-shadow:0 18px 40px rgba(0,0,0,.55);
    background:#000;
  }
  body.photo-open{
    overflow:hidden;
  }
  @keyframes photoFade{
    from{
      opacity:0;
      transform:scale(.94) translateY(8px);
    }
    to{
      opacity:1;
      transform:scale(1) translateY(0);
    }
  }

  .cam-modal{
    position:fixed;
    inset:0;
    padding:16px;
    display:none;
    align-items:center;
    justify-content:center;
    background:rgba(0,0,0,.75);
    z-index:1700;
  }
  .cam-modal.open{
    display:flex;
    animation:photoFade .22s.ease-out;
  }
  .cam-modal video{
    max-width:96vw;
    max-height:92vh;
    border-radius:18px;
    box-shadow:0 18px 40px rgba(0,0,0,.6);
    background:#000;
    display:block;
  }
  body.cam-open{
    overflow:hidden;
  }

  .cam-preview{
    margin-top:10px;
    border-radius:16px;
    overflow:hidden;
    background:#000;
    cursor:pointer;
    max-width:640px;
    box-shadow:0 6px 20px rgba(0,0,0,.18);
    position:relative;
  }
  .cam-preview video{
    width:100%;
    height:auto;
    display:block;
  }
  .cam-badge{
    position:absolute;
    left:10px;
    top:10px;
    padding:3px 8px;
    border-radius:999px;
    background:rgba(255,0,0,.88);
    color:#fff;
    font-size:11px;
    font-weight:600;
    text-transform:uppercase;
    letter-spacing:.08em;
  }
  .cam-caption{
    margin-top:6px;
    font-size:12px;
    color:var(--softtext);
  }

  @media (max-width:1100px) and (min-width:769px){
    :root{--sidew:64px}
    .navhdr{display:none}
    .nav button{
      justify-content:center;
      padding:10px 6px;
    }
    .nav button span.label{display:none}
    .composer{left:var(--sidew)}
    .msg.user .body{max-width:86%}
    .thread{padding-bottom:180px;}
    .burger{
      display:none;
    }
    .brand{
      display:none;
    }
    .nav button .ico{
      width:24px;
      height:24px;
      display:flex;
      align-items:center;
      justify-content:center;
    }
    .nav button .ico svg{
      width:20px;
      height:20px;
      stroke:var(--text);
      stroke-width:1.8;
    }
    .nav button::after{
      content:attr(data-label);
      position:absolute;
      left:100%;
      top:50%;
      transform:translateY(-50%) translateX(8px);
      background:rgba(33,33,33,.96);
      color:#fff;
      font-size:11px;
      padding:4px 8px;
      border-radius:8px;
      white-space:nowrap;
      opacity:0;
      pointer-events:none;
      transition:opacity .15s.ease, transform .15s.ease;
      z-index:50;
    }
    .nav button:hover::after{
      opacity:1;
      transform:translateY(-50%) translateX(4px);
    }
  }

  @media (max-width:768px){
    html,body{
      height:100%;
      overflow:hidden;
    }
    body{
      display:flex;
      min-height:100vh;
    }
    .side{
      position:fixed;
      top:0;
      bottom:0;
      left:0;
      width:240px;
      min-width:240px;
      background:var(--bg);
      border-right:1px solid var(--line);
      flex-direction:column;
      overflow-y:auto;
      z-index:1200;
      transform:translateX(-100%);
      transition:transform .25s.ease;
    }
    .side.open{transform:translateX(0);}
    .main{margin-left:0;}
    .header{
      position:fixed;
      top:0;
      left:0;
      right:0;
      z-index:1000;
      padding-left:44px;
      background:var(--bg);
    }
    .wrap{
      margin-top:72px;
    }
    .burger{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      position:absolute;
      left:12px;
      top:50%;
      transform:translateY(-50%);
      width:28px;
      height:28px;
      border-radius:999px;
      border:0;
      background:rgba(0,0,0,.08);
      cursor:pointer;
    }
    .thread{
      padding:18px 16px 190px;
    }
    .navhdr{display:block;}
    .nav button span.label{display:inline;}
    .nav button{
      justify-content:flex-start;
      padding:10px 10px;
    }
    .side-backdrop{
      position:fixed;
      inset:0;
      background:rgba(0,0,0,.04);
      z-index:1100;
      display:none;
    }
    body.menu-open .side-backdrop{
      display:block;
    }
    .composer{left:0;}
  }

  .team-card,
  .hero-banner,
  .contact-card,
  .json-block,
  .team-photo,
  .intro-slide img,
  .intro-slide video {
    border:none !important;
    box-shadow:none !important;
  }
  .img-block img,
  .contact-map{
    border:none !important;
    box-shadow:none !important;
  }
  .msg .msg-text{
    font-size:16px;
  }
  
  /* === Markdown/структура ответа ассистента === */
.msg.assistant .msg-text p{ margin:8px 0; }
.msg.assistant .msg-text ul{ margin:8px 0 8px 20px; padding:0; }
.msg.assistant .msg-text li{ margin:6px 0; }
.msg.assistant .msg-text h2,
.msg.assistant .msg-text h3,
.msg.assistant .msg-text h4{ margin:10px 0 6px; }

.items-block{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid rgba(0,0,0,.08);
}

  #ta{
    font-size:14px;
  }
  #ta::placeholder{
    font-size:14px;
  }

  .modal{
    position:fixed;
    inset:0;
    display:none;
    align-items:center;
    justify-content:center;
    z-index:2000;
  }
  .modal.shown{
    display:flex;
  }
  .modal__backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.35);
  }
  .modal__window{
    position:relative;
    background:#fff;
    padding:20px 22px;
    border-radius:var(--radius);
    max-width:360px;
    width:100%;
    box-shadow:0 18px 40px rgba(0,0,0,.18);
    z-index:1;
  }
  .modal__window h3{
    margin:0 0 8px;
    font-size:16px;
    font-weight:600;
  }
  .modal__window p{
    margin:0;
    font-size:13px;
    color:var(--softtext);
    line-height:1.5;
  }
  .modal__actions{
    display:flex;
    gap:10px;
    margin-top:16px;
    flex-wrap:wrap;
  }

  .btn{
    border-radius:10px;
    border:1px solid(var(--line));
    background:#fff;
    padding:8px 12px;
    font-size:13px;
    cursor:pointer;
    flex:1;
    text-align:center;
  }
  .btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;}
  .btn.ghost{
    background:transparent;
    color:var(--text);
  }
  .btn:hover{
    filter:brightness(0.97);
  }

  /* === Блок "Что производим?" – окно на 3–4 строки с ручным скроллом === */

  .wwp-scroll-container{
    width:100%;
    max-width:1100px;
    margin:0 auto 32px;
    padding:24px 20px 28px;
    display:flex;
    justify-content:center;
  }

  .wwp-window{
    width:100%;
    max-height:6em;
    min-height:3.2em;
    overflow-y:auto;
    overflow-x:hidden;
    margin:0 auto;
    scrollbar-width:thin;
  }

  .wwp-text-container{
    display:flex;
    flex-direction:column;
    gap:10px;
    padding:4px 0 16px;
  }

  .wwp-text{
    --direction:1;

    font-size:clamp(18px,2.6vw,26px);
    font-weight:700;
    text-transform:uppercase;
    text-align:center;
    letter-spacing:.06em;
    line-height:1.25;
    color:var(--softtext);

    opacity:.2;
    transform:
      translateX(calc(90px * var(--direction)))
      translateY(24px)
      rotate(calc(-10deg * var(--direction)))
      scale(1.02);

    will-change:transform,opacity;
    transition:transform .18s.linear, opacity .18s.linear;
  }

  .wwp-text:nth-child(even){
    --direction:-1;
  }

  @media (max-width:768px){
    .wwp-scroll-container{
      padding:18px 12px 22px;
    }
    .wwp-window{
      max-height:7em;
    }
    .wwp-text{
      font-size:16px;
      letter-spacing:.04em;
    }
  }

.app{position:relative; z-index:1;}

/* --- Content pages (Tariffs / Contacts) --- */
.page-view{width:100%;}
.page-view[hidden]{display:none !important;}
.pv-shell{
  width:calc(100% - 32px);
  max-width:1120px;
  margin:20px auto 26px;
  border-radius:24px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 18px 46px rgba(0,0,0,.08);
  overflow:hidden;
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
.pv-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px 18px;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.pv-title{font-size:18px; font-weight:800;}
.pv-close{
  width:36px;height:36px;border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(0,0,0,.04);
  border:1px solid rgba(0,0,0,.06);
  cursor:pointer;
}
.pv-close:hover{background:rgba(0,0,0,.06);}
.pv-body{padding:18px;}
.pv-grid{display:grid; gap:14px; grid-template-columns: repeat(4, minmax(0, 1fr));}
.pv-card{
  background:rgba(255,255,255,.74);
  border:1px solid rgba(0,0,0,.06);
  border-radius:18px;
  padding:14px 14px 12px;
  box-shadow:0 10px 24px rgba(0,0,0,.06);
}
.pv-card h3{margin:0 0 4px; font-size:16px; font-weight:900;}
.pv-price{margin:0 0 10px; font-size:14px; font-weight:800; color:var(--brand);}
.pv-card ul{margin:0; padding-left:18px; color:var(--text);}
.pv-card li{margin:6px 0;}
.pv-note{margin-top:12px; color:var(--muted); font-size:13px;}

.pv-form{display:grid; gap:12px; margin-top:8px;}
.pv-row{display:grid; gap:8px;}
.pv-row label{display:grid; gap:6px; font-size:13px; color:var(--muted);}
.pv-row.cols2{grid-template-columns:1fr 1fr;}
@media (max-width:720px){
  .pv-row.cols2{grid-template-columns:1fr;}
}
.pv-row input,.pv-row textarea,.pv-row select{
  width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.10);
  background:rgba(255,255,255,.88);
  outline:none;
  font:inherit;
}
.pv-row textarea{min-height:110px; resize:vertical;}
.pv-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top:6px;}
.pv-actions .btn{border-radius:14px; padding:12px 14px;}

@media (max-width: 1000px){
  .pv-grid{grid-template-columns: repeat(2, minmax(0, 1fr));}
}
@media (max-width: 560px){
  .pv-shell{width:calc(100% - 20px); border-radius:20px;}
  .pv-grid{grid-template-columns: 1fr;}
  .pv-body{padding:14px;}
}
/* === Menu card (no shadow / no border) === */
.menu-card{
  display:flex;
  align-items:center;
  gap:20px;
  padding:0;
  margin:18px 0 0;
  background:transparent;
  border:none;
  box-shadow:none;
}

.menu-card.is-alt{ flex-direction:row-reverse; }

.menu-card__img{
  width:min(420px, 44%);
  max-width:44%;
  border-radius:18px;
  overflow:hidden;
  background:transparent;
  border:none;
  box-shadow:none;
}
.menu-card__img img{
  width:100%;
  height:auto;
  display:block;
}

.menu-card__body{ flex:1; min-width:0; }

.menu-card__kicker{
  font-size:12px;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.72;
  margin-bottom:8px;
}

.menu-card__title{
  margin:0 0 10px;
  font-size: clamp(22px, 2.2vw, 34px);
  line-height:1.12;
}

.menu-card__text{
  margin:0 0 12px;
  opacity:.92;
}

.menu-card__list{
  margin:0 0 14px;
  padding-left:18px;
}
.menu-card__list li{ margin:6px 0; }

.menu-card__cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:12px;
  border:none;
  cursor:pointer;
  background: var(--brand, #4CDA6A);
  color:#fff;
}
.menu-card__cta:hover{ filter:brightness(0.98); }

/* orange accent (small) */
.menu-card__title::after{
  content:"";
  display:block;
  width:44px;
  height:3px;
  border-radius:99px;
  margin-top:10px;
  background: var(--brand); /* accent */
  opacity:.9;
}

@media (max-width: 820px){
  .menu-card{
    flex-direction:column;
    align-items:stretch;
    gap:14px;
  }
  .menu-card__img{
    width:100%;
    max-width:100%;
  }
}



/* MENU CARD LAYOUT (desktop: image left, text right) */
.mc-card{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.mc-media img{
  width:100%;
  height:auto;
  border-radius:14px;
  display:block;
}
@media (min-width: 980px){
  .mc-card{ flex-direction:row; align-items:flex-start; }
  .mc-media{ flex:0 0 46%; max-width:560px; }
  .mc-body{ flex:1 1 auto; min-width:0; }
}


/* === MOBILE STABILITY: simplify intro hero to prevent flicker/jitter on scroll/orientation === */
@media (max-width: 920px), (max-height: 520px){
  /* remove expensive blur/backdrop effects on mobile */
  .ilink-hero{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    transition:none !important;
    /* simpler paint (no large radial gradients) */
    background: linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(255,255,255,.74) 100%) !important;
    contain: layout paint;
  }
  .ilink-btn,
  .ilink-metric,
  .ilink-card{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }
  .ilink-btn{ transition:none !important; }
  .ilink-btn:hover{ transform:none !important; box-shadow:none !important; }
  .ilink-logo{ filter:none !important; }
}

/* During orientation changes some Android browsers repaint aggressively; reduce transitions globally */
@media (max-width: 920px){
  *{ scroll-behavior:auto; }
}

/* ===== Manager handoff button ===== */
.manager-btn{
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(5,46,22,.22);
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  background:rgba(76,218,106,.10);
  color:var(--ink);
  font-size:16px;
  flex:0 0 auto;
  line-height:1;
}
.manager-btn:hover{ background:rgba(76,218,106,.16); }
.manager-btn.pending{
  border-color:rgba(76,218,106,.38);
  background:rgba(76,218,106,.14);
  color:var(--ink);
}
.manager-btn.active{
  border-color:transparent;
  background:linear-gradient(135deg, var(--brand) 0%, var(--ink) 100%);
  color:#fff;
}

/* =========================================================
   DARK BUTTONS OVERRIDE (AiDRONIK)
   Replace light-green CTAs with near-black dark green + white text
   Paste this at the VERY END of the CSS file.
========================================================= */

:root{
  --btn-dark: var(--ink);      /* #052e16 */
  --btn-dark-hover: var(--text); /* #18221c */
  --btn-dark-ring: rgba(76,218,106,.28); /* green accent ring */
  --btn-dark-shadow: rgba(5,46,22,.22);
}

/* Main primary CTAs across pages */
.ilink-btn.primary,
.btn.primary,
.menu-card__cta{
  background: var(--btn-dark) !important;
  border-color: var(--btn-dark) !important;
  color:#fff !important;
  box-shadow: 0 14px 34px var(--btn-dark-shadow) !important;
}

.ilink-btn.primary:hover,
.btn.primary:hover,
.menu-card__cta:hover{
  background: var(--btn-dark-hover) !important;
  border-color: var(--btn-dark-hover) !important;
  color:#fff !important;
}

/* Buttons that looked like “light green pills” inside content */
.case-link{
  /* если это была кнопка-ссылка с белым фоном — оставляем белой,
     но текст делаем тёмным (у тебя и так ок). НИЧЕГО не меняем тут. */
}

/* Manager button: убрать “салатовый” фон, оставить тёмный стиль */
.manager-btn{
  background: rgba(5,46,22,.06) !important;   /* больше НЕ салатовый */
  border-color: rgba(5,46,22,.22) !important;
  color: var(--ink) !important;
}
.manager-btn:hover{
  background: rgba(5,46,22,.10) !important;
}
.manager-btn.pending{
  /* статус можно подсветить зелёным бордером, но без салатовой заливки */
  border-color: rgba(76,218,106,.55) !important;
  background: rgba(5,46,22,.08) !important;
  color: var(--ink) !important;
}
.manager-btn.active{
  background: var(--btn-dark) !important;
  border-color: transparent !important;
  color:#fff !important;
  box-shadow: 0 10px 26px var(--btn-dark-shadow) !important;
}

/* Attach button when file selected: убрать зелёный градиент */
.attach-btn.has-file{
  background: linear-gradient(135deg, var(--btn-dark) 0%, var(--btn-dark-hover) 60%, var(--btn-dark) 100%) !important;
  color:#fff !important;
}

/* Download icon button in assistant messages: убрать салатовый чип */
.msg-download-btn{
  background: rgba(5,46,22,.08) !important;
}
.msg-download-btn:hover{
  background: rgba(5,46,22,.12) !important;
}

/* Optional: focus ring on dark buttons with green accent */
.ilink-btn.primary:focus-visible,
.btn.primary:focus-visible,
.menu-card__cta:focus-visible,
.manager-btn:focus-visible{
  outline: 2px solid var(--btn-dark-ring) !important;
  outline-offset: 2px !important;
}

/* =====================
   Demo dialog UI
   ===================== */
.demo-banner{
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 8px 0 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,0.75);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0,0,0,0.06);
}
.demo-banner__left{display:flex; align-items:center; gap:10px;}
.demo-banner__dot{width:8px; height:8px; border-radius: 50%; background: var(--accent, #0a7a3d);}
.demo-banner__title{font-weight: 700; font-size: 13px; opacity: .9;}
.demo-banner__btn{
  border: 0;
  cursor: pointer;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,0.06);
  font-weight: 700;
  font-size: 13px;
}
.demo-banner__btn:hover{background: rgba(0,0,0,0.09);} 

body.demo-mode #ta{opacity: .65;}
body.demo-mode #sendBtn, body.demo-mode #attachBtn, body.demo-mode #managerBtn{opacity: .65;}

/* --- KB mobile scroll FIX (scoped) --- */
@supports selector(html:has(.kb-wrap)) {
  html:has(.kb-wrap),
  body:has(.kb-wrap) {
    height: auto !important;
    min-height: 100% !important;
    overflow: auto !important;
    overflow-y: auto !important;
    position: static !important;
  }
}

@media (max-width: 768px) {
  .kb-wrap {
    height: auto !important;
    min-height: 100vh !important;
    overflow: visible !important;
  }
}

/* =====================================================================
   PERFORMANCE / MOBILE STABILITY (AiDRONIK)
   Fix “frosted glass / blurred glass” flicker on mobile (especially iOS).
   We disable expensive blur/backdrop + giant blurred background blobs.
   --------------------------------------------------------------------- */

@media (max-width: 1024px), (max-height: 700px){
  /* remove global blurred blobs */
  body::before,
  body::after{
    display:none !important;
    filter:none !important;
  }

  /* disable backdrop-filter everywhere it matters */
  .side,
  .ilink-hero,
  .ilink-btn,
  .ilink-metric,
  .ilink-card,
  .constructor-faq,
  .demo-banner{
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
  }

  /* keep visuals clean but cheap to render */
  .side{ background: rgba(255,255,255,.92) !important; }
  .ilink-hero{ background: rgba(255,255,255,.92) !important; }
  .ilink-card{ background: rgba(255,255,255,.88) !important; }

  /* remove transform/transition micro-animations that cause repaints */
  .ilink-btn,
  .ilink-card{
    transition:none !important;
  }
  .ilink-btn:hover,
  .ilink-card:hover{
    transform:none !important;
    box-shadow:none !important;
  }
}


/* ================================
   AiDRONIK Constructor Promo — Typography FIX
   (делает шрифт/размер как на сайте)
   ВСТАВИТЬ В КОНЕЦ styles.css
================================ */

/* если у блока другой контейнер-класс — оставь обе группы селекторов */
.constructor-promo,
.promo-hero,
.constructor-promo * ,
.promo-hero * {
  font-family: inherit !important;
  letter-spacing: inherit !important;
}

/* общий текст в блоке */
.constructor-promo,
.promo-hero {
  font-size: 18px !important;       /* базовый размер как “на сайте” */
  line-height: 1.55 !important;
  color: inherit !important;
}

/* заголовок блока (H2/H3) */
.constructor-promo h2,
.constructor-promo h3,
.promo-hero h2,
.promo-hero h3 {
  font-size: 34px !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  margin: 0 0 10px !important;
}

/* подпояснение/лид под заголовком */
.constructor-promo .promo-lead,
.promo-hero .promo-lead,
.constructor-promo p,
.promo-hero p {
  font-size: 18px !important;
  line-height: 1.55 !important;
}

/* АККОРДЕОН: заголовки пунктов (summary / кнопка строки) */
.constructor-promo details > summary,
.promo-hero details > summary,
.constructor-promo .accordion__title,
.promo-hero .accordion__title {
  font-size: 22px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
}

/* АККОРДЕОН: текст внутри раскрытия */
.constructor-promo details > div,
.constructor-promo details .accordion__body,
.promo-hero details > div,
.promo-hero details .accordion__body {
  font-size: 18px !important;
  line-height: 1.55 !important;
}

/* кнопка в блоке — под стиль черно-зелёный */
.constructor-promo .promo-cta,
.promo-hero .promo-cta,
.constructor-promo a.btn,
.promo-hero a.btn {
  background: #052e16 !important;
  color: #ffffff !important;
  border: 1px solid rgba(76,218,106,.35) !important;
  font-weight: 800 !important;
}
.constructor-promo .promo-cta:hover,
.promo-hero .promo-cta:hover,
.constructor-promo a.btn:hover,
.promo-hero a.btn:hover {
  background: #031f0f !important;
}

/* мобильная адаптация: чтобы не “мельчило” */
@media (max-width: 720px){
  .constructor-promo,
  .promo-hero {
    font-size: 16px !important;
  }
  .constructor-promo h2,
  .constructor-promo h3,
  .promo-hero h2,
  .promo-hero h3 {
    font-size: 26px !important;
  }
  .constructor-promo details > summary,
  .promo-hero details > summary {
    font-size: 18px !important;
  }
  .constructor-promo details > div,
  .promo-hero details > div {
    font-size: 16px !important;
  }
}



/* =====================================================
   GLOBAL FIX: remove "frosted glass" / blur effects (ALL)
   ===================================================== */

/* 1) Disable heavy blurred background blobs */
body::before,
body::after{
  display:none !important;
  filter:none !important;
  background:none !important;
}

/* 2) Disable animated blur blobs */
.ilink-blob{
  display:none !important;
  filter:none !important;
  animation:none !important;
}

/* 3) Disable backdrop-filter everywhere (glass effect) */
*,
*::before,
*::after{
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

/* 4) Make common "glass" surfaces more solid (keep style, remove translucency) */
.side,
.ilink-hero,
.pv-shell,
.demo-banner,
.constructor-faq,
.constructor-banner,
.pv-card,
.order-modal__inner,
.order-modal__box,
.card,
.ilink-card,
.site-admin__shell,
.site-admin__benefit,
.site-admin__strip{
  background: rgba(255,255,255,.96) !important;
}

/* Keep borders readable after removing transparency */
.side,
.ilink-hero,
.pv-shell,
.demo-banner,
.constructor-faq,
.constructor-banner,
.pv-card,
.order-modal__inner,
.order-modal__box,
.ilink-card,
.site-admin__shell,
.site-admin__benefit{
  border-color: rgba(0,0,0,.08) !important;
}

/* ==============================
   Lead to purchase (3 cards)
   ============================== */
.lead-section{
  padding: 72px 0 84px;
}
.lead-title{
  text-align:center;
  margin: 0 0 40px;
  letter-spacing: -0.02em;
  font-weight: 900;
  line-height: 1.02;
  font-size: clamp(40px, 6vw, 88px);
  color: var(--text-dark);
}
.lead-cards{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}
.lead-card{
  border-radius: 28px;
  padding: 28px 28px 22px;
  border: 0;
  box-shadow: none;
  background: var(--bg-mint);
  display:flex;
  flex-direction:column;
  min-height: 260px;
}
.lead-card h3{
  margin: 0 0 12px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1.05;
  font-size: clamp(22px, 2vw, 34px);
  color: var(--text-dark);
}
.lead-card p{
  margin: 0 0 18px;
  color: rgba(16, 40, 28, 0.82);
  font-size: 17px;
  line-height: 1.55;
}
.lead-card--light{ background: #F3FAF6; }
.lead-card--mint{ background: #DDF4E6; }
.lead-card--dark{
  background: var(--brand);
}
.lead-card--dark h3,
.lead-card--dark p{
  color: rgba(255,255,255,0.92);
}

.lead-cta{
  margin-top:auto;
  align-self:flex-start;
  border: 0;
  cursor:pointer;
  font-weight: 800;
  letter-spacing: -0.01em;
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(5, 46, 22, 0.10);
  color: var(--brand);
  transition: transform 160ms ease, background 160ms ease;
}
.lead-cta:hover{ transform: translateY(-1px); background: rgba(5, 46, 22, 0.14); }
.lead-cta:active{ transform: translateY(0px); }
.lead-cta--light{
  background: rgba(255,255,255,0.14);
  color: #FFFFFF;
}
.lead-cta--light:hover{ background: rgba(255,255,255,0.18); }

@media (max-width: 1024px){
  .lead-section{ padding: 60px 0 72px; }
  .lead-cards{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px){
  .lead-title{ margin-bottom: 28px; }
  .lead-cards{ grid-template-columns: 1fr; }
  .lead-card{ padding: 22px 18px 18px; border-radius: 22px; min-height: 0; }
  .lead-card p{ font-size: 16px; }
}
