/* ============================================================
   Mechill Engineering — shared site stylesheet
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
  --ink:#121317;
  --black:#121317;
  --navy:#121317;
  --navy2:#1b1d24;
  --navy-band:#4a3c8c;
  --navy-band-d:#3a2f70;

  --purple:#8f7ce0;
  --purple-d:#6b52c9;
  --purple-deep:#4a3c8c;
  --purple-tint:#efe9fb;
  --purple-bright:#d8cdf5;

  --lav-1:#e3dbf7;
  --lav-2:#c6b6ef;
  --lav-3:#8f6fe6;
  --gray-block:#8b93a0;

  --bronze:var(--purple);
  --bronze-d:var(--purple-d);
  --bronze-tint:var(--purple-tint);
  --bronze-bright:var(--lav-1);
  --teal:#6b52c9;
  --teal-d:#4a3c8c;
  --teal-tint:#efe9fb;
  --teal-bright:var(--lav-2);
  --terracotta:#8b93a0;
  --terracotta-d:#5c6270;
  --terracotta-tint:#eef0f3;
  --terracotta-bright:#d7dbe1;
  --steel:#4a3c8c;
  --steel-d:#332a61;
  --steel-tint:#eeeaf9;
  --steel-bright:var(--lav-3);
  --navy-tint:#efe9fb;
  --paper:#f4f1fb;
  --line:#e5e0f2;
  --line2:#e2ddf0;
  --sub:#5a5d68;
  --maxw:1220px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; font-family:'Inter',sans-serif; color:var(--ink); background:#fff;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{ margin:0; font-family:'Inter',sans-serif; font-weight:900; letter-spacing:-.6px; color:var(--black); }
p{ line-height:1.7; color:#4a4e59; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 24px; }

/* ---------------- header / nav ---------------- */
.site-header{
  position:sticky; top:0; z-index:100; background:#fff;
  border-bottom:1px solid var(--line2);
}
.site-header .wrap{ display:flex; align-items:center; justify-content:space-between; height:78px; }
.brand{ display:flex; align-items:center; gap:10px; }
.brand img{ height:46px; width:auto; }
.brand .name{ font-family:'Inter',sans-serif; font-weight:800; font-size:14px; letter-spacing:.8px; text-transform:uppercase; color:var(--black); line-height:1.2; }
.brand .name small{ display:block; font-weight:600; font-size:9.5px; letter-spacing:1.6px; color:var(--purple-d); }

nav.main-nav{ display:flex; align-items:center; gap:30px; }
nav.main-nav a{
  font-size:13px; font-weight:700; letter-spacing:.3px; color:var(--navy2); text-transform:uppercase;
  padding:6px 2px; position:relative;
}
nav.main-nav a::after{
  content:''; position:absolute; left:0; right:0; bottom:-3px; height:2px; background:var(--purple);
  transform:scaleX(0); transform-origin:left; transition:transform .2s ease;
}
nav.main-nav a:hover::after, nav.main-nav a.active::after{ transform:scaleX(1); }
nav.main-nav a.active{ color:var(--purple-d); }

.nav-cta{
  background:var(--black); color:#fff !important; padding:11px 22px; border-radius:20px;
  font-size:12px; font-weight:700; letter-spacing:.8px; text-transform:uppercase;
}
.nav-cta:hover{ background:var(--purple-d); }

.nav-toggle{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.nav-toggle span{ width:24px; height:2px; background:var(--black); display:block; }

@media (max-width:920px){
  nav.main-nav{
    position:fixed; top:78px; left:0; right:0; bottom:0; background:#fff;
    flex-direction:column; align-items:flex-start; padding:30px 24px; gap:22px;
    transform:translateX(100%); transition:transform .25s ease; overflow-y:auto;
  }
  nav.main-nav.open{ transform:translateX(0); }
  nav.main-nav a{ font-size:16px; }
  .nav-toggle{ display:flex; }
  .nav-cta{ order:99; }
}

/* ---------------- hero ---------------- */
.hero{
  position:relative; min-height:560px; display:flex; align-items:center; color:#fff; overflow:hidden;
}
.hero-bg{ position:absolute; inset:0; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; filter:brightness(1.05); }
.hero-scrim{
  position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(74,60,140,.17) 0%, rgba(74,60,140,.13) 38%, rgba(74,60,140,.06) 70%, rgba(74,60,140,.12) 100%);
}
.hero-inner{ position:relative; z-index:2; padding:90px 0; }
.hero .kicker{ font-size:12.5px; font-weight:800; letter-spacing:2.4px; text-transform:uppercase; color:var(--lav-2); text-shadow:0 1px 6px rgba(0,0,0,.75); }
.hero .kicker::before{ content:'■ '; }
.hero h1{ color:#fff; font-size:48px; line-height:1.08; margin:14px 0 18px 0; max-width:700px; text-transform:uppercase; font-weight:900; letter-spacing:-1px; text-shadow:0 2px 14px rgba(0,0,0,.8); }
.hero p.lead{ color:#f3f0fb; font-size:16px; max-width:560px; margin-bottom:30px; text-shadow:0 1px 8px rgba(0,0,0,.8); }
.btn-row{ display:flex; gap:14px; flex-wrap:wrap; }
.btn{
  display:inline-block; padding:14px 28px; border-radius:24px; font-size:12.5px; font-weight:700;
  letter-spacing:.8px; text-transform:uppercase; transition:.15s ease;
}
.btn-primary{ background:var(--purple); color:#fff; }
.btn-primary:hover{ background:var(--purple-d); }
.btn-ghost{ border:1px solid rgba(255,255,255,.55); color:#fff; }
.btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,.08); }
.btn-dark{ background:var(--black); color:#fff; }
.btn-dark:hover{ background:var(--purple-d); }

/* ---------------- generic page hero (inner pages) ---------------- */
.page-hero{
  position:relative; color:#fff; padding:70px 0 56px 0; overflow:hidden;
}
.page-hero-bg{ position:absolute; inset:0; }
.page-hero-bg img{ width:100%; height:100%; object-fit:cover; }
.page-hero-scrim{ position:absolute; inset:0; background:linear-gradient(100deg, rgba(74,60,140,.18) 0%, rgba(74,60,140,.15) 50%, rgba(74,60,140,.10) 100%); }
.page-hero-inner{ position:relative; z-index:2; }
.page-hero .kicker{ font-size:12px; font-weight:800; letter-spacing:2.4px; text-transform:uppercase; color:var(--lav-2); text-shadow:0 1px 6px rgba(0,0,0,.75); }
.page-hero .kicker::before{ content:'■ '; }
.page-hero h1{ color:#fff; font-size:38px; margin:10px 0 8px 0; text-transform:uppercase; letter-spacing:-.6px; text-shadow:0 2px 12px rgba(0,0,0,.8); }
.page-hero p{ color:#f3f0fb; max-width:600px; margin:0; text-shadow:0 1px 8px rgba(0,0,0,.8); }
.breadcrumb{ font-size:12px; color:#f0ecfa; letter-spacing:.4px; margin-bottom:14px; text-shadow:0 1px 6px rgba(0,0,0,.75); }
.breadcrumb a:hover{ color:#fff; }

/* ---------------- sections ---------------- */
section{ padding:80px 0; background:#fff; }
section.tight{ padding:56px 0; }
section.alt{ background:var(--paper); }
section.navy{ background:var(--navy-band); color:#fff; }
section.navy h2, section.navy h3{ color:#fff; }
section.navy p{ color:#d9d3ef; }

.eyebrow{ font-size:12px; font-weight:800; letter-spacing:2.2px; text-transform:uppercase; color:var(--black); margin-bottom:10px; }
.eyebrow::before{ content:'■'; color:var(--purple); margin-right:8px; font-size:9px; vertical-align:middle; }
section.navy .eyebrow{ color:#fff; }
section.navy .eyebrow::before{ color:var(--lav-2); }
.section-title{ font-size:30px; margin-bottom:14px; letter-spacing:-.8px; }
.section-lead{ max-width:640px; color:var(--sub); font-size:15.5px; }
.rule{ width:52px; height:3px; background:var(--purple); margin:16px 0 0 0; }

/* ---------------- grids / cards ---------------- */
.grid{ display:grid; gap:28px; }
.grid-2{ grid-template-columns:1fr 1fr; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:920px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr 1fr; } .hero h1{ font-size:34px; } }
@media (max-width:600px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }

.card{
  background:#fff; border:1px solid var(--line2); padding:30px;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%);
}
.card h3{ font-size:17px; margin-bottom:10px; letter-spacing:-.2px; text-transform:none; }
.card p{ font-size:14px; margin:0; }
.card.accent-bronze{ border-top:4px solid var(--lav-1); }
.card.accent-teal{ border-top:4px solid var(--lav-2); }
.card.accent-terracotta{ border-top:4px solid var(--gray-block); }
.card.accent-steel{ border-top:4px solid var(--lav-3); }

.icon-badge{
  width:42px; height:42px; display:flex; align-items:center; justify-content:center;
  background:var(--purple-tint); color:var(--purple-d); font-size:15px; margin-bottom:16px; font-weight:800;
  clip-path:polygon(0 0, 100% 0, 100% 100%, 30% 100%, 0 70%);
}

/* stats strip */
.stats{ display:flex; flex-wrap:wrap; gap:14px; }
.stats .stat{
  flex:1 1 160px; padding:26px 20px; text-align:left; background:var(--lav-1); color:var(--black);
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 26px), calc(100% - 26px) 100%, 0 100%);
}
.stats .stat:nth-child(2){ background:var(--lav-2); }
.stats .stat:nth-child(3){ background:var(--lav-3); color:#fff; }
.stats .stat:nth-child(4){ background:var(--gray-block); color:#fff; }
.stats .num{ font-family:'Inter',sans-serif; font-size:34px; color:inherit; font-weight:900; letter-spacing:-1px; }
.stats .lbl{ font-size:11.5px; letter-spacing:1.2px; text-transform:uppercase; color:inherit; opacity:.75; margin-top:4px; }

/* photo tiles */
.photo-tile{ position:relative; overflow:hidden; aspect-ratio:4/3; }
.photo-tile img{ width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.photo-tile:hover img{ transform:scale(1.05); }
.photo-tile .cap{
  position:absolute; left:0; right:0; bottom:0; padding:14px 16px; font-size:12.5px; font-weight:700;
  color:#fff; background:linear-gradient(0deg, rgba(20,15,50,.85), rgba(20,15,50,0));
  letter-spacing:.3px; text-transform:uppercase;
}

/* tags */
.tag-row{ display:flex; flex-wrap:wrap; gap:8px; }
.tag{ font-size:11.5px; font-weight:700; letter-spacing:.3px; padding:6px 14px; border-radius:20px; background:var(--purple-tint); color:var(--purple-d); }
.tag-row.teal .tag{ background:var(--lav-1); color:var(--purple-deep); }
.tag-row.terracotta .tag{ background:#eef0f3; color:var(--gray-block); }
.tag-row.bronze .tag{ background:var(--purple-tint); color:var(--purple-d); }

/* tables */
table.data{ width:100%; border-collapse:collapse; font-size:13.5px; }
table.data caption{ text-align:left; font-weight:700; font-size:14px; color:var(--black); padding-bottom:10px; }
table.data th{ text-align:left; background:var(--purple-tint); color:var(--purple-deep); font-size:11.5px; letter-spacing:.6px; text-transform:uppercase; padding:10px 14px; }
table.data td{ padding:10px 14px; border-bottom:1px solid var(--line2); color:#3c3e46; }
table.data tr:last-child td{ border-bottom:none; }
.table-wrap{ background:#fff; border:1px solid var(--line2); border-radius:2px; overflow-x:auto; }

/* lists */
ul.check{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
ul.check li{ padding-left:26px; position:relative; font-size:14.5px; color:#3c3e46; }
ul.check li::before{
  content:'✓'; position:absolute; left:0; top:0; color:var(--purple); font-weight:700;
}

.quote-block{
  background:var(--navy-band); color:#fff; padding:40px 44px; position:relative;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 34px), calc(100% - 34px) 100%, 0 100%);
}
.quote-block p{ font-family:'Inter',sans-serif; font-weight:500; font-style:normal; font-size:19px; color:#f1f2f6; line-height:1.55; margin:0; letter-spacing:-.2px; }
.quote-block .attr{ margin-top:16px; font-size:12.5px; letter-spacing:1px; text-transform:uppercase; color:var(--lav-2); font-style:normal; font-family:'Inter',sans-serif; font-weight:700; }

/* contact cards */
.contact-card{
  background:#fff; border:1px solid var(--line2); border-top:4px solid var(--lav-2); padding:26px; text-align:left;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%);
}
.contact-card .icon-badge{ margin-bottom:14px; }
.contact-card h3{ font-size:15px; letter-spacing:.3px; margin-bottom:8px; text-transform:none; }
.contact-card p{ font-size:14px; margin:0; }
.contact-card a{ color:var(--purple-d); font-weight:600; }

/* footer */
footer.site-footer{ background:var(--black); color:#c3c7d6; padding:52px 0 24px 0; }
footer .f-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:34px; }
footer h4{ color:#fff; font-family:'Inter',sans-serif; font-size:13px; letter-spacing:1px; text-transform:uppercase; margin-bottom:16px; }
footer .brand .name{ color:#fff; }
footer p{ color:#9ba0b4; font-size:13.5px; }
footer ul{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
footer ul a{ font-size:13.5px; color:#c3c7d6; }
footer ul a:hover{ color:var(--lav-2); }
.f-bottom{ border-top:1px solid rgba(255,255,255,.12); margin-top:38px; padding-top:20px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px; color:#8b90a5; }
.social-row{ display:flex; gap:12px; }
.social-row a{ width:34px; height:34px; border-radius:50%; border:1px solid rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; font-size:13px; }
.social-row a:hover{ background:var(--purple); border-color:var(--purple); }

@media (max-width:920px){
  footer .f-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  footer .f-grid{ grid-template-columns:1fr; }
  .hero h1{ font-size:28px; }
  section{ padding:52px 0; }
  .quote-block{ padding:30px 24px; }
}

/* ---------------- cookie banner ---------------- */
.cookie-bar{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:300; max-width:560px;
  background:#fff; border:1px solid var(--line2); border-top:4px solid var(--purple);
  box-shadow:0 10px 30px rgba(18,19,23,.18); padding:22px 24px;
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%);
}
.cookie-bar h4{ font-size:15px; margin-bottom:8px; }
.cookie-bar p{ font-size:13.5px; margin:0 0 16px 0; }
.cookie-bar .btn-row{ gap:10px; }
.cookie-bar .btn{ border:none; cursor:pointer; padding:11px 20px; }
.btn-outline{ background:#fff; color:var(--black); border:1px solid var(--line2) !important; }
.btn-outline:hover{ border-color:var(--purple) !important; color:var(--purple-d); }
.cookie-link{ position:fixed; left:16px; bottom:16px; z-index:250; font-size:11.5px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; background:#fff; border:1px solid var(--line2); border-radius:20px; padding:8px 14px; cursor:pointer; color:var(--navy2); }
.cookie-link:hover{ color:var(--purple-d); border-color:var(--purple); }

/* ---------------- map consent ---------------- */
.map-consent{ height:320px; background:var(--paper); display:flex; align-items:center; justify-content:center; }
.map-consent iframe{ width:100%; height:100%; border:0; display:block; }
.map-placeholder{ text-align:center; padding:24px; display:flex; flex-direction:column; gap:14px; align-items:center; }
.map-placeholder p{ font-size:14px; margin:0; }
.map-placeholder a{ font-size:13px; font-weight:700; color:var(--purple-d); }

/* ---------------- quote form ---------------- */
.form-note{ font-size:13px; color:var(--sub); margin:0; }
.form-msg{ font-size:14px; padding:12px 16px; background:var(--purple-tint); color:var(--purple-deep); border-left:3px solid var(--purple); }
.form-msg.err{ background:#fdeeee; color:#8a1f1f; border-left-color:#c0392b; }

/* ---------------- chat button ---------------- */
.chat-fab{
  position:fixed; right:20px; bottom:20px; z-index:280; width:58px; height:58px; border-radius:50%;
  background:var(--purple-d); color:#fff; border:none; cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 24px rgba(74,60,140,.45); transition:transform .15s ease, background .15s ease;
}
.chat-fab:hover{ transform:scale(1.06); background:var(--purple-deep); }
.chat-fab svg{ width:26px; height:26px; fill:#fff; }
.chat-panel{
  position:fixed; right:20px; bottom:90px; z-index:290; width:300px; max-width:calc(100vw - 40px);
  background:#fff; border:1px solid var(--line2); box-shadow:0 14px 40px rgba(18,19,23,.2);
  clip-path:polygon(0 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%);
}
.chat-head{ background:var(--navy-band); color:#fff; padding:18px 20px; }
.chat-head b{ display:block; font-size:15px; }
.chat-head span{ font-size:12.5px; color:#d9d3ef; }
.chat-body{ padding:16px 20px 24px 20px; display:grid; gap:10px; }
.chat-body p{ font-size:13.5px; margin:0 0 4px 0; }
.chat-opt{ display:flex; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--line2); font-weight:700; font-size:14px; color:var(--black); }
.chat-opt:hover{ border-color:var(--purple); background:var(--purple-tint); }
.chat-opt i{ width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-style:normal; color:#fff; font-size:12px; flex:none; }
.chat-opt small{ display:block; font-weight:500; font-size:12px; color:var(--sub); }
.chat-opt.wa i{ background:#25D366; }
.chat-opt.line i{ background:#06C755; }
.chat-opt.mail i{ background:var(--purple); }
@media (max-width:600px){ .cookie-bar{ bottom:86px; } }

/* social icons */
.social-row a svg{ width:16px; height:16px; fill:currentColor; display:block; }
