/* ==========================================================
   Gravil Solutions · site
   Tema claro = empresas · tema escuro (.theme-dark) = gamer
   ========================================================== */

/* Fontes IBM Plex hospedadas no próprio site (licença SIL OFL 1.1, ver assets/fonts/OFL.txt).
   Servir localmente evita enviar o IP do visitante ao Google Fonts. */
@font-face{
  font-family:'IBM Plex Sans'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('../fonts/plex-sans-var.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/plex-mono-400.woff2') format('woff2');
}
@font-face{
  font-family:'IBM Plex Mono'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/plex-mono-500.woff2') format('woff2');
}

:root{
  --bg:#f4f5f1;
  --bg-alt:#fbfbf9;
  --surface:#ffffff;
  --ink:#101512;
  --ink-2:#4b554e;
  --rule:#d9dcd4;
  --rule-strong:#101512;
  --accent:#1a7f36;        /* verde com contraste AA sobre fundo claro */
  --accent-hover:#146a2c;
  --on-accent:#ffffff;
  --flag:#46d070;
  --header-bg:rgba(244,245,241,.92);
  --logo:#101512;

  --radius:10px;
  --font:'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --mono:'IBM Plex Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;
  --header-h:68px;
  --gutter:32px;
}
.theme-dark{
  --bg:#0c0f0d;
  --bg-alt:#101411;
  --surface:#141a16;
  --ink:#e9ede9;
  --ink-2:#9ba69e;
  --rule:#26302a;
  --rule-strong:#e9ede9;
  --accent:#46d070;
  --accent-hover:#6ddc8e;
  --on-accent:#06200f;
  --header-bg:rgba(12,15,13,.9);
  --logo:#73e08a;
  color:var(--ink);
}

*,*::before,*::after{box-sizing:border-box;}
*{margin:0; padding:0;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); -webkit-text-size-adjust:100%;}
body{
  font-family:var(--font);
  font-size:17px;
  line-height:1.6;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block; max-width:100%; height:auto;}
picture{display:block;}
a{color:inherit;}
ul,ol{list-style:none;}
h1,h2,h3,h4{line-height:1.15; letter-spacing:-.015em; font-weight:600;}
:focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:4px;}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{transition:none !important; animation:none !important;}
}

.wrap{max-width:1200px; margin:0 auto; padding:0 var(--gutter);}

.skip{
  position:absolute; left:16px; top:-48px; z-index:100;
  background:var(--ink); color:var(--bg); padding:10px 16px; border-radius:6px; text-decoration:none;
}
.skip:focus{top:12px;}

/* ---------- botões e links ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:0 22px;
  font:600 15px/1 var(--font);
  text-decoration:none; text-align:center;
  border-radius:6px;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:background-color .2s, border-color .2s, color .2s;
}
.btn-primary{background:var(--accent); color:var(--on-accent);}
.btn-primary:hover{background:var(--accent-hover);}
.btn-outline{border-color:currentColor; background:transparent; color:var(--ink);}
.btn-outline:hover{background:var(--ink); border-color:var(--ink); color:var(--bg);}
.btn-block{width:100%;}

.text-link{
  display:inline-flex; align-items:center; gap:8px;
  font-weight:600; color:var(--accent); text-decoration:none;
  border-bottom:1.5px solid currentColor; padding-bottom:2px;
}
.text-link::after{content:"→"; transition:transform .2s;}
.text-link:hover::after{transform:translateX(3px);}

/* ---------- cabeçalho ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  height:var(--header-h);
  background:var(--header-bg);
  backdrop-filter:saturate(1.4) blur(10px);
  -webkit-backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .2s;
}
.site-header.is-scrolled{border-bottom-color:var(--rule);}
.header-row{height:100%; display:flex; align-items:center; gap:40px;}
.brand{display:inline-flex; align-items:center; gap:10px; text-decoration:none; font-size:17px; font-weight:600; letter-spacing:-.01em;}
.brand b{font-weight:400; color:var(--ink-2);}
.brand-mark{width:34px; height:27px; flex:none; fill:var(--logo);}
.reg{font-size:.55em; font-weight:500; color:var(--ink-2); margin-left:1px; vertical-align:super; line-height:0;}
.nav{display:flex; gap:28px; margin-left:auto;}
.nav a{font-size:15px; font-weight:500; color:var(--ink-2); text-decoration:none; padding:6px 0; border-bottom:1.5px solid transparent;}
.nav a:hover{color:var(--ink);}
.nav a[aria-current="page"]{color:var(--ink); border-bottom-color:var(--accent);}
.header-cta{min-height:40px; padding:0 18px; font-size:14px;}
.menu-toggle{
  display:none; margin-left:auto;
  width:44px; height:44px; border:0; background:none; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:7px;
}
.menu-toggle span{display:block; width:22px; height:2px; background:var(--ink); transition:transform .2s;}
.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4.5px) rotate(-45deg);}

/* ---------- textos de apoio ---------- */
.meta-line{
  font-family:var(--mono); font-size:13px; letter-spacing:.02em;
  color:var(--ink-2); margin-bottom:22px;
}
.index{
  font-family:var(--mono); font-size:13px; text-transform:uppercase; letter-spacing:.08em;
  display:flex; gap:12px; padding-top:10px; color:var(--accent);
}
.index span{font-weight:500;}
.sub-title{
  font-family:var(--mono); font-size:13px; font-weight:500;
  text-transform:uppercase; letter-spacing:.08em; color:var(--ink-2);
  margin:88px 0 24px;
}

/* ---------- início ---------- */
.intro{padding:72px 0 0;}
.intro h1{font-size:clamp(32px,4.4vw,56px); letter-spacing:-.03em; max-width:22ch;}
.intro-sub{margin-top:22px; max-width:56ch; font-size:19px; color:var(--ink-2);}

.paths{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:56px;}
.path{
  display:flex; flex-direction:column;
  border-radius:var(--radius); overflow:hidden;
  text-decoration:none; color:var(--ink);
  background:var(--surface); border:1px solid var(--rule);
  transition:transform .25s ease;
}
.path.theme-dark{background:var(--bg); border-color:var(--bg);}
.path:hover{transform:translateY(-3px);}
.path picture{overflow:hidden; aspect-ratio:16/9;}
.path img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.path:hover img{transform:scale(1.03);}
.path-body{padding:28px 30px 32px; display:flex; flex-direction:column; flex:1;}
.path-tag{font-family:var(--mono); font-size:12.5px; text-transform:uppercase; letter-spacing:.08em; margin-bottom:12px; color:var(--accent);}
.path h2{font-size:clamp(21px,2.1vw,26px); max-width:24ch;}
.path ul{margin:18px 0 26px; display:grid; gap:6px; font-size:15.5px; color:var(--ink-2);}
.path li{padding-left:18px; position:relative;}
.path li::before{content:""; position:absolute; left:0; top:.72em; width:8px; height:1.5px; background:currentColor; opacity:.6;}
.path-link{margin-top:auto; font-weight:600; display:inline-flex; gap:8px; color:var(--accent);}
.path-link::after{content:"→"; transition:transform .2s;}
.path:hover .path-link::after{transform:translateX(4px);}

.promises{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0 32px;
  margin-top:56px; padding:28px 0 72px;
  border-top:1px solid var(--rule);
  font-size:15px; color:var(--ink-2);
}
.promises strong{display:block; color:var(--ink); font-weight:600; margin-bottom:2px;}

/* ---------- abertura das páginas internas ---------- */
.page-hero{padding:64px 0 96px;}
.page-hero-grid{display:grid; grid-template-columns:1.05fr 1fr; gap:56px; align-items:center;}
.page-hero h1{font-size:clamp(32px,4.4vw,54px); letter-spacing:-.03em;}
.page-hero .lead{margin-top:20px; font-size:19px; color:var(--ink-2); max-width:50ch;}
.page-hero .hero-ctas{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px;}
.page-hero picture{border-radius:var(--radius); overflow:hidden; aspect-ratio:4/3;}
.page-hero picture img{width:100%; height:100%; object-fit:cover;}

/* ---------- seções ---------- */
.section{padding:112px 0; background:var(--bg); border-top:1px solid var(--rule);}
.section--alt{background:var(--bg-alt);}
.section-head{display:grid; grid-template-columns:200px 1fr; gap:32px;}
.section-head h2{font-size:clamp(28px,3.6vw,44px); letter-spacing:-.025em; max-width:22ch;}
.section-head p{margin-top:20px; max-width:62ch; font-size:18px; color:var(--ink-2);}
.cta-row{display:flex; flex-wrap:wrap; gap:12px; margin-top:48px;}

.service-list{
  display:grid; grid-template-columns:repeat(3,1fr); column-gap:40px;
  margin-top:64px; border-top:1px solid var(--rule-strong);
}
.service-list > div{padding:24px 0 28px; border-bottom:1px solid var(--rule);}
.service-list dt{font-weight:600; font-size:18px; margin-bottom:6px;}
.service-list dd{color:var(--ink-2); font-size:15.5px;}

.plans{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.plan{
  border:1px solid var(--rule); border-radius:var(--radius);
  background:var(--surface); padding:28px 28px 26px;
  display:flex; flex-direction:column; gap:12px;
}
.plan h3{font-size:21px;}
.plan p{font-size:15.5px; color:var(--ink-2);}
.plan .plan-fit{margin-top:auto; padding-top:14px; border-top:1px dashed var(--rule); font-size:14.5px;}
.plan--featured{background:var(--ink); border-color:var(--ink); color:var(--bg);}
.plan--featured p{color:#b9c2bb;}
.plan--featured .plan-fit{border-top-color:#38423b;}
.plan-flag{font-family:var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--flag);}

.media-grid{display:grid; grid-template-columns:5fr 7fr; gap:64px; margin-top:64px; align-items:start;}
.media-photo{border-radius:var(--radius); overflow:hidden; aspect-ratio:4/5;}
.media-photo picture, .media-photo img{width:100%; height:100%;}
.media-photo img{object-fit:cover;}
.spec-list{border-top:1px solid var(--rule-strong);}
.spec-list > div{
  display:grid; grid-template-columns:220px 1fr; gap:24px;
  padding:20px 0; border-bottom:1px solid var(--rule);
}
.spec-list dt{font-weight:600; font-size:17px;}
.spec-list dd{color:var(--ink-2); font-size:15.5px;}

.steps{display:grid; grid-template-columns:repeat(var(--cols,5),1fr); gap:20px; counter-reset:step;}
.steps li{counter-increment:step; border-top:2px solid var(--rule); padding-top:18px;}
.steps li::before{
  content:counter(step, decimal-leading-zero);
  display:block; font-family:var(--mono); font-size:13px; color:var(--accent); margin-bottom:10px;
}
.steps li:first-child{border-top-color:var(--accent);}
.steps h3{font-size:18px; margin-bottom:6px;}
.steps p{font-size:15px; color:var(--ink-2);}

/* bloco lateral (uso pessoal) */
.aside-block{
  display:grid; grid-template-columns:300px 1fr; gap:48px; align-items:center;
  margin-top:88px; padding:32px; border:1px solid var(--rule); border-radius:var(--radius); background:var(--surface);
}
.aside-block picture{border-radius:8px; overflow:hidden; aspect-ratio:4/3;}
.aside-block img{width:100%; height:100%; object-fit:cover; object-position:center 62%;}
.aside-block h3{font-size:clamp(22px,2.4vw,28px);}
.aside-block p{margin:10px 0 20px; max-width:56ch; color:var(--ink-2);}

/* ---------- avaliações ---------- */
.reviews{background:var(--surface); border-top:1px solid var(--rule); padding:64px 0;}
.reviews-row{display:flex; align-items:center; justify-content:space-between; gap:40px;}
.reviews h2{font-size:clamp(24px,2.6vw,32px);}
.reviews p{margin-top:10px; color:var(--ink-2);}
.reviews-actions{display:flex; align-items:center; gap:28px; flex:none;}

/* ---------- dúvidas ---------- */
.faq-grid{display:grid; grid-template-columns:360px 1fr; gap:64px; align-items:start;}
.faq-grid h2{font-size:clamp(28px,3.6vw,44px); letter-spacing:-.025em;}
.faq-grid > div > p{margin-top:16px; color:var(--ink-2);}
.faq-list{border-top:1px solid var(--rule-strong);}
.faq-list details{border-bottom:1px solid var(--rule);}
.faq-list summary{
  list-style:none; cursor:pointer;
  display:flex; justify-content:space-between; gap:24px;
  padding:20px 0; font-weight:600; font-size:17px;
}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{content:"+"; font-family:var(--mono); font-weight:400; font-size:20px; line-height:1.2; color:var(--ink-2);}
.faq-list details[open] summary::after{content:"−";}
.faq-list details p{padding:0 40px 22px 0; color:var(--ink-2); font-size:16px;}

/* ---------- contato ---------- */
.contact{padding:112px 0; background:var(--bg-alt); border-top:1px solid var(--rule);}
.contact-grid{display:grid; grid-template-columns:5fr 6fr; gap:72px; align-items:start;}
.contact h2{font-size:clamp(28px,3.6vw,44px); letter-spacing:-.025em;}
.contact-info > p{margin-top:16px; color:var(--ink-2); max-width:44ch;}
.contact-list{margin-top:40px; border-top:1px solid var(--rule);}
.contact-list li{display:grid; grid-template-columns:110px 1fr; gap:16px; padding:16px 0; border-bottom:1px solid var(--rule);}
.contact-list span{font-family:var(--mono); font-size:13px; color:var(--ink-2); padding-top:2px;}
.contact-list a{text-decoration:none; font-weight:500;}
.contact-list a:hover{color:var(--accent);}
.contact-choices{display:grid; gap:12px;}
.contact-choices .btn{justify-content:space-between; min-height:64px; padding:0 24px; font-size:16px;}
.contact-choices .btn::after{content:"→";}

.contact-form{
  background:var(--surface); border:1px solid var(--rule); border-radius:var(--radius);
  padding:32px; display:grid; gap:20px;
}
.segmented{border:0; display:grid; grid-template-columns:repeat(var(--cols,3),1fr); gap:8px;}
.segmented legend{font-size:14px; font-weight:500; color:var(--ink-2); margin-bottom:10px;}
.segmented label{position:relative; cursor:pointer;}
.segmented input{position:absolute; opacity:0; inset:0; cursor:pointer;}
.segmented span{
  display:flex; align-items:center; justify-content:center; text-align:center;
  min-height:44px; padding:6px 10px; line-height:1.3;
  border:1px solid var(--rule); border-radius:6px;
  font-size:15px; font-weight:500; color:var(--ink-2);
  transition:border-color .2s, color .2s, background-color .2s;
}
.segmented input:checked + span{border-color:var(--accent); color:var(--ink); background:color-mix(in srgb, var(--accent) 9%, transparent);}
.segmented input:focus-visible + span{outline:2px solid var(--accent); outline-offset:2px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.field{display:grid; gap:8px; align-content:start;}
.field label{font-size:14px; font-weight:500; color:var(--ink-2);}
.field small{font-weight:400; opacity:.8;}
.field input, .field textarea{
  width:100%; font:inherit; font-size:16px; color:var(--ink);
  background:var(--bg); border:1px solid var(--rule); border-radius:6px;
  padding:12px 14px; transition:border-color .2s;
}
.field textarea{resize:vertical; min-height:120px;}
.field input::placeholder{color:color-mix(in srgb, var(--ink-2) 70%, transparent);}
.field input:focus, .field textarea:focus{outline:none; border-color:var(--accent);}
.field .is-invalid{border-color:#d0573f;}
.form-error{font-size:14px; color:#d0573f;}
.form-note{font-size:13.5px; color:var(--ink-2); line-height:1.5;}
.form-note a{color:var(--ink);}

/* ---------- página de privacidade ---------- */
.legal{padding:64px 0 112px;}
.legal-body{max-width:760px;}
.legal h1{font-size:clamp(30px,4vw,46px); letter-spacing:-.025em;}
.legal .updated{font-family:var(--mono); font-size:13px; color:var(--ink-2); margin:14px 0 40px;}
.legal h2{font-size:22px; margin:44px 0 12px;}
.legal p, .legal li{color:var(--ink-2);}
.legal p + p{margin-top:12px;}
.legal ul{margin:12px 0; display:grid; gap:8px;}
.legal li{padding-left:18px; position:relative;}
.legal li::before{content:""; position:absolute; left:0; top:.75em; width:8px; height:1.5px; background:currentColor;}
.legal strong{color:var(--ink);}
.legal table{width:100%; border-collapse:collapse; margin:16px 0; font-size:15px;}
.legal th, .legal td{text-align:left; padding:12px 12px 12px 0; border-bottom:1px solid var(--rule); vertical-align:top;}
.legal th{font-weight:600; color:var(--ink);}
.legal td{color:var(--ink-2);}
.todo{background:#fff3b0; color:#4a3b00; padding:0 4px; border-radius:3px;}

/* ---------- rodapé ---------- */
.site-footer{background:#070908; color:#9ba69e; padding:56px 0 28px; font-size:15px;}
.footer-row{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap;}
.footer-row p{max-width:44ch;}
.footer-brand{display:flex; align-items:center; gap:10px; color:#e9ede9; font-weight:600; margin-bottom:10px;}
.footer-mark{width:28px; height:22px; fill:#73e08a; flex:none;}
.footer-cnpj{margin-top:10px; font-size:14px;}
.footer-nav{display:flex; flex-wrap:wrap; gap:8px 24px; align-items:flex-start;}
.footer-nav a, .footer-bottom a, .footer-bottom button{text-decoration:none; color:inherit;}
.footer-nav a:hover, .footer-bottom a:hover, .footer-bottom button:hover{color:#e9ede9;}
.footer-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 24px; margin-top:40px; padding-top:20px; font-size:14px; position:relative;}
.footer-bottom::before{content:""; position:absolute; top:0; left:var(--gutter); right:var(--gutter); height:1px; background:#26302a;}
.footer-legal{display:flex; flex-wrap:wrap; gap:8px 24px;}
.footer-bottom button{background:none; border:0; font:inherit; cursor:pointer; padding:0;}

/* ---------- WhatsApp flutuante ---------- */
.wa-float{
  position:fixed; right:20px; bottom:20px; z-index:40;
  display:inline-flex; align-items:center; gap:8px;
  height:52px; padding:0 20px 0 16px;
  background:#1a7f36; color:#fff; text-decoration:none;
  font-weight:600; font-size:15px;
  border-radius:999px;
  box-shadow:0 6px 20px rgba(0,0,0,.22);
  opacity:0; transform:translateY(12px); pointer-events:none;
  transition:opacity .25s, transform .25s, background-color .2s;
}
.wa-float svg{width:22px; height:22px;}
.wa-float.is-visible{opacity:1; transform:none; pointer-events:auto;}
.wa-float:hover{background:#146a2c;}
body.has-cookie-banner .wa-float{opacity:0; pointer-events:none;}

/* ---------- aviso de cookies ---------- */
.cookie-banner{
  position:fixed; left:20px; right:20px; bottom:20px; z-index:60;
  max-width:560px;
  background:#101512; color:#e9ede9;
  border:1px solid #26302a; border-radius:var(--radius);
  padding:22px 24px; box-shadow:0 12px 32px rgba(0,0,0,.28);
}
.cookie-banner[hidden]{display:none;}
.cookie-banner h2{font-size:17px; margin-bottom:6px;}
.cookie-banner p{font-size:14.5px; color:#b9c2bb; line-height:1.5;}
.cookie-banner a{color:#e9ede9;}
.cookie-actions{display:flex; flex-wrap:wrap; gap:10px; margin-top:16px;}
.cookie-actions .btn{min-height:42px; font-size:14px; padding:0 18px;}
.cookie-actions .btn-primary{background:#46d070; color:#06200f;}
.cookie-actions .btn-primary:hover{background:#6ddc8e;}
.cookie-actions .btn-outline{color:#e9ede9;}
.cookie-actions .btn-outline:hover{background:#e9ede9; color:#101512; border-color:#e9ede9;}

/* ==========================================================
   Responsivo
   ========================================================== */
@media (max-width:1000px){
  .header-row{gap:16px;}
  .menu-toggle{display:flex; margin-left:0;}
  .header-cta{margin-left:auto;}
  .nav{
    position:absolute; top:var(--header-h); left:0; right:0;
    flex-direction:column; gap:0; margin:0;
    background:var(--bg); border-bottom:1px solid var(--rule);
    padding:8px var(--gutter) 16px;
    display:none;
  }
  .nav.is-open{display:flex;}
  .nav a{padding:14px 0; font-size:17px; border-bottom:1px solid var(--rule);}
  .nav a[aria-current="page"]{border-bottom-color:var(--rule); color:var(--accent);}
  .nav a:last-child{border-bottom:0;}

  .page-hero-grid{grid-template-columns:1fr; gap:40px;}
  .page-hero picture{aspect-ratio:16/9;}
  .section-head{grid-template-columns:1fr; gap:16px;}
  .index{padding-top:0;}
  .service-list{grid-template-columns:1fr 1fr;}
  .plans{grid-template-columns:1fr;}
  .media-grid{grid-template-columns:1fr; gap:40px;}
  .media-photo{aspect-ratio:16/10;}
  .media-photo img{object-position:center 30%;}
  .steps{grid-template-columns:repeat(3,1fr); row-gap:32px;}
  .faq-grid{grid-template-columns:1fr; gap:32px;}
  .contact-grid{grid-template-columns:1fr; gap:48px;}
  .promises{grid-template-columns:1fr 1fr; gap:20px 32px;}
}

@media (max-width:760px){
  :root{--gutter:20px;}
  body{font-size:16px;}
  .intro{padding-top:44px;}
  .intro-sub, .page-hero .lead{font-size:17px;}
  .page-hero{padding:40px 0 72px;}
  .paths{grid-template-columns:1fr; margin-top:36px;}
  .path-body{padding:22px 22px 26px;}
  .section, .contact{padding:80px 0;}
  .service-list{grid-template-columns:1fr;}
  .spec-list > div{grid-template-columns:1fr; gap:4px;}
  .steps{grid-template-columns:1fr; gap:0;}
  .steps li{display:grid; grid-template-columns:44px 1fr; padding:16px 0;}
  .steps li::before{grid-row:span 2; margin:3px 0 0;}
  .sub-title{margin-top:64px;}
  .aside-block{grid-template-columns:1fr; gap:20px; padding:20px; margin-top:64px;}
  .reviews-row{flex-direction:column; align-items:flex-start;}
  .reviews-actions{flex-wrap:wrap; gap:16px 24px;}
  .contact-form{padding:22px;}
  .field-row{grid-template-columns:1fr;}
  .footer-bottom{flex-direction:column;}
  .legal{padding:40px 0 80px;}
  .legal table, .legal thead, .legal tbody, .legal tr, .legal th, .legal td{display:block;}
  .legal thead{display:none;}
  .legal tr{padding:12px 0; border-bottom:1px solid var(--rule);}
  .legal td{border:0; padding:2px 0;}
  .legal td:first-child{color:var(--ink); font-weight:600;}
}

@media (max-width:520px){
  .header-cta{display:none;}
  .menu-toggle{margin-left:auto;}
  .promises{grid-template-columns:1fr;}
  .cta-row .btn, .hero-ctas .btn{width:100%;}
  .segmented{grid-template-columns:1fr 1fr;}
  .contact-list li{grid-template-columns:1fr; gap:2px;}
  .wa-float span{display:none;}
  .wa-float{width:56px; height:56px; padding:0; justify-content:center;}
  .wa-float svg{width:26px; height:26px;}
  .cookie-banner{left:12px; right:12px; bottom:12px; padding:20px;}
  .cookie-actions .btn{flex:1;}
}
