/* =========================================================
   PureSafe — Design tokens
   Fonte: "Guia básico da marca.pdf" + paleta extraída de
   puresafe.com.br. Fonte tipográfica oficial do logotipo é
   proprietária e não foi fornecida; Figtree (Google Fonts) é
   usada como substituta próxima para textos de UI. IBM Plex
   Mono carrega dados técnicos (lotes, CNPJ, valores de laudo).
   ========================================================= */

:root{
  --ps-verde:#8CBE1F;
  --ps-preto:#231F1F;
  --ps-branco:#FFFFFF;
  --ps-ink:#2C2E35;

  --ps-green-50:#F4F9E6;
  --ps-green-100:#E6F2C7;
  --ps-green-200:#D0E79A;
  --ps-green-300:#B6D962;
  --ps-green-400:#9EC93A;
  --ps-green-500:#8CBE1F;
  --ps-green-600:#74A016;
  --ps-green-700:#5B7E12;
  --ps-green-800:#435E0F;
  --ps-green-900:#2E410B;

  --ps-neutral-0:#FFFFFF;
  --ps-neutral-50:#F5F6F8;
  --ps-neutral-100:#E9EBEF;
  --ps-neutral-200:#D2D5DC;
  --ps-neutral-300:#A9ADB8;
  --ps-neutral-400:#7A7F8C;
  --ps-neutral-500:#555966;
  --ps-neutral-600:#3C3F49;
  --ps-neutral-700:#2C2E35;
  --ps-neutral-800:#1F2127;
  --ps-neutral-900:#16181D;

  --ps-approved:#74A016;
  --ps-approved-soft:#E6F2C7;
  --ps-rejected:#C0362C;
  --ps-rejected-soft:#F8E3E1;
  --ps-pending:#D89A0B;
  --ps-pending-soft:#FBF0D4;
  --ps-info:#2B6CB0;
  --ps-info-soft:#E4EDF7;

  --text-strong:var(--ps-neutral-900);
  --text-body:var(--ps-neutral-700);
  --text-muted:var(--ps-neutral-500);
  --text-subtle:var(--ps-neutral-400);
  --text-on-dark:var(--ps-branco);
  --text-on-dark-muted:rgba(255,255,255,.72);
  --text-accent:var(--ps-green-700);
  --text-link:var(--ps-green-700);
  --text-link-hover:var(--ps-green-800);

  --surface-page:var(--ps-branco);
  --surface-subtle:var(--ps-neutral-50);
  --surface-card:var(--ps-branco);
  --surface-inverse:var(--ps-ink);
  --surface-inverse-raised:#343741;
  --surface-brand:var(--ps-verde);
  --surface-brand-soft:var(--ps-green-50);

  --border-subtle:var(--ps-neutral-100);
  --border-default:var(--ps-neutral-200);
  --border-strong:var(--ps-neutral-300);
  --border-brand:var(--ps-verde);
  --border-on-dark:rgba(255,255,255,.14);

  --ps-font-display:"Figtree","Helvetica Neue",Arial,sans-serif;
  --ps-font-sans:"Figtree","Helvetica Neue",Arial,sans-serif;
  --ps-font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",monospace;

  --ps-text-3xs:11px; --ps-text-2xs:12px; --ps-text-xs:13px; --ps-text-sm:14px;
  --ps-text-base:16px; --ps-text-md:18px; --ps-text-lg:20px; --ps-text-xl:24px;
  --ps-text-2xl:30px; --ps-text-3xl:38px; --ps-text-4xl:48px; --ps-text-5xl:60px; --ps-text-6xl:76px;

  --ps-tracking-tighter:-0.03em; --ps-tracking-tight:-0.015em;
  --ps-tracking-wide:0.04em; --ps-tracking-eyebrow:0.14em;

  --ps-space-3:12px; --ps-space-4:16px; --ps-space-5:20px; --ps-space-6:24px;
  --ps-space-7:32px; --ps-space-8:40px;

  --ps-container-max:1200px;
  --ps-gutter-lg:40px;
  --ps-section-y:96px;
  --ps-section-y-sm:56px;

  --ps-radius-sm:6px; --ps-radius-md:10px; --ps-radius-lg:16px; --ps-radius-xl:24px;
  --ps-radius-pill:999px; --ps-radius-card:var(--ps-radius-lg); --ps-radius-control:var(--ps-radius-sm);

  --ps-shadow-xs:0 1px 2px rgba(22,24,29,.06);
  --ps-shadow-sm:0 2px 6px rgba(22,24,29,.07);
  --ps-shadow-md:0 6px 18px rgba(22,24,29,.09);
  --ps-shadow-lg:0 14px 38px rgba(22,24,29,.12);
  --ps-shadow-brand:0 10px 26px rgba(140,190,31,.32);

  --ps-transition:180ms cubic-bezier(.2,.7,.3,1);
}

@media (prefers-reduced-motion:reduce){ *{ animation-duration:.001ms !important; transition-duration:.001ms !important; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0; background:var(--surface-page); color:var(--text-body);
  font:400 var(--ps-text-base)/1.6 var(--ps-font-sans);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,p{ margin:0; }
button{ font:inherit; }

.container{ max-width:var(--ps-container-max); margin:0 auto; padding-inline:var(--ps-gutter-lg); }
.section{ padding:var(--ps-section-y) 0; }
.section--sm{ padding:var(--ps-section-y-sm) 0; }
.section--light{ background:var(--surface-page); }
.section--subtle{ background:var(--surface-subtle); }
.section--ink{ background:var(--ps-ink); color:var(--text-on-dark-muted); }
.section--brand{ background:var(--ps-verde); }

@media (max-width:900px){
  :root{ --ps-gutter-lg:22px; --ps-section-y:64px; --ps-section-y-sm:40px; }
}

/* ---- Type ---- */
.eyebrow{
  display:inline-block; font:800 var(--ps-text-2xs)/1.2 var(--ps-font-display);
  letter-spacing:var(--ps-tracking-eyebrow); text-transform:uppercase; color:var(--ps-green-700);
}
.section--ink .eyebrow, .section--ink .eyebrow-onDark{ color:var(--ps-verde); }
.heading{
  margin:0; font:800 var(--ps-text-3xl)/1.14 var(--ps-font-display);
  letter-spacing:var(--ps-tracking-tight); color:var(--text-strong);
}
.section--ink .heading{ color:var(--ps-branco); }
.heading--xl{ font-size:var(--ps-text-4xl); }
.lead{ font:400 var(--ps-text-lg)/1.6 var(--ps-font-sans); color:var(--text-muted); }
.section--ink .lead{ color:var(--text-on-dark-muted); }
.accent-rule{ width:56px; height:3px; border-radius:3px; background:var(--ps-verde); border:0; margin:14px 0 0; }

.heading-block{ display:flex; flex-direction:column; gap:14px; max-width:640px; }
.heading-block--center{ align-items:center; text-align:center; max-width:720px; margin-inline:auto; }

/* ---- Buttons ---- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  height:52px; padding:0 26px; border-radius:var(--ps-radius-control);
  font:800 var(--ps-text-sm)/1 var(--ps-font-display); letter-spacing:var(--ps-tracking-wide);
  text-transform:uppercase; text-decoration:none; cursor:pointer; border:2px solid transparent;
  transition:background-color var(--ps-transition),border-color var(--ps-transition),color var(--ps-transition),transform var(--ps-transition);
  white-space:nowrap;
}
.btn:active{ transform:translateY(1px); }
.btn--primary{ background:var(--ps-verde); color:var(--ps-ink); box-shadow:var(--ps-shadow-sm); }
.btn--primary:hover{ background:var(--ps-green-400); }
.btn--onDark{ background:rgba(255,255,255,.1); color:var(--ps-branco); border-color:rgba(255,255,255,.3); }
.btn--onDark:hover{ background:rgba(255,255,255,.18); }
.btn--outline{ background:transparent; color:var(--ps-green-700); border-color:var(--ps-verde); }
.btn--outline:hover{ background:var(--ps-green-50); }
.btn--sm{ height:40px; padding:0 18px; font-size:var(--ps-text-2xs); }
.btn--block{ width:100%; }
.btn:disabled{ background:var(--ps-neutral-100); color:var(--ps-neutral-400); cursor:not-allowed; border-color:transparent; }

/* ---- Nav ---- */
.site-header{
  position:sticky; top:0; z-index:40; background:rgba(255,255,255,.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border-subtle);
}
.site-header .container{ display:flex; align-items:center; gap:28px; padding-block:14px; }
.site-logo img{ height:36px; width:auto; }
.site-nav{ display:flex; align-items:center; gap:22px; margin-left:auto; }
.site-nav a{
  font:600 var(--ps-text-sm)/1.3 var(--ps-font-sans); text-decoration:none; color:var(--text-body);
  padding-bottom:3px; border-bottom:2px solid transparent; transition:color var(--ps-transition);
}
.site-nav a:hover, .site-nav a.is-active{ color:var(--ps-green-700); border-bottom-color:var(--ps-verde); }
.nav-toggle{ display:none; margin-left:auto; background:none; border:0; font-size:22px; color:var(--ps-ink); cursor:pointer; }

@media (max-width:940px){
  .nav-toggle{ display:block; }
  .site-nav{
    position:fixed; top:64px; left:0; width:100%; height:calc(100vh - 64px); margin:0;
    background:var(--ps-branco); flex-direction:column;
    align-items:flex-start; padding:24px var(--ps-gutter-lg); gap:18px; transform:translateX(100%);
    transition:transform var(--ps-transition); overflow-y:auto;
  }
  .site-nav.is-open{ transform:translateX(0); }
  .site-nav .btn{ width:100%; }
}

/* ---- Hero ---- */
.hero{
  position:relative; overflow:hidden; background:var(--ps-ink);
}
/* Full-bleed self-hosted background video (laboratory footage), muted/looped.
   The poster frame is also set as a CSS background so reduced-motion users
   (video hidden below) still see a static version instead of flat ink. */
.hero-video-wrap{
  position:absolute; inset:0; overflow:hidden; z-index:0; background:var(--ps-ink) center/cover no-repeat url("../assets/video/lab-background-poster.jpg");
}
.hero-video-wrap video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; pointer-events:none;
}
@media (prefers-reduced-motion:reduce){ .hero-video-wrap video{ display:none; } }
/* Dark brand-tinted overlay so the heading/copy stay readable over the video */
.hero-overlay{
  position:absolute; inset:0; z-index:1;
  background-image:radial-gradient(1100px 620px at 82% -10%, rgba(140,190,31,.20), transparent 60%),
                    linear-gradient(165deg,rgba(20,21,26,.86) 0%,rgba(44,46,53,.82) 62%,rgba(51,54,64,.78) 100%);
}
.hero .container{ position:relative; z-index:2; padding-block:88px 76px; }
.hero-inner{ max-width:640px; display:flex; flex-direction:column; gap:22px; }
.hero-mark{ height:auto; width:40px; filter:brightness(0) invert(1); margin-bottom:4px; }
.hero h1{
  font:900 var(--ps-text-5xl)/1.03 var(--ps-font-display); letter-spacing:var(--ps-tracking-tighter);
  color:var(--ps-branco);
}
.hero .lead{ color:var(--text-on-dark-muted); max-width:520px; font-size:var(--ps-text-lg); }
.hero-actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:6px; }
@media (max-width:680px){ .hero h1{ font-size:var(--ps-text-3xl); } }

/* ---- Process ---- */
.process-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; margin-top:56px; }
@media (max-width:980px){ .process-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .process-grid{ grid-template-columns:1fr; } }
.process-step{ display:flex; flex-direction:column; gap:16px; }
.process-num{
  width:56px; height:56px; flex:0 0 auto; display:grid; place-items:center; background:var(--ps-verde);
  color:var(--ps-ink); border-radius:var(--ps-radius-md); font:900 var(--ps-text-xl)/1 var(--ps-font-display);
}
.process-step h3{ font:700 var(--ps-text-md)/1.2 var(--ps-font-display); color:var(--text-strong); }
.process-step p{ font:400 var(--ps-text-sm)/1.6 var(--ps-font-sans); color:var(--text-muted); }
.process-icon{ color:var(--ps-neutral-300); font-size:20px; }

/* ---- Cards ---- */
.card{
  background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--ps-radius-card);
  box-shadow:var(--ps-shadow-sm); padding:var(--ps-space-7);
}
.card--brandSoft{ background:var(--surface-brand-soft); border-color:var(--ps-green-200); color:var(--ps-green-900); }
.card--interactive{ transition:transform var(--ps-transition),box-shadow var(--ps-transition); }
.card--interactive:hover{ transform:translateY(-3px); box-shadow:var(--ps-shadow-lg); }

/* ---- Benefit list ---- */
.benefit-list{ display:grid; gap:14px; }
.benefit-list--2col{ grid-template-columns:1fr 1fr; }
@media (max-width:560px){ .benefit-list--2col{ grid-template-columns:1fr; } }
.benefit-item{ display:flex; gap:12px; align-items:flex-start; font:500 var(--ps-text-base)/1.5 var(--ps-font-sans); }
.benefit-item i{ color:var(--ps-verde); font-size:17px; margin-top:3px; flex:0 0 auto; }
.section--ink .benefit-item{ color:var(--ps-branco); }

/* ---- Elevate / Seal section ---- */
.elevate-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center; }
@media (max-width:900px){ .elevate-grid{ grid-template-columns:1fr; } }
.seal-figure{ display:flex; flex-direction:column; align-items:center; gap:18px; }
.seal-figure img{ width:230px; height:auto; filter:drop-shadow(var(--ps-shadow-lg)); }
.seal-figure p{ font:400 var(--ps-text-sm)/1.5 var(--ps-font-sans); color:var(--text-on-dark-muted); text-align:center; max-width:280px; }
.seal-video{
  width:260px; aspect-ratio:9/16; border-radius:var(--ps-radius-lg); background:#000;
  box-shadow:var(--ps-shadow-lg); object-fit:cover;
}

/* ---- Brand carousel (3 auto-scrolling rows, 18 logos on screen at once) ---- */
.brand-carousel{
  --brand-tile-size:168px;
  display:flex; flex-direction:column; gap:16px; margin-top:44px;
}
.brand-row{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image:linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.brand-track{
  display:flex; gap:12px; width:max-content;
  animation:brand-scroll-left 46s linear infinite;
}
.brand-row:nth-child(1) .brand-track{ animation-duration:50s; }
.brand-row:nth-child(2) .brand-track{ animation-duration:42s; }
.brand-row:nth-child(3) .brand-track{ animation-duration:58s; }
.brand-row--reverse .brand-track{ animation-name:brand-scroll-right; }
.brand-row:hover .brand-track{ animation-play-state:paused; }
@keyframes brand-scroll-left{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@keyframes brand-scroll-right{ from{ transform:translateX(-50%); } to{ transform:translateX(0); } }
@media (prefers-reduced-motion:reduce){ .brand-track{ animation:none; } }

/* Every tile is the exact same white square; logos are scaled to fit inside
   it (object-fit:contain) so none of them get stretched or cropped. */
.brand-tile{
  flex:0 0 auto; width:var(--brand-tile-size); height:var(--brand-tile-size);
  display:grid; place-items:center; padding:18px; background:var(--ps-branco);
  border:1px solid var(--border-subtle); border-radius:var(--ps-radius-md);
}
.brand-tile img{ max-width:100%; max-height:100%; object-fit:contain; }
@media (max-width:900px){ .brand-carousel{ --brand-tile-size:130px; } }
@media (max-width:560px){ .brand-carousel{ --brand-tile-size:104px; } }
.brand-wall-note{ margin-top:24px; font:400 var(--ps-text-sm)/1.5 var(--ps-font-sans); color:var(--text-subtle); text-align:center; }

/* ---- Pillars ---- */
.pillars-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
@media (max-width:840px){ .pillars-grid{ grid-template-columns:1fr; } }
.pillar-icon{
  display:grid; place-items:center; width:52px; height:52px; border-radius:var(--ps-radius-md);
  background:var(--ps-green-50); color:var(--ps-green-700); font-size:21px; margin-bottom:18px;
}
.pillars-grid h3{ font:700 var(--ps-text-md)/1.2 var(--ps-font-display); color:var(--text-strong); margin-bottom:10px; }
.pillars-grid p{ font:400 var(--ps-text-sm)/1.6 var(--ps-font-sans); color:var(--text-muted); }

/* ---- Person card (Felix) ---- */
.person-card{ display:grid; grid-template-columns:minmax(200px,280px) 1fr; gap:32px; align-items:start; }
@media (max-width:760px){ .person-card{ grid-template-columns:1fr; } }
.person-photo{
  aspect-ratio:3/4; background:linear-gradient(180deg,var(--ps-neutral-100),var(--ps-neutral-50));
  border-radius:var(--ps-radius-lg); overflow:hidden; display:grid; place-items:center;
}
.person-photo img{ width:100%; height:100%; object-fit:cover; object-position:top center; }
.person-card h3{ font:800 var(--ps-text-2xl)/1.15 var(--ps-font-display); color:var(--text-strong); }
.person-role{ margin-top:4px; font:700 var(--ps-text-sm)/1.3 var(--ps-font-sans); color:var(--ps-green-700); }
.person-org{ margin-top:2px; font:400 var(--ps-text-sm)/1.5 var(--ps-font-sans); color:var(--text-muted); }
.person-bio{ display:flex; flex-direction:column; gap:14px; font:400 var(--ps-text-base)/1.65 var(--ps-font-sans); color:var(--text-body); margin-top:16px; }
.person-bio ul{ display:grid; gap:12px; margin:4px 0; }

/* ---- QR / transparency ---- */
.qr-grid{ display:grid; grid-template-columns:.85fr 1.15fr; gap:56px; align-items:center; }
@media (max-width:900px){ .qr-grid{ grid-template-columns:1fr; } }
.qr-grid img{
  display:block; width:100%; max-width:340px; margin-inline:auto;
  border-radius:var(--ps-radius-lg); box-shadow:var(--ps-shadow-lg);
}

/* ---- Telas do laudo (app screens showcase) ---- */
.screens-title{
  text-align:center; color:var(--ps-branco); font:900 var(--ps-text-4xl)/1.1 var(--ps-font-display);
  letter-spacing:var(--ps-tracking-tight); margin:0 0 52px;
}
.screens-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; align-items:start; }
@media (max-width:980px){ .screens-grid{ grid-template-columns:1fr 1fr; max-width:560px; margin-inline:auto; } }
@media (max-width:560px){ .screens-grid{ grid-template-columns:1fr; max-width:300px; } }
.screen-card{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.screen-card img{
  width:100%; max-width:260px; height:auto; position:relative; z-index:1;
  filter:drop-shadow(0 16px 30px rgba(20,24,10,.28));
}
.screen-card-body{
  width:100%; margin-top:-20px; padding:32px 20px 22px; border-radius:var(--ps-radius-lg);
  background:rgba(0,0,0,.16);
}
.screen-card-body h3{ color:var(--ps-branco); font:800 var(--ps-text-md)/1.3 var(--ps-font-display); }
.screen-card-body p{ margin-top:10px; color:rgba(255,255,255,.88); font:400 var(--ps-text-sm)/1.6 var(--ps-font-sans); }

/* ---- Pricing ---- */
.pricing-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:44px; }
@media (max-width:900px){ .pricing-grid{ grid-template-columns:1fr; max-width:420px; margin-inline:auto; } }
.pricing-tier{
  display:flex; flex-direction:column; gap:18px; padding:28px 26px 26px; text-align:center;
  background:var(--surface-card); border:1px solid var(--border-subtle); border-top:4px solid var(--ps-verde);
  border-radius:var(--ps-radius-lg); box-shadow:var(--ps-shadow-sm); transition:transform var(--ps-transition),box-shadow var(--ps-transition);
}
.pricing-tier:hover{ transform:translateY(-3px); box-shadow:var(--ps-shadow-lg); }
.pricing-tier--featured{ background:var(--ps-ink); color:var(--text-on-dark-muted); border-color:transparent; }
.pricing-range{ font:800 var(--ps-text-4xl)/1 var(--ps-font-display); color:var(--text-strong); }
.pricing-tier--featured .pricing-range{ color:var(--ps-branco); }
.pricing-caption{ font:700 var(--ps-text-sm)/1.3 var(--ps-font-sans); text-transform:uppercase; letter-spacing:var(--ps-tracking-wide); color:var(--text-muted); }
.pricing-tier--featured .pricing-caption{ color:var(--ps-verde); }
.pricing-media{ display:grid; place-items:center; min-height:110px; color:var(--ps-neutral-300); font-size:34px; }
.pricing-tier--featured .pricing-media{ color:rgba(255,255,255,.35); }
.pricing-note{ margin-top:24px; font:400 var(--ps-text-sm)/1.5 var(--ps-font-sans); color:var(--text-subtle); text-align:center; max-width:760px; margin-inline:auto; }

/* ---- Request form ---- */
.request-grid{ display:grid; grid-template-columns:.95fr 1.05fr; gap:56px; align-items:start; }
@media (max-width:900px){ .request-grid{ grid-template-columns:1fr; } }
.form-field{ display:flex; flex-direction:column; gap:6px; }
.form-field label{ font:700 var(--ps-text-sm)/1.3 var(--ps-font-sans); color:var(--text-strong); }
.form-field label .req{ color:var(--ps-rejected); margin-left:3px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:520px){ .form-row{ grid-template-columns:1fr; } }
input[type="text"], input[type="email"], input[type="tel"], textarea, select{
  height:46px; padding:0 14px; border:1px solid var(--border-default); border-radius:var(--ps-radius-control);
  font:400 var(--ps-text-sm)/1.4 var(--ps-font-sans); color:var(--text-body); background:var(--ps-branco);
  transition:border-color var(--ps-transition), box-shadow var(--ps-transition);
}
textarea{ height:auto; padding:12px 14px; resize:vertical; }
input:focus, textarea:focus, select:focus{ outline:none; border-color:var(--ps-verde); box-shadow:0 0 0 3px rgba(140,190,31,.25); }
.form-note{ font:400 var(--ps-text-xs)/1.5 var(--ps-font-sans); color:var(--text-subtle); }
.form-alert{
  display:flex; gap:10px; align-items:flex-start; padding:14px 16px; border-radius:var(--ps-radius-md);
  background:var(--ps-approved-soft); border:1px solid var(--ps-green-300); color:var(--ps-green-800);
  font:400 var(--ps-text-sm)/1.5 var(--ps-font-sans); margin-top:4px;
}
.form-alert i{ margin-top:2px; color:var(--ps-approved); }
.form-alert[hidden]{ display:none; }

/* ---- Blog / news cards ---- */
.news-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:36px; flex-wrap:wrap; }
.news-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
@media (max-width:900px){ .news-grid{ grid-template-columns:1fr; } }
.news-card{
  display:flex; flex-direction:column; overflow:hidden; background:var(--surface-card); border:1px solid var(--border-subtle);
  border-radius:var(--ps-radius-lg); box-shadow:var(--ps-shadow-xs); transition:transform var(--ps-transition),box-shadow var(--ps-transition);
  text-decoration:none; color:inherit;
}
.news-card:hover{ transform:translateY(-2px); box-shadow:var(--ps-shadow-md); }
.news-media{ aspect-ratio:16/9; background:var(--ps-neutral-100); display:grid; place-items:center; color:var(--ps-neutral-300); font-size:28px; }
.news-body{ padding:20px 22px 22px; display:flex; flex-direction:column; gap:10px; flex:1; }
.news-body h3{ font:700 var(--ps-text-md)/1.3 var(--ps-font-display); color:var(--text-strong); }
.news-meta{ font:400 var(--ps-text-xs)/1.4 var(--ps-font-sans); color:var(--text-subtle); }
.news-body p{ font:400 var(--ps-text-sm)/1.6 var(--ps-font-sans); color:var(--text-muted); }
.news-link{ margin-top:auto; font:700 var(--ps-text-sm)/1.3 var(--ps-font-sans); color:var(--text-link); }

/* ---- Footer ---- */
.site-footer{ background:var(--ps-ink); color:var(--text-on-dark-muted); }
.footer-grid{ display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:40px; padding:64px 0 28px; }
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr; padding:48px 0 24px; } }
.footer-brand{ display:flex; flex-direction:column; gap:18px; }
.footer-logo{ height:auto; width:134px; filter:brightness(0) invert(1); }
.footer-brand p{ font:400 var(--ps-text-sm)/1.6 var(--ps-font-sans); max-width:380px; }
.footer-social{ display:flex; gap:8px; }
.social-btn{
  width:40px; height:40px; display:grid; place-items:center; border-radius:var(--ps-radius-pill);
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color:var(--ps-branco);
  text-decoration:none; transition:background-color var(--ps-transition);
}
.social-btn:hover{ background:rgba(255,255,255,.18); }
.footer-col h4{ font:800 var(--ps-text-2xs)/1.2 var(--ps-font-display); letter-spacing:var(--ps-tracking-eyebrow); text-transform:uppercase; color:var(--ps-verde); margin-bottom:14px; }
.footer-col a{ display:block; font:400 var(--ps-text-sm)/1.3 var(--ps-font-sans); color:var(--text-on-dark-muted); text-decoration:none; margin-bottom:12px; }
.footer-col a:hover{ color:var(--ps-branco); }
.footer-col p{ font:400 var(--ps-text-2xs)/1.5 var(--ps-font-mono); }
.footer-col p.address{ font:400 var(--ps-text-sm)/1.5 var(--ps-font-sans); margin-top:8px; }
.footer-bottom{ border-top:1px solid var(--border-on-dark); }
.footer-bottom .container{ padding:18px var(--ps-gutter-lg); font:400 var(--ps-text-xs)/1.4 var(--ps-font-sans); }

/* ---- Simple page hero (blog/feedback) ---- */
.page-hero{ background:var(--ps-ink); padding:72px 0 60px; }
.page-hero .heading-block{ max-width:720px; }

/* ---- Utility ---- */
.mt-8{ margin-top:8px; } .mt-14{ margin-top:14px; } .mt-24{ margin-top:24px; } .mt-44{ margin-top:44px; }
.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
