/* ============ TOKENS ============ */
:root{
  --bg: #14171A;
  --surface: #1A1D20;
  --surface-alt: #202428;
  --line: #33383D;
  --accent: #FFB703;
  --accent-deep: #E0A96D;
  --text: #F5F3EE;
  --text-muted: #8B9198;
  --font-display: 'Oswald', sans-serif;
  --font-body: 'Inter', sans-serif;
  --max-w: 1240px;

  /* zaokrąglenia — spójny system promieni */
  --radius-sm: 10px;
  --radius: 16px;
  --radius-lg: 26px;
  --radius-pill: 999px;

  --ease: cubic-bezier(.22,1,.36,1);
  --header-h: 92px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font:inherit; cursor:pointer;}
h1,h2,h3{font-family:var(--font-display); font-weight:600; line-height:1.1; letter-spacing:0.01em;}
.section-inner{max-width:var(--max-w); margin:0 auto; padding:0 32px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important; scroll-behavior:auto !important;}
  .marquee-track{animation:none !important; transform:none !important;}
  .hero-dust{display:none !important;}
  .reveal{opacity:1 !important; transform:none !important;}
}

:focus-visible{outline:2px solid var(--accent); outline-offset:3px;}

/* ============ SCROLL REVEAL (jeden spójny system animacji wejścia) ============ */
.reveal{
  opacity:0;
  transform:translateY(26px);
  transition:opacity .7s var(--ease), transform .7s var(--ease);
  transition-delay:var(--reveal-delay, 0s);
}
.reveal.is-visible{opacity:1; transform:translateY(0);}

.services-grid .service-card:nth-child(1){--reveal-delay:0s;}
.services-grid .service-card:nth-child(2){--reveal-delay:.08s;}
.services-grid .service-card:nth-child(3){--reveal-delay:.16s;}
.services-grid .service-card:nth-child(4){--reveal-delay:.24s;}
.services-grid .service-card:nth-child(5){--reveal-delay:.32s;}

.project-grid .project-card:nth-child(1){--reveal-delay:0s;}
.project-grid .project-card:nth-child(2){--reveal-delay:.08s;}
.project-grid .project-card:nth-child(3){--reveal-delay:.16s;}
.project-grid .project-card:nth-child(4){--reveal-delay:.24s;}
.project-grid .project-card:nth-child(5){--reveal-delay:.32s;}
.project-grid .project-card:nth-child(6){--reveal-delay:.4s;}

.why-grid .why-card:nth-child(1){--reveal-delay:0s;}
.why-grid .why-card:nth-child(2){--reveal-delay:.06s;}
.why-grid .why-card:nth-child(3){--reveal-delay:.12s;}
.why-grid .why-card:nth-child(4){--reveal-delay:.18s;}
.why-grid .why-card:nth-child(5){--reveal-delay:.24s;}
.why-grid .why-card:nth-child(6){--reveal-delay:.3s;}

.testi-grid .testi-card:nth-child(1){--reveal-delay:0s;}
.testi-grid .testi-card:nth-child(2){--reveal-delay:.1s;}
.testi-grid .testi-card:nth-child(3){--reveal-delay:.2s;}

/* ============ BUTTONS ============ */
.btn{
  position:relative;
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 28px;
  font-family:var(--font-body); font-weight:600; font-size:0.95rem;
  border:1px solid transparent;
  border-radius:var(--radius-pill);
  overflow:hidden;
  transition:transform 0.25s var(--ease), box-shadow 0.25s var(--ease), border-color 0.2s ease, background 0.2s ease;
}
.btn-accent{background:var(--accent); color:#14171A;}
.btn-accent:hover{background:#ffc633; transform:translateY(-2px); box-shadow:0 10px 24px rgba(255,183,3,0.28);}
.btn-accent:active{transform:translateY(0);}
.btn-ghost{border-color:var(--line); color:var(--text);}
.btn-ghost:hover{border-color:var(--accent); color:var(--accent); transform:translateY(-2px);}
.btn-lg{padding:16px 34px; font-size:1rem;}

/* ============ SCROLL PROGRESS ("postęp budowy strony") ============ */
.scroll-progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:linear-gradient(90deg, var(--accent-deep), var(--accent));
  z-index:300;
  transition:width .12s linear;
}
.build-badge{
  position:fixed; top:16px; right:22px; z-index:250;
  display:flex; align-items:center; gap:7px;
  background:rgba(20,23,26,0.85);
  border:1px solid var(--line);
  color:var(--accent);
  padding:7px 14px 7px 10px;
  border-radius:var(--radius-pill);
  font-size:0.78rem; font-weight:600;
  letter-spacing:0.02em;
  backdrop-filter:blur(8px);
  opacity:0; transform:translateY(-10px);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
  pointer-events:none;
}
.build-badge.visible{opacity:1; transform:translateY(0);}
.build-badge-icon{width:16px; height:16px; flex-shrink:0;}
.build-badge-label{color:var(--text-muted); font-weight:500;}

/* ============ HEADER (floating pill navbar) ============ */
.site-header{
  position:sticky; top:0; z-index:100;
  background:transparent;
  padding:16px 20px 0;
}
.header-inner{
  position:relative;
  max-width:var(--max-w); margin:0 auto; padding:0 28px;
  height:70px;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px;
  background:rgba(20,23,26,0.72);
  border:1px solid var(--line);
  border-radius:var(--radius-pill);
  backdrop-filter:blur(14px);
  box-shadow:0 4px 20px rgba(0,0,0,0.2);
  transition:box-shadow .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease);
}
.site-header.scrolled .header-inner{
  background:rgba(20,23,26,0.92);
  border-color:rgba(255,183,3,0.25);
  box-shadow:0 12px 32px rgba(0,0,0,0.4);
}
.logo{display:flex; align-items:center; gap:10px;}
.logo-mark{
  width:36px; height:36px; display:flex; align-items:center; justify-content:center;
  background:var(--accent); color:#14171A;
  border-radius:var(--radius-sm);
  font-family:var(--font-display); font-weight:700; font-size:1.1rem;
  transition:transform .3s var(--ease);
}
.logo:hover .logo-mark{transform:rotate(-8deg) scale(1.05);}
.logo-text{
  font-family:var(--font-display); font-weight:600; letter-spacing:0.02em; font-size:1rem;
  display:flex; flex-direction:column; line-height:1.1;
}
.logo-sub{font-size:0.6rem; color:var(--text-muted); font-weight:400; letter-spacing:0.12em;}

.main-nav{display:flex; gap:32px;}
.main-nav a{
  font-size:0.92rem; color:var(--text-muted); font-weight:500;
  position:relative; padding:4px 0;
  transition:color 0.15s ease;
}
.main-nav a:hover{color:var(--text);}
.main-nav a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1px;
  background:var(--accent); transition:width 0.25s var(--ease);
}
.main-nav a:hover::after{width:100%;}

.header-actions{display:flex; align-items:center; gap:20px;}
.lang-switch{display:flex; align-items:center; gap:2px; font-size:0.85rem; background:var(--surface-alt); border-radius:var(--radius-pill); padding:4px;}
.lang-btn{background:none; border:none; color:var(--text-muted); padding:5px 10px; border-radius:var(--radius-pill); transition:background .2s ease, color .2s ease;}
.lang-btn.active{color:#14171A; background:var(--accent); font-weight:600;}
.lang-sep{display:none;}
.header-cta{white-space:nowrap;}

.nav-toggle{
  display:none; flex-direction:column; gap:5px; background:none; border:none; padding:11px; border-radius:var(--radius-sm);
}
.nav-toggle span{width:22px; height:2px; background:var(--text); transition:transform .2s ease, opacity .2s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ============ HERO ============ */
.hero{
  position:relative;
  padding:120px 32px 0;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.hero-media{
  position:absolute; inset:0; z-index:0; overflow:hidden; background:#0d0f11;
}
.hero-media video{
  width:100%; height:100%; object-fit:cover;
  filter:grayscale(0.2) brightness(0.5) contrast(1.05);
  transform:scale(1.02);
}
.hero-media-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(20,23,26,0.35) 0%, rgba(20,23,26,0.82) 62%, var(--bg) 100%),
    linear-gradient(100deg, rgba(20,23,26,0.92) 0%, rgba(20,23,26,0.3) 55%, rgba(20,23,26,0.7) 100%);
}
.hero-dust{position:absolute; inset:0; z-index:1; pointer-events:none; overflow:hidden;}
.hero-dust span{
  position:absolute; bottom:-10px;
  width:4px; height:4px; border-radius:50%;
  background:var(--accent); opacity:0;
  animation:floatUp linear infinite;
}
.hero-dust span:nth-child(1){left:8%; animation-duration:9s; animation-delay:0s;}
.hero-dust span:nth-child(2){left:22%; animation-duration:12s; animation-delay:1.5s; width:3px; height:3px;}
.hero-dust span:nth-child(3){left:38%; animation-duration:10s; animation-delay:3s;}
.hero-dust span:nth-child(4){left:55%; animation-duration:14s; animation-delay:.5s; width:5px; height:5px;}
.hero-dust span:nth-child(5){left:70%; animation-duration:11s; animation-delay:2s;}
.hero-dust span:nth-child(6){left:85%; animation-duration:13s; animation-delay:4s; width:3px; height:3px;}
@keyframes floatUp{
  0%{transform:translateY(0) translateX(0); opacity:0;}
  12%{opacity:.55;}
  88%{opacity:.35;}
  100%{transform:translateY(-460px) translateX(26px); opacity:0;}
}
.hero-grid-bg{
  position:absolute; inset:0; z-index:1;
  background-image:
    linear-gradient(rgba(255,183,3,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,183,3,0.06) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse at 70% 20%, black 0%, transparent 65%);
  pointer-events:none;
}
.hero-inner{
  position:relative; z-index:2; max-width:820px; margin:0 auto; text-align:left; padding-bottom:80px;
}
.eyebrow{
  color:var(--accent); font-weight:600; font-size:0.85rem; letter-spacing:0.08em;
  margin-bottom:18px;
}
.hero-inner .eyebrow{animation:heroRise .7s var(--ease) both;}
.hero h1{
  font-size:clamp(2.4rem, 5.5vw, 4.2rem);
  margin-bottom:24px;
  max-width:14ch;
  animation:heroRise .8s var(--ease) both; animation-delay:.1s;
}
.hero-lead{
  font-size:1.15rem; color:var(--text-muted); max-width:52ch; margin-bottom:36px;
  animation:heroRise .8s var(--ease) both; animation-delay:.22s;
}
.hero-actions{
  display:flex; gap:16px; flex-wrap:wrap;
  animation:heroRise .8s var(--ease) both; animation-delay:.34s;
}
@keyframes heroRise{from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:translateY(0);}}

.hero-stats{
  position:relative; z-index:2;
  max-width:var(--max-w); margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  background:rgba(20,23,26,0.45);
  backdrop-filter:blur(6px);
}
.stat{
  padding:32px 24px; text-align:left;
  border-right:1px solid var(--line);
  opacity:0; transform:translateY(16px);
  animation:heroRise .6s var(--ease) both;
}
.stat:nth-child(1){animation-delay:.42s;}
.stat:nth-child(2){animation-delay:.5s;}
.stat:nth-child(3){animation-delay:.58s;}
.stat:nth-child(4){animation-delay:.66s;}
.stat:last-child{border-right:none;}
.stat-num{
  display:block; font-family:var(--font-display); font-size:2.4rem; font-weight:600; color:var(--accent);
}
.stat-label{font-size:0.88rem; color:var(--text-muted);}

/* ============ SECTION HEAD ============ */
.section-head{max-width:560px; margin-bottom:56px;}
.section-head h2{font-size:clamp(1.8rem, 3.5vw, 2.6rem); margin-bottom:14px;}
.section-head p{color:var(--text-muted); font-size:1.05rem;}
.section-head-light p{color:rgba(20,23,26,0.65);}

/* ============ SERVICES ============ */
.services{padding:100px 0; background:var(--bg);}
.services-grid{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(260px,1fr)); gap:1px;
  background:var(--line); border:1px solid var(--line);
  border-radius:var(--radius-lg); overflow:hidden;
}
.service-card{
  background:var(--surface); padding:36px 28px;
  display:flex; flex-direction:column; gap:14px;
  transition:background 0.25s var(--ease), transform .25s var(--ease);
  transform-style:preserve-3d;
  will-change:transform;
}
.service-card:hover{background:var(--surface-alt);}
.service-icon{color:var(--accent); width:40px; height:40px; transition:transform .35s var(--ease);}
.service-card:hover .service-icon{transform:rotate(-6deg) scale(1.08);}
.service-icon svg{width:100%; height:100%;}
.service-card h3{font-size:1.2rem;}
.service-card p{color:var(--text-muted); font-size:0.94rem; flex-grow:1;}
.service-link{color:var(--accent); font-weight:600; font-size:0.9rem; display:inline-flex; gap:6px;}
.service-link span{transition:transform .2s var(--ease);}
.service-card:hover .service-link span{transform:translateX(4px);}

/* ============ MARQUEE — przesuwający się pas zdjęć z budów ============ */
.marquee-section{
  padding:60px 0; background:var(--surface);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  overflow:hidden;
}
.marquee-eyebrow{text-align:center; margin-bottom:28px;}
.marquee{width:100%; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
  mask-image:linear-gradient(90deg, transparent, black 10%, black 90%, transparent);
}
.marquee-track{
  display:flex; gap:20px; width:max-content;
  animation:marqueeScroll 36s linear infinite;
}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-track img{
  height:190px; width:270px; object-fit:cover; border-radius:var(--radius);
  flex-shrink:0; filter:saturate(0.92);
  transition:filter .3s ease, transform .3s ease;
}
.marquee-track img:hover{filter:saturate(1.1); transform:scale(1.03);}
@keyframes marqueeScroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ============ PROJECTS ============ */
.projects{padding:100px 0; background:var(--surface); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.project-filters{display:flex; gap:12px; margin-bottom:40px; flex-wrap:wrap;}
.filter-btn{
  background:none; border:1px solid var(--line); color:var(--text-muted);
  padding:9px 20px; font-size:0.88rem; font-weight:500; border-radius:var(--radius-pill);
  transition:all 0.2s var(--ease);
}
.filter-btn:hover{border-color:var(--accent); color:var(--text); transform:translateY(-1px);}
.filter-btn.active{background:var(--accent); border-color:var(--accent); color:#14171A; font-weight:600;}

.project-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; perspective:1200px;}
.project-card{
  border:1px solid var(--line); background:var(--bg);
  border-radius:var(--radius); overflow:hidden;
  transition:border-color 0.25s var(--ease), transform .2s var(--ease), box-shadow .25s var(--ease);
  transform-style:preserve-3d;
  will-change:transform;
}
.project-card:hover{border-color:var(--accent-deep); box-shadow:0 18px 40px rgba(0,0,0,0.35);}
.project-img{
  height:220px; background-size:cover; background-position:center;
  transition:transform .5s var(--ease);
}
.project-card:hover .project-img{transform:scale(1.06);}
.project-info{padding:20px;}
.project-tag{
  color:var(--accent); font-size:0.78rem; font-weight:600; letter-spacing:0.05em;
}
.project-info h3{font-size:1.05rem; margin:8px 0 4px;}
.project-info p{color:var(--text-muted); font-size:0.88rem;}
.project-card.hidden{display:none;}

/* ============ ABOUT ============ */
.about{padding:110px 0; background:var(--bg);}
.about-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center;}
.about-media{position:relative;}
.about-media img{width:100%; height:460px; object-fit:cover; border-radius:var(--radius-lg); clip-path:polygon(0 0, 100% 0, 100% 92%, 0% 100%);}
.about-badge{
  position:absolute; bottom:20px; left:-20px;
  background:var(--accent); color:#14171A; padding:16px 20px;
  max-width:220px; border-radius:var(--radius-sm);
  box-shadow:0 12px 28px rgba(0,0,0,0.3);
}
.about-badge strong{display:block; font-family:var(--font-display); font-size:1.1rem;}
.about-badge span{font-size:0.8rem;}
.about-content h2{font-size:clamp(1.8rem,3vw,2.4rem); margin:12px 0 20px;}
.about-content p{color:var(--text-muted); margin-bottom:16px;}
.about-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:32px; padding-top:32px; border-top:1px solid var(--line);}
.about-stats strong{display:block; font-family:var(--font-display); color:var(--accent); font-size:1.3rem;}
.about-stats span{font-size:0.82rem; color:var(--text-muted);}

/* ============ WHY US ============ */
.why-us{padding:100px 0; background:var(--accent); color:#14171A;}
.why-us h2{color:#14171A;}
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(20,23,26,0.15); border-radius:var(--radius-lg); overflow:hidden;}
.why-card{background:var(--accent); padding:32px 28px; transition:background .25s ease;}
.why-card:hover{background:#ffc633;}
.why-card h3{font-size:1.1rem; margin-bottom:10px; color:#14171A;}
.why-card p{font-size:0.92rem; color:rgba(20,23,26,0.7);}

/* ============ FAQ ============ */
.faq{padding:100px 0; background:var(--bg);}
.faq-layout{display:grid; grid-template-columns:0.8fr 1.2fr; gap:60px;}
.faq-heading h2{font-size:clamp(1.8rem,3vw,2.4rem); margin:12px 0 14px;}
.faq-heading p{color:var(--text-muted);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-question{
  width:100%; background:none; border:none; color:var(--text);
  display:flex; justify-content:space-between; align-items:center;
  padding:22px 4px; text-align:left; font-size:1.05rem; font-weight:500;
  border-radius:var(--radius-sm);
  transition:background .2s ease;
}
.faq-question:hover{background:rgba(255,183,3,0.05);}
.faq-icon{color:var(--accent); font-size:1.3rem; transition:transform 0.3s var(--ease); flex-shrink:0; margin-left:16px;}
.faq-question[aria-expanded="true"] .faq-icon{transform:rotate(45deg);}
.faq-answer{max-height:0; overflow:hidden; transition:max-height 0.3s var(--ease);}
.faq-answer p{color:var(--text-muted); padding:0 4px 22px; max-width:60ch;}

/* ============ TESTIMONIALS ============ */
.testimonials{padding:100px 0; background:var(--surface); border-top:1px solid var(--line);}
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.testi-card{
  background:var(--bg); border:1px solid var(--line); padding:32px 26px;
  border-left:3px solid var(--accent); border-radius:var(--radius);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.testi-card:hover{transform:translateY(-4px); box-shadow:0 16px 32px rgba(0,0,0,0.3);}
.testi-card p{font-size:0.98rem; margin-bottom:20px; color:var(--text);}
.testi-card footer{display:flex; flex-direction:column; gap:2px;}
.testi-card strong{font-family:var(--font-display); font-weight:500;}
.testi-card span{font-size:0.82rem; color:var(--text-muted);}

/* ============ QUOTE FORM ============ */
.quote-form{padding:110px 0; background:var(--bg);}
.form-layout{display:grid; grid-template-columns:0.85fr 1.15fr; gap:64px;}
.form-intro h2{font-size:clamp(1.8rem,3vw,2.4rem); margin:12px 0 16px;}
.form-intro p{color:var(--text-muted); margin-bottom:32px;}
.contact-block{border-top:1px solid var(--line); padding-top:24px;}
.contact-row{display:flex; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--line); font-size:0.92rem;}
.contact-row a{transition:color .2s ease;}
.contact-row a:hover{color:var(--accent);}
.contact-label{color:var(--text-muted);}

.quote-form-box{
  background:var(--surface); border:1px solid var(--line); padding:36px;
  border-radius:var(--radius-lg);
  display:grid; grid-template-columns:1fr 1fr; gap:20px;
}
.form-row{display:flex; flex-direction:column; gap:8px;}
.form-row-full{grid-column:1 / -1;}
.form-row label{font-size:0.85rem; font-weight:500; color:var(--text-muted);}
.form-row input, .form-row select, .form-row textarea{
  background:var(--bg); border:1px solid var(--line); color:var(--text);
  padding:12px 16px; font-family:var(--font-body); font-size:0.95rem; border-radius:var(--radius-sm);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{border-color:var(--accent); box-shadow:0 0 0 3px rgba(255,183,3,0.15);}
.form-row textarea{resize:vertical;}
.form-error{display:none; color:#ff6b6b; font-size:0.8rem;}
.form-row.invalid input, .form-row.invalid select{border-color:#ff6b6b;}
.form-row.invalid .form-error{display:block;}
.form-submit{grid-column:1 / -1; justify-content:center;}
.form-success{
  grid-column:1 / -1; display:none; color:var(--accent); font-weight:500; text-align:center; padding-top:8px;
}
.form-success.visible{display:block;}

/* ============ FOOTER ============ */
.site-footer{background:var(--surface); border-top:1px solid var(--line); padding:80px 0 0;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:60px;}
.footer-logo{margin-bottom:16px;}
.footer-col p{color:var(--text-muted); font-size:0.92rem; margin-bottom:6px;}
.footer-col h4{font-family:var(--font-display); font-weight:500; margin-bottom:16px; font-size:1rem;}
.footer-col a{display:block; color:var(--text-muted); font-size:0.92rem; margin-bottom:10px; transition:color 0.15s ease, transform .2s ease;}
.footer-col a:hover{color:var(--accent); transform:translateX(3px);}
.pdf-link{color:var(--accent) !important; font-weight:600; margin-top:8px;}
.map-embed{border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; filter:grayscale(1) invert(0.92) contrast(0.9);}
.footer-bottom{
  border-top:1px solid var(--line); padding:22px 32px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px;
  max-width:var(--max-w); margin:0 auto;
  font-size:0.82rem; color:var(--text-muted);
}

/* ============ FLOATING BUTTONS ============ */
.float-btn{
  position:fixed; z-index:90; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,0.35);
  transition:transform 0.25s var(--ease), box-shadow .25s var(--ease);
}
.float-btn:hover{transform:translateY(-3px) scale(1.04); box-shadow:0 14px 30px rgba(0,0,0,0.45);}
.float-call{
  left:24px; bottom:24px; width:54px; height:54px; border-radius:50%;
  background:var(--surface-alt); border:1px solid var(--line); color:var(--accent);
  animation:pulseRing 2.6s ease infinite;
}
.float-call svg{width:24px; height:24px;}
@keyframes pulseRing{
  0%, 100%{box-shadow:0 8px 24px rgba(0,0,0,0.35), 0 0 0 0 rgba(255,183,3,0.35);}
  50%{box-shadow:0 8px 24px rgba(0,0,0,0.35), 0 0 0 8px rgba(255,183,3,0);}
}
.float-quote{
  right:24px; bottom:24px; padding:15px 26px;
  background:var(--accent); color:#14171A; font-weight:600; font-size:0.92rem;
  border-radius:var(--radius-pill);
}

/* ============ RESPONSIVE ============ */
@media (max-width: 980px){
  .main-nav{display:none;}
  .main-nav.open{
    display:flex; flex-direction:column; gap:2px;
    position:absolute; top:calc(100% + 10px); left:0; right:0;
    background:rgba(24,27,30,0.97); border:1px solid var(--line);
    border-radius:var(--radius); padding:14px;
    box-shadow:0 20px 44px rgba(0,0,0,0.5);
    animation:navDrop .28s var(--ease) both;
  }
  .main-nav.open a{padding:12px 14px; border-radius:var(--radius-sm);}
  .main-nav.open a:hover{background:rgba(255,183,3,0.08);}
  .nav-toggle{display:flex;}
  .header-cta{display:none;}
  .hero-stats{grid-template-columns:repeat(2,1fr);}
  .stat:nth-child(2n){border-right:none;}
  .about-grid, .faq-layout, .form-layout{grid-template-columns:1fr; gap:40px;}
  .why-grid, .testi-grid{grid-template-columns:repeat(2,1fr);}
  .project-grid{grid-template-columns:repeat(2,1fr);}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .build-badge{top:98px;}
}
@keyframes navDrop{from{opacity:0; transform:translateY(-10px);} to{opacity:1; transform:translateY(0);}}
@media (max-width: 620px){
  .header-inner{height:60px; padding:0 18px;}
  .site-header{padding:12px 14px 0;}
  .hero{padding-top:88px;}
  .hero-stats{grid-template-columns:1fr 1fr;}
  .why-grid, .testi-grid, .project-grid{grid-template-columns:1fr;}
  .quote-form-box{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .about-badge{left:0; bottom:-16px;}
  .float-quote span{display:none;}
  .float-quote{width:54px; height:54px; border-radius:50%; padding:0;}
  .build-badge{top:80px;}
  .build-badge .build-badge-label{display:none;}
  .marquee-track img{height:140px; width:200px;}
}
@media (max-width: 380px){
  .header-actions{gap:12px;}
  .logo-sub{display:none;}
  .lang-btn{padding:5px 8px;}
  .nav-toggle{padding:11px;}
}