
:root{
  --bg:#06080F;
  --bg-soft:#0A0F1C;
  --surface:#0F1729;
  --surface-2:#141E36;
  --blue:#3B82F6;
  --blue-light:#60A5FA;
  --blue-deep:#1D4ED8;
  --glow:rgba(59,130,246,.45);
  --text:#F3F6FB;
  --muted:#93A1B8;
  --muted-2:#6B7A93;
  --line:rgba(255,255,255,.09);
  --maxw:1280px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{ background:var(--bg); color:var(--text); font-family:'Inter',sans-serif; line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
h1,h2,h3,h4{ font-family:'Manrope',sans-serif; font-weight:800; letter-spacing:-0.02em; color:var(--text); line-height:1.1;}
a{ color:inherit; text-decoration:none;}
img{ max-width:100%; display:block;}
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 32px;}
::selection{ background:var(--blue); color:#fff;}

/* Scroll progress bar */
.scroll-progress{ position:fixed; top:0; left:0; height:3px; background:linear-gradient(90deg, var(--blue), var(--blue-light)); width:0%; z-index:999; box-shadow:0 0 12px var(--glow); transition:width .1s linear;}

.eyebrow{ display:inline-flex; align-items:center; gap:10px; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--blue-light); font-weight:700; margin-bottom:18px;}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--blue); border-radius:2px;}

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:9px; padding:16px 32px; border-radius:50px; font-weight:700; font-size:14.5px; cursor:pointer; transition:all .3s cubic-bezier(.2,.8,.2,1); border:1px solid transparent; position:relative; overflow:hidden;}
.btn-primary{ background:var(--blue); color:#fff; box-shadow:0 8px 24px -8px var(--glow);}
.btn-primary:hover{ background:var(--blue-light); transform:translateY(-3px); box-shadow:0 16px 36px -10px var(--glow);}
.btn-ghost{ border-color:rgba(255,255,255,.25); color:var(--text); backdrop-filter:blur(6px);}
.btn-ghost:hover{ border-color:var(--blue-light); color:var(--blue-light); background:rgba(59,130,246,.08);}

/* FLOATING GLASS NAVBAR */
.nav-wrap{ position:sticky; top:0; z-index:200; display:flex; justify-content:center; padding:18px 20px 0;}
header{ width:100%; max-width:1180px; background:rgba(15,23,41,.6); backdrop-filter:blur(18px) saturate(160%); border:1px solid rgba(255,255,255,.08); border-radius:18px; transition:.35s; box-shadow:0 20px 50px -20px rgba(0,0,0,.6);}
header.scrolled{ background:rgba(10,15,28,.85); border-color:rgba(255,255,255,.12);}
nav{ display:flex; align-items:center; justify-content:space-between; padding:13px 22px;}
.logo-mark{ display:flex; align-items:center; gap:11px;}
.logo-mark img{ height:34px; width:34px; object-fit:contain;}
.logo-text{ font-family:'Manrope'; font-weight:800; font-size:16.5px; letter-spacing:-.01em;}
.logo-text span{ color:var(--blue-light);}
.nav-links{ display:flex; gap:2px; align-items:center;}
.nav-links a{ position:relative; font-size:14px; font-weight:600; color:var(--muted); padding:10px 16px; border-radius:30px; transition:.25s;}
.nav-links a:hover{ color:var(--text); background:rgba(255,255,255,.06);}
.nav-links a.active{ color:#fff; background:var(--blue);}
.nav-cta{ display:flex; align-items:center; gap:14px;}
.burger{ display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; z-index:300;}
.burger span{ width:22px; height:2px; background:var(--text); border-radius:2px;}

/* HERO with Ken Burns */
.hero{ position:relative; min-height:92vh; display:flex; align-items:flex-end; overflow:hidden; margin-top:-92px; padding-top:92px;}
.hero-media{ position:absolute; inset:0; z-index:0; overflow:hidden;}
.hero-media img{ width:100%; height:100%; object-fit:cover; animation:kenburns 22s ease-in-out infinite alternate;}
@keyframes kenburns{ 0%{ transform:scale(1) translate(0,0);} 100%{ transform:scale(1.12) translate(-1%,-2%);} }
.hero-overlay{ position:absolute; inset:0; z-index:1; background:
  linear-gradient(180deg, rgba(6,8,15,.55) 0%, rgba(6,8,15,.35) 35%, rgba(6,8,15,.92) 92%, var(--bg) 100%);}
.hero-inner{ position:relative; z-index:2; width:100%; padding:140px 0 90px;}
.hero-badge{ display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.06); backdrop-filter:blur(8px); border-radius:30px; font-size:12.5px; font-weight:600; color:var(--blue-light); margin-bottom:26px;}
.hero-badge .dot{ width:7px; height:7px; border-radius:50%; background:var(--blue-light); box-shadow:0 0 10px var(--blue-light); animation:pulse 2s infinite;}
@keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:.3;} }
.hero h1{ font-size:clamp(2.6rem,6vw,5.2rem); max-width:880px; margin-bottom:26px;}
.hero h1 .word{ display:inline-block; opacity:0; transform:translateY(28px); animation:wordIn .7s cubic-bezier(.2,.8,.2,1) forwards;}
@keyframes wordIn{ to{ opacity:1; transform:translateY(0);} }
.hero h1 .accent{ color:var(--blue-light);}
.hero p.lead{ font-size:18.5px; color:var(--muted); max-width:560px; margin-bottom:40px;}
.hero-ctas{ display:flex; gap:16px; flex-wrap:wrap;}
.scroll-cue{ position:absolute; bottom:26px; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--muted-2); font-size:11px; letter-spacing:.1em; text-transform:uppercase;}
.scroll-cue .arrow{ width:18px; height:18px; border-right:2px solid var(--muted-2); border-bottom:2px solid var(--muted-2); transform:rotate(45deg); animation:bounce 1.8s infinite;}
@keyframes bounce{ 0%,100%{ transform:rotate(45deg) translate(0,0);} 50%{ transform:rotate(45deg) translate(5px,5px);} }

/* PAGE HERO (inner pages) */
.page-hero{ position:relative; min-height:62vh; display:flex; align-items:flex-end; overflow:hidden; margin-top:-92px; padding-top:92px;}
.page-hero .hero-inner{ padding:130px 0 70px;}
.page-hero h1{ font-size:clamp(2.2rem,4.6vw,3.6rem);}
.breadcrumb{ font-size:12.5px; color:var(--muted-2); margin-bottom:18px;}
.breadcrumb a{ color:var(--blue-light);}
.breadcrumb a:hover{ text-decoration:underline;}

/* MARQUEE */
.marquee-band{ background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:22px 0; overflow:hidden; position:relative;}
.marquee-track{ display:flex; gap:60px; white-space:nowrap; animation:marquee 28s linear infinite; width:max-content;}
@keyframes marquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }
.marquee-track span{ font-family:'Manrope'; font-weight:700; font-size:15px; color:var(--muted); display:flex; align-items:center; gap:16px;}
.marquee-track span b{ color:var(--blue-light);}
.marquee-track span::after{ content:"◆"; color:var(--blue-deep); margin-left:44px; font-size:10px;}

/* SECTION */
.section{ padding:110px 0;}
.section-tight{ padding:80px 0;}
.alt-bg{ background:var(--bg-soft);}
.section-head{ max-width:680px; margin-bottom:60px;}
.section-head h2{ font-size:clamp(1.9rem,3.6vw,2.8rem);}
.section-head p{ color:var(--muted); font-size:16.5px; margin-top:16px;}

/* STATS COUNTER */
.stats-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);}
.stat-cell{ padding:36px 30px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);}
.stat-cell .num{ font-family:'Manrope'; font-size:42px; font-weight:800; color:var(--blue-light); line-height:1;}
.stat-cell .lbl{ font-size:13.5px; color:var(--muted); margin-top:10px;}

/* ABOUT split */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.split-media{ position:relative; border-radius:22px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 30px 70px -20px rgba(0,0,0,.6);}
.split-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.2,1);}
.split-media:hover img{ transform:scale(1.06);}
.split-media .tag-float{ position:absolute; bottom:20px; left:20px; right:20px; background:rgba(10,15,28,.7); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:16px 18px;}
.split-text p{ color:var(--muted); font-size:16px; margin-bottom:18px;}
.split-text .mini-stats{ display:flex; gap:36px; margin-top:30px; flex-wrap:wrap;}
.mini-stat .num{ font-family:'Manrope'; font-weight:800; font-size:30px; color:var(--blue-light);}
.mini-stat .lbl{ font-size:12.5px; color:var(--muted); margin-top:4px;}

/* MISSION VISION */
.mv-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.mv-card{ background:var(--surface); border:1px solid var(--line); border-radius:22px; padding:44px; position:relative; overflow:hidden;}
.mv-card::before{ content:""; position:absolute; top:-80px; right:-80px; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, var(--glow), transparent 70%); opacity:.5;}
.mv-card h3{ font-size:24px; margin-bottom:16px; position:relative;}
.mv-card p{ color:var(--muted); font-size:15.3px; position:relative;}
.mv-icon{ width:50px; height:50px; border-radius:14px; background:rgba(59,130,246,.12); border:1px solid rgba(59,130,246,.3); display:flex; align-items:center; justify-content:center; margin-bottom:22px; position:relative;}
.mv-icon svg{ width:24px; height:24px; stroke:var(--blue-light);}

/* QUALITY GRID */
.obj-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
.obj-card{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:26px 22px; transition:.3s;}
.obj-card:hover{ border-color:rgba(59,130,246,.4); transform:translateY(-6px); box-shadow:0 20px 40px -16px rgba(0,0,0,.5);}
.obj-num{ font-family:'Manrope'; color:var(--blue-light); font-weight:800; font-size:14px; margin-bottom:12px;}
.obj-card h4{ font-size:15.5px; margin-bottom:8px; font-family:'Inter'; font-weight:700;}
.obj-card p{ font-size:13.3px; color:var(--muted); line-height:1.5;}

/* SERVICE IMAGE CARDS */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.svc-card{ position:relative; border-radius:22px; overflow:hidden; aspect-ratio:3/4; box-shadow:0 20px 50px -20px rgba(0,0,0,.6);}
.svc-card img{ width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.8,.2,1);}
.svc-card:hover img{ transform:scale(1.1);}
.svc-card .overlay{ position:absolute; inset:0; background:linear-gradient(180deg, transparent 30%, rgba(6,8,15,.9) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:28px;}
.svc-card .num{ font-family:'Manrope'; font-size:13px; color:var(--blue-light); font-weight:700; margin-bottom:10px;}
.svc-card h3{ font-size:20px; margin-bottom:10px;}
.svc-card p{ font-size:13.8px; color:var(--muted); margin-bottom:14px;}
.svc-card .svc-link{ font-size:13px; font-weight:700; color:#fff; display:inline-flex; align-items:center; gap:6px;}
.svc-card .svc-link svg{ width:14px; height:14px; transition:.25s;}
.svc-card:hover .svc-link svg{ transform:translateX(5px);}

/* FEATURE ROWS (catalog) */
.feature-row{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; margin-bottom:110px;}
.feature-row:last-child{ margin-bottom:0;}
.feature-row.reverse .f-media{ order:2;}
.feature-row.reverse .f-text{ order:1;}
.f-media{ border-radius:22px; overflow:hidden; aspect-ratio:5/4; position:relative; box-shadow:0 30px 70px -24px rgba(0,0,0,.65);}
.f-media img{ width:100%; height:100%; object-fit:cover;}
.f-media .chip-num{ position:absolute; top:18px; left:18px; background:rgba(10,15,28,.75); backdrop-filter:blur(8px); border:1px solid rgba(255,255,255,.15); border-radius:30px; padding:7px 16px; font-family:'Manrope'; font-weight:800; font-size:13px; color:var(--blue-light);}
.f-text h3{ font-size:26px; margin-bottom:16px;}
.f-text p.desc{ color:var(--muted); font-size:15.5px; margin-bottom:22px;}
.f-list{ display:flex; flex-direction:column; gap:0;}
.f-list .item{ padding:13px 0; border-bottom:1px solid var(--line); font-size:14.5px; color:var(--text); display:flex; gap:10px;}
.f-list .item span{ color:var(--muted);}
.f-list .item::before{ content:"→"; color:var(--blue-light); flex-shrink:0;}

/* SCHOOLS */
.school-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.school-card{ background:var(--surface); border:1px solid var(--line); border-radius:22px; overflow:hidden;}
.school-card .sc-media{ aspect-ratio:16/9; overflow:hidden;}
.school-card .sc-media img{ width:100%; height:100%; object-fit:cover; transition:.6s;}
.school-card:hover .sc-media img{ transform:scale(1.08);}
.school-card .sc-body{ padding:32px;}
.school-tag{ font-size:12px; font-weight:700; color:var(--blue-light); text-transform:uppercase; letter-spacing:.1em; display:block; margin-bottom:10px;}
.school-card h3{ font-size:21px; margin-bottom:18px;}
.school-sub{ margin-bottom:16px;}
.school-sub h5{ font-size:14.5px; color:var(--text); margin-bottom:5px; font-weight:700;}
.school-sub p{ font-size:13.7px; color:var(--muted);}
.modalidades{ display:flex; gap:10px; margin-top:24px; flex-wrap:wrap;}
.modalidades span{ font-size:12.5px; font-weight:600; padding:8px 16px; border:1px solid rgba(59,130,246,.35); border-radius:30px; color:var(--blue-light); background:rgba(59,130,246,.08);}

/* TIMELINE */
.timeline{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative;}
.timeline::before{ content:""; position:absolute; top:25px; left:0; right:0; height:1px; background:linear-gradient(90deg, transparent, var(--blue), transparent);}
.tl-step{ padding:0 18px; position:relative;}
.tl-step .tl-dot{ width:50px; height:50px; border-radius:50%; background:var(--surface); border:1px solid var(--blue); display:flex; align-items:center; justify-content:center; font-family:'Manrope'; font-weight:800; color:var(--blue-light); margin-bottom:22px; position:relative; z-index:2; box-shadow:0 0 0 6px var(--bg);}
.tl-step h4{ font-size:16px; margin-bottom:8px; font-family:'Inter'; font-weight:700;}
.tl-step p{ font-size:13.5px; color:var(--muted);}

/* GALLERY (casos) */
.gallery-grid{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:160px; gap:14px;}
.g-item{ position:relative; border-radius:16px; overflow:hidden; grid-column:span 1; grid-row:span 1;}
.g-item.big{ grid-column:span 2; grid-row:span 2;}
.g-item img{ width:100%; height:100%; object-fit:cover; transition:transform .6s;}
.g-item:hover img{ transform:scale(1.1);}
.g-item .g-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, transparent 50%, rgba(6,8,15,.92) 100%); display:flex; flex-direction:column; justify-content:flex-end; padding:16px; opacity:0; transition:.3s;}
.g-item:hover .g-overlay{ opacity:1;}
.g-item .g-overlay .code{ font-family:'Manrope'; font-size:12px; color:var(--blue-light); font-weight:700;}
.g-item .g-overlay .name{ font-size:13.5px; font-weight:600; margin-top:4px;}

.registry-wrap{ background:var(--surface); border:1px solid var(--line); border-radius:18px; overflow:hidden; overflow-x:auto; margin-top:40px;}
table.registry{ width:100%; border-collapse:collapse; font-size:13.8px; min-width:640px;}
table.registry thead th{ text-align:left; font-family:'Manrope'; font-size:11px; text-transform:uppercase; letter-spacing:.08em; color:var(--blue-light); padding:16px 20px; border-bottom:1px solid var(--line); font-weight:700;}
table.registry tbody td{ padding:15px 20px; border-bottom:1px solid var(--line); color:var(--muted);}
table.registry tbody tr:hover{ background:rgba(59,130,246,.05);}
table.registry .code{ font-family:'Manrope'; color:var(--text); font-weight:700; font-size:13px;}

.lines-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:24px;}
.line-card{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:24px;}
.line-card .lc-code{ font-family:'Manrope'; font-size:11.5px; color:var(--blue-light); font-weight:700; margin-bottom:10px; display:block;}
.line-card h5{ font-size:15px; margin-bottom:8px;}
.line-card p{ font-size:12.8px; color:var(--muted); line-height:1.5;}

/* VALUE */
.value-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.value-card{ padding-top:24px; border-top:2px solid var(--blue);}
.value-num{ font-family:'Manrope'; font-size:30px; font-weight:800; color:var(--blue-light); margin-bottom:14px;}
.value-card h4{ font-size:17px; margin-bottom:10px; font-family:'Inter'; font-weight:700;}
.value-card p{ font-size:14px; color:var(--muted);}

/* CONTACT */
.contact-band{ position:relative; border-radius:28px; overflow:hidden; min-height:420px; display:flex; align-items:center;}
.contact-band .cb-media{ position:absolute; inset:0;}
.contact-band .cb-media img{ width:100%; height:100%; object-fit:cover; filter:brightness(.45) saturate(1.1);}
.contact-band .cb-overlay{ position:absolute; inset:0; background:linear-gradient(120deg, rgba(6,8,15,.95) 30%, rgba(6,8,15,.55) 100%);}
.contact-card{ position:relative; z-index:2; background:rgba(15,23,41,.55); backdrop-filter:blur(20px); border:1px solid rgba(255,255,255,.12); border-radius:22px; padding:44px; margin:30px; max-width:480px;}
.contact-card .row{ display:flex; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); font-size:14px;}
.contact-card .row:last-child{ border-bottom:none;}
.contact-card .k{ color:var(--muted); font-size:12.5px;}
.contact-card .v{ font-weight:700; text-align:right; max-width:260px;}

/* CTA */
.cta-band{ background:linear-gradient(135deg, var(--surface), var(--bg-soft)); border:1px solid var(--line); border-radius:28px; padding:80px 60px; text-align:center; position:relative; overflow:hidden;}
.cta-band::before{ content:""; position:absolute; width:480px; height:480px; border-radius:50%; background:radial-gradient(circle, var(--glow), transparent 70%); top:-220px; left:50%; transform:translateX(-50%); opacity:.6;}
.cta-band h2{ font-size:clamp(2rem,4.4vw,3.2rem); margin-bottom:18px; position:relative;}
.cta-band p{ color:var(--muted); max-width:520px; margin:0 auto 36px; font-size:16px; position:relative;}
.cta-band .btn-row{ position:relative; display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* FOOTER */
footer{ padding:90px 0 36px; border-top:1px solid var(--line); margin-top:40px;}
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:50px; margin-bottom:56px;}
.foot-brand .logo-text{ font-size:20px; margin-bottom:14px;}
.foot-brand p{ color:var(--muted); font-size:14px; max-width:280px; line-height:1.6;}
footer h5{ font-family:'Manrope'; font-size:12px; color:var(--blue-light); text-transform:uppercase; letter-spacing:.1em; margin-bottom:18px; font-weight:700;}
footer .flinks{ display:flex; flex-direction:column; gap:12px;}
footer .flinks a, footer .flinks span{ color:var(--muted); font-size:14px;}
footer .flinks a:hover{ color:var(--blue-light);}
.foot-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:30px; border-top:1px solid var(--line); font-size:13px; color:var(--muted-2); flex-wrap:wrap; gap:14px;}

.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1);}
.reveal.in{ opacity:1; transform:translateY(0);}
.reveal-scale{ opacity:0; transform:scale(.94); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1);}
.reveal-scale.in{ opacity:1; transform:scale(1);}
.stagger.in > *{ animation:staggerIn .6s cubic-bezier(.2,.8,.2,1) backwards;}
.stagger.in > *:nth-child(1){ animation-delay:.05s;}
.stagger.in > *:nth-child(2){ animation-delay:.12s;}
.stagger.in > *:nth-child(3){ animation-delay:.19s;}
.stagger.in > *:nth-child(4){ animation-delay:.26s;}
@keyframes staggerIn{ from{ opacity:0; transform:translateY(22px);} to{ opacity:1; transform:translateY(0);} }

@media (max-width:980px){
  .split{ grid-template-columns:1fr;}
  .mv-grid{ grid-template-columns:1fr;}
  .obj-grid{ grid-template-columns:repeat(2,1fr);}
  .svc-grid{ grid-template-columns:1fr;}
  .feature-row{ grid-template-columns:1fr; gap:30px; margin-bottom:70px;}
  .feature-row.reverse .f-media,.feature-row.reverse .f-text{ order:0;}
  .school-grid{ grid-template-columns:1fr;}
  .timeline{ grid-template-columns:1fr; gap:36px;}
  .timeline::before{ display:none;}
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:160px;}
  .g-item.big{ grid-column:span 2; grid-row:span 1;}
  .lines-grid{ grid-template-columns:repeat(2,1fr);}
  .value-grid{ grid-template-columns:repeat(2,1fr);}
  .stats-row{ grid-template-columns:repeat(2,1fr);}
  .foot-grid{ grid-template-columns:1fr 1fr; gap:36px;}
  .contact-card{ max-width:none;}
}
@media (max-width:760px){
  .nav-links{ position:fixed; top:0; right:0; height:100vh; width:80%; max-width:320px; background:var(--bg-soft); flex-direction:column; align-items:flex-start; justify-content:center; padding:40px; gap:8px; transform:translateX(100%); transition:.35s; border-left:1px solid var(--line);}
  .nav-links.open{ transform:translateX(0);}
  .nav-links a{ font-size:17px; width:100%; padding:14px 16px;}
  .burger{ display:flex;}
  .nav-cta .btn-ghost{ display:none;}
  .nav-wrap{ padding:14px 16px 0;}
  .wrap{ padding:0 20px;}
  .section{ padding:76px 0;}
  .obj-grid{ grid-template-columns:1fr;}
  .gallery-grid{ grid-template-columns:repeat(2,1fr); grid-auto-rows:130px;}
  .lines-grid{ grid-template-columns:1fr;}
  .value-grid{ grid-template-columns:1fr;}
  .stats-row{ grid-template-columns:1fr 1fr;}
  .foot-grid{ grid-template-columns:1fr; gap:36px;}
  .cta-band{ padding:54px 26px;}
  .contact-card{ margin:18px;}
}
