/* terracota escurecida para texto pequeno (4.5:1 no papel) */
:root { --terra-texto: #8a4d37; }
/* Linda Cerimonial: só o que o kit (assets/) não tem. Fotos via <picture> do Astro, logotipo, reels,
   painéis das etapas e o formulário que abre o WhatsApp. */

/* <picture> do Astro: a <img> dentro dele ocupa o quadro como .frame__img */
:is(.frame, .panel, .tile__media) > picture.foto { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; }
:is(.frame, .panel, .tile__media) > picture > img {
  position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover;
  object-position: var(--pos, 50% 50%);
}
.hero__media > picture { position: absolute; inset: 0; }

/* logotipo em texto (sem arquivo da cliente ainda): Linda em serifa + Cerimonial espaçado */
.logo { gap: 10px; align-items: baseline; color: var(--ink); white-space: nowrap; }
.logo__nome { font: 400 28px/1 var(--font-display); letter-spacing: -0.01em; }
.logo__sub { font: 400 28px/1 var(--font-display); font-style: italic; color: var(--terra-texto); }
.ground-inverse .logo__sub { color: inherit; }
.skip { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip:focus { width: auto; height: auto; clip-path: none; padding: 8px 12px; background: var(--bg); z-index: 20; }

/* fotos das divisões texto + foto: da linha do título até o pé do conteúdo */
.foto-alta { min-height: 320px; }
@media (min-width: 1024px) {
  .foto-alta { height: min(708px, calc(100svh - var(--padt) - var(--padb))); }
}
@media (max-width: 1023px) {
  .foto-alta { aspect-ratio: 4 / 3; max-height: 46svh; width: 100%; }
}
.servicos__link { margin-top: var(--s-6); }
/* Serviços (Mix 1): nomes grandes com a segunda parte em itálico; a foto grande troca no hover (site.js) */
.servicos__lista { list-style: none; margin: 8px 0 0; padding: 0; }
.servicos__item { padding: 16px 0; border-top: 1px solid var(--line); }
.servicos__item:last-child { border-bottom: 1px solid var(--line); }
.servicos__nome { margin: 0; font: 400 44px/1.05 var(--font-display); letter-spacing: -.015em; color: var(--muted); transition: color .3s; }
.servicos__nome em { font-style: italic; color: inherit; }
.servicos__item.is-on .servicos__nome { color: var(--ink); }
.servicos__item.is-on .servicos__nome em { color: var(--terra-texto); }
.servicos__quando { margin: 6px 0 4px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.servicos__texto { margin: 0; max-width: 52ch; font-size: 15px; line-height: 1.5; }
.servicos__thumb { display: none; }
.servicos__palco { position: relative; }
.servicos__palco > .servicos__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease; }
.servicos__palco > .servicos__slide.is-on { opacity: 1; }
.servicos__slide picture, .servicos__slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); }
@media (max-width: 1023px) {
  .servicos__palco { display: none; }
  .servicos__nome { color: var(--ink); font-size: 32px; }
  .servicos__nome em { color: var(--terra-texto); }
  .servicos__thumb { display: block; position: relative; aspect-ratio: 16 / 10; border-radius: 12px; overflow: hidden; margin-bottom: 14px; }
  .servicos__thumb picture, .servicos__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .servicos__nome { font-size: 34px; }
  .servicos__item { padding: 12px 0; }
  .servicos__texto { font-size: 14px; }
}
@media (min-width: 640px) and (max-width: 1023px) { .servicos__thumb { aspect-ratio: 21 / 9; } }
/* celular: miniatura em pé (4:5) para a Wisla aparecer inteira; a 16:10 cortava a cabeça */
@media (max-width: 639px) { .servicos__thumb { aspect-ratio: 4 / 5; } }
@media (max-width: 639px) { .servicos__nome { font-size: 28px; } }
@media (prefers-reduced-motion: reduce) { .servicos__palco > .servicos__slide, .servicos__nome { transition: none; } }
.rows__name small { display: block; margin-top: 2px; font-weight: 400; font-size: var(--t-small); color: var(--muted); }

/* Sobre (B+E areia): saudação + frase grande com foto no meio, entre duas fotos que se abrem (.revela) */
main > section.sobre { background: #efe6db; color: var(--ink); }
.sobre__grade { display: grid; grid-template-columns: 1fr 2.4fr 1fr; gap: 48px; align-items: center; height: 100%; }
.sobre__foto { position: relative; overflow: hidden; border-radius: 4px; }
.sobre__foto--esq { aspect-ratio: 3 / 4.2; align-self: start; }
.sobre__foto--dir { aspect-ratio: 3 / 4.2; align-self: end; }
.sobre__foto picture, .sobre__foto img, .sobre__pilula picture, .sobre__pilula img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); }
.sobre__centro { text-align: center; }
.sobre .sobre__ola { font: 400 22px/1.2 var(--font-text); letter-spacing: .14em; text-transform: uppercase; color: var(--ink); margin: 0 0 28px; }
.sobre__ola em { font: italic 400 34px/1 var(--font-display); letter-spacing: 0; text-transform: none; color: var(--terra-texto); margin-right: 4px; }
.sobre .sobre__frase { font: 400 clamp(36px, 3.7vw, 56px)/1.12 var(--font-display); letter-spacing: -.01em; color: var(--ink); margin: 0 0 28px; }
.sobre__frase em { font-style: italic; color: var(--terra-texto); }
.sobre__pilula { position: relative; display: inline-block; width: 2.6em; height: 1.1em; border-radius: 999px; overflow: hidden; vertical-align: -0.12em; margin: 0 .12em; }
.sobre .sobre__corpo { margin: 0 auto 24px; max-width: 52ch; font-size: 15px; line-height: 1.6; color: #4a3d37; }
.sobre__cta { display: inline-block; padding: 12px 22px; border: 1px solid var(--ink); color: var(--ink); text-decoration: none; font: 500 15px var(--font-text); border-radius: 6px; transition: background .2s, color .2s; }
.sobre__cta:hover { background: var(--ink); color: #efe6db; }
@media (max-width: 1023px) {
  .sobre__grade { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px; height: auto; }
  .sobre__centro { grid-column: 1 / -1; order: -1; }
  .sobre__foto--esq, .sobre__foto--dir { align-self: start; width: 100%; aspect-ratio: 3 / 4; }
}
@media (max-width: 639px) {
  .sobre__foto--esq, .sobre__foto--dir { aspect-ratio: 1 / 1; }
  .sobre .sobre__ola { font-size: 16px; margin-bottom: 14px; } .sobre__ola em { font-size: 26px; }
  .sobre .sobre__frase { font-size: 31px; margin-bottom: 16px; } .sobre .sobre__corpo { font-size: 14px; margin-bottom: 18px; }
}
/* abertura das fotos ao chegar na seção (site.js põe .revela-pronta e depois .is-in); sem JS, ficam visíveis */
.revela-pronta .revela { clip-path: inset(0 0 100% 0); }
.revela-pronta .revela--sobe { clip-path: inset(100% 0 0 0); }
.revela-pronta .revela img { transform: scale(1.12); }
.revela-pronta.is-in .revela { clip-path: inset(0 0 0 0); transition: clip-path 1.4s cubic-bezier(.65, 0, .25, 1); }
.revela-pronta.is-in .revela--sobe { transition-delay: .25s; }
.revela-pronta.is-in .revela img { transform: scale(1); transition: transform 1.8s cubic-bezier(.22, .8, .25, 1); }
.revela-pronta.is-in .revela--sobe img { transition-delay: .25s; }
.assinatura { font: italic 400 var(--t-lead)/1.3 var(--font-display); color: var(--terra-texto); }

/* casamentos: cartões quadrados no fundo escuro */
.casal { --tile-ratio: 1 / 1; }
.casal h3 { font: var(--display-weight) var(--t-card, 20px)/1.2 var(--font-display); letter-spacing: 0; font-size: 22px; }
.casal .tile__price { color: var(--muted); font-size: var(--t-small); }
@media (min-width: 1024px) and (max-height: 820px) { .casal { --tile-ratio: 5 / 4; } }

/* reels: vídeo vertical que só toca no toque/clique */
.reel { position: relative; aspect-ratio: 9 / 16; border-radius: var(--r-lg); overflow: clip; background: var(--surface); }
.reel video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.reel__play {
  position: absolute; left: var(--s-4); bottom: var(--s-4); width: 48px; height: 48px; border-radius: 999px;
  display: grid; place-items: center; border: 0; cursor: pointer; color: var(--p-ink);
  background: color-mix(in oklab, var(--p-bg) 92%, transparent);
}
.reel__play svg { width: 22px; height: 22px; margin-left: 2px; }
.reel.is-playing .reel__play { display: none; }



.form-zap .btn { width: 100%; }

/* páginas dos casais */

/* fotos sem moldura de split (sobre e orçamento) */
.retrato { position: relative; overflow: clip; border-radius: var(--r-lg); background: var(--surface); aspect-ratio: 4 / 5; }
.retrato > picture.foto { position: absolute; inset: 0; }
.retrato img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); }


/* tablet (640 a 1023): cada seção na sua tela */
@media (min-width: 640px) and (max-width: 1023px) {
  #servicos { --h: 2; }
  .casal { grid-column: span 4; }
}
/* celular */
@media (max-width: 639px) {
  #servicos, #casamentos, #orcamento { --hm: 2; }
}

/* ---- segunda rodada de ajustes (checagens da skill) ---- */
.nav__logo.logo { display: inline-block; line-height: 1; }
.nav__logo.logo .logo__sub { margin-left: 0.25em; }
/* um tamanho e uma face para todo h3 */
.casal h3, .tile__head h3 { font: var(--display-weight) 22px/1.25 var(--font-display); letter-spacing: 0; }
/* tablet */
@media (min-width: 640px) and (max-width: 1023px) {
  .foto-alta { aspect-ratio: auto; height: 60svh; max-height: none; }
  #casamentos .grid > .casal { grid-column: span 4; }
}
/* celular */
@media (max-width: 639px) {
  .nav:not(.is-open) .nav__actions { display: none; }
  .logo__nome, .nav__logo.logo .logo__sub { font-size: 22px; }
  .hero__kicker { display: none; }
  .foto-alta { aspect-ratio: auto; height: 56svh; max-height: none; }
  #casamentos { --hm: 2; }
  #casamentos .casal { --tile-ratio: 4 / 3; }
}

/* ---- terceira rodada ---- */
@media (max-width: 639px) { .lead-regiao { display: none; } }
@media (min-width: 640px) and (max-width: 1023px) {
  .foto-alta { height: calc(100svh - 96px); }
}
@media (max-width: 639px) { .nav:not(.is-open) .nav__actions + .nav__toggle { margin-left: auto; } }

/* ---- quarta rodada ---- */
@media (max-width: 639px) { .hero--split .hero__media { margin-top: var(--s-4); } }
@media (max-width: 639px) { #casamentos .grid > .casal { grid-column: 1 / -1; } }

/* ---- topo A+D: o menu fica transparente sobre as fotos e ganha o fundo ao sair do topo ---- */
.nav.nav--sobre-foto:not(.is-solid):not(.is-open) { background: transparent; border-bottom-color: transparent; color: #fff; }
.nav.nav--sobre-foto:not(.is-solid):not(.is-open) :is(.nav__link, .logo, .logo__nome) { color: #fff; }
.nav.nav--sobre-foto:not(.is-solid):not(.is-open) .logo__sub { color: #f0b79c; }
.nav.nav--sobre-foto:not(.is-solid):not(.is-open) .nav__toggle { color: #fff; border-color: rgba(255,255,255,.6); }
.nav.nav--sobre-foto { transition: background-color .25s ease, border-color .25s ease, color .25s ease; }

/* Casamentos (C+E): palco com o nome do casal grande sobre três fotos inclinadas + lista que troca o casal (site.js) */
.casamentos__grade { display: grid; grid-template-columns: minmax(0, 7.4fr) minmax(0, 4.6fr); gap: 48px; height: 100%; }
.casamentos__palco { position: relative; min-height: 600px; }
.casamentos__slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility 0s .7s; }
.casamentos__slide.is-on { opacity: 1; visibility: visible; transition: opacity .7s ease; }
.casamentos__nome { position: absolute; left: 0; right: 0; top: 63%; transform: translateY(-50%); margin: 0; text-align: center; white-space: nowrap; font: 400 clamp(60px, 6.6vw, 108px)/1 var(--font-display); letter-spacing: -.02em; color: #f7f2ec; z-index: 3; text-shadow: 0 2px 24px rgba(30,20,16,.55); }
.casamentos__nome em { font-style: italic; color: #f0b79c; }
.casamentos__foto { position: absolute; width: clamp(160px, 16.5vw, 245px); aspect-ratio: 3 / 4; padding: 8px; background: #f7f2ec; box-shadow: 0 18px 40px rgba(0,0,0,.35); transition: transform .9s cubic-bezier(.2,.8,.2,1); }
.casamentos__foto picture, .casamentos__foto img { position: relative; display: block; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 35%); }
.casamentos__foto--1 { left: 2%; top: 5%; transform: rotate(-6deg); }
.casamentos__foto--2 { left: 50%; top: 0; transform: translateX(-50%) rotate(3deg); }
.casamentos__foto--3 { right: 1%; top: 16%; transform: rotate(7deg); z-index: 2; }
.casamentos__slide:not(.is-on) .casamentos__foto--1 { transform: rotate(-14deg) translateY(30px); }
.casamentos__slide:not(.is-on) .casamentos__foto--3 { transform: rotate(14deg) translateY(30px); }
.casamentos__info { position: absolute; left: 8%; right: 8%; bottom: 2%; text-align: center; }
.casamentos__frase { margin: 0 auto 16px; max-width: 44ch; font: italic 400 22px/1.35 var(--font-display); color: #e9ddd3; }
.casamentos__ver { display: inline-flex; align-items: center; gap: 10px; padding: 13px 26px; border-radius: 999px; background: #f0b79c; color: #3b2a24; text-decoration: none; font: 500 15px var(--font-text); letter-spacing: .02em; box-shadow: 0 10px 24px rgba(0,0,0,.25); transition: background .25s, transform .25s; }
.casamentos__ver span { transition: transform .25s; }
.casamentos__ver:hover { background: #f7f2ec; transform: translateY(-1px); }
.casamentos__ver:hover span { transform: translateX(4px); }
.casamentos__ver:focus-visible { outline: 2px solid #f7f2ec; outline-offset: 3px; }
.casamentos__lado { display: flex; flex-direction: column; justify-content: center; }
.casamentos .casamentos__titulo { margin: 0 0 8px; font: 400 clamp(34px, 3vw, 46px)/1.05 var(--font-display); color: #f7f2ec; }
.casamentos .casamentos__intro { margin: 0 0 24px; color: #cdbfb4; font-size: 15px; }
.casamentos__lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.casamentos__item { display: grid; grid-template-columns: 150px 1fr; gap: 18px; align-items: center; width: 100%; padding: 10px; border: 1px solid rgba(247,242,236,.14); border-radius: 12px; background: transparent; color: inherit; text-align: left; cursor: pointer; transition: background .25s, border-color .25s; }
.casamentos__item:hover { background: rgba(247,242,236,.05); }
.casamentos__item.is-on { border-color: #f0b79c; background: rgba(240,183,156,.08); }
.casamentos__thumb { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: 8px; overflow: hidden; background: #473630; }
.casamentos__thumb picture, .casamentos__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
.casamentos__item-nome { display: block; font: 400 26px/1.1 var(--font-display); color: #f7f2ec; }
.casamentos__item.is-on .casamentos__item-nome { color: #f0b79c; }
.casamentos__item-data { display: block; margin-top: 6px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: #cdbfb4; }
@media (max-width: 1023px) {
  .casamentos__grade { grid-template-columns: 1fr; gap: 24px; height: auto; }
  .casamentos__lado { order: -1; }
  .casamentos__palco { min-height: 560px; }
  .casamentos__nome { font-size: clamp(44px, 11vw, 88px); white-space: normal; line-height: .95; top: 60%; }
  .casamentos__foto { width: 32vw; max-width: 200px; padding: 5px; }
  .casamentos__foto--1 { left: 0; } .casamentos__foto--3 { right: 0; }
  .casamentos__info { left: 0; right: 0; }
  .casamentos__frase { font-size: 18px; }
  .casamentos__lista { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .casamentos__item { grid-template-columns: 1fr; gap: 6px; padding: 6px; }
  .casamentos__item-nome { font-size: 17px; } .casamentos__item-data { display: none; }
}
@media (max-width: 639px) {
  main > section#casamentos.casamentos { --hm: 1; }
  .casamentos .casamentos__titulo { font-size: 30px; } .casamentos .casamentos__intro { margin-bottom: 14px; font-size: 14px; }
  .casamentos__thumb { aspect-ratio: 16 / 10; }
  .casamentos__item-nome { font-size: 15px; }
  .casamentos__palco { min-height: 470px; }
  .casamentos__foto { width: 30vw; }
  .casamentos__foto--1 { top: 2%; } .casamentos__foto--2 { top: 0; } .casamentos__foto--3 { top: 10%; }
  .casamentos__nome { top: 54%; font-size: 42px; } .casamentos__info { bottom: 8%; } .casamentos__ver { padding: 11px 22px; font-size: 14px; }
  .casamentos__frase { font-size: 16px; margin-bottom: 8px; }
}
@media (prefers-reduced-motion: reduce) { .casamentos__slide, .casamentos__foto { transition: none; } }
@media (min-width: 1024px) and (max-width: 1279px) {
  .casamentos__grade { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; }
  .casamentos__item { grid-template-columns: 104px 1fr; gap: 14px; padding: 8px; }
  .casamentos__item-nome { font-size: 21px; }
  .casamentos__item-data { font-size: 12px; }
  .casamentos__palco { min-height: 540px; }
  .casamentos__frase { font-size: 19px; }
}

/* Vídeos (A): faixa com a capa desfocada ao fundo, título e lista à esquerda, reel nítido à direita (site.js troca o vídeo) */
main > section.videos { position: relative; overflow: hidden; background: #2a1e1a; color: #f7f2ec; }
.videos__fundo { position: absolute; inset: 0; overflow: hidden; }
.videos__fundo img { width: 100%; height: 100%; object-fit: cover; filter: blur(28px) brightness(.42) saturate(1.1); transform: scale(1.25); transform-origin: center; transition: opacity .5s; }
.videos .wrap { position: relative; height: 100%; }
.videos__grade { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 64px; align-items: center; height: 100%; }
.videos__kicker { margin: 0 0 18px; font: 500 14px var(--font-text); letter-spacing: .16em; text-transform: uppercase; color: #f0b79c; }
.videos .videos__texto h2 { margin: 0 0 36px; font: 400 clamp(46px, 5vw, 80px)/1.04 var(--font-display); letter-spacing: -.015em; color: #f7f2ec; }
.videos__texto h2 em { font-style: italic; color: #f0b79c; }
.videos__lista { list-style: none; margin: 0; padding: 0; border-top: 1px solid rgba(247,242,236,.2); }
.videos__item { display: flex; gap: 18px; width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(247,242,236,.2); background: none; color: rgba(247,242,236,.62); font: 400 24px/1.2 var(--font-display); text-align: left; cursor: pointer; transition: color .25s; }
.videos__item span { font: 500 13px/2 var(--font-text); letter-spacing: .08em; color: rgba(247,242,236,.45); }
.videos__item:hover, .videos__item.is-on { color: #f7f2ec; }
.videos__item.is-on span { color: #f0b79c; }
.videos__reel { justify-self: center; height: min(700px, calc(100svh - 250px)); width: auto; aspect-ratio: 9 / 16; border-radius: 18px; box-shadow: 0 30px 70px rgba(0,0,0,.45); }
@media (max-width: 1023px) {
  .videos__grade { grid-template-columns: minmax(0, 1fr); gap: 20px; align-content: center; justify-items: center; }
  .videos__texto { display: contents; }
  .videos__kicker { order: 1; margin-bottom: -12px; justify-self: start; }
  .videos .videos__texto h2 { order: 2; margin-bottom: 0; font-size: clamp(34px, 8vw, 56px); justify-self: start; }
  .videos__reel { order: 3; height: 58svh; }
  .videos__lista { order: 4; display: flex; gap: 8px; max-width: 100%; overflow-x: auto; border: 0; padding-bottom: 4px; scrollbar-width: none; justify-self: stretch; }
  .videos__lista li { flex: none; }
  .videos__item { width: auto; padding: 10px 16px; border: 1px solid rgba(247,242,236,.3); border-radius: 999px; font: 500 14px/1.2 var(--font-text); white-space: nowrap; gap: 8px; }
  .videos__item span { font-size: 12px; line-height: 1.2; }
  .videos__item.is-on { border-color: #f0b79c; background: rgba(240,183,156,.12); }
}
@media (max-width: 639px) { .videos__reel { height: 46svh; } }

/* Etapas (C): uma caixa de borda fina por etapa, com número, nome, tópicos e a frase */
.etapas__topo { text-align: center; max-width: 760px; margin: 0 auto 40px; }
.etapas__topo h2 { margin: 0 0 12px; }
.etapas__topo h2 em { font-style: italic; color: var(--terra-texto); }
.etapas__topo p { margin: 0; color: var(--muted); }
.etapas__caixas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.etapas__caixa { border: 1px solid color-mix(in oklab, var(--terra-texto) 55%, transparent); padding: 32px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; transition: background .3s; }
.etapas__caixa:hover { background: var(--p-surface); }
.etapas__num { font: italic 400 22px/1 var(--font-display); color: var(--terra-texto); margin-bottom: 14px; }
.etapas__caixa h3 { margin: 0 0 18px; min-height: 2.3em; display: flex; align-items: center; font: 400 26px/1.15 var(--font-display); text-transform: uppercase; letter-spacing: .04em; }
.etapas__caixa ul { list-style: none; margin: 0 0 20px; padding: 0; font-size: 14px; line-height: 1.9; color: var(--ink); }
.etapas__caixa p { margin: auto 0 0; padding-top: 16px; border-top: 1px solid var(--line); font-size: 14px; line-height: 1.55; color: var(--muted); }
@media (max-width: 1023px) {
  .etapas__caixas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .etapas__caixa { padding: 20px 14px; }
  .etapas__caixa h3 { font-size: 19px; margin-bottom: 10px; }
  .etapas__caixa ul { font-size: 13px; line-height: 1.7; margin-bottom: 10px; }
  .etapas__caixa p { display: none; }
  .etapas__topo { margin-bottom: 24px; }
}
/* Etapas: conteúdo no meio da altura e caixas maiores no computador; títulos menores nas telas estreitas */
main > section#etapas > .wrap { display: flex; flex-direction: column; justify-content: center; height: 100%; }
@media (min-width: 1280px) {
  .etapas__caixa { padding: 44px 28px 36px; }
  .etapas__caixa h3 { font-size: 30px; }
  .etapas__caixa ul { font-size: 16px; line-height: 2; }
  .etapas__caixa p { font-size: 15px; }
  .etapas__topo { margin-bottom: 48px; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  .etapas__caixa { padding: 28px 16px; }
  .etapas__caixa h3 { font-size: 21px; letter-spacing: .02em; }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .etapas__caixas { gap: 14px; }
  .etapas__caixa { padding: 32px 22px; }
  .etapas__caixa h3 { font-size: 26px; }
  .etapas__caixa ul { font-size: 16px; line-height: 1.9; }
  .etapas__caixa p { display: block; font-size: 15px; }
}
@media (max-width: 639px) {
  .etapas__caixa { padding: 18px 10px; }
  .etapas__caixa h3 { font-size: 17px; letter-spacing: .01em; }
}

/* Parceiros (A, aprovada em 09/11/2026): faixa de nomes por área, em Garamond, fundo areia, uma tela */
main > section#parceiros.parceiros { background: #efe6db; --h: 1; --hm: 1; }
main > section#parceiros.parceiros > .wrap { display: flex; flex-direction: column; justify-content: center; height: 100%; }
.parceiros__topo { text-align: center; max-width: 760px; margin: 0 auto 48px; }
.parceiros__rotulo { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 14px; letter-spacing: .12em; text-transform: uppercase; color: var(--terra-texto); }
.parceiros__rotulo::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.parceiros__topo h2 { margin: 0 0 12px; }
.parceiros__topo h2 em { font-style: italic; color: var(--terra-texto); }
.parceiros__topo > p:last-child { margin: 0; color: #4a3d37; }
.parceiros__faixas { margin: 0; border-top: 1px solid color-mix(in oklab, var(--terra-texto) 35%, transparent); }
.parceiros__faixa { display: grid; grid-template-columns: 180px 1fr; align-items: center; gap: 24px; padding: 20px 0; border-bottom: 1px solid color-mix(in oklab, var(--terra-texto) 35%, transparent); }
.parceiros__faixa dt { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.parceiros__faixa dd { margin: 0; }
.parceiros__faixa ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.parceiros__faixa li { font: 400 clamp(22px, 2vw, 30px)/1.15 var(--font-display); color: var(--ink); text-align: center; }
.parceiros__faixa li:first-child:last-child { grid-column: 2; }
@media (max-width: 1023px) {
  .parceiros__topo { margin-bottom: 28px; }
  .parceiros__faixa { grid-template-columns: 1fr; gap: 8px; padding: 14px 0; text-align: center; }
  .parceiros__faixa ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px; }
  .parceiros__faixa li { font-size: 20px; }
}
@media (max-width: 639px) { .parceiros__faixa li { font-size: 18px; } .parceiros__faixa { padding: 10px 0; } }
@media (min-width: 640px) and (max-width: 1023px) {
  .parceiros__topo { margin-bottom: 40px; }
  .parceiros__topo > p:last-child { font-size: 17px; }
  .parceiros__faixa { padding: 22px 0; }
  .parceiros__faixa dt { font-size: 14px; }
  .parceiros__faixa li { font-size: 28px; }
}

/* Perguntas (A, aprovada em 09/11/2026): foto à esquerda e perguntas que abrem uma por vez (<details name>) */
main > section#perguntas.perguntas { --h: 1; --hm: 1; }
main > section#perguntas.perguntas > .wrap { display: flex; flex-direction: column; justify-content: center; height: 100%; }
.perguntas__grade { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; align-items: center; }
.perguntas__foto { position: relative; aspect-ratio: 4 / 5; max-height: calc(100svh - 200px); width: 100%; overflow: hidden; border-radius: 12px; background: var(--p-surface); }
.perguntas__foto picture, .perguntas__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 40%); }
.perguntas__rotulo { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 12px; font-size: 14px; letter-spacing: .12em; text-transform: uppercase; color: var(--terra-texto); }
.perguntas__rotulo::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.perguntas__texto h2 { margin: 0 0 28px; }
.perguntas__lista details { border-bottom: 1px solid var(--line); }
.perguntas__lista details:first-child { border-top: 1px solid var(--line); }
.perguntas__lista summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 18px 0; font: 400 22px/1.3 var(--font-display); color: var(--ink); }
.perguntas__lista summary::-webkit-details-marker { display: none; }
.perguntas__lista summary:hover { color: var(--terra-texto); }
.perguntas__lista summary:focus-visible { outline: 2px solid var(--terra-texto); outline-offset: 4px; }
.perguntas__mais { position: relative; flex: none; width: 14px; height: 14px; }
.perguntas__mais::before, .perguntas__mais::after { content: ""; position: absolute; left: 0; top: 50%; width: 14px; height: 1.5px; background: currentColor; transition: transform .3s; }
.perguntas__mais::after { transform: rotate(90deg); }
details[open] .perguntas__mais::after { transform: rotate(0deg); }
.perguntas__lista details p { margin: 0; padding: 0 40px 20px 0; color: #4a3d37; font-size: 16px; line-height: 1.6; }
.perguntas__zap { margin: 28px 0 0; color: #4a3d37; }
@media (min-width: 1024px) and (max-width: 1279px) { .perguntas__grade { gap: 40px; } .perguntas__lista summary { font-size: 20px; padding: 14px 0; } }
@media (max-width: 1023px) {
  .perguntas__grade { grid-template-columns: 1fr; gap: 24px; }
  .perguntas__foto { aspect-ratio: 16 / 9; max-height: 30svh; }
}
@media (max-width: 639px) {
  .perguntas__foto { display: none; }
  .perguntas__texto h2 { margin-bottom: 16px; }
  .perguntas__lista summary { font-size: 19px; padding: 14px 0; }
  .perguntas__lista details p { padding-right: 0; font-size: 15px; }
}

/* Orçamento (A, aprovada em 09/11/2026): foto dos noivos + formulário de linhas finas com rótulos em pergunta, fundo areia */
.form-linha.form-zap { background: none; padding: 0; border-radius: 0; gap: 22px 32px; }
.form-linha .field { font: 500 13px/1.3 var(--font-text); letter-spacing: .08em; text-transform: uppercase; color: var(--ink); gap: 6px; }
.form-linha .field :is(input, select, textarea) { background: transparent; border: 0; border-bottom: 1px solid color-mix(in oklab, var(--ink) 40%, transparent); border-radius: 0; padding: 8px 0; height: auto; min-height: 0; font: 400 17px/1.4 var(--font-text); letter-spacing: 0; text-transform: none; color: var(--ink); }
.form-linha .field textarea { min-height: 64px; resize: vertical; }
.form-linha .field :is(input, select, textarea):focus { outline: none; border-bottom: 2px solid var(--terra-texto); }
.form-linha .field :is(input, textarea)::placeholder { color: #8a7b72; }
.form-linha .btn-row { margin-top: 6px; }
.form-linha .form-zap__nota { margin: 0; font-size: 13px; color: #4a3d37; }
@media (min-width: 640px) and (max-width: 1279px) and (max-height: 860px) {
  .form-linha.form-zap { gap: 12px 24px; }
  .form-linha .field { gap: 2px; font-size: 12px; }
  .form-linha .field :is(input, select, textarea) { padding: 5px 0; font-size: 16px; }
  .form-linha .field textarea { min-height: 40px; }
  .form-linha .btn-row { margin-top: 2px; }
}
@media (max-width: 639px) { .form-linha.form-zap { gap: 14px; } .form-linha .field :is(input, select, textarea) { font-size: 16px; padding: 6px 0; } }
main > section#orcamento.orcamento { --h: 1; --hm: 1; background: #efe6db; }
main > section#orcamento.orcamento > .wrap { display: flex; flex-direction: column; justify-content: center; height: 100%; }
.orcamento__grade { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; align-items: stretch; }
.orcamento__foto { position: relative; min-height: 420px; overflow: hidden; border-radius: 12px; background: var(--p-surface); }
.orcamento__foto picture, .orcamento__foto img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 40%); }
.orcamento__sobre { margin: 0 0 6px; font: italic 400 24px/1.2 var(--font-display); color: var(--terra-texto); }
.orcamento__texto h2 { margin: 0 0 12px; }
.orcamento__intro { margin: 0 0 32px; color: #4a3d37; max-width: 56ch; }
@media (min-width: 1024px) and (max-width: 1279px) { .orcamento__grade { gap: 40px; } .orcamento__intro { margin-bottom: 16px; font-size: 15px; } .orcamento__sobre { font-size: 20px; margin-bottom: 0; } .orcamento__texto h2 { margin-bottom: 6px; } }
@media (max-width: 1023px) {
  .orcamento__grade { grid-template-columns: 1fr; gap: 28px; }
  .orcamento__foto { min-height: 0; aspect-ratio: 16 / 7; }
}
@media (max-width: 639px) {
  main > section#orcamento.orcamento { --hm: 2; }
  .orcamento__foto { aspect-ratio: 4 / 3; }
  .orcamento__intro { margin-bottom: 20px; }
}

/* Rodapé (A escuro, aprovado em 09/11/2026): contatos e menu em cima e "Linda Cerimonial" enorme de ponta a ponta, fundo cacau */
footer.rodape { background: #3b2a24; color: #f7f2ec; padding: 72px 0 28px; overflow: hidden; }
.rodape__wrap { display: block !important; }
.rodape__topo { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 48px; }
.rodape__slogan { margin: 0 0 8px; font: italic 400 26px/1.25 var(--font-display); color: #f7f2ec; max-width: 22ch; }
.rodape__regiao { margin: 0; color: #e3d7c8; }
footer.rodape .rodape__col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
footer.rodape nav.rodape__col ul { grid-template-columns: 1fr 1fr; column-gap: 32px; }
.rodape__col a { color: #f7f2ec; text-decoration: none; font-size: 16px; }
.rodape__col a:hover { color: #f0b79c; }
/* o nome ocupa a largura da grade: (largura da .wrap) / 6,6 em Garamond */
.rodape__nome { display: block; margin: 56px 0 20px; font: 400 calc(min(100vw - 2 * var(--gut), var(--container)) / 6.6)/.9 var(--font-display); letter-spacing: -.02em; color: #f7f2ec; text-decoration: none; white-space: nowrap; }
.rodape__nome em { font-style: italic; color: #f0b79c; }
.rodape__legal { display: flex; justify-content: space-between; gap: 16px; padding-top: 18px; border-top: 1px solid rgba(247, 242, 236, .2); font-size: 13px; color: #e3d7c8; }
@media (max-width: 1023px) { .rodape__topo { grid-template-columns: 1fr 1fr; } .rodape__col--frase { grid-column: 1 / -1; } }
@media (max-width: 639px) {
  footer.rodape { padding: 48px 0 24px; }
  .rodape__topo { grid-template-columns: 1fr; }
  footer.rodape .rodape__col ul { gap: 0; }
  .rodape__col a { display: inline-block; padding: 8px 0; } /* alvo de toque de ~40px */
  .rodape__topo { gap: 28px; }
  .rodape__nome { margin: 40px 0 16px; }
  .rodape__legal { flex-direction: column; }
}

/* Página de cada casamento (A, aprovada em 09/11/2026): texto parado à esquerda e as fotos num carrossel
   que passa para o lado (setas, arraste, teclado), também no celular */
/* a página do casal não segue a regra de uma seção por tela do kit: a altura acompanha o conteúdo */
main > section.casal-pag, main > section.casal-outros { height: auto !important; max-height: none !important; }
.casal-pag { padding: calc(var(--nav) + 40px) 0 40px; }
.casal__grade { display: grid !important; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; align-items: start; }
.casal__voltar { display: inline-block; margin-bottom: 28px; font-size: 14px; color: #4a3d37; text-decoration: none; border-bottom: 1px solid var(--line); }
.casal__voltar:hover { color: var(--terra-texto); }
.casal__texto h1 { margin: 0 0 8px; font: 400 clamp(48px, 4.6vw, 72px)/1 var(--font-display); letter-spacing: -.01em; }
.casal__data { margin: 0 0 28px; font: italic 400 22px/1.3 var(--font-display); color: var(--terra-texto); }
.casal__texto h1 + .casal__historia { margin-top: 24px; }
.casal__historia p { margin: 0 0 14px; font-size: 16px; line-height: 1.65; color: #4a3d37; }
.casal__assinatura { margin: 18px 0 24px; font: italic 400 22px/1 var(--font-display); color: var(--terra-texto); }
.casal__acoes { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.casal__ig { color: var(--ink); text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 2px; font-size: 15px; }
.casal__ig:hover { color: var(--terra-texto); }
.casal__creditos { margin: 20px 0 0; font-size: 13px; color: #4a3d37; }
/* a fila de fotos vai até a borda direita da tela */
.casal__album { margin-right: calc((100vw - min(100vw - 2 * var(--gut), var(--container))) / -2); min-width: 0; }
.casal__fita { display: flex; gap: 16px; height: calc(100svh - var(--nav) - 180px); min-height: 460px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; outline-offset: 4px; }
.casal__fita::-webkit-scrollbar { display: none; }
.casal__fita:focus-visible { outline: 2px solid var(--terra-texto); }
.casal__foto { flex: none; height: 100%; margin: 0; scroll-snap-align: start; border-radius: 8px; overflow: hidden; background: var(--p-surface); }
.casal__foto picture, .casal__foto img { display: block; height: 100%; width: auto; }
.casal__controles { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding-right: max(var(--gut), calc((100vw - var(--container)) / 2)); }
.casal__contador { font: 400 18px/1 var(--font-display); color: #4a3d37; letter-spacing: .04em; }
.casal__contador b { font-weight: 400; color: var(--ink); }
.casal__setas { display: flex; gap: 8px; }
.casal__seta { width: 44px; height: 44px; border-radius: 50%; border: 1px solid color-mix(in oklab, var(--ink) 35%, transparent); background: transparent; color: var(--ink); font-size: 18px; cursor: pointer; transition: background .2s, color .2s; }
.casal__seta:hover { background: var(--ink); color: var(--bg); }
.casal__seta:focus-visible { outline: 2px solid var(--terra-texto); outline-offset: 2px; }
.casal-outros { padding: 40px 0 96px; }
.casal-outros h2 { margin: 0 0 20px; font: 400 32px/1.1 var(--font-display); }
.casal-outros__lista { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.casal-outros__lista a { display: grid; grid-template-columns: 96px 1fr auto auto; align-items: center; gap: 28px; padding: 16px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.casal-outros__foto { display: block; width: 96px; height: 72px; border-radius: 6px; overflow: hidden; }
.casal-outros__foto picture, .casal-outros__foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.casal-outros__nome { font: 400 clamp(28px, 3vw, 44px)/1 var(--font-display); transition: color .2s; }
.casal-outros__data { font: italic 400 18px/1 var(--font-display); color: #4a3d37; }
.casal-outros__seta { font-size: 22px; transition: transform .25s; }
.casal-outros__lista a:hover .casal-outros__nome { color: var(--terra-texto); }
.casal-outros__lista a:hover .casal-outros__seta { transform: translateX(6px); }
@media (min-width: 1024px) and (max-width: 1279px) { .casal__grade { gap: 36px; } .casal__historia p { font-size: 15px; } }
@media (max-width: 1023px) {
  .casal__grade { grid-template-columns: 1fr; gap: 28px; }
  /* no celular e no tablet também é carrossel: desliza para o lado, com a próxima foto aparecendo */
  .casal__album { margin-right: calc(-1 * var(--gut)); }
  .casal__fita { height: min(62svh, 560px, 106vw); min-height: 0; gap: 10px; } /* em 3:4, a foto fica com ~80% da largura e a próxima aparece */
  .casal__controles { padding-right: var(--gut); }
  .casal-outros__lista a { grid-template-columns: 72px 1fr auto; gap: 16px; }
  .casal-outros__foto { width: 72px; height: 56px; }
  .casal-outros__data { display: none; }
}

/* Celular: a seção cresce com o conteúdo em vez de ter a altura fixa de uma ou duas telas (no iPhone SE,
   de 667px, o conteúdo vazava para a seção seguinte). Como nos sites de referência no celular, as
   seções empilham com o respiro do padding, sem cortar e sem sobrar tela vazia. */
@media (max-width: 639px) {
  main > :is(section, .section):not(.hero, .section--hero, .hero-ad) {
    height: auto; min-height: 0; display: flex; flex-direction: column; padding-top: 88px; padding-bottom: 72px;
  }
  main > :is(section, .section):not(.hero, .section--hero, .hero-ad) > :is(.wrap, .container) { flex: 1 0 auto; height: auto; min-height: 0; }
}
/* celular: links soltos com área de toque maior (~44px), sem mudar o desenho */
@media (max-width: 639px) {
  :is(.ad-link, .servicos__link a, .perguntas__zap a, .casal__voltar, .casal__ig) { display: inline-block; padding-block: 10px; }
}
