/*
 * ИИС-Юг — site styles.
 * Transferred verbatim from the original static pages: the shared base
 * rules and the navy redesign from index.html, then the page-specific
 * blocks each inner page carried, then the AIRY V2 / FIXES V3 override
 * layers - in the same order the browser saw them on the old site.
 */

:root{
  --ink:#002442;
  --deep:#002442;
  --deep2:#001B33;
  --cream:#F2F6FA;
  --cream2:#E3EAF2;
  --paper:#FFFFFF;
  --lime:#FFFFFF;
  --line:rgba(0,36,66,.12);
  --line-d:rgba(255,255,255,.16);
  --muted:#5A6B7D;
  --muted-d:rgba(255,255,255,.62);
  --r:18px;
  --maxw:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.sec{padding:96px 0}
.sec-sm{padding:64px 0}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.02em;line-height:1.14}
h1{font-size:clamp(36px,5.4vw,64px)}
h2{font-size:clamp(27px,3.4vw,40px)}
h3{font-size:clamp(19px,2vw,24px);letter-spacing:-.01em}
p{margin:0 0 18px}
.lead{font-size:17px;color:var(--muted)}
.eyebrow{
  font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  font-weight:700;color:var(--muted);margin-bottom:14px;
}
.center{text-align:center}
.center .eyebrow{color:var(--muted)}

/* ---------- top bar ---------- */
.ticker{
  background:var(--ink);color:var(--cream);font-size:12.5px;
  text-align:center;padding:9px 16px;letter-spacing:.01em;
}
.ticker b{color:var(--lime);font-weight:700}
header{
  position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;gap:28px;height:66px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em;font-size:18px}
.logo .mark{width:26px;height:26px;flex:0 0 26px}
.nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0;font-size:14.5px;font-weight:600}
.nav ul a{color:var(--muted)}
.nav ul a:hover{color:var(--ink)}
.nav .right{margin-left:auto;display:flex;align-items:center;gap:16px}
.tel{font-weight:700;font-size:15px;white-space:nowrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--ink);color:var(--cream);border-radius:10px;
  padding:13px 22px;font-weight:700;font-size:14.5px;border:1px solid var(--ink);
  transition:.16s;white-space:nowrap;cursor:pointer;
}
.btn:hover{background:#001629}
.btn-lime{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.btn-lime:hover{background:#E3EAF2}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{background:var(--cream)}
.btn-lg{padding:15px 28px;font-size:15.5px}
.nav-toggle{display:none}

/* ---------- hero ---------- */
.hero{background:var(--paper);padding:60px 0 76px}
.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:52px;align-items:stretch}
.hero-left{display:flex;flex-direction:column;justify-content:center}
.badge{
  display:inline-flex;align-items:center;gap:9px;align-self:flex-start;
  background:var(--cream);border:1px solid var(--line);border-radius:100px;
  padding:7px 15px 7px 11px;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:22px;
}
.badge i{width:7px;height:7px;border-radius:50%;background:var(--ink);display:block}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 22px}
.chips span{
  border:1px solid var(--line);border-radius:100px;padding:7px 14px;
  font-size:13.5px;font-weight:700;color:var(--ink);background:#fff;
}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0 14px;margin-top:32px;border-top:1px solid var(--line);padding-top:22px}
.hero-stats div{padding-right:10px}
.hero-stats b{display:block;font-size:19px;font-weight:800;letter-spacing:-.02em;line-height:1.1;margin-bottom:6px}
.hero-stats small{font-size:12.5px;color:var(--muted);line-height:1.35;display:block;font-weight:600}
.hero-note{display:flex;align-items:center;gap:10px;margin-top:20px;font-size:13.5px;color:var(--muted);font-weight:600}
.hero h1{margin-bottom:18px}
.hero .sub{
  font-size:15px;font-weight:700;letter-spacing:.02em;color:var(--muted);
  margin-bottom:20px;
}
.hero .sub span{color:var(--ink)}
.hero p{max-width:520px;color:var(--muted);font-size:16.5px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.hero-art{position:relative;display:flex;min-height:520px}
.floatcard{
  position:absolute;right:24px;bottom:24px;width:278px;background:#fff;
  border-radius:12px;box-shadow:0 22px 50px rgba(0,36,66,.28);padding:18px;
}
.hero-tag{
  position:absolute;left:22px;top:22px;background:rgba(0,36,66,.9);color:var(--cream);
  border-radius:100px;padding:9px 16px;font-size:12.5px;font-weight:700;letter-spacing:.02em;
}
.floatcard .fc-logo{display:flex;align-items:center;gap:7px;font-weight:800;font-size:13px;margin-bottom:12px}
.fc-list{list-style:none;margin:0;padding:0}
.fc-list li{position:relative;padding:7px 0 7px 24px;font-size:12.5px;font-weight:600;line-height:1.35;border-top:1px solid var(--line)}
.fc-list li:first-child{border-top:none}
.fc-list li::before{
  content:"";position:absolute;left:0;top:10px;width:14px;height:14px;border-radius:50%;
  background:var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 5.2l2.4 2.4L8.5 3'/%3E%3C/svg%3E") center/9px no-repeat;
}
.fc-foot{margin-top:12px;background:var(--cream);border-radius:7px;padding:9px 11px;font-size:11.5px;font-weight:700;color:var(--ink);line-height:1.35}

/* ---------- geo strip ---------- */
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0}
.strip-in{display:flex;flex-wrap:wrap;gap:14px 34px;align-items:center;justify-content:center}
.strip-in span{
  font-weight:700;font-size:15px;color:var(--muted);display:flex;align-items:center;gap:9px;
}
.dot{width:6px;height:6px;border-radius:50%;background:var(--ink);display:inline-block}

/* ---------- text section ---------- */
.two{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.narrow{max-width:760px;margin:0 auto}

/* ---------- bento ---------- */
.bento{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:44px}
.card{border-radius:var(--r);overflow:hidden;position:relative;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:flex-start;min-height:230px}
.card .pad{padding:28px}
.card .lbl{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;opacity:.7;margin-bottom:8px}
.card p{font-size:14.5px;margin:10px 0 0;opacity:.82;line-height:1.5}
.c-cream2{background:var(--cream)}
.c-big .art{flex:1;display:flex;align-items:center;justify-content:center;padding:26px 26px 0}
.c-dark{background:var(--deep);color:var(--cream)}
.c-dark .lbl{opacity:.6}
.c-cream{background:var(--cream2)}

.c-split{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.c-split .art{display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(0,0,0,.05)}

/* ---------- dark section ---------- */
.dark{background:var(--deep2);color:var(--cream)}
.dark .lead,.dark .eyebrow{color:var(--muted-d)}
.dark h2{color:var(--cream)}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}
.tile{background:rgba(255,255,255,.05);border:1px solid var(--line-d);border-radius:var(--r);padding:28px}
.tile h3{margin-bottom:10px;font-size:20px}
.tile p{font-size:14.5px;color:var(--muted-d);margin:0}
.tile .ic{margin-bottom:18px}

/* ---------- feature list ---------- */
.feat{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:46px;border-top:1px solid var(--line-d)}
.feat > div{padding:26px 22px 0;border-right:1px solid var(--line-d)}
.feat > div:last-child{border-right:none}
.feat h4{font-size:15.5px;margin-bottom:10px}
.feat p{font-size:13.5px;color:var(--muted-d);margin:0}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:44px}
.step{background:var(--cream);border-radius:var(--r);padding:24px}
.step .n{
  width:30px;height:30px;border-radius:8px;background:var(--ink);color:var(--lime);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;margin-bottom:16px;
}
.step h4{font-size:15.5px;margin-bottom:10px;min-height:38px}
.step p{font-size:13.5px;color:var(--muted);margin:0}

/* ---------- output block ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:stretch}
.doc{background:var(--cream);border-radius:var(--r);padding:34px;display:flex;justify-content:center}
.checks{list-style:none;padding:0;margin:22px 0 0}
.checks li{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-top:1px solid var(--line);font-size:15px}
.checks li:last-child{border-bottom:1px solid var(--line)}
.checks .tick{
  flex:0 0 20px;width:20px;height:20px;border-radius:50%;background:var(--ink);
  display:flex;align-items:center;justify-content:center;margin-top:2px;
}

/* ---------- reviews ---------- */
.revs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}
.rev-top{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.rev{background:var(--cream);border-radius:var(--r);padding:26px;display:flex;flex-direction:column;min-height:210px}
.rev .q{font-size:15px;line-height:1.55;flex:1}
.rev .who{display:flex;align-items:center;gap:12px;margin-top:20px}
.rev .av{width:36px;height:36px;border-radius:50%;background:var(--deep);color:var(--lime);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px}
.rev .who b{display:block;font-size:13.5px}
.rev .who small{color:var(--muted);font-size:12.5px}


/* ---------- cta ---------- */
.cta{background:var(--deep2);color:var(--cream);border-radius:18px;padding:48px;display:grid;grid-template-columns:1.05fr 420px;gap:44px;align-items:start}
.cta h2{color:var(--cream);margin-bottom:12px}
.cta p{color:var(--muted-d);margin:0;max-width:560px;font-size:15.5px}
.cta-actions{display:flex;gap:12px;flex-wrap:wrap}

.cta-photo{position:relative;border-radius:14px;overflow:hidden;margin-top:30px;height:270px}
.cta-photo img{width:100%;height:100%;object-fit:cover}
.cta-cap{position:absolute;left:18px;bottom:16px;right:18px;background:rgba(0,36,66,.86);color:var(--cream);border-radius:9px;padding:10px 14px;font-size:13px;font-weight:600}

/* ---------- form ---------- */
.form{background:#fff;border-radius:14px;padding:26px;color:var(--ink)}
.form h3{font-size:19px;margin-bottom:6px}
.form .fnote{font-size:13px;color:var(--muted);margin-bottom:18px}
.field{margin-bottom:12px}
.field label{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:6px}
.field input,.field textarea,.field select{
  width:100%;border:1px solid var(--line);border-radius:8px;padding:11px 13px;
  font:inherit;font-size:14.5px;color:var(--ink);background:#fff;
}
.field textarea{min-height:92px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--ink)}
.agree{display:flex;gap:9px;align-items:flex-start;font-size:12px;color:var(--muted);margin:12px 0 16px;line-height:1.45}
.agree input{margin-top:2px;accent-color:#002442;flex:0 0 auto}
.agree a{text-decoration:underline}
.form .btn{width:100%}
.form-msg{display:none;margin-top:12px;padding:12px 14px;border-radius:8px;font-size:14px;font-weight:600}
.form-msg.ok{display:block;background:#E6F0FA;color:#002442}
.form-msg.err{display:block;background:#FBE9E7;color:#8A2C1E}

/* ---------- footer ---------- */
footer{background:var(--ink);color:var(--cream);padding:64px 0 28px;margin-top:0}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:32px}
footer h5{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-d);margin:0 0 16px;font-weight:700}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:10px;font-size:14.5px;color:rgba(255,255,255,.85)}
footer a:hover{color:var(--lime)}
.f-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;margin-bottom:14px}
.f-note{font-size:13.5px;color:var(--muted-d);max-width:280px}
.f-bottom{border-top:1px solid var(--line-d);margin-top:44px;padding-top:20px;display:flex;justify-content:space-between;gap:16px;font-size:13px;color:var(--muted-d);flex-wrap:wrap}

/* ---------- photos ---------- */
.ph{display:block;width:100%;height:100%;object-fit:cover;background:var(--cream2)}
.photo{border-radius:var(--r);overflow:hidden;background:var(--cream2);position:relative}
.photo img{display:block;width:100%;height:100%;object-fit:cover}
.hero-photo{border-radius:var(--r);overflow:hidden;width:100%;position:relative;background:var(--cream2)}
.hero-photo img{width:100%;height:100%;min-height:520px;object-fit:cover}
.hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,36,66,.45) 0%,rgba(0,36,66,0) 38%,rgba(0,36,66,.28) 100%)}
.card-photo{height:210px;overflow:hidden;background:var(--cream2);flex:0 0 210px}
.card-photo img{width:100%;height:100%;object-fit:cover}

.tile-photo{height:150px;border-radius:10px;overflow:hidden;margin:-6px 0 20px;background:rgba(255,255,255,.08)}
.tile-photo img{width:100%;height:100%;object-fit:cover;opacity:.92}
.band{border-radius:18px;overflow:hidden;height:280px;margin-top:44px;position:relative;background:var(--cream2)}
.band img{width:100%;height:100%;object-fit:cover}
.band .cap{
  position:absolute;left:26px;bottom:22px;background:rgba(0,36,66,.86);color:var(--cream);
  padding:12px 18px;border-radius:10px;font-size:14px;font-weight:600;backdrop-filter:blur(4px);max-width:80%;
}
.strip-photo{height:340px;border-radius:18px;overflow:hidden;position:relative;background:var(--cream2)}
.strip-photo img{width:100%;height:100%;object-fit:cover}
.cta{position:relative;overflow:hidden}
.cta-contacts{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}


/* ---------- responsive ---------- */
@media (max-width:1000px){
  .hero-grid,.two,.split{grid-template-columns:1fr;gap:34px}
  .bento{grid-template-columns:1fr}

  .cards3,.revs{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .feat{grid-template-columns:1fr 1fr}
  .feat > div{border-bottom:1px solid var(--line-d);padding-bottom:22px}
  .feat > div:nth-child(2n){border-right:none}
  .cta{grid-template-columns:1fr;padding:38px}
  .cta-photo{height:200px}
  .revs{grid-template-columns:1fr}

  .band,.strip-photo{height:220px!important}
  .photo{height:280px!important}
  .hero-photo,.hero-photo img{min-height:320px}
  .hero-art{min-height:auto}
  .hero-stats{grid-template-columns:1fr 1fr;gap:18px 0}
  .floatcard{position:static;width:100%;margin-top:14px;box-shadow:none;border:1px solid var(--line)}
  .hero-tag{display:none}
  .f-grid{grid-template-columns:1fr 1fr}
  .nav ul,.tel{display:none}
  .sec{padding:68px 0}
  .floatcard{position:static;width:100%;max-width:280px}
}
@media (max-width:560px){
  .steps{grid-template-columns:1fr}
  .step h4{min-height:0}
  .f-grid{grid-template-columns:1fr}
  .hero-art{padding:22px;min-height:300px}
}

/* ---------- redesign: navy/white ---------- */
.hero{padding:28px 0 56px}
.hero-cover{position:relative;border-radius:24px;overflow:hidden;background:var(--ink);min-height:560px;display:flex}
.hero-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(0,36,66,.94) 0%,rgba(0,36,66,.80) 42%,rgba(0,36,66,.45) 72%,rgba(0,36,66,.62) 100%)}
.hero-cover-in{position:relative;z-index:2;padding:56px;max-width:760px;align-self:center;color:#fff}
.hero-cover-in h1{color:#fff;margin-bottom:18px}
.hero-cover-sub{color:#fff;font-weight:700;letter-spacing:.02em;font-size:15px;margin:0 0 6px;text-shadow:0 1px 12px rgba(0,36,66,.6)}
.badge-on-dark{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff}
.badge-on-dark i{background:#fff}
.btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn-outline-light:hover{background:rgba(255,255,255,.12)}
.hero-cover-card{position:absolute;right:28px;bottom:28px;z-index:3;width:300px;background:#fff;border-radius:16px;padding:20px;box-shadow:0 24px 60px rgba(0,36,66,.35)}
.hero .hero-cover-sub{color:#fff;max-width:none}
.hero .hero-lead{max-width:900px;color:var(--muted);font-size:17px;margin:36px 0 0}
.hero{padding-bottom:40px}
@media (max-width:1000px){
  .hero-cover{min-height:auto;flex-direction:column}
  .hero-cover-in{padding:36px 24px 24px;max-width:none}
  .hero-cover-card{position:static;width:auto;margin:0 24px 24px;z-index:3;box-shadow:none;border:1px solid var(--line)}
  .hero-cover>img{position:absolute}
}

/* ---------- about.html ---------- */
.page-hero{padding:64px 0 0}
.page-hero .badge{margin-bottom:20px}
.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.about-photo{border-radius:var(--r);overflow:hidden;height:420px;background:var(--cream2)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.req{display:grid;grid-template-columns:repeat(2,1fr);gap:0 44px;margin-top:8px}
.req div{border-top:1px solid var(--line);padding:16px 0}
.req small{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.req b{font-size:16px;font-weight:700;line-height:1.4}
.vals{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:44px}
.val{background:var(--cream);border-radius:var(--r);padding:28px}
.val .n{width:32px;height:32px;border-radius:9px;background:var(--ink);color:var(--lime);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;margin-bottom:16px}
.val h3{font-size:19px;margin-bottom:10px}
.val p{font-size:14.5px;color:var(--muted);margin:0}
.dirs{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px}
.dir{border:1px solid var(--line-d);border-radius:var(--r);padding:24px;background:rgba(255,255,255,.06)}
.dir h4{font-size:16px;margin-bottom:10px}
.dir p{font-size:13.5px;color:var(--muted-d);margin:0 0 14px}
.dir a{font-size:13.5px;font-weight:700;color:var(--lime)}
@media (max-width:1000px){
  .about-grid{grid-template-columns:1fr;gap:32px}
  .about-photo{height:280px}
  .req,.vals,.dirs{grid-template-columns:1fr}
  .dirs{gap:12px}
}

/* ---------- services.html ---------- */
.srv{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.srv-photo{border-radius:var(--r);overflow:hidden;height:460px;background:var(--cream2)}
.srv-photo img{width:100%;height:100%;object-fit:cover}
.srv-list{list-style:none;margin:22px 0 0;padding:0}
.srv-list li{position:relative;padding:11px 0 11px 30px;border-top:1px solid var(--line);font-size:15px}
.dark .srv-list li{border-color:var(--line-d);color:var(--muted-d)}
.srv-list li:last-child{border-bottom:1px solid var(--line)}
.dark .srv-list li:last-child{border-bottom-color:var(--line-d)}
.srv-list li::before{
  content:"";position:absolute;left:0;top:15px;width:18px;height:18px;border-radius:50%;background:var(--ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 5.2l2.4 2.4L8.5 3'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:center;background-size:11px;
}
.nav-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px}
.nav-card{background:var(--cream);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:10px;transition:.16s}
.nav-card:hover{background:var(--cream2)}
.nav-card b{font-size:17px;letter-spacing:-.01em}
.nav-card span{font-size:13.5px;color:var(--muted);line-height:1.45}
.nav-card i{font-style:normal;font-size:13px;font-weight:700;margin-top:auto;padding-top:8px}
@media (max-width:1000px){
  .srv{grid-template-columns:1fr;gap:28px}
  .srv-photo{height:260px;order:-1}
  .nav-cards{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){.nav-cards{grid-template-columns:1fr}}

/* ---------- contacts.html ---------- */
.cnt-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:44px}
.cnt{background:var(--cream);border-radius:var(--r);padding:28px;display:flex;flex-direction:column}
.cnt .ic{width:38px;height:38px;border-radius:11px;background:var(--ink);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.cnt small{display:block;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.cnt b{font-size:19px;font-weight:800;letter-spacing:-.01em;line-height:1.3}
.cnt p{font-size:13.5px;color:var(--muted);margin:10px 0 0}
.map{border-radius:18px;overflow:hidden;height:440px;background:var(--cream2);margin-top:16px;border:1px solid var(--line)}
.map iframe{width:100%;height:100%;border:0;display:block}
.form-grid{display:grid;grid-template-columns:1fr 420px;gap:44px;align-items:start}
.form-grid .form{border:1px solid var(--line)}
.req2{margin-top:26px}
.req2 div{border-top:1px solid var(--line);padding:15px 0}
.req2 small{display:block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.req2 b{font-size:15.5px;font-weight:700;line-height:1.45}
.hours{display:flex;gap:10px;align-items:flex-start;background:var(--cream);border-radius:12px;padding:16px 18px;margin-top:24px;font-size:14px;color:var(--muted);font-weight:600;line-height:1.45}
@media (max-width:1000px){
  .cnt-cards{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr;gap:28px}
  .map{height:320px}
}

/* ---------- policy.html ---------- */
.doc-text h3{margin:34px 0 12px;font-size:20px}.doc-text p,.doc-text li{color:var(--muted);font-size:16px}.doc-text ul{padding-left:20px}.doc-text li{margin-bottom:8px}

/* ============ AIRY V2 ============ */
:root{
  --r:28px;
  --r-sm:18px;
  --soft:#F4F7FB;
  --edge:#E6ECF4;
  --shadow:0 1px 2px rgba(0,36,66,.04),0 12px 32px rgba(0,36,66,.06);
  --shadow-lg:0 24px 70px rgba(0,36,66,.14);
}
body{font-size:16.5px;line-height:1.68;letter-spacing:-.005em}
.wrap{max-width:1240px;padding:0 28px}
.sec{padding:128px 0}
.sec-sm{padding:96px 0}
h2{font-size:clamp(30px,3.6vw,46px);line-height:1.1}
h3{font-size:clamp(19px,1.7vw,22px)}
.lead{font-size:17.5px;line-height:1.65}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:20px;
  background:var(--soft);border:1px solid var(--edge);border-radius:999px;
  padding:7px 16px;font-size:11.5px;letter-spacing:.12em;color:var(--ink);
}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink)}
.dark .eyebrow{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff}
.dark .eyebrow::before{background:#fff}

/* --- floating pill header --- */
.ticker{background:var(--deep2);font-size:12.5px;padding:11px 16px}
header{background:transparent;border:0;backdrop-filter:none;padding:14px 0}
header .nav{
  max-width:1240px;height:auto;padding:10px 10px 10px 24px;
  background:#fff;border:1px solid var(--edge);border-radius:999px;box-shadow:var(--shadow);
}
.nav ul{gap:6px;font-size:14px}
.nav ul a{display:block;padding:9px 16px;border-radius:999px;transition:.16s}
.nav ul a:hover{background:var(--soft);color:var(--ink)}
.nav ul li.is-active a{background:var(--ink);color:#fff}
.logo{font-size:17px}
.btn{border-radius:999px;padding:13px 26px}
.btn-lg{padding:16px 32px;font-size:15.5px}
.btn-ghost{border-color:var(--edge)}

/* --- surfaces --- */
.card,.tile,.step,.rev,.cnt,.val,.dir,.nav-card,.photo,.doc,.band,.strip-photo,.hero-photo,.about-photo,.srv-photo,.map,.form,.cta-photo{border-radius:var(--r)}
.card{background:#fff;border:1px solid var(--edge);box-shadow:var(--shadow)}
.card .pad{padding:34px}
.c-cream2,.c-cream{background:#fff}
.c-dark{background:var(--ink);border-color:var(--ink)}
.card-photo{flex:0 0 240px;height:240px;padding:10px 10px 0}
.card-photo img{border-radius:20px}
.step,.val,.rev,.cnt{background:#fff;border:1px solid var(--edge);box-shadow:var(--shadow);padding:32px}
.step .n,.val .n{border-radius:14px;width:40px;height:40px;font-size:15px}
.tile{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14);padding:32px}
.tile-photo{border-radius:20px;height:180px}
.bento,.cards3,.steps,.revs,.vals,.cnt-cards,.nav-cards{gap:22px;margin-top:56px}
.two{gap:56px}
.split{gap:72px}
.strip{border:0;padding:0}
.strip-in{gap:16px 40px;padding:26px;background:var(--soft);border-radius:999px}
.section-head{max-width:780px;margin:0 auto;text-align:center}
.section-head .lead{margin-top:18px}

/* soft-tinted sections */
.soft{background:var(--soft)}
.dark{background:var(--deep2)}
.dark h3,.dark h4{color:#fff}

/* --- hero --- */
.hero{padding:12px 0 8px}
.hero-cover{border-radius:36px;min-height:640px}
.hero-cover::after{background:linear-gradient(115deg,rgba(0,36,66,.92) 0%,rgba(0,36,66,.72) 40%,rgba(0,36,66,.28) 70%,rgba(0,36,66,.55) 100%)}
.hero-cover-in{padding:72px;max-width:720px}
.hero-cover-in h1{letter-spacing:-.03em;line-height:1.05}
.hero-cover-card{right:36px;bottom:36px;border-radius:24px;box-shadow:var(--shadow-lg)}
.hero .hero-lead{font-size:18px;margin:44px auto 0;text-align:center}
.hero-stats{
  margin-top:44px;border:0;padding:28px 8px;background:var(--soft);border-radius:var(--r);
}
.hero-stats div{padding:0 26px;border-left:1px solid var(--edge)}
.hero-stats div:first-child{border-left:0}
.hero-stats b{font-size:21px}

/* --- pricing-like feature rows --- */
.checks li{border-color:var(--edge);padding:14px 0}
.srv-list li{border-color:var(--edge);padding:14px 0 14px 32px}

/* --- FAQ --- */
.faq{max-width:900px;margin:56px auto 0;display:flex;flex-direction:column;gap:14px}
.faq details{background:#fff;border:1px solid var(--edge);border-radius:var(--r-sm);box-shadow:var(--shadow);overflow:hidden}
.faq summary{
  list-style:none;cursor:pointer;padding:22px 26px;font-weight:700;font-size:16px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:22px;font-weight:600;color:var(--muted);line-height:1}
.faq details[open] summary::after{content:"–"}
.faq .a{padding:0 26px 24px;color:var(--muted);font-size:15.5px;margin:0}

/* --- big CTA --- */
.cta{border-radius:36px;padding:64px;background:var(--deep2)}
.cta-wide{text-align:center;display:block}
.cta-wide h2{max-width:760px;margin:0 auto 16px}
.cta-wide p{margin:0 auto;max-width:620px}
.cta-wide .cta-contacts{justify-content:center}

/* --- footer --- */
footer{padding:96px 0 0;background:var(--ink)}
.f-grid{gap:44px}
.f-bottom{margin-top:56px}
.wordmark{
  margin-top:26px;font-weight:800;letter-spacing:-.04em;line-height:.85;
  font-size:clamp(64px,17vw,240px);color:rgba(255,255,255,.07);
  text-align:center;user-select:none;padding-bottom:14px;
}
@media (max-width:1000px){
  .sec{padding:80px 0}
  .sec-sm{padding:60px 0}
  .wrap{padding:0 20px}
  header .nav{padding:10px 10px 10px 18px;border-radius:26px}
  .hero-cover{min-height:auto}
  .hero-cover-in{padding:36px 24px 26px}
  .hero-stats{grid-template-columns:1fr 1fr;gap:24px 0;padding:24px}
  .hero-stats div{padding:0 18px}
  .hero-stats div:nth-child(3){border-left:0}
  .cta{padding:40px 26px;border-radius:28px}
  .strip-in{border-radius:24px;padding:22px}
  .card .pad{padding:26px}
}

.card,.step,.val,.rev,.cnt,.tile,.nav-card{transition:transform .18s ease,box-shadow .18s ease}
.card:hover,.step:hover,.val:hover,.cnt:hover,.nav-card:hover{transform:translateY(-4px);box-shadow:0 26px 60px rgba(0,36,66,.10)}
.tile:hover{transform:translateY(-4px);background:rgba(255,255,255,.10)}
.steps{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.step h4{min-height:0;margin-bottom:12px}
.photo img,.band img,.strip-photo img,.srv-photo img,.about-photo img{transition:transform .5s ease}
.photo:hover img,.band:hover img,.strip-photo:hover img{transform:scale(1.03)}
.band .cap,.cta-cap{border-radius:14px;background:rgba(0,36,66,.9)}

/* ============ FIXES V3 ============ */

/* --- hero: шире титул --- */
.hero-cover{min-height:700px}
.hero-cover-in{max-width:980px;padding:80px}
.hero-cover-in h1{font-size:clamp(38px,5.6vw,78px);letter-spacing:-.035em;line-height:1.02;max-width:15ch}
.hero-cover-sub{font-size:16px}
.hero-cover-card{width:330px}
@media (max-width:1180px){
  .hero-cover-in{max-width:none;padding:56px 40px}
  .hero-cover-card{position:static;width:auto;margin:0 40px 40px}
}

/* --- этапы: 5 в ряд, равная высота --- */
.steps{grid-template-columns:repeat(5,1fr);align-items:stretch}
.step{display:flex;flex-direction:column}
.step p{margin-top:auto;padding-top:6px}
@media (max-width:1240px){.steps{grid-template-columns:repeat(3,1fr)}}
@media (max-width:820px){.steps{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* --- bento: фото без белых полей, равные карточки --- */
.bento{grid-auto-rows:1fr}
.card{overflow:hidden}
.card-photo{flex:0 0 260px;height:260px;padding:0;border-radius:0}
.card-photo img{border-radius:0;transition:transform .5s ease}
.card:hover .card-photo img{transform:scale(1.04)}
.c-dark .card-photo{border-bottom:1px solid rgba(255,255,255,.1)}

/* --- галочки в списках --- */
.checks .tick{background:var(--ink);flex:0 0 22px;width:22px;height:22px}
.checks li{gap:14px;align-items:center;font-size:15.5px}
.srv-list li::before{width:20px;height:20px;top:14px;background-size:12px}

/* --- гео-строка: одна линия --- */
.strip-in{flex-wrap:wrap;gap:12px 44px;padding:22px 34px;justify-content:center}
.strip-in span{white-space:nowrap;font-size:15.5px}

/* --- отзывы: ровные карточки --- */
.revs{grid-auto-rows:1fr}
.rev{justify-content:space-between}
.rev .q{flex:1;font-size:15.5px}
.rev .who{align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--edge)}
.rev .av{flex:0 0 40px;width:40px;height:40px}
.rev .who small{display:block;line-height:1.35;margin-top:2px}

/* --- карточки-ссылки услуг --- */
.nav-cards{grid-auto-rows:1fr}
.nav-card{justify-content:flex-start}
.nav-card span{flex:1}

/* --- фото-блоки: пропорции вместо фиксированных высот --- */
.srv-photo{height:auto;aspect-ratio:4/5;width:100%;align-self:start;position:sticky;top:110px}
.srv-photo img{height:100%;width:100%}
.about-photo{height:auto;aspect-ratio:4/3}
.photo{height:auto!important;aspect-ratio:3/4;min-height:0!important}
.split .photo{aspect-ratio:4/5}

.cta-photo{height:auto;aspect-ratio:16/9}
.tile-photo{height:auto;aspect-ratio:16/9}
@media (max-width:1000px){
  .srv-photo{position:static;aspect-ratio:16/10}
  .photo,.split .photo{aspect-ratio:16/10}
  .srv-photo,.about-photo{aspect-ratio:16/10}
}

/* --- еле видимые фоновые фото в секциях --- */
.has-bg{position:relative;overflow:hidden;isolation:isolate}
.has-bg>.bg{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-size:cover;background-position:center;opacity:.06;
}
.has-bg.dark>.bg{opacity:.14;filter:grayscale(.2)}
.has-bg>.bg::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(120% 90% at 50% 0%,transparent 20%,#fff 92%);
}
.has-bg.dark>.bg::after{background:radial-gradient(120% 90% at 50% 0%,transparent 10%,#001B33 95%)}

/* ============ LIVE FIXES (проверено на iis-yug.ru) ============ */

/* Подвал: колонка «Услуги» может отсутствовать, если её не заполнили в
   настройках. Жёсткая сетка 1.4fr 1fr 1fr 1.2fr в этом случае оставляла
   пустую четверть; auto-fit раскладывает столько колонок, сколько есть. */
.f-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}

/* Крупная надпись внизу — графический элемент в vw-единицах. Длинное значение
   («ООО «ИИС-ЮГ»») вылезало за края и растягивало страницу по горизонтали. */
.wordmark{
  white-space:nowrap;overflow:hidden;text-overflow:clip;
  font-size:clamp(48px,15vw,240px);
}

/* Страница никогда не должна прокручиваться вбок — раньше это давал wordmark. */
html,body{overflow-x:hidden}

/* Системные сообщения Joomla (успех/ошибка отправки формы) в вёрстке сайта. */
#system-message-container{max-width:1240px;margin:0 auto;padding:0 28px}
#system-message-container joomla-alert{display:block;margin:16px 0}

@media (max-width:1000px){
  #system-message-container{padding:0 20px}
}

/* ============ МОБИЛЬНОЕ МЕНЮ ============ */
/* На прежнем HTML-сайте меню на телефоне отсутствовало: правило
   ".nav ul,.tel{display:none}" в блоке @media (max-width:1000px) прятало
   навигацию, а кнопки-бургера не было. Ниже — сама кнопка и раскрывающийся
   список; на широком экране всё остаётся ровно как раньше. */

.nav-toggle{
  display:none;align-items:center;justify-content:center;
  width:44px;height:44px;flex:0 0 44px;padding:0;
  background:#fff;border:1px solid var(--edge);border-radius:999px;
  cursor:pointer;transition:background .16s,border-color .16s;
}
.nav-toggle:hover{background:var(--soft)}
.nav-toggle .nav-toggle-bars{display:block;width:18px;height:12px;position:relative}
.nav-toggle .nav-toggle-bars i{
  position:absolute;left:0;right:0;height:2px;border-radius:2px;background:var(--ink);
  transition:transform .2s ease,opacity .15s ease,top .2s ease;
}
.nav-toggle .nav-toggle-bars i:nth-child(1){top:0}
.nav-toggle .nav-toggle-bars i:nth-child(2){top:5px}
.nav-toggle .nav-toggle-bars i:nth-child(3){top:10px}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(1){top:5px;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .nav-toggle-bars i:nth-child(3){top:5px;transform:rotate(-45deg)}

/* Телефон отдельным пунктом — только внутри раскрытого меню. */
.nav ul li.nav-tel{display:none}

@media (max-width:1000px){
  .nav-toggle{display:inline-flex}
  header .nav{flex-wrap:wrap;row-gap:0}
  header .nav .logo{margin-right:auto}
  header .nav .right{margin-left:0;gap:10px}

  /* Список раскрывается под шапкой, внутри той же «пилюли». */
  header .nav ul{
    display:none;order:3;width:100%;
    flex-direction:column;gap:2px;
    margin:10px 0 2px;padding:10px 0 0;
    border-top:1px solid var(--edge);
  }
  header .nav.is-open ul{display:flex}
  header .nav ul li.nav-tel{display:block}
  header .nav ul a{padding:12px 16px;border-radius:16px;font-size:15.5px;font-weight:700}
  header .nav ul li.nav-tel a{color:var(--ink)}
  header .nav ul li.is-active a{background:var(--ink);color:#fff}
}

@media (max-width:560px){
  /* На узком экране кнопка «Заказать изыскания» уводит вёрстку в две строки —
     то же действие доступно первым пунктом раскрытого меню и в блоке заявки. */
  header .nav .right .btn{display:none}
  header .nav{padding:10px 12px 10px 16px}
  .logo{font-size:16px}
}

/* Подсказка под конкретным полем формы (например, «имя русскими буквами»). */
.form .field-error{
  margin:6px 0 0;font-size:12.5px;font-weight:600;color:#8A2C1E;line-height:1.35;
}
.form .field input[aria-invalid="true"],
.form .field textarea[aria-invalid="true"]{border-color:#C0553F}

/* ============ ЛОГОТИПЫ, ФОН ПОДВАЛА, ИКОНКИ УСЛУГ ============ */

/* Логотип-картинка вместо встроенной SVG-марки (задаётся в настройках). */
.logo .logo-img{display:block;height:34px;width:auto;max-width:220px;object-fit:contain}
.f-logo .logo-img{height:40px;width:auto;max-width:240px;object-fit:contain}
@media (max-width:560px){
  .logo .logo-img{height:28px;max-width:170px}
}

/* Еле видимая фоновая картинка подвала. Прозрачность задаётся в настройках
   (--footer-bg-alpha), картинка не мешает читать текст. */
footer.has-footer-bg{position:relative;overflow:hidden;isolation:isolate}
footer.has-footer-bg::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:var(--footer-bg);background-size:cover;background-position:center;
  opacity:var(--footer-bg-alpha,.08);filter:grayscale(.25);
}
footer.has-footer-bg::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%,transparent 10%,rgba(0,36,66,.92) 92%);
}
footer.has-footer-bg > .wrap{position:relative;z-index:1}

/* Колонка «Услуги» в подвале: необязательная иконка рядом с названием. */
footer .f-services li.has-icon{margin-bottom:12px}
footer .f-services a{display:flex;align-items:center;gap:10px}
/* Плашки-подложки нет: строка без картинки выглядит как обычная ссылка,
   а не как пустая рамка. Картинка выводится в исходных пропорциях. */
footer .f-services img{
  max-width:130px;max-height:40px;width:auto;height:auto;object-fit:contain;flex:0 0 auto;
}
footer .f-services li:not(.has-icon) a{display:block}
