/* =====================================================
   ENERGIA SOLAR RIO — style-v42
   Tema claro (padrão) e escuro, com as cores da logomarca:
   azul-marinho das casas, laranja do sol, verde da faixa e azul dos painéis.
   O tema é trocado por data-theme="dark" no <html> (ver site-v1.js).
   ===================================================== */

/* ============ TOKENS ============ */
:root{
  /* Superfícies */
  --sky:#F4F7FD;
  --sky-2:#E8EFFB;
  --surface:#FFFFFF;
  --surface-2:#F0F4FB;
  --surface-3:#E6ECF8;
  --line:#D9E2F3;
  --line-strong:#C3D0EA;
  /* Texto */
  --house:#0A0082;
  --text:#1C1D5E;
  --text-soft:#4F557E;
  /* Marca */
  --sun:#DF8400;
  --sun-text:#A85F00;
  --sun-soft:#F4B968;
  --on-sun:#0A0082;
  --leaf:#1E9E4A;
  --leaf-deep:#0F6B30;
  --panel:#1E63F0;
  --panel-soft:rgba(30,99,240,.08);
  --grid-line:rgba(30,99,240,.055);
  --danger:#B42318;
  /* Faixas azul-marinho (rodapé, métricas, chamada final): iguais nos dois temas */
  --brand-navy:#0A0082;
  --brand-navy-2:#1B14C7;
  --on-navy:#FFFFFF;
  --on-navy-soft:rgba(255,255,255,.76);
  --header-bg:rgba(244,247,253,.86);
  --shadow-1:0 1px 2px rgba(10,0,130,.05), 0 10px 28px -14px rgba(10,0,130,.20);
  --shadow-2:0 2px 4px rgba(10,0,130,.06), 0 28px 56px -24px rgba(10,0,130,.32);
  --radius-s:8px;
  --radius-m:14px;
  --radius-l:22px;
  --radius-xl:32px;
  --font-display:'Montserrat', sans-serif;
  --font-body:'Montserrat', sans-serif;
  --font-mono:'Montserrat', sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
  /* Fundos suaves de seleção e texto verde legível (simulador) */
  --sun-wash:rgba(223,132,0,.10);
  --leaf-wash:rgba(30,158,74,.09);
  --leaf-text:#0F6B30;
  color-scheme:light;
}
[data-theme="dark"]{
  --sky:#0B0C3F;
  --sky-2:#11125A;
  --surface:#16186B;
  --surface-2:#1D1F7C;
  --surface-3:#25278C;
  --line:rgba(255,255,255,.10);
  --line-strong:rgba(255,255,255,.18);
  --house:#FFFFFF;
  --text:#F2F4FF;
  --text-soft:#B9BDE6;
  --sun-text:#F4B968;
  --leaf:#2BC062;
  --leaf-deep:#137A37;
  --panel:#5B8CFF;
  --panel-soft:rgba(91,140,255,.12);
  --grid-line:rgba(91,140,255,.07);
  --danger:#FF9A8A;
  --brand-navy:#07084A;
  --brand-navy-2:#14168A;
  --header-bg:rgba(11,12,63,.86);
  --shadow-1:0 1px 2px rgba(0,0,30,.3), 0 12px 30px -14px rgba(0,0,30,.6);
  --shadow-2:0 2px 4px rgba(0,0,30,.3), 0 30px 60px -24px rgba(0,0,30,.75);
  --sun-wash:rgba(223,132,0,.18);
  --leaf-wash:rgba(43,192,98,.12);
  --leaf-text:#5FE08F;
  color-scheme:dark;
}

/* ============ BASE ============ */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html{overflow-x:hidden;}
/* clip (e não hidden) no body: evita rolagem lateral sem quebrar o cabeçalho fixo (sticky) */
body{overflow-x:clip;max-width:100%;}
img{max-width:100%;}
[hidden]{display:none !important;}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:16.5px;
  line-height:1.6;
  color:var(--text);
  background-color:var(--sky);
  /* Textura: a grade dos painéis da logo */
  background-image:
    linear-gradient(var(--grid-line) 1.5px, transparent 1.5px),
    linear-gradient(90deg, var(--grid-line) 1.5px, transparent 1.5px);
  background-size:56px 38px;
  background-attachment:fixed;
  -webkit-font-smoothing:antialiased;
  transition:background-color .4s ease, color .4s ease;
}
img,svg{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4{font-family:var(--font-display);margin:0;line-height:1.1;font-weight:700;letter-spacing:-.01em;color:var(--house);}
p{margin:0;}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
:focus-visible{outline:3px solid var(--panel);outline-offset:3px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;
  padding:0 28px;border-radius:999px;font-family:var(--font-body);font-weight:700;font-size:15px;line-height:1.2;
  border:2px solid transparent;cursor:pointer;transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease;
  white-space:nowrap;max-width:100%;text-align:center;
}
.btn:focus-visible{outline:3px solid var(--panel);outline-offset:3px;}
.btn-primary{background:var(--sun);color:var(--on-sun);box-shadow:0 10px 24px -12px rgba(223,132,0,.8);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 30px -12px rgba(223,132,0,.9);}
.btn-outline{border-color:var(--house);color:var(--house);}
.btn-outline:hover{background:var(--panel-soft);}
.btn-ghost{color:var(--house);font-weight:700;padding:0 4px;border-radius:0;min-height:0;}
.btn-lg{min-height:56px;padding:0 32px;font-size:16px;}
.btn-block{width:100%;white-space:normal;text-align:center;}
.btn-text{background:none;border:none;color:var(--text-soft);text-decoration:underline;cursor:pointer;font-family:var(--font-body);font-size:14px;padding:8px;}

/* ============ HEADER ============ */
.site-header{
  position:sticky;top:0;z-index:50;background:var(--header-bg);
  backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;height:108px;gap:24px;}
/* Cabeçalho um pouco mais largo que o conteúdo, para caber logo + nome + menu + ações */
.site-header .wrap{max-width:1360px;}
.brand{display:inline-flex;flex-direction:column;align-items:center;gap:5px;flex-shrink:0;animation:logoZoomIn 1.1s var(--ease) backwards;}
.brand-icon{height:68px;width:auto;transition:transform .3s var(--ease);}
.brand:hover .brand-icon{transform:scale(1.05) rotate(-2deg);}
/* No escuro, contorno branco fino para o anel azul-marinho da logo não sumir no fundo */
[data-theme="dark"] .brand-icon{filter:drop-shadow(0 0 1px rgba(255,255,255,.9)) drop-shadow(0 0 1px rgba(255,255,255,.9));}
/* Nome da empresa com o letreiro da logo: azul-marinho no claro, branco no escuro */
.brand-name{display:block;line-height:0;}
.brand-name img{height:24px;width:auto;display:block;}
.brand-name-escuro{display:none !important;}
[data-theme="dark"] .brand-name-claro{display:none !important;}
[data-theme="dark"] .brand-name-escuro{display:block !important;}
.main-nav{display:flex;align-items:center;gap:26px;font-weight:600;font-size:14.5px;margin-left:auto;}
.main-nav a{color:var(--text-soft);transition:color .15s;}
.main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--house);}
/* Trabalhe conosco: último item, separado por um traço (fala com quem quer trabalhar com a empresa, não com o cliente) */
.main-nav .nav-recruta{padding-left:24px;border-left:1.5px solid var(--line-strong);}
/* Item de menu com submenu */
.nav-item{position:relative;display:flex;align-items:center;padding:42px 0;margin:-42px 0;}
.nav-item>a{display:inline-flex;align-items:center;gap:7px;}
.nav-item.has-sub>a::after{content:"";width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.6;transition:transform .2s ease,opacity .2s ease;}
.nav-item.has-sub:hover>a::after,.nav-item.has-sub:focus-within>a::after{transform:rotate(225deg);margin-top:2px;opacity:1;}
.subnav{display:none;position:absolute;top:100%;left:-14px;min-width:238px;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:8px;box-shadow:var(--shadow-2);z-index:60;}
.nav-item.has-sub:hover>.subnav,.nav-item.has-sub:focus-within>.subnav{display:flex;}
.subnav a{padding:11px 12px;border-radius:var(--radius-s);white-space:nowrap;font-size:14px;transition:background .15s,color .15s;}
.subnav a:hover{background:var(--surface-2);color:var(--house);}
.header-cta{display:flex;align-items:center;gap:18px;}
.header-cta .btn{min-height:44px;padding:0 20px;font-size:14px;}
.theme-toggle{
  width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);
  color:var(--house);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;padding:0;
  transition:transform .3s ease, background-color .3s ease;
}
.theme-toggle:hover{transform:rotate(-18deg);}
.theme-toggle svg{width:20px;height:20px;}
.theme-toggle .ico-moon{display:none;}
[data-theme="dark"] .theme-toggle .ico-sun{display:none;}
[data-theme="dark"] .theme-toggle .ico-moon{display:block;}
.nav-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;background:none;border:none;cursor:pointer;padding:0;flex-shrink:0;}
.nav-toggle span{width:24px;height:2.5px;background:var(--house);border-radius:2px;}

/* ============ HERO (todas as páginas) ============ */
/* Foto real + azul-marinho da logo; texto sempre branco sobre a foto, nos dois temas */
.hero{
  position:relative;overflow:hidden;background:var(--brand-navy);color:#fff;
  padding:88px 0 132px;
}
.hero-bg-photo{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;}
.hero-bg-overlay{
  position:absolute;inset:0;z-index:0;
  background:linear-gradient(100deg, rgba(10,0,130,.93) 0%, rgba(10,0,130,.76) 45%, rgba(10,0,130,.30) 100%);
}
[data-theme="dark"] .hero-bg-overlay{background:linear-gradient(100deg, rgba(7,8,74,.95) 0%, rgba(7,8,74,.80) 45%, rgba(7,8,74,.40) 100%);}
.hero-sky{display:none;}
.hero-inner{position:relative;z-index:1;max-width:1180px;color:#fff;}
.hero-inner > *{max-width:720px;}
/* A logo já está no cabeçalho; no hero ela sai para não duplicar */
.hero-logo-wrap{display:none;}
.eyebrow{
  font-family:var(--font-display);font-size:18.5px;font-weight:700;letter-spacing:0;
  color:var(--sun-text);margin:0 0 14px;
}
.eyebrow-dark{color:var(--sun-text);}
.hero .eyebrow{color:var(--sun-soft);}
.hero h1{font-size:clamp(34px, 5vw, 58px);color:#fff;}
.hero h1 .hl{color:var(--sun-soft);}
.hero-sub{margin-top:22px;font-size:18px;line-height:1.6;color:rgba(255,255,255,.86);max-width:56ch;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;}
.hero .btn-outline{border-color:rgba(255,255,255,.75);color:#fff;}
.hero .btn-outline:hover{background:rgba(255,255,255,.12);}
.hero-trust{display:flex;gap:12px;margin-top:40px;flex-wrap:wrap;}
.hero-trust div{
  display:flex;flex-direction:column;gap:2px;padding:14px 20px;border-radius:var(--radius-m);
  background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.hero-trust strong{font-size:21px;color:var(--sun-soft);}
.hero-trust span{font-size:13px;color:rgba(255,255,255,.82);}
/* Onda verde da logo, na base de todo hero */
.hero-wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:72px;z-index:1;pointer-events:none;}
.hero-wave .w-leaf{fill:var(--leaf);}
.hero-wave .w-sky{fill:var(--sky);}
/* Base da onda na mesma cor da seção seguinte */
.hero:has(+ .solutions) .hero-wave .w-sky,.hero:has(+ .faq) .hero-wave .w-sky,.hero:has(+ .gallery) .hero-wave .w-sky,.hero:has(+ .quote-feature) .hero-wave .w-sky{fill:var(--sky-2);}
.hero:has(+ .process) .hero-wave .w-sky{fill:var(--brand-navy);}
.hero-inner{animation:heroIn 1.1s var(--ease) both;}
@keyframes heroIn{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}

/* ============ HOME: HERO COM SIMULAÇÃO RÁPIDA ============ */
.home-hero .hero-inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:center;}
.home-hero .hero-inner > *{max-width:none;}
.home-hero h1{max-width:15ch;}
.hero-points{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:34px;font-size:14.5px;color:rgba(255,255,255,.9);}
.hero-points li{display:inline-flex;align-items:center;gap:8px;}
.hero-points li::before{content:"";width:9px;height:9px;border-radius:50%;background:#2BC062;flex-shrink:0;}
.quick-sim{
  background:var(--surface);color:var(--text);border-radius:var(--radius-xl);padding:34px;box-shadow:var(--shadow-2);
  animation:heroIn 1.1s var(--ease) both .15s;min-width:0;
}
.quick-sim h2{font-size:23px;}
.quick-sim-note{font-size:14px;color:var(--text-soft);margin-top:8px;}
.quick-sim label{display:block;font-weight:700;font-size:14px;margin:22px 0 8px;color:var(--text);}
.quick-sim-money{display:flex;align-items:center;border:2px solid var(--line);border-radius:var(--radius-m);background:var(--sky);padding:0 16px;transition:border-color .2s;min-width:0;}
.quick-sim-money:focus-within{border-color:var(--panel);}
.quick-sim-money span{font-weight:700;color:var(--text-soft);flex-shrink:0;}
.quick-sim-money input{flex:1;width:100%;min-width:0;border:none;background:none;padding:16px 10px;font:700 22px var(--font-body);color:var(--house);outline:none;}
.quick-sim-out{margin:18px 0 22px;padding:16px 18px;border-radius:var(--radius-m);background:rgba(30,158,74,.1);border-left:4px solid var(--leaf);}
.quick-sim-out strong{display:block;font-size:26px;line-height:1.2;color:var(--leaf);overflow-wrap:anywhere;}
.quick-sim-out span{font-size:13.5px;color:var(--text-soft);}
.quick-sim .btn{width:100%;white-space:normal;}

/* ============ HOME: MOSAICO DE OBRAS (grade de painel) ============ */
.obras{padding:56px 0 24px;}
.obras-head{margin-bottom:36px;}
.obras-mosaic{
  display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:6px;
  background:var(--panel);padding:6px;border-radius:var(--radius-l);box-shadow:var(--shadow-2);
}
.obras-cell{position:relative;overflow:hidden;border-radius:4px;background:var(--sky-2);margin:0;min-width:0;}
.obras-cell img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.obras-cell:hover img{transform:scale(1.06);}
.obras-cell.big{grid-column:span 2;grid-row:span 2;}
.obras-cell.wide{grid-column:span 2;}
.obras-cell figcaption{
  position:absolute;left:10px;bottom:10px;right:10px;width:max-content;max-width:calc(100% - 20px);
  background:rgba(10,0,130,.84);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  color:#fff;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600;line-height:1.3;
}
.obras-cell figcaption b{color:var(--sun-soft);}
.obras-note{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-top:22px;color:var(--text-soft);font-size:15px;}
.text-link{display:inline-flex;font-weight:700;color:var(--house);border-bottom:2px solid var(--sun);padding-bottom:3px;}

/* ============ HOME: SERVIÇOS EM LINHAS ============ */
.service-rows-section{padding:72px 0 96px;}
.service-rows{margin-top:24px;}
.service-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;padding:36px 0;border-bottom:1px solid var(--line);}
.service-row:last-child{border-bottom:none;}
.service-row:nth-child(even) .service-row-photo{order:2;}
.service-row-photo{border-radius:var(--radius-l);overflow:hidden;aspect-ratio:16/10;box-shadow:var(--shadow-1);}
.service-row-photo img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease);}
.service-row:hover .service-row-photo img{transform:scale(1.04);}
.service-row h3{font-size:clamp(22px,2.6vw,30px);}
.service-row p{color:var(--text-soft);margin-top:12px;max-width:52ch;}
.service-row .text-link{margin-top:20px;}

/* ============ HOME: DEPOIMENTO EM DESTAQUE ============ */
.quote-feature{background:var(--sky-2);padding:96px 0;}
.quote-feature blockquote{margin:0 auto;max-width:860px;text-align:center;}
.quote-feature blockquote p{font-size:clamp(22px,2.8vw,32px);font-weight:600;color:var(--house);line-height:1.35;font-style:italic;}
.quote-feature blockquote footer{margin-top:22px;color:var(--text-soft);font-size:15px;}
.quote-feature blockquote footer strong{color:var(--text);}
.quote-more{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:860px;margin:56px auto 0;}
.quote-more p{font-size:15px;color:var(--text-soft);font-style:italic;}
.quote-more strong{display:block;margin-top:10px;font-size:14px;color:var(--text);font-style:normal;}

/* ============ SECTION HEAD ============ */
.section-head{max-width:680px;margin:0 auto 48px;text-align:center;}
.section-head h2,.h2{font-size:clamp(28px,3.8vw,42px);color:var(--house);}
.section-lead{margin:16px auto 0;color:var(--text-soft);font-size:17px;line-height:1.65;max-width:62ch;}

/* ============ CALCULATOR ============ */
.calc-section{background:var(--sky);padding:96px 0;position:relative;}
.calc-section .section-head h2{color:var(--house);}
.calc-section .section-lead{color:var(--text-soft);}
.calculator{
  display:grid;grid-template-columns:1fr;gap:32px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);
  padding:40px;box-shadow:var(--shadow-2);min-width:0;max-width:100%;
}
.calc-form{display:flex;flex-direction:column;gap:22px;min-width:0;}
.field-group{display:flex;flex-direction:column;gap:10px;min-width:0;}
.field-label{font-weight:700;font-size:14.5px;color:var(--text);}
.toggle-pair{display:flex;background:var(--surface-3);border-radius:999px;padding:4px;gap:4px;min-width:0;}
.toggle-btn{flex:1;min-width:0;border:none;background:none;padding:10px 14px;border-radius:999px;font-weight:700;font-family:var(--font-body);font-size:13.5px;color:var(--text-soft);cursor:pointer;transition:all .18s;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.toggle-btn.is-active{background:var(--sun);color:var(--on-sun);}
.field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:18px;min-width:0;}
.telha-row{align-items:end;}
.telha-preview{
  display:flex;align-items:center;gap:16px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-m);
  padding:14px 18px;min-width:0;min-height:56px;
}
.telha-preview img{width:88px;height:88px;border-radius:var(--radius-s);object-fit:cover;flex-shrink:0;}
.telha-icone-outro{
  width:88px;height:88px;border-radius:var(--radius-s);background:var(--surface);color:var(--sun-text);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}
.telha-preview span{font-size:13.5px;color:var(--text-soft);line-height:1.45;}
.field{display:flex;flex-direction:column;gap:8px;font-size:13.5px;font-weight:700;color:var(--text);min-width:0;}
.field.is-hidden{display:none;}
.input-prefix{display:flex;align-items:center;background:var(--surface-2);border:1.5px solid var(--line-strong);border-radius:var(--radius-m);padding:0 14px;transition:border-color .15s;min-width:0;}
.input-prefix:focus-within{border-color:var(--panel);}
.input-prefix span{color:var(--text-soft);font-size:13.5px;flex-shrink:0;}
.input-prefix input,select{
  border:none;background:none;padding:14px 8px;font-size:15.5px;font-family:var(--font-body);color:var(--text);width:100%;min-width:0;
}
.input-prefix input::placeholder{color:var(--text-soft);opacity:.7;}
select{border:1.5px solid var(--line-strong);border-radius:var(--radius-m);background-color:var(--surface-2);padding:14px;font-family:var(--font-body);font-weight:600;font-size:14.5px;max-width:100%;text-overflow:ellipsis;}
select:focus{border-color:var(--panel);}
select option{background:var(--surface);color:var(--text);}
input:focus,select:focus{outline:none;}
.calc-disclaimer{font-size:12.5px;color:var(--text-soft);margin:0;}
.proposal-card .calc-disclaimer,.proposal-card p{color:rgba(255,255,255,.74);}
.field-hint{font-size:12.5px;font-weight:500;color:var(--text-soft);line-height:1.45;}
/* Contato no fim do formulário, depois dos dados da conta */
.calc-contato{display:flex;flex-direction:column;gap:18px;border-top:1px solid var(--line);padding-top:24px;min-width:0;}
.calc-contato-titulo{margin:0;font-size:17px;font-weight:700;color:var(--house);}

/* ============ SIMULADOR: CONTA ANTES E DEPOIS ============ */
.result-conta{background:var(--leaf-wash);border-left:4px solid var(--leaf);border-radius:var(--radius-m);padding:16px 18px;min-width:0;}
.result-conta p{margin:0;font-size:15.5px;line-height:1.5;color:var(--text);}
.result-conta b{color:var(--leaf-text);white-space:nowrap;}
.result-conta small{display:block;margin-top:6px;font-size:12.5px;line-height:1.5;color:var(--text-soft);}

/* ============ SIMULADOR: E SE FALTAR LUZ? (BATERIA) ============ */
.backup-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-1);min-width:0;}
.backup-toggle{display:flex;width:100%;align-items:center;gap:14px;padding:18px 20px;border:0;background:none;text-align:left;font-family:var(--font-body);color:var(--text);cursor:pointer;}
.backup-toggle-texto{display:flex;flex-direction:column;gap:2px;min-width:0;}
.backup-toggle-texto b{font-size:17px;color:var(--house);}
.backup-toggle-texto span{font-size:14px;color:var(--text-soft);}
.backup-mais{margin-left:auto;width:34px;height:34px;border-radius:50%;background:var(--surface-3);display:grid;place-items:center;flex-shrink:0;color:var(--house);font-size:20px;font-weight:700;line-height:1;transition:transform .2s;}
.backup-toggle[aria-expanded="true"] .backup-mais{transform:rotate(45deg);}
.backup-toggle:focus-visible{outline:2px solid var(--panel);outline-offset:-2px;border-radius:var(--radius-l);}
.backup-body{display:flex;flex-direction:column;gap:12px;padding:0 20px 22px;min-width:0;}
.backup-body[hidden]{display:none;}
.backup-body .field-label{margin:6px 0 0;}
.backup-opcoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;min-width:0;}
.backup-opcao,.backup-horas button{border:1.5px solid var(--line-strong);background:var(--surface-2);border-radius:var(--radius-m);color:var(--text);font-family:var(--font-body);cursor:pointer;min-width:0;transition:border-color .15s,background .15s;}
.backup-opcao{display:flex;flex-direction:column;gap:3px;padding:12px 14px;text-align:left;}
.backup-opcao b{font-size:14.5px;color:var(--house);}
.backup-opcao small{font-size:12.5px;line-height:1.4;color:var(--text-soft);}
.backup-horas{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;min-width:0;}
.backup-horas button{padding:11px 8px;font-size:14px;font-weight:700;color:var(--house);}
.backup-opcao:hover,.backup-horas button:hover{border-color:var(--sun);}
.backup-opcao[aria-pressed="true"],.backup-horas button[aria-pressed="true"]{border-color:var(--sun);background:var(--sun-wash);}
.backup-opcao:focus-visible,.backup-horas button:focus-visible{outline:2px solid var(--panel);outline-offset:2px;}
.backup-resultado{margin-top:6px;padding:16px 18px;border-radius:var(--radius-m);background:var(--leaf-wash);border-left:4px solid var(--leaf);min-width:0;}
.backup-resultado[hidden]{display:none;}
.backup-resultado strong{display:block;font-size:24px;color:var(--leaf-text);}
.backup-resultado p{margin:4px 0 0;font-size:14px;line-height:1.5;color:var(--text-soft);}
.backup-resultado .btn-text{padding:8px 0 0;font-size:13px;}

/* ============ GRADE DE CARGAS (DIMENSIONAMENTO HÍBRIDO) ============ */
.load-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;min-width:0;}
.load-item{
  display:flex;align-items:center;gap:10px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-s);
  padding:12px 14px;font-size:14px;font-weight:600;color:var(--text);cursor:pointer;min-width:0;
}
.load-item input{width:16px;height:16px;accent-color:var(--leaf);flex-shrink:0;}
.load-item span{margin-left:auto;font-size:12px;font-weight:600;color:var(--text-soft);white-space:nowrap;}

.calc-result{border-top:2px dashed var(--line-strong);padding-top:32px;display:flex;flex-direction:column;gap:28px;min-width:0;}
.result-arc{text-align:center;}
.result-kwp{font-family:var(--font-display);font-size:44px;color:var(--house);font-weight:700;}
.result-kwp-label{display:block;font-size:13.5px;color:var(--text-soft);margin-top:4px;}
.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;min-width:0;}
.result-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-m);padding:18px;display:flex;flex-direction:column;gap:6px;color:var(--text);}
.result-card.highlight{background:linear-gradient(135deg,#1E9E4A,var(--leaf-deep));border-color:transparent;color:#fff;}
.result-card.accent-gold{background:linear-gradient(135deg,var(--sun),#8A5000);border-color:transparent;color:#fff;}
.result-card.accent-blue{background:linear-gradient(135deg,#1E63F0,#0A2E8A);border-color:transparent;color:#fff;}
.result-card.accent-navy{background:linear-gradient(135deg,var(--brand-navy-2),var(--brand-navy));border-color:transparent;color:#fff;}
.result-label{font-size:12.5px;font-weight:700;opacity:0.85;}
.result-value{font-size:19px;font-weight:700;overflow-wrap:break-word;word-break:break-word;}

/* Proposta: bloco azul-marinho da marca nos dois temas */
.proposal-card{background:var(--brand-navy);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-l);padding:32px;color:#fff;min-width:0;max-width:100%;box-shadow:var(--shadow-2);}
.proposal-card h3,.proposal-card h4{color:#fff;}
.kit-suggestion{display:flex;flex-direction:column;gap:14px;margin:20px 0;min-width:0;}
.kit-suggestion-row{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-s);min-width:0;}
.kit-suggestion-label{font-size:12px;font-weight:700;color:var(--sun-soft);letter-spacing:0.02em;}
.kit-suggestion-value{font-size:14px;color:#fff;line-height:1.5;overflow-wrap:break-word;word-break:break-word;}
.proposal-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.proposal-head h3{color:#fff;font-size:22px;}
.proposal-tag{font-size:12px;color:var(--sun-soft);font-weight:700;letter-spacing:0.02em;}
.proposal-rows{display:flex;flex-direction:column;gap:10px;margin-bottom:24px;min-width:0;}
.proposal-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:14.5px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,0.16);min-width:0;}
.proposal-row span{color:rgba(255,255,255,0.74);flex-shrink:1;min-width:0;}
.proposal-row strong{text-align:right;overflow-wrap:break-word;word-break:break-word;min-width:0;flex:1 1 auto;}

/* ============ PAYBACK / COMPARATIVO DE INVESTIMENTO ============ */
.payback-compare{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0;min-width:0;}
.payback-item{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,0.14);border-radius:var(--radius-s);padding:16px;text-align:center;
  display:flex;flex-direction:column;gap:6px;min-width:0;
}
.payback-item.highlight{background:linear-gradient(135deg,#1E9E4A,#0F6B30);border-color:transparent;}
.payback-label{font-size:12.5px;font-weight:700;color:rgba(255,255,255,0.75);}
.payback-item.highlight .payback-label{color:rgba(255,255,255,0.92);}
.payback-value{font-size:18px;font-weight:700;color:#fff;overflow-wrap:break-word;word-break:break-word;}
.payback-note{font-size:11px;color:rgba(255,255,255,0.6);}
.payback-item.highlight .payback-note{color:rgba(255,255,255,0.85);}

/* ============ BENEFITS ============ */
.benefits{padding:96px 0;}
.benefits.is-alt{background:var(--sky-2);}
.benefit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px;min-width:0;}
.benefit-card{padding:30px 26px;border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1);}
.benefit-icon{width:64px;height:64px;border-radius:50%;overflow:hidden;margin-bottom:16px;box-shadow:var(--shadow-1);background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:30px;line-height:1;}
.benefit-icon img{width:100%;height:100%;object-fit:cover;display:block;}
.benefit-card h3{font-size:18px;color:var(--house);margin-bottom:10px;}
.benefit-card p{font-size:14.5px;color:var(--text-soft);line-height:1.55;}

/* ============ PROCESS (faixa azul-marinho da marca) ============ */
.process{background:var(--brand-navy);padding:96px 0;color:#fff;}
.process .eyebrow{color:var(--sun-soft);}
.process .section-head h2,.process h2,.process h3{color:#fff;}
.process .section-lead{color:var(--on-navy-soft);}
.process-track{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;}
.process-track::before{content:"";position:absolute;top:20px;left:5%;right:5%;height:2px;background:rgba(255,255,255,0.18);}
.process-track::after{
  content:"";position:absolute;top:20px;left:5%;width:0;height:2px;
  background:linear-gradient(90deg, var(--sun), #2BC062);
  box-shadow:0 0 12px rgba(223,132,0,0.6);
  transition:width 1.8s var(--ease) .2s;
}
.process-track.is-visible::after{width:90%;}
.process-step{padding:0 18px 8px;position:relative;transition:transform .35s var(--ease);}
.process-step:hover{transform:translateY(-4px);}
.step-index{
  color:var(--sun-soft);font-size:14px;font-weight:700;display:inline-block;background:var(--brand-navy);
  padding-right:8px;position:relative;z-index:1;letter-spacing:0.02em;
}
.process-step h3{font-size:18.5px;margin:18px 0 10px;color:#fff;}
.process-step p{font-size:14px;color:rgba(255,255,255,0.74);line-height:1.65;}
.etapas-nota{text-align:center;font-size:12.5px;color:rgba(255,255,255,0.55);margin-top:32px;}

/* ============ SOLUTIONS / TABS ============ */
.solutions{padding:96px 0;background:var(--sky-2);}
.tab-list{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:36px;}
.tab-btn{
  padding:12px 22px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--surface);
  font-family:var(--font-body);font-weight:700;font-size:14px;color:var(--text-soft);cursor:pointer;transition:all .18s;
}
.tab-btn:hover{color:var(--house);border-color:var(--house);}
.tab-btn.is-active{background:var(--sun);color:var(--on-sun);border-color:var(--sun);}
.tab-panels{max-width:780px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);padding:40px;box-shadow:var(--shadow-1);}
.tab-panel{display:none;}
.faq.search-mode .tab-list{display:none;}
.faq.search-mode .tab-panel{display:block;}
.tab-panel.is-active{display:block;animation:fadeIn .3s ease;}
.tab-panel h3{font-size:24px;color:var(--house);margin-bottom:14px;}
.tab-panel p{color:var(--text-soft);line-height:1.65;font-size:15.5px;margin-bottom:18px;}
.tab-panel ul{display:flex;flex-direction:column;gap:10px;}
.tab-panel li{padding-left:24px;position:relative;font-size:14.5px;color:var(--text);}
.tab-panel li::before{content:"✓";position:absolute;left:0;color:var(--leaf);font-weight:800;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

/* ============ SISTEMA HÍBRIDO ============ */
.hybrid{padding:96px 0;background:var(--sky);}
.hybrid-flow{
  display:flex;align-items:stretch;justify-content:center;gap:20px;max-width:1000px;margin:0 auto 64px;flex-wrap:wrap;
}
.hybrid-step{
  flex:1;min-width:220px;max-width:280px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);
  padding:30px 24px;text-align:center;box-shadow:var(--shadow-1);
}
.hybrid-icon{
  width:60px;height:60px;border-radius:50%;background:var(--panel-soft);display:flex;align-items:center;justify-content:center;
  margin:0 auto 18px;color:var(--panel);
}
.hybrid-step h3{font-size:17px;color:var(--house);margin-bottom:10px;}
.hybrid-step p{font-size:14px;color:var(--text-soft);line-height:1.55;}
.hybrid-arrow{display:flex;align-items:center;justify-content:center;font-size:22px;color:var(--leaf);font-weight:700;}
.hybrid-cases{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;max-width:900px;margin:0 auto 48px;min-width:0;}
.hybrid-case{background:var(--brand-navy);border-radius:var(--radius-l);padding:30px 28px;transition:transform .35s var(--ease), box-shadow .35s ease;}
.hybrid-case:hover{transform:translateY(-4px);box-shadow:var(--shadow-2);}
.hybrid-case h4{color:var(--sun-soft);font-size:19px;margin-bottom:12px;}
.hybrid-case p{color:rgba(255,255,255,0.8);font-size:14.5px;line-height:1.6;}
.hybrid-cta{text-align:center;}
.panel-cta{margin-top:28px;}
@media (max-width:520px){
  .panel-cta .btn{width:100%;white-space:normal;}
}
@media (max-width:760px){
  .hybrid-arrow{transform:rotate(90deg);}
}

/* ============ TABELA COMPARATIVA ============ */
.compare-table{max-width:900px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-1);}
.compare-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;}
.compare-row > div{padding:16px 20px;font-size:14px;line-height:1.5;border-bottom:1px solid var(--line);color:var(--text);}
.compare-row:last-child > div{border-bottom:none;}
.compare-row > div:first-child{font-weight:700;color:var(--house);background:var(--surface-2);}
.compare-head{background:var(--brand-navy);}
.compare-head > div,.compare-head > div:first-child{background:var(--brand-navy);color:#fff;font-size:16px;font-weight:700;border-bottom:none;}
.compare-row > div.no{color:var(--text-soft);}
.compare-row > div.yes{color:var(--text);font-weight:600;position:relative;padding-left:34px;}
.compare-row > div.yes::before{content:"✓";position:absolute;left:14px;color:var(--leaf);font-weight:800;}
@media (max-width:640px){
  .compare-row{grid-template-columns:1fr;}
  .compare-row > div:first-child{border-bottom:none;padding-bottom:4px;}
  .compare-row > div.yes,.compare-row > div.no{padding-top:4px;}
  .compare-head{display:none;}
}

/* ============ SCROLL REVEAL (fade in up / slide in / zoom in) ============ */
.reveal{opacity:0;transform:translateY(22px);transition:opacity 1s var(--ease), transform 1s var(--ease);will-change:opacity,transform;}
.reveal.is-visible{opacity:1;transform:none;}

/* Slide In — cards de serviço/benefício, alternando lado a cada item */
.reveal-left,.reveal-right{opacity:0;transition:opacity 1s var(--ease), transform 1s var(--ease);will-change:opacity,transform;}
.reveal-left{transform:translateX(-32px);}
.reveal-right{transform:translateX(32px);}
.reveal-left.is-visible,.reveal-right.is-visible{opacity:1;transform:none;}
/* Rede de segurança: com movimento reduzido, o conteúdo aparece direto */
@media (prefers-reduced-motion: reduce){
  .reveal,.reveal-left,.reveal-right,.reveal-zoom{opacity:1 !important;transform:none !important;}
}

.benefit-card.reveal,.hybrid-case.reveal,.testimonial.reveal,.result-card.reveal,.badge.reveal,.diff-card.reveal,.service-photo-card.reveal,.gallery-item.reveal,.obra-card.reveal{transform:translateY(18px) translateX(-20px);}
.benefit-card.reveal:nth-child(even),.hybrid-case.reveal:nth-child(even),.testimonial.reveal:nth-child(even),.result-card.reveal:nth-child(even),.badge.reveal:nth-child(even),.diff-card.reveal:nth-child(even),.service-photo-card.reveal:nth-child(even),.gallery-item.reveal:nth-child(even),.obra-card.reveal:nth-child(even){transform:translateY(18px) translateX(20px);}
.benefit-card.reveal.is-visible,.hybrid-case.reveal.is-visible,.testimonial.reveal.is-visible,.result-card.reveal.is-visible,.badge.reveal.is-visible,.diff-card.reveal.is-visible,.service-photo-card.reveal.is-visible,.gallery-item.reveal.is-visible,.obra-card.reveal.is-visible{transform:none;}

/* Zoom In — imagens e ícones de destaque */
.reveal-zoom{opacity:0;transform:scale(0.9);transition:opacity .9s var(--ease), transform .9s var(--ease);will-change:opacity,transform;}
.reveal-zoom.is-visible{opacity:1;transform:scale(1);}

.benefit-card,.hybrid-case,.testimonial,.result-card,.hybrid-step,.process-step,.faq-item,.proposal-card,.metric,.badge{transition:transform .3s ease, box-shadow .3s ease, opacity 1s var(--ease);}

/* Zoom in de entrada na logomarca do cabeçalho */
@keyframes logoZoomIn{
  from{opacity:0;transform:scale(0.8);}
  to{opacity:1;transform:scale(1);}
}
.hero-logo-img{animation:logoZoomIn 1.1s var(--ease) backwards;}

/* ============ SOCIAL PROOF ============ */
.social-proof{padding:96px 0;}
.metrics-strip{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px;background:var(--brand-navy);
  color:#fff;border-radius:var(--radius-xl);padding:40px;margin-bottom:80px;text-align:center;box-shadow:var(--shadow-2);
}
.metric strong{display:block;font-size:32px;font-weight:800;color:var(--sun-soft);}
.metric span{font-size:13.5px;color:var(--on-navy-soft);}
.testimonial-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-bottom:48px;min-width:0;}
.testimonial{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:28px;margin:0;}
.testimonial p{font-size:15px;color:var(--text);line-height:1.6;font-style:italic;}
.testimonial footer{margin-top:18px;display:flex;flex-direction:column;font-size:13px;}
.testimonial footer strong{color:var(--house);}
.testimonial footer span{color:var(--text-soft);}
.badges-row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;}
.badge{
  display:inline-block;font-size:13px;font-weight:700;color:var(--house);background:var(--surface);border:1px solid var(--line);padding:10px 18px;border-radius:999px;
}

/* ============ DIFERENCIAIS (lista com linhas, sem cards iguais) ============ */
.differentials{padding:96px 0;background:var(--sky);}
.diff-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 48px;min-width:0;border-top:1px solid var(--line);}
.diff-card{
  display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:18px;align-content:start;
  padding:30px 0;border-bottom:1px solid var(--line);
}
.diff-icon{
  grid-row:span 2;width:52px;height:52px;border-radius:var(--radius-m);background:var(--surface);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);transition:transform .35s ease;
}
.diff-icon{color:var(--panel);}
.diff-card:hover .diff-icon{transform:scale(1.06) rotate(-4deg);}
.diff-card h3{font-size:18.5px;color:var(--house);margin-bottom:8px;}
.diff-card p{font-size:15px;color:var(--text-soft);line-height:1.6;}
@media (max-width:640px){
  .diff-grid{grid-template-columns:1fr;}
}

/* ============ IMAGENS ILUSTRATIVAS ============ */
.feature-image{
  max-width:900px;margin:0 auto 48px;border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-2);
}
.feature-image img{width:100%;height:380px;object-fit:cover;display:block;transition:transform .8s var(--ease);}
.feature-image:hover img{transform:scale(1.04);}

/* Bloco de vídeo vertical + texto, lado a lado */
.video-split{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:44px;align-items:center;max-width:900px;margin:0 auto;}
.video-frame{position:relative;border-radius:var(--radius-xl);overflow:hidden;background:var(--brand-navy);box-shadow:var(--shadow-2);border:1px solid var(--line);}
.video-frame video{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;}
.video-tag{position:absolute;left:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:7px;background:rgba(10,0,130,0.8);backdrop-filter:blur(4px);color:#fff;font-size:12px;font-weight:700;padding:7px 12px;border-radius:999px;}
.video-tag::before{content:"";width:7px;height:7px;border-radius:50%;background:#2BC062;}
.video-copy h3{font-size:24px;color:var(--house);margin-bottom:14px;}
.video-copy p{color:var(--text-soft);line-height:1.65;font-size:15.5px;margin-bottom:16px;}
.video-copy p:last-of-type{margin-bottom:0;}
.video-copy ul{display:flex;flex-direction:column;gap:10px;margin:18px 0 0;}
.video-copy li{padding-left:24px;position:relative;font-size:14.5px;color:var(--text);}
.video-copy li::before{content:"✓";position:absolute;left:0;color:var(--leaf);font-weight:800;}
@media (max-width:820px){
  .video-split{grid-template-columns:1fr;gap:30px;max-width:460px;}
  .video-frame{max-width:330px;margin:0 auto;}
  .video-copy h3{font-size:21px;}
}

.service-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px;min-width:0;}
.service-photo-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-1);transition:transform .35s var(--ease), box-shadow .35s ease;}
.service-photo-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-2);}
.service-photo-wrap{overflow:hidden;height:230px;}
.service-photo-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease);}
.service-photo-card:hover .service-photo-wrap img{transform:scale(1.06);}
.service-photo-card h3{font-size:17px;color:var(--house);margin:20px 24px 8px;}
.service-photo-card p{font-size:14px;color:var(--text-soft);line-height:1.55;margin:0 24px 22px;}

/* Grade de 3 colunas (soluções): 6 cards viram 3+3, 2+2+2 no tablet e 1 no celular */
.service-photo-grid.grid-3,.benefit-grid.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
/* Card com link no pé: o link fica alinhado na base mesmo com textos de tamanhos diferentes */
.service-photo-card.has-link,.benefit-card.has-link{display:flex;flex-direction:column;}
.service-photo-card .text-link{margin:auto 24px 26px;align-self:flex-start;font-size:14.5px;}
.benefit-card .text-link{margin-top:auto;align-self:flex-start;font-size:14.5px;}
.benefit-card.has-link p{margin-bottom:18px;}
/* Serviço sem foto própria: ícone num círculo sobre a grade de células de painel */
.service-photo-wrap.is-art{position:relative;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--panel);}
.service-photo-wrap.is-art::before{
  content:"";position:absolute;inset:0;
  background-image:linear-gradient(var(--line-strong) 1px,transparent 1px),linear-gradient(90deg,var(--line-strong) 1px,transparent 1px);
  background-size:30px 30px;background-position:center;
  -webkit-mask-image:radial-gradient(circle at center,transparent 22%,#000 85%);mask-image:radial-gradient(circle at center,transparent 22%,#000 85%);
}
.service-art{position:relative;width:128px;height:128px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-1);display:flex;align-items:center;justify-content:center;transition:transform .8s var(--ease);}
.service-art svg{width:64px;height:64px;}
.service-photo-card:hover .service-art{transform:scale(1.06);}
.art-accent{color:var(--sun);}
.benefit-icon svg{width:38px;height:38px;color:var(--panel);}

/* ============ PORTFÓLIO DE OBRAS ============ */
.obra-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px;min-width:0;}
.obra-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);
  overflow:hidden;display:flex;flex-direction:column;min-width:0;box-shadow:var(--shadow-1);
  transition:transform .35s var(--ease), box-shadow .35s ease, border-color .35s ease;
}
.obra-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-2);border-color:var(--sun);}
.obra-foto{position:relative;overflow:hidden;height:230px;background:var(--surface-2);}
.obra-foto img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease);}
.obra-card:hover .obra-foto img{transform:scale(1.06);}
.obra-tag{
  position:absolute;top:14px;left:14px;background:var(--sun);color:var(--on-sun);
  font-size:12px;font-weight:700;letter-spacing:0.02em;
  padding:6px 12px;border-radius:999px;
}
.obra-tags{position:absolute;top:14px;left:14px;display:flex;flex-wrap:wrap;gap:6px;max-width:calc(100% - 28px);}
.obra-tags .obra-tag{position:static;top:auto;left:auto;}
.obra-tag-exec{background:rgba(10,0,130,.84);color:#fff;border:1px solid rgba(255,255,255,0.25);}
.obra-legenda{
  display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;
  margin-top:18px;font-size:14px;color:var(--text-soft);line-height:1.55;
}
.obra-legenda .obra-tag{position:static;top:auto;left:auto;flex-shrink:0;}
.obra-legenda span:last-child{max-width:560px;text-align:left;}
@media (max-width:640px){
  .obra-legenda{justify-content:flex-start;text-align:left;}
}
.obra-info{padding:24px;display:flex;flex-direction:column;gap:6px;min-width:0;}
.obra-info h3{font-size:19px;color:var(--house);}
.obra-num{font-weight:700;font-size:15px;color:var(--sun-text);margin:0;}
.obra-info p:last-child{font-size:14px;color:var(--text-soft);line-height:1.6;margin-top:6px;}
.obra-card.obra-destaque{grid-column:span 2;}
.obra-card.obra-destaque .obra-foto{height:300px;}
@media (max-width:760px){
  .obra-card.obra-destaque{grid-column:span 1;}
  .obra-card.obra-destaque .obra-foto{height:230px;}
}
@media (max-width:640px){
  .obra-grid{grid-template-columns:1fr;}
}

.gallery{padding:96px 0;background:var(--sky-2);}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px;min-width:0;background:var(--panel);padding:6px;border-radius:var(--radius-l);box-shadow:var(--shadow-2);}
.gallery-item{border-radius:4px;overflow:hidden;aspect-ratio:4/3;}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease);}
.gallery-item:hover img{transform:scale(1.06);}
@media (max-width:640px){
  .gallery-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:480px){
  .gallery-grid{grid-template-columns:1fr;}
  .feature-image img{height:240px;}
}

/* ============ FLUXO DE ENERGIA (DIAGRAMA ANIMADO) ============ */
.energy-flow-section{padding:56px 0 8px;background:var(--sky);}
.energy-flow{max-width:900px;margin:0 auto;color:var(--house);}
.energy-flow circle[r="42"]{filter:drop-shadow(0 6px 14px rgba(10,0,130,.14));}
.flow-line{stroke:var(--sun);stroke-width:2.5;stroke-dasharray:7 9;stroke-linecap:round;animation:flowDash 1s linear infinite;}
@keyframes flowDash{to{stroke-dashoffset:-32;}}
.flow-pulse{fill:var(--sun);filter:drop-shadow(0 0 6px rgba(223,132,0,0.9));offset-rotate:0deg;}
.flow-pulse.p1{offset-path:path("M132 70 H278");animation:flowPulse 2.6s ease-in-out infinite;}
.flow-pulse.p2{offset-path:path("M362 70 H508");animation:flowPulse 2.6s ease-in-out infinite .87s;}
.flow-pulse.p3{offset-path:path("M592 70 H738");animation:flowPulse 2.6s ease-in-out infinite 1.74s;}
@keyframes flowPulse{
  0%{offset-distance:0%;opacity:0;}
  8%{opacity:1;}
  92%{opacity:1;}
  100%{offset-distance:100%;opacity:0;}
}
.energy-flow-labels{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;margin-top:4px;}
.energy-flow-labels span{font-size:13px;font-weight:700;color:var(--text-soft);}
@media (max-width:640px){
  .energy-flow-labels span{font-size:11px;}
}

/* ============ FAQ ============ */
.faq{padding:96px 0;background:var(--sky-2);}
.faq-search{max-width:600px;margin:0 auto 40px;position:relative;}
.faq-search input{
  width:100%;padding:16px 50px 16px 22px;border-radius:999px;border:1.5px solid var(--line-strong);
  background:var(--surface);color:var(--text);font-family:var(--font-body);font-size:15px;transition:border-color .2s ease, box-shadow .2s ease;
}
.faq-search input::placeholder{color:var(--text-soft);}
.faq-search input:focus{outline:none;border-color:var(--sun);box-shadow:0 0 0 4px rgba(223,132,0,0.15);}
.faq-search-icon{
  position:absolute;right:20px;top:50%;transform:translateY(-50%);color:var(--text-soft);pointer-events:none;
  display:flex;align-items:center;
}
.faq-no-results{text-align:center;color:var(--text-soft);font-size:15px;padding:32px 0;max-width:600px;margin:0 auto;}
.faq-list{max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:12px;}
.faq-item{
  background:var(--surface);border-radius:var(--radius-m);overflow:hidden;
  border:1.5px solid var(--line);transition:border-color .3s ease, box-shadow .3s ease;
}
.faq-item.is-hidden{display:none;}
.faq-item.is-active{border-color:var(--sun);box-shadow:var(--shadow-1);}
.faq-question{
  width:100%;text-align:left;padding:20px 24px;background:none;border:none;cursor:pointer;
  font-family:var(--font-body);font-weight:700;font-size:15.5px;color:var(--house);
  display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.faq-icon{color:var(--leaf);transition:transform .35s var(--ease);display:inline-flex;flex-shrink:0;}
.faq-item.is-active .faq-icon{transform:rotate(180deg);}
.faq-answer{max-height:0;opacity:0;overflow:hidden;transition:max-height .45s var(--ease), opacity .35s ease;}
.faq-item.is-active .faq-answer{max-height:600px;opacity:1;}
.faq-answer p{padding:0 24px 22px;color:var(--text-soft);font-size:15px;line-height:1.6;}

/* ============ FINAL CTA (faixa azul-marinho da marca) ============ */
.final-cta{background:var(--brand-navy);padding:88px 0;}
.final-cta-inner{max-width:1180px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;text-align:left;}
.final-cta h2{color:#fff;font-size:clamp(26px,3.4vw,38px);max-width:22ch;}
.final-cta p{color:var(--on-navy-soft);font-size:16px;margin-top:12px;max-width:52ch;}
/* Botão contornado na faixa azul-marinho: branco nos dois temas (com --house sumia no tema claro) */
.final-cta .btn-outline{border-color:rgba(255,255,255,.75);color:#fff;}
.final-cta .btn-outline:hover{background:rgba(255,255,255,.12);}
.final-cta .hero-actions{margin-top:0;}

/* ============ FOOTER (azul-marinho nos dois temas) ============ */
.site-footer{background:var(--brand-navy);color:var(--on-navy-soft);padding:72px 0 24px;position:relative;overflow:hidden;border-top:1px solid rgba(255,255,255,.08);}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:32px;padding-bottom:48px;}
.footer-logo{display:inline-flex;align-items:center;margin-bottom:28px;}
.footer-logo-icon{height:170px;width:auto;display:block;}
.footer-col p{font-size:14px;line-height:1.6;margin-top:10px;}
.footer-col h4{color:#fff;font-size:15px;margin-bottom:16px;}
.footer-col a{display:block;font-size:14px;margin-bottom:10px;transition:color .15s;}
.footer-col a:hover{color:var(--sun-soft);}
.footer-social{display:flex;gap:14px;margin-top:16px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.12);padding-top:24px;font-size:13px;text-align:center;}

/* ============ WHATSAPP FLOAT ============ */
@keyframes whatsappPulse{
  0%{box-shadow:0 10px 24px -6px rgba(37,211,102,0.6), 0 0 0 0 rgba(37,211,102,0.55);}
  70%{box-shadow:0 10px 24px -6px rgba(37,211,102,0.6), 0 0 0 16px rgba(37,211,102,0);}
  100%{box-shadow:0 10px 24px -6px rgba(37,211,102,0.6), 0 0 0 0 rgba(37,211,102,0);}
}
.whatsapp-float{
  position:fixed;bottom:24px;right:24px;width:58px;height:58px;border-radius:50%;background:#25D366;
  display:flex;align-items:center;justify-content:center;z-index:100;
  transition:transform .18s;
  animation:whatsappPulse 3.2s ease-in-out infinite;
}
.whatsapp-float:hover{transform:scale(1.08);animation-play-state:paused;}

/* ============ RESPONSIVE ============ */
/* O telefone não aparece no topo: com logo + nome não cabe bem; ele está no WhatsApp flutuante, nas chamadas e no rodapé */
.header-cta .btn-ghost{display:none;}
.main-nav a{white-space:nowrap;}
/* Entre 1261 e 1340px o menu aberto com 7 itens fica justo: espaços menores, para o sol/lua não encostar na borda */
@media (min-width:1261px) and (max-width:1340px){
  .main-nav{gap:18px;}
  .main-nav .nav-recruta{padding-left:18px;}
  .header-inner{gap:18px;}
  .header-cta .btn{padding:0 16px;}
}
@media (max-width:1100px){
  /* Etapas: 5 colunas só em tela larga; em tablet ficam 2 por linha */
  .process-track{grid-template-columns:1fr 1fr;gap:36px 24px;}
  .process-track::before,.process-track::after{display:none;}
}
@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr;}
  .home-hero .hero-inner{grid-template-columns:minmax(0,1fr);gap:40px;}
  .service-row{gap:32px;padding:28px 0;}
  .service-photo-grid.grid-3,.benefit-grid.grid-3{grid-template-columns:repeat(2,minmax(0,1fr));}
  .quote-more{grid-template-columns:1fr;}
  .obras-mosaic{grid-template-columns:1fr 1fr;grid-auto-rows:150px;}
}

/* Cabeçalho: menu hambúrguer também em tablets.
   Até 1260px desde o v42: com o 7º item (Trabalhe conosco) o menu aberto só cabe a partir de ~1230px. */
@media (max-width:1260px){
  .main-nav{display:none;}
  .header-cta{display:none;}
  .theme-toggle{margin-left:auto;}
  .nav-toggle{display:flex;}
  .site-header{position:sticky;}
  .main-nav{
    position:absolute;top:100%;left:0;right:0;z-index:40;margin-left:0;
    flex-direction:column;align-items:stretch;gap:0;background:var(--surface);
    padding:8px 24px 16px;box-shadow:var(--shadow-2);
    border-bottom:1px solid var(--line);
    /* Menu aberto nunca passa da tela: rola por dentro (celular deitado ou tela baixa).
       A altura é a da tela menos a do cabeçalho; os 109px mudam junto com a altura dele, logo abaixo. */
    max-height:calc(100vh - 109px);max-height:calc(100dvh - 109px);
    overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  }
  .main-nav > *{flex-shrink:0;}
  .main-nav.is-open{display:flex;}
  .main-nav a{padding:14px 2px;border-bottom:1px solid var(--line);font-size:15.5px;color:var(--text);}
  .main-nav a:last-child{border-bottom:none;}
  .main-nav .nav-recruta{padding-left:2px;border-left:none;}
  .nav-item{display:block;padding:0;margin:0;}
  .nav-item.has-sub>a::after{display:none;}
  .subnav{display:flex;position:static;min-width:0;background:none;border:none;border-radius:0;box-shadow:none;padding:0 0 0 16px;}
  .subnav a{font-size:14.5px;padding:12px 2px;}
}

@media (max-width:760px){
  .hero{padding:56px 0 104px;}
  .calculator{padding:26px;}
  .footer-grid{grid-template-columns:1fr;}
  .footer-logo-icon{height:110px;}
  .header-inner{height:94px;}
  .main-nav{max-height:calc(100vh - 95px);max-height:calc(100dvh - 95px);}
  .brand-icon{height:56px;}
  .brand-name img{height:21px;}
}

@media (max-width:640px){
  .service-row{grid-template-columns:minmax(0,1fr);gap:22px;}
  .service-row:nth-child(even) .service-row-photo{order:0;}
  .process-track{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  .load-grid{grid-template-columns:1fr;}
  .result-grid{grid-template-columns:1fr;}
  .benefit-grid{grid-template-columns:1fr;}
  .hybrid-cases{grid-template-columns:1fr;}
  .testimonial-grid{grid-template-columns:1fr;}
  .service-photo-grid,.service-photo-grid.grid-3,.benefit-grid.grid-3{grid-template-columns:minmax(0,1fr);}
  .metrics-strip{grid-template-columns:1fr 1fr;padding:28px 18px;}
  .payback-compare{grid-template-columns:1fr;}
}

@media (max-width:480px){
  .wrap{padding:0 16px;}
  .hero-sub{font-size:16px;}
  .hero-actions .btn{width:100%;white-space:normal;}
  .btn-lg{min-height:52px;padding:0 24px;font-size:15px;}
  .section-head h2,.h2{font-size:27px;}
  .result-kwp{font-size:34px;}
  .proposal-row{flex-direction:column;gap:4px;}
  .proposal-row strong{text-align:left;}
  .proposal-card{padding:22px;}
  .proposal-head h3{font-size:22px;}
  .kit-suggestion-value{font-size:13.5px;}
  .calculator{padding:20px;}
  .quick-sim{padding:24px 20px;}
  .header-inner{gap:10px;}
  .header-inner{height:80px;}
  .main-nav{max-height:calc(100vh - 81px);max-height:calc(100dvh - 81px);}
  .brand-icon{height:48px;}
  .brand-name img{height:16px;}
  .toggle-btn{white-space:normal;line-height:1.25;padding:10px 8px;}
  .compare-row > div{padding:12px 14px;}
  .tab-panels{padding:26px 20px;}
  .final-cta .btn{width:100%;white-space:normal;}
  .whatsapp-float{width:50px;height:50px;bottom:16px;right:16px;}
  .telha-preview img,.telha-icone-outro{width:64px;height:64px;}
  .backup-toggle{padding:16px;}
  .backup-body{padding:0 16px 18px;}
  .backup-horas{gap:8px;}
  .backup-horas button{padding:11px 4px;font-size:13.5px;}
}

/* =====================================================
   SISTEMA HÍBRIDO (sistema-hibrido.html, repaginada em 28/09/2026)
   ===================================================== */

/* ---- Como funciona: com rede x faltou luz ---- */
.fluxo-section{padding:88px 0;background:var(--sky);}
.fluxo-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;align-items:center;max-width:1040px;margin:0 auto;min-width:0;}
.fluxo{position:relative;color:var(--house);min-width:0;}
.fluxo svg{display:block;width:100%;height:auto;}
.fluxo .no{fill:var(--surface);stroke:var(--line);stroke-width:1;filter:drop-shadow(0 6px 14px rgba(10,0,130,.14));}
.fluxo .led{fill:var(--leaf);}
.fluxo .casa-luz{stroke:var(--sun);}
.fluxo .bat-nivel rect{fill:var(--leaf);}
.fluxo .trilho{fill:none;stroke:var(--line-strong);stroke-width:2.5;stroke-linecap:round;}
.fluxo .fluxo-linha{fill:none;stroke:var(--sun);stroke-width:3;stroke-linecap:round;stroke-dasharray:7 9;opacity:0;transition:opacity .35s ease;animation:flowDash 1s linear infinite;}
.fluxo[data-estado="rede"] .f-sol,.fluxo[data-estado="rede"] .f-rede,.fluxo[data-estado="rede"] .f-casa,.fluxo[data-estado="rede"] .f-carga,
.fluxo[data-estado="apagao"] .f-sol,.fluxo[data-estado="apagao"] .f-casa,.fluxo[data-estado="apagao"] .f-descarga{opacity:1;}
.fluxo .corte{opacity:0;transition:opacity .35s ease;}
.fluxo .corte circle{fill:var(--surface);stroke:var(--danger);stroke-width:2.5;}
.fluxo .corte path{fill:none;stroke:var(--danger);stroke-width:2.8;stroke-linecap:round;}
.fluxo[data-estado="apagao"] .corte{opacity:1;}
.fluxo .no-rede{transition:opacity .35s ease;}
.fluxo[data-estado="apagao"] .no-rede{opacity:.45;}
.fluxo[data-estado="apagao"] .bat-ultima{animation:batPisca 1.6s ease-in-out infinite;}
@keyframes batPisca{50%{opacity:.2;}}
.fluxo-rotulo{position:absolute;font-size:13px;font-weight:700;color:var(--text-soft);line-height:1.25;white-space:nowrap;pointer-events:none;}
.fluxo-rotulo small{display:block;font-size:11.5px;font-weight:600;}
.r-paineis{left:58.5%;top:12%;}
.r-inversor{left:58%;top:57%;}
.r-bateria{left:58.5%;top:81%;}
.r-rede,.r-casa{top:66%;transform:translateX(-50%);text-align:center;}
.r-rede{left:14.4%;}
.r-casa{left:85.6%;}
.fluxo-lado{min-width:0;}
.fluxo-botoes{max-width:360px;margin-bottom:24px;}
.fluxo-estado h3{font-size:21px;color:var(--house);margin-bottom:14px;}
.fluxo-estado ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.fluxo-estado li{position:relative;padding-left:22px;font-size:15.5px;line-height:1.6;color:var(--text-soft);}
.fluxo-estado li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--sun);}
.fluxo-estado[hidden]{display:none;}

/* ---- Dimensionamento das baterias ---- */
.calc-section.is-alt{background:var(--sky-2);}
.cargas{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;}
.carga{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 14px;border:1.5px solid var(--line-strong);background:var(--surface-2);border-radius:var(--radius-m);min-width:0;transition:border-color .15s,background .15s;}
.carga.is-on{border-color:var(--sun);background:var(--sun-wash);}
.carga-texto{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.carga-texto b{font-size:14.5px;color:var(--house);line-height:1.3;}
.carga-texto small{font-size:12.5px;color:var(--text-soft);line-height:1.4;}
.carga-qtd{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.carga-qtd button{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--house);font-family:var(--font-body);font-size:19px;font-weight:700;line-height:1;cursor:pointer;display:grid;place-items:center;padding:0;transition:border-color .15s;}
.carga-qtd button:hover:not(:disabled){border-color:var(--sun);}
.carga-qtd button:disabled{opacity:.35;cursor:default;}
.carga-qtd button:focus-visible{outline:2px solid var(--panel);outline-offset:2px;}
.carga-qtd output{min-width:22px;text-align:center;font-size:16px;font-weight:800;color:var(--text);}
.cargas-total{margin:0;font-size:14px;color:var(--text-soft);}
.cargas-total b{color:var(--house);white-space:nowrap;}
.calc-erro{margin:0;font-size:13.5px;font-weight:700;color:var(--danger);}
.calc-erro[hidden]{display:none;}
.horas-opcoes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;min-width:0;}
.horas-opcoes button{padding:11px 6px;border:1.5px solid var(--line-strong);background:var(--surface-2);border-radius:var(--radius-m);font-family:var(--font-body);font-size:14px;font-weight:700;color:var(--house);cursor:pointer;min-width:0;transition:border-color .15s,background .15s;}
.horas-opcoes button:hover{border-color:var(--sun);}
.horas-opcoes button[aria-pressed="true"]{border-color:var(--sun);background:var(--sun-wash);}
.horas-opcoes button:focus-visible{outline:2px solid var(--panel);outline-offset:2px;}
.conta-hibrido{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-l);padding:22px 24px;min-width:0;}
.conta-hibrido h3{font-size:17px;color:var(--house);margin:0 0 12px;}
.conta-hibrido ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:10px;}
.conta-hibrido li{font-size:14.5px;line-height:1.6;color:var(--text-soft);overflow-wrap:break-word;}
.conta-hibrido li::marker{color:var(--sun-text);font-weight:700;}
.conta-hibrido li b{color:var(--text);white-space:nowrap;}
.calc-aviso{margin:0;padding:14px 18px;border-radius:var(--radius-m);background:var(--sun-wash);border-left:4px solid var(--sun);font-size:14.5px;line-height:1.55;color:var(--text);}
.calc-aviso[hidden]{display:none;}
.proposal-card .btn-text{display:block;margin:10px auto 0;color:rgba(255,255,255,.74);}
.passo-titulo{font-size:17px;color:var(--house);}
.pagina-hibrido .section-head h2{text-wrap:balance;}
.backup-detalhe{margin:4px 0 0;font-size:13.5px;line-height:1.5;color:var(--text-soft);}
.backup-detalhe a{color:var(--house);font-weight:700;border-bottom:2px solid var(--sun);}

@media (max-width:900px){
  .fluxo-grid{grid-template-columns:minmax(0,1fr);gap:32px;}
  .fluxo{max-width:560px;width:100%;margin:0 auto;}
  .fluxo-botoes{margin-left:auto;margin-right:auto;}
}
@media (max-width:640px){
  .cargas{grid-template-columns:minmax(0,1fr);}
  .conta-hibrido{padding:18px;}
}
@media (max-width:480px){
  .fluxo-section{padding:64px 0;}
  .fluxo-rotulo{font-size:11.5px;}
  .fluxo-rotulo small{font-size:10.5px;}
  .horas-opcoes{gap:6px;}
  .horas-opcoes button{padding:11px 2px;font-size:13px;}
  .carga{padding:10px;gap:10px;}
  .carga-qtd{gap:4px;}
}

/* =====================================================
   v41 — TRABALHE CONOSCO (trabalhe-conosco.html) E PRIVACIDADE (privacidade.html)
   ===================================================== */

/* Seção de diferenciais em fundo alternado, para não repetir o da vizinha */
.differentials.is-alt{background:var(--sky-2);}
/* Com 4 itens, 2 colunas: no automático ficavam 3 + 1 sozinho na segunda linha */
.diff-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr));}

/* ---------- Perfis: cartão de benefício com "quem procuramos" e botão na base ---------- */
.perfil-card{display:flex;flex-direction:column;}
.perfil-card p{margin-bottom:12px;}
.perfil-card .perfil-busca{font-size:14px;font-weight:600;color:var(--text);}
.perfil-card .btn{margin-top:auto;align-self:flex-start;}
/* Selo do tipo de contrato (vendedor e técnico). Pode quebrar em duas linhas no celular. */
.perfil-card .perfil-contrato{
  align-self:flex-start;font-size:12.5px;font-weight:700;line-height:1.35;color:var(--house);
  background:var(--panel-soft);border-radius:var(--radius-s);padding:6px 10px;margin-bottom:18px;
}
/* Aviso de como é a contratação, logo abaixo dos três cartões */
.contrato-nota{
  margin:32px 0 0;padding:22px 26px;background:var(--surface);border:1px solid var(--line);
  border-left:4px solid var(--panel);border-radius:var(--radius-m);box-shadow:var(--shadow-1);min-width:0;
}
.contrato-nota h3{font-size:18px;color:var(--house);margin-bottom:8px;}
.contrato-nota p{font-size:15px;line-height:1.6;color:var(--text);max-width:80ch;}

/* ---------- Faixa de fotos da equipe: os vãos na cor do painel, como no mosaico de obras ---------- */
.equipe-fotos{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:56px 0 0;padding:6px;
  background:var(--panel);border-radius:var(--radius-l);overflow:hidden;min-width:0;
}
.equipe-fotos img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:calc(var(--radius-l) - 8px);}

/* ---------- Cadastro: texto de apoio à esquerda, formulário à direita ---------- */
.cadastro{padding:96px 0;background:var(--sky);scroll-margin-top:96px;}
.cadastro-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start;min-width:0;}
.cadastro-intro h2{font-size:clamp(28px,3.8vw,42px);color:var(--house);margin-top:10px;}
.cadastro-intro .section-lead{margin-left:0;margin-right:0;}
.cadastro-passos{list-style:none;padding:0;margin:32px 0 0;display:flex;flex-direction:column;gap:20px;counter-reset:passo;}
.cadastro-passos li{
  display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;align-items:start;
  font-size:15px;color:var(--text-soft);line-height:1.55;counter-increment:passo;
}
.cadastro-passos li::before{
  content:counter(passo);width:38px;height:38px;border-radius:50%;background:var(--panel-soft);color:var(--panel);
  font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;
}
.cadastro-passos strong{display:block;color:var(--house);font-size:16px;margin-bottom:2px;}

.cadastro textarea{
  border:1.5px solid var(--line-strong);border-radius:var(--radius-m);background:var(--surface-2);
  padding:14px;font-family:var(--font-body);font-size:15.5px;font-weight:400;color:var(--text);
  width:100%;min-width:0;min-height:128px;resize:vertical;line-height:1.5;transition:border-color .15s;
}
.cadastro textarea:focus{outline:none;border-color:var(--panel);}
.cadastro textarea::placeholder{color:var(--text-soft);opacity:.7;}
.cadastro select{width:100%;}
/* Campos lado a lado alinham pelo topo: o aviso de erro entra embaixo de um deles sem empurrar o vizinho.
   Por isso os rótulos dessas linhas são curtos (não quebram em duas linhas nem na coluna mais estreita). */
.cadastro .field-row{align-items:start;}
.campo-contador{font-size:12.5px;font-weight:500;color:var(--text-soft);text-align:right;}
.campo-opcional{font-weight:500;color:var(--text-soft);}

/* Campo com erro: a borda acompanha a mensagem */
.campo-invalido .input-prefix,.campo-invalido select,.campo-invalido textarea{border-color:var(--danger);}

/* Aceite da política de privacidade */
.check-aceite{
  display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;align-items:start;
  font-size:14px;font-weight:500;color:var(--text-soft);line-height:1.5;cursor:pointer;
}
.check-aceite input{width:22px;height:22px;margin:1px 0 0;accent-color:var(--panel);cursor:pointer;}
.check-aceite input:focus-visible{outline:3px solid var(--panel);outline-offset:2px;}
.check-aceite a{color:var(--house);font-weight:700;border-bottom:2px solid var(--sun);}
.check-aceite.campo-invalido{color:var(--danger);}

.cadastro-erro{margin:0;font-size:14px;font-weight:600;line-height:1.45;color:var(--danger);overflow-wrap:anywhere;}
/* Campo-isca contra robô: fora da tela, sem display:none (robô ignora campo escondido) */
.cadastro-isca{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden;}
.cadastro .btn[disabled]{opacity:.65;cursor:progress;transform:none;box-shadow:none;}

/* Confirmação depois do envio */
.cadastro-ok{background:var(--leaf-wash);border-left:4px solid var(--leaf);border-radius:var(--radius-m);padding:28px;min-width:0;}
.cadastro-ok h3{color:var(--leaf-text);font-size:22px;margin-bottom:10px;}
.cadastro-ok p{color:var(--text);font-size:15.5px;line-height:1.6;overflow-wrap:anywhere;}
.cadastro-ok p a{color:var(--house);font-weight:700;border-bottom:2px solid var(--sun);}
.nowrap{white-space:nowrap;}
.cadastro-ok p + p{margin-top:10px;}
.cadastro-ok .text-link{margin-top:20px;}
.cadastro-ok:focus{outline:none;}

/* ---------- Página de texto (política de privacidade) ---------- */
.legal{padding:72px 0 96px;background:var(--sky);}
.legal-inner{max-width:760px;}
.legal h1{font-size:clamp(30px,4.4vw,44px);margin:10px 0 12px;}
.legal h2{font-size:22px;margin:44px 0 12px;}
/* :not([class]) deixa o rótulo (.eyebrow) e a data (.legal-atualizado) com o estilo deles */
.legal p:not([class]),.legal li{font-size:16px;line-height:1.7;color:var(--text);}
.legal p + p{margin-top:12px;}
.legal ul{margin:12px 0 0;display:flex;flex-direction:column;gap:8px;}
.legal li{padding-left:20px;position:relative;}
.legal li::before{content:"";position:absolute;left:2px;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--sun);}
.legal a{color:var(--house);font-weight:700;border-bottom:2px solid var(--sun);overflow-wrap:anywhere;}
.legal-atualizado{color:var(--text-soft);font-size:14px;}

/* Link da política na última linha do rodapé */
.footer-bottom a{color:#fff;text-decoration:underline;text-underline-offset:3px;}
.footer-bottom a:hover{color:var(--sun-soft);}

@media (max-width:900px){
  .cadastro-grid{grid-template-columns:minmax(0,1fr);gap:36px;}
}
@media (max-width:760px){
  .equipe-fotos{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:40px;}
  .diff-grid.cols-2{grid-template-columns:minmax(0,1fr);}
  .cadastro{scroll-margin-top:84px;}
}
@media (max-width:640px){
  .cadastro{padding:64px 0;}
  .legal{padding:48px 0 72px;}
  .perfil-card .btn{align-self:stretch;white-space:normal;}
}
@media (max-width:480px){
  .cadastro-ok{padding:22px 18px;}
}

/* =====================================================
   v42 — HOME: CHAMADA PARA O TRABALHE CONOSCO (index.html)
   Fica depois da chamada final do cliente e antes do rodapé: fala com outro público.
   ===================================================== */
.recrutamento{padding:96px 0;}
.recrutamento-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:56px;align-items:center;min-width:0;}
.recrutamento-texto{min-width:0;}
.recrutamento-texto .section-lead{margin-left:0;margin-right:0;}
/* Os três perfis em linhas finas, como os serviços e os diferenciais da home */
.recrutamento-perfis{margin:28px 0 0;border-top:1px solid var(--line);}
.recrutamento-perfis li{
  display:grid;grid-template-columns:minmax(0,13.5em) minmax(0,1fr);gap:4px 20px;align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.5;color:var(--text-soft);
}
.recrutamento-perfis strong{font-size:15.5px;color:var(--house);}
.recrutamento-acao{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-top:32px;}
.recrutamento-acao span{font-size:14px;color:var(--text-soft);}
/* Fotos da equipe: os vãos na cor do painel, como no mosaico de obras */
.recrutamento-fotos{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px;
  background:var(--panel);border-radius:var(--radius-l);overflow:hidden;box-shadow:var(--shadow-2);min-width:0;
}
.recrutamento-fotos img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:calc(var(--radius-l) - 8px);}
.recrutamento-fotos img:first-child{grid-column:1 / -1;aspect-ratio:16/9;}

/* ---------- Home: avaliações do Google, embaixo dos depoimentos ---------- */
.quote-google{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 24px;
  max-width:860px;margin:48px auto 0;padding:20px 24px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-1);min-width:0;
}
.quote-google > div{min-width:0;}
.quote-google strong{display:block;font-size:17px;color:var(--house);}
.quote-google > div span{font-size:14px;color:var(--text-soft);}
.btn-google{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 22px;
  border-radius:999px;background:var(--surface);color:var(--house);border:1.5px solid var(--line-strong);
  font-weight:700;font-size:15px;line-height:1.2;text-align:center;transition:transform .2s ease, border-color .2s ease;
}
.btn-google:hover{transform:translateY(-2px);border-color:var(--panel);}
.btn-google .g{font-weight:800;font-size:18px;color:var(--panel);}

@media (max-width:900px){
  /* No tablet continua em 2 colunas, como os serviços em linhas; só o texto de cada perfil desce para baixo do nome */
  .recrutamento-grid{gap:32px;}
  .recrutamento-perfis li{grid-template-columns:minmax(0,1fr);}
  .recrutamento-acao .btn{white-space:normal;}
}
@media (max-width:640px){
  .quote-google{padding:18px;margin-top:40px;}
  .btn-google{width:100%;}
  .recrutamento{padding:64px 0;}
  /* No celular as fotos abrem a faixa */
  .recrutamento-grid{grid-template-columns:minmax(0,1fr);}
  .recrutamento-fotos{order:-1;}
}
@media (max-width:480px){
  .recrutamento-acao .btn{width:100%;white-space:normal;}
}
