:root{
  --bg:#070707;
  --bg-2:#0d0d0d;
  --surface:#121212;
  --surface-2:#171717;
  --text:#f7f7f5;
  --muted:#9b9b9b;
  --line:rgba(255,255,255,.12);
  --red:#f12b2f;
  --red-2:#bd1117;
  --white:#fff;
  --radius:28px;
  --shadow:0 28px 90px rgba(0,0,0,.35);
  --container:min(1320px, calc(100vw - 40px));
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
  background:var(--bg);
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:"Manrope",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body.no-scroll{
  overflow:hidden;
}

a{
  color:inherit;
  text-decoration:none;
}

button,
input,
textarea{
  font:inherit;
}

img{
  display:block;
  max-width:100%;
}

::selection{
  background:var(--red);
  color:white;
}

.container{
  width:var(--container);
  margin-inline:auto;
}

.skip-link{
  position:fixed;
  left:16px;
  top:-50px;
  z-index:9999;
  background:#fff;
  color:#000;
  padding:12px 16px;
  border-radius:10px;
}

.skip-link:focus{
  top:16px;
}

/* =========================
   HEADER
========================= */

.site-header{
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  padding:18px 0;
  transition:
    background .35s ease,
    border-color .35s ease,
    backdrop-filter .35s ease;
  border-bottom:1px solid transparent;
}

.site-header.scrolled{
  background:rgba(7,7,7,.74);
  backdrop-filter:blur(18px);
  border-color:rgba(255,255,255,.08);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}

.brand{
  display:inline-flex;
  align-items:center;
  gap:11px;
  font-weight:800;
  letter-spacing:-.04em;
  font-size:22px;
  white-space:nowrap;
}

.brand-word>span{
  color:var(--red);
}

.brand-mark{
  position:relative;
  width:31px;
  height:31px;
  border:1px solid rgba(255,255,255,.7);
  border-radius:50%;
  display:grid;
  place-items:center;
}

.brand-mark:before,
.brand-mark:after{
  content:"";
  position:absolute;
  background:var(--red);
  transform:skewX(-20deg);
}

.brand-mark:before{
  width:13px;
  height:3px;
  top:9px;
  left:8px;
}

.brand-mark:after{
  width:13px;
  height:3px;
  bottom:9px;
  right:8px;
}

.brand-image-link{
  display:inline-flex!important;
  align-items:center!important;
  text-decoration:none!important;
}

.site-brand-logo{
  display:block;
  width:168px;
  height:auto;
  max-height:48px;
  object-fit:contain;
  object-position:left center;
}

.desktop-nav{
  display:flex;
  gap:34px;
  margin-left:auto;
}

.desktop-nav a{
  font-size:14px;
  color:#d3d3d3;
  transition:color .2s ease;
}

.desktop-nav a:hover{
  color:#fff;
}

/* =========================
   BUTTONS
========================= */

.btn{
  min-height:54px;
  padding:0 22px;
  border-radius:999px;
  border:1px solid transparent;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  font-weight:700;
  font-size:14px;
  cursor:pointer;
  transition:
    transform .25s ease,
    background .25s ease,
    border-color .25s ease,
    color .25s ease;
  will-change:transform;
}

.btn:hover{
  transform:translateY(-2px);
}

.btn-primary{
  background:var(--red);
  color:#fff;
  box-shadow:0 10px 30px rgba(241,43,47,.22);
}

.btn-primary:hover{
  background:#ff3e42;
}

.btn-small{
  min-height:44px;
  padding:0 18px;
  font-size:13px;
}

.btn-ghost{
  border-color:rgba(255,255,255,.24);
  background:rgba(10,10,10,.15);
  backdrop-filter:blur(8px);
  color:#fff;
}

.btn-ghost:hover{
  border-color:rgba(255,255,255,.5);
  background:rgba(255,255,255,.07);
}

.btn-light{
  background:#fff;
  color:#111;
  min-height:58px;
}

.btn-light:hover{
  background:#f1f1f1;
}

.menu-btn,
.mobile-menu{
  display:none;
}

/* =========================
   HERO
========================= */

.hero{
  position:relative;
  min-height:100svh;
  display:flex;
  align-items:flex-end;
  isolation:isolate;
  overflow:hidden;
}

.hero-media{
  position:absolute;
  inset:0;
  z-index:-4;
  background-image:url("assets/images/hero-main.jpg");
  background-size:cover;
  background-position:center 52%;
  transform:scale(1.02);
  animation:heroZoom 10s ease-out both;
}

.hero-shade{
  position:absolute;
  inset:0;
  z-index:-3;
  background:
    linear-gradient(
      90deg,
      rgba(0,0,0,.9) 0%,
      rgba(0,0,0,.62) 42%,
      rgba(0,0,0,.1) 72%
    ),
    linear-gradient(
      0deg,
      #070707 0%,
      transparent 32%
    ),
    linear-gradient(
      180deg,
      rgba(0,0,0,.6),
      transparent 26%
    );
}

.hero-grid{
  position:absolute;
  inset:0;
  z-index:-2;
  opacity:.11;
  background-image:
    linear-gradient(
      rgba(255,255,255,.18) 1px,
      transparent 1px
    ),
    linear-gradient(
      90deg,
      rgba(255,255,255,.18) 1px,
      transparent 1px
    );
  background-size:80px 80px;
  mask-image:linear-gradient(90deg,#000,transparent 72%);
}

.hero-content{
  padding-top:160px;
  padding-bottom:80px;
}

.eyebrow,
.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#bcbcbc;
}

.eyebrow:before,
.kicker:before{
  content:"";
  width:28px;
  height:1px;
  background:var(--red);
}

.hero h1{
  margin:22px 0 22px;
  max-width:980px;
  font-size:clamp(50px,7vw,104px);
  line-height:.94;
  letter-spacing:-.067em;
  font-weight:700;
}

.hero h1 em{
  font-style:normal;
  -webkit-text-stroke:1px rgba(255,255,255,.36);
  color:transparent;
}

.hero-copy{
  max-width:610px;
  margin:0;
  color:#c7c7c7;
  font-size:clamp(16px,1.5vw,20px);
  line-height:1.6;
}

.hero-actions{
  display:flex;
  gap:12px;
  margin-top:34px;
  flex-wrap:wrap;
}

/* =========================
   HERO STATS / TRUST
========================= */

.trust-row{
  display:flex;
  gap:0;
  margin-top:68px;
  width:max-content;
  max-width:100%;
  border-top:1px solid var(--line);
}

.trust-item{
  padding:22px 42px 0 0;
  margin-right:42px;
  display:flex;
  flex-direction:column;
  gap:4px;
  border-right:1px solid var(--line);
  min-width:170px;
}

.trust-item:last-child{
  border-right:0;
  margin-right:0;
  padding-right:0;
}

.trust-item strong{
  font-size:22px;
  letter-spacing:-.04em;
}

.trust-item span{
  font-size:12px;
  color:#a7a7a7;
}

/* акцент для 500+ */

.trust-item-primary{
  position:relative;
  min-width:235px;
  padding-top:26px;
}

.trust-item-primary strong{
  font-size:42px;
  line-height:1;
  color:#fff;
  font-weight:800;
  letter-spacing:-.055em;
}

.trust-item-primary span{
  margin-top:8px;
  color:#d0d0d0;
  font-size:13px;
  font-weight:500;
}

.trust-item-primary::before{
  content:"";
  position:absolute;
  top:-1px;
  left:0;
  width:66px;
  height:2px;
  background:var(--red);
  box-shadow:0 0 18px rgba(241,43,47,.45);
}

.scroll-cue{
  position:absolute;
  right:38px;
  bottom:74px;
  display:flex;
  align-items:center;
  gap:10px;
  font-size:10px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#8d8d8d;
  transform:rotate(90deg);
  transform-origin:right bottom;
}

.scroll-cue span{
  width:48px;
  height:1px;
  background:#777;
}

@keyframes heroZoom{
  from{
    transform:scale(1.08);
  }

  to{
    transform:scale(1.02);
  }
}

/* =========================
   SECTIONS
========================= */

.section{
  padding:150px 0;
}

.services{
  background:var(--bg);
}

.section-head{
  display:grid;
  grid-template-columns:1.1fr .6fr;
  align-items:end;
  gap:60px;
  margin-bottom:70px;
}

.section-head h2,
.about h2,
.cta-panel h2{
  margin:18px 0 0;
  font-size:clamp(42px,5vw,74px);
  line-height:.98;
  letter-spacing:-.06em;
}

.section-head p{
  margin:0 0 6px;
  color:var(--muted);
  font-size:16px;
  line-height:1.7;
  max-width:480px;
}

/* =========================
   SERVICES
========================= */

.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}

.service-card{
  position:relative;
  min-height:390px;
  background:linear-gradient(145deg,#121212,#0e0e0e);
  border:1px solid rgba(255,255,255,.09);
  border-radius:var(--radius);
  padding:28px;
  overflow:hidden;
  transition:
    transform .35s cubic-bezier(.2,.8,.2,1),
    border-color .35s ease,
    background .35s ease;
}

.service-card:before{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(
    circle,
    rgba(241,43,47,.26),
    transparent 70%
  );
  right:-130px;
  top:-130px;
  opacity:0;
  transition:
    opacity .35s ease,
    transform .35s ease;
}

.service-card:hover{
  transform:translateY(-8px);
  border-color:rgba(241,43,47,.42);
  background:#131313;
}

.service-card:hover:before{
  opacity:1;
  transform:translate(-28px,28px);
}

.service-index{
  font-size:22px;
  line-height:1;
  color:#8a8a8a;
  font-weight:800;
  letter-spacing:.02em;
}

.service-line{
  height:1px;
  background:var(--line);
  margin:24px 0 95px;
  transform-origin:left;
  transition:background .3s ease;
}

.service-card:hover .service-line{
  background:linear-gradient(
    90deg,
    var(--red),
    var(--line)
  );
}

.service-card h3{
  font-size:24px;
  line-height:1.12;
  letter-spacing:-.04em;
  margin:0 0 14px;
}

.service-card p{
  color:#8e8e8e;
  line-height:1.65;
  margin:0;
  max-width:310px;
  font-size:14px;
}

.card-arrow{
  position:absolute;
  right:28px;
  bottom:28px;
  width:42px;
  height:42px;
  border:1px solid var(--line);
  border-radius:50%;
  display:grid;
  place-items:center;
  color:#999;
  transition:
    transform .3s ease,
    background .3s ease,
    color .3s ease;
}

.service-card:hover .card-arrow{
  transform:rotate(45deg);
  background:var(--red);
  color:white;
  border-color:var(--red);
}

/* =========================
   ABOUT
========================= */

.about{
  background:#0a0a0a;
  border-top:1px solid rgba(255,255,255,.05);
}

.about-grid{
  display:grid;
  grid-template-columns:.85fr 1.05fr;
  gap:110px;
  align-items:center;
}

.about-copy{
  padding:30px 0;
}

.about-lead{
  max-width:570px;
  color:#a9a9a9;
  line-height:1.8;
  font-size:16px;
  margin:30px 0 44px;
}

.benefit-list{
  border-top:1px solid var(--line);
}

.benefit-list>div{
  display:grid;
  grid-template-columns:70px 1fr;
  gap:20px;
  align-items:center;
  padding:20px 0;
  border-bottom:1px solid var(--line);
}

.benefit-list span{
  font-size:11px;
  color:#666;
}

.benefit-list strong{
  font-size:15px;
  font-weight:600;
}

.about-visual{
  position:relative;
  margin:0;
  border-radius:34px;
  overflow:hidden;
  min-height:700px;
  background:#111;
}

.about-visual img{
  width:100%;
  height:700px;
  object-fit:cover;
  filter:saturate(.8) contrast(1.06);
}

.about-visual:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    180deg,
    transparent 55%,
    rgba(0,0,0,.62)
  );
  pointer-events:none;
}

.about-visual figcaption{
  position:absolute;
  z-index:2;
  left:28px;
  right:28px;
  bottom:26px;
  display:flex;
  align-items:end;
  justify-content:space-between;
  color:#fff;
  font-size:16px;
  font-weight:700;
  line-height:1.35;
}

.pulse-dot{
  width:11px;
  height:11px;
  border-radius:50%;
  background:var(--red);
  box-shadow:0 0 0 8px rgba(241,43,47,.12);
  animation:pulse 2s infinite;
}

@keyframes pulse{
  50%{
    box-shadow:0 0 0 14px rgba(241,43,47,0);
  }
}

/* =========================
   CTA
========================= */

.cta-section{
  padding:30px 0 110px;
  background:#0a0a0a;
}

.cta-panel{
  position:relative;
  overflow:hidden;
  min-height:520px;
  background:var(--red);
  border-radius:38px;
  padding:60px;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:50px;
  align-items:end;
  color:white;
}

.cta-panel:before{
  content:"MOVE";
  position:absolute;
  right:-20px;
  top:-60px;
  font-size:260px;
  line-height:1;
  font-weight:800;
  letter-spacing:-.09em;
  color:rgba(0,0,0,.07);
  pointer-events:none;
}

.cta-glow{
  position:absolute;
  width:420px;
  height:420px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  right:18%;
  top:-45%;
  box-shadow:
    0 0 0 70px rgba(255,255,255,.025),
    0 0 0 140px rgba(255,255,255,.018);
}

.kicker-light{
  color:rgba(255,255,255,.7);
}

.kicker-light:before{
  background:#fff;
}

.cta-panel h2{
  font-size:clamp(58px,7vw,98px);
}

.cta-copy p{
  max-width:520px;
  line-height:1.65;
  color:rgba(255,255,255,.82);
  margin:26px 0 0;
}

.cta-actions{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:28px;
  position:relative;
  z-index:2;
}

.quick-links{
  display:flex;
  gap:22px;
  flex-wrap:wrap;
}

.quick-links a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
  white-space:nowrap;
  color:#fff;
  font-family:"Manrope",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:13px;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.4);
  padding-bottom:5px;
  transition:
    opacity .25s ease,
    border-color .25s ease,
    transform .25s ease;
}

.quick-links a:hover{
  border-color:#fff;
  transform:translateY(-2px);
}

.quick-links span{
  margin-left:0;
  font-size:13px;
  font-weight:700;
  line-height:1;
}

/* =========================
   FOOTER
========================= */

.site-footer{
  padding:64px 0 42px;
  border-top:1px solid var(--line);
  background:#080808;
}

.site-footer .footer-grid{
  display:grid;
  grid-template-columns:
    minmax(240px,1.25fr)
    minmax(180px,.8fr)
    minmax(190px,.8fr)
    minmax(120px,.55fr);
  gap:64px;
  align-items:start;
}

.footer-brand{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-width:0;
}

.footer-logo-link{
  display:inline-flex;
  align-items:center;
  text-decoration:none;
  margin-bottom:20px;
}

.footer-logo{
  display:block;
  width:190px;
  height:auto;
  object-fit:contain;
}

.footer-brand p{
  margin:0;
  color:#8a8a8a;
  font-size:13px;
  line-height:1.65;
}

.footer-col{
  display:flex;
  flex-direction:column;
  gap:11px;
  font-size:13px;
}

.footer-col a{
  color:#d5d5d5;
  transition:color .2s ease;
}

.footer-col a:hover{
  color:#fff;
}

.footer-label{
  color:#737373;
  margin-bottom:8px;
}

.footer-meta{
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-end;
  gap:14px;
  color:#6f6f6f;
  font-size:11px;
  min-height:132px;
}

.footer-meta a{
  color:#797979;
}

.footer-meta a:hover{
  color:#fff;
}

/* =========================
   MODAL
========================= */

.modal{
  position:fixed;
  inset:0;
  z-index:300;
  display:none;
  place-items:center;
  padding:20px;
}

.modal.open{
  display:grid;
}

.modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(10px);
}

.modal-card{
  position:relative;
  z-index:2;
  width:min(620px,100%);
  background:#111;
  border:1px solid var(--line);
  border-radius:30px;
  padding:38px;
  box-shadow:var(--shadow);
  animation:modalIn .28s ease both;
}

.modal-card h2{
  font-size:34px;
  letter-spacing:-.05em;
  margin:16px 0 12px;
}

.modal-card>p{
  color:#888;
  line-height:1.6;
  margin:0 0 26px;
}

.modal-close{
  position:absolute;
  right:18px;
  top:18px;
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid var(--line);
  background:transparent;
  color:#fff;
  font-size:24px;
  cursor:pointer;
}

.modal form{
  display:grid;
  gap:16px;
}

.modal label{
  display:grid;
  gap:8px;
}

.modal label span{
  font-size:11px;
  color:#888;
}

.modal input,
.modal textarea{
  width:100%;
  border:1px solid var(--line);
  background:#0c0c0c;
  color:white;
  border-radius:14px;
  padding:14px 16px;
  outline:none;
  resize:vertical;
}

.modal input:focus,
.modal textarea:focus{
  border-color:rgba(241,43,47,.7);
}

.btn-submit{
  width:100%;
  margin-top:4px;
}

.form-note{
  font-size:12px;
  line-height:1.5;
  min-height:18px;
  color:#aaa;
}

.form-note.success{
  color:#d9d9d9;
}

@keyframes modalIn{
  from{
    opacity:0;
    transform:translateY(12px) scale(.98);
  }

  to{
    opacity:1;
    transform:none;
  }
}

/* =========================
   REVEAL
========================= */

.reveal{
  opacity:0;
  transform:translateY(22px);
  transition:
    opacity .8s cubic-bezier(.2,.8,.2,1),
    transform .8s cubic-bezier(.2,.8,.2,1);
}

.reveal.in-view{
  opacity:1;
  transform:none;
}

@media (prefers-reduced-motion:reduce){
  *{
    scroll-behavior:auto!important;
  }

  .reveal{
    opacity:1;
    transform:none;
    transition:none;
  }

  .hero-media{
    animation:none;
  }

  .pulse-dot{
    animation:none;
  }

  .btn,
  .service-card{
    transition:none;
  }
}

/* =========================
   TABLET
========================= */

@media (max-width:980px){

  :root{
    --container:min(100% - 32px, 920px);
  }

  .desktop-nav,
  .desktop-cta{
    display:none;
  }

  .menu-btn{
    display:flex;
    width:44px;
    height:44px;
    border:1px solid var(--line);
    background:rgba(0,0,0,.18);
    border-radius:50%;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:6px;
    padding:0;
  }

  .menu-btn span{
    width:17px;
    height:1px;
    background:#fff;
    transition:transform .25s ease;
  }

  .menu-btn.active span:first-child{
    transform:translateY(3.5px) rotate(45deg);
  }

  .menu-btn.active span:last-child{
    transform:translateY(-3.5px) rotate(-45deg);
  }

  .mobile-menu{
    position:absolute;
    display:block;
    left:16px;
    right:16px;
    top:76px;
    background:rgba(14,14,14,.96);
    border:1px solid var(--line);
    border-radius:22px;
    padding:14px;
    opacity:0;
    pointer-events:none;
    transform:translateY(-8px);
    transition:.25s ease;
    backdrop-filter:blur(20px);
  }

  .mobile-menu.open{
    opacity:1;
    pointer-events:auto;
    transform:none;
  }

  .mobile-menu nav{
    display:grid;
  }

  .mobile-menu a:not(.btn){
    padding:16px 12px;
    border-bottom:1px solid rgba(255,255,255,.07);
    font-size:14px;
  }

  .mobile-menu .btn{
    margin-top:12px;
  }

  .hero-content{
    padding-top:150px;
    padding-bottom:62px;
  }

  .hero h1{
    font-size:clamp(50px,9vw,80px);
    max-width:760px;
  }

  .hero-shade{
    background:
      linear-gradient(
        90deg,
        rgba(0,0,0,.88),
        rgba(0,0,0,.32)
      ),
      linear-gradient(
        0deg,
        #070707,
        transparent 36%
      );
  }

  .scroll-cue{
    display:none;
  }

  .section{
    padding:110px 0;
  }

  .section-head{
    grid-template-columns:1fr;
    gap:30px;
  }

  .service-grid{
    grid-template-columns:1fr 1fr;
  }

  .service-card:last-child{
    grid-column:1/-1;
    min-height:310px;
  }

  .service-line{
    margin-bottom:68px;
  }

  .about-grid{
    grid-template-columns:1fr;
    gap:52px;
  }

  .about-visual,
  .about-visual img{
    min-height:560px;
    height:560px;
  }

  .about-copy{
    padding:0;
  }

  .cta-panel{
    grid-template-columns:1fr;
    min-height:auto;
    padding:48px;
  }

  .cta-actions{
    margin-top:30px;
  }

  .site-footer .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:46px 36px;
  }

  .footer-brand{
    grid-column:1/-1;
  }

  .footer-meta{
    align-items:flex-start;
    justify-content:flex-start;
    min-height:0;
  }
}

/* =========================
   MOBILE
========================= */

@media (max-width:640px){

  :root{
    --container:calc(100% - 28px);
    --radius:22px;
  }

  .site-header{
    padding:13px 0;
  }

  .site-brand-logo{
    width:132px;
    max-height:40px;
  }

  .brand{
    font-size:20px;
  }

  .brand-mark{
    width:29px;
    height:29px;
  }

  .hero{
    min-height:100svh;
  }

  .hero-media{
    background-position:60% center;
  }

  .hero-shade{
    background:
      linear-gradient(
        180deg,
        rgba(0,0,0,.45) 0%,
        rgba(0,0,0,.4) 30%,
        rgba(0,0,0,.9) 72%,
        #070707 100%
      );
  }

  .hero-grid{
    background-size:54px 54px;
  }

  .hero-content{
    padding-top:124px;
    padding-bottom:38px;
  }
.hero h1{
  font-size:clamp(36px,10.5vw,48px);
  line-height:1;
  margin-top:16px;
  max-width:100%;
}

  .hero h1 br{
    display:none;
  }

  .hero-copy{
    font-size:15px;
    line-height:1.6;
  }

  .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    margin-top:26px;
  }

  .btn{
    width:100%;
    min-height:56px;
  }

  .trust-row{
    width:100%;
    margin-top:38px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
  }

  .trust-item{
    min-width:0;
    margin:0;
    padding:16px 10px 0;
    border-right:1px solid var(--line);
  }

  .trust-item:first-child{
    padding-left:0;
  }

  .trust-item strong{
  font-size:24px;
  line-height:1;
  font-weight:800;
}

  .trust-item span{
    font-size:9px;
    line-height:1.35;
  }

  .trust-item-primary{
    min-width:0;
    padding-top:18px;
  }

  .trust-item-primary strong{
    font-size:27px;
  }

  .trust-item-primary span{
    font-size:10px;
  }

  .trust-item-primary::before{
    width:42px;
  }

  .section{
    padding:84px 0;
  }

  .section-head{
    margin-bottom:38px;
  }

  .section-head h2,
  .about h2{
    font-size:42px;
  }

  .section-head p{
    font-size:14px;
  }

  .service-grid{
    grid-template-columns:1fr;
  }

  .service-card,
  .service-card:last-child{
    grid-column:auto;
    min-height:300px;
    padding:22px;
  }

  .service-line{
    margin:20px 0 60px;
  }

  .service-card h3{
    font-size:22px;
  }

  .service-card p{
    font-size:13px;
  }

  .about-grid{
    gap:36px;
  }

  .about-lead{
    font-size:14px;
    margin:24px 0 32px;
  }

  .benefit-list>div{
    grid-template-columns:44px 1fr;
    padding:17px 0;
  }

  .about-visual,
  .about-visual img{
    height:440px;
    min-height:440px;
  }

  .about-visual{
    border-radius:24px;
  }

  .about-visual figcaption{
    left:20px;
    right:20px;
    bottom:20px;
    font-size:14px;
  }

  .cta-section{
    padding:8px 0 72px;
  }

  .cta-panel{
    padding:30px 24px;
    border-radius:26px;
    min-height:520px;
    align-content:space-between;
  }

  .cta-panel:before{
    font-size:150px;
    top:-20px;
  }

  .cta-panel h2{
    font-size:58px;
  }

  .cta-copy p{
    font-size:14px;
  }

  .cta-actions{
    width:100%;
    gap:24px;
  }

  .quick-links{
    width:100%;
    justify-content:space-between;
    gap:10px;
  }

  .quick-links a{
    font-size:11px;
  }

  .site-footer{
    padding-top:44px;
    padding-bottom:34px;
  }

  .site-footer .footer-grid{
    grid-template-columns:1fr;
    gap:32px;
  }

  .footer-brand,
  .footer-col,
  .footer-meta{
    grid-column:auto;
  }

  .footer-logo{
    width:165px;
  }

  .footer-brand p{
    font-size:12px;
  }

  .footer-meta{
    padding-top:18px;
    border-top:1px solid var(--line);
    align-items:flex-start;
    justify-content:flex-start;
  }

  .modal-card{
    padding:30px 20px 22px;
    border-radius:24px;
  }

  .modal-card h2{
    font-size:29px;
  }

  .modal-card>p{
    font-size:13px;
  }

  .modal-close{
    top:14px;
    right:14px;
  }
}

/* =======================================================
   BACK TO TOP
   ======================================================= */

.back-to-top {
  position: fixed;
  right: 28px;
  bottom: 28px;

  z-index: 900;

  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  min-width: 150px;
  height: 58px;
  padding: 0 22px;

  border: 0;
  border-radius: 999px;

  background: #ff2b2f;
  color: #fff;

  font: inherit;
  font-weight: 700;
  font-size: 14px;

  cursor: pointer;

  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.35),
    0 0 24px rgba(255, 43, 47, 0.12);

  opacity: 0;
  visibility: hidden;

  transform: translateY(18px);

  pointer-events: none;

  transition:
    opacity 0.25s ease,
    transform 0.25s ease,
    visibility 0.25s ease,
    background 0.2s ease;
}

.back-to-top.visible {
  opacity: 1;
  visibility: visible;

  transform: translateY(0);

  pointer-events: auto;
}

.back-to-top:hover {
  background: #ff3b3f;
}

.back-to-top-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  font-size: 22px;
  line-height: 1;
}

.back-to-top-text {
  white-space: nowrap;
}


/* MOBILE */

@media (max-width: 700px) {

  .back-to-top {
    right: 16px;
    bottom: 16px;

    min-width: 0;
    width: 54px;
    height: 54px;

    padding: 0;

    border-radius: 50%;
  }

  .back-to-top-text {
    display: none;
  }

  .back-to-top-arrow {
    font-size: 25px;
  }
}

