/* Base */
:root{
  --bg:#ffffff;
  --fg:#1f2937;
  --muted:#6b7280;
  --primary:#1e3a8a;
  --secondary:#059669;
  --accent:#dc2626;
  --border:#e5e7eb;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--fg);
  background:var(--bg);
  line-height:1.6;
}
.container{width:min(1120px, 92%); margin-inline:auto}

h1,h2,h3{line-height:1.2;color:var(--fg)}
h1{font-size:clamp(1.8rem, 1.2rem + 3vw, 3rem);margin:0 0 .6rem}
h2{font-size:clamp(1.4rem, 1rem + 2vw, 2rem);margin:0 0 .75rem}
h3{font-size:1.125rem;margin:.25rem 0}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:.8rem 1.25rem;border-radius:999px;border:1px solid transparent;
  font-weight:600;cursor:pointer;transition:.2s ease;
}
.btn--primary{background:var(--accent);color:#fff}
.btn--primary:hover{filter:brightness(.92)}
.btn--ghost{background:transparent;border-color:#fff;color:#fff}
.btn--ghost:hover{background:#fff;color:var(--primary)}
.btn--secondary{background:var(--secondary);color:#fff}
.btn--secondary:hover{filter:brightness(.95)}
.btn--whats{background:#25d366;color:#fff}
.btn--whats:hover{filter:brightness(.95)}

.mt{margin-top:1rem}

/* Header */
.header{
  position:sticky; top:0; z-index:50; background:#fff; border-bottom:1px solid var(--border);
}
.header__inner{
  display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem 0;
}
.logo{font-weight:800;color:var(--primary)}
.nav-toggle{border:none;background:#f1f5f9;padding:.5rem .75rem;border-radius:.5rem;display:none}
.nav ul{display:flex;gap:1rem;list-style:none;padding:0;margin:0}
.nav a{padding:.5rem .75rem;border-radius:.5rem}
.nav a:hover, .nav a[aria-current="page"]{background:#f1f5f9}

.header__cta{display:flex;gap:.5rem;align-items:center}

/* Hero */
.hero{
  background:linear-gradient(135deg, var(--primary), #1e40af); color:#fff; padding:clamp(2rem, 4vw, 4rem) 0;
}
.hero__ctas{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}

/* Cards */
.cards{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; padding:2rem 0;
}
.card{border:1px solid var(--border); border-radius:1rem; padding:1rem; background:#fff; box-shadow:0 6px 20px rgba(0,0,0,.04)}
.card__icon{font-size:2rem}

/* Generic layout */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.box{border:1px solid var(--border);border-radius:.75rem;padding:1rem;background:#fff}

/* Footer */
.footer{background:#0f172a;color:#cbd5e1;margin-top:2rem}
.footer__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding:2rem 0}
.footer h4{color:#fff;margin:0 0 .5rem}
.list{list-style:none;padding:0;margin:0}
.list a{color:#cbd5e1}
.list a:hover{color:#fff}
.footer__bottom{text-align:center;padding:1rem;border-top:1px solid #1f2937}

/* Forms */
.form{display:grid;gap:.9rem;max-width:640px}
.form__group{display:grid;gap:.35rem}
input, textarea{
  width:100%;padding:.8rem;border:2px solid var(--border);border-radius:.6rem;font-size:1rem;
}
input:focus,textarea:focus{outline:none;border-color:var(--primary)}
.error{color:#b91c1c;font-size:.85rem;min-height:1em}

/* Responsive nav */
@media (max-width: 920px){
  .nav-toggle{display:inline-block}
  .nav{position:fixed;inset:0 0 auto auto;width:min(320px, 80%);height:100vh;background:#fff;transform:translateX(110%);transition:.25s;padding:1rem;border-left:1px solid var(--border)}
  .nav.open{transform:translateX(0)}
  .nav ul{flex-direction:column}
  .header__cta{display:none}
  .cards{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr}
  .footer__grid{grid-template-columns:1fr}
}

/* Services */
.svc-search{width:100%;max-width:560px;margin:.5rem 0 1rem;padding:.7rem .9rem;border:2px solid var(--border);border-radius:.6rem}
.breadcrumbs{font-size:.9rem;color:var(--muted);margin-bottom:.5rem}
.cards--services{grid-template-columns:repeat(3,1fr)}
@media (max-width:920px){.cards--services{grid-template-columns:1fr}}

.card__img{width:100%; height:auto; border-radius:.6rem; border:1px solid var(--border); background:#fff}
.card__hero img{max-width:560px; width:100%; height:auto; border-radius:.75rem; border:1px solid var(--border); background:#fff}

/* FAQ */
.faq{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.faq__item{border:1px solid var(--border);border-radius:.75rem;background:#fff;padding:.25rem .75rem}
.faq__item summary{cursor:pointer;padding:.6rem 0}
.faq__answer{padding:.5rem 0 .8rem;color:var(--fg)}

/* FAQ on Home with + */
.faq--home summary{position:relative;padding-left:2rem;list-style:none}
.faq--home summary::-webkit-details-marker{display:none}
.faq--home summary::before{
  content:'+'; position:absolute; left:.5rem; top:.5rem; 
  width:1rem; height:1rem; display:inline-grid; place-items:center;
  border:1px solid var(--border); border-radius:.4rem; font-weight:700;
  line-height:1; font-size:1rem; color:var(--fg); background:#fff;
}
.faq--home details[open] summary::before{ content:'−'; }

select.svc-search{appearance:none;background:#fff;padding-right:2rem}

/* Force "+" / "−" icons for all FAQ accordions */
.faq summary{position:relative;padding-left:2rem;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::before{
  content:'+'; position:absolute; left:.5rem; top:.5rem;
  width:1rem; height:1rem; display:inline-grid; place-items:center;
  border:1px solid var(--border); border-radius:.4rem; font-weight:700;
  line-height:1; font-size:1rem; color:var(--fg); background:#fff;
}
.faq details[open] > summary::before{ content:'−'; }

/* Brand logo */
.logo{display:flex;align-items:center;gap:.6rem;font-weight:800;color:var(--primary)}
.logo__img{height:60px;width:auto;display:block}
.logo__text{white-space:nowrap}
@media (max-width:920px){
  .logo__img{height:60px}
}

/* Sticky header polish */
.header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.97);backdrop-filter:saturate(1.2) blur(2px)}
.header__inner{min-height:84px}
