    :root {
      --red:   #DC2626;
      --red-d: #991B1B;
      --red-m: #B91C1C;
      --red-l: #EF4444;
      --blue:  #2B6CB0;
      --blue-d:#1a4f8a;
      --dark:  #0d0d0d;
      --dark2: #141414;
      --hero-bg:#7F1D1D;
      --white: #FFFFFF;
      --off:   #FEF5F4;
      --gray:  #7A8898;
      --text:  #1a1a2e;
      --sh:    0 8px 40px rgba(220,38,38,.18);
    }
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth;overflow-x:hidden;scroll-padding-top:88px;-webkit-text-size-adjust:100%}
    body{font-family:'DM Sans',sans-serif;color:var(--text);background:#fff;overflow-x:hidden;width:100%;max-width:100%}
    img{max-width:100%}
    ::-webkit-scrollbar{width:6px}
    ::-webkit-scrollbar-track{background:#f0e9e8}
    ::-webkit-scrollbar-thumb{background:var(--red);border-radius:3px}

    /* ── LOADER ── */
    #loader{position:fixed;inset:0;z-index:9999;background:var(--dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;transition:opacity .6s}
    .ld-brand{font-family:'Playfair Display',serif;color:#fff;font-size:1.8rem;letter-spacing:.12em;text-transform:uppercase;text-align:center;line-height:1.25}
    .ld-logo{height:96px;width:auto;background:#fff;border-radius:16px;padding:12px 16px}
    .ld-sub{font-size:.7rem;letter-spacing:.22em;color:rgba(255,255,255,.4);text-transform:uppercase}
    .loader-bar{width:140px;height:2px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden;margin-top:6px}
    .loader-fill{height:100%;width:0;background:var(--red);border-radius:2px;animation:ldfill 2s ease forwards}
    @keyframes ldfill{to{width:100%}}
    #loader.hidden{opacity:0;pointer-events:none}

    /* ── NAV ── */
    nav{position:fixed;top:0;left:0;width:100%;z-index:1000;padding:0 clamp(20px,6vw,80px);display:flex;align-items:center;justify-content:space-between;height:72px;background:transparent;transition:background .4s,box-shadow .4s}
    nav.scrolled{background:rgba(13,13,13,.95);backdrop-filter:blur(12px);box-shadow:0 2px 24px rgba(0,0,0,.4)}
    .nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
    .nav-logo-txt{font-family:'Playfair Display',serif;color:#fff;font-size:.97rem;line-height:1.25;text-transform:uppercase;letter-spacing:.06em}
    .nav-logo-img{height:50px;width:auto;display:block;background:#fff;border-radius:10px;padding:5px 8px;box-shadow:0 4px 16px rgba(0,0,0,.25)}
    .nav-links{display:flex;gap:30px;list-style:none}
    .nav-links a{color:rgba(255,255,255,.82);text-decoration:none;font-weight:500;font-size:.88rem;letter-spacing:.08em;text-transform:uppercase;padding-bottom:4px;position:relative;transition:color .3s}
    .nav-links a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--red);transition:width .3s}
    .nav-links a:hover::after{width:100%}
    .nav-cta{background:var(--red);color:#fff;border:none;border-radius:6px;padding:10px 22px;font-weight:700;font-size:.82rem;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:background .3s,transform .2s}
    .nav-cta:hover{background:var(--red-m);transform:translateY(-2px)}
    .hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer}
    .hamburger span{width:24px;height:2px;background:#fff;transition:.3s}

    /* ── MOBILE MENU ── */
    .mobile-menu{position:fixed;inset:0;z-index:999;background:var(--dark);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;transform:translateX(100%);transition:transform .4s cubic-bezier(.77,0,.175,1)}
    .mobile-menu.open{transform:translateX(0)}
    .mobile-menu a{font-family:'Playfair Display',serif;font-size:1.8rem;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;transition:color .2s}
    .mobile-menu a:hover{color:var(--red)}
    .mobile-close{position:absolute;top:24px;right:24px;color:#fff;font-size:1.4rem;cursor:pointer;background:none;border:none}

    /* ── HERO ── */
    .hero{
      position:relative;
      min-height:100vh;
      min-height:100dvh;
      display:grid;
      grid-template-columns:1fr 1fr;
      background:var(--hero-bg);
      overflow:hidden;
    }
    /* LEFT PANEL */
    .hero-left{
      position:relative;
      z-index:2;
      display:flex;
      flex-direction:column;
      justify-content:center;
      padding:130px clamp(20px,5vw,60px) 90px clamp(24px,8vw,100px);
    }
    /* a fusão das colunas é feita pelo gradiente em .hero-right::after;
       o pseudo-elemento aqui ficava por cima do texto e por isso foi removido */
    .hero-left::before{content:none}
    .hero-badge{
      display:inline-flex;align-items:center;gap:8px;
      background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.32);
      color:#fff;border-radius:100px;
      padding:6px 16px;font-size:.72rem;font-weight:700;
      letter-spacing:.12em;text-transform:uppercase;margin-bottom:24px;
      width:fit-content;
    }
    .hero-badge i{color:#fff}
    .hero h1{
      font-family:'Playfair Display',serif;
      font-size:clamp(2.2rem,4.2vw,3.8rem);
      color:#fff;line-height:1.12;
      margin-bottom:22px;
      text-transform:uppercase;
      letter-spacing:.04em;
      text-shadow:0 2px 16px rgba(0,0,0,.28);
      position:relative;z-index:2;
    }
    .hero h1 span{color:#ffd9d2}
    .hero-left > *{position:relative;z-index:2}
    .hero-sub{
      color:rgba(255,255,255,.65);
      font-size:1rem;line-height:1.78;
      max-width:470px;margin-bottom:38px;
    }
    .hero-btns{display:flex;gap:14px;flex-wrap:wrap}
    .btn-red{background:var(--red);color:#fff;padding:14px 30px;border-radius:8px;font-weight:700;font-size:.88rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:background .3s,transform .25s,box-shadow .3s;box-shadow:0 4px 24px rgba(220,38,38,.4)}
    .btn-red:hover{background:var(--red-m);transform:translateY(-3px);box-shadow:0 8px 32px rgba(220,38,38,.5)}
    .btn-ghost{border:1px solid rgba(255,255,255,.3);color:#fff;padding:14px 30px;border-radius:8px;font-weight:600;font-size:.88rem;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:all .3s;backdrop-filter:blur(6px)}
    .btn-ghost:hover{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.07);transform:translateY(-3px)}

    .hero-btns .btn-red{background:#fff;color:var(--red-d);box-shadow:0 4px 24px rgba(0,0,0,.25)}
    .hero-btns .btn-red:hover{background:var(--off);color:var(--red-d);box-shadow:0 8px 32px rgba(0,0,0,.32)}

    /* RIGHT PANEL – CEO Photo */
    .hero-right{
      position:relative;
      overflow:hidden;
    }
    .hero-right img{
      width:100%;height:100%;
      object-fit:cover;
      object-position:top center;
      display:block;
    }
    .hero-right::after{
      content:'';
      position:absolute;inset:0;
      background:linear-gradient(to right, var(--hero-bg) 0%, rgba(127,29,29,.35) 40%, rgba(127,29,29,.1) 100%);
    }
    .hero-right-badge{
      position:absolute;bottom:40px;right:32px;z-index:5;
      background:rgba(13,13,13,.75);backdrop-filter:blur(12px);
      border:1px solid rgba(255,255,255,.12);
      border-radius:14px;padding:16px 22px;
      display:flex;flex-direction:column;align-items:center;
    }
    .hero-right-badge strong{font-family:'Playfair Display',serif;font-size:1.6rem;color:#fff}
    .hero-right-badge span{font-size:.72rem;color:rgba(255,255,255,.55);letter-spacing:.06em;text-transform:uppercase}
    .hero-scroll{
      position:absolute;bottom:32px;left:8vw;z-index:10;
      display:flex;align-items:center;gap:12px;
      color:rgba(255,255,255,.38);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
    }
    .scroll-line{width:44px;height:1px;background:rgba(255,255,255,.3)}

    /* ── SECTIONS COMMON ── */
    section{padding:clamp(56px,8vw,96px) clamp(20px,6vw,80px)}
    .section-tag{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--red);margin-bottom:11px}
    .section-tag.w{color:rgba(255,255,255,.65)}
    .section-title{font-family:'Playfair Display',serif;font-size:clamp(1.7rem,3.2vw,2.6rem);line-height:1.18;margin-bottom:13px;color:var(--text);text-transform:uppercase;letter-spacing:.03em}
    .section-title.w{color:#fff}
    .section-sub{color:var(--gray);font-size:.98rem;line-height:1.77;max-width:540px}
    .section-sub.w{color:rgba(255,255,255,.6)}
    .max-w{max-width:1280px;margin:0 auto;width:100%}
    .red-line{width:48px;height:3px;background:var(--red);border-radius:2px;margin-bottom:18px}

    /* ── ABOUT ── */
    .about{background:var(--off)}
    .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:68px;align-items:center}
    .about-img-wrap{position:relative}
    .about-img-main{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top;border-radius:20px;box-shadow:var(--sh)}
    .about-badge{position:absolute;bottom:28px;right:-24px;background:var(--red);border-radius:12px;padding:16px 20px;color:#fff}
    .about-badge strong{display:block;font-size:1.7rem;font-family:'Playfair Display',serif}
    .about-badge span{font-size:.73rem;opacity:.82;text-transform:uppercase;letter-spacing:.06em}
    .about-vals{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
    .pill{display:flex;align-items:center;gap:7px;background:#fff;border:1px solid rgba(220,38,38,.18);border-radius:100px;padding:7px 15px;font-size:.82rem;font-weight:500;color:var(--red)}

    /* ── TEAM ── */
    .team{background:#fff}
    .team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:22px;margin-top:48px}
    .team-card{background:var(--off);border-radius:16px;overflow:hidden;text-align:center;transition:transform .3s,box-shadow .3s}
    .team-card:hover{transform:translateY(-8px);box-shadow:var(--sh)}
    .team-card img{width:100%;aspect-ratio:1;object-fit:cover;object-position:top}
    .tcb{padding:17px 14px}
    .tcb h4{font-family:'Playfair Display',serif;font-size:1rem;color:var(--text);text-transform:uppercase;letter-spacing:.04em}
    .tcb p{font-size:.8rem;color:var(--gray);margin-top:3px}
    .tsoc{display:flex;justify-content:center;gap:10px;margin-top:9px}
    .tsoc a{color:var(--red);font-size:.85rem;opacity:.6;transition:opacity .2s}
    .tsoc a:hover{opacity:1}

    /* ── DIRECTOR (single, no photo) ── */
    .director-wrap{display:flex;justify-content:center;margin-top:48px}
    .director-card{
      background:var(--off);
      border:1px solid rgba(220,38,38,.12);
      border-radius:20px;
      padding:48px 40px;
      max-width:520px;width:100%;
      text-align:center;
      box-shadow:0 10px 40px rgba(220,38,38,.06);
      transition:transform .3s,box-shadow .3s;
    }
    .director-card:hover{transform:translateY(-6px);box-shadow:0 16px 48px rgba(220,38,38,.12)}
    .director-mono{
      width:84px;height:84px;margin:0 auto 22px;
      border-radius:50%;
      background:var(--red);color:#fff;
      display:flex;align-items:center;justify-content:center;
      font-family:'Playfair Display',serif;font-size:1.9rem;font-weight:700;
      letter-spacing:.04em;
      box-shadow:0 8px 24px rgba(220,38,38,.32);
    }
    .director-card h4{font-family:'Playfair Display',serif;font-size:1.5rem;color:var(--text);text-transform:uppercase;letter-spacing:.05em}
    .director-role{font-size:.84rem;color:var(--red);font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-top:6px}
    .director-line{width:54px;height:3px;background:var(--red);border-radius:3px;margin:20px auto}
    .director-bio{font-size:.93rem;color:var(--gray);line-height:1.74;max-width:400px;margin:0 auto 20px}
    .director-card .tsoc a{font-size:1rem}

    /* ── SERVICES ── */
    .services{background:var(--dark2)}
    .services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:22px;margin-top:48px}
    .svc-card{--svc:var(--red);background:#fff;border:1px solid rgba(0,0,0,.06);border-top:4px solid var(--svc);border-radius:16px;padding:32px 24px;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}
    .svc-card::after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:var(--svc);opacity:.13;transition:opacity .35s;z-index:0}
    .svc-card:hover{transform:translateY(-8px);box-shadow:0 18px 44px rgba(0,0,0,.28)}
    .svc-card:hover::after{opacity:1}
    .svc-card>*{position:relative;z-index:1;transition:color .35s}
    .svc-icon{width:54px;height:54px;border-radius:13px;background:var(--svc);display:flex;align-items:center;justify-content:center;font-size:1.45rem;color:#fff;margin-bottom:16px;transition:background .35s}
    .svc-card:hover .svc-icon{background:rgba(255,255,255,.22)}
    .svc-card h3{font-family:'Playfair Display',serif;font-size:1.08rem;color:var(--text);margin-bottom:9px;text-transform:uppercase;letter-spacing:.03em}
    .svc-card p{font-size:.87rem;color:var(--gray);line-height:1.73}
    .svc-learn{display:inline-flex;align-items:center;gap:6px;margin-top:16px;color:var(--svc);font-size:.82rem;font-weight:700;text-decoration:none;transition:gap .2s,color .35s;text-transform:uppercase;letter-spacing:.06em}
    .svc-card:hover h3,.svc-card:hover p,.svc-card:hover .svc-learn{color:#fff}
    .svc-card:hover .svc-learn{gap:10px}

    /* ── TIMELINE ── */
    .tl-sec{background:var(--off)}
    .timeline{position:relative;margin-top:56px}
    .timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--red),var(--blue));transform:translateX(-50%)}
    .tl-item{display:flex;justify-content:flex-end;padding-right:calc(50% + 38px);margin-bottom:52px;position:relative}
    .tl-item:nth-child(even){justify-content:flex-start;padding-right:0;padding-left:calc(50% + 38px)}
    .tl-dot{position:absolute;left:50%;top:20px;width:14px;height:14px;border-radius:50%;background:var(--red);border:3px solid #fff;transform:translateX(-50%);box-shadow:0 0 0 4px rgba(220,38,38,.2)}
    .tl-box{background:#fff;border-radius:14px;padding:20px 24px;max-width:390px;box-shadow:var(--sh)}
    .tl-date{font-size:.73rem;font-weight:700;letter-spacing:.12em;color:var(--red);text-transform:uppercase;margin-bottom:6px}
    .tl-box h4{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--text);margin-bottom:6px;text-transform:uppercase;letter-spacing:.03em}
    .tl-box p{font-size:.85rem;color:var(--gray);line-height:1.65}

    /* ── NEWS ── */
    .news{background:#fff}
    .news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-top:48px}
    .news-card{border-radius:16px;overflow:hidden;border:1px solid rgba(220,38,38,.09);transition:transform .3s,box-shadow .3s}
    .news-card:hover{transform:translateY(-7px);box-shadow:var(--sh)}
    .news-img{width:100%;height:195px;object-fit:cover;display:block}
    .news-body{padding:20px}
    .news-cat{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:7px}
    .news-body h3{font-family:'Playfair Display',serif;font-size:1.05rem;color:var(--text);line-height:1.34;margin-bottom:7px;text-transform:uppercase;letter-spacing:.02em}
    .news-body p{font-size:.84rem;color:var(--gray);line-height:1.65}
    .news-ft{display:flex;align-items:center;gap:9px;margin-top:16px;padding-top:13px;border-top:1px solid rgba(220,38,38,.07)}
    .news-ft img{width:28px;height:28px;border-radius:50%;object-fit:cover;object-position:top}
    .news-ft span{font-size:.75rem;color:var(--gray)}

    /* ── TESTIMONIALS CAROUSEL ── */
    .testi-sec{background:var(--red);padding:clamp(56px,8vw,96px) clamp(20px,6vw,80px)}
    .testi-swiper-wrap{margin-top:52px;position:relative;padding-bottom:52px}
    .swiper-testi{overflow:hidden}
    .testi-card{
      --tc:var(--red);
      background:#fff;
      border:1px solid rgba(0,0,0,.06);
      border-left:5px solid var(--tc);
      border-radius:18px;padding:36px 32px;
      height:auto;
      box-shadow:0 10px 36px rgba(0,0,0,.12);
    }
    .testi-stars{color:#F0A800;font-size:.95rem;margin-bottom:14px;letter-spacing:2px}
    .testi-text{font-size:.97rem;color:var(--text);line-height:1.8;font-style:italic;margin-bottom:24px;position:relative;padding-left:22px}
    .testi-text::before{content:'"';position:absolute;left:0;top:-6px;font-family:'Playfair Display',serif;font-size:2.8rem;color:var(--tc);opacity:.4;line-height:1}
    .testi-author{display:flex;align-items:center;gap:14px}
    .testi-author img{width:50px;height:50px;border-radius:50%;object-fit:cover;object-position:top;border:3px solid var(--tc)}
    .testi-author strong{color:var(--tc);font-size:.92rem;display:block;text-transform:uppercase;letter-spacing:.04em}
    .testi-author span{color:var(--gray);font-size:.78rem}
    /* Swiper nav */
    .swiper-button-next-t,.swiper-button-prev-t{
      position:absolute;top:50%;transform:translateY(-50%);z-index:10;
      width:44px;height:44px;border-radius:50%;
      background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);
      display:flex;align-items:center;justify-content:center;
      color:#fff;cursor:pointer;transition:background .3s;
    }
    .swiper-button-prev-t{left:-16px}
    .swiper-button-next-t{right:-16px}
    .swiper-button-next-t:hover,.swiper-button-prev-t:hover{background:rgba(255,255,255,.25)}
    .testi-pagination{text-align:center;margin-top:28px}
    .testi-pagination .swiper-pagination-bullet{background:rgba(255,255,255,.4);opacity:1;width:8px;height:8px}
    .testi-pagination .swiper-pagination-bullet-active{background:#fff;width:24px;border-radius:4px;transition:width .3s}

    /* ── BRANDS ── */
    .brands-sec{background:#fff;padding:clamp(36px,5vw,52px) clamp(20px,6vw,80px)}
    .brands-lbl{text-align:center;font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gray);margin-bottom:32px}
    .brands-row{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:28px}
    .brand-pill{display:flex;align-items:center;justify-content:center;min-width:110px;height:50px;background:var(--off);border-radius:10px;font-family:'Playfair Display',serif;font-size:.8rem;font-weight:700;color:var(--gray);letter-spacing:.08em;padding:0 18px;opacity:.65;transition:opacity .2s,color .2s,background .2s;text-transform:uppercase}
    .brand-pill:hover{opacity:1;color:var(--red);background:rgba(220,38,38,.07)}

    /* ── CONTACT – DARK ── */
    .contact-sec{background:var(--dark2)}
    .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;margin-top:48px}
    .cform{display:flex;flex-direction:column;gap:13px}
    .form-row{display:grid;grid-template-columns:1fr 1fr;gap:13px}
    .fg{display:flex;flex-direction:column;gap:5px}
    .fg label{font-size:.75rem;color:rgba(255,255,255,.6);font-weight:500;text-transform:uppercase;letter-spacing:.08em}
    .fg input,.fg textarea,.fg select{
      background:rgba(255,255,255,.06);
      border:1px solid rgba(255,255,255,.12);
      border-radius:8px;padding:11px 14px;
      color:#fff;font-family:'DM Sans',sans-serif;font-size:.92rem;
      outline:none;transition:border-color .3s,background .3s;width:100%;
    }
    .fg input::placeholder,.fg textarea::placeholder{color:rgba(255,255,255,.28)}
    .fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--red);background:rgba(255,255,255,.09)}
    .fg select option{background:#1a1a1a}
    .fg textarea{resize:vertical;min-height:110px}
    .btn-sub{
      background:var(--red);color:#fff;border:none;border-radius:8px;
      padding:13px 28px;font-weight:700;font-size:.85rem;
      letter-spacing:.08em;text-transform:uppercase;
      cursor:pointer;display:inline-flex;align-items:center;gap:8px;
      transition:background .3s,transform .2s;box-shadow:0 4px 20px rgba(220,38,38,.35);
    }
    .btn-sub:hover{background:var(--red-m);transform:translateY(-2px)}
    .map-wrap{border-radius:16px;overflow:hidden;box-shadow:0 8px 40px rgba(0,0,0,.4)}
    .map-wrap iframe{width:100%;height:300px;border:none;display:block}
    .cinfo{display:flex;flex-direction:column;gap:13px;margin-top:22px}
    .ci{display:flex;align-items:center;gap:12px}
    .ci-ico{width:36px;height:36px;border-radius:9px;background:rgba(220,38,38,.2);display:flex;align-items:center;justify-content:center;color:var(--red);flex-shrink:0;font-size:.87rem}
    .ci span{color:rgba(255,255,255,.65);font-size:.86rem;overflow-wrap:anywhere}

    /* ── FOOTER – RED ── */
    footer{background:var(--red-d);padding:clamp(44px,6vw,68px) clamp(20px,6vw,80px) 0;color:rgba(255,255,255,.65)}
    .footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:40px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.12)}
    .fbrand-name{font-family:'Playfair Display',serif;color:#fff;font-size:1.2rem;margin-bottom:13px;text-transform:uppercase;letter-spacing:.08em}
    .fbrand-logo{height:64px;width:auto;display:block;background:#fff;border-radius:12px;padding:8px 12px;margin-bottom:16px}
    .fbrand p{font-size:.84rem;line-height:1.73;max-width:260px}
    .fsoc{display:flex;gap:9px;margin-top:18px}
    .fsoc a{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);font-size:.82rem;transition:all .3s}
    .fsoc a:hover{background:#fff;border-color:#fff;color:var(--red)}
    .fc h5{font-family:'Playfair Display',serif;color:#fff;font-size:.9rem;margin-bottom:16px;text-transform:uppercase;letter-spacing:.08em}
    .fc ul{list-style:none;display:flex;flex-direction:column;gap:8px}
    .fc ul li a{color:rgba(255,255,255,.52);text-decoration:none;font-size:.83rem;transition:color .2s}
    .fc ul li a:hover{color:#fff}
    .fnews p{font-size:.83rem;line-height:1.62;margin-bottom:14px}
    .nl-wrap{display:flex;border-radius:8px;overflow:hidden}
    .nl-wrap input{flex:1;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-right:none;padding:10px 13px;color:#fff;font-family:'DM Sans',sans-serif;outline:none;border-radius:8px 0 0 8px}
    .nl-wrap input::placeholder{color:rgba(255,255,255,.35)}
    .nl-wrap button{background:#fff;color:var(--red);border:none;padding:10px 15px;cursor:pointer;font-size:.85rem;transition:background .3s;border-radius:0 8px 8px 0;font-weight:700}
    .nl-wrap button:hover{background:var(--off)}
    .footer-bot{padding:20px 0;text-align:center;font-size:.76rem;color:rgba(255,255,255,.35)}
    .footer-bot span{color:rgba(255,255,255,.7)}

    /* ── FLOATING WA ── */
    .fwa{position:fixed;bottom:20px;right:20px;z-index:900;width:48px;height:48px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.3rem;box-shadow:0 4px 20px rgba(37,211,102,.45);text-decoration:none;transition:transform .3s;flex-shrink:0}
    .fwa:hover{transform:scale(1.08)}

    /* ══════════════════════════════════════
       RESPONSIVE – TABLET  ≤ 1024px
    ══════════════════════════════════════ */
    @media(max-width:1024px){
      /* Nav */
      .nav-links{gap:20px}
      .nav-links a{font-size:.8rem}
      .nav-cta{padding:9px 16px;font-size:.78rem}

      /* Hero */
      .hero{grid-template-columns:55% 45%}
      .hero-left{padding:120px 4vw 80px 6vw}
      .hero h1{font-size:clamp(1.8rem,3.5vw,2.8rem)}
      .hero-right-badge{right:16px;bottom:24px;padding:12px 16px}
      .hero-right-badge strong{font-size:1.3rem}

      /* About */
      .about-grid{gap:44px}
      .about-badge{right:-10px}

      /* Timeline */
      .tl-box{max-width:340px}

      /* Footer */
      .footer-grid{grid-template-columns:1fr 1fr;gap:32px}

      /* Swiper nav */
      .swiper-button-prev-t{left:-8px}
      .swiper-button-next-t{right:-8px}
    }

    /* ══════════════════════════════════════
       RESPONSIVE – SMALL TABLET  ≤ 768px
    ══════════════════════════════════════ */
    @media(max-width:768px){
      /* Nav – hide links, show hamburger */
      .nav-links,.nav-cta{display:none}
      .hamburger{display:flex}
      nav{padding:0 5vw}

      /* Sections padding */
      section{padding:72px 5vw}
      .brands-sec{padding:44px 5vw}

      /* Hero – stack, show bg image behind text */
      .hero{
        grid-template-columns:1fr;
        min-height:100svh;
        position:relative;
      }
      .hero-right{
        position:absolute;inset:0;
        opacity:.22;
        display:block;
      }
      .hero-right::after{
        background:linear-gradient(to bottom, rgba(127,29,29,.5) 0%, var(--hero-bg) 80%);
      }
      .hero-right-badge{display:none}
      .hero-left{
        position:relative;z-index:3;
        padding:110px 5vw 80px;
        justify-content:flex-end;
        min-height:100svh;
      }
      .hero-left::before{display:none}
      .hero h1{font-size:clamp(2rem,7vw,3rem);line-height:1.12}
      .hero-sub{font-size:.95rem;max-width:100%}
      .hero-btns{flex-direction:column;align-items:flex-start;gap:12px}
      .btn-red,.btn-ghost{width:100%;justify-content:center;padding:14px 20px}
      .hero-scroll{left:5vw}

      /* About */
      .about-grid{grid-template-columns:1fr;gap:36px}
      .about-img-main{aspect-ratio:16/9}
      .about-badge{right:16px;bottom:16px}

      /* Team */
      .team-grid{grid-template-columns:repeat(2,1fr);gap:16px}

      /* Services */
      .services-grid{grid-template-columns:1fr;gap:16px}

      /* Timeline */
      .timeline::before{left:16px}
      .tl-item,.tl-item:nth-child(even){
        justify-content:flex-start;
        padding:0 0 0 44px;
      }
      .tl-dot{left:16px}
      .tl-box{max-width:100%}

      /* News */
      .news-grid{grid-template-columns:1fr;gap:18px}

      /* Testimonials */
      .testi-card{padding:24px 20px}
      .swiper-button-prev-t,.swiper-button-next-t{display:none}

      /* Brands */
      .brands-row{gap:16px}
      .brand-pill{min-width:90px;font-size:.75rem;padding:0 12px}

      /* Contact */
      .contact-grid{grid-template-columns:1fr;gap:40px}
      .form-row{grid-template-columns:1fr}
      .map-wrap iframe{height:240px}

      /* Footer */
      .footer-grid{grid-template-columns:1fr 1fr;gap:28px}

      /* Inputs ≥16px → impede o zoom automático do iOS ao tocar nos campos */
      .fg input,.fg textarea,.fg select,.nl-wrap input{font-size:16px}
    }

    /* ══════════════════════════════════════
       RESPONSIVE – MOBILE  ≤ 480px
    ══════════════════════════════════════ */
    @media(max-width:480px){
      /* Typography scale down */
      .section-title{font-size:1.5rem}
      .section-sub{font-size:.92rem}

      /* Nav */
      nav{height:62px}
      .nav-logo-img{height:42px;padding:4px 6px}

      /* Mobile menu */
      .mobile-menu a{font-size:1.5rem}

      /* Hero */
      .hero-left{padding:90px 5vw 60px}
      .hero h1{font-size:clamp(1.7rem,8vw,2.4rem)}
      .hero-badge{font-size:.65rem;padding:5px 12px}
      .hero-sub{font-size:.88rem}

      /* About badge – fits small screens */
      .about-badge{position:relative;right:auto;bottom:auto;margin-top:16px;display:inline-flex;align-items:center;gap:12px;border-radius:12px}
      .about-badge strong{font-size:1.4rem}
      .about-vals{gap:8px}
      .pill{font-size:.78rem;padding:6px 12px}

      /* Team – single column */
      .team-grid{grid-template-columns:1fr}
      .director-card{padding:38px 24px}
      .director-mono{width:72px;height:72px;font-size:1.6rem}
      .director-card h4{font-size:1.3rem}

      /* Services */
      .svc-card{padding:24px 20px}
      .svc-icon{width:44px;height:44px;font-size:1.2rem}

      /* Timeline */
      .tl-box{padding:16px 18px}
      .tl-box h4{font-size:.95rem}
      .tl-box p{font-size:.82rem}

      /* News */
      .news-img{height:170px}
      .news-body{padding:16px}
      .news-body h3{font-size:.97rem}

      /* Testimonials */
      .testi-text{font-size:.88rem}
      .testi-author img{width:40px;height:40px}
      .testi-pagination{margin-top:18px}

      /* Brands */
      .brands-row{gap:10px}
      .brand-pill{min-width:76px;height:42px;font-size:.7rem}

      /* Contact form – campos ≥16px (impede zoom do iOS) */
      .fg label{font-size:.72rem}
      .fg input,.fg textarea,.fg select{font-size:16px;padding:11px 13px}
      .btn-sub{width:100%;justify-content:center}
      .cinfo .ci span{font-size:.82rem}

      /* Footer */
      .footer-grid{grid-template-columns:1fr;gap:24px}
      .fbrand-name{font-size:1rem}
      .fbrand p{font-size:.82rem}
      .fc h5{font-size:.85rem;margin-bottom:12px}
      .fc ul li a{font-size:.8rem}
      .footer-bot{font-size:.72rem;padding:16px 0}

      /* Floating WA */
      .fwa{width:44px;height:44px;font-size:1.2rem;bottom:18px;right:18px}
    }

    /* ══════════════════════════════════════
       RESPONSIVE – EXTRA SMALL  ≤ 360px
    ══════════════════════════════════════ */
    @media(max-width:360px){
      .hero h1{font-size:1.55rem}
      .btn-red,.btn-ghost{font-size:.82rem;padding:12px 16px}
      .section-title{font-size:1.35rem}
      .testi-card{padding:20px 16px}
    }

    /* ══════════════════════════════════════
       RESPONSIVE – TELEMÓVEL PEQUENO  ≤ 600px
    ══════════════════════════════════════ */
    @media(max-width:600px){
      .footer-grid{grid-template-columns:1fr;gap:26px}
      .hero-badge{white-space:normal;line-height:1.45;text-align:left}
      .news-ft span{font-size:.72rem}
      .cinfo .ci{align-items:flex-start}
    }

    /* ══════════════════════════════════════
       TELEMÓVEL DEITADO – ecrã baixo
    ══════════════════════════════════════ */
    @media (max-height:560px) and (orientation:landscape){
      .hero{min-height:auto}
      .hero-left{padding:92px 5vw 46px;justify-content:center;min-height:auto}
      .hero h1{font-size:clamp(1.5rem,5vw,2.2rem);margin-bottom:14px}
      .hero-sub{margin-bottom:22px}
      .hero-scroll{display:none}
      .mobile-menu{gap:14px;overflow-y:auto;padding:60px 0}
      .mobile-menu a{font-size:1.3rem}
    }

    /* ══════════════════════════════════════
       ECRÃS GRANDES  ≥ 1600px – limitar e respirar
    ══════════════════════════════════════ */
    @media(min-width:1600px){
      .hero{grid-template-columns:1.05fr 1fr}
      .hero-left{padding-left:clamp(100px,12vw,240px)}
      .hero h1{font-size:4rem}
      section{padding:110px clamp(80px,9vw,200px)}
    }

    /* ══════════════════════════════════════
       ACESSIBILIDADE – movimento reduzido
    ══════════════════════════════════════ */
    @media (prefers-reduced-motion: reduce){
      *,*::before,*::after{
        animation-duration:.001ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.001ms !important;
        scroll-behavior:auto !important;
      }
      .loader-fill{animation:none;width:100%}
      [data-aos]{opacity:1 !important;transform:none !important}
    }

/* ── CONTACT FLASH (success/error) ── */
.contact-flash{
  display:flex;align-items:center;gap:12px;
  margin:32px auto 0;max-width:760px;
  padding:14px 20px;border-radius:10px;
  font-size:.9rem;font-weight:500;letter-spacing:.02em;
}
.contact-flash i{font-size:1.1rem;flex-shrink:0}
.contact-flash--ok{
  background:rgba(58,170,53,.15);
  border:1px solid rgba(58,170,53,.45);
  color:#7be07b;
}
.contact-flash--err{
  background:rgba(220,38,38,.18);
  border:1px solid rgba(220,38,38,.55);
  color:#ffb3a8;
}

/* ── CUSTOM CURSOR (decorativo, dot + ring com lag) ── */
.sm-cursor-dot,
.sm-cursor-ring{
  position:fixed;top:0;left:0;
  pointer-events:none;
  z-index:99999;
  border-radius:50%;
  will-change:transform;
  transform:translate3d(-100px,-100px,0);
}
.sm-cursor-dot{
  width:7px;height:7px;
  margin:-3.5px 0 0 -3.5px;
  background:var(--red);
  box-shadow:0 0 12px rgba(220,38,38,.55);
  transition:opacity .2s, background .2s;
}
.sm-cursor-ring{
  width:34px;height:34px;
  margin:-17px 0 0 -17px;
  border:1.5px solid var(--red);
  opacity:.7;
  transition:width .25s cubic-bezier(.22,1,.36,1),
             height .25s cubic-bezier(.22,1,.36,1),
             margin .25s cubic-bezier(.22,1,.36,1),
             border-color .2s,
             background .2s,
             opacity .2s;
}
.sm-cursor-ring.is-hover{
  width:60px;height:60px;
  margin:-30px 0 0 -30px;
  border-color:var(--red-l);
  background:rgba(220,38,38,.1);
  opacity:1;
}
.sm-cursor-ring.is-down{
  width:24px;height:24px;
  margin:-12px 0 0 -12px;
  background:rgba(220,38,38,.25);
  opacity:1;
}

/* Esconde no toque e em modo reduzido */
@media (hover: none){
  .sm-cursor-dot,.sm-cursor-ring{display:none}
}
@media (prefers-reduced-motion: reduce){
  .sm-cursor-dot,.sm-cursor-ring{display:none}
}

/* Quando o JS confirmou que está activo, esconde o cursor do sistema */
.has-custom-cursor,
.has-custom-cursor a,
.has-custom-cursor button,
.has-custom-cursor [role="button"]{cursor:none}
/* Mas mantém o cursor de texto onde se escreve */
.has-custom-cursor input,
.has-custom-cursor textarea,
.has-custom-cursor select,
.has-custom-cursor [contenteditable]{cursor:text}
