/* =========================
   CONTACTS — фирменный стиль
========================= */
:root{
    --accent:#3972FE;
    --ink:#0b1420;
    --hero-bg:#EDFAFF;
    --hero-soft:#C9DDFF;
    --surface:#FFFFFF;
    --border:#E6EDFF;
    --shadow:0 18px 48px rgba(8,21,65,.08);
    --shadow-strong:0 26px 60px rgba(36,61,126,.18);
    --r:22px;
  }
  
  /* контейнер */
  :root{ --container-max: 1100px; --page-pad: clamp(16px,4vw,64px); }
  .container{ width:min(var(--container-max), 100% - var(--page-pad)*2); margin-inline:auto; }
  .is-contacts, .is-contacts *{ font-family: Inter, system-ui, sans-serif; }
  
  /* кнопки */
  .btn{ display:inline-flex; align-items:center; justify-content:center; height:48px; padding:0 22px; border-radius:12px; border:1px solid transparent; text-decoration:none; font-weight:600; cursor:pointer }
  .btn-lg{ height:52px } .btn-xl{ height:56px; font-size:18px; padding-inline:28px }
  .btn-primary{ background:var(--accent); color:#fff; box-shadow:0 16px 36px rgba(57,114,254,.28) }
  .btn-primary:hover{ transform:translateY(-1px) }
  .btn-outline{ background:#fff; color:var(--accent); border:1px solid var(--accent) }
  .btn-outline:hover{ background:#f4f7ff }
  
  /* ===== HERO ===== */
  .ct-hero{
    position:relative; isolation:isolate;
    background:var(--hero-bg);
    padding: clamp(64px, 8vw, 100px) 0 clamp(36px, 6vw, 80px);
  }
  .ct-hero__inner{ text-align:center }
  .ct-hero__title{
    font-family:"DM Sans", Inter, system-ui, sans-serif;
    font-weight:800; letter-spacing:-.02em;
    font-size: clamp(28px, 4vw, 48px); line-height:1.08;
    margin:0 0 8px; color:var(--ink);
  }
  .ct-hero__lead{ color:#2d3845; margin:0 0 14px }
  .ct-hero__actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap }
  
  .ct-hero__decor{ position:absolute; inset:0; pointer-events:none; z-index:0 }
  .ct-blob{ position:absolute; border-radius:999px; filter:blur(10px) }
  .ct-blob--lt{ left:-10%; top:-8%; width:420px; height:420px; background: radial-gradient(65% 65% at 30% 30%, rgba(201,221,255,.95), rgba(201,221,255,0)) }
  .ct-ring{ position:absolute; border-radius:50%; border:1px solid rgba(57,114,254,.18) }
  .ct-ring--tr{ right:-6%; top:-10%; width:520px; height:520px }
  .ct-hero__fade{
    position:absolute; left:50%; bottom:-1px; transform:translateX(-50%);
    width: calc(100vw - (100vw - 100%)); height:200px;
    background: linear-gradient(180deg, rgba(237,250,255,0) 0%, rgba(237,250,255,0) 35%, rgba(255,255,255,.65) 70%, #fff 100%);
    pointer-events:none; z-index:1;
  }
  @supports (width: 100dvw){ .ct-hero__fade{ width:100dvw } }
  
  /* ===== CONTACTS ===== */
  .ct-contact{ background:#fff; padding: clamp(40px,6vw,80px) 0 }
  .mb-4{ margin-bottom: 16px }
  
  /* сетка */
  .ct-grid{ display:grid; grid-template-columns: 1fr 1.2fr; gap:16px; align-items:start }
  @media (max-width: 980px){ .ct-grid{ grid-template-columns:1fr } }
  
  /* карточки */
  .ct-card{
    background:#fff; border:1px solid var(--border); border-radius:var(--r);
    box-shadow: var(--shadow); padding: clamp(18px, 2.6vw, 24px);
  }
  
  /* инфо-блок */
  .ct-info__item{ display:flex; align-items:flex-start; gap:12px; padding:10px 0 }
  .ct-info__item + .ct-info__item{ border-top:1px solid #eef2ff }
  .ct-info h3{ margin:0 0 4px; font-size:16px; font-weight:800; color:#0f172a }
  .ct-info p, .ct-info a{ color:#223046; text-decoration:none }
  .ct-info a:hover{ text-decoration:underline; }
  
  .ct-badges{ list-style:none; padding:0; margin:10px 0 0; display:flex; flex-wrap:wrap; gap:8px }
  .ct-badges li{
    background:rgba(57,114,254,.15); color:var(--accent); border:1px solid rgba(57,114,254,.25);
    font-weight:700; font-size:12px; padding:6px 10px; border-radius:999px;
  }
  
  /* иконки через mask */
  .ct-ico{ width:42px; height:42px; border-radius:12px; background:var(--accent); box-shadow:0 14px 36px rgba(57,114,254,.35); flex:0 0 42px; position:relative }
  .ct-ico::after{
    content:""; position:absolute; inset:0; background:#fff; -webkit-mask-size:60% 60%; -webkit-mask-repeat:no-repeat; -webkit-mask-position:center;
            mask-size:60% 60%; mask-repeat:no-repeat; mask-position:center;
  }
  .ct-ico--map::after { -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2C8.1 2 5 5.1 5 9c0 5.2 7 13 7 13s7-7.8 7-13c0-3.9-3.1-7-7-7zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5z'/></svg>"); }
  .ct-ico--phone::after{ -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8c1.5 3 3.6 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.6.6 4 .6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.3 21 3 13.7 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.4.2 2.8.6 4 .1.4 0 .8-.3 1.1L6.6 10.8z'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.6 10.8c1.5 3 3.6 5.1 6.6 6.6l2.2-2.2c.3-.3.7-.4 1.1-.3 1.2.4 2.6.6 4 .6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.3 21 3 13.7 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.4.2 2.8.6 4 .1.4 0 .8-.3 1.1L6.6 10.8z'/></svg>"); }
  .ct-ico--mail::after { -webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm8 7 8-5H4l8 5zm0 2-8-5v10h16V8l-8 5z'/></svg>"); mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm8 7 8-5H4l8 5zm0 2-8-5v10h16V8l-8 5z'/></svg>"); }
  
  /* форма */
  .ct-form__title{ margin:0 0 10px; font-size:18px; font-weight:800; color:#0f172a }
  .ct-row{ display:grid; grid-template-columns:1fr 1fr; gap:12px }
  @media (max-width: 640px){ .ct-row{ grid-template-columns:1fr } }
  
  .ct-input{
    width:100%; border:1px solid #e5e7eb; border-radius:14px; padding:12px 14px;
    transition: border-color .15s ease, box-shadow .15s ease; color:var(--ink); background:#fff;
  }
  .ct-input:focus{
    outline:0; border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(57,114,254,.16);
  }
  
  .ct-form__state{ display:none; margin:8px 0; color:#6a7a91 }
  .php-email-form .loading{ display:none }
  .php-email-form .error-message{ color:#ff4d4d; display:none }
  .php-email-form .sent-message{ color:#26C281; display:none }
  
  /* утилиты */
  .sr-only{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0 }