/* build 2026-10-19 21:32 */
/* ══════════════════════════════════════════════════════════════════
   Mary Mint Home Care & Cleaning · folha unica do site
   Paleta da Diretriz Tatica de Branding (lida do vetor do logo):
     Linen #FCFCF8 domina · Ink #161616 estrutura · Mary Rose #EF5B7F chama
     Mint Leaf #7ABD80 so' pontua (acento pequeno, nunca area grande)
   Nada de azul. Nada de casinha, telhado, bolha ou brilho de quatro pontas.

   Contraste medido, nao estimado (WCAG):
     Ink sobre Mary Rose ......... 5,6:1  -> botao rosa leva texto Ink
     branco sobre Mary Rose ...... 3,2:1  -> REPROVA, nunca usar
     Mary Rose sobre Linen ....... 3,1:1  -> so' texto grande (>=24px)
     --rose-texto sobre Linen .... 5,7:1  -> link e texto pequeno
     Mary Rose sobre Ink ......... 5,6:1  -> acento no rodape escuro e na barra

   TIPOGRAFIA PROVISORIA: as fontes do letreiro estao convertidas em curva
   no arquivo mestre e o nome ainda nao veio do designer (Branding, Secao 7,
   [A CONFIRMAR]). Playfair Display (serifa de alto contraste, terminal em
   gota, a familia visual mais proxima do letreiro) e Open Sans (a sem serifa
   mais proxima da assinatura). Troca-se aqui, num lugar so', quando chegar.
   ══════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,600;1,500;1,600&family=Open+Sans:wght@400;500;600;700;800&display=swap');

:root{
  --linen:#FFF9F6;            /* Warm White do brandbook */
  --blush:#FDEEF1;            /* tinta de Mary Pink */
  --menta-claro:#EDF6EE;      /* tinta de Mint Leaf */
  --areia:#FCF1E2;            /* tinta de Soft Sand */
  --sand:#F4C594;             /* Soft Sand do brandbook */
  --papel:#FFFFFF;
  --ink:#161515;              /* Charcoal do brandbook */
  --ink-2:#3A3A3A;            /* texto corrido: 11,4:1 sobre Linen */
  --rose:#F05E80;             /* Mary Pink do brandbook */
  --rose-escuro:#D94A6F;      /* hover do botao, Ink sobre ele 4,6:1 */
  --rose-texto:#B92D53;
  --mint:#7ABD80;
  --mint-escuro:#3F7F47;      /* menta para texto e icone sobre fundo claro */
  --linha:#E8E2DE;
  --serif:'Playfair Display', Georgia, 'Times New Roman', serif;
  --sans:'Open Sans', Arial, Helvetica, sans-serif;
  --wrap:1280px;
  --gutter:40px;
  --raio:14px;
}

*,*::before,*::after{ box-sizing:border-box }
html{ -webkit-text-size-adjust:100% }
body{
  margin:0; background:var(--linen); color:var(--ink-2);
  font:400 17px/1.7 var(--sans);
}
img{ max-width:100%; height:auto; display:block }
a{ color:var(--rose-texto) }
h1,h2,h3{ font-family:var(--sans); color:var(--ink); line-height:1.2; margin:0 0 .5em; font-weight:800; letter-spacing:-.01em }
h3{ font-weight:700 }
h1{ font-size:clamp(2.1rem,3.6vw,3.25rem) }
h2{ font-size:clamp(1.75rem,2.6vw,2.45rem) }
h3{ font-size:1.32rem }
h1 em,h2 em{ font-style:normal; color:var(--rose-texto) }
/* A serifa so' aparece em frase curta de impacto (direcao, 19/10/2026) */
.impacto{ font-family:var(--serif); font-style:italic; font-weight:500 }
p{ margin:0 0 1em }
.wrap{ max-width:var(--wrap); margin:0 auto; padding:0 var(--gutter) }
.i{ width:18px; height:18px; fill:currentColor; flex:none }
.sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0) }

/* botoes · rosa com texto Ink (o branco reprova no rosa da marca) */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:48px; padding:12px 26px; border-radius:999px; border:0; cursor:pointer;
  background:var(--rose); color:var(--ink); font:700 .95rem/1.2 var(--sans);
  letter-spacing:.02em; text-decoration:none; transition:background .2s;
}
.btn:hover{ background:var(--rose-escuro) }
.btn-sec{ background:transparent; color:var(--ink); box-shadow:inset 0 0 0 2px var(--ink) }
.btn-sec:hover{ background:var(--ink); color:var(--linen) }
.cta-linha{ margin-top:28px }
.cta-linha a{ font-weight:700; color:var(--rose-texto); text-decoration:none; display:inline-block; padding:10px 0 }
.cta-linha a:hover{ text-decoration:underline }

/* ── barra de autoridade ─────────────────────────────────────────── */
.authbar{ background:var(--ink); color:var(--linen); font-size:.84rem }
.authbar .wrap{ display:flex; justify-content:space-between; align-items:center; min-height:44px; gap:20px }
.authbar .social{ display:flex; align-items:center; gap:6px }
.authbar a{ color:var(--linen); text-decoration:none; display:inline-flex; align-items:center }
.authbar .fone{ font-weight:700; gap:8px; padding:10px 10px 10px 0; font-size:.92rem }
.authbar .fone .i{ fill:var(--rose) }
.authbar .ico{ width:44px; height:44px; justify-content:center }
.authbar .selos{ display:flex; gap:22px; flex-wrap:wrap; justify-content:flex-end }
.authbar .selos span{ display:inline-flex; align-items:center; gap:8px; white-space:nowrap }
.authbar .selos img{ width:14px; height:auto }

/* ── cabecalho: logo · nav · CTA sozinho ─────────────────────────── */
header.site{ background:var(--linen); border-bottom:1px solid var(--linha); position:sticky; top:0; z-index:40 }
header.site .wrap{ display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:96px }
.logo img{ height:62px; width:auto }
header.site nav ul{ list-style:none; margin:0; padding:0; display:flex; gap:30px; align-items:center }
header.site nav a{ color:var(--ink); text-decoration:none; font-weight:600; font-size:.98rem; padding:12px 0; display:inline-block }
header.site nav a:hover{ color:var(--rose-texto) }
.tem-drop{ position:relative }
.tem-drop > a::after{ content:''; display:inline-block; width:7px; height:7px; margin-left:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:translateY(-3px) rotate(45deg) }
header.site .drop{
  position:absolute; top:100%; left:-18px; min-width:290px; display:block !important;
  background:var(--papel); border:1px solid var(--linha); border-radius:12px; padding:10px 0;
  box-shadow:0 18px 40px rgba(22,22,22,.10); opacity:0; visibility:hidden; transform:translateY(6px); transition:.18s;
}
header.site .tem-drop:hover .drop, header.site .tem-drop:focus-within .drop{ opacity:1; visibility:visible; transform:none }
header.site .drop a{ display:block; padding:10px 20px; font-weight:500 }
.head-cta{ display:flex; align-items:center; gap:10px }
.hamb{ display:none; width:48px; height:48px; border:0; background:transparent; cursor:pointer; padding:0; color:var(--ink) }
.hamb svg{ width:30px; height:30px; fill:currentColor }

/* ── menu do celular · painel de tela cheia ──────────────────────── */
.drawer-fundo{ position:fixed; inset:0; background:rgba(22,22,22,.4); z-index:60 }
.drawer{
  position:fixed; inset:0; z-index:70; background:var(--linen); overflow-y:auto;
  display:flex; flex-direction:column; padding:18px 24px 30px;
}
.drawer[hidden], .drawer-fundo[hidden]{ display:none !important }
.drawer-topo{ display:flex; justify-content:space-between; align-items:center; padding-bottom:14px; border-bottom:1px solid var(--linha) }
.drawer-logo img{ height:58px; width:auto }
.drawer-x{ width:48px; height:48px; border:0; background:transparent; cursor:pointer; color:var(--ink) }
.drawer-x .i{ width:28px; height:28px }
.drawer nav ul{ list-style:none; margin:0; padding:0 }
.drawer nav > ul > li > a{ display:block; padding:14px 0; font:700 1.2rem/1.3 var(--sans); color:var(--ink); text-decoration:none; border-bottom:1px solid var(--linha) }
.drawer .drop{ padding:4px 0 8px 14px }
.drawer .drop a{ display:block; padding:11px 0; font:500 1rem/1.3 var(--sans); color:var(--ink-2); text-decoration:none }
.drawer-pe{ margin-top:auto; padding-top:26px; text-align:center }
.drawer-fone{ display:inline-flex; align-items:center; gap:10px; font:700 1.45rem/1 var(--sans); color:var(--rose-texto); text-decoration:none; padding:12px 0 }
.drawer-fone .i{ width:24px; height:24px }
.drawer-redes{ display:flex; justify-content:center; gap:12px; margin-top:10px }
.drawer-redes a{ width:48px; height:48px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--mint); color:var(--ink) }

/* ── dobras: ritmo de fundo ──────────────────────────────────────── */
section{ padding:76px 0; display:flow-root }
.claro{ background:var(--linen) }
.blush{ background:var(--blush) }
.papel{ background:var(--papel) }
.escuro{ background:var(--ink); color:#E9E6E2 }
.escuro h2,.escuro h3{ color:var(--linen) }
.escuro h2 em{ color:var(--rose) }
.escuro a{ color:var(--rose) }
.centro{ text-align:center }
.lead{ font-size:1.13rem; color:var(--ink) }
.escuro .lead{ color:var(--linen) }
.estreito{ max-width:860px; margin-left:auto; margin-right:auto }

/* ── hero · moldura luminosa, veu claro que abre no lado livre ───── */
.hero{ position:relative; padding:0; overflow:hidden; background:var(--linen) }
.hero-bg{ position:absolute; inset:0; background:var(--hero-img) center/cover no-repeat }
.hero-bg::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(252,252,248,.97) 0%, rgba(252,252,248,.92) 36%, rgba(252,252,248,.45) 56%, rgba(252,252,248,.06) 100%);
}
.hero .wrap{ position:relative; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); gap:56px; align-items:center; padding-top:64px; padding-bottom:72px }
.hero-txt .ancora{ font:italic 500 1.22rem/1.5 var(--serif); color:var(--rose-texto); margin:-.1em 0 1.1em }
.hero-txt .lede{ color:var(--ink); font-size:1.02rem; text-align:justify; hyphens:none; max-width:640px }
.hero-txt .botoes{ display:flex; gap:14px; flex-wrap:wrap; margin-top:26px }
.folha-ac{ width:30px; height:auto; display:inline-block; vertical-align:middle }

/* formulario branco · campos do nicho de limpeza */
.fcard{ background:var(--papel); border-radius:var(--raio); padding:30px 30px 24px; box-shadow:0 24px 60px rgba(22,21,21,.12); border-top:5px solid var(--mint) }
.fcard h2{ font-size:1.65rem; margin-bottom:.15em }
.fcard .sub{ font-size:.95rem; margin-bottom:16px }
.fcard label{ display:block; font-weight:600; font-size:.86rem; color:var(--ink); margin:12px 0 5px }
.fcard input,.fcard select,.fcard textarea{
  width:100%; min-height:46px; padding:10px 12px; border:1px solid #CFC8C3; border-radius:9px;
  font:400 1rem/1.3 var(--sans); color:var(--ink); background:#fff;
}
.fcard textarea{ min-height:70px; resize:vertical }
.fcard input:focus,.fcard select:focus,.fcard textarea:focus{ outline:3px solid rgba(239,91,127,.45); outline-offset:1px; border-color:var(--rose-texto) }
.fcard .row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px }
.fcard .row2 label{ margin-top:12px }
.fcard .btn{ width:100%; margin-top:18px }
.fcard .micro{ font-size:.84rem; text-align:center; margin:10px 0 0; color:var(--ink-2) }
.obr{ color:var(--rose-texto) }

/* ── faixa de servicos (dobra 2) ─────────────────────────────────── */
.faixa-serv{ padding:34px 0; background:var(--papel); border-bottom:1px solid var(--linha) }
.faixa-serv h2{ font-size:1.25rem; text-align:center; margin-bottom:18px; font-family:var(--sans); font-weight:700; letter-spacing:.01em }
.faixa-serv ul{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:10px }
.faixa-serv a{ display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; padding:12px 8px; border-radius:12px; color:var(--ink); text-decoration:none; font-weight:600; font-size:.95rem; line-height:1.35 }
.faixa-serv a:hover{ background:var(--blush) }
.faixa-serv svg{ width:52px; height:52px; fill:none; stroke:var(--ink); stroke-width:2; stroke-linecap:round; stroke-linejoin:round }
.faixa-serv svg .ac{ stroke:var(--rose) }

/* ── editorial em duas colunas ───────────────────────────────────── */
.editorial{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:64px; align-items:center }
.editorial.inv > :first-child{ order:2 }
.just p{ text-align:justify; hyphens:none }
.slot-foto{
  aspect-ratio:4/5; border-radius:var(--raio); border:2px dashed var(--sand); background:var(--areia);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:30px; gap:14px;
}
.slot-foto img{ width:56px }
.slot-foto p{ margin:0; font:700 .9rem/1.5 var(--sans); letter-spacing:.06em; color:var(--ink) }
.slot-foto span{ display:block; font-weight:400; letter-spacing:0; color:var(--ink-2); margin-top:6px }
.slot-foto.paisagem{ aspect-ratio:5/4 }

/* ── The Mary Mint Finish · dobra propria da Home ────────────────── */
.finish h2{ text-align:center }
.finish .ramo{ width:44px; margin:0 auto 14px }
.finish .tres{ list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:34px; counter-reset:f }
.finish .tres li{ position:relative; padding-top:6px }
.finish .tres .n{ font:italic 600 4.2rem/1 var(--serif); color:var(--rose); display:block; margin-bottom:12px }
.finish .tres h3{ font-size:1.38rem; margin-bottom:.4em }
.finish .tres p{ margin:0 }
.escuro.finish .tres p{ color:#E9E6E2 }
.escuro.finish .tres .n{ color:var(--rose) }
.finish .cta-linha{ text-align:center; margin-top:40px }

/* ── cartoes de servico horizontais ──────────────────────────────── */
.servicos{ display:flex; flex-wrap:wrap; justify-content:center; gap:26px; margin-top:38px }
.scard{ flex:0 1 calc(50% - 13px); display:grid; grid-template-columns:42% 1fr; background:var(--papel); border-radius:var(--raio); overflow:hidden; box-shadow:0 10px 30px rgba(22,22,22,.06); border:1px solid var(--linha) }
.scard img{ width:100%; height:100%; object-fit:cover; aspect-ratio:auto }
.scard .txt{ padding:26px 26px 22px }
.scard h3{ margin-bottom:.35em }
.scard p{ font-size:.98rem; margin-bottom:.6em }
.scard a{ font-weight:700; text-decoration:none; display:inline-block; padding:10px 0 }

/* ── cidades + mapa ──────────────────────────────────────────────── */
.cidades{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:center }
.cidades ul{ list-style:none; margin:18px 0 18px; padding:0; columns:3; column-gap:24px }
.cidades li{ padding:6px 0; break-inside:avoid; color:var(--ink) }
.cidades li a{ font-weight:700; display:inline-block; padding:12px 0; margin:-12px 0 }
.mapa{ width:100%; aspect-ratio:4/3; border:0; border-radius:var(--raio); box-shadow:0 10px 30px rgba(22,22,22,.08) }

/* ── passos ──────────────────────────────────────────────────────── */
.passos{ list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); gap:22px; position:relative }
.passos::before{ content:''; position:absolute; top:27px; left:8%; right:8%; height:2px; background:var(--linha) }
.passo{ position:relative; text-align:center }
.passo .n{ width:56px; height:56px; border-radius:50%; background:var(--rose); color:var(--ink); display:flex; align-items:center; justify-content:center; font:800 1.3rem/1 var(--sans); margin:0 auto 16px; position:relative }
.passo:last-child .n{ background:var(--mint); color:var(--ink) }
.passo strong{ display:block; color:var(--ink); font-size:1.02rem; margin-bottom:4px }
.passo p{ font-size:.95rem; margin:0 }

/* ── FAQ ─────────────────────────────────────────────────────────── */
.faq{ max-width:880px; margin:34px auto 0 }
.faq details{ border-bottom:1px solid var(--linha); background:transparent }
.faq summary{ list-style:none; cursor:pointer; padding:20px 44px 20px 0; position:relative; font:700 1.06rem/1.45 var(--sans); color:var(--ink) }
.faq summary::-webkit-details-marker{ display:none }
.faq summary::after{ content:'+'; position:absolute; right:6px; top:14px; font:400 1.8rem/1 var(--sans); color:var(--mint-escuro) }
.faq details[open] summary::after{ content:'\2212' }
.faq details p{ margin:0 0 20px }
.faq .cta-linha{ text-align:center }

/* ── CTA final com foto ──────────────────────────────────────────── */
.cta-final{ position:relative; padding:112px 0; text-align:center; overflow:hidden }
.cta-final .bg{ position:absolute; inset:0; background:var(--cta-img) center/cover no-repeat }
.cta-final .bg::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(22,21,21,.50), rgba(22,21,21,.58)) }
.cta-final .wrap{ position:relative; max-width:820px }
.cta-final h2{ color:var(--linen) }
.cta-final p{ color:#F1EEEA; font-size:1.1rem }
.cta-final .frase{ font:italic 600 1.75rem/1.3 var(--serif); color:#FFD9E2; margin:6px 0 26px }
.cta-final .btn{ min-height:54px; padding:14px 34px; font-size:1.02rem }

/* ── rodape · claro, porque o "Mint" do logo e' preto ────────────── */
footer.site{ background:var(--linen); border-top:5px solid var(--mint); color:var(--ink-2); padding-top:64px }
footer.site .cols{ display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px }
footer.site h4{ font:700 .82rem/1.4 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--ink); margin:0 0 14px }
footer.site ul{ list-style:none; margin:0; padding:0 }
footer.site li a{ color:var(--ink-2); text-decoration:none; display:inline-block; padding:7px 0; font-size:.97rem }
footer.site li a:hover{ color:var(--rose-texto) }
.f-logo img{ width:240px; height:auto; margin-bottom:14px }
.f-desc{ font-size:.97rem; margin-bottom:10px }
.f-selos{ font-size:.86rem; color:var(--ink); font-weight:600 }
.f-cta{ margin-top:8px }
.f-contato li{ display:flex; gap:10px; align-items:flex-start; padding:5px 0; font-size:.97rem }
.f-contato .ic{ width:18px; height:18px; fill:var(--mint-escuro); flex:none; margin-top:12px }
.f-contato li > span{ padding:7px 0 }
.f-seguir{ margin-top:22px !important }
.f-redes{ display:flex; gap:10px }
.f-redes a{ width:44px; height:44px; border-radius:50%; background:var(--mint); color:var(--ink); display:flex; align-items:center; justify-content:center }
.f-areas{ margin-top:40px; padding-top:26px; border-top:1px solid var(--linha) }
.f-areas p{ margin:0; font-size:.95rem; line-height:2 }
.f-areas a{ color:var(--ink); font-weight:600; text-decoration:none; display:inline-block; padding:4px 0 }
.f-areas a:hover{ color:var(--rose-texto) }
.f-base{ margin-top:34px; padding:22px 0 30px; border-top:1px solid var(--linha); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.86rem }
.f-base a{ color:var(--ink-2); display:inline-block; padding:8px 0 }

/* botoes flutuantes · so' no celular */
.fab{ display:none }

/* ══ TABLET ══════════════════════════════════════════════════════ */
@media (max-width:1100px){
  header.site nav{ display:none }
  .hamb{ display:inline-flex; align-items:center; justify-content:center }
  .hero .wrap{ grid-template-columns:1fr; gap:34px }
  .editorial,.cidades{ grid-template-columns:1fr; gap:36px }
  .editorial.inv > :first-child{ order:0 }
  .slot-foto{ aspect-ratio:16/10 }
  .scard{ flex-basis:100% }
  .passos{ grid-template-columns:1fr 1fr; row-gap:30px }
  .passos::before{ display:none }
  footer.site .cols{ grid-template-columns:1fr 1fr }
  section{ padding:62px 0 }
}

/* ══ CELULAR · padrao da casa ════════════════════════════════════ */
@media (max-width:700px){
  :root{ --gutter:20px }
  body{ font-size:16px }
  section{ padding:48px 0 }
  .authbar .social{ display:none }
  .authbar .wrap{ justify-content:center }
  .authbar .selos{ justify-content:center; gap:16px; font-size:.8rem }
  .authbar .selos .so-desk{ display:none }
  header.site .wrap{ min-height:100px; gap:12px }
  .logo img{ height:84px; max-width:100%; object-fit:contain; object-position:left }
  .logo{ flex:1 1 auto; min-width:0 }
  .head-cta .btn{ display:none }
  /* ordem da primeira dobra: titulo · ancora · texto · botao · FORMULARIO */
  .hero-bg::after{ background:linear-gradient(180deg, rgba(252,252,248,.96) 0%, rgba(252,252,248,.94) 100%) }
  .hero .wrap{ padding-top:36px; padding-bottom:44px }
  .hero-txt .lede{ text-align:left }
  .fcard{ padding:24px 18px 20px }
  .fcard .row2{ grid-template-columns:1fr; gap:0 }
  .faixa-serv ul{ grid-template-columns:1fr 1fr }
  .faixa-serv li:last-child{ grid-column:1 / -1 }
  .just p{ text-align:left }
  .finish .tres{ grid-template-columns:1fr; gap:26px }
  .finish .tres .n{ font-size:3.2rem }
  .scard{ grid-template-columns:1fr }
  .scard img{ aspect-ratio:16/10 }
  .cidades ul{ columns:2 }
  .passos{ grid-template-columns:1fr; row-gap:22px }
  .passo{ display:grid; grid-template-columns:56px 1fr; column-gap:16px; text-align:left; align-items:start }
  .passo .n{ margin:0; grid-row:1 / span 2 }
  .passo strong, .passo p{ grid-column:2 }
  .cta-final{ padding:76px 0 }
  footer.site .cols{ grid-template-columns:1fr; gap:30px }
  .f-base{ flex-direction:column }
  .fab{ display:flex; position:fixed; right:14px; bottom:16px; z-index:50; flex-direction:column; gap:10px }
  .fab a{ width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px rgba(22,22,22,.25) }
  .fab .fab-call{ background:var(--rose); color:var(--ink) }
  .fab .fab-sms{ background:var(--mint); color:var(--ink) }
  .fab svg{ width:24px; height:24px; fill:currentColor }
}
.f-contato a{ color:var(--ink-2); text-decoration:none; display:inline-block; padding:12px 0; margin:-5px 0 }
.authbar .fone, .f-contato a{ min-height:44px; display:inline-flex; align-items:center }
.f-contato a{ padding:0; margin:-8px 0 }
footer.site li a{ padding:0; min-height:44px; display:inline-flex; align-items:center }
.f-base a{ padding:0; min-height:44px; display:inline-flex; align-items:center }
.f-areas a{ padding:0; min-height:44px; display:inline-flex; align-items:center }

/* == Paleta do brandbook em equilibrio (direcao, 19/10/2026) ==========
   "Ficou tudo muito preto, rosa e branco": o Charcoal sai das areas grandes
   e as dobras alternam tres tintas suaves (rosa, menta e areia) no lugar do
   bloco preto. Charcoal fica para texto; Mary Pink chama; Mint Leaf aparece
   em barra, icone e marcador; Soft Sand aquece. */
.menta{ background:var(--menta-claro) }
.areia{ background:var(--areia) }
.faixa-serv svg{ background:var(--menta-claro); border-radius:50%; padding:10px; width:68px; height:68px; stroke:var(--mint-escuro) }
.cta-linha a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--rose); text-decoration-thickness:2px; text-underline-offset:5px }
.cta-linha a:hover{ color:var(--rose-texto) }
.cidades li a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--mint); text-decoration-thickness:2px; text-underline-offset:4px }
.scard{ border-top:4px solid var(--mint) }
.scard a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--rose); text-decoration-thickness:2px; text-underline-offset:5px }
.finish .ramo{ width:52px }
.finish .tres li{ background:var(--papel); border-radius:var(--raio); padding:28px 26px 26px; box-shadow:0 10px 30px rgba(22,21,21,.05) }
.preco h2 em{ color:var(--mint-escuro) }

/* == Home v3 (direcao, 19/10/2026): a Home vende primeiro ==============
   "Com cara de About Us": os servicos sobem para a 3a dobra, a dobra longa
   do detalhe vira quatro razoes curtas e a historia da Maria fica compacta. */
header.site nav a[aria-current="page"]{ color:var(--rose-texto) }
.razoes{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; margin-top:36px }
.razoes article{ background:var(--papel); border-radius:var(--raio); padding:26px 22px; border-top:4px solid var(--rose); box-shadow:0 10px 30px rgba(22,21,21,.05) }
.razoes article:nth-child(even){ border-top-color:var(--mint) }
.razoes h3{ font-size:1.12rem }
.razoes p{ font-size:.97rem; margin:0 }
.finish .intro{ text-align:center; max-width:640px; margin:0 auto }
.finish .tres li{ padding:0; overflow:hidden }
.finish .tres li img{ width:100%; aspect-ratio:4/3; object-fit:cover }
.finish .tres .tx{ padding:22px 24px 26px; position:relative }
.finish .tres .n{ position:absolute; top:-38px; right:20px; width:64px; height:64px; border-radius:50%; background:var(--papel); display:flex; align-items:center; justify-content:center; font-size:2.6rem; margin:0; box-shadow:0 6px 18px rgba(22,21,21,.10) }
.maria-grid{ display:grid; grid-template-columns:260px 1fr; gap:48px; align-items:center; max-width:1000px }
.slot-foto.mini{ aspect-ratio:1/1; padding:20px }
@media (max-width:1100px){ .razoes{ grid-template-columns:1fr 1fr } }
@media (max-width:700px){
  .razoes{ grid-template-columns:1fr }
  .maria-grid{ grid-template-columns:1fr; gap:24px }
  .slot-foto.mini{ max-width:220px }
  .finish .tres .n{ width:56px; height:56px; font-size:2.2rem; top:-32px }
}

.porque .abre{ max-width:860px; margin:0 auto; text-align:center }

/* == Formulario do hero em VIDRO CLARO (direcao, 19/10/2026) ===========
   Referencia: o vidro da MTD Tile & Design, adaptado ao hero luminoso:
   translucido com desfoque, a sala aparece atras, borda fina clara e campos
   semibrancos. O botao rosa continua sendo o unico ponto forte de cor. */
.fcard{ background:rgba(255,249,246,.42); border-top:0; border:1px solid rgba(255,255,255,.75);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 24px 60px rgba(22,21,21,.16) }
.fcard input,.fcard select,.fcard textarea{ background:rgba(255,255,255,.72); border-color:rgba(255,255,255,.9) }
@media (max-width:700px){
  /* no celular o veu do hero e' quase opaco: sem foto atras, o vidro vira cartao claro */
  .fcard{ background:rgba(255,255,255,.7); border-color:#F3E6E0 }
  .fcard input,.fcard select,.fcard textarea{ background:#fff; border-color:#E6DAD4 }
}

/* == Home v4 (direcao, 19/10/2026) ==================================== */
/* cabecalho: telefone abaixo do botao */
.cta-pilha{ display:flex; flex-direction:column; align-items:center; gap:2px }
.head-fone{ display:inline-flex; align-items:center; gap:6px; min-height:36px; color:var(--ink); font-weight:700; font-size:.9rem; text-decoration:none }
.head-fone .i{ width:15px; height:15px; fill:var(--rose-texto) }
.head-fone:hover{ color:var(--rose-texto) }
header.site .wrap{ min-height:104px }
/* por que nos: lista editorial */
.porque-grid{ display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:64px; align-items:start }
.porque-abre h2{ text-align:left }
.porque-abre .lead{ font-size:1.05rem }
.frase-maria{ font-size:2rem; line-height:1.2; color:var(--rose-texto); margin:22px 0 4px }
.assina{ font-weight:700; color:var(--ink); font-size:.9rem; letter-spacing:.04em }
.razoes-lista{ list-style:none; margin:0; padding:0 }
.razoes-lista li{ display:grid; grid-template-columns:64px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid var(--linha) }
.razoes-lista li:first-child{ padding-top:4px }
.razoes-lista li:last-child{ border-bottom:0 }
.ri{ width:58px; height:58px; border-radius:50%; background:var(--blush); display:flex; align-items:center; justify-content:center }
.razoes-lista li:nth-child(even) .ri{ background:var(--menta-claro) }
.ri svg{ width:30px; height:30px; fill:none; stroke:var(--ink); stroke-width:2; stroke-linecap:round; stroke-linejoin:round }
.razoes-lista h3{ font-size:1.15rem; margin-bottom:.3em }
.razoes-lista p{ margin:0; font-size:.98rem }
/* cidades em pilulas */
.pilulas{ columns:auto !important; display:flex; flex-wrap:wrap; gap:10px; margin:20px 0 22px !important }
.pilulas li{ padding:0 !important }
.pilulas a,.pilulas span{ display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:0 16px; border-radius:999px; font-weight:600; font-size:.95rem; text-decoration:none !important; margin:0 !important }
.pilulas span{ background:var(--papel); border:1px solid var(--linha); color:var(--ink-2) }
.pilulas a{ background:var(--blush); color:var(--ink) !important; border:1px solid #F6C9D4 }
.pilulas a::before{ content:''; width:8px; height:8px; border-radius:50%; background:var(--rose) }
.pilulas a:hover{ background:var(--rose) }
.pilulas .mais span{ background:transparent; border:1px dashed var(--sand) }
/* avaliacoes do Google: espaco reservado do widget */
.slot-widget{ max-width:900px; margin:30px auto 0; border:2px dashed #F6C9D4; border-radius:var(--raio); background:var(--papel); padding:40px 30px; text-align:center }
.slot-widget .estrelas{ font-size:1.8rem; color:#A86F1E; letter-spacing:6px; margin-bottom:10px }
.slot-widget p{ margin:0; font:700 .9rem/1.5 var(--sans); letter-spacing:.06em; color:var(--ink) }
.slot-widget span{ display:block; font-weight:400; letter-spacing:0; color:var(--ink-2); margin-top:6px }
/* rodape: telefone em botao de outra cor */
.f-fone{ display:inline-flex; align-items:center; gap:9px; min-height:46px; padding:0 20px; margin:10px 0 4px; border-radius:999px; background:var(--mint); color:var(--ink); font-weight:700; text-decoration:none }
.f-fone .i{ width:17px; height:17px; fill:var(--ink) }
.f-fone:hover{ background:#6AAE70 }
@media (max-width:1100px){ .porque-grid{ grid-template-columns:1fr; gap:30px } }
@media (max-width:700px){
  .cta-pilha{ display:none }
  .frase-maria{ font-size:1.6rem }
  .razoes-lista li{ grid-template-columns:52px 1fr; gap:14px }
  .ri{ width:50px; height:50px }
}
.cidades .pilulas li a{ padding:0 16px !important; margin:0 !important; min-height:44px }
.hero-txt .lede{ text-align:left }
.cidades .pilulas li a{ display:inline-flex !important; align-items:center; gap:7px }
/* Texto da 1a dobra JUSTIFICADO, padrao de todo site (direcao, 19/10/2026).
   Sem hifenizacao: a coluna tem ~75 caracteres e justifica limpo. No celular a
   coluna cai para ~40 caracteres e a justificacao abre buraco entre palavras,
   entao ali o texto volta a alinhar a esquerda. */
.hero-txt .lede{ text-align:justify; hyphens:none }
@media (max-width:700px){ .hero-txt .lede{ text-align:left } }

/* == Celular v2 (direcao, 19/10/2026): a pagina estava certa e LONGA ==========
   Nada quebrava, mas a Home tinha ~16.000px a 390px. Os maiores ofensores eram
   os cinco cartoes de servico com foto cheia empilhados e o rodape em uma coluna. */
@media (max-width:700px){
  /* cartoes de servico: horizontais compactos, miniatura a esquerda */
  .servicos{ gap:14px; margin-top:26px }
  .scard{ grid-template-columns:104px 1fr; border-top-width:3px }
  .scard img{ aspect-ratio:auto; height:100%; min-height:132px }
  .scard .txt{ padding:14px 16px 10px }
  .scard h3{ font-size:1.05rem; margin-bottom:.25em }
  .scard p{ font-size:.92rem; line-height:1.5; margin-bottom:.2em }
  .scard a{ font-size:.92rem; min-height:44px; display:inline-flex; align-items:center; padding:0 }
  /* Finish: foto mais baixa */
  .finish .tres li img{ aspect-ratio:16/9 }
  .finish .tres{ gap:20px; margin-top:28px }
  /* a Maria: foto reservada e texto lado a lado */
  .maria-grid{ grid-template-columns:110px 1fr; gap:18px; align-items:start }
  .slot-foto.mini{ max-width:none; padding:10px; gap:6px }
  .slot-foto.mini img{ width:28px }
  .slot-foto.mini p{ font-size:.66rem; letter-spacing:.04em }
  .slot-foto.mini span{ display:none }
  .maria h2{ font-size:1.45rem }
  /* cidades: pilulas mais justas */
  .pilulas{ gap:8px }
  .pilulas a,.pilulas span,.cidades .pilulas li a{ padding:0 13px !important; font-size:.9rem }
  .mapa{ aspect-ratio:16/11 }
  /* rodape: Services e Company lado a lado */
  footer.site .cols{ grid-template-columns:1fr 1fr; gap:28px 18px }
  footer.site .cols > div:first-child, footer.site .cols > div:nth-child(2){ grid-column:1 / -1 }
  footer.site li a{ font-size:.92rem }
  .f-logo img{ width:220px }
}
/* e-mail do rodape numa linha so (direcao, 19/10/2026): sem ponto de quebra,
   e a coluna Contact ganha largura para caber sem encolher a letra demais */
.f-contato a[href^="mailto"]{ white-space:nowrap; font-size:.95rem }
footer.site .cols{ grid-template-columns:1.2fr 1.25fr 1fr 1fr }
.f-fone{ margin-top:16px }
@media (max-width:1100px){ footer.site .cols{ grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) } }
@media (max-width:700px){ footer.site .cols{ grid-template-columns:1fr 1fr } }

/* == Celular v3 (direcao, 19/10/2026) ================================== */
.fone-mob{ display:none }
.porque .lead, .razoes-lista p{ text-align:justify; hyphens:none }
@media (max-width:700px){
  /* texto da 1a dobra justificado tambem no celular: padrao de todo site */
  .hero-txt .lede{ text-align:justify }
  /* barra: tres selos, cabem a 360px */
  .authbar .selos{ gap:12px; font-size:.74rem; flex-wrap:nowrap }
  .authbar .selos img{ width:12px }
  .authbar .selos span{ gap:5px }
  /* cabecalho: logo menor, telefone a direita do menu */
  .logo img{ height:58px }
  header.site .wrap{ min-height:80px }
  .head-cta{ gap:6px }
  .fone-mob{ display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%; background:var(--rose); color:var(--ink) }
  .fone-mob svg{ width:20px; height:20px; fill:currentColor }
  /* o formulario segue o vidro do desktop: o veu abre na altura do formulario */
  .hero-bg::after{ background:linear-gradient(180deg, rgba(255,249,246,.96) 0%, rgba(255,249,246,.94) 42%, rgba(255,249,246,.5) 62%, rgba(255,249,246,.3) 100%) }
  .fcard{ background:rgba(255,249,246,.42); border:1px solid rgba(255,255,255,.75); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px) }
  .fcard input,.fcard select,.fcard textarea{ background:rgba(255,255,255,.72); border-color:rgba(255,255,255,.9) }
  /* cartoes de servico: foto mais larga, texto mais estreito */
  .scard{ grid-template-columns:42% 1fr }
  .scard .txt{ padding:14px 14px 10px }
  /* a Maria: espaco da foto grande, acima do texto */
  .maria-grid{ grid-template-columns:1fr; gap:22px }
  .slot-foto.mini{ aspect-ratio:4/3; padding:24px; gap:10px }
  .slot-foto.mini img{ width:44px }
  .slot-foto.mini p{ font-size:.82rem; letter-spacing:.06em }
  .slot-foto.mini span{ display:block }
}
@media (max-width:700px){
  /* link do cartao: texto corrido com a seta grudada, nunca seta solta na direita */
  .scard a{ display:inline-block; padding:12px 0; min-height:0; font-size:.88rem; line-height:1.35 }
}
@media (max-width:700px){ .scard{ grid-template-columns:40% 1fr } .scard a{ padding:13px 0 } }

/* celular: telefone ESCRITO e clicavel a esquerda do menu (direcao, 19/10/2026),
   nao bolinha a direita. A logo encolhe para os tres caberem a 360px. */
@media (max-width:700px){
  .fone-mob{ display:inline-flex; width:auto; height:44px; border-radius:0; background:none; color:var(--ink); gap:5px; font:700 .84rem/1 var(--sans); white-space:nowrap; text-decoration:none; padding:0 2px }
  .fone-mob svg{ width:14px; height:14px; fill:var(--rose-texto) }
  .logo img{ height:44px }
  .head-cta{ gap:2px }
}
@media (max-width:370px){ .logo img{ height:40px } .fone-mob{ font-size:.8rem } }
@media (max-width:700px){ header.site .logo{ display:inline-flex; align-items:center; min-height:48px } }
/* telefone do CABECALHO no celular com impacto (direcao, 19/10/2026): maior,
   negrito forte na cor da marca, icone em circulo rosa. A logo cede espaco. */
@media (max-width:700px){
  .fone-mob{ font:800 clamp(.92rem, 4.3vw, 1.08rem)/1 var(--sans); color:var(--rose-texto); gap:6px }
  .fone-mob svg{ width:24px; height:24px; padding:5px; border-radius:50%; background:var(--rose); fill:var(--ink); box-sizing:border-box; flex:none }
  .logo img{ height:clamp(34px, 10.5vw, 46px) }
  header.site .wrap{ gap:8px }
}
@media (max-width:370px){ .logo img{ height:34px } .fone-mob{ font-size:.9rem } }

/* abaixo de 160px de largura a assinatura do letreiro fica ilegivel (Branding,
   Secao 8): no celular o cabecalho usa so "MaryMint" com a folha, extraido dos
   vetores do arquivo mestre. O letreiro completo segue no desktop. */
@media (max-width:700px){ .logo img{ height:clamp(26px, 8.2vw, 36px); max-width:none } }
@media (max-width:700px){
  header.site .logo{ flex:1 1 auto; min-width:0 }
  header.site .logo picture{ display:block; width:100% }
  .logo img{ width:100%; max-width:170px; height:auto; max-height:none }
  .head-cta{ flex:none }
}

/* ══ About Us (19/10/2026) ═══════════════════════════════════════════
   Hero centrado sem formulario, coluna de leitura, regra da Maria em
   serifa, valores com folha, faixa do nome com o logo completo.        */
.hero-centro .hero-bg::after{ background:linear-gradient(180deg, rgba(255,249,246,.90) 0%, rgba(255,249,246,.84) 55%, rgba(255,249,246,.72) 100%) }
.hero-centro .wrap{ display:block; max-width:900px; text-align:center; padding-top:96px; padding-bottom:104px }
.hero-centro h1{ margin-bottom:.4em }
.sub-about{ max-width:700px; margin:0 auto; font-size:1.15rem; color:var(--ink); text-align:justify; text-align-last:center; hyphens:none }
.hero-centro .botoes{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:30px }
.sobre .slot-foto p{ text-align:center }
.leitura{ max-width:720px }
.sem-foto{ padding:64px 0 }
.fecho{ font-weight:600; color:var(--ink) }
.foto-dobra{ margin:0 }
.foto-dobra img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--raio) }
p.regra{ font-size:clamp(1.6rem,2.4vw,2.1rem); line-height:1.25; color:var(--rose-texto); text-align:left !important; margin:22px 0 0 }
.centro{ text-align:center }
.valores{ list-style:none; margin:34px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px }
.valores li{ background:var(--papel); border-radius:var(--raio); padding:30px 28px; border:1px solid #D9EBDB }
.valores img{ width:28px; margin-bottom:14px }
.valores p{ margin:0; text-align:justify; hyphens:none }
.nome{ padding:72px 0 }
.logo-completo{ width:240px; margin:0 auto 26px }
.nome .lead{ text-align:justify; text-align-last:center; hyphens:none }
.centro-pil{ justify-content:center; list-style:none; padding:0 }
@media (max-width:1100px){ .valores{ grid-template-columns:1fr } }
@media (max-width:700px){
  .hero-centro .wrap{ padding-top:56px; padding-bottom:64px }
  .hero-centro .hero-bg::after{ background:linear-gradient(180deg, rgba(255,249,246,.93) 0%, rgba(255,249,246,.88) 100%) }
  .sub-about{ font-size:1.04rem }
  .hero-centro .botoes .btn{ flex:1 1 100% }
  .sobre p, .nome .lead{ text-align:justify; hyphens:none }
  .sobre .slot-foto p{ text-align:center }
  .sobre .slot-foto{ aspect-ratio:4/5 }
  .sobre .lead{ font-size:1.02rem }
  .sem-foto{ padding:52px 0 }
  .valores li{ padding:24px 22px }
}
/* About · dobra 3 em capitulos (19/10/2026) */
.capitulos{ list-style:none; margin:38px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; counter-reset:none }
.capitulos li{ background:var(--papel); border-radius:var(--raio); padding:30px 28px 28px; box-shadow:0 1px 0 rgba(22,21,21,.04), 0 10px 28px rgba(160,110,60,.08) }
.capitulos .marco{ margin:0 0 6px; font-size:2.6rem; line-height:1; color:var(--rose-texto) }
.capitulos h3{ font-size:1.12rem; margin:0 0 .55em }
.capitulos li > p:last-child{ margin:0; text-align:justify; hyphens:none }
.fecho-frase{ max-width:760px; margin:44px auto 0; text-align:center; font-size:clamp(1.45rem,2.2vw,1.95rem); line-height:1.3; color:var(--ink) }
.trajetoria .cta-linha{ margin-top:18px }
@media (max-width:1100px){ .capitulos{ grid-template-columns:1fr; max-width:680px; margin-left:auto; margin-right:auto } }
@media (max-width:700px){
  .trajetoria{ padding:56px 0 }
  .capitulos{ gap:14px; margin-top:28px }
  .capitulos li{ display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:14px; align-items:baseline; padding:22px 22px }
  .capitulos .marco{ font-size:1.9rem; margin:0 }
  .capitulos h3{ font-size:1.04rem; margin:0 }
  .capitulos li > p:last-child{ grid-column:1 / -1; margin-top:10px }
  .capitulos li > p:last-child{ font-size:.97rem; line-height:1.6 }
  .fecho-frase{ margin-top:32px; font-size:1.35rem }
}

/* ══ Get a Free Quote e Gallery (19/10/2026) ═══════════════════════ */
.botoes-centro{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:26px }
.fecho-faixa{ padding:72px 0 }
.fecho-regra{ font-size:clamp(1.5rem,2.3vw,2rem); line-height:1.25; color:var(--rose-texto); margin:8px 0 0 }

/* quote · dobra 1 */
.orc-topo{ padding:60px 0 64px }
.orc-abre{ max-width:820px; margin:0 auto 34px; text-align:center }
.orc-abre .lead{ text-align:justify; text-align-last:center; hyphens:none; margin:0 }
.orc-grade{ display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:28px; align-items:start }
.orc-form{ background:var(--papel); border-radius:var(--raio); padding:30px 32px 28px; border:1px solid var(--linha); box-shadow:0 18px 48px rgba(22,21,21,.07) }
.orc-form fieldset{ border:0; margin:0 0 6px; padding:0 }
.orc-form fieldset + fieldset{ margin-top:20px; padding-top:22px; border-top:1px dashed var(--linha) }
.orc-form legend{ padding:0; margin-bottom:4px; font:800 1.12rem/1.3 var(--sans); color:var(--ink) }
.orc-campos{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 16px }
.orc-campos .larga{ grid-column:1 / -1 }
.orc-form label{ display:block; font-weight:600; font-size:.88rem; color:var(--ink); margin:14px 0 6px }
.orc-form input,.orc-form select,.orc-form textarea{ width:100%; min-height:48px; padding:11px 14px; border:1px solid #E2D7D1; border-radius:10px; background:var(--linen); font:400 1rem/1.4 var(--sans); color:var(--ink) }
.orc-form textarea{ min-height:96px; resize:vertical }
.orc-form textarea::placeholder{ color:#7A7472 }
.orc-form input:focus,.orc-form select:focus,.orc-form textarea:focus{ outline:3px solid rgba(240,94,128,.4); outline-offset:1px; border-color:var(--rose-texto); background:#fff }
.orc-consent{ font-size:.86rem; line-height:1.55; color:var(--ink-2); margin:22px 0 0 }
.orc-form .btn{ width:100%; min-height:54px; margin-top:16px; font-size:1.02rem }
.orc-lado{ background:var(--menta-claro); border-radius:var(--raio); padding:30px 28px; position:sticky; top:20px }
.orc-lado h2{ font-size:1.35rem; margin:0 }
.orc-fone{ font-size:1.12rem; margin:14px 0 18px }
.orc-lado dl{ margin:0 }
.orc-lado dl div{ padding:12px 0; border-top:1px solid #D3E6D5 }
.orc-lado dt{ font-weight:700; font-size:.86rem; color:var(--mint-escuro) }
.orc-lado dd{ margin:2px 0 0; color:var(--ink) }
.orc-lado dd a{ color:var(--ink); white-space:nowrap; display:inline-flex; align-items:center; min-height:44px }
.orc-folha{ width:40px; margin:20px 0 6px }
.orc-regra{ font-size:1.4rem; line-height:1.3; color:var(--rose-texto); margin:0 }

/* quote · dobras 2 a 4 */
.orc-passos{ list-style:none; margin:36px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px }
.orc-passos li{ text-align:center; padding:0 10px }
.orc-passos .n{ display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:var(--blush); color:var(--rose-texto); font:800 1.4rem/1 var(--sans); margin-bottom:14px }
.orc-passos h3{ font-size:1.15rem }
.orc-passos p{ margin:0 }
.orc-nota{ max-width:820px; margin:34px auto 0; padding:20px 24px; background:var(--areia); border-radius:var(--raio); text-align:justify; hyphens:none }
.orc-porque{ list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:18px }
.orc-porque li{ display:flex; gap:16px; align-items:flex-start; background:var(--papel); border-radius:var(--raio); padding:24px 24px 22px; border:1px solid #D9EBDB }
.orc-porque img{ width:28px; flex:none; margin-top:3px }
.orc-porque h3{ font-size:1.08rem; margin:0 0 .35em }
.orc-porque p{ margin:0; text-align:justify; hyphens:none }
.orc-extra{ max-width:720px; margin:26px auto 0 }
.orc-area{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:center }
.orc-mapa iframe{ display:block; width:100%; aspect-ratio:4/3; border:0; border-radius:var(--raio); background:var(--areia) }

/* gallery */
.gal-topo{ padding:72px 0 56px }
.gal-texto{ max-width:760px; margin:18px auto 0; text-align:justify; text-align-last:center; hyphens:none }
.gal-corpo{ padding:48px 0 72px }
.gal-filtro{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px }
.gal-filtro button{ min-height:44px; padding:0 18px; border-radius:999px; border:0; box-shadow:inset 0 0 0 2px var(--ink); background:transparent; color:var(--ink); font:600 .95rem/1 var(--sans); cursor:pointer }
.gal-filtro button:hover{ background:var(--blush) }
.gal-filtro button[aria-pressed="true"]{ background:var(--rose); box-shadow:none }
.gal-filtro button:focus-visible{ outline:3px solid var(--rose-texto); outline-offset:2px }
.gal-grade{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:30px }
.gal-grade:empty{ display:none }
.gal-item{ margin:0 }
.gal-item img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--raio) }

@media (max-width:1100px){
  .orc-grade{ grid-template-columns:1fr }
  .orc-lado{ position:static }
  .orc-area{ grid-template-columns:1fr; gap:30px }
  .gal-grade{ grid-template-columns:1fr 1fr }
}
@media (max-width:700px){
  .orc-topo{ padding:40px 0 48px }
  .orc-abre{ margin-bottom:24px }
  .orc-abre .lead{ font-size:1.02rem }
  .orc-form{ padding:22px 18px 22px }
  .orc-campos{ grid-template-columns:1fr 1fr; gap:0 12px; align-items:end }
  .orc-campos > div{ grid-column:1 / -1 }
  .orc-campos > div.par{ grid-column:auto }
  .orc-form label{ font-size:.84rem }
  .orc-lado{ padding:24px 20px }
  .orc-passos{ grid-template-columns:1fr; gap:22px }
  .orc-passos li{ display:grid; grid-template-columns:48px minmax(0,1fr); column-gap:16px; text-align:left; padding:0 }
  .orc-passos .n{ width:48px; height:48px; font-size:1.2rem; grid-row:1 / span 2; margin:0 }
  .orc-passos h3{ margin:4px 0 .3em }
  .orc-nota{ padding:18px 18px }
  .orc-porque{ grid-template-columns:1fr; gap:12px }
  .orc-porque li{ padding:20px 18px }
  .gal-topo{ padding:48px 0 40px }
  .gal-texto{ font-size:.98rem }
  .gal-filtro{ gap:8px }
  .gal-filtro button{ padding:0 14px; font-size:.9rem }
  .fecho-faixa{ padding:56px 0 }
  .botoes-centro .btn{ flex:1 1 100% }
}
.pilulas{ list-style:none; padding-left:0 }
/* gallery · espaco reservado das fotos reais (sem mensagem ao visitante) */
.gal-slot{ aspect-ratio:4/5; border:2px dashed var(--sand); border-radius:var(--raio); background:var(--areia); display:flex; align-items:center; justify-content:center; text-align:center; padding:20px }
.gal-slot[hidden]{ display:none }
.gal-slot p{ margin:0; font:700 .8rem/1.5 var(--sans); letter-spacing:.06em; color:var(--ink) }
.gal-slot span{ display:block; font-weight:400; letter-spacing:0; color:var(--ink-2); margin-top:4px }
@media (max-width:700px){ .gal-grade{ gap:10px; margin-top:22px } .gal-slot{ padding:10px } .gal-slot p{ font-size:.7rem } }
/* quote · redes na coluna de contato e quatro passos */
.orc-redes{ display:flex; flex-wrap:wrap; gap:6px 18px }
.orc-redes a{ display:inline-flex; align-items:center; gap:8px; min-height:44px; color:var(--ink); font-weight:600; text-decoration:none }
.orc-redes a:hover{ color:var(--rose-texto) }
.orc-redes .i{ width:30px; height:30px; padding:7px; border-radius:50%; background:var(--mint); fill:var(--ink) }
.orc-passos{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px }
@media (max-width:1100px){ .orc-passos{ grid-template-columns:1fr 1fr } }
@media (max-width:700px){ .orc-passos{ grid-template-columns:1fr } }
.fcard .consent{ font-size:.78rem; line-height:1.5; color:var(--ink-2); margin:16px 0 0 } .fcard .consent a{ color:var(--rose-texto) } .fcard .consent + .btn{ margin-top:12px }

/* ══ Paginas de servico (19/10/2026) ═══════════════════════════════════
   Hero de servico com veu da marca so onde ha texto e formulario invertido
   (Charcoal), mais as dobras proprias de cada servico.                   */
.svc-hero{ position:relative; overflow:hidden; background:var(--linen) }
.svc-bg{ position:absolute; inset:0; background:var(--hero-img) center/cover no-repeat }
.svc-bg::after{ content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(255,249,246,.97) 0%, rgba(253,238,241,.93) 40%, rgba(253,238,241,.55) 58%, rgba(253,238,241,.08) 100%) }
.svc-grade{ position:relative; display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr); grid-template-areas:"abre form" "resp form"; gap:18px 60px; align-items:start; padding-top:60px; padding-bottom:68px }
.svc-abre{ grid-area:abre }
.svc-abre h1{ font-size:clamp(2rem,3.2vw,2.85rem) }
.ancora{ font-size:1.42rem; line-height:1.35; color:var(--rose-texto); margin:0 }
.svc-resposta{ grid-area:resp }
.svc-resposta p{ color:var(--ink); text-align:justify; hyphens:none; margin:0 }
.svc-resposta .botoes{ margin-top:22px }
.svc-form{ grid-area:form; background:var(--ink); color:var(--linen); border-radius:var(--raio); padding:28px 28px 24px; box-shadow:0 24px 60px rgba(22,21,21,.22) }
.svc-form h2{ color:var(--linen); font-size:1.6rem; margin-bottom:.2em }
.svc-form label{ display:block; font-weight:600; font-size:.86rem; color:var(--linen); margin:12px 0 5px }
.svc-form .obr{ color:#FF9DB5 }
.svc-form input,.svc-form select,.svc-form textarea{ width:100%; min-height:46px; padding:10px 13px; border:1px solid #3A3636; border-radius:10px; background:#FFF9F6; font:400 .98rem/1.4 var(--sans); color:var(--ink) }
.svc-form textarea{ min-height:64px; resize:vertical }
.svc-form input:focus,.svc-form select:focus,.svc-form textarea:focus{ outline:3px solid rgba(255,157,181,.7); outline-offset:1px }
.svc-form .row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px }
.svc-form .consent{ font-size:.78rem; line-height:1.5; color:#DDD6D2; margin:16px 0 0 }
.svc-form .consent a{ color:#FFB3C6 }
.svc-form .btn{ width:100%; margin-top:14px; min-height:52px }
.svc-curta{ padding:60px 0 }

/* comodos, destaque e caixa de resposta */
.svc-comodos{ list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:16px }
.svc-comodos li{ display:flex; gap:16px; align-items:flex-start; background:var(--linen); border:1px solid var(--linha); border-radius:var(--raio); padding:22px 24px }
.menta .svc-comodos li{ background:var(--papel); border-color:#D9EBDB }
.svc-comodos img{ width:28px; flex:none; margin-top:3px }
.svc-comodos h3{ font-size:1.08rem; margin:0 0 .3em }
.svc-comodos p{ margin:0; text-align:justify; hyphens:none }
.svc-destaque{ max-width:860px; margin:22px auto 0; padding:16px 22px; border-radius:var(--raio); background:var(--menta-claro); color:var(--ink); text-align:center }
.menta .svc-destaque{ background:var(--papel) }
.svc-resp-caixa{ background:var(--papel); border-radius:var(--raio); padding:34px 38px; box-shadow:0 14px 40px rgba(22,21,21,.06) }
.svc-resp-caixa .cta-linha{ margin-top:14px }

/* recurring · calendarios */
.cals{ display:grid; grid-template-columns:1fr 1fr; gap:28px; max-width:980px; margin:34px auto 0 }
.cal{ background:var(--papel); border-radius:var(--raio); padding:26px 26px 22px; box-shadow:0 12px 34px rgba(185,45,83,.07) }
.cal h3{ font-size:1.2rem; margin:0 0 14px }
.cal-grade{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; margin-bottom:16px }
.cal-grade > span{ display:flex; align-items:center; justify-content:center; aspect-ratio:1; font-size:.85rem; color:var(--ink-2); border-radius:8px; background:var(--linen) }
.cal-grade .dsem{ background:transparent; font-weight:700; color:var(--mint-escuro); font-size:.78rem }
.cal-grade .vazio{ background:transparent }
.cal-grade .visita{ background:var(--rose); color:var(--ink); font-weight:800; border-radius:50% }
.cal p{ margin:0; text-align:justify; hyphens:none }
.svc-depois{ margin-top:30px }

/* recurring · prova */
.svc-prova{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:56px; align-items:center }
.numeros p{ margin:0 0 26px }
.numeros strong{ display:block; font:800 clamp(3.2rem,5.4vw,4.6rem)/1 var(--sans); color:var(--rose-texto); letter-spacing:-.02em }
.numeros span{ display:block; margin-top:8px; color:var(--ink); font-weight:600 }

/* deep · comparativo */
.cmp{ max-width:1040px; margin:30px auto 0; background:var(--papel); border-radius:var(--raio); overflow:hidden; border:1px solid var(--linha) }
.cmp-linha{ display:grid; grid-template-columns:170px minmax(0,1fr) minmax(0,1fr) }
.cmp-linha + .cmp-linha{ border-top:1px solid var(--linha) }
.cmp-linha p{ margin:0; padding:16px 20px }
.cmp-comodo{ font-weight:800; color:var(--ink) }
.cmp-deep{ background:var(--blush) }
.cmp-topo p{ font-weight:800; color:var(--ink); background:var(--linen) }
.cmp-topo .cmp-deep{ background:#FAD9E1; color:var(--rose-texto) }
.cmp-rot{ display:none }

/* deep · incluido, adicionais, situacoes */
.svc-teste{ background:var(--papel); border-radius:var(--raio); padding:36px 34px; text-align:center }
.svc-teste img{ width:34px; margin:0 auto 12px }
.svc-teste .impacto{ font-size:1.7rem; line-height:1.3; color:var(--rose-texto); margin:0 0 10px; text-align:center !important }
.svc-teste-pe{ font-size:.95rem; margin:8px 0 0; text-align:center !important }
.svc-adicionais{ list-style:none; margin:30px 0 26px; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px }
.svc-adicionais li{ background:var(--papel); border:1px solid var(--linha); border-radius:var(--raio); padding:24px 18px; text-align:center }
.ad-ico svg{ width:46px; height:46px; fill:none; stroke:var(--mint-escuro); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; margin:0 auto 10px; display:block }
.svc-adicionais h3{ font-size:1.02rem; margin:0 0 10px }
.ad-tag{ display:inline-block; padding:5px 12px; border-radius:999px; background:var(--blush); color:var(--rose-texto); font-size:.8rem; font-weight:700 }
.svc-situacoes{ list-style:none; margin:32px auto 0; padding:0; max-width:1040px; display:grid; grid-template-columns:1fr 1fr; gap:22px 40px }
.svc-situacoes li{ display:flex; gap:18px; align-items:flex-start }
.sit-n{ font:800 2.3rem/1 var(--sans); color:var(--rose-texto); flex:none; min-width:52px }
.svc-situacoes p{ margin:0; text-align:justify; hyphens:none }

/* move · linha do tempo e quem indica */
.lt{ list-style:none; margin:40px auto 0; padding:0; max-width:1040px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px; position:relative }
.lt::before{ content:''; position:absolute; top:32px; left:16.6%; right:16.6%; height:1px; background:var(--ink) }
.lt li{ position:relative; text-align:center }
.lt-n{ position:relative; display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:50%; background:var(--areia); border:1px solid var(--ink); font:800 1.9rem/1 var(--sans); color:var(--rose-texto) }
.lt-ico svg{ display:block; width:30px; height:30px; margin:14px auto 8px; fill:none; stroke:var(--ink); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round }
.lt h3{ font-size:1.12rem; margin:0 0 .35em }
.lt p{ margin:0 }
.svc-indica{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:56px; align-items:center }
.indica-lista{ list-style:none; margin:0; padding:26px 30px; background:var(--papel); border-radius:var(--raio); border:1px solid var(--linha) }
.indica-lista li{ position:relative; padding:14px 0 14px 22px; border-bottom:1px solid var(--linha) }
.indica-lista li::before{ content:''; position:absolute; left:0; top:23px; width:9px; height:9px; border-radius:50%; background:var(--rose) }
.indica-lista strong{ display:block; color:var(--ink) }
.indica-lista span{ font-size:.94rem }
.indica-lista .indica-regra{ border-bottom:0; padding:18px 0 4px; font-size:1.4rem; color:var(--rose-texto) }
.indica-lista .indica-regra::before{ display:none }

/* post · camadas e regua */
.camadas{ list-style:none; margin:32px auto 0; padding:0; max-width:960px; border-radius:var(--raio); overflow:hidden; border:1px solid var(--linha) }
.cam{ display:grid; grid-template-columns:180px minmax(0,1fr); gap:24px; padding:26px 30px; align-items:baseline }
.cam-1{ background:#FFFDFB } .cam-2{ background:var(--areia) } .cam-3{ background:#F6DFC2 }
.cam h3{ margin:0; font-size:1.5rem; color:var(--rose-texto) }
.cam p{ margin:0; color:var(--ink); text-align:justify; hyphens:none }
.regua-obra{ list-style:none; margin:30px auto 30px; padding:0; max-width:640px; display:flex; justify-content:space-between; position:relative }
.regua-obra::before{ content:''; position:absolute; top:8px; left:16.6%; right:16.6%; height:1px; background:var(--ink) }
.regua-obra li{ position:relative; display:flex; flex-direction:column; align-items:center; gap:10px; font-weight:700; color:var(--ink); width:33%; text-align:center }
.rg-ponto{ width:17px; height:17px; border-radius:50%; background:var(--mint); border:2px solid var(--linen) }

/* airbnb · turnover e acabamento */
.turnover{ list-style:none; margin:40px 0 0; padding:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:18px; position:relative }
.turnover::before{ content:''; position:absolute; top:9px; left:7%; right:7%; height:1px; background:var(--ink) }
.tv-item{ position:relative; text-align:center }
.tv-marco{ position:relative; display:block; width:19px; height:19px; margin:0 auto 14px; border-radius:50%; background:var(--blush); border:2px solid var(--ink) }
.tv-ponta .tv-marco{ background:var(--rose); border-color:var(--rose) }
.tv-item h3{ font-size:1.04rem; color:var(--rose-texto); margin:0 0 .35em }
.tv-item p{ margin:0; font-size:.94rem; line-height:1.55 }
.acab-folha{ width:52px; margin:0 auto 16px }
.acab-itens{ list-style:none; margin:20px 0 24px; padding:0; display:flex; justify-content:center; flex-wrap:wrap; gap:10px }
.acab-itens li{ padding:10px 18px; border-radius:999px; background:var(--menta-claro); color:var(--ink); font-weight:700 }
.regra.centro{ text-align:center !important }

/* faixa de fotos e CTA final */
.svc-faixa{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:28px }
.svc-faixa .gal-slot{ aspect-ratio:4/3 }
.btn-claro{ background:transparent; color:var(--linen); box-shadow:inset 0 0 0 2px var(--linen) }
.btn-claro:hover{ background:var(--linen); color:var(--ink) }

@media (max-width:1100px){
  .svc-grade{ grid-template-columns:1fr; grid-template-areas:"abre" "form" "resp"; gap:26px }
  .svc-bg::after{ background:linear-gradient(180deg, rgba(255,249,246,.96), rgba(253,238,241,.93)) }
  .svc-prova,.svc-indica{ grid-template-columns:1fr; gap:30px }
  .turnover{ grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:30px }
  .turnover::before{ display:none }
}
@media (max-width:700px){
  .svc-grade{ padding-top:36px; padding-bottom:44px }
  .ancora{ font-size:1.2rem }
  .svc-form{ padding:22px 18px 20px }
  .svc-form .row2{ grid-template-columns:1fr; gap:0 }
  .svc-comodos{ grid-template-columns:1fr; gap:12px }
  .svc-comodos li{ padding:20px 18px }
  .svc-resp-caixa{ padding:26px 20px }
  .cals{ grid-template-columns:1fr; gap:18px }
  .cal{ padding:20px 16px }
  .numeros{ display:flex; gap:24px }
  .numeros p{ margin:0 }
  .cmp{ background:transparent; border:0 }
  .cmp-topo{ display:none !important }
  .cmp-linha{ grid-template-columns:1fr; background:var(--papel); border:1px solid var(--linha) !important; border-radius:var(--raio); overflow:hidden; margin-bottom:12px }
  .cmp-rot{ display:block; font-size:.78rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--mint-escuro); margin-bottom:4px }
  .cmp-deep .cmp-rot{ color:var(--rose-texto) }
  .cmp-comodo{ padding-bottom:4px !important; font-size:1.1rem }
  .svc-adicionais{ grid-template-columns:1fr; gap:10px }
  .svc-adicionais li{ display:grid; grid-template-columns:52px 1fr auto; align-items:center; text-align:left; gap:12px; padding:14px 16px }
  .ad-ico svg{ margin:0; width:38px; height:38px }
  .svc-adicionais h3{ margin:0 }
  .svc-situacoes{ grid-template-columns:1fr; gap:18px }
  .sit-n{ font-size:1.8rem; min-width:40px }
  .lt{ grid-template-columns:1fr; gap:22px; max-width:none }
  .lt::before{ top:32px; bottom:32px; left:32px; right:auto; width:1px; height:auto }
  .lt li{ display:grid; grid-template-columns:64px minmax(0,1fr); column-gap:16px; text-align:left }
  .lt-n{ grid-row:1 / span 3 }
  .lt-ico svg{ margin:4px 0 6px }
  .indica-lista{ padding:18px 20px }
  .cam{ grid-template-columns:1fr; gap:6px; padding:20px 20px }
  .regua-obra li{ font-size:.9rem }
  .turnover{ grid-template-columns:1fr; gap:18px; padding-left:4px }
  .turnover::before{ display:block; top:10px; bottom:10px; left:13px; right:auto; width:1px; height:auto }
  .tv-item{ display:grid; grid-template-columns:28px minmax(0,1fr); column-gap:14px; text-align:left }
  .tv-marco{ grid-row:1 / span 2; margin:2px 0 0 }
  .svc-faixa{ grid-template-columns:1fr 1fr; gap:10px }
  .svc-faixa .gal-slot:nth-child(3){ display:none }
  .svc-teste{ padding:26px 20px }
  .svc-teste .impacto{ font-size:1.4rem }
}
.svc-grade{ grid-template-rows:auto 1fr }
.svc-comodos li:last-child:nth-child(odd){ grid-column:1 / -1 }
@media (max-width:1100px){ .svc-grade{ grid-template-rows:none } }
/* paginas de servico · formulario BRANCO (direcao, 19/10/2026: "deixe o formulario branco, ao inves de preto") */
.svc-form{ background:var(--papel); color:var(--ink); border:1px solid var(--linha); box-shadow:0 24px 60px rgba(22,21,21,.12) }
.svc-form h2{ color:var(--ink) }
.svc-form label{ color:var(--ink) }
.svc-form .obr{ color:var(--rose-texto) }
.svc-form input,.svc-form select,.svc-form textarea{ background:var(--linen); border-color:#E2D7D1 }
.svc-form input:focus,.svc-form select:focus,.svc-form textarea:focus{ outline:3px solid rgba(240,94,128,.4); border-color:var(--rose-texto); background:#fff }
.svc-form .consent{ color:var(--ink-2) }
.svc-form .consent a{ color:var(--rose-texto) }
/* harmonia de quebra (direcao, 19/10/2026: "se atente a quebras de linhas desnecessariamente
   desproporcionais"). Titulo e frase de impacto balanceiam as linhas; paragrafo evita viuva.
   Conferido por checaQuebras() no render-site-qa.js (reprova linha < 45% da mais larga). */
h1,h2,h3,.ancora,.fecho-frase,.regra,.frase,.lead,.sub-about,.orc-regra,.fecho-regra{ text-wrap:balance }
p,li,dd,summary{ text-wrap:pretty }
/* foto da dobra editorial de servico (provisoria de IA ate o acervo da Maria chegar) */
.svc-foto img{ width:100%; aspect-ratio:4/5; object-fit:cover; border-radius:var(--raio) }
/* no celular a quebra forcada depois dos dois-pontos deixa linha curta: o balance decide sozinho */
@media (max-width:700px){ .br-titulo{ display:none } }
/* dobra editorial em tres pecas: texto, visual e link (direcao, 19/10/2026: no celular o link
   fica DEPOIS do card ou da foto, nunca entre o texto e o visual). No desktop o link segue
   embaixo do texto e o conjunto centra na altura do visual. */
.ed3{ display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); grid-template-rows:1fr auto auto 1fr;
  grid-template-areas:". vis" "txt vis" "cta vis" ". vis"; column-gap:64px }
.ed3.inv{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); grid-template-areas:"vis ." "vis txt" "vis cta" "vis ." }
.ed3.svc-indica{ grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); column-gap:56px }
.ed3 .ed-txt{ grid-area:txt }
.ed3 .ed-vis{ grid-area:vis; align-self:center }
.ed3 .ed-cta{ grid-area:cta }
.ed3 .ed-cta .cta-linha{ margin-top:14px }
@media (max-width:1100px){
  .ed3,.ed3.inv,.ed3.svc-indica{ grid-template-columns:1fr; grid-template-rows:none; grid-template-areas:"txt" "vis" "cta"; row-gap:26px }
  .ed3 .ed-cta .cta-linha{ margin-top:0 }
}
/* linha do tempo e regua no celular: o traco liga um marco ao proximo e para no ultimo */
@media (max-width:700px){
  .lt::before{ display:none }
  .lt li:not(:last-child)::after{ content:''; position:absolute; left:32px; top:64px; bottom:-22px; width:1px; background:var(--ink) }
  .turnover::before{ display:none !important }
  .tv-item:not(:last-child)::after{ content:''; position:absolute; left:9px; top:23px; bottom:-18px; width:1px; background:var(--ink) }
}

/* ══ Paginas de localidade (19/10/2026) ═══════════════════════════════
   Hero e formulario das paginas de servico; dobras proprias por cidade. */

/* grade de cinco servicos com icone (Arlington, Irving, Carrollton, Dallas) */
.servicos-grade{ list-style:none; margin:32px auto 0; padding:0; max-width:1100px; display:flex; flex-wrap:wrap; justify-content:center; gap:16px }
.servicos-grade li{ flex:0 1 calc(33.333% - 11px); min-width:260px }
.servicos-grade a{ display:block; height:100%; background:var(--papel); border:1px solid var(--linha); border-radius:var(--raio); padding:24px 22px; text-decoration:none; color:var(--ink-2); transition:border-color .2s, box-shadow .2s }
.servicos-grade a:hover{ border-color:#F6C9D4; box-shadow:0 12px 30px rgba(185,45,83,.08) }
.sg-ico svg{ width:44px; height:44px; fill:none; stroke:var(--ink); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; display:block; margin-bottom:12px }
.sg-ico svg .ac{ stroke:var(--mint-escuro) }
.servicos-grade h3{ font-size:1.08rem; margin:0 0 .35em; color:var(--ink) }
.servicos-grade p{ margin:0; font-size:.96rem }

/* southlake · corte da casa */
.corte{ max-width:920px; margin:30px auto 0 }
.corte-telhado{ display:block; height:64px; margin:0 6%; background:var(--blush); clip-path:polygon(50% 0, 100% 100%, 0 100%) }
.corte-andares{ list-style:none; margin:0; padding:0; border:1.5px solid var(--ink); border-radius:0 0 var(--raio) var(--raio); overflow:hidden; background:var(--papel) }
.corte-andares li{ display:grid; grid-template-columns:200px minmax(0,1fr); gap:24px; align-items:baseline; padding:20px 26px }
.corte-andares li + li{ border-top:1px dashed #CFC6C1 }
.corte-andares h3{ margin:0; font-size:1.12rem; color:var(--rose-texto) }
.corte-andares p{ margin:0; text-align:justify; hyphens:none }

/* keller · comodos numerados afastados */
.casa-comodos{ list-style:none; margin:32px auto 0; padding:0; max-width:1100px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px }
.casa-comodos li{ display:flex; gap:14px; background:var(--linen); border:1px solid var(--linha); border-radius:var(--raio); padding:22px 20px }
.casa-comodos li:nth-child(even){ transform:translateY(14px) }
.cc-n{ font:800 2rem/1 var(--sans); color:var(--rose-texto); min-width:30px }
.casa-comodos h3{ font-size:1.04rem; margin:2px 0 .35em }
.casa-comodos p{ margin:0; font-size:.96rem }

/* colleyville · regua de cuidado */
.regua-cuidado{ list-style:none; margin:42px 0 0; padding:0; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:20px; position:relative; border-top:1.5px solid var(--ink) }
.regua-cuidado li{ position:relative; padding-top:14px }
.rc-marca{ position:absolute; left:0; bottom:100%; width:3px; background:var(--rose); border-radius:2px }
.rc-1 .rc-marca{ height:12px } .rc-2 .rc-marca{ height:20px } .rc-3 .rc-marca{ height:28px } .rc-4 .rc-marca{ height:36px } .rc-5 .rc-marca{ height:44px }
.rc-rot{ margin:0 0 4px; font-weight:800; font-size:.86rem; letter-spacing:.04em; color:var(--rose-texto) }
.regua-cuidado h3{ font-size:1.04rem; margin:0 0 .35em }
.regua-cuidado p{ margin:0; font-size:.95rem }

/* grand prairie e irving · numeros */
.numeros-faixa{ list-style:none; margin:34px 0 0; padding:0; display:grid; gap:22px }
.numeros-faixa.n5{ grid-template-columns:repeat(5,minmax(0,1fr)) }
.numeros-faixa.n4{ grid-template-columns:repeat(4,minmax(0,1fr)) }
.numeros-faixa li{ text-align:center }
.nm-ico svg{ width:42px; height:42px; fill:none; stroke:var(--ink); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; display:block; margin:0 auto 8px }
.nm-ico svg .ac{ stroke:var(--mint-escuro) }
.nm-n{ margin:0; font:800 clamp(2.2rem,3.4vw,3rem)/1.05 var(--sans); color:var(--rose-texto) }
.numeros-faixa h3{ font-size:1rem; margin:6px 0 .4em }
.numeros-faixa p:last-child{ margin:0; font-size:.94rem }

/* recorrente e deep lado a lado */
.dois-blocos{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:30px }
.db-bloco{ background:var(--papel); border-radius:var(--raio); padding:28px 28px 22px; border:1px solid #D9EBDB }
.db-bloco h3{ font-size:1.15rem; margin:0 0 .5em }
.db-bloco .cta-linha{ margin-top:14px }

/* finish curto e bloco com folha */
.finish-curto{ padding:60px 0 }
.finish-curto p{ text-align:justify; text-align-last:center; hyphens:none }
.bloco-folha{ background:var(--papel); border-radius:var(--raio); padding:34px 36px; border:1px solid var(--linha) }
.bloco-folha img{ width:30px; margin-bottom:10px }
.bf-links{ display:flex; flex-wrap:wrap; gap:4px 26px; margin-top:6px }
.bf-links .cta-linha{ margin-top:6px }

/* irving · bairros ao lado do mapa */
.bairro{ padding:12px 0 12px 16px; border-left:3px solid var(--mint) }
.bairro + .bairro{ margin-top:10px }
.bairro h3{ font-size:1.05rem; margin:0 0 .25em }
.bairro p{ margin:0 }

/* arlington · duas casas */
.duas-casas{ display:grid; grid-template-columns:1fr 1fr; margin-top:30px }
.duas-casas > div{ padding:6px 40px }
.duas-casas > div + div{ border-left:1.5px solid var(--mint) }
.dc-ico svg{ width:120px; height:64px; fill:none; stroke:var(--ink); stroke-width:1.6; stroke-linejoin:round; display:block; margin-bottom:14px }
.dc-ico svg .ac{ stroke:var(--mint-escuro) }
.duas-casas h3{ font-size:1.2rem; margin:0 0 .5em }
.dc-fecho{ text-align:center; font-size:1.45rem; color:var(--rose-texto); margin:30px auto 0; max-width:760px }

/* carrollton · percurso */
.percurso{ list-style:none; margin:36px auto 0; padding:0; max-width:900px; position:relative }
.percurso::before{ content:''; position:absolute; top:28px; bottom:28px; left:50%; width:2px; margin-left:-1px; background:var(--mint) }
.percurso li{ position:relative; display:grid; grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr); align-items:start; gap:0 22px }
.percurso li + li{ margin-top:18px }
.pc-n{ grid-column:2; grid-row:1; display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%; background:var(--papel); border:2px solid var(--mint); font:800 1.5rem/1 var(--sans); color:var(--rose-texto); position:relative }
.percurso li > div{ grid-row:1; background:var(--linen); border-radius:var(--raio); padding:18px 20px; border:1px solid var(--linha) }
.percurso li:nth-child(odd) > div{ grid-column:1 }
.percurso li:nth-child(even) > div{ grid-column:3 }
.percurso h3{ font-size:1.06rem; margin:0 0 .3em }
.percurso p{ margin:0; font-size:.96rem }

/* dallas · pastilhas */
.pastilhas{ list-style:none; margin:32px 0 0; padding:0; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px }
.pastilhas li{ background:var(--linen); border:1px solid var(--linha); border-radius:var(--raio); padding:24px 24px 22px }
.pastilhas .larga{ grid-column:span 3 }
.pastilhas .estreita{ grid-column:span 2 }
.pastilhas img{ width:24px; margin-bottom:8px }
.pastilhas h3{ font-size:1.1rem; margin:0 0 .4em }
.pastilhas p{ margin:0; font-size:.96rem }

@media (max-width:1100px){
  .casa-comodos{ grid-template-columns:1fr 1fr }
  .casa-comodos li:nth-child(even){ transform:none }
  .regua-cuidado{ grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:44px }
  .numeros-faixa.n5{ grid-template-columns:repeat(3,minmax(0,1fr)) }
  .numeros-faixa.n4{ grid-template-columns:1fr 1fr }
  .pastilhas{ grid-template-columns:1fr 1fr }
  .pastilhas .larga,.pastilhas .estreita{ grid-column:auto }
}
@media (max-width:700px){
  .servicos-grade li{ flex:1 1 100%; min-width:0 }
  .servicos-grade a{ display:grid; grid-template-columns:44px minmax(0,1fr); column-gap:14px; padding:18px 16px }
  .sg-ico{ grid-row:1 / span 2 }
  .sg-ico svg{ width:38px; height:38px; margin:0 }
  .corte-telhado{ height:40px }
  .corte-andares li{ grid-template-columns:1fr; gap:4px; padding:16px 18px }
  .casa-comodos{ grid-template-columns:1fr; gap:10px }
  .casa-comodos li{ padding:18px 16px }
  .regua-cuidado{ grid-template-columns:1fr; border-top:0; border-left:1.5px solid var(--ink); margin-left:10px; gap:20px; row-gap:20px }
  .regua-cuidado li{ padding:0 0 0 22px }
  .rc-marca{ left:auto; right:100%; bottom:auto; top:4px; height:3px !important; width:12px }
  .rc-2 .rc-marca{ width:16px } .rc-3 .rc-marca{ width:20px } .rc-4 .rc-marca{ width:24px } .rc-5 .rc-marca{ width:28px }
  .numeros-faixa.n5,.numeros-faixa.n4{ grid-template-columns:1fr 1fr; gap:22px 16px }
  .numeros-faixa.n5 li:last-child{ grid-column:1 / -1 }
  .dois-blocos{ grid-template-columns:1fr; gap:14px }
  .db-bloco{ padding:22px 20px 18px }
  .bloco-folha{ padding:24px 20px }
  .duas-casas{ grid-template-columns:1fr; gap:24px }
  .duas-casas > div{ padding:0 }
  .duas-casas > div + div{ border-left:0; border-top:1.5px solid var(--mint); padding-top:24px }
  .dc-fecho{ font-size:1.2rem }
  .percurso::before{ left:28px }
  .percurso li{ grid-template-columns:56px minmax(0,1fr); gap:0 14px }
  .pc-n{ grid-column:1 }
  .percurso li:nth-child(odd) > div,.percurso li:nth-child(even) > div{ grid-column:2 }
  .pastilhas{ grid-template-columns:1fr; gap:12px }
}
.svc-resp-caixa .cta-linha + .cta-linha{ margin-top:0 } .svc-resp-caixa{ display:flow-root } .svc-resp-caixa > .cta-linha{ display:inline-block; margin-right:26px }

/* ══ Linha do tempo: padrao unico (direcao, 19/10/2026: "vc sempre ta deixando uma continuidade
   de linha no ultimo step"). A lista NUNCA desenha a linha inteira (::before). Cada passo desenha
   so o trecho ate o proximo marco (li:not(:last-child)::after) e o ultimo nao desenha nada.
   Conferido por checaLinhaDoTempo() no render-site-qa.js. */
.lt::before,.turnover::before,.percurso::before,.regua-obra::before{ display:none !important; content:none !important }
.lt li,.tv-item,.percurso li,.regua-cuidado li,.regua-obra li{ position:relative }
.lt li:last-child::after,.tv-item:last-child::after,.percurso li:last-child::after,.regua-cuidado li:last-child::after,.regua-obra li:last-child::after{ content:none !important; display:none !important }

/* move · tres marcos (circulo 64px, gap 30px) */
.lt li:not(:last-child)::after{ content:''; position:absolute; top:32px; left:calc(50% + 32px); width:calc(100% + 30px - 64px); height:1px; background:var(--ink) }
/* airbnb · seis marcos (19px, gap 18px) */
.tv-item:not(:last-child)::after{ content:''; position:absolute; top:9px; left:calc(50% + 10px); width:calc(100% + 18px - 20px); height:1px; background:var(--ink) }
/* post · regua curta de tres pontos (17px) */
.regua-obra li:not(:last-child)::after{ content:''; position:absolute; top:8px; left:calc(50% + 9px); width:calc(100% - 16px); height:1px; background:var(--ink) }
/* carrollton · percurso (circulo 56px no centro, 18px entre paradas) */
.percurso li:not(:last-child)::after{ content:''; position:absolute; left:50%; margin-left:-1px; top:56px; bottom:-18px; width:2px; background:var(--mint) }
/* colleyville · regua de cuidado: o traco vai da marca 1 ate a marca 5, nao ate a borda */
.regua-cuidado{ border-top:0 !important; border-left:0 !important }
.regua-cuidado li:not(:last-child)::after{ content:''; position:absolute; top:0; left:0; width:calc(100% + 20px); height:1.5px; background:var(--ink) }

@media (max-width:1100px){
  .tv-item:not(:last-child)::after{ display:none }
  .regua-cuidado li:not(:last-child)::after{ display:none }
}
@media (max-width:700px){
  .lt li:not(:last-child)::after{ top:64px; bottom:-22px; left:32px; width:1px; height:auto }
  .tv-item:not(:last-child)::after{ display:block; top:23px; bottom:-18px; left:9px; width:1px; height:auto }
  .percurso li:not(:last-child)::after{ left:28px }
  .regua-cuidado li:not(:last-child)::after{ display:block; top:5px; bottom:-25px; left:0; width:1.5px; height:auto }
  .regua-cuidado li:last-child{ border-left:0 }
}

/* ══ Prices, Checklist, legais, Thank You e 404 (19/10/2026) ══════════ */
/* prices · tabela */
.tabela-preco{ position:relative; margin-top:30px; border-radius:var(--raio); overflow:hidden; border:1px solid var(--linha); background:var(--papel) }
.tp-folha{ position:absolute; top:14px; right:16px; width:34px }
.tabela-preco table{ width:100%; border-collapse:collapse }
.tabela-preco thead th{ background:var(--ink); color:var(--linen); text-align:left; padding:16px 22px; font-size:.95rem }
.tabela-preco tbody th{ text-align:left; padding:16px 22px; color:var(--ink); width:34%; vertical-align:top }
.tabela-preco td{ padding:16px 22px; vertical-align:top }
.tabela-preco tbody tr:nth-child(odd){ background:var(--linen) }
.tp-destaque{ margin:22px auto 0; max-width:720px; padding:14px 20px; border-radius:var(--raio); background:var(--blush); color:var(--rose-texto); font-weight:700; text-align:center }
/* prices · dor e resposta */
.dor-resposta{ display:grid; grid-template-columns:1fr 1fr; gap:22px; margin-top:30px }
.dor-resposta > div{ border-radius:var(--raio); padding:28px 28px 22px }
.dr-dor{ background:var(--papel); border:1px solid var(--linha) }
.dr-resp{ background:var(--menta-claro) }
.dr-rot{ font-weight:800; font-size:.86rem; letter-spacing:.04em; text-transform:uppercase; color:var(--rose-texto); margin:0 0 10px; text-align:left !important }
.dr-resp .dr-rot{ color:var(--mint-escuro) }

/* checklist */
.ck-nav{ position:sticky; top:0; z-index:5; display:flex; flex-wrap:wrap; justify-content:center; gap:8px; padding:12px 0; margin:-12px 0 26px; background:inherit }
.ck-nav a{ display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border-radius:999px; box-shadow:inset 0 0 0 2px var(--ink); color:var(--ink); font-weight:600; font-size:.92rem; text-decoration:none }
.ck-nav a:hover{ background:var(--blush) }
.ck-secao{ scroll-margin-top:80px }
.ck-intro{ max-width:720px; margin:0 auto }
.ck-grade{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:28px }
.ck-comodo{ background:var(--linen); border:1px solid var(--linha); border-radius:var(--raio); padding:22px 22px 16px }
.menta .ck-comodo,.areia .ck-comodo,.blush .ck-comodo{ background:var(--papel) }
.ck-comodo h3{ font-size:1.08rem; margin:0 0 .6em }
.ck-comodo ul{ list-style:none; margin:0; padding:0 }
.ck-comodo li{ display:flex; gap:10px; align-items:flex-start; padding:6px 0 }
.ck{ width:20px; height:20px; flex:none; margin-top:3px; fill:none; stroke:var(--mint-escuro); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round }
.ck-reservado span{ display:block; width:100%; padding:6px 10px; border:1.5px dashed var(--sand); border-radius:8px; font-size:.78rem; font-weight:700; letter-spacing:.04em; color:var(--ink-2) }
.ck-adicionais{ margin:18px auto 0; max-width:860px; padding:18px 22px; border-radius:var(--raio); border:1.5px dashed #F6C9D4; background:var(--papel) }
.ck-rot{ margin:0 0 6px; font-weight:800; font-size:.86rem; letter-spacing:.04em; text-transform:uppercase; color:var(--rose-texto) }
.ck-adicionais ul{ display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:0 0 6px; padding:0 }
.ck-adicionais li{ padding:6px 14px; border-radius:999px; background:var(--blush); color:var(--ink); font-weight:600; font-size:.92rem }
.ck-adicionais p:last-child{ margin:6px 0 0 }
.ck-finish{ display:flex; gap:14px; align-items:center; max-width:860px; margin:16px auto 0; padding:16px 22px; border-radius:var(--raio); background:var(--menta-claro) }
.menta .ck-finish{ background:var(--papel) }
.ck-finish img{ width:28px; flex:none }
.ck-finish p{ margin:0 }

/* legais */
.lg-topo{ background:var(--areia); padding:54px 0 40px }
.lg-topo h1{ margin:0 0 .2em }
.lg-data{ margin:0; font-weight:600; color:var(--ink-2) }
.lg-corpo{ padding:46px 0 72px }
.lg-secao{ padding:0; display:block }
.lg-secao + .lg-secao,.lg-corpo .lead + .lg-secao{ margin-top:30px }
.lg-secao h2{ font-size:1.35rem; margin:0 0 .5em }
.a-confirmar{ display:inline; padding:2px 6px; border-radius:6px; background:#FFF3C4; box-shadow:inset 0 0 0 1.5px #E3B53B; color:#6B5100; font-size:.9em; font-weight:600 }
.lg-contato{ list-style:none; margin:0 0 18px; padding:0 }
.lg-contato li{ padding:4px 0; text-align:left }
.lg-cta{ text-align:left !important }

/* thank you e 404 */
.sis-topo{ padding:72px 0 56px }
.sis-topo h1{ margin-bottom:.3em }
.sis-topo .sub-about{ margin-bottom:10px }
.sis-links{ display:flex; flex-wrap:wrap; justify-content:center; gap:4px 28px }

@media print{
  header.site,.authbar,footer.site,.ck-nav,form,.cta-final,.avaliacoes,.fab{ display:none !important }
  .ck{ stroke:#000 } .ck-comodo{ border-color:#999; break-inside:avoid }
}
@media (max-width:1100px){ .ck-grade{ grid-template-columns:1fr 1fr } }
@media (max-width:700px){
  .tabela-preco thead{ display:none }
  .tabela-preco tr{ display:block; padding:14px 18px }
  .tabela-preco tbody th,.tabela-preco td{ display:block; width:auto; padding:0 }
  .tabela-preco tbody th{ margin-bottom:4px }
  .tp-folha{ display:none }
  .dor-resposta{ grid-template-columns:1fr; gap:14px }
  .dor-resposta > div{ padding:22px 20px 16px }
  .ck-nav{ justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; margin-left:calc(var(--gutter) * -1); margin-right:calc(var(--gutter) * -1); padding-left:var(--gutter); padding-right:var(--gutter) }
  .ck-nav a{ flex:none }
  .ck-grade{ grid-template-columns:1fr; gap:12px }
  .lg-topo{ padding:40px 0 30px }
  .lg-corpo{ padding:34px 0 56px }
  .sis-topo{ padding:52px 0 40px }
}
.dr-resp img{ width:28px; margin-bottom:8px } .dor-resposta p:last-child{ margin-bottom:0 }
.sis-topo .sub-about{ text-align:center; text-align-last:center }
.faixa-serv .cta-linha a{ display:inline-block; flex-direction:row; padding:10px 0 } .faixa-serv .cta-linha{ margin-top:18px }
