/* UIcons oficiais mantidos localmente para evitar falhas de CDN. */
@font-face { font-family: "uicons-thin-rounded"; src: url("assets/uicons-thin-rounded.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "uicons-regular-rounded"; src: url("assets/uicons-regular-rounded.woff2") format("woff2"); font-display: swap; }
@font-face { font-family: "uicons-brands"; src: url("assets/uicons-brands.woff2") format("woff2"); font-display: swap; }

/* Ajustes de fidelidade baseados na prancha original de 1122 × 1404 px. */
html, body { width: 100%; max-width: 100%; }
body { background: #ffffff; }
main {
  position: relative;
  isolation: isolate;
  width: min(100%, 1122px);
  margin-inline: auto;
  background: var(--cream);
  border-inline: 1px solid rgba(255, 241, 202, .82);
  box-shadow: 0 0 44px rgba(83, 54, 47, .055), 0 0 70px rgba(255, 250, 245, .52);
  overflow: clip;
}

main::before,
main::after {
  content: "";
  position: absolute;
  z-index: 8;
  top: 0;
  bottom: 0;
  width: clamp(44px, 6.5vw, 92px);
  pointer-events: none;
  opacity: .86;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  animation: sideLightBreath 7s ease-in-out infinite alternate;
}

main::before {
  left: 0;
  background: linear-gradient(90deg,
    rgba(255,255,255,.96) 0%,
    rgba(255,253,250,.72) 22%,
    rgba(255,252,248,.34) 52%,
    rgba(255,255,255,.08) 78%,
    transparent 100%);
  -webkit-mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.8) 48%, transparent 100%);
  mask-image: linear-gradient(90deg, #000 0%, rgba(0,0,0,.8) 48%, transparent 100%);
  box-shadow:
    inset 2px 0 0 rgba(255,255,245,.98),
    inset 5px 0 7px rgba(255,225,147,.8),
    inset 12px 0 22px rgba(255,202,102,.26);
}

main::after {
  right: 0;
  background: linear-gradient(270deg,
    rgba(255,255,255,.96) 0%,
    rgba(255,253,250,.72) 22%,
    rgba(255,252,248,.34) 52%,
    rgba(255,255,255,.08) 78%,
    transparent 100%);
  -webkit-mask-image: linear-gradient(270deg, #000 0%, rgba(0,0,0,.8) 48%, transparent 100%);
  mask-image: linear-gradient(270deg, #000 0%, rgba(0,0,0,.8) 48%, transparent 100%);
  box-shadow:
    inset -2px 0 0 rgba(255,255,245,.98),
    inset -5px 0 7px rgba(255,225,147,.8),
    inset -12px 0 22px rgba(255,202,102,.26);
  animation-delay: -3.5s;
}

@keyframes sideLightBreath {
  from { opacity: .48; filter: brightness(.98); }
  to { opacity: .78; filter: brightness(1.08); }
}

@media (min-width: 1180px) {
  body::before,
  body::after {
    content: "";
    position: fixed;
    z-index: 0;
    top: 70px;
    bottom: 0;
    width: min(22vw, 320px);
    pointer-events: none;
    filter: blur(16px);
    opacity: .9;
    animation: outerGlowFloat 9s ease-in-out infinite alternate;
  }

  body::before {
    left: 0;
    background: radial-gradient(ellipse at right center, rgba(255,255,255,.92) 0%, rgba(255,245,237,.38) 38%, transparent 72%);
  }

  body::after {
    right: 0;
    background: radial-gradient(ellipse at left center, rgba(255,255,255,.92) 0%, rgba(255,245,237,.38) 38%, transparent 72%);
    animation-delay: -4.5s;
  }

  .site-header,
  main,
  .site-footer { position: relative; z-index: 1; }
}

@keyframes outerGlowFloat {
  from { opacity: .64; transform: translateY(-1.5%) scaleY(.96); }
  to { opacity: .94; transform: translateY(1.5%) scaleY(1.04); }
}

/* Título com iluminação dourada inspirada em espelho de camarim. */
.hero h1 {
  color: #332a27;
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-weight: 600;
  letter-spacing: -.035em;
  text-shadow:
    0 1px 0 rgba(255,255,255,.78),
    0 5px 18px rgba(71,45,37,.10),
    0 0 14px rgba(246,215,158,.16);
  filter: drop-shadow(0 0 3px rgba(241,202,129,.10));
  animation:
    heroEnter .7s .18s cubic-bezier(.2,.75,.2,1) forwards,
    vanityTitleGlow 5.8s 1s ease-in-out infinite alternate;
}

.hero h1 em {
  color: #9b4e43;
  font-family: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  font-style: italic;
  font-weight: 500;
  letter-spacing: -.025em;
  text-shadow:
    0 1px 0 rgba(255,250,235,.95),
    0 0 8px rgba(247,218,159,.38),
    0 4px 16px rgba(111,55,43,.13);
}

@keyframes vanityTitleGlow {
  0% {
    filter: brightness(1) drop-shadow(0 0 2px rgba(242,207,141,.10));
  }
  100% {
    filter: brightness(1.025) drop-shadow(0 0 5px rgba(242,199,119,.20));
  }
}
.site-header .nav-wrap, .site-footer .footer-grid { margin-inline: auto; }

@media (min-width: 1001px) {
  .container { width: 940px; max-width: calc(100% - 40px); }

  .site-header { height: 80px; }
  .site-header .nav-wrap { width: 970px; }
  .site-header .brand { gap: 12px; }
  .site-header .monogram { font-size: 42px; }
  .site-header .brand-text strong { font-size: 24px; }
  .main-nav { gap: 40px; }
  .main-nav a { padding-top: 28px; font-size: 14px; }
  .header-cta { min-width: 168px; min-height: 42px; padding: 10px 17px; }

  .hero { min-height: 405px; height: 405px; background: #faf6f2; }
  .hero-grid { width: 100%; max-width: none; min-height: 405px; height: 405px; grid-template-columns: 50% 50%; }
  .hero-copy { padding: 53px 20px 18px max(24px, calc((min(100vw, 1122px) - 940px) / 2 + 28px)); }
  .hero h1 { max-width: 468px; margin: 13px 0 10px; font-size: 47px; line-height: .98; }
  .hero h1 > span { white-space: nowrap; }
  .hero .lead { font-size: 14px; line-height: 1.45; margin-bottom: 22px; }
  .hero-actions { gap: 15px; }
  .hero-actions .btn { height: 42px; padding: 10px 18px; font-size: 13px; }
  .btn i { display: inline-flex; line-height: 1; font-size: 17px; }
  .trust { margin-top: 21px; font-size: 11px; }
  .trust i { color: var(--terracotta); font-size: 17px; margin-right: 10px; vertical-align: -3px; }
  .hero-visual { height: 405px; overflow: hidden; }
  .hero-visual > img { display: block; position: absolute; inset: -12px 0 auto; width: 100%; height: 417px; max-width: none; margin: 0; object-fit: cover; filter: none; transform: none; }
  .leaf-left { left: -22px; top: 36px; opacity: .42; }

  .treatments { padding: 20px 0 16px; }
  .section-heading span { font-size: 11px; letter-spacing: 6px; }
  .section-heading h2 { font-size: 30px; margin: 2px 0 10px; }
  .cards-grid { gap: 11px; }
  .treatment-card { min-height: 198px; padding: 13px 13px 10px; border-radius: 15px; }
  .treatment-icon-box { display: flex; height: 66px; align-items: center; justify-content: center; }
  .treatment-card .treatment-fi { display: inline-flex !important; width: auto !important; height: auto !important; margin: 0 !important; background: transparent !important; color: var(--terracotta); font-size: 50px; line-height: 1; font-style: normal; }
  .treatment-card h3 { font-size: 14px; margin: 0 0 6px; }
  .treatment-card p { font-size: 10.7px; line-height: 1.42; }

  .about { padding: 0 0 23px; }
  .about-panel { min-height: 265px; height: 265px; grid-template-columns: 290px 372px 278px; }
  .about-photo { margin: 0; padding: 0; background: #ead6cc; }
  .about-photo img { display: block; position: static; width: 100%; height: 100%; max-width: 100%; margin: 0; object-fit: cover; }
  .about-copy { padding: 18px 30px 14px; }
  .about-copy h2 { font-size: 36px; margin: 3px 0 13px; }
  .about-copy h2 em { font-size: 47px; }
  .about-copy p { font-size: 10.4px; line-height: 1.4; margin-bottom: 9px; }
  .quote-card { margin: 16px 24px 16px 8px; padding: 7px; }
  .quote-card .script { font-size: 30px; }
  .quote-card strong { font-size: 16px; }
  .quote-card p { margin: 3px; }
  .quote-card small { font-size: 9.5px; }

  .differentials { padding-bottom: 17px; }
  .diff-panel { height: 119px; padding: 22px 15px 11px; }
  .ribbon-title { top: -10px; }
  .ribbon-title span { font-size: 11px; letter-spacing: 6px; }
  .diff-grid article { grid-template-columns: 59px 1fr; gap: 12px; padding: 0 16px; }
  .round-icon { width: 55px; height: 55px; }
  .round-icon i { color: var(--terracotta); font-size: 31px; font-style: normal; line-height: 1; }
  .diff-grid h3 { font-size: 12px; margin: 4px 0 6px; }
  .diff-grid p { font-size: 8.8px; line-height: 1.4; }

  .contact { padding-bottom: 12px; }
  .contact-panel { width: 940px; height: 132px; grid-template-columns: 408px 300px 232px; }
  .contact-copy { padding-left: 128px; }
  .contact-copy h2 { font-size: 27px; margin-bottom: 6px; }
  .contact-copy h2 em { font-size: 37px; }
  .contact-copy p { font-size: 10px; }
  .contact-links { gap: 8px; }
  .contact-links a { width: 255px; height: 42px; padding: 0 14px; font-size: 13px; }
  .contact-links a > i { display: inline-flex; width: 24px; margin-right: 12px; color: var(--terracotta); font-size: 23px; }
  .contact-decor { height: 132px; margin: 0; padding: 0; overflow: hidden; align-self: stretch; }
  .contact-decor img { display: block; width: 240px; height: 156px; margin: 0; object-fit: cover; object-position: center; transform: translate(-3px,-14px); }
  .contact-panel::before { display: none; }

  .site-footer { min-height: 64px; padding: 10px 0; }
  .site-footer .container { width: 940px; }
  .footer-grid { grid-template-columns: 1fr 1fr 1.55fr; }
  .site-footer nav { gap: 27px; }
}

@media (min-width: 821px) and (max-width: 1000px) {
  .container { width: min(100% - 48px, 860px); }
  .site-header .nav-wrap { width: min(100% - 48px, 900px); }
  .main-nav { gap: 20px; }
  .site-header .brand-text strong { font-size: 21px; }

  .hero { min-height: 0; height: auto; background: #faf6f2; }
  .hero-grid { min-height: 0; height: auto; }
  .hero-grid { display: flex; width: 100%; max-width: none; margin: 0; flex-direction: column; }
  .hero-copy { width: min(100% - 48px, 860px); margin-inline: auto; padding: 48px 24px 28px; text-align: center; }
  .hero h1 { max-width: 720px; margin-inline: auto; font-size: clamp(41px, 5vw, 48px); line-height: 1.04; }
  .hero h1 > span { white-space: nowrap; }
  .hero .lead { font-size: 13px; }
  .hero-actions { justify-content: center; }
  .trust { margin-bottom: 0; }
  .hero-visual { width: 100%; height: auto; margin: 0; aspect-ratio: 564 / 417; overflow: hidden; background: #ead2c5; }
  .hero-visual > img { display: block; position: absolute; inset: 0; width: 100%; height: 100%; max-width: 100%; margin: 0; object-fit: contain; object-position: center; transform: none; }

  .cards-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 13px; }
  .treatment-card { min-height: 205px; }
  .treatment-icon-box { display: flex; height: 66px; align-items: center; justify-content: center; }
  .treatment-card .treatment-fi { display: inline-flex !important; width: auto !important; height: auto !important; margin: 0 !important; background: transparent !important; color: var(--terracotta); font-size: 49px; line-height: 1; }

  .about-panel { height: auto; min-height: 0; grid-template-columns: 38% 62%; }
  .about-photo { width: 100%; height: auto; margin: 0; padding: 0; aspect-ratio: 290 / 265; }
  .about-photo img { display: block; position: static; width: 100%; height: 100%; max-width: 100%; margin: 0; object-fit: cover; transform: none; }
  .about-copy { padding: 25px 30px; }
  .quote-card { grid-column: 1 / -1; margin: 0 20px 20px; min-height: 210px; }

  .diff-panel { height: auto; }
  .diff-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 20px; }
  .diff-grid article { min-width: 0; }

  .contact-panel { width: min(100% - 48px, 860px); height: 145px; grid-template-columns: 40% 38% 22%; }
  .contact-copy { padding-left: 38px; }
  .contact-links a { width: min(100%, 280px); }
  .contact-decor { height: 145px; margin: 0; overflow: hidden; }
  .contact-decor img { display: block; width: 100%; height: 100%; margin: 0; object-fit: cover; transform: none; }
}

@media (max-width: 820px) {
  body { overflow-x: hidden; }
  .hero-grid { width: 100%; max-width: none; margin: 0; }
  .hero-copy { width: min(100% - 28px, 620px); margin-inline: auto; padding-bottom: 12px; }
  .hero-visual { width: 100%; height: auto; margin: 0; padding: 0; aspect-ratio: 564 / 417; background: #ead2c5; }
  .hero-visual > img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: 100%; object-fit: contain; object-position: center; filter: none; transform: none; }
  .hero-arch, .hero-orbit, .decor-niche { display: none; }
  .treatment-icon-box { display: flex; height: 66px; align-items: center; justify-content: center; }
  .treatment-card .treatment-fi { display: inline-flex !important; width: auto !important; height: auto !important; margin: 0 !important; background: transparent !important; color: var(--terracotta); font-size: 49px; line-height: 1; }
  .about-panel { padding: 0; }
  .about-photo { width: 100%; height: auto; margin: 0; padding: 0; aspect-ratio: 290 / 265; }
  .about-photo img { position: static; width: 100%; height: 100%; max-width: 100%; object-fit: cover; transform: none; }
  .round-icon i { color: var(--terracotta); font-size: 31px; font-style: normal; }
  .contact-links a > i { width: 26px; margin-right: 12px; color: var(--terracotta); font-size: 24px; }
  .contact-decor { margin: 0; padding: 0; }
  .contact-decor img { display: block; width: 100%; height: 100%; margin: 0; object-fit: cover; }
}

@media (max-width: 600px) {
  main::before,
  main::after {
    width: 30px;
    opacity: .52;
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
  }
}

@media (max-width: 430px) {
  .hero-copy { padding-inline: 0; }
  .hero h1 { font-size: clamp(36px, 11vw, 45px); overflow-wrap: anywhere; }
  .hero-visual { height: auto; }
  .hero-visual > img { object-position: center; }
}

/* Interações e movimento */
.scroll-progress {
  position: fixed;
  inset: 0 auto auto 0;
  z-index: 100;
  width: 0;
  height: 3px;
  pointer-events: none;
  background: linear-gradient(90deg, #9f5043, #d89a82);
  box-shadow: 0 1px 8px rgba(159, 80, 67, .28);
  transition: width .08s linear;
}

.site-header {
  transition: box-shadow .3s ease, background-color .3s ease;
}

.site-header.is-scrolled {
  background: rgba(251, 247, 243, .92);
  box-shadow: 0 8px 28px rgba(82, 50, 42, .09);
}

.main-nav a::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 2px;
  width: 0;
  height: 2px;
  background: var(--terracotta);
  transform: translateX(-50%);
  transition: width .28s ease;
}

.main-nav a:hover::before { width: 100%; }

.brand .monogram,
.brand .brand-mark {
  transition: transform .35s cubic-bezier(.2,.8,.2,1), filter .35s ease;
}

.brand:hover .monogram,
.brand:hover .brand-mark {
  transform: translateY(-2px) rotate(-3deg) scale(1.05);
  filter: drop-shadow(0 6px 5px rgba(164, 87, 72, .18));
}

.brand-mark {
  display: block;
  flex: 0 0 auto;
  width: 52px;
  height: 52px;
  object-fit: contain;
}

.site-footer .brand-mark {
  width: 42px;
  height: 42px;
}

.btn, .contact-links a {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.btn::after, .contact-links a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.42) 48%, transparent 70%);
  transform: translateX(-130%);
  transition: transform .65s ease;
}

.btn:hover::after, .contact-links a:hover::after { transform: translateX(130%); }
.btn i, .contact-links a i, .contact-links a b { transition: transform .25s ease; }
.btn:hover i { transform: rotate(-7deg) scale(1.08); }
.contact-links a:hover { background: rgba(255,255,255,.38); transform: translateX(4px); box-shadow: 0 7px 18px rgba(112,65,54,.08); }
.contact-links a:hover i { transform: scale(1.1) rotate(-5deg); }
.contact-links a:hover b { transform: translateX(4px); }

.ripple-dot {
  position: absolute;
  z-index: -1;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255,255,255,.5);
  pointer-events: none;
  transform: translate(-50%,-50%) scale(0);
  animation: ripple .62s ease-out forwards;
}

@keyframes ripple { to { opacity: 0; transform: translate(-50%,-50%) scale(18); } }

.motion-item {
  --rx: 0deg;
  --ry: 0deg;
  --lift: 0px;
  --reveal-y: 22px;
  opacity: 0;
  transform: perspective(900px) translateY(calc(var(--reveal-y) + var(--lift))) rotateX(var(--rx)) rotateY(var(--ry));
  transform-style: preserve-3d;
  transition: opacity .65s ease, transform .65s cubic-bezier(.2,.75,.2,1), border-color .3s ease, box-shadow .3s ease, background-color .3s ease;
  transition-delay: var(--delay, 0ms);
  will-change: transform;
}

.motion-item.is-visible { --reveal-y: 0px; opacity: 1; }
.motion-item.is-hovered { --lift: -7px; transition-duration: .16s; transition-delay: 0ms; }

.treatment-card, .quote-card, .diff-grid article {
  position: relative;
}

.treatment-card { overflow: hidden; }
.treatment-card::before, .quote-card::before {
  content: "";
  position: absolute;
  inset: -60%;
  pointer-events: none;
  background: radial-gradient(circle at var(--glow-x,50%) var(--glow-y,50%), rgba(197,116,92,.15), transparent 28%);
  opacity: 0;
  transition: opacity .3s ease;
}

.treatment-card.is-hovered::before, .quote-card.is-hovered::before { opacity: 1; }
.treatment-card.is-hovered { border-color: #ca8f7c; box-shadow: 0 16px 32px rgba(103,61,50,.11); background: rgba(255,255,255,.62); }
.treatment-card .treatment-fi, .round-icon { transition: transform .35s cubic-bezier(.2,.8,.2,1), color .3s ease, box-shadow .3s ease; }
.treatment-card:hover .treatment-fi { transform: translateY(-3px) scale(1.08); color: #98483e; }
.diff-grid article:hover .round-icon { transform: rotate(-5deg) scale(1.08); box-shadow: 0 8px 18px rgba(157,83,68,.12); }
.diff-grid article:hover h3 { color: var(--terracotta-dark); }

.reveal-block {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .75s ease, transform .75s cubic-bezier(.2,.75,.2,1);
}

.reveal-block.is-visible { opacity: 1; transform: translateY(0); }

.hero-copy > * {
  opacity: 0;
  transform: translateY(16px);
  animation: heroEnter .7s cubic-bezier(.2,.75,.2,1) forwards;
}
.hero-copy > :nth-child(1) { animation-delay: .08s; }
.hero-copy > :nth-child(2) { animation-delay: .18s; }
.hero-copy > :nth-child(3) { animation-delay: .3s; }
.hero-copy > :nth-child(4) { animation-delay: .4s; }
.hero-copy > :nth-child(5) { animation-delay: .5s; }
@keyframes heroEnter { to { opacity: 1; transform: translateY(0); } }

.hero-visual { clip-path: inset(0 100% 0 0); animation: photoReveal 1s .12s cubic-bezier(.2,.75,.2,1) forwards; }
@keyframes photoReveal { to { clip-path: inset(0 0 0 0); } }

.hero-visual img, .about-photo img, .contact-decor img {
  transition: transform .2s linear, filter .5s ease;
}

.about-photo:hover img, .contact-decor:hover img { filter: saturate(1.04) contrast(1.02); }
.quote-card:hover { box-shadow: 0 14px 32px rgba(112,65,54,.1); }

@media (max-width: 820px) {
  .motion-item { --reveal-y: 16px; }
  .motion-item.is-hovered { --lift: -3px; }
  .hero-visual { clip-path: inset(0 0 0 0); animation: none; }
}

@media (prefers-reduced-motion: reduce) {
  .scroll-progress { display: none; }
  .motion-item, .motion-item.is-visible, .reveal-block, .reveal-block.is-visible,
  .hero-copy > *, .hero-visual, .hero-visual img, .about-photo img,
  .btn, .contact-links a, .brand .monogram, .brand .brand-mark {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
    clip-path: none !important;
  }
  main::before, main::after, body::before, body::after { animation: none !important; }
}

/* Camada UX/UI premium e acessibilidade */
html { scroll-padding-top: 96px; }
body { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
::selection { color: #fff; background: #a85a4b; }

.skip-link {
  position: fixed;
  z-index: 999;
  top: 12px;
  left: 12px;
  padding: 10px 16px;
  border-radius: 8px;
  color: #fff;
  background: #8f493f;
  box-shadow: 0 8px 24px rgba(60,35,30,.2);
  transform: translateY(-150%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }

:where(a, button):focus-visible {
  outline: 3px solid rgba(214,157,92,.72);
  outline-offset: 4px;
  border-radius: 8px;
}

section[id] { scroll-margin-top: 96px; }

.site-header::before {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(173,93,78,.38) 25%, rgba(231,191,133,.55) 50%, rgba(173,93,78,.38) 75%, transparent);
}

.treatment-card,
.about-panel,
.diff-panel,
.contact-panel {
  box-shadow: 0 8px 30px rgba(82,48,41,.035), inset 0 1px 0 rgba(255,255,255,.78);
}

.treatment-card {
  background: linear-gradient(145deg, rgba(255,255,255,.46), rgba(250,242,237,.24));
  backdrop-filter: blur(7px);
}

.treatment-card h3,
.diff-grid h3 { letter-spacing: -.01em; transition: color .25s ease; }

.section-heading h2,
.about-copy h2,
.contact-copy h2 { text-wrap: balance; }

.section-heading > p {
  max-width: 580px;
  margin: 3px auto 14px;
  color: #746762;
  font-size: 11px;
  line-height: 1.5;
}

.ribbon-title h2 {
  margin: 0;
  color: var(--terracotta);
  font: 500 11px/1.5 "DM Sans", sans-serif;
  letter-spacing: 6px;
}

.contact-links { font-style: normal; }

.care-journey { padding: 0 0 18px; }
.journey-shell {
  position: relative;
  overflow: hidden;
  padding: 34px 38px 32px;
  border: 1px solid rgba(255,225,190,.32);
  border-radius: 20px;
  color: #fffaf5;
  background:
    radial-gradient(circle at 92% 4%, rgba(255,218,159,.22), transparent 30%),
    linear-gradient(135deg, #744038 0%, #9d584a 53%, #7b443c 100%);
  box-shadow: 0 22px 55px rgba(91,48,41,.17), inset 0 1px 0 rgba(255,255,255,.24);
}

.journey-shell::after {
  content: "";
  position: absolute;
  inset: -35% -5% auto auto;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(255,236,202,.19);
  border-radius: 50%;
  pointer-events: none;
  box-shadow: 0 0 45px rgba(255,216,147,.08);
}

.journey-heading { position: relative; z-index: 1; max-width: 680px; margin: 0 auto 26px; text-align: center; }
.journey-heading .kicker { color: #f4cdaa; }
.journey-heading h2 { margin: 5px 0 8px; font: 400 30px/1.2 "Playfair Display", serif; text-wrap: balance; }
.journey-heading p { max-width: 590px; margin: auto; color: rgba(255,250,245,.78); font-size: 11px; }
.journey-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.journey-card {
  position: relative;
  min-height: 174px;
  padding: 23px 20px 18px;
  border: 1px solid rgba(255,235,210,.24);
  border-radius: 15px;
  background: rgba(255,250,245,.09);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.13);
  backdrop-filter: blur(10px);
}
.journey-card::before { content: ""; position: absolute; top: 0; left: 22px; width: 46px; height: 2px; background: linear-gradient(90deg,#ffdca6,transparent); }
.journey-number { position: absolute; top: 15px; right: 16px; color: rgba(255,239,216,.44); font: 500 10px "DM Sans"; letter-spacing: 2px; }
.journey-card > i { display: inline-flex; margin-bottom: 13px; color: #f7d2ad; font-size: 30px; transition: transform .3s ease, filter .3s ease; }
.journey-card h3 { margin: 0 0 8px; font-size: 13px; }
.journey-card p { margin: 0; color: rgba(255,250,245,.74); font-size: 9.5px; line-height: 1.5; }
.journey-card:hover { border-color: rgba(255,227,187,.52); background: rgba(255,250,245,.14); box-shadow: 0 16px 34px rgba(50,25,22,.14), inset 0 1px 0 rgba(255,255,255,.2); }
.journey-card:hover > i { transform: translateY(-3px) scale(1.08); filter: drop-shadow(0 0 7px rgba(255,211,139,.4)); }

.faq { padding: 0 0 18px; }
.faq-shell {
  display: grid;
  grid-template-columns: 33% 67%;
  gap: 30px;
  padding: 28px 32px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255,255,255,.42), rgba(244,231,223,.3));
  box-shadow: 0 14px 38px rgba(81,48,41,.06), inset 0 1px 0 rgba(255,255,255,.85);
}
.faq-heading { align-self: center; }
.faq-heading h2 { margin: 5px 0 0; font: 400 25px/1.22 "Playfair Display",serif; text-wrap: balance; }
.faq-list { display: grid; gap: 8px; }
.faq-list details { border: 1px solid rgba(213,171,156,.58); border-radius: 11px; background: rgba(255,253,250,.62); transition: border-color .25s ease, box-shadow .25s ease, background .25s ease; }
.faq-list details[open] { border-color: #c98c79; background: rgba(255,255,255,.82); box-shadow: 0 10px 24px rgba(91,49,42,.07); }
.faq-list summary { display: flex; align-items: center; min-height: 45px; padding: 0 15px; cursor: pointer; font-size: 11px; font-weight: 600; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary i { display: inline-flex; margin-left: auto; color: var(--terracotta); font-size: 18px; transition: transform .25s ease; }
.faq-list details[open] summary i { transform: rotate(45deg); }
.faq-list details p { margin: 0; padding: 0 15px 14px; color: #6f625d; font-size: 10px; line-height: 1.5; }

.contact-links a {
  backdrop-filter: blur(8px);
  transition: transform .25s ease, box-shadow .25s ease, background-color .25s ease, border-color .25s ease;
}

.floating-actions {
  position: fixed;
  z-index: 80;
  right: max(18px, calc((100vw - 1122px) / 2 + 18px));
  bottom: 22px;
  display: flex;
  align-items: center;
  gap: 9px;
  pointer-events: none;
}

.floating-actions > * {
  pointer-events: auto;
  border: 1px solid rgba(172,94,77,.26);
  color: #fff;
  background: rgba(159,80,67,.92);
  box-shadow: 0 12px 32px rgba(84,45,38,.2), inset 0 1px 0 rgba(255,255,255,.25);
  backdrop-filter: blur(12px);
}

.floating-whatsapp {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 0 17px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  transform: translateY(0);
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.floating-whatsapp i { display: inline-flex; font-size: 20px; }
.floating-whatsapp:hover { background: #8f493f; transform: translateY(-3px); box-shadow: 0 16px 36px rgba(84,45,38,.27); }

.back-to-top {
  display: grid;
  width: 46px;
  height: 46px;
  padding: 0;
  place-items: center;
  border-radius: 50%;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(.92);
  transition: opacity .25s ease, visibility .25s ease, transform .25s ease, background .25s ease;
}

.back-to-top i { display: inline-flex; font-size: 17px; }
.back-to-top.is-visible { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.back-to-top:hover { background: #8f493f; transform: translateY(-3px) scale(1.04); }

body.menu-open { overflow: hidden; }

@media (max-width: 820px) {
  html { scroll-padding-top: 78px; }
  section[id] { scroll-margin-top: 78px; }
  .floating-actions { right: 14px; bottom: 14px; }
  .floating-whatsapp span { display: none; }
  .floating-whatsapp { width: 48px; height: 48px; min-height: 48px; padding: 0; justify-content: center; }
  .back-to-top { width: 48px; height: 48px; }
  .main-nav.open { max-height: calc(100vh - 70px); overflow-y: auto; }
  .journey-shell { padding: 30px 22px 24px; }
  .journey-grid { grid-template-columns: 1fr; }
  .journey-card { min-height: 150px; }
  .faq-shell { grid-template-columns: 1fr; gap: 20px; padding: 25px 20px; }
  .faq-heading { text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  .skip-link, .floating-whatsapp, .back-to-top { transition: none !important; }
}

/* Acabamento óptico das fotografias: profundidade suave sem filtro artificial. */
.hero-visual::after,
.about-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}

.hero-visual::after {
  background:
    radial-gradient(circle at 46% 34%, transparent 52%, rgba(53,31,24,.07) 112%),
    linear-gradient(90deg, rgba(255,248,240,.08), transparent 14% 88%, rgba(64,34,27,.04));
  box-shadow:
    inset 1px 0 rgba(255,255,255,.58),
    inset 0 1px rgba(255,255,255,.24),
    inset 0 -1px rgba(92,50,39,.08);
}

.about-photo::after {
  background: linear-gradient(135deg, rgba(255,255,255,.09), transparent 38% 78%, rgba(91,52,42,.035));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.34);
}
