/* ============================================================
   HAPPY SOLUTIONS — Gardens & Property Maintenance (Algarve)
   Global stylesheet
   ============================================================ */

/* ---------- Fonts ---------- */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600;700;800;900&family=Mulish:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

/* ---------- Design tokens ---------- */
:root{
  /* Brand greens */
  --sage:        #8aab7a;   /* logo mark */
  --green-900:   #103823;   /* deepest forest (footer / dark bands) */
  --green-800:   #16482c;
  --green-700:   #1c6b3c;   /* primary */
  --green-600:   #258049;
  --green-500:   #34985b;
  --green-100:   #e4efe1;
  --green-50:    #f1f7ee;

  /* Accents */
  --lime:        #9ccb3b;   /* bright leaf accent */
  --amber:       #f6a823;   /* yellow-orange detail / CTA */
  --amber-600:   #e0901a;
  --whatsapp:    #25d366;
  --whatsapp-d:  #1db757;

  /* Neutrals */
  --ink:         #1d241d;   /* dark gray / near-black text */
  --slate:       #565f54;   /* muted text */
  --line:        #e3e8df;   /* hairlines */
  --mist:        #f5f8f2;   /* tinted background */
  --paper:       #ffffff;

  /* Type */
  --font-head: 'Montserrat', system-ui, sans-serif;
  --font-body: 'Mulish', system-ui, sans-serif;

  /* Radii & shadow */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-pill: 999px;
  --sh-1: 0 1px 2px rgba(16,40,25,.06), 0 2px 8px rgba(16,40,25,.05);
  --sh-2: 0 6px 22px rgba(16,40,25,.10);
  --sh-3: 0 18px 50px rgba(16,40,25,.16);

  /* Layout */
  --maxw: 1200px;
  --gut: clamp(20px, 5vw, 64px); /* @kind spacing */
  --nav-h: 76px;
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{ scroll-behavior:smooth; scroll-padding-top:var(--nav-h); -webkit-text-size-adjust:100%; }
body{
  font-family:var(--font-body);
  overflow-x:hidden;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
ul{ list-style:none; padding:0; }
h1,h2,h3,h4{ font-family:var(--font-head); line-height:1.08; font-weight:800; letter-spacing:-.01em; color:var(--ink); }

/* ---------- Helpers ---------- */
.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gut); }
.eyebrow{
  font-family:var(--font-head); font-weight:700; font-size:.82rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--green-600);
  display:inline-flex; align-items:center; gap:.55em;
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--lime); border-radius:2px; }
.section{ padding:clamp(64px,9vw,118px) 0; }
.section--mist{ background:var(--mist); }
.section-head{ max-width:740px; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head.center .eyebrow{ justify-content:center; }
.section-title{ font-size:clamp(2rem,4.4vw,3.1rem); margin:.4em 0 .35em; }
.section-sub{ color:var(--slate); font-size:1.075rem; max-width:62ch; }
.lead{ font-size:1.12rem; color:var(--slate); }

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--green-700); --fg:#fff;
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--font-head); font-weight:700; font-size:.98rem;
  background:var(--green-700); color:#fff;
  padding:.92em 1.5em; border-radius:var(--r-pill);
  line-height:1; white-space:nowrap;
  transition:transform .18s ease, box-shadow .22s ease, background .2s ease, color .2s ease;
  box-shadow:var(--sh-1);
}
.btn:hover{ transform:translateY(-2px); box-shadow:var(--sh-2); }
.btn:active{ transform:translateY(0); }
.btn .icon{ width:1.15em; height:1.15em; }
.btn--lg{ padding:1.08em 1.8em; font-size:1.04rem; }
.btn--amber{ background:var(--amber); color:#3a2a05; }
.btn--amber:hover{ background:var(--amber-600); }
.btn--wa{ background:var(--whatsapp); color:#fff; }
.btn--wa:hover{ background:var(--whatsapp-d); }
.btn--ghost{ background:transparent; color:var(--green-800); box-shadow:inset 0 0 0 2px var(--green-100); }
.btn--ghost:hover{ background:var(--green-50); box-shadow:inset 0 0 0 2px var(--green-500); }
.btn--white{ background:#fff; color:var(--green-800); }
.btn--outline-light{ background:transparent; color:#fff; box-shadow:inset 0 0 0 2px rgba(255,255,255,.45); }
.btn--outline-light:hover{ background:rgba(255,255,255,.12); }

/* ---------- Reveal animation ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s; }
.reveal[data-d="2"]{ transition-delay:.16s; }
.reveal[data-d="3"]{ transition-delay:.24s; }
.reveal[data-d="4"]{ transition-delay:.32s; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:60;
  height:var(--nav-h);
  background:rgba(255,255,255,.82);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid transparent;
  transition:box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.site-header.scrolled{ box-shadow:0 6px 24px rgba(16,40,25,.08); border-color:var(--line); }
.nav{ height:100%; display:flex; align-items:center; gap:24px; }
.brand{ display:flex; align-items:center; gap:11px; margin-right:auto; }
.brand img{ height:42px; width:auto; }
.brand .bx{ display:flex; flex-direction:column; line-height:1; }
.brand .bx b{ font-family:var(--font-head); font-weight:900; font-size:1.04rem; letter-spacing:.02em; color:var(--ink); white-space:nowrap; }
.brand .bx span{ font-family:var(--font-head); font-weight:600; font-size:.56rem; letter-spacing:.2em; color:var(--green-600); text-transform:uppercase; margin-top:3px; white-space:nowrap; }
.nav-links{ display:flex; align-items:center; gap:5px; }
.nav-links a{
  font-family:var(--font-head); font-weight:600; font-size:.9rem; color:var(--ink);
  padding:.5em .7em; border-radius:var(--r-pill); position:relative; transition:color .18s, background .18s;
}
.nav-links a:hover{ color:var(--green-700); background:var(--green-50); }
.nav-cta{ display:flex; align-items:center; gap:10px; }
.nav-tel{ display:inline-flex; align-items:center; gap:7px; font-family:var(--font-head); font-weight:700; font-size:.92rem; color:var(--green-800); white-space:nowrap; }
.nav-tel .icon{ width:18px; height:18px; color:var(--green-600); }
.burger{ display:none; width:44px; height:44px; border-radius:12px; align-items:center; justify-content:center; color:var(--ink); }
.burger .icon{ width:26px; height:26px; }

/* Mobile drawer */
.drawer{ position:fixed; inset:0; z-index:80; visibility:hidden; pointer-events:none; }
.drawer__scrim{ position:absolute; inset:0; background:rgba(16,40,25,.45); opacity:0; transition:opacity .3s; }
.drawer__panel{
  position:absolute; top:0; right:0; height:100%; width:min(86vw,360px);
  background:#fff; box-shadow:var(--sh-3); padding:22px;
  transform:translateX(100%); transition:transform .32s cubic-bezier(.4,0,.1,1);
  display:flex; flex-direction:column; gap:6px; overflow-y:auto;
}
.drawer.open{ visibility:visible; pointer-events:auto; }
.drawer.open .drawer__scrim{ opacity:1; }
.drawer.open .drawer__panel{ transform:none; }
.drawer__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.drawer__panel a.dlink{ font-family:var(--font-head); font-weight:600; font-size:1.06rem; padding:.7em .4em; border-bottom:1px solid var(--line); color:var(--ink); }
.drawer__panel a.dlink:hover{ color:var(--green-700); }
.drawer .btn{ margin-top:14px; }
.iconbtn{ width:42px; height:42px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; color:var(--ink); }
.iconbtn:hover{ background:var(--green-50); }
.iconbtn .icon{ width:24px; height:24px; }

/* ============================================================
   HERO
   ============================================================ */
.hero{ position:relative; isolation:isolate; min-height:calc(100svh - var(--nav-h)); display:flex; align-items:center; padding:clamp(48px,7vw,90px) 0; }
.hero__bg{ position:absolute; inset:0; z-index:-2; }
.hero__bg img{ width:100%; height:100%; object-fit:cover; }
.hero__bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(98deg, rgba(11,38,21,.92) 0%, rgba(13,46,26,.78) 38%, rgba(13,46,26,.32) 70%, rgba(13,46,26,.12) 100%);
}
.hero__veil{ position:absolute; inset:0; z-index:-1; background:radial-gradient(120% 90% at 0% 100%, rgba(8,30,16,.5), transparent 60%); }
.hero__inner{ max-width:680px; color:#fff; }
.hero .eyebrow{ color:#cfe6c0; }
.hero .eyebrow::before{ background:var(--lime); }
.hero h1{
  color:#fff; font-size:clamp(2.35rem,5.6vw,4.1rem); font-weight:900; letter-spacing:-.02em;
  margin:.32em 0 .5em; text-wrap:balance;
}
.hero h1 .hl{ color:var(--lime); }
.hero p.sub{ font-size:clamp(1.05rem,1.7vw,1.28rem); color:#e9f2e3; max-width:54ch; }
.hero__btns{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; }
.hero__trust{ display:flex; flex-wrap:wrap; gap:10px 26px; margin-top:38px; }
.hero__trust li{ display:flex; align-items:center; gap:9px; font-family:var(--font-head); font-weight:600; font-size:.92rem; color:#eaf3e4; }
.hero__trust .icon{ width:19px; height:19px; color:var(--lime); }

/* ============================================================
   HIGHLIGHT / SOLUTION BAND
   ============================================================ */
.solband{ background:linear-gradient(135deg,var(--green-800),var(--green-700)); color:#fff; position:relative; overflow:hidden; }
.solband::before{
  content:""; position:absolute; right:-60px; top:-40px; width:340px; height:340px;
  background:radial-gradient(circle, rgba(156,203,59,.22), transparent 70%);
}
.solband .wrap{ position:relative; display:flex; align-items:center; justify-content:space-between; gap:34px; padding-block:clamp(40px,6vw,64px); flex-wrap:wrap; }
.solband h2{ color:#fff; font-size:clamp(1.6rem,3vw,2.3rem); max-width:18ch; }
.solband p{ color:#d6e7cf; margin-top:.5em; max-width:46ch; }
.solband__btns{ display:flex; flex-wrap:wrap; gap:13px; }

/* ============================================================
   SERVICES
   ============================================================ */
.svc-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(255px,1fr)); gap:20px; margin-top:54px; }
.svc{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-lg);
  padding:30px 26px 28px; box-shadow:var(--sh-1);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s;
  position:relative; overflow:hidden;
}
.svc:hover{ transform:translateY(-5px); box-shadow:var(--sh-2); border-color:var(--green-100); }
.svc__ic{
  width:56px; height:56px; border-radius:16px; display:grid; place-items:center;
  background:var(--green-50); color:var(--green-700); margin-bottom:18px;
  transition:background .22s, color .22s;
}
.svc:hover .svc__ic{ background:var(--green-700); color:#fff; }
.svc__ic .icon{ width:28px; height:28px; }
.svc h3{ font-size:1.18rem; margin-bottom:.4em; }
.svc p{ color:var(--slate); font-size:.97rem; }
.svc__tag{ position:absolute; top:18px; right:18px; font-family:var(--font-head); font-weight:700; font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; color:var(--amber-600); background:#fff7e8; padding:.35em .65em; border-radius:var(--r-pill); }

/* ============================================================
   FEATURE (Fotovoltaico / Rega) split sections
   ============================================================ */
.feature{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(30px,5vw,70px); align-items:center; }
.feature.rev{ grid-template-columns:.95fr 1.05fr; }
.feature.rev .feature__media{ order:-1; }
.feature__media{ position:relative; }
.feature__media .frame{ border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-3); aspect-ratio:4/3.2; }
.feature__media .frame img{ width:100%; height:100%; object-fit:cover; }
.feature__badge{
  position:absolute; left:-18px; bottom:-18px; background:#fff; border-radius:var(--r-md);
  box-shadow:var(--sh-2); padding:16px 20px; display:flex; align-items:center; gap:13px; max-width:230px;
}
.feature__badge .icon{ width:30px; height:30px; color:var(--amber); flex:none; }
.feature__badge b{ font-family:var(--font-head); font-size:1.4rem; color:var(--green-800); display:block; line-height:1; }
.feature__badge span{ font-size:.82rem; color:var(--slate); }
.chips{ display:flex; flex-wrap:wrap; gap:10px; margin:26px 0 30px; }
.chip{
  display:inline-flex; align-items:center; gap:8px; background:#fff; border:1px solid var(--line);
  padding:.5em .9em; border-radius:var(--r-pill); font-family:var(--font-head); font-weight:600; font-size:.86rem; color:var(--green-800);
  box-shadow:var(--sh-1);
}
.chip .icon{ width:15px; height:15px; color:var(--green-500); }
.brands{ display:flex; align-items:center; flex-wrap:wrap; gap:8px 18px; margin-top:8px; color:var(--slate); font-size:.88rem; }
.brands b{ font-family:var(--font-head); color:var(--green-800); }
.brands .bd{ font-family:var(--font-head); font-weight:700; color:var(--green-700); }

/* ============================================================
   WHY US
   ============================================================ */
.why-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin-top:52px; }
.why{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:30px 26px; box-shadow:var(--sh-1); }
.why__n{ font-family:var(--font-head); font-weight:800; font-size:.9rem; color:var(--lime); letter-spacing:.05em; }
.why__ic{ width:48px; height:48px; border-radius:14px; background:var(--green-800); color:#fff; display:grid; place-items:center; margin:14px 0 16px; }
.why__ic .icon{ width:24px; height:24px; }
.why h3{ font-size:1.1rem; margin-bottom:.4em; }
.why p{ color:var(--slate); font-size:.95rem; }

/* ============================================================
   PROJECTS (Trabalhos) — editorial / corporate
   ============================================================ */
.proj-panel{
  background:linear-gradient(150deg,var(--green-800),var(--green-900)); color:#fff;
  border-radius:var(--r-lg); padding:clamp(30px,4vw,46px); box-shadow:var(--sh-2); position:relative; overflow:hidden;
}
.proj-panel::after{ content:""; position:absolute; right:-50px; bottom:-50px; width:220px; height:220px; background:radial-gradient(circle,rgba(156,203,59,.18),transparent 70%); }
.proj-panel h3{ color:#fff; font-size:clamp(1.3rem,2.4vw,1.7rem); position:relative; }
.proj-panel > p{ color:#cfe3c6; margin:.6em 0 0; max-width:46ch; position:relative; }
.proj-list{ display:grid; grid-template-columns:1fr 1fr; gap:12px 20px; margin:26px 0 30px; position:relative; }
.proj-list li{ display:flex; align-items:center; gap:11px; font-family:var(--font-head); font-weight:600; font-size:.96rem; color:#eaf3e4; }
.proj-list li .ic{ width:34px; height:34px; flex:none; border-radius:10px; background:rgba(255,255,255,.12); display:grid; place-items:center; }
.proj-list li .ic .icon{ width:18px; height:18px; color:var(--lime); }
.proj-note{ text-align:center; color:var(--slate); font-size:.92rem; margin-top:30px; display:flex; align-items:center; justify-content:center; gap:8px; flex-wrap:wrap; }
.proj-note .icon{ width:16px; height:16px; color:var(--green-500); }

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.tst-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; margin-top:48px; }
.tst{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:30px 28px; box-shadow:var(--sh-1); display:flex; flex-direction:column; gap:16px; }
.tst .stars{ display:flex; gap:3px; color:var(--amber); }
.tst .stars .icon{ width:18px; height:18px; fill:currentColor; }
.tst p{ color:var(--ink); font-size:1.02rem; }
.tst.empty{ align-items:center; justify-content:center; text-align:center; border-style:dashed; background:var(--mist); color:var(--slate); min-height:190px; gap:10px; }
.tst.empty .icon{ width:34px; height:34px; color:var(--green-500); }
.tst.empty b{ font-family:var(--font-head); color:var(--green-800); }
.tst__who{ display:flex; align-items:center; gap:12px; margin-top:auto; }
.tst__av{ width:42px; height:42px; border-radius:50%; background:var(--green-100); color:var(--green-700); display:grid; place-items:center; font-family:var(--font-head); font-weight:800; }
.tst__who b{ font-family:var(--font-head); font-size:.95rem; display:block; }
.tst__who span{ font-size:.82rem; color:var(--slate); }

/* ============================================================
   ABOUT
   ============================================================ */
.about{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,64px); align-items:center; }
.about__media{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.about__media img{ border-radius:var(--r-md); box-shadow:var(--sh-2); aspect-ratio:3/4; object-fit:cover; width:100%; }
.about__media img:nth-child(1){ margin-top:34px; }
.stats{ display:flex; flex-wrap:wrap; gap:30px 44px; margin-top:30px; }
.stat b{ font-family:var(--font-head); font-weight:900; font-size:2.2rem; color:var(--green-700); display:block; line-height:1; }
.stat span{ font-size:.9rem; color:var(--slate); }

/* ============================================================
   CONTACT
   ============================================================ */
.contact{ display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(30px,5vw,60px); }
.contact__info .ci{ display:flex; gap:16px; padding:20px 0; border-bottom:1px solid var(--line); }
.contact__info .ci:first-of-type{ padding-top:6px; }
.ci__ic{ width:48px; height:48px; flex:none; border-radius:14px; background:var(--green-50); color:var(--green-700); display:grid; place-items:center; }
.ci__ic .icon{ width:24px; height:24px; }
.ci b{ font-family:var(--font-head); font-size:1.02rem; display:block; }
.ci a, .ci p{ color:var(--slate); font-size:.97rem; }
.ci a:hover{ color:var(--green-700); }
.area-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.area-tags span{ font-size:.82rem; font-family:var(--font-head); font-weight:600; color:var(--green-800); background:var(--green-50); border:1px solid var(--green-100); padding:.4em .8em; border-radius:var(--r-pill); }

.form-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(26px,3.5vw,40px); box-shadow:var(--sh-2); }
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field.full{ grid-column:1 / -1; }
.field label{ font-family:var(--font-head); font-weight:600; font-size:.84rem; color:var(--ink); }
.field input, .field select, .field textarea{
  font-family:var(--font-body); font-size:1rem; color:var(--ink);
  background:var(--mist); border:1.5px solid var(--line); border-radius:var(--r-sm);
  padding:.8em .9em; transition:border-color .18s, background .18s, box-shadow .18s; width:100%;
}
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--green-500); background:#fff; box-shadow:0 0 0 4px var(--green-50);
}
.form-card .btn{ width:100%; margin-top:6px; }
.form-note{ font-size:.82rem; color:var(--slate); margin-top:12px; text-align:center; }
.form-ok{ display:none; text-align:center; padding:26px 10px; }
.form-ok.show{ display:block; }
.form-ok .icon{ width:54px; height:54px; color:var(--green-600); margin:0 auto 14px; }
.form-ok h3{ margin-bottom:.4em; }
.form-ok p{ color:var(--slate); }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ background:var(--green-900); color:#cfe0c6; padding:clamp(56px,7vw,84px) 0 28px; }
.footer__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:38px; }
.footer__brand{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.footer__brand img{ height:46px; }
.footer__brand b{ font-family:var(--font-head); font-weight:900; color:#fff; font-size:1.15rem; }
.footer__brand span{ display:block; font-size:.56rem; letter-spacing:.2em; color:var(--sage); text-transform:uppercase; font-weight:700; margin-top:3px; }
.footer p.fdesc{ font-size:.95rem; max-width:34ch; color:#b5cba a; color:#abc6a0; }
.footer h4{ color:#fff; font-family:var(--font-head); font-size:.86rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:16px; }
.footer ul li{ margin-bottom:11px; }
.footer ul a, .footer ul span{ color:#bdd4b2; font-size:.95rem; }
.footer ul a:hover{ color:var(--lime); }
.footer .fcontact li{ display:flex; gap:10px; align-items:flex-start; }
.footer .fcontact .icon{ width:18px; height:18px; color:var(--lime); flex:none; margin-top:2px; }
.footer__bottom{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-top:48px; padding-top:22px; border-top:1px solid rgba(255,255,255,.12); font-size:.85rem; color:#9bb78f; }
.footer__bottom .socials{ display:flex; gap:10px; }
.footer__bottom .socials a{ width:38px; height:38px; border-radius:10px; display:grid; place-items:center; background:rgba(255,255,255,.08); color:#dceccf; transition:background .2s; }
.footer__bottom .socials a:hover{ background:var(--green-600); color:#fff; }
.footer__bottom .socials .icon{ width:19px; height:19px; }

/* ============================================================
   FLOATING ACTIONS
   ============================================================ */
.fab-stack{ position:fixed; right:clamp(14px,3vw,28px); bottom:clamp(14px,3vw,28px); z-index:70; display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.fab-wa{
  width:58px; height:58px; border-radius:50%; background:var(--whatsapp); color:#fff;
  display:grid; place-items:center; box-shadow:0 10px 28px rgba(37,211,102,.45);
  transition:transform .2s; position:relative;
}
.fab-wa:hover{ transform:scale(1.08); }
.fab-wa svg{ width:32px; height:32px; }
.fab-wa::after{ content:""; position:absolute; inset:0; border-radius:50%; box-shadow:0 0 0 0 rgba(37,211,102,.5); animation:waPulse 2.4s infinite; }
@keyframes waPulse{ 70%{ box-shadow:0 0 0 16px rgba(37,211,102,0);} 100%{ box-shadow:0 0 0 0 rgba(37,211,102,0);} }
.fab-quote{
  display:inline-flex; align-items:center; gap:10px; background:var(--green-700); color:#fff;
  font-family:var(--font-head); font-weight:700; font-size:.95rem; padding:.85em 1.25em; border-radius:var(--r-pill);
  box-shadow:0 12px 30px rgba(16,40,25,.32); transition:transform .2s, background .2s;
}
.fab-quote:hover{ transform:translateY(-2px); background:var(--green-600); }
.fab-quote .icon{ width:20px; height:20px; color:var(--lime); }
@media (prefers-reduced-motion: reduce){ .fab-wa::after{ animation:none; } }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1040px){
  .footer__top{ grid-template-columns:1fr 1fr; gap:34px; }
}
@media (max-width: 1180px){
  .nav-tel{ display:none; }
}
@media (max-width: 1024px){
  .nav-links{ display:none; }
  .burger{ display:inline-flex; }
}
@media (max-width: 920px){
  .burger{ display:inline-flex; }
  .feature, .feature.rev{ grid-template-columns:1fr; gap:34px; }
  .feature.rev .feature__media{ order:0; }
  .about{ grid-template-columns:1fr; }
  .about__media{ max-width:440px; }
  .contact{ grid-template-columns:1fr; }
}
@media (max-width: 680px){
  body{ font-size:16px; }
  .nav-cta .btn span.lbl{ display:none; }
  .form-grid{ grid-template-columns:1fr; }
  .footer__top{ grid-template-columns:1fr; gap:28px; }
  .proj-list{ grid-template-columns:1fr; }
  .solband .wrap{ flex-direction:column; align-items:flex-start; }
  .hero__trust{ gap:10px 18px; }
}

/* ---- Phones: compact header so nothing overflows ---- */
@media (max-width: 560px){
  .nav{ gap:10px; }
  .brand{ gap:9px; }
  .brand img{ height:36px; }
  .brand .bx b{ font-size:.9rem; }
  .brand .bx span{ display:none; }            /* hide tagline on small screens */
  .nav-cta{ gap:8px; }
  .nav-cta > .btn{ display:none; }             /* quote lives in the menu + floating button */
  .lang-switch{ padding:2px; }
  .lang-switch button{ padding:.32em .56em; font-size:.76rem; }
}

/* ---- Phones: tame the floating quote button ---- */
@media (max-width: 480px){
  .fab-quote{ font-size:.86rem; padding:.78em 1.05em; }
  .fab-quote .icon{ width:18px; height:18px; }
  .fab-wa{ width:52px; height:52px; }
  .fab-wa svg{ width:28px; height:28px; }
}

/* ============================================================
   LANGUAGE SWITCH (PT / EN)
   ============================================================ */
.lang-switch{
  display:inline-flex; align-items:center; gap:2px;
  background:var(--mist); border:1px solid var(--line);
  border-radius:var(--r-pill); padding:3px;
}
.lang-switch button{
  font-family:var(--font-head); font-weight:700; font-size:.8rem; letter-spacing:.03em;
  color:var(--slate); background:transparent; border:none;
  padding:.34em .7em; border-radius:var(--r-pill); line-height:1;
  transition:background .18s, color .18s;
}
.lang-switch button:hover{ color:var(--green-700); }
.lang-switch button.active{ background:var(--green-700); color:#fff; }
.drawer__lang{ align-self:flex-start; margin-bottom:6px; }
@media (max-width: 680px){
  .lang-switch{ padding:2px; }
  .lang-switch button{ padding:.34em .6em; font-size:.78rem; }
}
