/* Consolidated, inheritance-first CSS */
:root{
  --accent:#00e6a8;
  --accent-opacity:rgba(0, 230, 169, 0.4);
  --bg:#000;
  --surface:#0f0f0f;
  --muted:#bdbdbd;
  --text:#fff;
  --font-sans: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-heading: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
}

/* Responsive adjustments */
@media (max-width: 600px) {
  /* Tabs: smaller icons and bubble, tighter spacing */
  .tabs-menu{gap:6px}
  .tab-link{padding:6px}
  .tab-link svg,
  .modal-form .tab-link svg{width:28px !important;height:28px !important}
  .tab-link::before{width:40px;height:40px}

  /* Form controls slightly smaller */
  .form input, .form textarea, .form button{font-size:14px}

  /* Hero reduced height/padding for small screens */
  .hero{padding:120px 0;height:60vh}

  /* Back-to-top: smaller */
  .back-to-top{width:44px;height:44px}
  .back-to-top svg{width:20px;height:20px}
}

@media (min-width: 601px) and (max-width: 1024px){
  /* Medium screens: moderate icon size, bubble grows a bit */
  .tabs-menu{gap:8px}
  .tab-link{padding:8px 10px}
  .tab-link svg,
  .modal-form .tab-link svg{width:32px !important;height:32px !important}
  .tab-link::before{width:48px;height:48px}

  .form input, .form textarea, .form button{font-size:15px}
  .hero{padding:160px 0;height:72vh}
  .back-to-top{width:52px;height:52px}
  .back-to-top svg{width:24px;height:24px}
}



*{box-sizing:border-box}
html,body{min-height:100vh;margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text)}
body{display:flex;flex-direction:column;min-height:100vh}
main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}


/* Typography (use element selectors so headings inherit predictable styles) */
h1{font-size:clamp(45.84px,4.8vw,81.92px);line-height:1.05;margin:0;font-family:var(--font-heading)}
h2{font-size:clamp(23px,2.4vw,40px);margin:0;text-transform: uppercase;font-family:var(--font-heading);}
h3{font-size:20px;margin:0;font-family:var(--font-heading)}
p{margin:0}
a{text-decoration: none;}
.subtitle{color:var(--muted);margin-top:8px;margin-bottom:18px;font-size:18px}

/* Images */
img{width: 400px;}

/* Nav */
.nav{background:transparent;padding:18px 0;}
.nav-inner{display:flex;justify-content:space-between; padding-left:30px;}
.nav a img{height:48px;width: auto;}
.nav-menu{display:flex;}
.nav-link{color:var(--text);text-decoration:none;font-weight:600; padding:8px 12px;transition:0.3s}
.nav-link:hover{color:var(--bg);background-color: var(--text);}
.nav-toggle{display:none;background:none;border:0;color:var(--text);font-size:22px}

/* Buttons */
.btn{display:inline-block;padding:0 20px;background:var(--accent);color:#000;border-radius:6px;font-weight:700;cursor:pointer;line-height: 5vh;text-transform: uppercase;  }
.btn--ghost{background:transparent;border:2px solid var(--accent);color:var(--text); margin-left: 10px;}
.btn:active{
	transform: scale(0.95);
  transition: transform 80ms ease-in;
}
.btn:hover{
  background: var(--accent-opacity);
  transition: background 0.2s ease;
}

/* Hero */
.hero{padding:200px 0; ;text-align:center;text-transform: uppercase;  height:85vh;
}
.hero .container{max-width:900px;margin:0 auto}

/* Services */
.services{padding:64px 0}

.services h2{text-align:center;margin-bottom:28px}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.card{background:var(--surface);padding:20px;border-radius:8px;text-align:center}
/* prefer element selectors inside card to reduce trivial classes */
.card img{width:100%;height:160px;object-fit:cover;border-radius:6px}
.card h3{margin:12px 0 8px}
.card p{color:var(--muted);font-size:15px;margin-top:8px}

/* Make cards feel clickable */
.card{cursor:pointer;transition:transform .14s ease,box-shadow .14s ease;display:block;text-decoration:none;color:inherit}
.card:hover{transform:translateY(-6px);box-shadow:0 12px 30px rgba(0,0,0,0.45);text-decoration:none; outline:3px solid var(--accent-opacity);}
.card:link,.card:visited,.card:active{color:inherit;text-decoration:none}
.card:focus{outline:3px solid var(--accent-opacity);outline-offset:3px}

/* Content sections (detailed service sections) */
.content-section{padding:64px 0}
.content-inner{display:flex;align-items:center;gap:32px}
.content-inner.reverse{flex-direction:row-reverse}
.content-image img{max-width:100%;height:auto;border-radius:8px}
.content-body{max-width:720px}
.content-body h2{margin-top:0}
.check-list{list-style:none;padding-left:0;margin-top:12px}
.check-list li{position:relative;padding-left:28px;margin-bottom:10px}
.check-list li::before{content:"✔";position:absolute;left:0;top:0;color:var(--accent)}

@media (max-width:900px){
  .content-inner{flex-direction:column}
  .content-inner.reverse{flex-direction:column}
}

/* Socials */
.socials{display:flex;justify-content:center;align-items: center;flex-wrap:wrap;font-size: 14px;}
.social{color:var(--text);  display: block; text-align: center;margin-left: 20px;}
.social svg{width: 70px; height: auto; margin-bottom: 10px;}
.social:hover{color:var(--accent-opacity); transition: color 0.2s ease;}
.social:hover svg path{fill:var(--accent-opacity); transition: fill 0.2s ease;}

/* Footer */
.footer-socials{padding:40px 0;background:#070707}
.site-footer{padding:24px 0;text-align:center;color:var(--muted)}


/* Contact (reuse form blocks) */
.contact{padding:48px 0}
.contact h1{font-size:32px;margin-bottom:8px}
.form{max-width:760px;margin:0 auto}
.form{max-width:760px;margin:0 auto; font-family:var(--font-sans)}
/* use element selectors for form internals */
.form > * + *{margin-top:14px}
.form label{display:block;margin-bottom:6px;color:var(--muted);font-size:14px}
.form input,.form textarea{width:100%;padding:12px;border-radius:6px;border:1px solid #232323;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size: 14px; }
.form textarea{min-height:140px; max-height: 300px; resize: vertical;}
.form button{background:var(--accent);color:#000;border-radius:6px;border:0;font-family:var(--font-sans)}
.form-note{color:var(--muted);text-align:center;margin-top:18px}

@media (max-width:800px){
  .nav-menu{display:none}
  .nav-toggle{display:block}
}

/* Modal overlay for contact form */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.6);display:flex;align-items:center;justify-content:center;z-index:1200;opacity:0;pointer-events:none;transition:opacity .18s ease}
.modal-backdrop.open{opacity:1;pointer-events:auto}
.modal-content{background:var(--surface);color:var(--text);max-width:720px;width:92%;border-radius:12px;padding:22px;box-shadow:0 20px 60px rgba(0,0,0,0.6);position:relative}
.modal-close{position:absolute;right:12px;top:12px;width:36px;height:36px;border-radius:50%;background:transparent;border:0;color:var(--muted);font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.modal-close:hover{color:var(--text);background:rgba(255,255,255,0.03)}
.modal-content h1{margin-top:0}
.modal-form .form{margin:0}
.modal-header{text-align:center;margin-bottom:12px}
.modal-note{text-align:center;color:var(--muted);margin-top:12px}
.modal-href{text-decoration: underline;color:var(--muted);}

/* form controls  */
.modal-form .form_control:focus{outline:none;box-shadow:0 0 9px 1px rgba(46,128,182,0.15)}
.modal-form .form_control.field{border-radius:15px;min-height:120px;padding:14px 18px;height:auto}
.modal-form .tab-link{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:transparent;margin-right:8px;border:1px solid transparent;cursor:pointer}
.modal-form .tab-link svg{display:block;fill:var(--muted);transition:transform .12s ease, fill .12s ease}
.modal-form .tab-link:focus{outline:2px solid rgba(255,255,255,0.06);outline-offset:2px}
.modal-form .tab-link.tab-current{background:var(--accent);border-color:rgba(255,255,255,0.06)}
.modal-form .tab-link.tab-current svg{transform:scale(1.1);fill:#000}

.tabs {margin-top:10px;margin-bottom:8px}
.tabs-menu{position:relative;display:inline-flex;gap:8px;align-items:center;margin-bottom:10px;margin-left:5px}

/* bubble indicator for tab menu */
.tab-link{position:relative;z-index:2;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;cursor:pointer}
/* larger icons, keep above the animated circle */
.tab-link svg{display:block;position:relative;z-index:3}
.tab-link.tab-current{color:#000}

/* render the circular background as a pseudo-element so the icon itself doesn't scale */
.tab-link::before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(1);width:48px;height:48px;border-radius:50%;background:transparent;z-index:1;pointer-events:none}
.tab-link.tab-current::before{background:var(--accent)}

/* animate the pseudo-element for a pop + jelly effect */
.tab-link.bubble-animate::before{animation:bubble-pop 560ms cubic-bezier(.2,.85,.25,1) both}
@keyframes bubble-pop{
  0%{transform:translate(-50%,-50%) scale(0.02) skewX(0deg)}
  45%{transform:translate(-50%,-50%) scale(1.18) skewX(-6deg)}
  68%{transform:translate(-50%,-50%) scale(0.92) skewX(6deg)}
  86%{transform:translate(-50%,-50%) scale(1.03) skewX(-2deg)}
  100%{transform:translate(-50%,-50%) scale(1) skewX(0deg)}
}

/* ensure modal-specific tab icons match size */
.modal-form .tab-link svg{width:34px;height:34px}



/* Back-to-top button */
.back-to-top{
  position:fixed;right:23px;bottom:25px;width:48px;height:48px;border-radius:50%;background:var(--text);color:var(--bg);border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:99999;opacity:0;transform:translateY(12px);transition:opacity .28s ease,transform .28s ease;box-shadow:0 8px 18px rgba(0,0,0,0.45)}
.back-to-top.visible{opacity:1;transform:translateY(0);visibility:visible}
.back-to-top svg{width:25px;height:25px;display:block}
.back-to-top svg path{fill:var(--bg)}

/* form messages */
.form-message {
  margin-top: 12px;
  font-size: 14px;
  padding: 10px 12px;
  border-radius: 8px;
  max-width: 420px;
  box-sizing: border-box;
}
.form-message.form-success { background: rgba(40,167,69,0.12); color: #1f7a3a; border: 1px solid rgba(40,167,69,0.18); }
.form-message.form-error { background: rgba(220,53,69,0.08); color: #7a1f1f; border: 1px solid rgba(220,53,69,0.12); }

button.sending { opacity: 0.7; cursor: progress; }
.back-to-top:focus{outline:3px solid rgba(255,255,255,0.08);outline-offset:3px}
.back-to-top:hover{background:var(--accent-opacity);  transition: background 0.2s ease;}

.not-found{margin:0;padding:48px 0;text-align:center;width:100%}
.not-found img{height:400px;max-width:800px;width:100%;object-fit:contain}
.not-found .subtitle{padding-bottom:20px}