:root {
  --blue: #234aff;
  --blue-deep: #1935bf;
  --ink: #0a0c10;
  --ink-soft: #d9dde6;
  --muted: #9ca3b1;
  --cream: #0d0f14;
  --paper: #151922;
  --white: #f7f6f1;
  --line: rgba(255, 255, 255, .12);
  --glass: rgba(21, 25, 34, .76);
  --shadow: 0 32px 100px rgba(0, 0, 0, .42);
}

body { color: #f0f1f4; background: var(--cream); }
h1, h2, h3, h4 { color: #f4f2ec; }
.lead { color: var(--muted); }
.section--soft { background: #11141a; }
.section--dark { background: #07080b; }
.text-link { color: #f1f2f5; }
.button--dark { color: #101218; background: var(--white); }
.button--outline { color: #eef0f5; border-color: rgba(255,255,255,.45); }

.topbar { background: #050609; }
.site-header { border-bottom: 1px solid var(--line); background: rgba(13,15,20,.88); }
.site-header.is-scrolled { box-shadow: 0 18px 50px rgba(0,0,0,.32); }
.brand { padding: 8px 13px; border: 1px solid rgba(135,151,176,.28); border-radius: 10px; background: linear-gradient(145deg, rgba(40,47,59,.96), rgba(14,17,23,.98)); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 10px 30px rgba(0,0,0,.2); }
.brand::after { position: absolute; inset: 4px; border: 1px solid rgba(255,255,255,.04); border-radius: 7px; content: ""; pointer-events: none; }
.brand img { width: 148px; height: 38px; filter: brightness(1.55) saturate(1.25); }
.nav { border-color: var(--line); background: rgba(255,255,255,.035); }
.nav a { color: #c8cdd7; }
.nav a:hover, .nav a.active { color: #fff; background: var(--blue); }
.menu-toggle { border-color: var(--line); background: #161922; }
.menu-toggle span, .menu-toggle::before, .menu-toggle::after { background: #fff; }

.hero { background: #0d0f14; }
.hero::before { background: radial-gradient(circle at 42% 38%, #3157ff 0, #1738df 48%, #112590 100%); box-shadow: 0 0 120px rgba(35,74,255,.18); }
.hero::after { background: rgba(255,255,255,.13); }
.hero h1 { color: #f5f3ed; }
.hero h1 span { color: #4a6aff; }
.hero__product { mix-blend-mode: screen; }
.hero__index { background: rgba(9,11,16,.62); }
.trustbar { border-color: var(--line); background: #10131a; }
.trustbar__item { border-color: var(--line); }
.trustbar__item strong { color: #f2f3f6; }

.feature-card { background: #181c25; }
.feature-card:first-child { background: linear-gradient(145deg, #234aff, #162ea9); }
.feature-card h3 { color: #f3f4f7; }
.feature-card p { color: #9fa6b3; }
.split-showcase { background: #0d0f14; }
.split-showcase__visual { background: #050609; }
.split-showcase__copy { background: #11141a; }
.split-showcase__copy h2 { color: #f4f3ee; }
.spec-line { border-color: var(--line); }
.process-item { background: #10131a; }
.process-item:first-child { background: linear-gradient(150deg, #234aff, #142a9f); }
.product-teaser { background: #171b23; }
.product-teaser__image { background: #0c0e13; }
.product-teaser__image img { mix-blend-mode: screen; }
.statement { background: linear-gradient(135deg, #1738df, #102584); }

.page-hero { border-color: var(--line); background: #0d0f14; }
.page-hero::before { border-color: rgba(255,255,255,.14); }
.page-hero::after { background: linear-gradient(145deg, #3157ff, #1838dd); box-shadow: 0 0 90px rgba(35,74,255,.25); }
.page-hero h1 { color: #f3f2ed; }
.page-hero__side { background: rgba(20,24,32,.78); }
.page-hero__side .lead { color: #b0b5c0; }
.detail-row { background: #161a22; }
.detail-row h3 { color: #f3f4f7; }
.process-card { background: #171b23; }
.process-card h3 { color: #f3f4f7; }
.process-card:hover { background: var(--blue); }
.norm-row { background: rgba(255,255,255,.035); }

.audience-block, .audience-block:nth-child(even) { background: #0e1117; }
.audience-block__copy h2 { color: #f4f3ee; }
.bullet-list li { color: #cbd0d9; background: rgba(255,255,255,.055); }

.solution-showcase { background: #0b0e13; }
.solution-showcase__grid { display: grid; gap: 24px; }
.solution-card { display: grid; min-height: 610px; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); overflow: hidden; border: 1px solid rgba(255,255,255,.11); border-radius: 30px; background: linear-gradient(135deg, #11151c, #171c25); box-shadow: 0 22px 70px rgba(0,0,0,.22); }
.solution-card--reverse { grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); }
.solution-card--reverse .solution-card__media { order: 2; }
.solution-card__media { position: relative; display: grid; min-width: 0; place-items: center; overflow: hidden; padding: clamp(30px, 5vw, 68px); background: radial-gradient(circle at 50% 42%, #1d2330 0, #090b0f 72%); }
.solution-card__media::before { position: absolute; inset: 9%; border: 1px solid rgba(122,145,182,.2); border-radius: 50%; content: ""; }
.solution-card__media::after { position: absolute; inset: 18%; border: 1px solid rgba(122,145,182,.11); border-radius: 50%; content: ""; }
.solution-card__media img { position: relative; z-index: 2; width: 100%; max-width: 470px; max-height: 410px; object-fit: contain; filter: saturate(.82) contrast(1.05); mix-blend-mode: screen; transition: transform .7s var(--ease), filter .5s ease; }
.solution-card:hover .solution-card__media img { filter: saturate(1) contrast(1.08); transform: scale(1.025); }
.solution-card__meta { position: absolute; z-index: 3; top: 24px; right: 24px; left: 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.solution-card__meta span { color: #6480ff; font-family: var(--serif); font-size: 1.35rem; font-style: italic; }
.solution-card__meta strong { padding: 8px 12px; border: 1px solid rgba(255,255,255,.18); border-radius: 100px; color: #d8dce5; font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.solution-card__drawing { position: absolute; z-index: 3; right: 22px; bottom: 22px; left: 22px; display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; }
.solution-card__drawing span { height: 3px; border-radius: 10px; background: linear-gradient(90deg, #234aff, rgba(113,135,255,.12)); }
.solution-card__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: clamp(44px, 7vw, 100px); }
.solution-card__copy h2 { color: #f4f3ee; }
.solution-card__copy .lead { margin-top: 22px; }
.solution-card__copy .button-row { align-items: center; }
.solution-chat-link { border: 0; background: none; cursor: pointer; }

.filter-bar { border-color: var(--line); background: rgba(13,15,20,.92); }
.filter-button { border-color: var(--line); color: #c9ced8; }
.filter-button:hover, .filter-button.active { border-color: var(--blue); background: var(--blue); }
.search-wrap input { border-color: var(--line); color: #f3f4f6; background: rgba(255,255,255,.055); }
.search-wrap input::placeholder { color: #777f8e; }
.catalog-card { background: #171b23; }
.catalog-card__image { background: #090b0f; }
.catalog-card__image img { mix-blend-mode: screen; }
.catalog-card__body h2 { color: #f4f5f7; }
.catalog-meta { border-color: var(--line); }
.catalog-meta strong { color: #eef0f5; }
.catalog-empty { background: #171b23; }
.modal__dialog { background: #151922; }
.modal__head { background: #080a0e; }
.model-table th { color: #9ca3b1; }
.model-table td { border-color: var(--line); }

.service-card { background: #171b23; }
.service-card h3 { color: #f4f5f7; }
.service-card:hover { background: var(--blue); }
.principle { background: #171b23; }
.principle h3 { color: #f3f4f7; }
.origin-card { background: #171b23; }
.origin-card--dark { background: #07080b; }
.company-statement { color: #eef1f6; }
.company-statement .statement__year { color: rgba(100,128,255,.13); }
.company-statement blockquote { color: #6680ff; }
.company-statement .lead { color: #b5bcc8; }
.company-statement__claim { margin-top: 24px; color: #f4f5f7; }
.contact-list__row { background: #171b23; }
.contact-form { background: #151922; }
.form-field input, .form-field select, .form-field textarea { border-color: var(--line); color: #f0f2f6; background: #0d1016; }
.form-field select option { color: #f0f2f6; background: #11141a; }
.form-status { color: #dfe4ff; background: rgba(35,74,255,.2); }
.footer { background: #050609; }
.footer__brand img { padding: 0; background: transparent; filter: brightness(1.7) saturate(1.2); }
.consultation-panel { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(300px,.8fr); gap: clamp(45px,8vw,120px); align-items: center; }
.consultation-price { position: relative; display: grid; overflow: hidden; padding: clamp(32px,4vw,50px); border: 1px solid rgba(112,136,255,.35); border-radius: 26px; background: linear-gradient(145deg, #19223d, #10141d); box-shadow: 0 24px 70px rgba(0,0,0,.28); }
.consultation-price::after { position: absolute; top: -50px; right: -60px; width: 170px; height: 170px; border: 1px solid rgba(89,116,255,.3); border-radius: 50%; content: ""; }
.consultation-price span { color: #9da8bb; font-size: .68rem; font-weight: 720; letter-spacing: .12em; text-transform: uppercase; }
.consultation-price strong { margin-top: 18px; color: #f4f5f8; font-family: var(--serif); font-size: clamp(3.8rem,7vw,6.6rem); font-weight: 400; line-height: .9; letter-spacing: -.07em; }
.consultation-price small { margin: 12px 0 28px; color: #b8bfcc; font-size: .82rem; }
.consultation-price .button { justify-self: start; }
.contact-handoff { display: grid; gap: 4px; margin: 24px 0 10px; padding: 16px 18px; border: 1px solid rgba(91,118,255,.35); border-radius: 14px; background: rgba(35,74,255,.1); }
.contact-handoff strong { color: #f1f3f7; font-size: .8rem; }
.contact-handoff span { color: #aab2c0; font-size: .72rem; }

.support-chat { position: fixed; right: 24px; bottom: 22px; z-index: 420; font-family: var(--sans); }
.support-chat__launcher { display: flex; min-height: 54px; align-items: center; gap: 10px; padding: 0 18px; border: 1px solid rgba(255,255,255,.24); border-radius: 100px; color: #fff; background: rgba(16,20,29,.9); box-shadow: 0 18px 50px rgba(0,0,0,.38); backdrop-filter: blur(16px); cursor: pointer; transition: transform .35s var(--ease), background .35s ease; }
.support-chat__launcher:hover { background: var(--blue); transform: translateY(-3px); }
.support-chat__launcher span:nth-child(2) { font-size: .78rem; font-weight: 720; }
.support-chat__launcher strong { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #fff; background: var(--blue); font-size: .6rem; letter-spacing: .04em; }
.support-chat__pulse { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #6effb1; box-shadow: 0 0 0 5px rgba(110,255,177,.1); }
.support-chat__panel { position: absolute; right: 0; bottom: 68px; display: flex; width: min(410px, calc(100vw - 28px)); height: min(650px, calc(100vh - 110px)); overflow: hidden; border: 1px solid rgba(255,255,255,.15); border-radius: 28px; flex-direction: column; color: #eef0f4; background: rgba(12,15,21,.97); box-shadow: 0 36px 100px rgba(0,0,0,.58); backdrop-filter: blur(24px); opacity: 0; pointer-events: none; transform: translateY(20px) scale(.97); transform-origin: bottom right; transition: opacity .35s ease, transform .45s var(--ease); }
.support-chat__panel.open { opacity: 1; pointer-events: auto; transform: none; }
.support-chat__head { display: flex; min-height: 76px; align-items: center; justify-content: space-between; padding: 15px 17px 15px 20px; border-bottom: 1px solid var(--line); background: linear-gradient(110deg, rgba(35,74,255,.2), transparent); }
.support-chat__head > div { display: flex; align-items: center; gap: 11px; }
.support-chat__head strong, .support-chat__head small { display: block; }
.support-chat__head strong { font-size: .88rem; }.support-chat__head small { margin-top: 2px; color: #9299a7; font-size: .65rem; }
.support-chat__online { width: 10px; height: 10px; border-radius: 50%; background: #6effb1; box-shadow: 0 0 18px #6effb1; }
.support-chat__head button { width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; color: #fff; background: transparent; font-size: 1.25rem; cursor: pointer; }
.support-chat__messages { display: flex; flex: 1; overflow-y: auto; flex-direction: column; gap: 12px; padding: 20px; scrollbar-width: thin; }
.support-chat__message { max-width: 87%; }
.support-chat__message p { margin: 0; padding: 12px 14px; border-radius: 17px; white-space: pre-wrap; font-size: .82rem; line-height: 1.5; }
.support-chat__message small { display: block; margin-top: 5px; color: #727a89; font-size: .59rem; }
.support-chat__message--assistant { align-self: flex-start; }.support-chat__message--assistant p { border: 1px solid var(--line); border-bottom-left-radius: 5px; background: #191d26; }
.support-chat__message--user { align-self: flex-end; text-align: right; }.support-chat__message--user p { border-bottom-right-radius: 5px; color: #fff; background: var(--blue); text-align: left; }.support-chat__message--user small { text-align: right; }
.support-chat__suggestions { display: flex; overflow-x: auto; gap: 7px; padding: 0 17px 11px; }
.support-chat__suggestions button { flex: 0 0 auto; padding: 8px 11px; border: 1px solid var(--line); border-radius: 100px; color: #bac0cc; background: transparent; font-size: .65rem; cursor: pointer; }.support-chat__suggestions button:hover { border-color: var(--blue); color: #fff; }
.support-chat__identity { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; padding: 0 17px 8px; }
.support-chat__identity input { min-width: 0; height: 35px; padding: 0 10px; border: 1px solid var(--line); border-radius: 9px; outline: 0; color: #e8ebf1; background: #0a0c11; font-size: .66rem; }.support-chat__identity input:focus { border-color: var(--blue); }
.support-chat__form { display: grid; grid-template-columns: 1fr 44px; gap: 8px; padding: 0 17px 10px; }
.support-chat__form textarea { max-height: 100px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 14px; outline: 0; resize: none; color: #f0f2f6; background: #0a0c11; font-size: .8rem; }.support-chat__form textarea:focus { border-color: var(--blue); }
.support-chat__form button { width: 44px; height: 44px; align-self: end; border: 0; border-radius: 50%; color: #fff; background: var(--blue); font-size: 1.1rem; cursor: pointer; }.support-chat__form.is-sending button { animation: chat-pulse 1s ease infinite; }
@keyframes chat-pulse { 50% { opacity: .45; transform: scale(.93); } }
.support-chat__foot { min-height: 27px; padding: 0 18px 10px; color: #777f8e; font-size: .58rem; }

@media (max-width:1120px) {
  .nav { background: rgba(9,11,15,.985); }
  .nav a { color: #f0f1f4; }
  .nav a:hover, .nav a.active { color: #6680ff; background: transparent; }
  .solution-card, .solution-card--reverse { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); }
}

@media (max-width:900px) {
  .solution-card, .solution-card--reverse { grid-template-columns: 1fr; }
  .solution-card--reverse .solution-card__media { order: 0; }
  .solution-card__media { min-height: 430px; }
  .solution-card__copy { padding: 55px 40px; }
  .consultation-panel { grid-template-columns: 1fr; }
}

@media (max-width:620px) {
  .brand { padding: 6px 9px; }
  .brand img { width: 132px; height: 35px; }
  .solution-showcase { padding-top: 65px; padding-bottom: 65px; }
  .solution-card { min-height: 0; border-radius: 22px; }
  .solution-card__media { min-height: 330px; padding: 55px 28px 35px; }
  .solution-card__meta { top: 17px; right: 17px; left: 17px; }
  .solution-card__copy { padding: 38px 24px 42px; }
  .solution-card__copy .button-row { align-items: stretch; flex-direction: column; }
  .solution-card__copy .button, .solution-card__copy .text-link { justify-content: center; }
  .consultation-price { padding: 30px 24px; }
  .support-chat { right: 14px; bottom: 14px; }
  .support-chat__launcher { min-height: 50px; }
  .support-chat__panel { position: fixed; inset: 10px; width: auto; height: auto; border-radius: 24px; transform-origin: bottom center; }
  .support-chat__identity { grid-template-columns: 1fr; }
}

/* BERNA assistant: cohesive layout without horizontal overflow */
.support-chat, .support-chat * { box-sizing: border-box; }
.support-chat__panel { width: min(460px, calc(100vw - 28px)); height: min(720px, calc(100vh - 105px)); }
.support-chat__head { flex: 0 0 auto; gap: 12px; }
.support-chat__identity-title { display: flex; min-width: 0; align-items: center; gap: 11px; }
.support-chat__identity-title > div { min-width: 0; }
.support-chat__identity-title small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.support-chat__head-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; }
.support-chat__head .support-chat__reset { width: auto; height: 36px; padding: 0 12px; border-radius: 100px; color: #c4cad5; font-size: .64rem; font-weight: 700; }
.support-chat__head .support-chat__reset:hover { border-color: #6680ff; color: #fff; background: rgba(35,74,255,.16); }
.support-chat__head .support-chat__close { width: 38px; height: 38px; flex: 0 0 38px; }
.support-chat__messages { min-width: 0; min-height: 110px; overflow-y: auto; overflow-x: visible; overscroll-behavior: contain; scrollbar-color: rgba(123,137,163,.55) transparent; }
.support-chat__message { min-width: 0; max-width: min(88%, 360px); }
.support-chat__message p { max-width: 100%; overflow-wrap: anywhere; word-break: normal; }
.support-chat__controls { display: grid; min-width: 0; max-height: 230px; overflow-y: auto; gap: 9px; padding: 11px 17px; border-top: 1px solid rgba(255,255,255,.08); background: rgba(8,10,14,.6); scrollbar-width: thin; }
.support-chat__primary-actions, .support-chat__options { display: grid; min-width: 0; grid-template-columns: 1fr 1fr; gap: 7px; }
.support-chat__primary-actions .support-chat__option--primary { grid-column: 1 / -1; }
.support-chat__option { width: 100%; min-width: 0; min-height: 38px; padding: 8px 10px; border: 1px solid rgba(255,255,255,.12); border-radius: 11px; color: #c3c9d4; background: #12161e; font-size: .66rem; line-height: 1.3; text-align: left; overflow-wrap: anywhere; cursor: pointer; transition: border-color .2s ease, color .2s ease, background .2s ease; }
.support-chat__option:hover, .support-chat__option:focus-visible { border-color: #5875ff; color: #fff; background: rgba(35,74,255,.13); outline: none; }
.support-chat__option--primary { color: #fff; background: linear-gradient(135deg, #234aff, #1837c9); }
.support-chat__question-select { width: 100%; min-width: 0; height: 39px; padding: 0 34px 0 11px; border: 1px solid rgba(255,255,255,.12); border-radius: 11px; outline: 0; color: #aeb5c1; background: #0c0f15; font-size: .67rem; text-overflow: ellipsis; }
.support-chat__question-select:focus { border-color: #5875ff; }
.support-chat__question-select option { color: #eef0f4; background: #11151d; }
.support-chat__progress { height: 3px; overflow: hidden; border-radius: 10px; background: rgba(255,255,255,.08); }
.support-chat__progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#234aff,#6b83ff); transition: width .35s ease; }
.support-chat__handoff { display: grid; min-width: 0; gap: 5px; padding: 13px; border: 1px solid rgba(93,119,255,.3); border-radius: 14px; background: rgba(35,74,255,.09); }
.support-chat__handoff strong { font-size: .77rem; }
.support-chat__handoff span { color: #9ca5b4; font-size: .65rem; }
.support-chat__contact { min-height: 40px; margin-top: 6px; border: 0; border-radius: 100px; color: #fff; background: #234aff; font-size: .68rem; font-weight: 720; cursor: pointer; }
.support-chat__identity, .support-chat__form, .support-chat__foot { min-width: 0; flex: 0 0 auto; }
.support-chat__identity input, .support-chat__form textarea { width: 100%; min-width: 0; }
.support-chat__form { grid-template-columns: minmax(0,1fr) 44px; }
.support-chat__form textarea { overflow-wrap: anywhere; }
.support-chat__panel[aria-busy="true"] .support-chat__controls { opacity: .62; }
.support-chat__panel[aria-busy="true"] .support-chat__reset { pointer-events: none; }

@media (max-width:620px) {
  .support-chat__panel { inset: 8px; width: auto; height: auto; max-width: none; border-radius: 20px; }
  .support-chat__head { min-height: 70px; padding: 12px 12px 12px 15px; }
  .support-chat__head .support-chat__reset { padding: 0 9px; font-size: .6rem; }
  .support-chat__messages { padding: 15px; }
  .support-chat__controls { max-height: 210px; padding: 10px 13px; }
  .support-chat__identity { padding-right: 13px; padding-left: 13px; }
  .support-chat__form { padding-right: 13px; padding-left: 13px; }
  .support-chat__message { max-width: 92%; }
}

@media (max-width:390px) {
  .support-chat__identity-title small { max-width: 138px; }
  .support-chat__primary-actions, .support-chat__options { grid-template-columns: 1fr; }
  .support-chat__primary-actions .support-chat__option--primary { grid-column: auto; }
}
