:root {
  --bg: #fffdf8;
  --panel: #f0efe7;
  --brown: #a36a48;
  --text: #474842;
  --btn: #898970;
  --line: rgba(0, 0, 0, .1);
  --display: "Freight Big Pro", "Cormorant Garamond", serif;
  --body: "Cardo", serif;
}

/* Fontes próprias (só são baixadas quando um modelo de design usa) */
@font-face { font-family: "MADE Mirage"; src: url("/fontes/made-mirage-thin.woff2") format("woff2"); font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: "MADE Mirage"; src: url("/fontes/made-mirage-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--text); font-family: var(--body); font-size: 16px; line-height: 2; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--display); font-weight: 400; color: var(--brown); }

/* Header */
.site-header { position: absolute; inset: 0 0 auto; z-index: 10; display: flex; align-items: flex-start; justify-content: space-between; padding: 10px 55px; }
.logo img { width: var(--logo, 100px); height: var(--logo, 100px); }
.main-nav { display: flex; gap: 10px; margin-top: 36px; }
.main-nav a { font-family: var(--display); font-size: min(18.5px, calc(1rem + 0.23vw)); color: #fff; padding: 0 10px; line-height: 28px; display: inline-flex; align-items: center; gap: 6px; transition: opacity .2s; }
.main-nav a:hover { opacity: .7; }
.has-sub { position: relative; }
.has-sub .sub { position: absolute; top: 100%; left: 0; min-width: 160px; background: var(--bg); padding: 10px 0; opacity: 0; visibility: hidden; transform: translateY(6px); transition: .2s; }
.has-sub:hover .sub, .has-sub:focus-within .sub { opacity: 1; visibility: visible; transform: none; }
.has-sub .sub a { color: var(--text); display: block; padding: 4px 18px; }
.menu-toggle { display: none; }

/* Hero slider */
.hero { position: relative; height: 100vh; min-height: 560px; max-height: 900px; overflow: hidden; background: #222; }
.slide { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity 1.4s ease; }
.slide.active { opacity: 1; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.25), transparent 25%, transparent 65%, rgba(0,0,0,.25)); pointer-events: none; }
.hero-caption { position: absolute; z-index: 2; left: 0; right: 0; bottom: 18%; text-align: center; font-family: var(--display); font-size: min(18.5px, calc(1rem + 0.23vw)); letter-spacing: .1em; text-transform: uppercase; color: #fff; }
.counter { position: absolute; z-index: 2; right: 120px; top: 50%; transform: translateY(40px); display: flex; flex-direction: column; align-items: center; gap: 6px; font-family: var(--display); font-size: 16px; letter-spacing: .14em; color: #fff; line-height: 1; }
.counter i { width: 1px; height: 18px; background: rgba(255,255,255,.6); }

/* Intro */
.intro { text-align: center; padding: 0 20px; height: 88px; display: flex; flex-direction: column; justify-content: center; }
.intro h2 { font-size: min(30px, calc(1rem + 1.26vw)); line-height: 1.2; }
.intro h4 { font-size: min(18px, calc(1rem + 0.18vw)); letter-spacing: .19em; text-transform: uppercase; line-height: 1.66; }

/* Info split */
.info { display: grid; grid-template-columns: 1fr 1fr; margin-bottom: calc(40px * var(--esp, 1)); }
.info-img img { width: 100%; height: 800px; object-fit: cover; }
.info-text { background: var(--panel); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px 80px; }
.info-text h1 { font-size: min(39px, calc(1rem + 2.07vw)); line-height: 1.08; }
.eyebrow { font-family: var(--display); font-size: min(16.5px, calc(1rem + 0.05vw)); letter-spacing: .14em; text-transform: uppercase; margin-top: 18px; }
.vline { display: block; width: 1px; height: 41px; background: var(--detalhe, #e0e0d3); margin: 30px 0; }
.info-text p { max-width: 345px; line-height: 2; }
.btn { display: inline-block; background: var(--btn); color: #fff; font-family: var(--display); font-size: min(18.5px, calc(1rem + 0.23vw)); letter-spacing: .05em; line-height: 1.11; padding: 14px 30px; margin-top: 40px; transition: opacity .2s; }
.btn:hover { opacity: .85; }

.section-title { text-align: center; font-size: min(25.5px, calc(1rem + 0.86vw)); line-height: 1.3; padding: 0 20px; }

/* Feature (Casamentos) */
.feature { position: relative; display: block; height: 600px; margin-top: calc(40px * var(--esp, 1)); overflow: hidden; }
.feature img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease; }
.feature:hover img { transform: scale(1.03); }
.feature::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.25); }
.feature-label { position: absolute; z-index: 1; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding-top: 70px; color: #fff; text-align: center; }
.feature-label h2 { color: #fff; font-size: min(30px, calc(1rem + 1.26vw)); line-height: 1.2; }
.feature-label p { font-family: var(--display); font-size: min(16.5px, calc(1rem + 0.05vw)); letter-spacing: .14em; text-transform: uppercase; margin-top: 18px; line-height: 1.1; }

.center { text-align: center; padding: calc(12px * var(--esp, 1)) 0 calc(80px * var(--esp, 1)); }

/* Quote */
.quote { max-width: 589px; margin: 0 auto; padding: 0 20px calc(70px * var(--esp, 1)); }
.quote h2 { font-size: min(31.5px, calc(1rem + 1.4vw)); line-height: 1.17; }
.quote hr { border: 0; border-top: 1px solid var(--line); margin: 34px 0 30px; }
.author { font-family: var(--display); font-size: min(16.5px, calc(1rem + 0.05vw)); letter-spacing: .14em; text-transform: uppercase; }

/* Instagram */
.instagram { padding-top: calc(40px * var(--esp, 1)); text-align: center; }
.ig-grid { display: grid; grid-template-columns: repeat(6, 1fr); margin-top: 40px; }
.ig-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: opacity .2s; }
.ig-grid a:hover img { opacity: .8; }
.ig-handle { display: inline-flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 30px; font-family: var(--display); font-size: min(16.5px, calc(1rem + 0.05vw)); letter-spacing: .14em; text-transform: uppercase; }

/* Footer */
.site-footer { text-align: center; padding: calc(100px * var(--esp, 1)) 20px calc(60px * var(--esp, 1)); }
.site-footer nav { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 20px; }
.site-footer nav a { font-family: var(--display); font-size: min(18.5px, calc(1rem + 0.23vw)); }
.copy { font-size: 13px; margin-top: 30px; }
.to-top { display: inline-block; margin-top: 40px; color: var(--text); opacity: .6; }

/* Mobile */
@media (max-width: 860px) {
  .site-header { padding: 10px 16px; align-items: center; }
  .logo img { width: calc(var(--logo, 100px) * .8); height: calc(var(--logo, 100px) * .8); }
  .menu-toggle { display: flex; flex-direction: column; gap: 6px; background: none; border: 0; padding: 10px; cursor: pointer; z-index: 12; }
  .menu-toggle span { width: 26px; height: 1px; background: #fff; transition: .3s; }
  .menu-open .menu-toggle span { background: var(--text); }
  .main-nav { position: fixed; inset: 0; z-index: 11; background: var(--bg); flex-direction: column; align-items: center; justify-content: center; gap: 18px; margin: 0; opacity: 0; visibility: hidden; transition: .3s; }
  .menu-open .main-nav { opacity: 1; visibility: visible; }
  .main-nav a { color: var(--text); font-size: min(2rem, calc(1rem + 1.11vw)); }
  .has-sub { text-align: center; }
  .has-sub .sub { position: static; opacity: 1; visibility: inherit; transform: none; background: none; padding: 6px 0 0; }
  .has-sub .sub a { font-size: min(1.125rem, calc(1rem + 0.14vw)); justify-content: center; }
  .counter { right: 20px; }
  .info { grid-template-columns: 1fr; }
  .info-img img { height: 520px; }
  .info-text { padding: 30px 12.5% 40px; }
  .vline { height: 22px; margin: 20px 0; }
  .btn { padding: 10.5px 22.5px; margin-top: 30px; }
  .feature { height: 420px; }
  .ig-grid { grid-template-columns: repeat(3, 1fr); }
  .intro { height: auto; padding: 30px 16px; }
}

/* ===== Páginas internas ===== */
[hidden] { display: none !important; }

/* Páginas sem foto no topo (Histórias, 404): menu escuro e logo escurecida */
.sem-capa .site-header { position: relative; }
.sem-capa .main-nav > a, .sem-capa .main-nav .has-sub > a { color: var(--text); }
.sem-capa .logo img { filter: brightness(0) opacity(.72); }
.sem-capa .menu-toggle span { background: var(--text); }

/* Capa das páginas internas */
.capa { position: relative; height: 600px; overflow: hidden; background: #2a2a26; }
.capa img { width: 100%; height: 100%; object-fit: cover; }
.capa::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.28), rgba(0,0,0,.08) 30%, rgba(0,0,0,.18)); }
.capa-texto { position: absolute; z-index: 1; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80px 20px 0; text-align: center; color: #fff; }
.capa-texto h1 { color: #fff; font-size: min(50px, calc(1rem + 3.06vw)); line-height: 1.1; }
.capa-texto p { font-family: var(--display); font-size: min(18.5px, calc(1rem + 0.23vw)); letter-spacing: .1em; text-transform: uppercase; margin-top: 14px; line-height: 1.2; }
.pg-contato .capa-texto h1 { font-size: min(60px, calc(1rem + 3.96vw)); }
.pg-post .capa-texto p { font-size: min(16.5px, calc(1rem + 0.05vw)); letter-spacing: .14em; }

.eyebrow { display: block; font-family: var(--display); font-size: min(16.5px, calc(1rem + 0.05vw)); letter-spacing: .14em; text-transform: uppercase; line-height: 1.2; }

/* Nós */
.texto-sobre { max-width: 589px; margin: 0 auto; padding: calc(80px * var(--esp, 1)) 20px calc(40px * var(--esp, 1)); }
.texto-sobre h2 { font-size: min(30px, calc(1rem + 1.26vw)); line-height: 1.2; margin-bottom: 24px; }
.texto-sobre p { margin-bottom: 24px; }
.depoimentos { position: relative; margin: calc(40px * var(--esp, 1)) 0 0; }
.depo { display: none; grid-template-columns: 1fr 1fr; min-height: 800px; }
.depo.ativo { display: grid; animation: aparecer .6s ease; }
@keyframes aparecer { from { opacity: 0; } to { opacity: 1; } }
.depo-texto { background: var(--panel); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 60px 70px; }
.depo-texto h3 { font-size: min(25.5px, calc(1rem + 0.86vw)); margin-top: 16px; line-height: 1.3; }
.depo-texto .vline { display: block; width: 1px; height: 41px; background: var(--detalhe, #e0e0d3); margin: 26px 0; }
.depo-texto p { max-width: 380px; }
.depo-nav { display: flex; align-items: center; gap: 24px; margin-top: 40px; font-family: var(--display); letter-spacing: .14em; }
.depo-nav button { background: none; border: 0; color: var(--text); cursor: pointer; opacity: .6; transition: opacity .2s; }
.depo-nav button:hover { opacity: 1; }
.depo-foto img { width: 100%; height: 100%; object-fit: cover; }
.pg-sobre .center { padding-top: calc(80px * var(--esp, 1)); }

/* Portfólio e lista de histórias: foto e texto alternando de lado */
.texto-intro { max-width: 900px; margin: 0 auto; padding: calc(40px * var(--esp, 1)) 20px calc(20px * var(--esp, 1)); text-align: center; color: #6a6450; }
.lista-alternada { max-width: 900px; margin: 0 auto; padding: calc(60px * var(--esp, 1)) 20px calc(80px * var(--esp, 1)); display: grid; gap: calc(140px * var(--esp, 1)); }
.alt-item { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.alt-item:nth-child(even) .alt-foto { order: 2; }
.alt-foto { overflow: hidden; }
.alt-foto img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: transform 1.2s ease; }
.alt-item:hover .alt-foto img { transform: scale(1.03); }
.alt-texto { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 20px; }
.alt-texto h2 { font-size: min(39px, calc(1rem + 2.07vw)); line-height: 1.1; }
.alt-texto .h-post { font-size: min(30px, calc(1rem + 1.26vw)); margin-top: 14px; }
.alt-texto .vline { display: block; width: 1px; height: 41px; background: var(--detalhe, #e0e0d3); margin: 24px 0; }
.alt-texto .seta { margin-top: 40px; color: var(--text); opacity: .6; transition: transform .3s; }
.alt-item:hover .seta { transform: translateX(6px); }

/* Galerias de fotos: mosaico (principal), linhas, grade e uma por linha */
.galeria-fotos button { display: block; width: 100%; border: 0; padding: 0; background: var(--panel); cursor: zoom-in; overflow: hidden; }
.galeria-fotos img { width: 100%; height: auto; transition: opacity .3s, transform .8s ease; }
.galeria-fotos button:hover img { opacity: .9; }
.galeria-fotos[data-zoom="0"] button { cursor: default; pointer-events: none; }
.galeria-fotos[data-zoom="0"] button:hover img { opacity: 1; }

.galeria-mosaico { display: flex; gap: 20px; align-items: flex-start; max-width: 900px; margin: 0 auto; padding: calc(40px * var(--esp, 1)) 0 calc(60px * var(--esp, 1)); }
.galeria-mosaico .col { flex: 1; min-width: 0; display: grid; gap: 20px; }

/* Linhas: cada foto ocupa espaço proporcional ao formato dela (--r = largura/altura) */
.galeria-linhas { --altura: 260px; display: flex; flex-wrap: wrap; gap: 10px; max-width: 1200px; margin: 0 auto; padding: calc(40px * var(--esp, 1)) 20px calc(60px * var(--esp, 1)); }
.galeria-linhas button { flex-grow: var(--r); flex-basis: calc(var(--altura) * var(--r)); width: auto; }
.galeria-linhas img { height: 100%; object-fit: cover; }
.galeria-linhas::after { content: ""; flex-grow: 999; }

.galeria-grade { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; max-width: 1000px; margin: 0 auto; padding: calc(40px * var(--esp, 1)) 20px calc(60px * var(--esp, 1)); }
.galeria-grade img { aspect-ratio: 1; object-fit: cover; }
.galeria-grade button:hover img { transform: scale(1.03); opacity: 1; }

.galeria-coluna { max-width: 810px; margin: 0 auto; padding: calc(40px * var(--esp, 1)) 20px calc(60px * var(--esp, 1)); display: grid; gap: 20px; }

/* Histórias */
.hist-intro { max-width: 900px; margin: 0 auto; padding: 20px 20px 0; display: grid; grid-template-columns: 1fr 410px; gap: 40px; align-items: center; }
.hist-intro .eyebrow { font-size: 14px; color: var(--brown); }
.hist-intro h2 { font-size: min(25.5px, calc(1rem + 0.86vw)); margin-top: 10px; }
.hist-paragrafos { max-width: 900px; margin: 0 auto; padding: calc(30px * var(--esp, 1)) 20px calc(60px * var(--esp, 1)); }
.hist-paragrafos p { font-size: 13.5px; margin-bottom: 16px; }
.faixa { position: relative; height: 448px; overflow: hidden; }
.faixa img { width: 100%; height: 100%; object-fit: cover; }
.faixa::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.2); }
.faixa h2 { position: absolute; z-index: 1; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: min(39px, calc(1rem + 2.07vw)); text-align: center; padding: 0 20px; }

/* Postagem */
.post-video { max-width: 640px; margin: 0 auto; padding: 40px 20px 0; }
.player { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.player img { width: 100%; height: 100%; object-fit: cover; }
.player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: none; border: 0; cursor: pointer; }
.play i { width: 72px; height: 72px; border: 1px solid rgba(255,255,255,.85); border-radius: 50%; display: grid; place-items: center; background: rgba(0,0,0,.15); transition: transform .3s; }
.play:hover i { transform: scale(1.06); }
.play svg { margin-left: 5px; }
.legenda { font-size: 13.5px; margin-top: 10px; }
.relacionados { background: var(--panel); padding: calc(70px * var(--esp, 1)) 20px calc(90px * var(--esp, 1)); }
.rel-grid { max-width: 900px; margin: 40px auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.rel-item { text-align: center; }
.rel-item img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin-bottom: 20px; }
.rel-item h3 { font-size: min(25.5px, calc(1rem + 0.86vw)); margin-bottom: 8px; }

/* Contato */
.contato-area { background: var(--panel); padding: calc(80px * var(--esp, 1)) 20px calc(80px * var(--esp, 1)) 20px; }
.contato-card { max-width: 650px; margin: 0 auto; background: #fff; padding: 50px 60px; }
.form-contato { display: grid; gap: 26px; }
.campo { display: block; font-family: var(--display); font-size: 15px; letter-spacing: .08em; text-transform: uppercase; color: var(--brown); line-height: 1.4; border: 0; }
.campo > span { color: var(--brown); }
.campo input, .campo select, .campo textarea { display: block; width: 100%; margin-top: 6px; border: 0; border-bottom: 1px solid var(--line); background: transparent; font-family: var(--body); font-size: 16px; color: var(--text); text-transform: none; letter-spacing: 0; padding: 10px 0; border-radius: 0; }
.campo textarea { border: 1px solid var(--line); padding: 10px; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus { outline: none; border-color: var(--brown); }
.campo.invalido input, .campo.invalido textarea { border-color: #b0533a; }
.campo legend { margin-bottom: 8px; }
.campo .radio input { display: inline-block; width: auto; margin: 0; padding: 0; accent-color: var(--btn); }
.radio { display: flex; align-items: center; gap: 8px; font-family: var(--body); font-size: 15px; text-transform: none; letter-spacing: 0; color: var(--text); cursor: pointer; }
.ajuda { font-size: 13.5px; line-height: 1.7; margin-top: -8px; }
.form-contato .btn { justify-self: start; margin-top: 0; border: 0; cursor: pointer; }
.form-erro { color: #b0533a; }
.hp { position: absolute; left: -9999px; }
.contato-ok { text-align: center; padding: 40px 0; }
.contato-ok h2 { font-size: min(34px, calc(1rem + 1.62vw)); margin-bottom: 14px; }
.texto-proposta { text-align: center; font-family: var(--display); font-size: min(17px, calc(1rem + 0.09vw)); letter-spacing: .14em; text-transform: uppercase; padding: 70px 20px 0; }

/* 404 */
.erro-404 { text-align: center; padding: 120px 20px; }
.erro-404 h1 { font-size: min(40px, calc(1rem + 2.16vw)); margin-bottom: 14px; }

/* Lightbox (fotos ampliadas) */
.lightbox { position: fixed; inset: 0; z-index: 50; background: rgba(20,20,18,.97); display: flex; align-items: center; justify-content: center; }
.lightbox img { max-width: 92vw; max-height: 88vh; object-fit: contain; }
.lightbox button { position: absolute; background: none; border: 0; color: #fff; font-size: 44px; line-height: 1; padding: 16px; opacity: .7; cursor: pointer; }
.lightbox button:hover { opacity: 1; }
.lb-close { top: 8px; right: 14px; }
.lb-prev { left: 8px; top: 50%; transform: translateY(-50%); }
.lb-next { right: 8px; top: 50%; transform: translateY(-50%); }
.lb-count { position: absolute; bottom: 18px; color: rgba(255,255,255,.6); font-family: var(--display); letter-spacing: .2em; font-size: 14px; }

/* Contato: foto com moldura cortando a linha, texto ao lado */
.ct-bloco { position: relative; max-width: 1170px; margin: 45px auto 0; background: var(--panel); display: grid; grid-template-columns: 478px 1fr; align-items: start; padding: 73px 0; }
.ct-linha { position: absolute; left: 49px; right: 49px; top: 196px; height: 1px; background: var(--linha-contato, #d0cac0); }
.ct-foto { position: relative; padding-left: 98px; }
.ct-foto img { display: block; width: 381px; height: 503px; object-fit: cover; border: 10px solid var(--bg); background: var(--bg); }
.ct-texto { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 43px 50px 0; }
.ct-sobre { font-family: var(--display); font-size: 11px; letter-spacing: .45em; text-transform: uppercase; line-height: 1.2; }
.ct-texto h1 { margin-top: 125px; font-size: min(28px, calc(1rem + 1.08vw)); line-height: 1.2; color: var(--brown); }
.ct-rotulo { margin-top: 22px; font-family: var(--display); font-size: 9.5px; letter-spacing: .25em; text-transform: uppercase; line-height: 1.2; }
.ct-texto p { margin-top: 18px; max-width: 470px; font-size: 14px; line-height: 1.7; }
.ct-proposta { text-align: center; padding: calc(90px * var(--esp, 1)) 20px 0; }
.ct-proposta h2 { font-size: min(23px, calc(1rem + 0.63vw)); line-height: 1.3; text-transform: uppercase; }
.ct-link { display: inline-block; margin-top: 38px; font-family: var(--display); font-size: 12px; letter-spacing: .16em; text-transform: uppercase; padding-bottom: 8px; border-bottom: 1px solid currentColor; }
.ct-link:hover { color: var(--brown); }
.ct-final { max-width: 904px; margin: calc(66px * var(--esp, 1)) auto 0; padding: 0 20px calc(100px * var(--esp, 1)); text-align: center; font-family: var(--display); font-size: min(28px, calc(1rem + 1.08vw)); line-height: 1.2; color: #7b756c; }
.pg-contato .contato-area { margin-bottom: 60px; }

/* Instagram em faixa (Contato): @ pequeno e fileira de fotos pequenas */
.ig-faixa { background: var(--panel); padding: calc(40px * var(--esp, 1)) 30px calc(50px * var(--esp, 1)); text-align: center; }
.ig-faixa-topo { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; font-family: var(--display); font-size: 11px; letter-spacing: .45em; text-transform: uppercase; color: var(--text); }
.ig-faixa-topo svg { width: 14px; height: 14px; }
.ig-faixa-fotos { display: flex; justify-content: space-between; max-width: 1110px; margin: 12px auto 0; }
.ig-faixa-fotos img { width: 86px; aspect-ratio: 3 / 4; object-fit: cover; transition: opacity .2s; }
.ig-faixa-fotos a:hover img { opacity: .8; }

/* Galeria de Clientes (/clients/) */
.pg-clientes .capa { height: 460px; }
.clientes { max-width: 830px; margin: 0 auto; padding: 0 30px calc(100px * var(--esp, 1)); }
.clientes-topo { text-align: center; padding: 60px 0 10px; }
.clientes-topo h1 { font-size: min(50px, calc(1rem + 3.06vw)); line-height: 1.1; }
.clientes-topo .eyebrow { margin-top: 14px; }
.cli-busca { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 26px 0 50px; border-bottom: 1px solid var(--line); margin-bottom: 60px; }
.cli-lupa { background: none; border: 0; color: var(--text); padding: 8px; cursor: pointer; opacity: .75; }
.cli-lupa:hover, .cli-lupa[aria-expanded="true"] { opacity: 1; color: var(--brown); }
.cli-campo { width: min(360px, 100%); border: 0; border-bottom: 1px solid var(--line); background: transparent; font-family: var(--body); font-size: 16px; color: var(--text); text-align: center; padding: 8px 0; border-radius: 0; }
.cli-campo:focus { outline: none; border-color: var(--brown); }
.cli-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 70px 60px; scroll-margin-top: 30px; }
.cli-card { display: block; text-align: center; color: var(--text); }
.cli-foto { aspect-ratio: 3 / 4; overflow: hidden; background: var(--panel); }
.cli-foto img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s ease, opacity .3s; }
.cli-card:hover .cli-foto img { transform: scale(1.03); }
.cli-card.largo { grid-column: 1 / -1; }
.cli-card.largo .cli-foto { aspect-ratio: 2.17 / 1; }
.cli-data { display: block; margin-top: 22px; font-family: var(--display); font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: var(--brown); }
.cli-card h2 { margin-top: 6px; font-size: min(28px, calc(1rem + 1.08vw)); line-height: 1.2; }
.cli-cadeado { display: block; margin-top: 8px; color: var(--text); opacity: .55; line-height: 0; }
.cli-vazio { text-align: center; padding: 30px 0 60px; }
.cli-paginas { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 18px; margin-top: 80px; }
.cli-paginas button { background: none; border: 0; font-family: var(--display); font-size: 16px; letter-spacing: .1em; color: var(--text); opacity: .55; padding: 6px 4px; cursor: pointer; border-bottom: 1px solid transparent; }
.cli-paginas button:hover { opacity: 1; }
.cli-paginas button[aria-current] { opacity: 1; color: var(--brown); border-color: var(--brown); }

@media (max-width: 860px) {
  .capa { height: 70vh; min-height: 420px; }
  .pg-clientes .capa { height: 52vh; min-height: 340px; }
  .ct-bloco { grid-template-columns: 1fr; margin: 20px 16px 0; padding: 40px 20px 50px; }
  .ct-linha { display: none; }
  .ct-foto { padding: 0; justify-self: center; }
  .ct-foto img { width: min(300px, 75vw); height: auto; aspect-ratio: 381 / 503; }
  .ct-texto { padding: 34px 0 0; }
  .ct-texto h1 { margin-top: 14px; }
  .ct-proposta { padding-top: 60px; }
  .ct-final { margin-top: 44px; padding-bottom: 70px; }
  .ig-faixa { padding: calc(34px * var(--esp, 1)) 16px calc(40px * var(--esp, 1)); }
  .ig-faixa-fotos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .ig-faixa-fotos img { width: 100%; }
  .clientes { padding: 0 16px calc(70px * var(--esp, 1)); }
  .cli-busca { padding: 18px 0 34px; margin-bottom: 40px; }
  .cli-grade { grid-template-columns: 1fr; gap: 50px; }
  .cli-card.largo .cli-foto { aspect-ratio: 3 / 2; }
  .cli-data { margin-top: 16px; }
  .depo, .depo.ativo { grid-template-columns: 1fr; min-height: 0; }
  .depo-foto { order: -1; }
  .depo-foto img { height: 480px; }
  .depo-texto { padding: 50px 24px; }
  .lista-alternada { gap: calc(70px * var(--esp, 1)); padding: calc(40px * var(--esp, 1)) 16px calc(60px * var(--esp, 1)); }
  .alt-item { grid-template-columns: 1fr; }
  .alt-item:nth-child(even) .alt-foto { order: 0; }
  .alt-texto { padding: 30px 0 0; }
  .galeria-mosaico { gap: 6px; padding: calc(16px * var(--esp, 1)) 6px calc(40px * var(--esp, 1)); }
  .galeria-mosaico .col { gap: 6px; }
  .galeria-linhas { --altura: 150px; gap: 6px; padding: calc(16px * var(--esp, 1)) 6px calc(40px * var(--esp, 1)); }
  .galeria-grade { grid-template-columns: repeat(2, 1fr); gap: 6px; padding: calc(16px * var(--esp, 1)) 6px calc(40px * var(--esp, 1)); }
  .hist-intro { grid-template-columns: 1fr; }
  .faixa { height: 320px; }
  .galeria-coluna { padding: calc(24px * var(--esp, 1)) 0 calc(40px * var(--esp, 1)); gap: 6px; }
  .rel-grid { grid-template-columns: 1fr; }
  .contato-area { padding: calc(40px * var(--esp, 1)) 12px calc(40px * var(--esp, 1)) 12px; }
  .contato-card { padding: 34px 22px; }
  .lb-prev, .lb-next { display: none; }
  /* Detalhes em maiúsculas: no celular o Pixieset usa 14px */
  .eyebrow, .feature-label p, .author, .ig-handle { font-size: 14px; }
}

/* ===== Opções de design (Painel → Design). O Ever Two padrão não usa nenhuma destas. ===== */

/* Menu em barra clara (em vez de por cima da foto) */
.d-nav-barra .site-header { position: relative; background: var(--bg); }
.d-nav-barra .main-nav > a, .d-nav-barra .main-nav .has-sub > a { color: var(--text); }
.d-nav-barra .logo img { filter: brightness(0) opacity(.72); }
.d-nav-barra .menu-toggle span { background: var(--text); }

/* Menu fixo no topo ao rolar a página */
.d-fixo .site-header { position: fixed; transition: background .3s, box-shadow .3s, padding .3s; }
.d-fixo.d-nav-barra .site-header { position: sticky; top: 0; }
.d-fixo.rolou .site-header { background: var(--bg); box-shadow: 0 1px 0 var(--line); padding-top: 4px; padding-bottom: 4px; }
.d-fixo.rolou .main-nav { margin-top: calc(var(--logo, 100px) / 2 - 14px); }
.d-fixo.rolou .main-nav > a, .d-fixo.rolou .main-nav .has-sub > a { color: var(--text); }
.d-fixo.rolou .logo img { filter: brightness(0) opacity(.72); }
.d-fixo.rolou .menu-toggle span { background: var(--text); }

/* Botões */
.btn { transition: opacity .2s, background .2s, color .2s, border-color .2s; }
.d-btn-vazado .btn { background: transparent; color: var(--btn); border: 1px solid var(--btn); }
.d-btn-vazado .btn:hover { opacity: 1; background: var(--btn-hover); border-color: var(--btn-hover); color: #fff; }
.d-btn-sublinhado .btn { background: none; color: var(--text); padding: 0 0 8px; border-bottom: 1px solid currentColor; letter-spacing: .14em; text-transform: uppercase; font-size: 13px; }
.d-btn-sublinhado .btn:hover { opacity: 1; color: var(--btn-hover); }
.d-btn-cheio:not(.d-modelo-evertwo) .btn:hover { opacity: 1; background: var(--btn-hover); }
.d-cantos-suaves .btn { border-radius: 6px; }
.d-cantos-pilula .btn { border-radius: 999px; }
.d-btn-sublinhado .btn { border-radius: 0; }

/* Animação: blocos surgem suavemente ao rolar (o JS marca quais são) */
.d-anim-suave .revelar { opacity: 0; transform: translateY(26px); transition: opacity .9s ease, transform .9s ease; }
.d-anim-suave .revelar.visivel { opacity: 1; transform: none; }

/* Aviso na prévia do design */
.aviso-design { position: fixed; z-index: 90; left: 50%; bottom: 14px; transform: translateX(-50%); background: #1f1f1c; color: #fff; font-family: system-ui, sans-serif; font-size: 13px; line-height: 1.4; padding: 9px 16px; border-radius: 99px; box-shadow: 0 6px 24px rgba(0,0,0,.25); pointer-events: none; }

/* Prévia do design: bloco destacado quando você passa o mouse nele na lista do painel */
.bloco-destacado { outline: 2px solid #2f8f74; outline-offset: -2px; }

/* Logotipo alternativo (escuro): usado onde o fundo é claro, no lugar de escurecer o principal */
.logo .logo-alt { display: none; width: var(--logo, 100px); height: var(--logo, 100px); object-fit: contain; }
.logo img { object-fit: contain; }
.sem-capa .logo.com-alt .logo-principal, .d-nav-barra .logo.com-alt .logo-principal, .d-fixo.rolou .logo.com-alt .logo-principal, .d-modelo-mirage .logo.com-alt .logo-principal { display: none; }
.sem-capa .logo.com-alt .logo-alt, .d-nav-barra .logo.com-alt .logo-alt, .d-fixo.rolou .logo.com-alt .logo-alt, .d-modelo-mirage .logo.com-alt .logo-alt { display: block; filter: none; }

/* Redes sociais no rodapé */
.redes { display: flex; justify-content: center; gap: 18px; margin-top: 30px; }
.redes a { color: var(--text); opacity: .7; transition: opacity .2s; }
.redes a:hover { opacity: 1; }
.d-modelo-mirage .redes { justify-content: flex-start; grid-column: 1; }
@media (max-width: 860px) { .logo .logo-alt { width: calc(var(--logo, 100px) * .8); height: calc(var(--logo, 100px) * .8); } }

/* Blog: data, filtros por categoria e compartilhar */
.post-data { text-align: center; font-family: var(--display); font-size: 13px; letter-spacing: .14em; text-transform: uppercase; padding-top: 30px; color: var(--text); opacity: .75; }
.blog-filtros { display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 26px; padding: 50px 20px 0; }
.blog-filtros button { background: none; border: 0; border-bottom: 1px solid transparent; padding: 4px 0; font-family: var(--display); font-size: 14px; letter-spacing: .16em; text-transform: uppercase; color: var(--text); opacity: .6; cursor: pointer; }
.blog-filtros button[aria-pressed="true"] { opacity: 1; color: var(--brown); border-color: currentColor; }
.compartilhar { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 8px 22px; padding: 10px 20px 60px; }
.compartilhar .eyebrow { margin: 0; width: 100%; text-align: center; }
.compartilhar a, .compartilhar button { background: none; border: 0; border-bottom: 1px solid var(--line); padding: 2px 0; font-family: var(--display); font-size: 14px; letter-spacing: .1em; color: var(--text); cursor: pointer; }
.compartilhar a:hover, .compartilhar button:hover { color: var(--brown); border-color: currentColor; }

/* Setinha fina para voltar ao topo */
.volta-topo { position: fixed; right: 20px; bottom: 20px; z-index: 40; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(0,0,0,.18); background: rgba(255,255,255,.75); color: #474842; display: grid; place-items: center; cursor: pointer; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); opacity: .85; transition: opacity .25s, transform .25s; }
.volta-topo:hover { opacity: 1; transform: translateY(-2px); }
.volta-topo[hidden] { display: none; }
@media (max-width: 700px) { .volta-topo { right: 14px; bottom: 14px; width: 36px; height: 36px; } }

.erro-404 .erro-codigo { display: block; font-family: var(--display); font-size: min(96px, calc(2rem + 6vw)); line-height: 1; letter-spacing: .08em; color: var(--detalhe, var(--brown)); opacity: .55; margin-bottom: 10px; }
.erro-404 p { max-width: 460px; margin: 0 auto 22px; }
.erro-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin: 0 auto 30px; max-width: 560px; }
.erro-links a { font-family: var(--display); letter-spacing: .16em; text-transform: uppercase; font-size: 13px; padding: 6px 0; border-bottom: 1px solid transparent; }
.erro-links a:hover { border-color: currentColor; }

/* Postagens feitas de blocos (texto, imagem, colunas, grade, vídeo...) */
.pb-texto { max-width: 740px; margin: 44px auto; padding: 0 20px; box-sizing: border-box; line-height: 1.8; }
.pb-texto p { margin: 0 0 1.1em; }
.pb-texto h2, .pb-texto h3 { margin: 1.4em 0 .5em; line-height: 1.25; }
.pb-texto ul, .pb-texto ol { margin: 0 0 1.1em 1.3em; }
.pb-texto blockquote { margin: 1.4em 0; padding-left: 1.2em; border-left: 2px solid currentColor; font-style: italic; opacity: .85; }
.pb-texto a { text-decoration: underline; text-underline-offset: 3px; }
.pb-imagem { max-width: 1100px; margin: 30px auto; padding: 0 24px; box-sizing: border-box; display: flex; flex-direction: column; }
.pb-imagem img { width: var(--w, 100%); height: auto; display: block; }
.pb-imagem.al-centro { align-items: center; }
.pb-imagem.al-esq { align-items: flex-start; }
.pb-imagem.al-dir { align-items: flex-end; }
.pb-imagem figcaption { width: var(--w, 100%); margin-top: 10px; font-size: .9em; opacity: .7; text-align: center; }
.pb-colunas { max-width: 1100px; margin: 30px auto; padding: 0 24px; box-sizing: border-box; display: grid; grid-template-columns: repeat(var(--n, 2), 1fr); gap: var(--g, 12px); align-items: start; }
.pb-colunas img { width: 100%; height: auto; display: block; }
.pb-divisor { border: 0; border-top: 1px solid currentColor; opacity: .25; max-width: 700px; margin: 44px auto; }
.pb-botao { text-align: center; margin: 36px 0; }
@media (max-width: 700px) {
  .pb-colunas { grid-template-columns: repeat(min(var(--n, 2), 3), 1fr); padding: 0 16px; }
  .pb-colunas[style*="--n:4"] { grid-template-columns: 1fr 1fr; }
  .pb-imagem { padding: 0 16px; }
  .pb-imagem img, .pb-imagem figcaption { width: 100%; }
  .pb-texto { margin: 30px auto; }
}

.gal-mais { height: 1px; }
