/* ============================================================
   GIZZ.UZ — Главный стилевой файл
   Mobile-first, system fonts, CSS variables
   ============================================================ */

/* === RESET & BASE === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Helvetica Neue',Arial,sans-serif;
  background-color:var(--bg);
  color:var(--text);
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font:inherit}
input,textarea,select{font:inherit}

/* === CSS VARIABLES === */
:root{
  --bg:#060b12;
  --bg2:#0c1420;
  --bg3:#111d2e;
  --surface:#0f1e30;
  --surface2:#162333;
  --border:#1e3048;
  --accent:#00e5a0;
  --accent-dim:#00b87d;
  --accent-glow:rgba(0,229,160,0.15);
  --orange:#ff6b35;
  --orange-dim:#cc4f1e;
  --text:#ddf0e8;
  --text2:#8aacaa;
  --text3:#4a7070;
  --white:#ffffff;
  --radius:10px;
  --radius-lg:18px;
  --shadow:0 4px 32px rgba(0,0,0,0.5);
  --shadow-accent:0 0 40px rgba(0,229,160,0.2);
  --transition:0.3s cubic-bezier(0.4,0,0.2,1);
  --max-w:1140px;
  --nav-h:68px;
}

/* === GRID BACKGROUND TEXTURE === */
body::before{
  content:'';
  position:fixed;
  inset:0;
  background-image:
    linear-gradient(rgba(0,229,160,0.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,229,160,0.03) 1px,transparent 1px);
  background-size:48px 48px;
  pointer-events:none;
  z-index:0;
}

/* === LAYOUT === */
.container{
  width:100%;
  max-width:var(--max-w);
  margin:0 auto;
  padding:0 20px;
}
main{position:relative;z-index:1;padding-top:var(--nav-h)}

/* === NAVIGATION === */
.nav{
  position:fixed;
  top:0;left:0;right:0;
  height:var(--nav-h);
  z-index:1000;
  background:rgba(6,11,18,0.85);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
  transition:var(--transition);
}
.nav__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:100%;
  gap:16px;
}
.nav__logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:1.45rem;
  font-weight:900;
  letter-spacing:-0.03em;
  color:var(--white);
  flex-shrink:0;
}
.nav__logo span{color:var(--accent)}
.nav__logo-dot{
  width:8px;height:8px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 10px var(--accent);
  animation:pulse 2s infinite;
}
@keyframes pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:0.5;transform:scale(0.8)}
}
.nav__links{
  display:none;
  align-items:center;
  gap:28px;
}
.nav__links a{
  font-size:0.875rem;
  font-weight:600;
  color:var(--text2);
  letter-spacing:0.02em;
  text-transform:uppercase;
  transition:color var(--transition);
  position:relative;
}
.nav__links a::after{
  content:'';
  position:absolute;
  bottom:-4px;left:0;
  width:0;height:2px;
  background:var(--accent);
  transition:width var(--transition);
}
.nav__links a:hover,
.nav__links a.active{color:var(--accent)}
.nav__links a:hover::after,
.nav__links a.active::after{width:100%}
.nav__cta{
  display:none;
}
.nav__burger{
  width:36px;height:36px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  padding:4px;
}
.nav__burger span{
  display:block;
  height:2px;
  background:var(--text);
  border-radius:2px;
  transition:var(--transition);
}
.nav__burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__burger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav__burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Mobile menu */
.nav__mobile{
  display:none;
  position:fixed;
  top:var(--nav-h);left:0;right:0;
  background:var(--bg2);
  border-bottom:1px solid var(--border);
  padding:20px;
  z-index:999;
  flex-direction:column;
  gap:8px;
}
.nav__mobile.open{display:flex}
.nav__mobile a{
  padding:12px 16px;
  font-weight:600;
  font-size:0.95rem;
  color:var(--text2);
  border-radius:var(--radius);
  transition:var(--transition);
  letter-spacing:0.02em;
}
.nav__mobile a:hover,
.nav__mobile a.active{
  color:var(--accent);
  background:var(--accent-glow);
}
.nav__mobile-cta{
  margin-top:8px;
  display:block;
  text-align:center;
  padding:12px;
  background:var(--accent);
  color:var(--bg) !important;
  border-radius:var(--radius);
  font-weight:700 !important;
}

/* === TYPOGRAPHY === */
h1,h2,h3,h4,h5{
  font-weight:900;
  line-height:1.15;
  letter-spacing:-0.03em;
  color:var(--white);
}
h1{font-size:clamp(2.2rem,8vw,4.5rem)}
h2{font-size:clamp(1.7rem,5vw,3rem)}
h3{font-size:clamp(1.2rem,3vw,1.75rem)}
h4{font-size:1.1rem}
p{color:var(--text2);line-height:1.75}
.lead{font-size:1.15rem;color:var(--text);line-height:1.7}
.overline{
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:12px;
  display:block;
}

/* === BUTTONS === */
.btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:13px 28px;
  border-radius:var(--radius);
  font-weight:700;
  font-size:0.9rem;
  letter-spacing:0.02em;
  transition:var(--transition);
  white-space:nowrap;
}
.btn-primary{
  background:var(--accent);
  color:var(--bg);
  box-shadow:0 0 24px rgba(0,229,160,0.35);
}
.btn-primary:hover{
  background:var(--white);
  box-shadow:0 0 40px rgba(0,229,160,0.5);
  transform:translateY(-2px);
}
.btn-secondary{
  background:transparent;
  color:var(--text);
  border:1px solid var(--border);
}
.btn-secondary:hover{
  border-color:var(--accent);
  color:var(--accent);
  transform:translateY(-2px);
}
.btn-orange{
  background:var(--orange);
  color:var(--white);
  box-shadow:0 0 24px rgba(255,107,53,0.3);
}
.btn-orange:hover{
  background:#ff8555;
  box-shadow:0 0 40px rgba(255,107,53,0.5);
  transform:translateY(-2px);
}
.btn svg{width:18px;height:18px;flex-shrink:0}

/* === HERO === */
.hero{
  position:relative;
  min-height:calc(100vh - var(--nav-h));
  display:flex;
  align-items:center;
  padding:60px 0;
  overflow:hidden;
}
.hero__bg{
  position:absolute;
  inset:0;
  pointer-events:none;
}
.hero__orb{
  position:absolute;
  border-radius:50%;
  filter:blur(80px);
  opacity:0.25;
}
.hero__orb--1{
  width:500px;height:500px;
  background:var(--accent);
  top:-100px;right:-100px;
}
.hero__orb--2{
  width:300px;height:300px;
  background:var(--orange);
  bottom:-50px;left:-50px;
}
.hero__content{
  position:relative;
  z-index:2;
  max-width:760px;
}
.hero__badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:var(--accent-glow);
  border:1px solid rgba(0,229,160,0.3);
  border-radius:50px;
  padding:6px 16px;
  font-size:0.8rem;
  font-weight:700;
  color:var(--accent);
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin-bottom:24px;
}
.hero__badge-dot{
  width:6px;height:6px;
  border-radius:50%;
  background:var(--accent);
  animation:pulse 1.5s infinite;
}
.hero__title{
  margin-bottom:24px;
}
.hero__title .accent{
  color:var(--accent);
  display:block;
}
.hero__title .stroke{
  -webkit-text-stroke:2px var(--accent);
  color:transparent;
}
.hero__desc{
  font-size:1.1rem;
  color:var(--text2);
  margin-bottom:36px;
  max-width:560px;
  line-height:1.75;
}
.hero__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.hero__stats{
  display:flex;
  flex-wrap:wrap;
  gap:24px 40px;
  margin-top:56px;
  padding-top:40px;
  border-top:1px solid var(--border);
}
.hero__stat-value{
  font-size:2rem;
  font-weight:900;
  color:var(--white);
  letter-spacing:-0.04em;
  line-height:1;
}
.hero__stat-value .unit{color:var(--accent)}
.hero__stat-label{
  font-size:0.8rem;
  color:var(--text3);
  margin-top:4px;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-weight:600;
}

/* === SECTIONS === */
.section{
  padding:80px 0;
}
.section--alt{
  background:var(--bg2);
}
.section--dark{
  background:var(--bg3);
}
.section__header{
  max-width:680px;
  margin-bottom:48px;
}
.section__header.center{
  margin-left:auto;
  margin-right:auto;
  text-align:center;
}
.section__title{margin-bottom:16px}
.section__desc{font-size:1rem;color:var(--text2)}

/* === CARDS === */
.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:28px;
  transition:var(--transition);
}
.card:hover{
  border-color:rgba(0,229,160,0.4);
  box-shadow:var(--shadow-accent);
  transform:translateY(-4px);
}
.card__icon{
  width:48px;height:48px;
  border-radius:12px;
  background:var(--accent-glow);
  border:1px solid rgba(0,229,160,0.2);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:20px;
}
.card__icon svg{width:22px;height:22px;color:var(--accent)}
.card__title{
  font-size:1.1rem;
  font-weight:800;
  margin-bottom:10px;
  color:var(--white);
}
.card__desc{font-size:0.9rem;color:var(--text2);line-height:1.65}

/* === GRID LAYOUTS === */
.grid-2{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
.grid-3{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
.grid-4{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}

/* === SERVICE CARDS (Home) === */
.service-cards{
  display:grid;
  grid-template-columns:1fr;
  gap:24px;
}
.service-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:36px 28px;
  display:flex;
  flex-direction:column;
  gap:20px;
  transition:var(--transition);
  position:relative;
  overflow:hidden;
}
.service-card::before{
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:3px;
}
.service-card--green::before{background:var(--accent)}
.service-card--orange::before{background:var(--orange)}
.service-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--shadow);
}
.service-card__num{
  font-size:3.5rem;
  font-weight:900;
  color:var(--border);
  letter-spacing:-0.05em;
  line-height:1;
  position:absolute;
  top:20px;right:24px;
}
.service-card--green .service-card__num{color:rgba(0,229,160,0.1)}
.service-card--orange .service-card__num{color:rgba(255,107,53,0.1)}
.service-card__title{
  font-size:1.4rem;
  font-weight:900;
  color:var(--white);
  line-height:1.2;
}
.service-card__desc{color:var(--text2);font-size:0.95rem;line-height:1.7}
.service-card__features{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.service-card__feature{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:0.875rem;
  color:var(--text);
}
.service-card__feature svg{width:16px;height:16px;flex-shrink:0;color:var(--accent)}
.service-card--orange .service-card__feature svg{color:var(--orange)}

/* === WHY SECTION === */
.why-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1px;
  background:var(--border);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.why-item{
  background:var(--surface);
  padding:28px;
}
.why-item__num{
  font-size:2.5rem;
  font-weight:900;
  color:var(--accent);
  letter-spacing:-0.05em;
  line-height:1;
  margin-bottom:8px;
}
.why-item__title{
  font-size:1rem;
  font-weight:700;
  color:var(--white);
  margin-bottom:6px;
}
.why-item__desc{font-size:0.875rem;color:var(--text2)}

/* === PRICING === */
.pricing-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
.pricing-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:32px 28px;
  display:flex;
  flex-direction:column;
  gap:24px;
  transition:var(--transition);
}
.pricing-card--featured{
  border-color:var(--accent);
  position:relative;
  box-shadow:var(--shadow-accent);
}
.pricing-card--featured::before{
  content:'Популярный';
  position:absolute;
  top:-1px;left:50%;
  transform:translateX(-50%);
  background:var(--accent);
  color:var(--bg);
  font-size:0.7rem;
  font-weight:800;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:4px 14px;
  border-radius:0 0 8px 8px;
}
.pricing-card__name{
  font-size:0.8rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--text3);
}
.pricing-card--featured .pricing-card__name{color:var(--accent)}
.pricing-card__price{
  display:flex;
  align-items:baseline;
  gap:6px;
}
.pricing-card__amount{
  font-size:2.5rem;
  font-weight:900;
  color:var(--white);
  letter-spacing:-0.04em;
  line-height:1;
}
.pricing-card__currency{
  font-size:1rem;
  font-weight:700;
  color:var(--text2);
}
.pricing-card__period{
  font-size:0.8rem;
  color:var(--text3);
}
.pricing-card__features{
  display:flex;
  flex-direction:column;
  gap:10px;
  flex:1;
}
.pricing-feature{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:0.875rem;
  color:var(--text2);
}
.pricing-feature svg{width:16px;height:16px;flex-shrink:0;color:var(--accent)}
.pricing-feature.disabled{color:var(--text3)}
.pricing-feature.disabled svg{color:var(--text3)}

/* === PROCESS STEPS === */
.process{
  display:flex;
  flex-direction:column;
  gap:0;
}
.process-step{
  display:flex;
  gap:20px;
  position:relative;
  padding-bottom:32px;
}
.process-step:last-child{padding-bottom:0}
.process-step__left{
  display:flex;
  flex-direction:column;
  align-items:center;
  flex-shrink:0;
}
.process-step__num{
  width:44px;height:44px;
  border-radius:50%;
  background:var(--accent-glow);
  border:2px solid var(--accent);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.85rem;
  font-weight:900;
  color:var(--accent);
  flex-shrink:0;
}
.process-step__line{
  width:2px;
  flex:1;
  background:var(--border);
  margin-top:8px;
}
.process-step:last-child .process-step__line{display:none}
.process-step__content{
  padding-top:10px;
  padding-bottom:8px;
}
.process-step__title{
  font-size:1.05rem;
  font-weight:800;
  color:var(--white);
  margin-bottom:6px;
}
.process-step__desc{font-size:0.875rem;color:var(--text2);line-height:1.65}

/* === CASES === */
.case-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:28px;
  transition:var(--transition);
}
.case-card:hover{
  border-color:rgba(0,229,160,0.3);
  transform:translateY(-4px);
}
.case-card__header{
  display:flex;
  align-items:center;
  gap:16px;
  margin-bottom:20px;
}
.case-card__logo{
  width:48px;height:48px;
  border-radius:10px;
  background:var(--bg3);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:1.4rem;
  flex-shrink:0;
}
.case-card__meta{}
.case-card__name{font-size:1rem;font-weight:800;color:var(--white)}
.case-card__niche{font-size:0.8rem;color:var(--text3);margin-top:2px}
.case-card__results{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-bottom:16px;
}
.case-result{
  background:var(--bg);
  border-radius:var(--radius);
  padding:14px 12px;
  text-align:center;
}
.case-result__value{
  font-size:1.5rem;
  font-weight:900;
  color:var(--accent);
  letter-spacing:-0.03em;
  line-height:1;
}
.case-result__label{
  font-size:0.7rem;
  color:var(--text3);
  text-transform:uppercase;
  letter-spacing:0.08em;
  margin-top:4px;
  font-weight:600;
}
.case-card__desc{font-size:0.875rem;color:var(--text2);line-height:1.65}

/* === CONTACT FORM === */
.contact-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
}
.contact-info{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.contact-item{
  display:flex;
  gap:16px;
  align-items:flex-start;
}
.contact-item__icon{
  width:44px;height:44px;
  border-radius:10px;
  background:var(--accent-glow);
  border:1px solid rgba(0,229,160,0.2);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.contact-item__icon svg{width:20px;height:20px;color:var(--accent)}
.contact-item__label{
  font-size:0.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.1em;
  color:var(--text3);
  margin-bottom:4px;
}
.contact-item__value{
  font-size:0.95rem;
  font-weight:600;
  color:var(--text);
}
.contact-form{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:32px 24px;
}
.form-group{
  margin-bottom:20px;
}
.form-label{
  display:block;
  font-size:0.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--text2);
  margin-bottom:8px;
}
.form-input,
.form-textarea,
.form-select{
  width:100%;
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:13px 16px;
  color:var(--text);
  font-size:0.95rem;
  outline:none;
  transition:var(--transition);
  -webkit-appearance:none;
}
.form-input:focus,
.form-textarea:focus,
.form-select:focus{
  border-color:var(--accent);
  box-shadow:0 0 0 3px var(--accent-glow);
}
.form-textarea{
  resize:vertical;
  min-height:120px;
}
.form-select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238aacaa' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:40px;
  cursor:pointer;
}
.form-select option{background:var(--bg2)}

/* === CTA BANNER === */
.cta-banner{
  background:linear-gradient(135deg,rgba(0,229,160,0.12),rgba(0,229,160,0.04));
  border:1px solid rgba(0,229,160,0.25);
  border-radius:var(--radius-lg);
  padding:48px 32px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.cta-banner::before{
  content:'';
  position:absolute;
  top:-60px;right:-60px;
  width:200px;height:200px;
  background:var(--accent);
  border-radius:50%;
  filter:blur(80px);
  opacity:0.15;
}
.cta-banner::after{
  content:'';
  position:absolute;
  bottom:-60px;left:-60px;
  width:200px;height:200px;
  background:var(--orange);
  border-radius:50%;
  filter:blur(80px);
  opacity:0.1;
}
.cta-banner__content{position:relative;z-index:1}
.cta-banner__title{
  font-size:clamp(1.5rem,4vw,2.5rem);
  margin-bottom:16px;
}
.cta-banner__desc{
  color:var(--text2);
  margin-bottom:28px;
  font-size:1.05rem;
}
.cta-banner__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:center;
}

/* === FOOTER === */
footer{
  background:var(--bg2);
  border-top:1px solid var(--border);
  padding:48px 0 24px;
}
.footer__inner{
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  margin-bottom:40px;
}
.footer__brand{}
.footer__logo{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:1.3rem;
  font-weight:900;
  letter-spacing:-0.03em;
  color:var(--white);
  margin-bottom:14px;
}
.footer__logo span{color:var(--accent)}
.footer__tagline{
  font-size:0.875rem;
  color:var(--text3);
  line-height:1.6;
  max-width:280px;
}
.footer__col-title{
  font-size:0.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.12em;
  color:var(--text3);
  margin-bottom:16px;
}
.footer__links{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.footer__links a{
  font-size:0.875rem;
  color:var(--text2);
  transition:color var(--transition);
}
.footer__links a:hover{color:var(--accent)}
.footer__bottom{
  border-top:1px solid var(--border);
  padding-top:24px;
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  justify-content:space-between;
  align-items:center;
}
.footer__copy{
  font-size:0.8rem;
  color:var(--text3);
}
.footer__social{
  display:flex;
  gap:12px;
}
.footer__social a{
  width:36px;height:36px;
  border-radius:8px;
  background:var(--surface);
  border:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:var(--transition);
}
.footer__social a:hover{
  border-color:var(--accent);
  background:var(--accent-glow);
}
.footer__social svg{width:16px;height:16px;color:var(--text2)}
.footer__social a:hover svg{color:var(--accent)}

/* === HIGHLIGHT / ACCENT TEXT === */
.text-accent{color:var(--accent)}
.text-orange{color:var(--orange)}
.text-muted{color:var(--text2)}

/* === TAG / BADGE === */
.tag{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--accent-glow);
  border:1px solid rgba(0,229,160,0.25);
  border-radius:50px;
  padding:4px 12px;
  font-size:0.75rem;
  font-weight:700;
  color:var(--accent);
  letter-spacing:0.06em;
  text-transform:uppercase;
}
.tag-orange{
  background:rgba(255,107,53,0.12);
  border-color:rgba(255,107,53,0.25);
  color:var(--orange);
}

/* === COMPARISON TABLE (Analytics page) === */
.comparison{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.comparison-head{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  background:var(--bg3);
  border-bottom:1px solid var(--border);
}
.comparison-head div{
  padding:14px 16px;
  font-size:0.8rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--text3);
}
.comparison-head .col-ours{color:var(--accent)}
.comparison-row{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  border-bottom:1px solid var(--border);
}
.comparison-row:last-child{border-bottom:none}
.comparison-cell{
  padding:14px 16px;
  font-size:0.85rem;
  color:var(--text2);
  display:flex;
  align-items:center;
  gap:8px;
}
.comparison-cell.col-ours{color:var(--text)}
.comparison-cell svg{width:14px;height:14px;flex-shrink:0}
.check-yes{color:var(--accent)}
.check-no{color:var(--text3)}

/* === ABOUT TEAM === */
.team-stats{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
}
.team-stat{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-lg);
  padding:24px 20px;
  text-align:center;
}
.team-stat__val{
  font-size:2.2rem;
  font-weight:900;
  color:var(--accent);
  letter-spacing:-0.04em;
  line-height:1;
  margin-bottom:6px;
}
.team-stat__label{
  font-size:0.8rem;
  color:var(--text3);
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-weight:600;
}

/* === PAGE HERO (inner pages) === */
.page-hero{
  padding:60px 0 48px;
  position:relative;
  overflow:hidden;
}
.page-hero__bg{
  position:absolute;
  inset:0;pointer-events:none;
}
.page-hero__orb{
  position:absolute;
  border-radius:50%;
  filter:blur(80px);
  opacity:0.2;
}
.page-hero__orb--1{
  width:400px;height:400px;
  background:var(--accent);
  top:-200px;right:-100px;
}
.page-hero__content{position:relative;z-index:2}
.page-hero__title{margin-bottom:16px}
.page-hero__desc{
  font-size:1.1rem;
  color:var(--text2);
  max-width:600px;
  line-height:1.75;
  margin-bottom:28px;
}
.breadcrumb{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:0.8rem;
  color:var(--text3);
  margin-bottom:20px;
}
.breadcrumb a{color:var(--text2);transition:color var(--transition)}
.breadcrumb a:hover{color:var(--accent)}
.breadcrumb-sep{color:var(--text3)}

/* === ACCORDION (FAQ) === */
.faq{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.faq-item{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  transition:var(--transition);
}
.faq-item.open{border-color:rgba(0,229,160,0.3)}
.faq-question{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 20px;
  cursor:pointer;
  gap:12px;
}
.faq-question-text{
  font-size:0.95rem;
  font-weight:700;
  color:var(--text);
}
.faq-icon{
  width:24px;height:24px;
  flex-shrink:0;
  color:var(--text3);
  transition:transform var(--transition);
}
.faq-item.open .faq-icon{
  transform:rotate(45deg);
  color:var(--accent);
}
.faq-answer{
  display:none;
  padding:0 20px 18px;
  font-size:0.875rem;
  color:var(--text2);
  line-height:1.7;
}
.faq-item.open .faq-answer{display:block}

/* === TELEGRAM WIDGET === */
.tg-widget{
  background:linear-gradient(135deg,rgba(0,136,204,0.15),rgba(0,136,204,0.05));
  border:1px solid rgba(0,136,204,0.3);
  border-radius:var(--radius-lg);
  padding:32px 24px;
  display:flex;
  align-items:center;
  gap:20px;
  flex-wrap:wrap;
}
.tg-widget__icon{
  width:56px;height:56px;
  border-radius:14px;
  background:rgba(0,136,204,0.2);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.tg-widget__icon svg{width:28px;height:28px;color:#29b6f6}
.tg-widget__text{}
.tg-widget__title{
  font-size:1.1rem;
  font-weight:800;
  color:var(--white);
  margin-bottom:4px;
}
.tg-widget__desc{
  font-size:0.875rem;
  color:var(--text2);
}
.tg-widget__btn{
  margin-left:auto;
  background:#0088cc;
  color:var(--white);
  padding:11px 22px;
  border-radius:var(--radius);
  font-weight:700;
  font-size:0.875rem;
  transition:var(--transition);
  white-space:nowrap;
}
.tg-widget__btn:hover{
  background:#29b6f6;
  transform:translateY(-2px);
}

/* === UTILITY === */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.divider{height:1px;background:var(--border);margin:40px 0}
.mb-0{margin-bottom:0}
.mt-8{margin-top:8px}
.mt-16{margin-top:16px}
.mt-24{margin-top:24px}
.mt-32{margin-top:32px}
.mt-48{margin-top:48px}
.flex-wrap{display:flex;flex-wrap:wrap;gap:12px}
.inline-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}

/* === SCROLL REVEAL ANIMATION === */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity 0.6s cubic-bezier(0.4,0,0.2,1),transform 0.6s cubic-bezier(0.4,0,0.2,1);
}
.reveal.visible{opacity:1;transform:none}
.reveal-delay-1{transition-delay:0.1s}
.reveal-delay-2{transition-delay:0.2s}
.reveal-delay-3{transition-delay:0.3s}
.reveal-delay-4{transition-delay:0.4s}

/* ============================================================
   RESPONSIVE — Tablet 640px
   ============================================================ */
@media(min-width:640px){
  .grid-2{grid-template-columns:1fr 1fr}
  .service-cards{grid-template-columns:1fr 1fr}
  .pricing-grid{grid-template-columns:1fr 1fr}
  .why-grid{grid-template-columns:1fr 1fr}
  .team-stats{grid-template-columns:1fr 1fr 1fr 1fr}
  .contact-layout{grid-template-columns:1fr}
  .footer__inner{grid-template-columns:1fr 1fr}
}

/* ============================================================
   RESPONSIVE — Desktop 960px
   ============================================================ */
@media(min-width:960px){
  .nav__links{display:flex}
  .nav__cta{display:inline-flex}
  .nav__burger{display:none}
  .grid-3{grid-template-columns:1fr 1fr 1fr}
  .grid-4{grid-template-columns:1fr 1fr 1fr 1fr}
  .service-cards{grid-template-columns:1fr 1fr}
  .pricing-grid{grid-template-columns:1fr 1fr 1fr}
  .contact-layout{grid-template-columns:1fr 1fr}
  .footer__inner{grid-template-columns:2fr 1fr 1fr 1fr}
  .why-grid{grid-template-columns:1fr 1fr 1fr 1fr}
  .hero__content{max-width:820px}
}

/* === PRINT === */
@media print{
  .nav,.footer,.cta-banner,.hero__bg,.page-hero__bg{display:none}
  body{background:white;color:black}
}


/* ============================================================
   Language Switcher (added in v2)
   ============================================================ */
.lang-switcher {
    display: flex;
    gap: 4px;
    align-items: center;
    margin-right: 8px;
    padding: 4px;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: 999px;
}
.lang-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 28px;
    padding: 0 10px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--text2);
    border-radius: 999px;
    transition: all 0.18s ease;
    text-decoration: none;
}
.lang-btn:hover {
    color: var(--white);
    background: rgba(255,255,255,0.06);
}
.lang-btn--active {
    color: var(--bg);
    background: var(--accent);
}
.lang-btn--active:hover {
    color: var(--bg);
    background: var(--accent);
}
@media (max-width: 1024px) {
    .lang-switcher { margin-right: 0; }
    .lang-btn { min-width: 32px; height: 26px; padding: 0 8px; font-size: 0.68rem; }
}
@media (max-width: 720px) {
    .lang-switcher { display: none; }
}

/* ============================================================
   Hero product preview (added in v2 — replaces fake stats)
   ============================================================ */
.hero__preview {
    margin-top: 56px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    align-items: center;
}
@media (min-width: 960px) {
    .hero__preview {
        grid-template-columns: 2fr 1fr;
        gap: 40px;
    }
}
.hero__preview-frame {
    position: relative;
    background: linear-gradient(135deg, rgba(0,229,160,0.06), rgba(255,107,53,0.04));
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    padding: 8px;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    aspect-ratio: 16 / 10;
}
.hero__preview-frame::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 28px;
    background: rgba(6,11,18,0.5);
    border-bottom: 1px solid var(--border);
    background-image: radial-gradient(circle at 14px 14px, #ff5f57 4px, transparent 5px),
                      radial-gradient(circle at 32px 14px, #febc2e 4px, transparent 5px),
                      radial-gradient(circle at 50px 14px, #28c840 4px, transparent 5px);
}
.hero__preview-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    border-radius: calc(var(--radius-lg) - 8px);
    margin-top: 28px;
}
.hero__preview-placeholder {
    width: 100%;
    height: calc(100% - 28px);
    margin-top: 28px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    color: var(--text3);
    text-align: center;
    font-size: 0.85rem;
    line-height: 1.5;
}
.hero__preview-placeholder svg { color: var(--accent); opacity: 0.5; }
.hero__preview-placeholder small { color: var(--text3); font-size: 0.75rem; }
.hero__preview-caption {
    font-size: 0.95rem;
    color: var(--text2);
    line-height: 1.65;
}
.hero__preview-caption .overline {
    display: block;
    margin-bottom: 8px;
}

/* Контактные карточки */
.contact-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 28px;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 18px;
    transition: all 0.25s ease;
    text-decoration: none;
    color: inherit;
    position: relative;
    overflow: hidden;
}
.contact-card:hover {
    transform: translateY(-3px);
    border-color: var(--accent);
    box-shadow: 0 12px 28px rgba(0,229,160,0.12);
}
.contact-card__icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--accent-glow);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent);
}
.contact-card__icon svg { width: 24px; height: 24px; }
.contact-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--white);
    margin: 0;
}
.contact-card__value {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--accent);
    font-family: ui-monospace, 'SF Mono', Menlo, monospace;
    word-break: break-word;
}
.contact-card__desc {
    font-size: 0.875rem;
    color: var(--text2);
    line-height: 1.5;
    margin: 0;
}
.contact-card__badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    background: rgba(0,229,160,0.08);
    color: var(--accent);
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: 999px;
    border: 1px solid rgba(0,229,160,0.2);
    width: fit-content;
}
.contact-card__badge-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--accent);
    animation: pulse 2s infinite;
}
@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}
 
/* Hours */
.hours-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid var(--border);
    font-size: 0.95rem;
}
.hours-row:last-child { border-bottom: none; }
.hours-row__day { color: var(--text); font-weight: 500; }
.hours-row__time { color: var(--accent); font-weight: 600; font-family: ui-monospace, monospace; }
.hours-row__time--closed { color: var(--text3); }
 
/* Contact Form */
.contact-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.form-field { display: flex; flex-direction: column; gap: 6px; }
.form-field label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text);
}
.form-field input,
.form-field textarea,
.form-field select {
    padding: 12px 14px;
    background: var(--bg);
    border: 1px solid var(--border);
    border-radius: 10px;
    color: var(--white);
    font-size: 0.95rem;
    font-family: inherit;
    transition: border-color 0.2s;
}
.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus {
    outline: none;
    border-color: var(--accent);
}
.form-field textarea {
    resize: vertical;
    min-height: 110px;
}
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
@media (max-width: 600px) {
    .form-row { grid-template-columns: 1fr; }
}
 
/* Yii2 validation errors */
.form-field .help-block {
    font-size: 0.8rem;
    color: #ff5b5b;
    margin: 2px 0 0;
}
.form-field.has-error input,
.form-field.has-error textarea,
.form-field.has-error select {
    border-color: #ff5b5b;
}
 
/* Flash messages */
.alert {
    padding: 14px 18px;
    border-radius: 10px;
    margin-bottom: 20px;
    font-size: 0.95rem;
}
.alert-success {
    background: rgba(0,229,160,0.1);
    border: 1px solid rgba(0,229,160,0.3);
    color: var(--accent);
}
.alert-danger {
    background: rgba(255,91,91,0.1);
    border: 1px solid rgba(255,91,91,0.3);
    color: #ff5b5b;
}

/* Подсказка "увеличить" поверх preview изображения */
.hero__preview-frame {
    position: relative;
}
.preview-zoom-hint {
    position: absolute;
    bottom: 12px;
    right: 12px;
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(6px);
    color: rgba(255,255,255,0.85);
    font-size: 0.75rem;
    font-weight: 500;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.15);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.hero__preview-frame:hover .preview-zoom-hint {
    opacity: 1;
}
/* На мобиле всегда видна */
@media (max-width: 768px) {
    .preview-zoom-hint {
        opacity: 1;
    }
}
 
/* ============================================================
   MOBILE NAV FIX — добавь в конец web/css/styles.css
   ============================================================ */

/* На мобиле скрываем кнопку CTA, lang-switcher остаётся */
@media (max-width: 768px) {
    .nav__cta {
        display: none !important;
    }

    /* Lang switcher — всегда виден рядом с burger */
    .lang-switcher {
        display: flex !important;
        align-items: center;
        gap: 4px;
        order: 2;
    }

    .nav__burger {
        order: 3;
    }

    /* Компактнее кнопки языка на мобиле */
    .lang-btn {
        padding: 5px 10px;
        font-size: 0.75rem;
        min-width: 34px;
        text-align: center;
    }
}

/* На десктопе — всё как было */
@media (min-width: 769px) {
    .lang-switcher {
        display: flex;
    }
    .nav__cta {
        display: inline-flex;
    }
}

/* ============================================================
   ACCESSIBILITY FIX — Footer contrast (WCAG AA 4.5:1)
   ============================================================ */

/* --text3 (#4a7070) на тёмном фоне не проходит WCAG AA
   Заменяем на более светлые цвета */

.footer__tagline {
  color: #7fa8a6; /* было --text3 #4a7070, теперь контраст ~5.2:1 */
}

.footer__col-title {
  color: #7fa8a6; /* было --text3, теперь контраст ~5.2:1 */
}

.footer__copy {
  color: #7fa8a6; /* было --text3, теперь контраст ~5.2:1 */
}

/* ============================================================
   ARTICLE CARDS — добавь в конец web/css/styles.css
   ============================================================ */

/* Сетка статей */
.articles-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 24px;
    margin-top: 8px;
}

/* Карточка статьи */
.article-card {
    background: var(--card, var(--surface));
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: transform 0.25s ease, border-color 0.25s ease;
    display: flex;
    flex-direction: column;
}
.article-card:hover {
    transform: translateY(-3px);
    border-color: var(--accent);
}

/* Обложка */
.article-card__img {
    width: 100%;
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--surface2);
}
.article-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
.article-card:hover .article-card__img img {
    transform: scale(1.04);
}
.article-card__img a {
    display: block;
    width: 100%;
    height: 100%;
}

/* Тело карточки */
.article-card__body {
    padding: 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* Мета (дата) */
.article-card__meta {
    margin-bottom: 8px;
}
.article-card__date {
    font-size: 0.8rem;
    color: var(--text3);
    letter-spacing: 0.04em;
}

/* Заголовок */
.article-card__title {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--white);
    line-height: 1.4;
    margin-bottom: 10px;
}

/* Описание */
.article-card__excerpt {
    font-size: 0.875rem;
    color: var(--text2);
    line-height: 1.6;
    margin-bottom: 16px;
    flex: 1;
    /* Обрезаем длинный текст */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Ссылка "Читать" */
.article-card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--accent);
    margin-top: auto;
    transition: gap 0.2s ease;
}
.article-card__link:hover {
    gap: 10px;
}
.article-card__link svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

/* ── Featured article ─────────────────────────────────────── */
.featured-article {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: center;
    background: var(--card, var(--surface));
    border: 1px solid var(--border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    margin-bottom: 40px;
}
.featured-article__img {
    width: 100%;
    aspect-ratio: 16/9;
    overflow: hidden;
    background: var(--surface2);
}
.featured-article__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.3s ease;
}
.featured-article:hover .featured-article__img img {
    transform: scale(1.03);
}
.featured-article__img a {
    display: block;
    width: 100%;
    height: 100%;
}
.featured-article__body {
    padding: 32px 32px 32px 0;
}

/* Если нет обложки — статья занимает всю ширину */
.featured-article:not(:has(.featured-article__img)) {
    grid-template-columns: 1fr;
}
.featured-article:not(:has(.featured-article__img)) .featured-article__body {
    padding: 32px;
}

@media (max-width: 768px) {
    .featured-article {
        grid-template-columns: 1fr;
    }
    .featured-article__body {
        padding: 20px !important;
    }
    .articles-grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   ARTICLE CARDS — ANIMATIONS & UNIFORM IMAGES
   Добавь в конец web/css/styles.css
   ============================================================ */

/* ── Одинаковые размеры изображений ─────────────────────────── */
.article-card__img {
    width: 100%;
    height: 200px;           /* фиксированная высота — все одинаковые */
    overflow: hidden;
    background: var(--surface2);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
    flex-shrink: 0;
}
.article-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;       /* обрезает по центру, не растягивает */
    object-position: center;
    display: block;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.article-card__img a {
    display: block;
    width: 100%;
    height: 100%;
}

/* Featured — чуть выше */
.featured-article__img {
    height: 280px;
    overflow: hidden;
    background: var(--surface2);
    flex-shrink: 0;
}
.featured-article__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.featured-article__img a {
    display: block;
    width: 100%;
    height: 100%;
}

/* ── Hover — увеличение картинки ────────────────────────────── */
.article-card:hover .article-card__img img {
    transform: scale(1.06);
}
.featured-article:hover .featured-article__img img {
    transform: scale(1.04);
}

/* ── Анимация карточек при появлении ────────────────────────── */

/* Каждая карточка появляется снизу с задержкой */
.articles-grid .article-card {
    opacity: 0;
    transform: translateY(28px);
    transition:
        opacity 0.55s cubic-bezier(0.4, 0, 0.2, 1),
        transform 0.55s cubic-bezier(0.4, 0, 0.2, 1),
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}
.articles-grid.visible .article-card:nth-child(1) { opacity:1; transform:none; transition-delay: 0s; }
.articles-grid.visible .article-card:nth-child(2) { opacity:1; transform:none; transition-delay: 0.08s; }
.articles-grid.visible .article-card:nth-child(3) { opacity:1; transform:none; transition-delay: 0.16s; }
.articles-grid.visible .article-card:nth-child(4) { opacity:1; transform:none; transition-delay: 0.24s; }
.articles-grid.visible .article-card:nth-child(5) { opacity:1; transform:none; transition-delay: 0.32s; }
.articles-grid.visible .article-card:nth-child(6) { opacity:1; transform:none; transition-delay: 0.40s; }
.articles-grid.visible .article-card:nth-child(n+7) { opacity:1; transform:none; transition-delay: 0.48s; }

/* Featured — появляется слева */
.featured-article {
    opacity: 0;
    transform: translateX(-20px);
    transition:
        opacity 0.7s cubic-bezier(0.4, 0, 0.2, 1),
        transform 0.7s cubic-bezier(0.4, 0, 0.2, 1);
}
.featured-article.visible {
    opacity: 1;
    transform: none;
}

/* ── Hover эффект карточки ──────────────────────────────────── */
.article-card:hover {
    transform: translateY(-4px);
    border-color: rgba(0, 229, 160, 0.4);
    box-shadow: 0 12px 32px rgba(0, 229, 160, 0.08);
}

/* Ссылка "Читать" — стрелка двигается при hover */
.article-card__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--accent);
    margin-top: auto;
    padding-top: 16px;
    text-decoration: none;
}
.article-card__link svg {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: transform 0.25s ease;
}
.article-card__link:hover svg {
    transform: translateX(4px);
}

/* ── Skeleton shimmer пока картинка грузится ────────────────── */
@keyframes shimmer {
    0%   { background-position: -400px 0; }
    100% { background-position: 400px 0; }
}
.article-card__img:not(:has(img[src])),
.article-card__img img:not([src]) {
    background: linear-gradient(90deg, var(--surface) 25%, var(--surface2) 50%, var(--surface) 75%);
    background-size: 800px 100%;
    animation: shimmer 1.6s infinite linear;
}

/* ── Мобильные ──────────────────────────────────────────────── */
@media (max-width: 768px) {
    .article-card__img  { height: 180px; }
    .featured-article__img { height: 200px; }
    .articles-grid {
        grid-template-columns: 1fr;
    }
    .featured-article {
        grid-template-columns: 1fr;
        transform: translateY(20px); /* на мобиле — снизу */
    }
}