/* =========================================================
   Carla Camargo Fotografia — folha de estilo única
   Paleta: branco / preto / bege
   Tipografia: Playfair Display (serif itálica) + Montserrat
   ========================================================= */
:root {
  --branco: #ffffff;
  --preto: #111111;
  --preto-forte: #0d0d0d;
  --texto: #4a4a4a;
  --bege: #a08c6b;
  --bege-soft: #c0a77f;
  --bege-texto: #7d6a4d; /* acento escurecido para textos pequenos (contraste AA) */
  --bege-claro: #efeae0;
  --bege-linha: rgba(160, 140, 107, 0.35);
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'Montserrat', system-ui, sans-serif;
  --largura: 1080px;
  --largura-texto: 680px;
  --sec-y: clamp(64px, 10vw, 110px);
  --pad-x: clamp(20px, 5vw, 40px);
}

/* ---------- base ---------- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; color-scheme: light; }
body {
  margin: 0;
  background: var(--branco);
  color: var(--preto);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--preto); text-underline-offset: 3px; }
a:hover { color: var(--bege); }
a, button { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 2px solid var(--bege); outline-offset: 3px; }
[id] { scroll-margin-top: 76px; }
.container { max-width: var(--largura); margin: 0 auto; padding-inline: var(--pad-x); }
.container--texto { max-width: var(--largura-texto); }
.pular {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--preto); color: var(--branco); padding: 10px 16px;
}
.pular:focus { left: 12px; top: 12px; }

/* ---------- tipografia ---------- */
.secao { text-align: center; }
.secao .kicker { justify-content: center; }
.secao .texto, .secao .titulo { margin-left: auto; margin-right: auto; }
.secao .servico, .secao .dados, .secao .faq, .secao details { text-align: left; }
.secao--emocao, .secao--sobre { text-align: left; }

.kicker {
  margin: 0;
  font-size: 11px; font-weight: 600; letter-spacing: 5px;
  color: var(--bege-texto); text-transform: uppercase;
}
.titulo {
  margin: 18px 0 0;
  font-family: var(--sans); font-weight: 400; letter-spacing: -0.4px;
  font-size: clamp(26px, 4vw, 38px); line-height: 1.2;
  text-wrap: balance;
}
.titulo em, .destaque {
  font-family: var(--serif); font-style: italic; font-weight: 400;
  font-size: 1.22em; letter-spacing: 0;
  color: #6b5a3f;
}
.texto { margin: 20px 0 0; font-size: 16px; line-height: 1.9; color: var(--texto); text-wrap: pretty; }
.texto--curto { max-width: 560px; }
.citacao {
  margin: 34px 0 0;
  font-family: var(--serif); font-style: italic;
  font-size: clamp(20px, 3vw, 25px); line-height: 1.5; color: var(--preto);
}
.assinatura { margin: 10px 0 0; font-size: 11px; font-weight: 600; letter-spacing: 4px; color: var(--bege); }

/* ---------- botões ---------- */
.btn {
  display: inline-block; text-decoration: none;
  font-size: 12.5px; font-weight: 600; letter-spacing: 2px;
  padding: 15px 30px;
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.btn--escuro { background: var(--preto); color: var(--branco); }
.btn--escuro:hover { background: var(--bege); color: var(--branco); }
.btn--claro { background: var(--branco); color: var(--preto); }
.btn--claro:hover { background: var(--bege); color: var(--branco); }
.btn--linha { border: 1px solid rgba(17, 17, 17, 0.45); color: var(--preto); font-weight: 500; padding: 14px 30px; }
.btn--linha:hover { border-color: var(--preto); background: var(--preto); color: var(--branco); }
.link-seta {
  display: inline-block; margin-top: 14px; text-decoration: none;
  font-size: 11px; font-weight: 600; letter-spacing: 2px;
  border-bottom: 1px solid var(--bege); padding-bottom: 3px;
}

/* ---------- header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, 0.94);
  border-bottom: 1px solid rgba(160, 140, 107, 0.3);
  backdrop-filter: blur(8px);
}
.site-header__inner {
  max-width: var(--largura); margin: 0 auto;
  padding: 10px var(--pad-x);
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.marca { flex: 0 0 auto; display: flex; align-items: center; gap: 10px; text-decoration: none; }
.marca__nome, .marca__sub { white-space: nowrap; }
.marca img { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; border: 1.5px solid var(--preto); }
.marca__nome { display: block; font-family: var(--serif); font-size: 15px; letter-spacing: 0.5px; line-height: 1.1; }
.marca__sub { display: block; margin-top: 3px; font-size: 8px; font-weight: 600; letter-spacing: 4px; color: var(--bege-texto); }
.menu { flex: 0 1 auto; min-width: 0; display: flex; flex-wrap: nowrap; overflow: hidden; align-items: center; gap: 22px; font-size: 12px; font-weight: 500; letter-spacing: 1.5px; }
.menu a { text-decoration: none; }
.site-header__acoes { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; }
.icone-ig { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; }
.icone-ig svg { stroke: var(--preto); }
.btn--header { font-size: 11.5px; padding: 11px 18px; white-space: nowrap; }

/* ---------- hero ---------- */
.hero {
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: center; text-align: center;
  min-height: 82vh;
  background: linear-gradient(180deg, var(--bege-claro) 0%, var(--bege-claro) 62%, #f7f4ee 84%, var(--branco) 100%);
}
.hero__fundo {
  position: absolute; inset: 0; z-index: 0;
  display: grid; grid-auto-rows: 1fr; gap: 10px;
  overflow: hidden; pointer-events: none;
  opacity: 1;
  mask-image: radial-gradient(ellipse 75% 79% at center, #000 43%, rgba(0,0,0,0.28) 64%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 75% 79% at center, #000 43%, rgba(0,0,0,0.28) 64%, transparent 78%);
}
.hero__faixa { overflow: hidden; display: flex; align-items: center; min-height: 0; }
.hero__trilha { display: flex; width: max-content; height: 100%; }
.hero__trilha img {
  height: 100%; width: clamp(150px, 20vw, 280px); margin-right: 10px; flex: 0 0 auto; object-fit: cover; border-radius: 4px;
  filter: sepia(0.3) saturate(0.85) brightness(1.03);
}
.hero__faixa--a .hero__trilha { animation: desliza-esq 260s linear infinite; }
.hero__faixa--b .hero__trilha { animation: desliza-dir 320s linear infinite; }
.hero__faixa--c .hero__trilha { animation: desliza-esq 380s linear infinite; }
@keyframes desliza-esq { from { transform: translateX(0); } to { transform: translateX(-33.3333%); } }
@keyframes desliza-dir { from { transform: translateX(-33.3333%); } to { transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) {
  .hero__faixa--a .hero__trilha, .hero__faixa--b .hero__trilha, .hero__faixa--c .hero__trilha { animation: none; }
}

.hero__conteudo::after {
  content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(ellipse 80% 78% at center, rgba(160, 140, 107, 0) 55%, rgba(160, 140, 107, 0.14) 82%, rgba(160, 140, 107, 0.26) 100%);
}
.hero__conteudo > * { position: relative; z-index: 2; }

.hero__moldura { position: absolute; inset: 14px; z-index: 1; border: 1px solid rgba(160, 140, 107, 0.55); pointer-events: none; }
.hero__canto { position: absolute; z-index: 1; width: 74px; height: 74px; pointer-events: none; fill: var(--bege); overflow: visible; }
.hero__canto--tl { top: 30px; left: 30px; transform: scaleY(-1); }
.hero__canto--tr { top: 30px; right: 30px; transform: scale(-1, -1); }
.hero__canto--br { bottom: 30px; right: 30px; transform: scaleX(-1); }
.hero__canto--bl { bottom: 30px; left: 30px; transform: none; }
.hero__conteudo {
  position: relative; z-index: 2; width: 100%; max-width: 720px; margin: 0 auto;
  padding: clamp(56px, 7vw, 84px) clamp(44px, 6vw, 76px);
  display: flex; flex-direction: column; align-items: center;
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(16px) saturate(1.05);
  -webkit-backdrop-filter: blur(16px) saturate(1.05);
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 4px;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.07);
}
.hero h1 {
  margin: 18px 0 0;
  font-family: var(--sans); font-weight: 400; letter-spacing: -0.5px;
  font-size: clamp(30px, 5.2vw, 52px); line-height: 1.16; text-wrap: balance;
}
.hero h1 .destaque {
  background: linear-gradient(transparent 58%, rgba(160, 140, 107, 0.42) 58%, rgba(160, 140, 107, 0.42) 92%, transparent 92%);
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
  padding: 0 0.08em;
}
.hero__acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 32px; }

/* ---------- seções ---------- */
.secao { padding-top: var(--sec-y); }
.secao--fim { padding-bottom: var(--sec-y); }
.secao--escura { background: var(--preto); color: var(--branco); text-align: center; padding-block: var(--sec-y); }
.secao--escura .texto { color: rgba(255, 255, 255, 0.85); margin-inline: auto; }
.secao--escura .titulo { margin-inline: auto; max-width: 640px; }

/* ---------- seção emoção ---------- */
.secao--emocao {
  background: linear-gradient(180deg, var(--branco) 0%, var(--bege-claro) 30%, var(--bege-claro) 100%);
  padding-block: var(--sec-y);
  margin-top: var(--sec-y);
}
.emocao__grid { display: grid; gap: clamp(36px, 6vw, 72px); align-items: center; }
.emocao__texto { text-align: left; }
.secao--emocao .kicker { justify-content: flex-start; }
.secao--emocao .texto, .secao--emocao .titulo { margin-left: 0; margin-right: 0; }
.emocao__fotos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.emocao__foto { border-radius: 6px; box-shadow: 0 22px 50px rgba(0, 0, 0, 0.14); }
.emocao__foto { width: 100%; object-fit: cover; }
.emocao__foto--1 { grid-column: 1; grid-row: 1 / span 2; height: 100%; min-height: 0; }
.emocao__foto--2 { grid-column: 2; aspect-ratio: 4 / 3; }
.emocao__foto--3 { grid-column: 2; aspect-ratio: 4 / 3; }
.emocao__foto--4 { grid-column: 1; aspect-ratio: 4 / 3; }
.emocao__foto--5 { grid-column: 2; aspect-ratio: 4 / 3; }
.divisor { display: flex; align-items: center; gap: 12px; margin: 34px 0 26px; }
.divisor span { height: 1px; flex: 0 0 64px; background: var(--bege); }
.divisor i { width: 6px; height: 6px; background: var(--bege); transform: rotate(45deg); }
.secao--emocao .citacao {
  position: relative; margin: 0; max-width: 22ch;
  padding-left: 22px; border-left: 2px solid var(--bege);
}
.secao--emocao .assinatura { margin-top: 14px; }
.secao--emocao .texto { font-size: 14.5px; line-height: 1.8; }
.frase-impacto {
  margin: 22px 0; font-size: clamp(16px, 1.9vw, 19px); font-weight: 600;
  line-height: 1.55; color: var(--preto); text-wrap: pretty;
}
.secao--emocao .citacao { font-size: clamp(18px, 2.2vw, 22px); }

/* ---------- seção citação (dark) ---------- */
.secao--citacao {
  background: #5a4a34; color: var(--branco);
  padding-block: clamp(64px, 9vw, 110px);
  text-align: center;
}
.citacao__caixa { display: flex; flex-direction: column; align-items: center; }
.secao--citacao .citacao {
  margin: 0; max-width: 34ch; color: var(--branco);
  font-size: clamp(24px, 3.6vw, 40px); line-height: 1.4;
  text-wrap: balance;
}
.secao--citacao .assinatura { margin-top: 22px; color: #e0d3ba; }
.secao--citacao .kicker { color: #dccdb2; }
.secao--citacao .btn--claro:hover { background: #efeae0; color: #3f3222; }
.divisor--claro span { background: rgba(255, 255, 255, 0.35); }
.divisor--claro i { background: var(--bege); }
.divisor--claro { margin: 0 0 26px; }

/* ---------- seção sobre ---------- */
.secao--sobre { padding-block: var(--sec-y); }
.sobre__grid { display: grid; gap: clamp(36px, 6vw, 72px); align-items: center; }
.sobre__texto { text-align: left; }
.secao--sobre .kicker { justify-content: flex-start; }
.secao--sobre .texto, .secao--sobre .titulo { margin-left: 0; margin-right: 0; }
.sobre__retrato { position: relative; }
.sobre__retrato img {
  position: relative; width: 100%; max-width: 380px;
  aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 18%;
  border-radius: 6px;
}
.sobre__retrato::after {
  content: ''; position: absolute; z-index: -1;
  inset: 22px -22px -22px 22px; max-width: 380px;
  border: 1px solid var(--bege); border-radius: 6px;
}
.sobre__frase {
  margin: 22px 0 0;
  font-family: var(--serif); font-style: italic; font-size: 20px; color: var(--bege-texto);
}
.dados { border-top: 1px solid var(--bege-linha); padding-top: 20px; gap: 14px; }
.dados > div { padding-bottom: 14px; border-bottom: 1px solid var(--bege-linha); }
.dados > div:last-child { border-bottom: 0; padding-bottom: 0; }
.dados dt { flex: 0 0 118px; font-size: 10px; font-weight: 600; letter-spacing: 3px; color: var(--bege-texto); text-transform: uppercase; }
.dados dd { margin: 0; color: var(--texto); }
.secao--sobre .btn { margin-top: 30px; }

/* ---------- grade de serviços ---------- */
.servicos { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: clamp(22px, 3vw, 34px); margin-top: clamp(32px, 5vw, 54px); }
.servico { display: flex; flex-direction: column; }
.servico img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; margin-bottom: 18px; transition: opacity 0.25s ease; }
.servico:hover img { opacity: 0.9; }
.servico p:last-of-type { margin-bottom: 18px; }
.servico .link-seta {
  margin-top: auto; align-self: flex-start;
  background: var(--preto); color: var(--branco);
  border-bottom: 0; padding: 12px 22px;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.servico .link-seta:hover { background: var(--bege); color: var(--branco); }
.servico__num { margin: 0; font-size: 10px; font-weight: 600; letter-spacing: 3px; color: var(--bege-texto); }
.servico h3 { margin: 8px 0 0; font-family: var(--serif); font-weight: 500; font-size: 23px; }
.servico p { margin: 10px 0 0; font-size: 14.5px; line-height: 1.75; color: var(--texto); text-wrap: pretty; }

/* ---------- galeria ---------- */
.galeria { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 14px; margin-top: clamp(30px, 5vw, 52px); }
.galeria figure { margin: 0; display: flex; flex-direction: column; gap: 8px; }
.galeria img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.galeria figcaption { font-size: 10px; font-weight: 600; letter-spacing: 3.5px; color: var(--bege-texto); }

/* ---------- planos ---------- */
.planos { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(24px, 4vw, 48px); margin-top: clamp(30px, 5vw, 52px); align-items: stretch; }
.plano { display: flex; flex-direction: column; border-top: 2px solid var(--preto); padding-top: 22px; }
.plano--destaque { border-top-color: var(--bege); }
.plano__nome { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: 5px; }
.plano__selo { background: var(--bege); color: var(--branco); font-size: 9px; font-weight: 600; letter-spacing: 2px; padding: 3px 9px; white-space: nowrap; }
.plano__lead { margin: 8px 0 0; font-family: var(--serif); font-style: italic; font-size: 17px; color: var(--bege); }
.plano__itens { display: flex; flex-direction: column; gap: 9px; margin-top: 18px; font-size: 14px; line-height: 1.65; color: var(--texto); }
.plano__preco { margin: 22px 0 0; padding-top: 16px; border-top: 1px solid var(--bege-linha); font-size: 20px; font-weight: 500; }

/* ---------- lista de contato ---------- */
.dados { display: flex; flex-direction: column; gap: 8px; margin-top: 26px; font-size: 14px; }
.dados > div { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.dados dt, .dados__rotulo { flex: 0 0 100px; font-size: 10px; font-weight: 600; letter-spacing: 3px; color: var(--bege-texto); }

/* ---------- FAQ ---------- */
.faq details { border-top: 1px solid var(--bege-linha); padding: 16px 4px; }
.faq details:last-of-type { border-bottom: 1px solid var(--bege-linha); }
.faq summary { list-style: none; cursor: pointer; font-family: var(--serif); font-size: 17px; }
.faq summary::-webkit-details-marker { display: none; }
.faq p { margin: 10px 0 0; font-size: 14px; line-height: 1.7; color: var(--texto); }

/* ---------- footer ---------- */
.site-footer { background: var(--preto-forte); color: rgba(255, 255, 255, 0.8); padding: 30px var(--pad-x); }
.site-footer__inner { max-width: var(--largura); margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px; }
.site-footer__marca { font-family: var(--serif); font-size: 16px; letter-spacing: 0.5px; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 18px; font-size: 12px; letter-spacing: 1px; }
.site-footer a { color: rgba(255, 255, 255, 0.8); }
.site-footer a:hover { color: var(--branco); }
.site-footer__seo { max-width: var(--largura); margin: 18px auto 0; font-size: 11.5px; line-height: 1.7; color: rgba(255, 255, 255, 0.55); }
.site-footer__copy { max-width: var(--largura); margin: 10px auto 0; font-size: 11px; color: rgba(255, 255, 255, 0.45); }

/* ---------- barra inferior (mobile) ---------- */
.barra-mobile {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 60;
  background: rgba(255, 255, 255, 0.97);
  border-top: 1px solid var(--bege-linha);
  backdrop-filter: blur(8px);
  display: flex; justify-content: space-around;
  padding: 8px 4px calc(8px + env(safe-area-inset-bottom));
}
.barra-mobile a {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  min-width: 56px; text-decoration: none;
  font-size: 9.5px; font-weight: 600; letter-spacing: 1px; color: var(--preto);
}
.barra-mobile svg { stroke: var(--preto); }
.espaco-barra { height: 70px; }

/* ---------- modal de orçamento ---------- */
.modal { border: 0; padding: 0; background: transparent; max-width: min(520px, calc(100vw - 32px)); width: 100%; }
.modal::backdrop { background: rgba(13, 13, 13, 0.55); backdrop-filter: blur(3px); }
.modal[open] { animation: modal-entra 0.22s ease-out; }
@keyframes modal-entra { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .modal[open] { animation: none; } }
.modal__caixa {
  position: relative; display: flex; flex-direction: column;
  background: var(--branco); border-radius: 6px;
  padding: clamp(26px, 5vw, 40px);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.25);
  overscroll-behavior: contain;
}
.modal__fechar {
  position: absolute; top: 12px; right: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  width: 40px; height: 40px; padding: 0;
  background: transparent; border: 0; color: var(--preto); cursor: pointer;
  transition: color 0.2s ease;
}
.modal__fechar:hover { color: var(--bege); }
.modal__titulo {
  margin: 14px 0 0;
  font-family: var(--sans); font-weight: 400; letter-spacing: -0.4px;
  font-size: clamp(22px, 3.4vw, 28px); line-height: 1.25; text-wrap: balance;
}
.modal__titulo .destaque { background: linear-gradient(transparent 58%, rgba(160, 140, 107, 0.42) 58%, rgba(160, 140, 107, 0.42) 92%, transparent 92%); padding: 0 0.08em; }
.modal__lead { margin: 12px 0 22px; font-size: 14.5px; line-height: 1.7; color: var(--texto); }
.campo { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.campo__rotulo { font-size: 10px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--bege-texto); }
.campo__entrada {
  width: 100%; font-family: var(--sans); font-size: 15px; color: var(--preto);
  background: var(--branco); border: 1px solid var(--bege-linha); border-radius: 4px;
  padding: 13px 14px; min-height: 46px;
  transition: border-color 0.2s ease;
}
.campo__entrada:hover { border-color: var(--bege); }
.campo__entrada:focus-visible { border-color: var(--preto); }
select.campo__entrada { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--preto) 50%), linear-gradient(135deg, var(--preto) 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; padding-right: 40px; }
.campo-linha { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.modal__erro { margin: 0 0 10px; min-height: 18px; font-size: 13px; color: #a33; }
.modal__enviar { align-self: stretch; text-align: center; }
.modal__nota { margin: 12px 0 0; font-size: 12px; color: var(--texto); text-align: center; }

/* ---------- responsivo ---------- */
@media (max-width: 840px) {
  .menu, .apenas-desktop { display: none !important; }
}
@media (min-width: 841px) {
  .apenas-mobile, .barra-mobile, .espaco-barra { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition-duration: 0.01ms !important; }
}

/* ---------- Emoção e Sobre: duas colunas no desktop ---------- */
@media (min-width: 860px) {
  .emocao__grid { grid-template-columns: 1fr 1fr; gap: clamp(56px, 7vw, 96px); align-items: center; }
  .emocao__fotos { gap: 12px; }
  .emocao__texto .titulo { font-size: clamp(28px, 2.6vw, 38px); }
  .secao--emocao .texto { font-size: 15px; }
  .secao--emocao .citacao { max-width: 26ch; }

  .sobre__grid { grid-template-columns: 0.85fr 1.15fr; gap: clamp(56px, 7vw, 100px); align-items: center; }
  .sobre__retrato img, .sobre__retrato::after { max-width: 100%; }
  .sobre__retrato img { aspect-ratio: 3 / 4; }
  .sobre__texto .titulo { font-size: clamp(30px, 3vw, 42px); }
  .sobre__texto .texto { font-size: 16.5px; }
  .sobre__frase { font-size: 23px; }

  .campo-linha { gap: 16px; }
}

@media (min-width: 1180px) {
  .emocao__fotos { gap: 14px; }
}

/* ---------- botão flutuante de WhatsApp ---------- */
:root { --zap: #25d366; --zap-escuro: #1ebe5b; }
.zap {
  position: fixed; z-index: 70;
  right: 18px; bottom: calc(18px + env(safe-area-inset-bottom));
  display: flex; align-items: center; gap: 10px;
  opacity: 0; transform: translateY(12px) scale(0.9);
  transition: opacity 0.35s ease, transform 0.35s ease;
}
.zap--visivel { opacity: 1; transform: none; }
.zap__btn {
  position: relative; flex: 0 0 auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 58px; height: 58px; padding: 0;
  border: 0; border-radius: 50%; cursor: pointer;
  background: var(--zap); color: #fff;
  box-shadow: 0 10px 26px rgba(37, 211, 102, 0.42);
  transition: background-color 0.2s ease, transform 0.2s ease;
}
.zap__btn:hover { background: var(--zap-escuro); transform: translateY(-2px); }
.zap__btn:focus-visible { outline: 2px solid var(--preto); outline-offset: 3px; }
.zap__foto {
  position: absolute; inset: 0;
  width: 100%; height: 100%; max-width: none;
  border-radius: 50%; object-fit: cover; object-position: 50% 22%;
  opacity: 0; transform: scale(0.92);
  transition: opacity 0.28s ease, transform 0.28s ease;
}
.zap--com-dica .zap__foto { opacity: 1; transform: none; }
.zap--com-dica .zap__btn { background: var(--branco); }
.zap--com-dica .zap__btn svg { opacity: 0; }
.zap__btn svg { transition: opacity 0.28s ease; }

.zap__badge {
  position: absolute; top: -4px; right: -4px;
  display: none; align-items: center; justify-content: center;
  min-width: 20px; height: 20px; padding: 0 5px;
  border-radius: 999px; border: 2px solid var(--branco);
  background: #e0322b; color: #fff;
  font-family: var(--sans); font-size: 11px; font-weight: 600; line-height: 1;
}
.zap--notificando .zap__foto {
  position: absolute; inset: 0;
  width: 100%; height: 100%; max-width: none;
  border-radius: 50%; object-fit: cover; object-position: 50% 22%;
  opacity: 0; transform: scale(0.92);
  transition: opacity 0.28s ease, transform 0.28s ease;
}
.zap--com-dica .zap__foto { opacity: 1; transform: none; }
.zap--com-dica .zap__btn { background: var(--branco); }
.zap--com-dica .zap__btn svg { opacity: 0; }
.zap__btn svg { transition: opacity 0.28s ease; }

.zap__badge { display: inline-flex; }
.zap--notificando .zap__btn { animation: zap-pulso 2.4s ease-in-out infinite; }
@keyframes zap-pulso {
  0%, 100% { box-shadow: 0 10px 26px rgba(37, 211, 102, 0.42); }
  50% { box-shadow: 0 10px 26px rgba(37, 211, 102, 0.42), 0 0 0 12px rgba(37, 211, 102, 0.14); }
}
.zap__dica {
  max-width: min(238px, calc(100vw - 110px));
  font-family: var(--sans); text-align: left; cursor: pointer;
  background: var(--branco); color: var(--preto);
  border: 1px solid var(--bege-linha); border-radius: 14px 14px 4px 14px;
  padding: 11px 14px; font-size: 13.5px; line-height: 1.5;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.14);
  opacity: 0; transform: translateX(8px); pointer-events: none;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.zap--com-dica .zap__dica { opacity: 1; transform: none; pointer-events: auto; }
.zap--com-dica .zap__dica:hover { border-color: var(--bege); }
@media (max-width: 840px) {
  .zap { bottom: calc(84px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .zap, .zap__dica { transition: none; }
  .zap--notificando .zap__btn { animation: none; }
}

/* ---------- modal de saída e cupom ---------- */
.campo__area { resize: vertical; min-height: 88px; font-family: var(--sans); line-height: 1.6; }
.saida .modal__lead { margin-bottom: 20px; }
.cupom {
  position: relative; display: flex; align-items: center; gap: 20px;
  margin: 22px 0 20px; padding: 20px 22px;
  background: var(--bege-claro);
  border: 1px dashed var(--bege);
  border-radius: 6px;
}
.cupom::before, .cupom::after {
  content: ''; position: absolute; top: 50%; width: 18px; height: 18px;
  background: var(--branco); border-radius: 50%; transform: translateY(-50%);
}
.cupom::before { left: -10px; }
.cupom::after { right: -10px; }
.cupom__valor {
  flex: 0 0 auto; display: flex; align-items: baseline;
  font-family: var(--serif); font-size: 46px; line-height: 1; color: var(--preto);
}
.cupom__valor span { font-size: 20px; margin-left: 2px; }
.cupom__info { min-width: 0; }
.cupom__rotulo { margin: 0; font-size: 10px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--bege-texto); }
.cupom__codigo {
  margin: 6px 0 0; font-size: 24px; font-weight: 600; letter-spacing: 4px;
  font-variant-numeric: tabular-nums; color: var(--preto);
}
.cupom__validade { margin: 6px 0 0; font-size: 12px; color: var(--texto); }
.cupom__acoes { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cupom__acoes .btn { text-align: center; padding: 14px 16px; }
@media (max-width: 520px) {
  .cupom { flex-direction: column; align-items: flex-start; gap: 12px; }
  .cupom__acoes { grid-template-columns: 1fr; }
}

/* ---------- modal de saída: título maior e conteúdo centralizado ---------- */
.saida .modal__caixa { text-align: center; }
.saida .kicker { justify-content: center; }
.saida .modal__titulo {
  font-weight: 600; letter-spacing: -0.6px;
  font-size: clamp(26px, 4vw, 36px); line-height: 1.2;
  max-width: 22ch; margin-left: auto; margin-right: auto;
}
.saida .modal__lead { max-width: 42ch; margin-left: auto; margin-right: auto; }
.saida .campo { text-align: left; }
.saida .campo__rotulo { text-align: left; }
.saida .modal__enviar { margin-top: 6px; }

/* cupom em tom claro, com recorte tracejado */
.saida .cupom {
  flex-direction: column; align-items: center; text-align: center; gap: 10px;
  background: #faf7f1;
  border: 2px dashed var(--bege);
  padding: 26px 24px;
}
.saida .cupom::before, .saida .cupom::after { background: var(--branco); width: 20px; height: 20px; }
.saida .cupom__valor { font-size: 54px; color: var(--bege-texto); }
.saida .cupom__codigo { letter-spacing: 5px; }

/* ---------- tremida ao abrir o modal ---------- */
@keyframes modal-tremer {
  0% { transform: translate3d(0, 8px, 0) scale(0.985); }
  45% { transform: translate3d(0, 0, 0) scale(1); }
  60% { transform: translate3d(-2.5px, 0, 0); }
  75% { transform: translate3d(1.8px, 0, 0); }
  88% { transform: translate3d(-1px, 0, 0); }
  100% { transform: translate3d(0, 0, 0); }
}
.saida[open] .modal__caixa { animation: modal-tremer 1s cubic-bezier(0.22, 0.75, 0.2, 1) both; }
@media (prefers-reduced-motion: reduce) {
  .saida[open] .modal__caixa { animation: none; }
}

/* ---------- lista de contatos (seção Sobre) ---------- */
.contatos {
  list-style: none; margin: 28px 0 0; padding: 0;
  display: grid; gap: 12px;
}
.contato {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px;
  background: #faf8f3;
  border: 1px solid var(--bege-linha);
  border-radius: 6px;
  transition: border-color 0.2s ease, background-color 0.2s ease;
}
.contato:hover { border-color: var(--bege); background: var(--branco); }
.contato__icone {
  flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%;
  background: var(--branco); border: 1px solid var(--bege-linha);
  color: var(--bege-texto);
}
.contato:hover .contato__icone { color: var(--preto); }
.contato__texto { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.contato__rotulo { font-size: 9.5px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase; color: var(--bege-texto); }
.contato__valor {
  font-size: 15px; color: var(--preto); text-decoration: none; word-break: break-word;
  transition: color 0.2s ease;
}
a.contato__valor:hover { color: var(--bege-texto); }
.contato__valor--simples { font-size: 14px; color: var(--texto); line-height: 1.6; }

@media (min-width: 620px) {
  .contatos { grid-template-columns: 1fr 1fr; }
  .contato:nth-child(3), .contato:nth-child(4) { grid-column: 1 / -1; }
}

/* botão temporário de teste do modal de saída — remover antes de publicar */
.btn-teste {
  font-family: var(--sans); font-size: 9.5px; font-weight: 600; letter-spacing: 2px;
  padding: 9px 12px; cursor: pointer;
  background: transparent; color: var(--bege-texto);
  border: 1px dashed var(--bege); border-radius: 4px;
}
.btn-teste:hover { color: var(--preto); border-color: var(--preto); }

/* ---------- convite para seguir no Instagram (modal de saída) ---------- */
.segue {
  display: flex; align-items: center; gap: 14px;
  margin: 0 auto 20px; padding: 12px 16px; max-width: 380px;
  text-align: left; text-decoration: none;
  background: #faf8f3; border: 1px solid var(--bege-linha); border-radius: 999px;
  transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}
.segue:hover { border-color: var(--bege); background: var(--branco); transform: translateY(-1px); }
.segue__foto { flex: 0 0 auto; display: block; width: 46px; height: 46px; }
.segue__foto img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; border: 1.5px solid var(--bege); }
.segue__texto { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.segue__texto b { font-size: 14.5px; font-weight: 600; color: var(--preto); }
.segue__texto small { font-size: 12px; color: var(--texto); line-height: 1.4; }
.segue__seta { flex: 0 0 auto; margin-left: auto; color: var(--bege-texto); transition: transform 0.2s ease; }
.segue:hover .segue__seta { transform: translateX(3px); color: var(--preto); }
.segue--compacto { margin-top: 18px; margin-bottom: 0; }
.modal__lead--menor { font-size: 13.5px; margin-bottom: 18px; }

/* cupom em prévia (etapa 1 do modal de saída) */
.cupom--teaser { margin: 20px auto 16px; max-width: 340px; }
.cupom__codigo--oculto {
  filter: blur(5px); user-select: none;
  color: var(--bege-texto);
}
.saida .cupom { border-width: 2px; }

/* cupom no topo do modal de saída, na horizontal */
.saida .cupom--topo {
  flex-direction: row; align-items: center; text-align: left;
  gap: 16px; margin: 30px 0 24px; padding: 16px 20px;
}
.saida .cupom--topo .cupom__valor { font-size: 34px; }
.saida .cupom--topo .cupom__valor span { font-size: 15px; }
.saida .cupom--topo .cupom__info { flex: 1 1 auto; }
.saida .cupom--topo .cupom__rotulo { font-size: 9px; }
.saida .cupom--topo .cupom__codigo { margin-top: 3px; font-size: 19px; letter-spacing: 3px; }
.cupom__copiar {
  flex: 0 0 auto; cursor: pointer;
  font-family: var(--sans); font-size: 10px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
  padding: 9px 14px; border-radius: 999px;
  background: var(--preto); color: var(--branco); border: 0;
  transition: background-color 0.2s ease;
}
.cupom__copiar:hover { background: var(--bege-texto); }
@media (max-width: 520px) {
  .saida .cupom--topo { flex-wrap: wrap; }
  .cupom__copiar { width: 100%; }
}

/* tremida alternativa: balanço leve com rotação (modal de saída) */
@keyframes modal-balanco {
  0% { opacity: 0; transform: translate3d(0, 14px, 0) scale(0.97) rotate(0deg); }
  40% { opacity: 1; transform: translate3d(0, 0, 0) scale(1) rotate(0.9deg); }
  55% { transform: rotate(-0.7deg); }
  70% { transform: rotate(0.45deg); }
  85% { transform: rotate(-0.25deg); }
  100% { transform: rotate(0deg); }
}
.saida[open] .modal__caixa { animation: none; }
.saida[open] {
  transform-origin: 50% 0%;
  animation: modal-balanco 1.15s cubic-bezier(0.22, 0.8, 0.24, 1) both;
}
@media (prefers-reduced-motion: reduce) {
  .saida[open] { animation: none; }
}

/* destaque só em cor, sem serifa nem marcador (modal de saída) */
.realce { color: var(--bege-texto); font-style: normal; }

/* tremida forte no modal inteiro (saída) */
@keyframes modal-tremer-forte {
  0% { opacity: 0; transform: translate3d(0, 18px, 0) scale(0.95) rotate(0deg); }
  22% { opacity: 1; transform: translate3d(0, 0, 0) scale(1) rotate(0deg); }
  32% { transform: translate3d(-14px, 0, 0) rotate(-2deg); }
  42% { transform: translate3d(13px, 0, 0) rotate(2deg); }
  52% { transform: translate3d(-10px, 0, 0) rotate(-1.5deg); }
  62% { transform: translate3d(8px, 0, 0) rotate(1.2deg); }
  72% { transform: translate3d(-5px, 0, 0) rotate(-0.8deg); }
  82% { transform: translate3d(3px, 0, 0) rotate(0.5deg); }
  91% { transform: translate3d(-1.5px, 0, 0) rotate(-0.2deg); }
  100% { transform: translate3d(0, 0, 0) rotate(0deg); }
}
.saida[open] {
  transform-origin: 50% 50%;
  animation: modal-tremer-forte 0.95s cubic-bezier(0.24, 0.8, 0.26, 1) both;
}
@media (prefers-reduced-motion: reduce) {
  .saida[open] { animation: none; }
}

/* botão de fechar do tooltip do WhatsApp */
.zap__caixa { position: relative; display: flex; }
.zap__fechar {
  position: absolute; top: -7px; left: -7px;
  display: none; align-items: center; justify-content: center;
  width: 22px; height: 22px; padding: 0; cursor: pointer;
  border-radius: 50%; border: 1px solid var(--bege-linha);
  background: var(--branco); color: var(--texto);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  transition: color 0.2s ease, border-color 0.2s ease;
}
.zap__fechar:hover { color: var(--preto); border-color: var(--preto); }
.zap--com-dica .zap__fechar { display: inline-flex; }

/* ---------- página do portfólio ---------- */
.pf-topo {
  padding-bottom: clamp(34px, 5vw, 52px);
  background: linear-gradient(180deg, var(--bege-claro) 0%, #f4efe6 55%, var(--branco) 100%);
}
.pf-topo .titulo { margin-top: 14px; }
.filtros {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
  margin-top: 28px;
}
.filtro {
  cursor: pointer; font-family: var(--sans);
  font-size: 10.5px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
  padding: 10px 16px; border-radius: 999px;
  background: transparent; color: var(--texto);
  border: 1px solid var(--bege-linha);
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.filtro:hover { border-color: var(--bege); color: var(--preto); }
.filtro--ativo { background: var(--preto); border-color: var(--preto); color: var(--branco); }

.pf-galeria { padding: clamp(28px, 4vw, 44px) clamp(10px, 2vw, 18px) clamp(56px, 8vw, 90px); }
.grade-fotos {
  display: grid; gap: 10px;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}
.foto[hidden] { display: none; }
.foto {
  position: relative; display: block; padding: 0; margin: 0;
  border: 0; border-radius: 4px; overflow: hidden; cursor: zoom-in;
  background: var(--bege-claro);
}
.foto img {
  width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block;
  transition: transform 0.5s cubic-bezier(0.2, 0.7, 0.2, 1), filter 0.35s ease;
}
.foto::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,0.55) 100%);
  opacity: 0; transition: opacity 0.3s ease;
}
.foto__tag {
  position: absolute; left: 10px; bottom: 10px; z-index: 2;
  font-size: 9px; font-weight: 600; letter-spacing: 2.5px; text-transform: uppercase;
  color: var(--branco);
  opacity: 0; transform: translateY(6px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.foto:hover img, .foto:focus-visible img { transform: scale(1.06); }
.foto:hover::after, .foto:focus-visible::after { opacity: 1; }
.foto:hover .foto__tag, .foto:focus-visible .foto__tag { opacity: 1; transform: none; }
@media (min-width: 900px) {
  .grade-fotos { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .foto img { transition: none; }
}

/* ---------- lightbox ---------- */
.lightbox {
  position: fixed; inset: 0; z-index: 90;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: clamp(16px, 4vw, 48px);
  background: rgba(10, 10, 10, 0.94);
  overscroll-behavior: contain;
  animation: lb-entra 0.25s ease-out;
}
.lightbox[hidden] { display: none; }
@keyframes lb-entra { from { opacity: 0; } to { opacity: 1; } }
.lightbox__palco { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 14px; min-width: 0; }
.lightbox__palco img {
  max-width: min(1100px, 100%); max-height: 78vh;
  width: auto; height: auto; border-radius: 4px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.5);
}
.lightbox__palco figcaption {
  font-family: var(--sans); font-size: 10px; font-weight: 600;
  letter-spacing: 3px; text-transform: uppercase; color: rgba(255, 255, 255, 0.75);
}
.lightbox__fechar, .lightbox__nav {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 0; cursor: pointer; color: #fff;
  background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 50%; transition: background-color 0.2s ease;
}
.lightbox__fechar { position: absolute; top: 16px; right: 16px; width: 46px; height: 46px; }
.lightbox__nav { flex: 0 0 auto; width: 48px; height: 48px; }
.lightbox__fechar:hover, .lightbox__nav:hover { background: rgba(255, 255, 255, 0.18); }
@media (max-width: 620px) {
  .lightbox__nav { position: absolute; bottom: 22px; }
  .lightbox__nav--ant { left: 22px; }
  .lightbox__nav--prox { right: 22px; }
}
@media (prefers-reduced-motion: reduce) { .lightbox { animation: none; } }

/* botão sutil de voltar à home (subpáginas) */
.voltar-home {
  display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; flex: 0 0 auto;
  margin-right: auto; padding: 9px 14px;
  text-decoration: none; border-radius: 999px;
  font-size: 11px; font-weight: 600; letter-spacing: 1.5px; text-transform: uppercase;
  color: var(--texto); border: 1px solid var(--bege-linha);
  transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
}
.voltar-home:hover { color: var(--preto); border-color: var(--bege); background: #faf8f3; }
.voltar-home svg { transition: transform 0.2s ease; }
.voltar-home:hover svg { transform: translateX(-2px); }
@media (max-width: 620px) {
  .voltar-home { padding: 9px; }
  .voltar-home span, .voltar-home { font-size: 0; gap: 0; }
  .voltar-home svg { width: 16px; height: 16px; }
}

/* ---------- página sobre ---------- */
.sobre-capa {
  background: linear-gradient(180deg, var(--bege-claro) 0%, #f4efe6 60%, var(--branco) 100%);
  padding-bottom: clamp(48px, 7vw, 84px);
}
.sobre-capa__grid { display: grid; gap: clamp(32px, 5vw, 72px); align-items: center; text-align: left; }
.sobre-capa .kicker { justify-content: flex-start; }
.sobre-capa .titulo, .sobre-capa .texto { margin-left: 0; margin-right: 0; }
.sobre-capa .titulo { font-size: clamp(28px, 4vw, 44px); }
.sobre-capa .btn { margin-top: 28px; }
.sobre-capa__retrato img {
  width: 100%; max-width: 420px; aspect-ratio: 4 / 5;
  object-fit: cover; object-position: 50% 18%;
  border-radius: 6px; box-shadow: 0 22px 50px rgba(0, 0, 0, 0.14);
}
.sobre-bloco { text-align: left; padding-bottom: var(--sec-y); }
.sobre-bloco .kicker { justify-content: flex-start; }
.sobre-bloco .titulo, .sobre-bloco .texto, .sobre-bloco .frase-impacto { margin-left: 0; margin-right: 0; }

.valores { list-style: none; margin: 34px 0 0; padding: 0; display: grid; gap: 14px; }
.valor {
  display: flex; align-items: flex-start; gap: 16px;
  padding: 18px 20px; background: #faf8f3;
  border: 1px solid var(--bege-linha); border-radius: 6px;
}
.valor__num { flex: 0 0 auto; font-family: var(--serif); font-style: italic; font-size: 17px; color: var(--bege-texto); }
.valor__texto { display: flex; flex-direction: column; gap: 4px; }
.valor__texto b { font-size: 15.5px; font-weight: 600; }
.valor__texto small { font-size: 13.5px; line-height: 1.65; color: var(--texto); }

@media (min-width: 860px) {
  .sobre-capa__grid { grid-template-columns: 1.15fr 0.85fr; }
  .sobre-capa__retrato { justify-self: end; }
  .valores { grid-template-columns: 1fr 1fr; }
}

/* badge do Instagram na hero */
.badge-ig {
  display: inline-flex; align-items: center; gap: 10px;
  margin: 0 auto 22px; padding: 6px 14px 6px 6px;
  text-decoration: none; border-radius: 999px;
  background: var(--branco); border: 1px solid var(--bege-linha);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.badge-ig:hover { border-color: var(--bege); transform: translateY(-1px); }
.badge-ig__foto { flex: 0 0 auto; display: block; width: 34px; height: 34px; }
.badge-ig__foto img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; object-position: 50% 20%; border: 1.5px solid var(--bege); }
.badge-ig__texto { display: flex; flex-direction: column; gap: 1px; text-align: left; }
.badge-ig__texto b { font-size: 12.5px; font-weight: 600; color: var(--preto); }
.badge-ig__texto small { font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--bege-texto); }
.badge-ig__seta { color: var(--bege-texto); transition: transform 0.2s ease; }
.badge-ig:hover .badge-ig__seta { transform: translateX(3px); color: var(--preto); }
.badge-ig--esq { margin-left: 0; margin-right: 0; }
.sobre-capa__retrato { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.badge-ig--retrato { margin: 0; }
@media (min-width: 860px) {
  .sobre-capa__retrato { align-items: center; }
}

/* convite para rolar sem pressa */
.rolar {
  display: inline-flex; align-items: center; gap: 11px;
  margin-top: 30px; text-decoration: none;
  font-size: 10.5px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase;
  color: var(--bege-texto);
  transition: color 0.2s ease;
}
.rolar:hover { color: var(--preto); }
.rolar__seta {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%;
  border: 1px solid var(--bege-linha); background: var(--branco);
  animation: rolar-sobe 2.6s ease-in-out infinite;
}
.rolar:hover .rolar__seta { border-color: var(--bege); }
@keyframes rolar-sobe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(5px); }
}
@media (prefers-reduced-motion: reduce) {
  .rolar__seta { animation: none; }
}

/* ---------- página de dicas ---------- */
.dicas-capa {
  background: linear-gradient(180deg, var(--bege-claro) 0%, #f4efe6 60%, var(--branco) 100%);
  padding-bottom: clamp(44px, 6vw, 72px);
}
.dicas-bloco { padding-top: clamp(40px, 6vw, 64px); }
.dicas-bloco + .dicas-bloco { padding-top: 0; }
.dicas { margin-top: 22px; }
.dica {
  border-top: 1px solid var(--bege-linha);
  padding: 4px 0;
}
.dicas .dica:last-child { border-bottom: 1px solid var(--bege-linha); }
.dica__titulo {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 18px 2px;
  font-family: var(--serif); font-size: clamp(17px, 2.2vw, 20px); color: var(--preto);
}
.dica__titulo::-webkit-details-marker { display: none; }
.dica__titulo::after {
  content: '+'; flex: 0 0 auto;
  font-family: var(--sans); font-size: 20px; font-weight: 400; line-height: 1;
  color: var(--bege-texto); transition: transform 0.2s ease, color 0.2s ease;
}
.dica[open] .dica__titulo::after { content: '−'; color: var(--preto); }
.dica__titulo:hover { color: var(--bege-texto); }
.dica__texto {
  margin: 0 0 20px; padding-right: 36px;
  font-size: 14.5px; line-height: 1.85; color: var(--texto); text-wrap: pretty;
}

/* cards de dicas com ícone */
.cards-dicas { display: grid; gap: 14px; margin-top: 30px; }
.card-dica {
  padding: 22px 22px 24px;
  background: #faf8f3; border: 1px solid var(--bege-linha); border-radius: 6px;
  transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}
.card-dica:hover { border-color: var(--bege); background: var(--branco); transform: translateY(-2px); }
.card-dica__icone {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--branco); border: 1px solid var(--bege-linha);
  color: var(--bege-texto);
}
.card-dica:hover .card-dica__icone { color: var(--preto); border-color: var(--bege); }
.card-dica__titulo {
  margin: 16px 0 0;
  font-family: var(--serif); font-weight: 500; font-size: 18px; color: var(--preto);
}
.card-dica__texto { margin: 8px 0 0; font-size: 14px; line-height: 1.75; color: var(--texto); text-wrap: pretty; }
@media (min-width: 700px) {
  .cards-dicas { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 900px) {
  .cards-dicas { grid-template-columns: repeat(3, 1fr); gap: 16px; }
}

/* faixas intermediárias: o menu só aparece quando cabe de verdade */
@media (max-width: 1080px) {
  .menu { gap: 18px; font-size: 11px; }
}
@media (max-width: 980px) {
  .menu { display: none !important; }
}

/* ---------- grupos de FAQ com foto (página de dicas) ---------- */
.faq-grupo { padding-top: clamp(40px, 6vw, 68px); padding-bottom: 0; }
.faq-grupo__grid { display: grid; gap: clamp(24px, 4vw, 52px); align-items: center; text-align: left; }
.faq-grupo .kicker { justify-content: flex-start; }
.faq-grupo__foto { margin: 0; }
.faq-grupo__foto img {
  width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
  border-radius: 6px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.12);
}
.faq-grupo__texto .dicas { margin-top: 16px; }
@media (min-width: 860px) {
  .faq-grupo__grid { grid-template-columns: 0.72fr 1.28fr; }
  .faq-grupo--inv .faq-grupo__grid { grid-template-columns: 1.28fr 0.72fr; }
  .faq-grupo--inv .faq-grupo__foto { order: 2; }
  .faq-grupo__foto img { aspect-ratio: 3 / 4; }
}
.faq-grupo--solo .faq-grupo__solo { text-align: center; }
.faq-grupo--solo .kicker { justify-content: center; }
.faq-grupo--solo .dica__titulo, .faq-grupo--solo .dica__texto { text-align: left; }
.faq-grupo--solo .dicas { margin-top: 20px; }
.faq-grupo--solo { padding-bottom: var(--sec-y); }

/* CTA dentro do lightbox */
.lightbox__cta { margin-top: 4px; padding: 13px 26px; }
@media (max-width: 620px) {
  .lightbox__palco { gap: 12px; }
  .lightbox__palco img { max-height: 62vh; }
  .lightbox__cta { margin-bottom: 56px; }
}

/* ---------- páginas de serviço ---------- */
.servico-capa {
  background: linear-gradient(180deg, var(--bege-claro) 0%, #f4efe6 60%, var(--branco) 100%);
  padding-bottom: clamp(44px, 6vw, 76px);
}
.servico-capa__grid { display: grid; gap: clamp(28px, 5vw, 64px); align-items: center; text-align: left; }
.servico-capa .kicker { justify-content: flex-start; }
.servico-capa .titulo, .servico-capa .texto { margin-left: 0; margin-right: 0; }
.servico-capa .titulo { font-size: clamp(28px, 4.2vw, 46px); }
.servico-capa__foto { margin: 0; }
.servico-capa__foto img {
  width: 100%; aspect-ratio: 4 / 5; object-fit: cover;
  border-radius: 6px; box-shadow: 0 22px 50px rgba(0, 0, 0, 0.14);
}

.galeria-servico { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; }
.galeria-servico__item { margin: 0; }
.galeria-servico__item img {
  width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover;
  border-radius: 4px; display: block;
}
.galeria-servico__nota { margin: 22px 0 0; text-align: center; font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; }
.galeria-servico__nota a { text-decoration: none; border-bottom: 1px solid var(--bege); padding-bottom: 3px; }

.sobre-mini { display: grid; gap: clamp(22px, 4vw, 44px); align-items: center; text-align: left; }
.sobre-mini .kicker { justify-content: flex-start; }
.sobre-mini .titulo, .sobre-mini .texto { margin-left: 0; margin-right: 0; }
.sobre-mini .titulo { font-size: clamp(24px, 3vw, 34px); }
.sobre-mini__foto { margin: 0; }
.sobre-mini__foto img {
  width: 100%; max-width: 190px; aspect-ratio: 1 / 1;
  border-radius: 50%; object-fit: cover; object-position: 50% 18%;
  border: 1.5px solid var(--bege);
}

.secao--cta-final .titulo { color: var(--branco); margin-inline: auto; max-width: 26ch; }
.secao--cta-final .texto { color: rgba(255, 255, 255, 0.85); }
.secao--cta-final .titulo em { color: #e0d3ba; }
.badge-ig--escuro {
  margin-top: 30px; background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.28); box-shadow: none;
}
.badge-ig--escuro:hover { background: rgba(255, 255, 255, 0.14); border-color: rgba(255, 255, 255, 0.5); }
.badge-ig--escuro .badge-ig__texto b { color: var(--branco); }
.badge-ig--escuro .badge-ig__texto small, .badge-ig--escuro .badge-ig__seta { color: #dccdb2; }
.badge-ig--escuro:hover .badge-ig__seta { color: var(--branco); }

@media (min-width: 860px) {
  .servico-capa__grid { grid-template-columns: 1.1fr 0.9fr; }
  .servico-capa__foto { justify-self: end; }
  .servico-capa__foto img { max-width: 430px; aspect-ratio: 4 / 5; }
  .galeria-servico { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  .galeria-servico__item--destaque { grid-column: span 2; grid-row: span 2; }
  .sobre-mini { grid-template-columns: 190px 1fr; }
}

/* páginas de serviço: respiro entre seções e bloco de dicas centralizado */
.servico-capa + .secao { padding-top: clamp(48px, 7vw, 84px); }

.dicas-bloco .sobre-bloco { text-align: center; }
.dicas-bloco .sobre-bloco .kicker { justify-content: center; }
.dicas-bloco .sobre-bloco .titulo, .dicas-bloco .sobre-bloco .texto { margin-left: auto; margin-right: auto; }
.dicas-bloco .card-dica { text-align: left; }
.dicas-bloco + .faq-grupo--solo { padding-top: clamp(40px, 6vw, 64px); }

/* hero das páginas de serviço: foto em altura cheia com degradê na base */
.servico-capa { position: relative; overflow: hidden; padding-top: 0; padding-bottom: 0; }
.servico-capa__grid { align-items: stretch; }
.servico-capa__texto {
  display: flex; flex-direction: column; justify-content: center;
  padding-block: clamp(44px, 7vw, 88px);
}
.servico-capa__foto { position: relative; margin: 0; }
.servico-capa__foto::after {
  content: ''; position: absolute; inset: auto 0 0 0; z-index: 4; height: 42%;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(250, 247, 241, 0.65) 55%, var(--branco) 100%);
  pointer-events: none;
}
.servico-capa__foto img {
  width: 100%; height: 100%; aspect-ratio: auto;
  min-height: 52vh; object-fit: cover; object-position: 50% 28%;
  border-radius: 0; box-shadow: none;
}
@media (min-width: 860px) {
  .servico-capa { min-height: 82vh; display: flex; align-items: stretch; }
  .servico-capa__grid { grid-template-columns: 1.05fr 0.95fr; gap: clamp(32px, 5vw, 64px); width: 100%; }
  .servico-capa__foto { justify-self: stretch; margin-right: calc(-1 * var(--pad-x)); }
  .servico-capa__foto img { max-width: none; min-height: 82vh; }
}

/* hover na galeria das páginas de serviço */
.galeria-servico__item { position: relative; overflow: hidden; border-radius: 4px; }
.galeria-servico__item img { transition: transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1), filter 0.35s ease; }
.galeria-servico__item::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.35) 100%);
  opacity: 0; transition: opacity 0.35s ease;
}
.galeria-servico__item:hover img { transform: scale(1.06); }
.galeria-servico__item:hover::after { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .galeria-servico__item img { transition: none; }
}

/* moldura, arabescos e vinheta na hero das páginas de serviço */
.servico-capa__foto > img { position: relative; z-index: 0; }
.servico-capa__foto::before {
  content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: radial-gradient(ellipse 84% 82% at center, rgba(239, 234, 224, 0) 52%, rgba(239, 234, 224, 0.4) 74%, rgba(244, 239, 230, 0.8) 90%, #f4efe6 100%);
}
.hero-serv__moldura {
  position: absolute; inset: 18px; z-index: 3; pointer-events: none;
  border: 1px solid rgba(255, 255, 255, 0.6);
}
.hero-serv__canto {
  position: absolute; z-index: 3; width: 58px; height: 58px;
  pointer-events: none; overflow: visible;
}
.hero-serv__canto--tl { top: 30px; left: 30px; transform: scaleY(-1); }
.hero-serv__canto--tr { top: 30px; right: 30px; transform: scale(-1, -1); }
.hero-serv__canto--br { bottom: 30px; right: 30px; transform: scaleX(-1); }
.hero-serv__canto--bl { bottom: 30px; left: 30px; transform: none; }

@media (min-width: 860px) {
  .hero-serv__canto { width: 66px; height: 66px; }
}
/* respiro da seção "quem vai fotografar" */
.sobre-mini { padding-block: 0; }
.secao:has(> .sobre-mini) { padding-top: clamp(46px, 6.5vw, 76px); padding-bottom: clamp(72px, 10vw, 118px); }

/* avatar fixo ao lado do texto (páginas de serviço) */
.texto-grid { display: grid; gap: clamp(22px, 4vw, 46px); align-items: start; }
.texto-grid__corpo { max-width: var(--largura-texto); }
.texto-avatar { margin: 0; position: relative; z-index: 0; isolation: isolate; display: flex; align-items: center; gap: 14px; }
.texto-avatar img {
  position: relative; z-index: 1; flex: 0 0 auto; display: block;
  width: 62px; height: 62px; min-width: 62px; aspect-ratio: 1 / 1;
  border-radius: 50%; object-fit: cover; object-position: 50% 18%;
  border: 1.5px solid var(--bege);
}
/* seta preta apontando para o texto */
.texto-avatar__pin { position: relative; display: inline-block; }
.texto-avatar__pin::after {
  content: ''; position: absolute; z-index: -1; top: 50%; right: -4px;
  width: 0; height: 0; transform: translateY(-50%);
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 9px solid var(--preto);
}
.texto-avatar figcaption {
  display: flex; flex-direction: column; gap: 2px;
  font-size: 13px; font-weight: 600; color: var(--preto);
}
.texto-avatar figcaption span {
  font-size: 9.5px; font-weight: 600; letter-spacing: 3px;
  text-transform: uppercase; color: var(--bege-texto);
}
@media (min-width: 900px) {
  .texto-grid { grid-template-columns: 62px minmax(0, var(--largura-texto)); gap: 16px; justify-content: center; }
  .texto-avatar { position: static; align-self: stretch; height: 100%; display: block; }
  .texto-avatar__pin { position: sticky; top: 128px; }
}

/* card escuro "ver o portfólio" na galeria dos serviços */
.galeria-servico__ver {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between;
  gap: 14px; padding: 22px; aspect-ratio: 1 / 1;
  background: #3f3222; color: var(--branco); text-decoration: none;
  transition: background-color 0.25s ease;
}
.galeria-servico__ver:hover { background: #5a4a34; color: var(--branco); }
.galeria-servico__ver::after { display: none; }
.galeria-servico__ver-icone { color: #dccdb2; }
.galeria-servico__ver-texto {
  font-family: var(--serif); font-size: clamp(17px, 2vw, 21px); line-height: 1.3;
}
.galeria-servico__ver-seta { color: #dccdb2; transition: transform 0.2s ease; }
.galeria-servico__ver:hover .galeria-servico__ver-seta { transform: translateX(4px); color: var(--branco); }

/* ritmo de espaçamento das páginas de serviço */
.servico-capa + .secao { padding-top: clamp(64px, 9vw, 110px); }
.secao:has(> .texto-grid) { padding-bottom: clamp(64px, 9vw, 110px); }
.pf-galeria { padding-top: 0; padding-bottom: clamp(20px, 3vw, 34px); }
.secao:has(> .sobre-mini) { padding-top: clamp(64px, 9vw, 110px); padding-bottom: clamp(80px, 11vw, 130px); }
.dicas-bloco { padding-top: clamp(72px, 10vw, 120px); }
.dicas-bloco + .faq-grupo--solo { padding-top: clamp(56px, 8vw, 88px); padding-bottom: clamp(72px, 10vw, 118px); }

/* hero das páginas de serviço no estilo da home */
.hero--servico { min-height: 76vh; }
.hero--servico .hero__conteudo { max-width: 660px; }
.hero--servico h1 {
  margin: 18px 0 0;
  font-family: var(--sans); font-weight: 400; letter-spacing: -0.5px;
  font-size: clamp(28px, 4.6vw, 46px); line-height: 1.16; text-wrap: balance;
}
.hero--servico .texto { margin-top: 18px; max-width: 46ch; }
.hero--servico .rolar { margin-top: 26px; }
.hero--servico + .secao { padding-top: clamp(56px, 8vw, 96px); }
/* bloco da fotógrafa mais estreito e CTA com fundo */
.sobre-mini { max-width: 880px; margin-inline: auto; }
.sobre-mini .texto { max-width: 56ch; }
.sobre-mini__btn { align-self: flex-start; margin-top: 22px; padding: 13px 26px; font-size: 11.5px; }
.sobre-mini__texto { display: flex; flex-direction: column; align-items: flex-start; }
@media (min-width: 860px) {
  .sobre-mini { grid-template-columns: 160px 1fr; gap: clamp(24px, 3vw, 40px); }
}
/* destaque no título da hero de serviço */
.hero--servico h1 .destaque {
  background: linear-gradient(transparent 58%, rgba(160, 140, 107, 0.42) 58%, rgba(160, 140, 107, 0.42) 92%, transparent 92%);
  -webkit-box-decoration-break: clone; box-decoration-break: clone;
  padding: 0 0.08em; color: #6b5a3f;
}
.hero--servico .hero__conteudo { padding: clamp(38px, 4.5vw, 56px) clamp(30px, 4vw, 52px); }
/* bloco da hero da home levemente reduzido */
@media (min-width: 700px) {
  .hero .hero__conteudo { transform: scale(0.88); transform-origin: center; }
}
/* títulos das heros: entrelinha e padding mais enxutos */
.hero h1, .hero--servico h1 { line-height: 1.04; }
.hero .hero__conteudo { padding: clamp(34px, 4vw, 52px) clamp(28px, 4vw, 50px); }
.hero--servico .hero__conteudo { padding: clamp(30px, 3.6vw, 46px) clamp(26px, 3.6vw, 44px); }

/* hover nos cards de serviço da home */
.servico { position: relative; transition: transform 0.25s ease; }
.servico:hover { transform: translateY(-3px); }
.servico__foto {
  display: block; position: relative; overflow: hidden;
  border-radius: 6px; margin-bottom: 18px;
}
.servico__foto img { margin-bottom: 0; transition: transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1); }
.servico__foto::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,0.32) 100%);
  opacity: 0; transition: opacity 0.3s ease;
}
.servico:hover .servico__foto img { transform: scale(1.06); }
.servico:hover .servico__foto::after { opacity: 1; }
.servico__titulo { text-decoration: none; transition: color 0.2s ease; }
.servico:hover .servico__titulo { color: var(--bege-texto); }
@media (prefers-reduced-motion: reduce) {
  .servico, .servico__foto img { transition: none; }
}

/* ícones dos cards de serviço (substituem a numeração) */
.servico__icone {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  background: #faf8f3; border: 1px solid var(--bege-linha);
  color: var(--bege-texto);
  transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.servico:hover .servico__icone { background: var(--preto); border-color: var(--preto); color: var(--branco); }
.servico h3 { margin-top: 14px; }

/* ---------- página 404 (visor de câmera) ---------- */
.pagina-404 { background: #0f0d0b; }
.erro {
  min-height: 100dvh; display: flex; align-items: center; justify-content: center;
  padding: clamp(16px, 3vw, 40px);
}
.erro__visor {
  position: relative; width: 100%; max-width: 960px;
  min-height: min(76vh, 620px);
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(38px, 6vw, 72px) clamp(26px, 5vw, 64px);
  color: var(--branco); overflow: hidden;
  background:
    radial-gradient(ellipse 70% 60% at 50% 45%, rgba(90, 74, 52, 0.55) 0%, rgba(15, 13, 11, 0.9) 70%),
    #17140f;
  border-radius: 4px;
}
.erro__visor::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(180deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 3px);
}
.erro__moldura { position: absolute; inset: 16px; border: 1px solid rgba(255, 255, 255, 0.28); pointer-events: none; }
.erro__canto { position: absolute; width: 62px; height: 62px; pointer-events: none; overflow: visible; }
.erro__canto--tl { top: 30px; left: 30px; transform: scaleY(-1); }
.erro__canto--tr { top: 30px; right: 30px; transform: scale(-1, -1); }
.erro__canto--br { bottom: 30px; right: 30px; transform: scaleX(-1); }
.erro__canto--bl { bottom: 30px; left: 30px; }

.erro__hud {
  position: absolute; left: clamp(30px, 5vw, 58px); right: clamp(30px, 5vw, 58px); top: clamp(30px, 5vw, 54px);
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  font-size: 10px; font-weight: 600; letter-spacing: 3px; text-transform: uppercase;
  color: rgba(255, 255, 255, 0.7);
}
.erro__hud--base { top: auto; bottom: clamp(30px, 5vw, 54px); }
.erro__rec { display: inline-flex; align-items: center; gap: 8px; color: #ff6b5e; }
.erro__rec i {
  width: 9px; height: 9px; border-radius: 50%; background: #ff4b3c;
  animation: erro-pisca 1.6s ease-in-out infinite;
}
@keyframes erro-pisca { 0%, 100% { opacity: 1; } 50% { opacity: 0.15; } }
.erro__bateria {
  position: relative; display: inline-block; width: 26px; height: 12px;
  border: 1px solid rgba(255, 255, 255, 0.6); border-radius: 2px;
}
.erro__bateria::after {
  content: ''; position: absolute; right: -4px; top: 3px; width: 2px; height: 6px;
  background: rgba(255, 255, 255, 0.6);
}
.erro__bateria i { position: absolute; inset: 2px auto 2px 2px; width: 5px; background: #ff6b5e; }

.erro__foco { position: absolute; inset: clamp(66px, 11vw, 120px); pointer-events: none; }
.erro__foco span { position: absolute; width: 26px; height: 26px; border: 2px solid rgba(255, 255, 255, 0.75); }
.erro__foco span:nth-child(1) { top: 0; left: 0; border-right: 0; border-bottom: 0; }
.erro__foco span:nth-child(2) { top: 0; right: 0; border-left: 0; border-bottom: 0; }
.erro__foco span:nth-child(3) { bottom: 0; right: 0; border-left: 0; border-top: 0; }
.erro__foco span:nth-child(4) { bottom: 0; left: 0; border-right: 0; border-top: 0; }

.erro__conteudo { position: relative; z-index: 2; text-align: center; max-width: 620px; margin-inline: auto; }
.erro__codigo { margin: 0; font-size: 10.5px; font-weight: 600; letter-spacing: 5px; color: #dccdb2; }
.erro__titulo {
  margin: 16px 0 0;
  font-family: var(--sans); font-weight: 400; letter-spacing: -0.5px;
  font-size: clamp(28px, 5vw, 48px); line-height: 1.08; text-wrap: balance;
}
.erro__titulo em {
  font-family: var(--serif); font-style: italic; font-weight: 400;
  font-size: 1.2em; color: #e0d3ba;
}
.erro__texto { margin: 18px auto 0; max-width: 44ch; font-size: 15px; line-height: 1.8; color: rgba(255, 255, 255, 0.8); text-wrap: pretty; }
.erro__acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 30px; }
.btn--linha-claro { border-color: rgba(255, 255, 255, 0.55); color: var(--branco); }
.btn--linha-claro:hover { background: var(--branco); border-color: var(--branco); color: var(--preto); }
.erro__zap {
  display: inline-block; margin-top: 22px;
  font-size: 12.5px; color: #dccdb2; text-decoration: none;
  border-bottom: 1px solid rgba(220, 205, 178, 0.5); padding-bottom: 3px;
}
.erro__zap:hover { color: var(--branco); border-color: var(--branco); }
@media (prefers-reduced-motion: reduce) { .erro__rec i { animation: none; } }
/* 404 em fundo escuro */
.pagina-404 { background: #17140f; color: var(--branco); }
.pagina-404 .site-header {
  background: rgba(23, 20, 15, 0.9);
  border-bottom-color: rgba(255, 255, 255, 0.14);
}
.pagina-404 .marca__nome { color: var(--branco); }
.pagina-404 .marca img { border-color: rgba(255, 255, 255, 0.6); }
.pagina-404 .menu a { color: rgba(255, 255, 255, 0.75); }
.pagina-404 .menu a:hover { color: var(--branco); }
.pagina-404 .icone-ig svg { stroke: var(--branco); }
.pagina-404 .btn--escuro { background: var(--branco); color: var(--preto); }
.pagina-404 .btn--escuro:hover { background: var(--bege); color: var(--branco); }
.pagina-404 .voltar-home { color: rgba(255, 255, 255, 0.8); border-color: rgba(255, 255, 255, 0.3); }
.pagina-404 .voltar-home:hover { color: var(--branco); border-color: var(--branco); background: rgba(255, 255, 255, 0.08); }
.pagina-404 .barra-mobile { background: rgba(23, 20, 15, 0.96); border-top-color: rgba(255, 255, 255, 0.14); }
.pagina-404 .barra-mobile a { color: var(--branco); }
.pagina-404 .barra-mobile svg { stroke: var(--branco); }
.pagina-404 .site-footer { background: #0f0d0b; }
.erro { min-height: auto; padding-block: clamp(24px, 4vw, 52px); }
.erro__visor { min-height: min(64vh, 560px); border-radius: 0; }
/* 404 sem arabescos, sem moldura e sem textura */
.erro__moldura, .erro__canto { display: none !important; }
.erro__visor::after { display: none; }
.erro__visor { background: #17140f; }
/* selo com ícone da categoria na hero das páginas de serviço */
.hero__selo {
  position: absolute; z-index: 2; top: 22px; left: 22px;
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 50%;
  background: #faf8f3; border: 1px solid var(--bege-linha);
  color: var(--bege-texto);
}
/* ícones enviados: tamanho e traço uniformes */
.servico__icone svg, .hero__selo svg, .card-dica__icone svg { width: 22px; height: 22px; }
.servico__icone { width: 44px; height: 44px; }
.hero__selo { width: 48px; height: 48px; }
.servico .link-seta { white-space: nowrap; }

/* praias de Penha (página turistas) */
.praias-cabecalho { text-align: center; padding-bottom: 0 !important; }
.praias-cabecalho .kicker { justify-content: center; }
.praias-cabecalho .titulo, .praias-cabecalho .texto { margin-left: auto; margin-right: auto; }
.praias-grade { display: grid; gap: 14px; margin-top: 40px; }
.praia { position: relative; margin: 0; overflow: hidden; border-radius: 6px; aspect-ratio: 4 / 3; }
.praia img {
  width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform 0.55s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.praia::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(0,0,0,0) 38%, rgba(0,0,0,0.62) 100%);
}
.praia figcaption {
  position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 1;
  display: flex; flex-direction: column; gap: 4px; color: var(--branco);
}
.praia figcaption b { font-family: var(--serif); font-weight: 500; font-size: 19px; }
.praia figcaption small {
  font-size: 12.5px; line-height: 1.6; color: rgba(255, 255, 255, 0.85); text-wrap: pretty;
  max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.35s ease, opacity 0.35s ease;
}
.praia:hover img { transform: scale(1.05); }
.praia:hover figcaption small { max-height: 90px; opacity: 1; }
@media (min-width: 700px) { .praias-grade { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1020px) { .praias-grade { grid-template-columns: repeat(3, 1fr); } }
@media (hover: none) { .praia figcaption small { max-height: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .praia img { transition: none; } }

/* pôr do sol no Cascalho (subseção das praias) */
.praias-sub { margin-top: clamp(48px, 6vw, 72px); text-align: center; }
.praias-sub__titulo {
  margin: 0; font-family: var(--sans); font-weight: 400; letter-spacing: -0.3px;
  font-size: clamp(22px, 3vw, 30px); color: var(--preto);
}
.praias-sub__titulo em { font-family: var(--serif); font-style: italic; font-weight: 400; font-size: 1.12em; color: #6b5a3f; }
.praias-sub .texto { margin: 14px auto 0; }
.praias-sub__grade { display: grid; gap: 14px; margin-top: 30px; }
@media (min-width: 700px) { .praias-sub__grade { grid-template-columns: repeat(3, 1fr); } }
/* praias clicáveis (lightbox) */
.praia__abrir { display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.praia__abrir img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* setas do lightbox (galerias de praias) */
.lightbox__seta {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; padding: 0; flex: 0 0 auto;
  cursor: pointer; color: #fff;
  background: rgba(255, 255, 255, 0.1); border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 50%; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.lightbox__seta:hover { background: rgba(255, 255, 255, 0.22); border-color: rgba(255, 255, 255, 0.45); }
@media (max-width: 620px) { .lightbox__seta { position: absolute; bottom: 22px; z-index: 2; } .lightbox__seta--ant { left: 22px; } .lightbox__seta--prox { right: 22px; } }
/* CTA do lightbox fixo na base da tela */
#lightbox .lightbox__cta {
  position: fixed; left: 50%; bottom: max(24px, env(safe-area-inset-bottom)); transform: translateX(-50%);
  z-index: 3; margin: 0; white-space: nowrap;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.45);
}
@media (max-width: 620px) {
  #lightbox .lightbox__cta { bottom: max(86px, calc(env(safe-area-inset-bottom) + 80px)); }
}
/* crédito das fotos das praias */
.praias-credito { margin: 26px 0 0; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--bege-texto); text-align: center; }
.lightbox__credito { margin: 6px 0 0; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); text-align: center; }
