/* =====================================================
   SWISSTEK — Main Stylesheet
   Swiss Precision. Portuguese Craftsmanship.
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,700&family=Barlow:wght@300;400;500;600&display=swap');

/* ── Variables ──────────────────────────────────────── */
:root {
  --red:        #C8102E;
  --red-dark:   #A00D24;
  --red-glow:   rgba(200,16,46,0.35);
  --black:      #1A1A1A;
  --deep:       #0E0E0E;
  --dark:       #242424;
  --dark-mid:   #2D2D2D;
  --gray-dk:    #555;
  --gray:       #888;
  --gray-lt:    #BBB;
  --off-white:  #F4F4F4;
  --white:      #FFF;

  --font-h: 'Barlow Condensed', sans-serif;
  --font-b: 'Barlow', sans-serif;

  --ease: cubic-bezier(.25,.46,.45,.94);
  --t:    .3s var(--ease);
  --ts:   .6s var(--ease);

  --max:    1280px;
  --hh:     80px;    /* header height */
}

/* ── Reset ──────────────────────────────────────────── */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family: var(--font-b);
  color: var(--black);
  background: var(--white);
  overflow-x: hidden;
  line-height: 1.6;
}
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
button { cursor:pointer; border:none; background:none; }

/* ── Container ──────────────────────────────────────── */
.container { max-width:var(--max); margin:0 auto; padding:0 2rem; }

/* ── Header / Nav ───────────────────────────────────── */
.header {
  position: fixed; top:0; left:0; right:0; z-index:1000;
  height: var(--hh);
  background: var(--black);
  border-bottom: 3px solid var(--red);
  transition: background var(--t), box-shadow var(--t);
}
.header.scrolled {
  background: rgba(14,14,14,.97);
  backdrop-filter: blur(12px);
  box-shadow: 0 4px 32px rgba(0,0,0,.4);
}
.header-inner {
  max-width: var(--max); margin:0 auto; padding:0 2rem;
  height:100%; display:flex; align-items:center; justify-content:space-between;
}

/* Logo */
.logo { display:flex; align-items:center; gap:.65rem; }
.logo-img { height: 48px; width: auto; display:block; }

/* Desktop nav */
.nav { display:flex; align-items:center; gap:.1rem; }
.nav-link {
  font-family: var(--font-h); font-size:.95rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase;
  color: var(--gray-lt); padding:.5rem 1rem;
  position:relative; transition:color var(--t);
}
.nav-link::after {
  content:''; position:absolute; bottom:0; left:50%;
  transform:translateX(-50%);
  width:0; height:2px; background:var(--red); transition:width var(--t);
}
.nav-link:hover,
.nav-link.active { color:var(--white); }
.nav-link:hover::after,
.nav-link.active::after { width:calc(100% - 2rem); }

.nav-cta {
  font-family:var(--font-h); font-size:.95rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  background:var(--red); color:var(--white);
  padding:.55rem 1.5rem; margin-left:.75rem;
  clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%);
  transition:background var(--t),transform var(--t);
}
.nav-cta:hover { background:var(--red-dark); transform:translateY(-1px); }

/* Nav Dropdown */
.nav-has-dropdown { position:relative; }
.nav-dropdown-menu {
  display:none;
  position:absolute; top:calc(100% + 6px); left:50%;
  transform:translateX(-50%);
  background:var(--dark);
  border:1px solid rgba(255,255,255,.08); border-top:3px solid var(--red);
  min-width:210px; overflow:hidden;
  z-index:2000;
}
@keyframes dropdownIn {
  from { opacity:0; transform:translateX(-50%) translateY(-6px); }
  to   { opacity:1; transform:translateX(-50%) translateY(0); }
}
.nav-has-dropdown:hover .nav-dropdown-menu {
  display:block;
  animation:dropdownIn .18s ease forwards;
}
.nav-dropdown-item {
  display:flex; align-items:center; gap:.75rem;
  font-family:var(--font-h); font-size:.85rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--gray-lt); padding:.75rem 1.25rem;
  border-bottom:1px solid rgba(255,255,255,.05);
  transition:color var(--t), background var(--t), padding-left var(--t);
}
.nav-dropdown-item:last-child { border-bottom:none; }
.nav-dropdown-item:hover { color:var(--white); background:rgba(200,16,46,.15); padding-left:1.6rem; }
.nav-dropdown-item svg { width:16px; height:16px; color:var(--red); flex-shrink:0; }
.nav-has-dropdown .nav-link { display:flex; align-items:center; gap:.35rem; }
.nav-has-dropdown .nav-link .chevron { width:10px; height:10px; transition:transform .2s; }
.nav-has-dropdown:hover .nav-link .chevron { transform:rotate(180deg); }

/* Mobile sub-links */
.mob-sub-link {
  padding-left:3.5rem !important; font-size:.95rem !important;
  border-bottom:1px solid rgba(255,255,255,.04) !important;
  color:rgba(255,255,255,.55) !important;
}
.mob-sub-link:hover { color:var(--white) !important; background:rgba(200,16,46,.1) !important; }

/* Hamburger */
.hamburger { display:none; flex-direction:column; gap:5px; padding:.5rem; }
.hamburger span { display:block; width:26px; height:2px; background:var(--white); transition:var(--t); }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* Mobile nav */
.mobile-nav {
  display:none; position:fixed; top:var(--hh); left:0; right:0;
  background:var(--dark); border-bottom:3px solid var(--red);
  z-index:999; max-height:0; overflow:hidden;
  transition:max-height .4s var(--ease);
}
.mobile-nav.open { max-height:500px; }
.mob-link {
  display:block; font-family:var(--font-h); font-size:1.1rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--gray-lt);
  padding:.9rem 2rem; border-bottom:1px solid rgba(255,255,255,.05);
  transition:var(--t);
}
.mob-link:hover { color:var(--white); background:rgba(200,16,46,.12); padding-left:2.5rem; }
.mob-cta {
  display:block; margin:1rem 2rem; background:var(--red); color:var(--white);
  font-family:var(--font-h); font-size:1rem; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase;
  padding:.85rem 1.5rem; text-align:center; transition:background var(--t);
}
.mob-cta:hover { background:var(--red-dark); }

/* ── Buttons ─────────────────────────────────────────── */
.btn {
  display:inline-flex; align-items:center; gap:.5rem;
  font-family:var(--font-h); font-weight:700; font-size:1rem;
  letter-spacing:.12em; text-transform:uppercase;
  padding:1rem 2.5rem; cursor:pointer; border:none; transition:var(--t);
  clip-path:polygon(12px 0%,100% 0%,calc(100% - 12px) 100%,0% 100%);
}
.btn-primary { background:var(--red); color:var(--white); }
.btn-primary:hover { background:var(--red-dark); transform:translateY(-2px); box-shadow:0 8px 32px var(--red-glow); }
.btn-outline { background:transparent; color:var(--white); border:2px solid rgba(255,255,255,.6); }
.btn-outline:hover { background:var(--white); color:var(--black); transform:translateY(-2px); }
.btn-outline-red { background:transparent; color:var(--red); border:2px solid var(--red); }
.btn-outline-red:hover { background:var(--red); color:var(--white); transform:translateY(-2px); }
.btn-dark { background:var(--black); color:var(--white); }
.btn-dark:hover { background:var(--dark-mid); transform:translateY(-2px); }

/* ── Section Utilities ───────────────────────────────── */
.sec { position:relative; }
.sec-pad { padding:6rem 0; }
.sec-pad-sm { padding:4rem 0; }

.sec-label {
  font-family:var(--font-h); font-size:.82rem; font-weight:700;
  letter-spacing:.32em; text-transform:uppercase; color:var(--red);
  margin-bottom:.7rem; display:flex; align-items:center; gap:.75rem;
}
.sec-label::before {
  content:''; display:inline-block; width:28px; height:2px; background:var(--red);
}

.sec-title {
  font-family:var(--font-h); font-weight:900;
  font-size:clamp(2.4rem,5vw,4rem); letter-spacing:.02em;
  line-height:.93; text-transform:uppercase;
}
.sec-title span { color:var(--red); }
.sec-title.light { color:var(--white); }
.sec-title.light span { color:var(--red); }

.sec-sub {
  font-size:1.05rem; color:var(--gray-dk); max-width:580px; line-height:1.75; margin-top:1rem;
}
.sec-sub.light { color:var(--gray-lt); }

/* ── Hero (Homepage) ─────────────────────────────────── */
.hero {
  min-height:100vh; background:var(--deep);
  display:flex; align-items:center;
  padding-top:var(--hh); position:relative; overflow:hidden;
}
.hero-bg-grid {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);
  background-size:60px 60px;
  pointer-events:none;
}
.hero-accent {
  position:absolute; top:0; right:0; width:45%; height:100%;
  background:linear-gradient(135deg,transparent 40%,rgba(200,16,46,.07) 100%);
  pointer-events:none;
}
.hero-line {
  position:absolute; top:0; right:38%; width:3px; height:100%;
  background:linear-gradient(to bottom,transparent,var(--red),transparent);
  opacity:.4; pointer-events:none;
}

.hero-inner { position:relative; z-index:1; padding:5rem 0; }
.hero-badge {
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--font-h); font-size:.82rem; font-weight:700;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--red); margin-bottom:1.5rem;
}
.hero-badge::before { content:''; width:28px; height:2px; background:var(--red); }
.hero-badge::after { content:''; width:28px; height:2px; background:var(--red); }

.hero-title {
  font-family:var(--font-h); font-weight:900;
  font-size:clamp(3.5rem,8vw,7.5rem); line-height:.88;
  letter-spacing:.01em; text-transform:uppercase;
  color:var(--white); margin-bottom:1.75rem;
}
.hero-title .line-red { color:var(--red); display:block; }

.hero-sub {
  font-size:1.15rem; color:var(--gray-lt); max-width:520px;
  line-height:1.75; margin-bottom:2.5rem;
}

.hero-btns { display:flex; gap:1rem; flex-wrap:wrap; }

.hero-scroll {
  position:absolute; bottom:2.5rem; left:50%; transform:translateX(-50%);
  display:flex; flex-direction:column; align-items:center; gap:.4rem;
  color:var(--gray); z-index:1;
}
.hero-scroll span {
  font-family:var(--font-h); font-size:.75rem; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase;
}
.scroll-arrow {
  width:1px; height:40px; background:linear-gradient(to bottom,var(--gray),transparent);
  animation:scrollPulse 1.5s ease-in-out infinite;
}
@keyframes scrollPulse { 0%,100%{opacity:.4; transform:scaleY(1)} 50%{opacity:1; transform:scaleY(1.1)} }

/* ── Stats Bar ───────────────────────────────────────── */
.stats-bar {
  background:var(--dark-mid);
  border-top:3px solid var(--red);
  border-bottom:1px solid rgba(255,255,255,.06);
}
.stats-grid {
  display:grid; grid-template-columns:repeat(4,1fr);
}
.stat-item {
  padding:2.5rem 2rem; text-align:center;
  border-right:1px solid rgba(255,255,255,.08);
  transition:background var(--t);
}
.stat-item:last-child { border-right:none; }
.stat-item:hover { background:rgba(200,16,46,.08); }
.stat-num {
  font-family:var(--font-h); font-size:3.5rem; font-weight:900;
  color:var(--red); line-height:1; margin-bottom:.3rem;
}
.stat-lbl {
  font-family:var(--font-h); font-size:.95rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--gray-lt);
}

/* ── Services Overview (Homepage) ────────────────────── */
.srv-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
  border:1.5px solid #E0E0E0;
}
.srv-card {
  padding:2.5rem 2rem; position:relative; overflow:hidden;
  border-right:1.5px solid #E0E0E0; transition:var(--t);
  background:var(--white);
}
.srv-card:last-child { border-right:none; }
.srv-card::before {
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  background:var(--red); transform:scaleX(0); transform-origin:left;
  transition:transform var(--t);
}
.srv-card:hover { transform:translateY(-6px); box-shadow:0 20px 60px rgba(0,0,0,.12); }
.srv-card:hover::before { transform:scaleX(1); }

.srv-card-num {
  font-family:var(--font-h); font-size:3rem; font-weight:900;
  color:rgba(200,16,46,.12); line-height:1; margin-bottom:1rem;
  transition:color var(--t);
}
.srv-card:hover .srv-card-num { color:rgba(200,16,46,.22); }
.srv-card-icon { width:48px; height:48px; color:var(--red); margin-bottom:1.25rem; }
.srv-card-name {
  font-family:var(--font-h); font-size:1.55rem; font-weight:800;
  letter-spacing:.04em; text-transform:uppercase; color:var(--black);
  margin-bottom:.7rem; line-height:1.1;
}
.srv-card-desc {
  font-size:.9rem; color:var(--gray-dk); line-height:1.7; margin-bottom:1.5rem;
}
.srv-card-link {
  font-family:var(--font-h); font-size:.88rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; color:var(--red);
  display:flex; align-items:center; gap:.45rem; transition:gap var(--t);
}
.srv-card:hover .srv-card-link { gap:.8rem; }

/* ── Why Us ──────────────────────────────────────────── */
.features-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1.5px;
  background:#E0E0E0;
}
.feat-card {
  background:var(--dark); padding:2.5rem 2rem;
  border-top:3px solid transparent; transition:var(--t);
}
.feat-card:hover { background:var(--dark-mid); border-top-color:var(--red); }
.feat-icon { width:44px; height:44px; color:var(--red); margin-bottom:1.25rem; }
.feat-title {
  font-family:var(--font-h); font-size:1.35rem; font-weight:800;
  letter-spacing:.04em; text-transform:uppercase; color:var(--white);
  margin-bottom:.65rem;
}
.feat-desc { font-size:.9rem; color:var(--gray-lt); line-height:1.75; }

/* ── Testimonials ────────────────────────────────────── */
.testi-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
}
.testi-card {
  background:var(--white); padding:2rem;
  border-left:4px solid var(--red);
  box-shadow:0 2px 20px rgba(0,0,0,.07);
  transition:transform var(--t),box-shadow var(--t);
}
.testi-card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,.12); }
.testi-stars { color:var(--red); font-size:.9rem; letter-spacing:2px; margin-bottom:.9rem; }
.testi-text {
  font-size:.95rem; line-height:1.85; color:var(--dark);
  font-style:italic; margin-bottom:1.25rem;
}
.testi-author {
  font-family:var(--font-h); font-weight:700; font-size:1rem;
  letter-spacing:.06em; text-transform:uppercase; color:var(--black);
}
.testi-loc { font-size:.82rem; color:var(--gray); margin-top:.2rem; }

/* ── Emergency Banner ────────────────────────────────── */
.emer-banner, .emergency {
  background:var(--red); padding:3.5rem 2rem; text-align:center;
  position:relative; overflow:hidden;
}
.emer-banner::before, .emergency::before {
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(-45deg,transparent,transparent 20px,rgba(0,0,0,.06) 20px,rgba(0,0,0,.06) 40px);
}
.emer-inner { position:relative; z-index:1; }
.emer-label {
  font-family:var(--font-h); font-size:.82rem; font-weight:700;
  letter-spacing:.35em; text-transform:uppercase; color:rgba(255,255,255,.7);
  margin-bottom:.5rem;
}
.emer-title {
  font-family:var(--font-h); font-weight:900;
  font-size:clamp(1.8rem,4vw,3rem); letter-spacing:.04em; text-transform:uppercase;
  color:var(--white); line-height:1; margin-bottom:1rem;
}
.emer-phone {
  font-family:var(--font-h); font-weight:900;
  font-size:clamp(2.5rem,5vw,4rem); color:var(--white);
  display:block; line-height:1; margin-bottom:1.5rem;
  text-shadow:0 4px 16px rgba(0,0,0,.2);
}
.emer-btns { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* ── Page Hero (inner pages) ─────────────────────────── */
.page-hero {
  background:var(--deep);
  padding:calc(var(--hh) + 4.5rem) 0 4.5rem;
  position:relative; overflow:hidden;
}
.page-hero::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:4px; background:var(--red);
}
.page-hero-bg {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:60px 60px; pointer-events:none;
}
.page-hero-glow {
  position:absolute; top:0; right:0; width:50%; height:100%;
  background:linear-gradient(135deg,transparent 30%,rgba(200,16,46,.06) 100%);
  pointer-events:none;
}
.breadcrumb {
  display:flex; align-items:center; gap:.5rem;
  font-family:var(--font-h); font-size:.8rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; color:var(--gray);
  margin-bottom:1.75rem;
}
.breadcrumb a { color:var(--gray); transition:color var(--t); }
.breadcrumb a:hover { color:var(--red); }
.breadcrumb-sep { color:var(--red); }
.page-hero-label {
  font-family:var(--font-h); font-size:.82rem; font-weight:700;
  letter-spacing:.3em; text-transform:uppercase; color:var(--red);
  margin-bottom:1rem; display:flex; align-items:center; gap:.75rem;
}
.page-hero-label::before { content:''; width:28px; height:2px; background:var(--red); }
.page-hero-title {
  font-family:var(--font-h); font-weight:900;
  font-size:clamp(3rem,7vw,5.5rem); letter-spacing:.02em;
  text-transform:uppercase; color:var(--white); line-height:.9;
  margin-bottom:1.5rem;
}
.page-hero-title span { color:var(--red); }
.page-hero-desc { font-size:1.05rem; color:var(--gray-lt); max-width:600px; line-height:1.8; }

/* ── Services Hub Grid ───────────────────────────────── */
.hub-grid {
  display:grid; grid-template-columns:repeat(2,1fr); gap:3px;
  background:#D8D8D8;
}
.hub-card {
  background:var(--white); padding:3.5rem 3rem;
  position:relative; overflow:hidden; transition:var(--t);
}
.hub-card::before {
  content:''; position:absolute; left:0; top:0; bottom:0; width:5px;
  background:var(--red); transform:scaleY(0); transform-origin:bottom;
  transition:transform var(--t);
}
.hub-card:hover { background:var(--off-white); }
.hub-card:hover::before { transform:scaleY(1); }
.hub-card-icon { width:64px; height:64px; color:var(--red); margin-bottom:1.75rem; }
.hub-card-name {
  font-family:var(--font-h); font-size:2.2rem; font-weight:900;
  letter-spacing:.04em; text-transform:uppercase; color:var(--black);
  margin-bottom:.85rem; line-height:1;
}
.hub-card-count {
  font-family:var(--font-h); font-size:.85rem; font-weight:700;
  letter-spacing:.25em; text-transform:uppercase; color:var(--red);
  margin-bottom:1rem;
}
.hub-card-desc { font-size:.95rem; color:var(--gray-dk); line-height:1.75; margin-bottom:2rem; }
.hub-card-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:2rem; }
.hub-tag {
  font-family:var(--font-h); font-size:.75rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  background:var(--off-white); color:var(--gray-dk);
  padding:.3rem .7rem; border:1px solid #E0E0E0;
}

/* ── Service List (subpages) ─────────────────────────── */
.srv-list {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr));
  gap:2px; background:#E0E0E0;
}
.srv-item {
  background:var(--white); padding:1.75rem 2rem;
  display:flex; align-items:flex-start; gap:1.25rem;
  position:relative; transition:background var(--t),padding-left var(--t);
}
.srv-item::before {
  content:''; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:transparent; transition:background var(--t);
}
.srv-item:hover { background:var(--off-white); padding-left:2.25rem; }
.srv-item:hover::before { background:var(--red); }
.srv-item-icon { width:36px; height:36px; color:var(--red); flex-shrink:0; margin-top:2px; }
.srv-item-title {
  font-family:var(--font-h); font-size:1.25rem; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; color:var(--black);
  margin-bottom:.3rem; line-height:1.2;
}
.srv-item-desc { font-size:.88rem; color:var(--gray-dk); line-height:1.65; }

/* ── About Page ──────────────────────────────────────── */
.values-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5px; background:#E0E0E0; }
.value-card {
  background:var(--white); padding:2.5rem 2rem; text-align:center;
  transition:var(--t); position:relative; overflow:hidden;
}
.value-card::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:3px;
  background:var(--red); transform:scaleX(0); transition:transform var(--t);
}
.value-card:hover { transform:translateY(-4px); box-shadow:0 12px 40px rgba(0,0,0,.1); }
.value-card:hover::after { transform:scaleX(1); }
.value-num {
  font-family:var(--font-h); font-size:4rem; font-weight:900;
  color:rgba(200,16,46,.12); line-height:1; margin-bottom:.75rem;
}
.value-title {
  font-family:var(--font-h); font-size:1.4rem; font-weight:800;
  letter-spacing:.06em; text-transform:uppercase; color:var(--black);
  margin-bottom:.65rem;
}
.value-desc { font-size:.9rem; color:var(--gray-dk); line-height:1.75; }

.cert-grid { display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:center; }
.cert-item {
  background:var(--dark-mid); padding:1.5rem 2rem;
  display:flex; align-items:center; gap:1rem; transition:var(--t);
}
.cert-item:hover { background:var(--dark); transform:translateY(-2px); }
.cert-icon { color:var(--red); }
.cert-text {
  font-family:var(--font-h); font-size:1rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; color:var(--white);
}

/* ── Contact Page ────────────────────────────────────── */
.contact-grid { display:grid; grid-template-columns:1fr 400px; gap:4rem; align-items:start; }
.form-wrap { background:var(--white); padding:3rem; box-shadow:0 4px 40px rgba(0,0,0,.08); }
.form-title {
  font-family:var(--font-h); font-size:2rem; font-weight:900;
  letter-spacing:.04em; text-transform:uppercase; color:var(--black);
  margin-bottom:2rem; padding-bottom:1rem; border-bottom:3px solid var(--red);
}
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; }
.form-row.full { grid-template-columns:1fr; }
.form-group { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1.25rem; }
.form-label {
  font-family:var(--font-h); font-size:.78rem; font-weight:700;
  letter-spacing:.25em; text-transform:uppercase; color:var(--gray-dk);
}
.form-input,.form-select,.form-textarea {
  background:var(--off-white); border:2px solid transparent;
  border-bottom-color:#DDD; padding:.85rem 1rem;
  font-family:var(--font-b); font-size:.95rem; color:var(--black);
  transition:border-color var(--t),background var(--t); outline:none; width:100%;
}
.form-input:focus,.form-select:focus,.form-textarea:focus {
  border-color:var(--red); background:var(--white);
}
.form-textarea { resize:vertical; min-height:140px; }
.form-select { appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='2' fill='none'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; }

.contact-info-card {
  background:var(--dark); padding:2.5rem; margin-bottom:1.5rem;
}
.contact-info-title {
  font-family:var(--font-h); font-size:1.2rem; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase; color:var(--white);
  margin-bottom:1.5rem; padding-bottom:.75rem;
  border-bottom:2px solid var(--red);
}
.contact-item { display:flex; align-items:flex-start; gap:.85rem; margin-bottom:1.25rem; }
.contact-icon { color:var(--red); flex-shrink:0; margin-top:3px; }
.contact-item-label {
  font-family:var(--font-h); font-size:.78rem; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gray);
  margin-bottom:.2rem;
}
.contact-item-val { font-size:.95rem; color:var(--gray-lt); line-height:1.5; }
.contact-item-val a { color:var(--gray-lt); transition:color var(--t); }
.contact-item-val a:hover { color:var(--red); }

.map-placeholder {
  background:var(--dark-mid); height:240px; display:flex;
  align-items:center; justify-content:center; position:relative; overflow:hidden;
  border-top:3px solid var(--red);
}
.map-placeholder::before {
  content:''; position:absolute; inset:0;
  background:repeating-linear-gradient(-45deg,transparent,transparent 15px,rgba(255,255,255,.015) 15px,rgba(255,255,255,.015) 30px);
}
.map-text {
  font-family:var(--font-h); font-size:1.1rem; font-weight:700;
  letter-spacing:.15em; text-transform:uppercase; color:var(--gray);
  position:relative; z-index:1; text-align:center;
}

/* ── Footer ──────────────────────────────────────────── */
.footer { background:var(--deep); padding:5rem 0 0; }
.footer-top {
  display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr;
  gap:3rem; padding-bottom:4rem;
}
.footer-desc { font-size:.9rem; color:var(--gray); line-height:1.85; margin-top:1.25rem; max-width:280px; }
.footer-col-title {
  font-family:var(--font-h); font-size:.82rem; font-weight:700;
  letter-spacing:.28em; text-transform:uppercase; color:var(--white);
  margin-bottom:1.5rem; padding-bottom:.65rem;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-links { display:flex; flex-direction:column; gap:.55rem; }
.footer-link {
  font-size:.9rem; color:var(--gray); transition:var(--t);
  display:flex; align-items:center; gap:.35rem;
}
.footer-link:hover { color:var(--red); padding-left:.35rem; }
.footer-link::before { content:'›'; color:var(--red); font-size:1rem; opacity:0; transition:opacity var(--t); }
.footer-link:hover::before { opacity:1; }
.footer-contact-item { display:flex; align-items:flex-start; gap:.7rem; margin-bottom:.85rem; }
.footer-ci-icon { color:var(--red); flex-shrink:0; margin-top:3px; }
.footer-ci-text { font-size:.88rem; color:var(--gray); line-height:1.5; }
.footer-ci-text a { color:var(--gray); transition:color var(--t); }
.footer-ci-text a:hover { color:var(--red); }
.footer-bottom {
  border-top:1px solid rgba(255,255,255,.06); padding:1.5rem 0;
  display:flex; align-items:center; justify-content:space-between;
}
.footer-copy { font-size:.82rem; color:var(--gray); }
.footer-copy span { color:var(--red); }
.footer-social { display:flex; gap:.65rem; }
.social-btn {
  width:34px; height:34px; background:var(--dark-mid); color:var(--gray);
  display:flex; align-items:center; justify-content:center;
  font-size:.9rem; transition:var(--t);
}
.social-btn:hover { background:var(--red); color:var(--white); }

/* ── Gallery hover ───────────────────────────────────── */
[style*="overflow:hidden"] img {
  transition: transform .6s ease;
}
[style*="overflow:hidden"]:hover img {
  transform: scale(1.06);
}

/* ── Page hero with image ────────────────────────────── */
.page-hero-img {
  background-size: cover !important;
  background-position: center !important;
}

/* ── Service image banner ────────────────────────────── */
.srv-img-banner {
  height: 400px;
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
}
.srv-img-banner-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(100deg, rgba(14,14,14,.95) 0%, rgba(14,14,14,.75) 45%, rgba(14,14,14,.2) 100%);
  z-index: 1;
}
.srv-img-banner-body {
  position: relative;
  z-index: 2;
  width: 100%;
}
.srv-img-banner-content {
  max-width: 560px;
  padding-left: 4px;
  border-left: 4px solid var(--red);
  padding-left: 1.5rem;
}
.srv-img-banner-content h3 {
  font-family: var(--font-h);
  font-size: clamp(1.8rem, 3vw, 2.8rem);
  font-weight: 900;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--white);
  line-height: 1.05;
  margin-bottom: .75rem;
}
.srv-img-banner-content p {
  font-size: 1rem;
  color: rgba(255,255,255,.78);
  line-height: 1.75;
  margin-bottom: 1.75rem;
}
@media(max-width:768px) {
  .srv-img-banner { height: 340px; }
  .srv-img-banner-overlay {
    background: linear-gradient(180deg, rgba(14,14,14,.85) 0%, rgba(14,14,14,.75) 100%);
  }
}

/* Sub-service content grid responsive */
@media(max-width:900px) {
  .sub-content-grid { grid-template-columns:1fr !important; }
  .sub-content-grid > div:last-child { position:static !important; }
}

/* ── Reveal animations ───────────────────────────────── */
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.reveal.visible { opacity:1; transform:none; }
.reveal-left { opacity:0; transform:translateX(-24px); transition:opacity .7s var(--ease),transform .7s var(--ease); }
.reveal-left.visible { opacity:1; transform:none; }
.d1 { transition-delay:.1s; }
.d2 { transition-delay:.2s; }
.d3 { transition-delay:.3s; }
.d4 { transition-delay:.4s; }
.d5 { transition-delay:.5s; }
.d6 { transition-delay:.6s; }

/* ── Responsive ──────────────────────────────────────── */
@media (max-width:1100px) {
  .srv-grid { grid-template-columns:repeat(2,1fr); }
  .features-grid,.stats-grid { grid-template-columns:repeat(2,1fr); }
  .stat-item:nth-child(2) { border-right:none; }
  .footer-top { grid-template-columns:1fr 1fr; gap:2rem; }
  .hub-grid { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr; }
  .testi-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:768px) {
  :root { --hh:68px; }
  .nav { display:none; }
  .hamburger { display:flex; }
  .mobile-nav { display:block; }
  .srv-grid { grid-template-columns:1fr; }
  .features-grid { grid-template-columns:1fr 1fr; }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .stat-item:nth-child(2) { border-right:none; }
  .values-grid { grid-template-columns:1fr; }
  .testi-grid { grid-template-columns:1fr; }
  .hero-btns { flex-direction:column; align-items:flex-start; }
  .emer-btns { flex-direction:column; align-items:center; }
  .footer-top { grid-template-columns:1fr; gap:2rem; }
  .footer-bottom { flex-direction:column; gap:.5rem; text-align:center; }
  .form-row { grid-template-columns:1fr; }
  .srv-list { grid-template-columns:1fr; }
  .hub-card { padding:2.5rem 1.75rem; }

  /* Page hero mobile */
  .page-hero { padding:calc(var(--hh) + 2.5rem) 0 2.5rem; }
  .page-hero-title { font-size:clamp(2rem,10vw,3.5rem); line-height:1; }
  .page-hero-desc { font-size:.95rem; }
  .breadcrumb { flex-wrap:wrap; gap:.35rem; font-size:.72rem; margin-bottom:1.25rem; }

  /* Sub-service page mobile */
  .sub-content-grid { grid-template-columns:1fr !important; }
  .sub-content-grid > div:last-child { position:static !important; }

  /* Buttons mobile */
  .btn { padding:.85rem 1.75rem; font-size:.88rem; }

  /* Sections padding */
  .sec-pad { padding:3.5rem 0; }

  /* Container safe */
  .container { padding:0 1.25rem; }

  /* Stats bar */
  .stats-grid { grid-template-columns:1fr 1fr; }
  .stat-item { padding:1.75rem 1rem; border-right:none; border-bottom:1px solid rgba(255,255,255,.08); }

  /* Srv item on mobile */
  .srv-item { padding:1.25rem; }
  .srv-item-icon { width:28px; height:28px; flex-shrink:0; }

  /* Gallery */
  .gallery-grid { grid-template-columns:1fr 1fr !important; grid-template-rows:auto !important; }
  .gallery-tall { grid-row:span 1 !important; }

  /* Process grid (construcoes) */
  .process-grid { grid-template-columns:1fr 1fr !important; }

  /* Team grid */
  .team-grid { grid-template-columns:1fr !important; }

  /* About split */
  .about-split { grid-template-columns:1fr !important; }
  .about-img { height:280px !important; }

  /* Hero sub-page CTA buttons stacked */
  .page-hero .btn { width:100%; justify-content:center; }
  [style*="display:flex"][style*="gap:1rem"] .btn { flex:1 1 auto; min-width:0; }
}
@media (max-width:480px) {
  .features-grid,.stats-grid { grid-template-columns:1fr; }
  .stat-item { padding:1.5rem 1rem; }
  .stat-num { font-size:2.8rem; }
  .gallery-grid { grid-template-columns:1fr !important; }
  .process-grid { grid-template-columns:1fr !important; }
  .page-hero-title { font-size:clamp(1.8rem,9vw,3rem); }
  .emer-phone { font-size:clamp(1.8rem,8vw,3rem); }
  .btn { padding:.8rem 1.5rem; font-size:.85rem; clip-path:polygon(8px 0%,100% 0%,calc(100% - 8px) 100%,0% 100%); }
}
