  /* ============ TOKENS ============ */
  :root{
    /* raw palette (Apple-derived system) */
    --c-blue-fill:#0071e3;
    --c-blue-link:#0066cc;
    --c-blue-signal:#2997ff;
    --c-carbon:#1d1d1f;
    --c-frost:#f5f5f7;
    --c-ice:#f4f8fb;
    --c-smoke:#333333;
    --c-graphite:#474747;
    --c-ash:#707070;
    --c-mist:#858585;
    --c-onyx:#000000;
    --c-pebble:#e2e2e5;
    --c-white:#ffffff;
    --c-hairline-light:#d2d2d7;

    /* semantic tokens — light (default) */
    --bg-page:var(--c-frost);
    --bg-elevated:var(--c-ice);
    --bg-surface2:var(--c-pebble);
    --bg-card:var(--c-white);
    --text-primary:var(--c-carbon);
    --text-secondary:var(--c-smoke);
    --text-tertiary:var(--c-ash);
    --text-muted:var(--c-mist);
    --text-inverse:var(--c-frost);
    --border-hair:var(--c-hairline-light);
    --border-strong:var(--c-smoke);
    --nav-bg:var(--c-carbon);
    --nav-text:var(--c-frost);
    --nav-border:var(--c-smoke);
    --accent-fill:var(--c-blue-fill);
    --accent-fill-text:var(--c-frost);
    --accent-outline:var(--c-blue-link);
    --accent-decorative:var(--c-blue-signal);
    --input-bg:var(--c-frost);
    --input-border:var(--c-hairline-light);
    --shadow-product: rgba(0,0,0,0.22) 3px 5px 30px 0px;
    --shadow-soft: rgba(29,29,31,0.10) 0px 12px 40px 0px;

    /* type */
    --font-display:'SF Pro Display','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
    --font-text:'SF Pro Text','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;

    /* spacing */
    --sp-4:4px; --sp-8:8px; --sp-12:12px; --sp-16:16px; --sp-20:20px;
    --sp-24:24px; --sp-40:40px; --sp-48:48px; --sp-56:56px; --sp-64:64px;

    /* radius */
    --radius-card:8px;
    --radius-img:8px;
    --radius-input:8px;
    --radius-pill:980px;

    --page-max:1440px;
  }

  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg-page:#000000;
      --bg-elevated:#111317;
      --bg-surface2:#1d1d1f;
      --bg-card:#161618;
      --text-primary:#f5f5f7;
      --text-secondary:#c7c7cc;
      --text-tertiary:#a1a1a6;
      --text-muted:#8e8e93;
      --text-inverse:#1d1d1f;
      --border-hair:#333336;
      --border-strong:#48484a;
      --nav-bg:#000000;
      --nav-text:#f5f5f7;
      --nav-border:#2c2c2e;
      --accent-outline:#4da3ff;
      --input-bg:#1c1c1e;
      --input-border:#3a3a3c;
      --shadow-product: rgba(0,0,0,0.55) 3px 5px 30px 0px;
      --shadow-soft: rgba(0,0,0,0.45) 0px 12px 40px 0px;
    }
  }
  :root[data-theme="dark"]{
    --bg-page:#000000;
    --bg-elevated:#111317;
    --bg-surface2:#1d1d1f;
    --bg-card:#161618;
    --text-primary:#f5f5f7;
    --text-secondary:#c7c7cc;
    --text-tertiary:#a1a1a6;
    --text-muted:#8e8e93;
    --text-inverse:#1d1d1f;
    --border-hair:#333336;
    --border-strong:#48484a;
    --nav-bg:#000000;
    --nav-text:#f5f5f7;
    --nav-border:#2c2c2e;
    --accent-outline:#4da3ff;
    --input-bg:#1c1c1e;
    --input-border:#3a3a3c;
    --shadow-product: rgba(0,0,0,0.55) 3px 5px 30px 0px;
    --shadow-soft: rgba(0,0,0,0.45) 0px 12px 40px 0px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;} }

  body{
    margin:0;
    background:var(--bg-page);
    color:var(--text-primary);
    font-family:var(--font-text);
    font-weight:400;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }

  h1,h2,h3,h4{margin:0; font-family:var(--font-display); font-weight:600; text-wrap:balance;}
  p{margin:0;}
  a{color:inherit;}
  ul{margin:0; padding:0; list-style:none;}
  button{font-family:inherit;}

  img,svg{max-width:100%;}

  .wrap{max-width:var(--page-max); margin:0 auto; padding:0 var(--sp-24);}
  .prose-col{max-width:980px; margin:0 auto;}

  section{padding:var(--sp-64) 0;}

  .eyebrow{
    font-size:12px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase;
    color:var(--text-tertiary);
  }

  .heading-xl{ font-size:56px; line-height:1.07; letter-spacing:0.616px; font-weight:600; }
  .heading-lg{ font-size:44px; line-height:1.14; letter-spacing:-0.2px; font-weight:600; }
  .heading{ font-size:40px; line-height:1.14; letter-spacing:0.3px; font-weight:600; }
  .heading-sm{ font-size:28px; line-height:1.18; letter-spacing:0.15px; font-weight:600; }
  .subheading{ font-size:21px; line-height:1.35; letter-spacing:-0.1px; font-weight:300; color:var(--text-secondary); }
  .body-text{ font-size:17px; line-height:1.55; letter-spacing:-0.2px; color:var(--text-secondary); }
  .body-sm{ font-size:14px; line-height:1.4; letter-spacing:-0.16px; color:var(--text-tertiary); }
  .caption{ font-size:12px; line-height:1.33; letter-spacing:0.2px; color:var(--text-muted); }

  @media (max-width:820px){
    .heading-xl{font-size:38px; letter-spacing:0.2px;}
    .heading-lg{font-size:32px;}
    .heading{font-size:30px;}
    .heading-sm{font-size:23px;}
    .subheading{font-size:18px;}
    section{padding:44px 0;}
  }

  /* ============ BUTTONS ============ */
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    border-radius:var(--radius-pill);
    font-size:17px; font-weight:400; letter-spacing:-0.1px;
    padding:11px 22px;
    text-decoration:none; cursor:pointer;
    transition:transform .15s ease, opacity .15s ease, background-color .15s ease;
    border:1px solid transparent;
    white-space:nowrap;
  }
  .btn:active{transform:scale(0.98);}
  .btn:focus-visible{outline:2px solid var(--accent-decorative); outline-offset:2px;}
  .btn-filled{ background:var(--accent-fill); color:#f4f8fb; }
  .btn-filled:hover{ opacity:0.88; }
  .btn-outline{ background:transparent; border-color:var(--accent-outline); color:var(--accent-outline); }
  .btn-outline:hover{ background:color-mix(in srgb, var(--accent-outline) 10%, transparent); }
  .btn-ghost{ background:transparent; color:var(--accent-outline); padding:11px 4px; }
  .btn-ghost:hover{ text-decoration:underline; }
  .btn-sm{ padding:8px 15px; font-size:14px; }
  .btn[disabled]{ opacity:0.5; cursor:not-allowed; }

  .btn-row{ display:flex; gap:var(--sp-12); flex-wrap:wrap; align-items:center; }

  /* ============ NAV ============ */
  .nav{
    position:sticky; top:0; z-index:50;
    background:var(--nav-bg); color:var(--nav-text);
    border-bottom:1px solid var(--nav-border);
  }
  .nav-inner{
    max-width:var(--page-max); margin:0 auto; padding:0 24px;
    display:flex; align-items:center; justify-content:space-between;
    height:52px;
  }
  .nav-logo{ display:flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:600; font-size:15px; color:var(--nav-text); text-decoration:none; letter-spacing:-0.2px;}
  .nav-logo .dot{ width:7px; height:7px; border-radius:50%; background:var(--c-blue-fill); flex:none; }
  .nav-links{ display:flex; gap:26px; }
  .nav-links a{ font-size:12px; font-weight:400; color:var(--nav-text); opacity:0.8; text-decoration:none; }
  .nav-links a:hover{ opacity:1; }
  .nav-links a.active-nav{ opacity:1; color:var(--accent-decorative); }
  .nav-cta{ display:flex; align-items:center; gap:14px; }

  /* Seletor de idioma */
  .lang-switch{ position:relative; }
  .lang-switch-btn{
    font-size:11.5px; font-weight:600; letter-spacing:0.4px; color:var(--nav-text); background:transparent;
    border:1px solid rgba(245,245,247,.28); border-radius:7px; padding:6px 10px; cursor:pointer;
  }
  .lang-switch-btn:hover{ border-color:rgba(245,245,247,.5); }
  .lang-switch-menu{
    display:none; position:absolute; top:calc(100% + 8px); right:0; min-width:150px; z-index:60;
    background:var(--bg-card); border:1px solid var(--border-hair); border-radius:10px; box-shadow:var(--shadow-soft);
    padding:6px; flex-direction:column; gap:2px;
  }
  .lang-switch-menu.open{ display:flex; }
  .lang-switch-menu a{ font-size:13px; color:var(--text-secondary); text-decoration:none; padding:8px 10px; border-radius:6px; }
  .lang-switch-menu a:hover{ background:var(--bg-elevated); }
  .lang-switch-menu a.active{ color:var(--accent-fill); font-weight:600; }
  @media (max-width:720px){ .lang-switch-menu{ right:auto; left:0; } }
  .nav-mobile-toggle{
    display:none; background:none; border:0; color:var(--nav-text); cursor:pointer;
    width:32px; height:32px; padding:0; flex:none; position:relative;
  }
  .nav-mobile-toggle span, .nav-mobile-toggle span::before, .nav-mobile-toggle span::after{
    content:''; position:absolute; left:7px; right:7px; height:1.5px; background:currentColor; transition:transform .15s ease, opacity .15s ease;
  }
  .nav-mobile-toggle span{ top:15px; }
  .nav-mobile-toggle span::before{ top:-7px; }
  .nav-mobile-toggle span::after{ top:7px; }
  .nav.open .nav-mobile-toggle span{ background:transparent; }
  .nav.open .nav-mobile-toggle span::before{ transform:translateY(7px) rotate(45deg); }
  .nav.open .nav-mobile-toggle span::after{ transform:translateY(-7px) rotate(-45deg); }
  @media (max-width:900px){
    .nav-mobile-toggle{ display:block; }
    .nav-links{
      display:flex; flex-direction:column; gap:0; position:absolute; left:0; right:0; top:52px;
      background:var(--nav-bg); border-bottom:1px solid var(--nav-border);
      max-height:0; overflow:hidden; overflow-y:auto; -webkit-overflow-scrolling:touch; transition:max-height .2s ease;
    }
    /* calc, não um valor fixo em px: cresce sozinho com o número de itens do menu (não
       partir sempre que se acrescenta uma página nova) e nunca ultrapassa o ecrã visível —
       com scroll interno (overflow-y acima) no caso raro de não caber tudo mesmo assim. */
    .nav.open .nav-links{ max-height:calc(100vh - 52px); }
    .nav-links a{ padding:13px 24px; border-top:1px solid var(--nav-border); opacity:1; }
    .nav-cta .btn{ padding:7px 14px; font-size:13px; }
  }

  /* ============ SUBNAV (navegação interna de uma página longa) ============ */
  .subnav{ display:flex; gap:22px; justify-content:center; flex-wrap:wrap; padding:14px 24px; border-bottom:1px solid var(--border-hair); background:var(--bg-elevated); position:sticky; top:52px; z-index:40; }
  .subnav a{ font-size:12.5px; color:var(--text-secondary); text-decoration:none; white-space:nowrap; }
  .subnav a:hover{ color:var(--text-primary); }

  /* ============ HERO ============ */
  .hero{ background:var(--bg-page); padding-top:var(--sp-64); padding-bottom:0; text-align:center; }
  .hero-eyebrow{ margin-bottom:var(--sp-16); }
  .hero h1{ margin-bottom:var(--sp-16); }
  .hero .subheading{ max-width:640px; margin:0 auto var(--sp-24); }
  .hero .btn-row{ justify-content:center; margin-bottom:var(--sp-56); }
  .hero-trust{ margin-top:var(--sp-16); }

  /* Banner de imagem opcional, definido em admin/hero-banners.php */
  .hero.has-image{
    position:relative; isolation:isolate; background-size:cover; background-position:center;
    overflow:hidden; display:flex; flex-direction:column; padding-top:0; padding-bottom:0;
  }
  .hero.has-image::before{
    content:''; position:absolute; inset:0; z-index:0;
    background:linear-gradient(180deg, rgba(10,10,12,.55) 0%, rgba(10,10,12,.62) 45%, rgba(10,10,12,.82) 100%);
  }
  .hero.has-image > .wrap:first-of-type{ position:relative; z-index:1; width:100%; margin-top:auto; margin-bottom:auto; padding-top:var(--sp-56); padding-bottom:var(--sp-56); }
  .hero.has-image .eyebrow{ color:#e5e5ea; }
  .hero.has-image h1, .hero.has-image .subheading{ color:#fff; }
  .hero.has-image .subheading{ color:#e5e5ea; }
  .hero.has-image .btn-outline{ border-color:rgba(255,255,255,.55); color:#fff; }
  .hero.has-image .hero-trust, .hero.has-image .hero-trust *{ color:#d1d1d6; }

  /* Vídeo de fundo (opcional, definido em admin/hero-banners.php) — fica por baixo do
     degradê escuro (::before, z-index:0) para o texto continuar legível por cima. */
  .hero-video-bg{
    position:absolute; inset:0; z-index:-1; width:100%; height:100%;
    object-fit:cover; background:var(--c-carbon);
  }

  /* Espaçamento (altura do banner) — só tem efeito visível com imagem de fundo */
  .hero.has-image.pad-compact{ min-height:380px; }
  .hero.has-image.pad-normal{ min-height:560px; }
  .hero.has-image.pad-spacious{ min-height:720px; }
  @media (max-width:720px){
    .hero.has-image.pad-compact{ min-height:320px; }
    .hero.has-image.pad-normal{ min-height:420px; }
    .hero.has-image.pad-spacious{ min-height:520px; }
  }
  .hero:not(.has-image).pad-compact{ padding-top:var(--sp-40); }
  .hero:not(.has-image).pad-normal{ padding-top:var(--sp-64); }
  .hero:not(.has-image).pad-spacious{ padding-top:96px; }

  /* Alinhamento vertical do bloco de texto (só relevante com imagem, que tem altura própria) */
  .hero.has-image.align-v-top > .wrap:first-of-type{ margin-top:0; }
  .hero.has-image.align-v-center > .wrap:first-of-type{ margin-top:auto; margin-bottom:auto; }
  .hero.has-image.align-v-bottom > .wrap:first-of-type{ margin-bottom:0; }

  /* Alinhamento horizontal do texto e dos botões */
  .hero.align-h-left{ text-align:left; }
  .hero.align-h-right{ text-align:right; }
  .hero.align-h-left .subheading{ margin-left:0; margin-right:auto; }
  .hero.align-h-right .subheading{ margin-left:auto; margin-right:0; }
  .hero.align-h-left .btn-row{ justify-content:flex-start; }
  .hero.align-h-right .btn-row{ justify-content:flex-end; }

  /* browser / product mock */
  .mock-shell{
    max-width:1180px; margin:0 auto; text-align:left;
    background:var(--bg-card);
    border:1px solid var(--border-hair);
    border-radius:14px;
    box-shadow:var(--shadow-product);
    overflow:hidden;
  }
  .mock-titlebar{ display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid var(--border-hair); }
  .mock-dot{ width:10px; height:10px; border-radius:50%; }
  .mock-dot.r{background:#ff5f57;} .mock-dot.y{background:#febc2e;} .mock-dot.g{background:#28c840;}
  .mock-titlebar span{ margin-left:12px; font-size:12px; color:var(--text-muted); font-family:var(--font-text); }
  .mock-body{ display:grid; grid-template-columns:200px 1fr; min-height:340px; }
  .mock-rail{ border-right:1px solid var(--border-hair); padding:18px 14px; display:flex; flex-direction:column; gap:6px; }
  .mock-rail-item{ display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:8px; font-size:13px; color:var(--text-tertiary); }
  .mock-rail-item.active{ background:var(--bg-elevated); color:var(--text-primary); font-weight:500; }
  .mock-rail-dot{ width:6px; height:6px; border-radius:50%; background:currentColor; opacity:0.5; flex:none; }
  .mock-main{ padding:22px 26px; display:flex; flex-direction:column; gap:20px; }
  .mock-kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  .mock-kpi{ border:1px solid var(--border-hair); border-radius:8px; padding:12px 14px; }
  .mock-kpi .k-label{ font-size:11px; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.6px; }
  .mock-kpi .k-value{ font-family:var(--font-display); font-size:22px; font-weight:600; margin-top:4px; }
  .mock-kpi .k-delta{ font-size:11px; color:#1f9d55; margin-top:2px; font-variant-numeric:tabular-nums; }
  .mock-chart{ border:1px solid var(--border-hair); border-radius:8px; padding:16px; flex:1; display:flex; flex-direction:column; gap:10px;}
  .mock-chart .k-label{ font-size:11px; color:var(--text-muted); text-transform:uppercase; letter-spacing:0.6px; }
  .bars{ display:flex; align-items:flex-end; gap:8px; height:100px; }
  .bars i{ flex:1; background:linear-gradient(180deg, var(--c-blue-signal), var(--c-blue-fill)); border-radius:3px 3px 0 0; display:block; }
  .mock-chat{ position:relative; margin-top:-96px; margin-left:auto; margin-right:24px; width:230px; background:var(--bg-card); border:1px solid var(--border-hair); border-radius:12px; padding:12px 14px; box-shadow:var(--shadow-soft); }
  .mock-chat .who{ display:flex; align-items:center; gap:8px; font-size:12px; font-weight:600; margin-bottom:6px;}
  .mock-chat .who .avatar{ width:18px; height:18px; border-radius:50%; background:var(--c-blue-fill);}
  .mock-chat .msg{ font-size:12px; color:var(--text-secondary); line-height:1.4; }
  @media (max-width:820px){
    .mock-body{ grid-template-columns:1fr; }
    .mock-rail{ display:none; }
    .mock-chat{ display:none; }
  }

  /* ============ SERVICE BANNERS ============ */
  .svc-section{ padding-top:var(--sp-56); }
  .svc-grid{ display:grid; grid-template-columns:1.15fr 0.85fr 0.85fr 1.15fr; gap:var(--sp-20); }
  @media (max-width:1080px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .svc-grid{ grid-template-columns:1fr; } }

  .svc-card{
    position:relative; overflow:hidden; border-radius:var(--radius-card);
    min-height:320px; padding:26px; display:flex; flex-direction:column; justify-content:space-between;
    text-decoration:none; isolation:isolate;
    transition:transform .25s ease;
  }
  .svc-card:hover{ transform:translateY(-3px); }
  .svc-card:focus-visible{ outline:2px solid var(--c-blue-signal); outline-offset:3px; }
  .svc-card .svc-label{ font-size:12px; font-weight:600; letter-spacing:0.6px; text-transform:uppercase; opacity:0.75; position:relative; z-index:2; }
  .svc-card h3{ font-size:26px; margin:10px 0 8px; position:relative; z-index:2; }
  .svc-card p{ font-size:14px; line-height:1.5; max-width:34ch; position:relative; z-index:2; }
  .svc-card .svc-cta{
    align-self:flex-start; margin-top:18px; font-size:13px; font-weight:600;
    padding:8px 16px; border-radius:var(--radius-pill); position:relative; z-index:2;
  }

  .svc-card.dark{ background:var(--c-carbon); color:var(--c-frost); }
  .svc-card.dark p{ color:#c7c7cc; }
  .svc-card.dark .svc-cta{ background:var(--c-frost); color:var(--c-carbon); }

  .svc-card.smoke{ background:linear-gradient(155deg, #333333, #1d1d1f); color:var(--c-frost); }
  .svc-card.smoke p{ color:#c7c7cc; }
  .svc-card.smoke .svc-cta{ background:var(--c-blue-fill); color:#f4f8fb; }

  .svc-card.wash-blue{ background:radial-gradient(120% 140% at 15% 0%, #eaf4ff 0%, #d9ecff 55%, #cbe4ff 100%); color:var(--c-carbon); }
  .svc-card.wash-blue p{ color:var(--c-smoke); }
  .svc-card.wash-blue .svc-cta{ background:var(--c-blue-fill); color:#f4f8fb; }

  .svc-card.wash-ice{ background:linear-gradient(160deg, var(--c-ice), var(--c-pebble)); color:var(--c-carbon); }
  .svc-card.wash-ice p{ color:var(--c-smoke); }
  .svc-card.wash-ice .svc-cta{ background:var(--c-carbon); color:var(--c-frost); }

  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]) .svc-card.wash-blue{ background:radial-gradient(120% 140% at 15% 0%, #0f2a44 0%, #0c3252 55%, #0a3a63 100%); color:#f5f5f7; }
    :root:not([data-theme="light"]) .svc-card.wash-blue p{ color:#c7c7cc; }
    :root:not([data-theme="light"]) .svc-card.wash-ice{ background:linear-gradient(160deg, #1d1d1f, #101012); color:#f5f5f7; }
    :root:not([data-theme="light"]) .svc-card.wash-ice p{ color:#c7c7cc; }
  }
  :root[data-theme="dark"] .svc-card.wash-blue{ background:radial-gradient(120% 140% at 15% 0%, #0f2a44 0%, #0c3252 55%, #0a3a63 100%); color:#f5f5f7; }
  :root[data-theme="dark"] .svc-card.wash-blue p{ color:#c7c7cc; }
  :root[data-theme="dark"] .svc-card.wash-ice{ background:linear-gradient(160deg, #1d1d1f, #101012); color:#f5f5f7; }
  :root[data-theme="dark"] .svc-card.wash-ice p{ color:#c7c7cc; }

  /* Imagem de banner opcional por cartão (mesma imagem do hero da respetiva página) */
  .svc-image{
    position:absolute; inset:0; z-index:0; background-size:cover; background-position:center;
    transition:transform .5s ease;
  }
  .svc-card:hover .svc-image{ transform:scale(1.045); }
  .svc-card.has-image::before{
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.28) 45%, rgba(0,0,0,.78) 100%);
  }
  .svc-card.has-image .svc-label{ color:#e5e5ea; opacity:0.95; }
  .svc-card.has-image h3, .svc-card.has-image p{ color:#fff; }
  .svc-card.has-image .svc-cta{ background:#fff; color:var(--c-carbon); }

  /* decorative glyphs, absolutely positioned, low-key */
  .svc-glyph{ position:absolute; z-index:1; opacity:0.9; pointer-events:none; }

  .svc-waveform{ display:flex; align-items:flex-end; gap:5px; height:64px; bottom:26px; right:26px; }
  .svc-waveform i{ width:5px; border-radius:3px; background:var(--c-blue-signal); display:block; animation:svcwave 1.6s ease-in-out infinite; }
  .svc-waveform i:nth-child(1){ height:22px; animation-delay:0s; }
  .svc-waveform i:nth-child(2){ height:46px; animation-delay:.12s; }
  .svc-waveform i:nth-child(3){ height:64px; animation-delay:.24s; }
  .svc-waveform i:nth-child(4){ height:34px; animation-delay:.36s; }
  .svc-waveform i:nth-child(5){ height:52px; animation-delay:.48s; }
  .svc-waveform i:nth-child(6){ height:20px; animation-delay:.6s; }
  @keyframes svcwave{ 0%,100%{ transform:scaleY(0.55); opacity:0.55; } 50%{ transform:scaleY(1); opacity:1; } }
  @media (prefers-reduced-motion: reduce){ .svc-waveform i{ animation:none; transform:none; opacity:0.85; } }

  .svc-nodes{ width:130px; height:110px; bottom:20px; right:16px; }
  .svc-nodes svg{ width:100%; height:100%; }
  .svc-nodes circle{ fill:var(--c-blue-fill); }
  .svc-nodes line{ stroke:var(--c-blue-fill); stroke-width:1.2; opacity:0.45; }

  .svc-avatars{ bottom:28px; right:26px; display:flex; }
  .svc-avatars span{ width:34px; height:34px; border-radius:50%; background:var(--c-carbon); border:2px solid var(--c-ice); margin-left:-10px; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-size:12px; font-weight:600; color:#fff; }
  .svc-avatars span:first-child{ margin-left:0; }

  .svc-bars2{ display:flex; align-items:flex-end; gap:6px; height:56px; bottom:26px; right:26px; }
  .svc-bars2 i{ width:9px; border-radius:2px 2px 0 0; background:var(--c-blue-signal); display:block; }
  .svc-bars2 i:nth-child(1){ height:20px; } .svc-bars2 i:nth-child(2){ height:38px; }
  .svc-bars2 i:nth-child(3){ height:56px; } .svc-bars2 i:nth-child(4){ height:30px; }

  .svc-appgrid{ bottom:26px; right:26px; display:grid; grid-template-columns:repeat(2,26px); gap:8px; }
  .svc-appgrid i{ width:26px; height:26px; border-radius:8px; background:var(--c-carbon); display:block; opacity:0.9; }
  .svc-appgrid i:nth-child(2){ background:var(--c-blue-fill); }
  .svc-appgrid i:nth-child(3){ background:var(--c-blue-signal); }

  @media (max-width:1080px){ .svc-card{ min-height:280px; } }

  /* ============ SECTION HELPERS ============ */
  .section-head{ text-align:center; max-width:720px; margin:0 auto var(--sp-48); }
  .section-head .eyebrow{ margin-bottom:var(--sp-12); }
  .section-head h2{ margin-bottom:var(--sp-16); }

  .surface-elevated{ background:var(--bg-elevated); }
  .surface-page{ background:var(--bg-page); }
  .surface-strong{ background:var(--nav-bg); color:var(--nav-text); }
  .surface-strong .body-text{ color:#c7c7cc; }

  /* three-up problem/system rows — flat, hairline, no cards */
  .flat-grid{ display:grid; gap:0; border-top:1px solid var(--border-hair); }
  .flat-grid.cols-3{ grid-template-columns:repeat(3,1fr); }
  .flat-row{ padding:var(--sp-40) var(--sp-24); border-bottom:1px solid var(--border-hair); }
  .flat-grid.cols-3 .flat-row{ border-right:1px solid var(--border-hair); }
  .flat-grid.cols-3 .flat-row:last-child{ border-right:none; }
  @media (max-width:820px){
    .flat-grid.cols-3{ grid-template-columns:1fr; }
    .flat-grid.cols-3 .flat-row{ border-right:none; }
  }
  .flat-row .num{ font-family:var(--font-display); font-size:14px; color:var(--accent-decorative); font-weight:600; margin-bottom:var(--sp-16); }
  .flat-row h3{ font-size:21px; margin-bottom:var(--sp-8); }

  /* module grid */
  .module-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border-hair); border:1px solid var(--border-hair); border-radius:var(--radius-card); overflow:hidden; }
  .module-item{ background:var(--bg-page); padding:var(--sp-24); display:flex; flex-direction:column; gap:var(--sp-12); min-height:172px; text-decoration:none; color:inherit; transition:background .15s ease; }
  .module-item .m-icon{ width:34px; height:34px; border-radius:8px; background:var(--bg-elevated); border:1px solid var(--border-hair); display:flex; align-items:center; justify-content:center; color:var(--accent-fill); flex:none; }
  .module-item h3{ font-size:16px; font-weight:600; }
  .module-item p{ font-size:13.5px; line-height:1.5; color:var(--text-tertiary); }
  a.module-item:hover{ background:var(--bg-elevated); }
  .module-item .m-link-cta{ margin-top:auto; font-size:12.5px; font-weight:600; color:var(--accent-outline); }
  @media (max-width:980px){ .module-grid{ grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .module-grid{ grid-template-columns:1fr;} }

  /* agents */
  .agent-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:var(--sp-24); }
  .agent-card{ border-top:2px solid var(--accent-decorative); padding-top:var(--sp-16); }
  .agent-card h3{ font-size:16px; margin-bottom:var(--sp-12); }
  .agent-card ul li{ font-size:13.5px; color:var(--text-tertiary); line-height:1.5; padding:4px 0 4px 14px; position:relative; }
  .agent-card ul li::before{ content:""; position:absolute; left:0; top:12px; width:4px; height:4px; border-radius:50%; background:var(--text-muted); }
  @media (max-width:980px){ .agent-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:560px){ .agent-grid{ grid-template-columns:1fr; } }

  /* Aura workflow */
  .aura-layout{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:var(--sp-56); align-items:center; }
  @media (max-width:980px){ .aura-layout{ grid-template-columns:1fr; } }
  .aura-steps{ display:flex; flex-direction:column; }
  .aura-step{ display:flex; gap:var(--sp-16); padding:var(--sp-16) 0; border-bottom:1px solid var(--border-hair); }
  .aura-step:last-child{ border-bottom:none; }
  .aura-step .n{ font-family:var(--font-display); font-weight:600; color:var(--accent-fill); font-size:14px; width:22px; flex:none; }
  .aura-step h4{ font-size:15.5px; font-weight:600; margin-bottom:4px; }
  .aura-step p{ font-size:13.5px; color:var(--text-tertiary); line-height:1.5; }

  .flow-line{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:var(--sp-24); font-size:11px; letter-spacing:0.5px; text-transform:uppercase; color:var(--text-muted); }
  .flow-line b{ color:var(--text-primary); font-weight:600; }
  .flow-line .arrow{ color:var(--accent-decorative); }

  .phone-mock{ max-width:280px; margin:0 auto; background:var(--bg-card); border:1px solid var(--border-hair); border-radius:32px; padding:14px; box-shadow:var(--shadow-product); }
  .phone-screen{ background:var(--bg-elevated); border-radius:20px; padding:18px 14px; min-height:420px; display:flex; flex-direction:column; gap:10px; }
  .phone-call-badge{ text-align:center; padding:16px 0 10px; }
  .phone-call-badge .avatar{ width:52px; height:52px; border-radius:50%; background:var(--c-blue-fill); margin:0 auto 10px; display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--font-display); font-weight:600; }
  .phone-call-badge .name{ font-weight:600; font-size:15px; }
  .phone-call-badge .status{ font-size:12px; color:var(--text-tertiary); margin-top:2px; }
  .phone-bubble{ background:var(--bg-card); border:1px solid var(--border-hair); border-radius:12px; padding:10px 12px; font-size:12.5px; line-height:1.45; color:var(--text-secondary); }
  .phone-bubble.me{ background:var(--c-blue-fill); color:#fff; border-color:transparent; align-self:flex-end; max-width:80%; }
  .phone-tag{ display:inline-block; font-size:10.5px; font-weight:600; letter-spacing:0.4px; text-transform:uppercase; background:var(--bg-surface2); color:var(--text-secondary); padding:3px 8px; border-radius:6px; align-self:flex-start; }

  /* journey timeline */
  .timeline{ position:relative; max-width:760px; margin:0 auto; }
  .timeline::before{ content:""; position:absolute; left:19px; top:6px; bottom:6px; width:1px; background:var(--border-hair); }
  .t-item{ position:relative; padding:0 0 var(--sp-40) 56px; }
  .t-item:last-child{ padding-bottom:0; }
  .t-item .t-num{ position:absolute; left:0; top:0; width:40px; height:40px; border-radius:50%; background:var(--bg-page); border:1px solid var(--border-hair); display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:600; font-size:14px; color:var(--accent-fill); }
  .t-item h4{ font-size:17px; margin-bottom:4px; }
  .t-item p{ font-size:14.5px; color:var(--text-tertiary); line-height:1.5; }

  /* calculator */
  .calc-panel{ display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--border-hair); border-radius:14px; overflow:hidden; background:var(--bg-card); }
  @media (max-width:820px){ .calc-panel{ grid-template-columns:1fr; } }
  .calc-inputs{ padding:var(--sp-40); display:flex; flex-direction:column; gap:var(--sp-20); border-right:1px solid var(--border-hair); }
  @media (max-width:820px){ .calc-inputs{ border-right:none; border-bottom:1px solid var(--border-hair); } }
  .calc-field label{ display:flex; justify-content:space-between; font-size:13px; font-weight:500; margin-bottom:8px; color:var(--text-secondary); }
  .calc-field label .val{ color:var(--accent-fill); font-variant-numeric:tabular-nums; font-weight:600; }
  .calc-field input[type="range"]{ width:100%; accent-color:var(--c-blue-fill); }
  .calc-field input[type="number"]{
    width:100%; padding:10px 12px; border-radius:var(--radius-input); border:1px solid var(--input-border);
    background:var(--input-bg); color:var(--text-primary); font-size:15px; font-family:var(--font-text);
  }
  .calc-field input:focus-visible{ outline:2px solid var(--accent-decorative); outline-offset:1px; }
  .calc-result{ padding:var(--sp-40); display:flex; flex-direction:column; justify-content:center; gap:var(--sp-16); background:var(--bg-elevated); }
  .calc-result .r-label{ font-size:12px; text-transform:uppercase; letter-spacing:0.8px; color:var(--text-tertiary); }
  .calc-result .r-value{ font-family:var(--font-display); font-size:44px; font-weight:600; color:var(--accent-fill); font-variant-numeric:tabular-nums; letter-spacing:-1px; }
  .calc-result .r-sub{ font-size:13.5px; color:var(--text-tertiary); line-height:1.5; }

  /* process */
  .process-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-24); }
  @media (max-width:980px){ .process-grid{ grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .process-grid{ grid-template-columns:1fr;} }
  .process-item .p-num{ font-family:var(--font-display); font-size:34px; font-weight:600; color:var(--border-strong); opacity:0.35; margin-bottom:8px; }
  .process-item h3{ font-size:17px; margin-bottom:6px; }
  .process-item p{ font-size:13.5px; color:var(--text-tertiary); line-height:1.5; }

  /* pricing */
  .price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-24); align-items:stretch; }
  .price-grid.cols-4{ grid-template-columns:repeat(4,1fr); }
  @media (max-width:1080px){ .price-grid.cols-4{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:980px){ .price-grid{ grid-template-columns:1fr; } }
  .price-card{ border:1px solid var(--border-hair); border-radius:14px; padding:var(--sp-24) 28px 28px; display:flex; flex-direction:column; gap:var(--sp-16); background:var(--bg-card); }
  .price-card.rec{ border-color:var(--c-blue-fill); border-width:2px; position:relative; }
  .price-card .rec-tag{ position:absolute; top:-13px; left:28px; background:var(--c-blue-fill); color:#fff; font-size:11px; font-weight:600; letter-spacing:0.4px; text-transform:uppercase; padding:4px 12px; border-radius:999px; }
  .price-card h3{ font-size:20px; }
  .price-card .price-amount{ font-family:var(--font-display); font-size:30px; font-weight:600; letter-spacing:-0.5px; }
  .price-card .price-amount span{ font-size:13px; font-weight:400; color:var(--text-tertiary); }
  .price-card .p-desc{ font-size:13.5px; color:var(--text-tertiary); line-height:1.5; }
  .price-card ul{ display:flex; flex-direction:column; gap:10px; flex:1; }
  .price-card ul li{ font-size:14px; color:var(--text-secondary); padding-left:20px; position:relative; line-height:1.4;}
  .price-card ul li::before{ content:"✓"; position:absolute; left:0; color:var(--c-blue-fill); font-weight:600; font-size:13px; }
  .price-note{ text-align:center; margin-top:var(--sp-24); }

  /* faq */
  .faq-list{ max-width:760px; margin:0 auto; border-top:1px solid var(--border-hair); }
  .faq-item{ border-bottom:1px solid var(--border-hair); }
  .faq-item summary{ cursor:pointer; list-style:none; padding:var(--sp-20) 4px; display:flex; justify-content:space-between; align-items:center; gap:16px; font-size:17px; font-weight:500; }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary .plus{ font-family:var(--font-display); font-size:20px; color:var(--accent-fill); transition:transform .2s ease; flex:none; }
  .faq-item[open] summary .plus{ transform:rotate(45deg); }
  .faq-item .faq-a{ padding:0 4px var(--sp-20); font-size:15px; color:var(--text-tertiary); line-height:1.6; max-width:640px; }

  /* final CTA / form */
  .cta-layout{ display:grid; grid-template-columns:0.9fr 1.1fr; gap:var(--sp-56); align-items:start; }
  @media (max-width:980px){ .cta-layout{ grid-template-columns:1fr; } }
  .form-card{ background:var(--bg-card); border:1px solid var(--border-hair); border-radius:16px; padding:var(--sp-40); }
  .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-16); }
  @media (max-width:560px){ .field-row{ grid-template-columns:1fr; } }
  .field{ margin-bottom:var(--sp-16); }
  .field label{ display:block; font-size:13px; font-weight:500; margin-bottom:6px; color:var(--text-secondary); }
  .field input, .field select, .field textarea{
    width:100%; padding:11px 13px; border-radius:var(--radius-input); border:1px solid var(--input-border);
    background:var(--input-bg); color:var(--text-primary); font-size:15px; font-family:var(--font-text);
  }
  .field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible{ outline:2px solid var(--accent-decorative); outline-offset:1px; }
  .field textarea{ resize:vertical; min-height:80px; }
  .form-foot{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:var(--sp-8); flex-wrap:wrap; }
  .form-status{ font-size:13.5px; min-height:18px; }
  .form-status.ok{ color:#1f9d55; }
  .form-status.err{ color:#d33; }
  .privacy-note{ font-size:12px; color:var(--text-muted); margin-top:var(--sp-16); line-height:1.5; }

  .contact-alt{ display:flex; flex-direction:column; gap:var(--sp-12); margin-top:var(--sp-24); }
  .contact-alt a{ display:flex; align-items:center; gap:10px; font-size:14.5px; color:var(--text-secondary); text-decoration:none; }
  .contact-alt a:hover{ color:var(--accent-outline); }
  .contact-alt .ic{ width:30px; height:30px; border-radius:50%; background:var(--bg-elevated); border:1px solid var(--border-hair); display:flex; align-items:center; justify-content:center; flex:none; }

  .thankyou{ display:none; text-align:center; padding:var(--sp-40) 0; }
  .thankyou.show{ display:block; }
  .thankyou .tick{ width:56px; height:56px; border-radius:50%; background:var(--c-blue-fill); color:#fff; display:flex; align-items:center; justify-content:center; margin:0 auto 18px; font-size:26px; }

  /* footer */
  footer{ background:var(--bg-page); border-top:1px solid var(--border-hair); padding:var(--sp-56) 0 var(--sp-24); }
  .footer-grid{ display:grid; grid-template-columns:1.4fr repeat(3,1fr); gap:var(--sp-40); padding-bottom:var(--sp-40); border-bottom:1px solid var(--border-hair); }
  @media (max-width:820px){ .footer-grid{ grid-template-columns:repeat(2,1fr); } }
  .footer-brand .nav-logo{ color:var(--text-primary); margin-bottom:10px; }
  .footer-brand p{ font-size:13px; color:var(--text-tertiary); max-width:260px; line-height:1.5; }
  .footer-col h4{ font-size:12px; text-transform:uppercase; letter-spacing:0.6px; color:var(--text-muted); margin-bottom:14px; font-family:var(--font-text); font-weight:600; }
  .footer-col ul{ display:flex; flex-direction:column; gap:10px; }
  .footer-col a{ font-size:13.5px; color:var(--text-tertiary); text-decoration:none; }
  .footer-col a:hover{ color:var(--text-primary); }
  .footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:var(--sp-20); flex-wrap:wrap; gap:10px; }
  .footer-bottom p{ font-size:12px; color:var(--text-muted); }

  /* ============ BLOG ============ */
  .blog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--sp-24); }
  @media (max-width:900px){ .blog-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:620px){ .blog-grid{ grid-template-columns:1fr; } }
  .blog-card{ display:flex; flex-direction:column; border-radius:16px; overflow:hidden; border:1px solid var(--border-hair); background:var(--bg-card); text-decoration:none; transition:transform .18s ease, box-shadow .18s ease; }
  .blog-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-soft); }
  .blog-card-media{ height:170px; background:var(--bg-elevated) linear-gradient(135deg, var(--c-carbon), var(--c-smoke)); background-size:cover; background-position:center; position:relative; }
  .blog-card-glyph{ position:absolute; inset:0; }
  .blog-card-body{ padding:20px 20px 22px; display:flex; flex-direction:column; gap:8px; flex:1; }
  .blog-card-tag{ font-size:11.5px; font-weight:600; letter-spacing:0.5px; text-transform:uppercase; color:var(--accent-decorative); }
  .blog-card-body h3{ font-size:17px; font-family:var(--font-display); font-weight:600; letter-spacing:-0.1px; line-height:1.35; color:var(--text-primary); }
  .blog-card-body p{ font-size:13.5px; color:var(--text-tertiary); line-height:1.55; flex:1; }
  .blog-card-date{ font-size:12px; color:var(--text-muted); margin-top:4px; }

  .blog-pagination{ display:flex; justify-content:center; gap:8px; margin-top:var(--sp-40); }
  .blog-pagination a{ width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:50%; font-size:13px; color:var(--text-tertiary); text-decoration:none; border:1px solid transparent; }
  .blog-pagination a:hover{ border-color:var(--border-hair); }
  .blog-pagination a.active{ background:var(--accent-fill); color:#fff; }

  /* Corpo de um artigo (texto sanitizado, ver includes/blog.php) */
  .article-body{ font-size:16px; line-height:1.75; color:var(--text-secondary); }
  .article-body h2{ font-size:24px; font-family:var(--font-display); font-weight:600; color:var(--text-primary); margin:40px 0 14px; letter-spacing:-0.1px; }
  .article-body h3{ font-size:19px; font-family:var(--font-display); font-weight:600; color:var(--text-primary); margin:32px 0 12px; }
  .article-body h4{ font-size:16px; font-weight:600; color:var(--text-primary); margin:24px 0 8px; }
  .article-body p{ margin-bottom:18px; }
  .article-body a{ color:var(--accent-outline); text-decoration:underline; text-underline-offset:2px; }
  .article-body ul, .article-body ol{ margin:0 0 18px; padding-left:22px; display:flex; flex-direction:column; gap:8px; }
  .article-body blockquote{ margin:24px 0; padding:4px 0 4px 20px; border-left:3px solid var(--accent-decorative); color:var(--text-tertiary); font-style:italic; }
  .article-body img{ max-width:100%; border-radius:12px; margin:24px 0; display:block; }
  .article-body code{ background:var(--bg-elevated); border-radius:4px; padding:2px 6px; font-size:0.9em; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }
  .article-body pre{ background:var(--c-carbon); color:#f4f8fb; border-radius:12px; padding:18px 20px; overflow-x:auto; margin:24px 0; }
  .article-body pre code{ background:none; padding:0; color:inherit; }
  .article-body table{ width:100%; border-collapse:collapse; margin:24px 0; font-size:14px; }
  .article-body th, .article-body td{ border:1px solid var(--border-hair); padding:10px 12px; text-align:left; }
  .article-body hr{ border:none; border-top:1px solid var(--border-hair); margin:32px 0; }

  .article-tags{ display:flex; gap:8px; flex-wrap:wrap; margin-top:40px; }
  .article-tags span{ font-size:12px; padding:6px 12px; border-radius:20px; background:var(--bg-elevated); color:var(--text-tertiary); }
  .article-cta{ margin-top:48px; padding-top:32px; border-top:1px solid var(--border-hair); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }

  /* widget flutuante de WhatsApp (ver includes/site_footer.php + admin/settings.php) */
  .wa-widget{ position:fixed; right:22px; bottom:22px; z-index:9999; line-height:0; }
  .wa-widget .wa-ball{
    position:relative; width:60px; height:60px; border-radius:50%;
    background:#25d366; display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 24px rgba(0,0,0,.28); text-decoration:none;
    transform-origin:70% 70%; transition:transform .15s ease, box-shadow .15s ease;
  }
  .wa-widget .wa-ball:hover{ transform:scale(1.06); box-shadow:0 10px 28px rgba(0,0,0,.34); }
  .wa-widget .wa-ball svg{ width:30px; height:30px; fill:#fff; position:relative; z-index:2; }
  .wa-widget .wa-ring{
    position:absolute; inset:0; border-radius:50%; background:#25d366;
    opacity:.55; animation:wa-pulse 2.6s ease-out infinite; z-index:1;
  }
  @keyframes wa-pulse{ 0%{ transform:scale(1); opacity:.5; } 100%{ transform:scale(1.8); opacity:0; } }
  .wa-widget .wa-ball.wa-buzz{ animation:wa-buzz .8s ease-in-out; }
  @keyframes wa-buzz{
    0%, 100%{ transform:rotate(0) scale(1); }
    10%{ transform:rotate(-14deg) scale(1.05); }
    20%{ transform:rotate(11deg) scale(1.05); }
    30%{ transform:rotate(-9deg); }
    40%{ transform:rotate(9deg); }
    50%{ transform:rotate(-6deg); }
    60%{ transform:rotate(6deg); }
    70%{ transform:rotate(-3deg); }
    80%{ transform:rotate(3deg); }
    90%{ transform:rotate(-1deg); }
  }
  @media (max-width:640px){ .wa-widget{ right:14px; bottom:14px; } .wa-widget .wa-ball{ width:54px; height:54px; } .wa-widget .wa-ball svg{ width:27px; height:27px; } }
  @media (prefers-reduced-motion: reduce){ .wa-widget .wa-ring{ animation:none; } .wa-widget .wa-ball.wa-buzz{ animation:none; } }

/* fim */
