:root{
  /* Paleta clara (fiel ao cartão) */
  --bg: #fbf6f3;
  --panel: #ffffff;
  --sand: #e6d2c7;
  --rose: #f2cfcc;
  --ink: #4a3b36;
  --muted: #7f706b;
  --ring: #c89f98;
  --shadow: 0 14px 36px rgba(74,59,54,.08);
  --stroke: rgba(74,59,54,.10);
  --radius: 22px;
  --max: 980px;
  --radiusLg: 28px;
  --glow: 0 30px 90px rgba(200,159,152,.22);
  --ease: cubic-bezier(.2,.9,.2,1);
}

*{box-sizing:border-box}
html{color-scheme:light}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--ink);
  background:
    radial-gradient(900px 380px at 30% 10%, rgba(242,207,204,.40), transparent 62%),
    radial-gradient(900px 380px at 80% 55%, rgba(230,210,199,.36), transparent 62%),
    linear-gradient(180deg, #fbf6f3, #f8f1ee);
}

a{color:inherit}
a:focus-visible{outline: 3px solid var(--ring); outline-offset: 2px}
img{max-width:100%; display:block}
code{font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}

.muted{color: var(--muted)}

.skip{
  position:absolute;
  left:-9999px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}
.skip:focus{
  left:16px;
  top:16px;
  width:auto;
  height:auto;
  padding:10px 12px;
  background:white;
  border-radius:12px;
  outline:3px solid var(--ring);
  z-index:10;
}

.page{min-height:100vh}

/* evita que a barra fixa (mobile) tape o fim do conteúdo */
@media (max-width: 819px){
  .page{padding-bottom: 92px}
}

.hero{display:none}

.heroV2{
  padding: clamp(28px, 6vw, 72px) 18px 18px;
}
.heroV2__inner{
  max-width: var(--max);
  margin: 0 auto;
  border-radius: var(--radiusLg);
  border: 1px solid var(--stroke);
  background: rgba(255,255,255,.84);
  box-shadow: var(--shadow), var(--glow);
  position: relative;
  overflow: hidden;
}
.heroV2__inner::before{
  content:"";
  position:absolute;
  inset: -80px -40px auto -40px;
  height: 260px;
  background:
    radial-gradient(420px 220px at 20% 30%, rgba(242,207,204,.55), transparent 62%),
    radial-gradient(520px 260px at 70% 10%, rgba(230,210,199,.50), transparent 60%);
  pointer-events:none;
}
.heroV2__inner::after{
  content:"";
  position:absolute;
  inset:auto -40px -80px -40px;
  height: 260px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='260' viewBox='0 0 1200 260'%3E%3Cg fill='none' stroke='%23eadbd6' stroke-width='3' opacity='.65'%3E%3Cpath d='M-40 60c140-110 240-110 380 0s240 110 380 0 240-110 420 20'/%3E%3Cpath d='M-60 110c170-130 280-120 430 0s260 120 420 0 260-120 480 10'/%3E%3Cpath d='M-80 160c200-140 330-130 500 0s300 130 500 0 300-130 560 0'/%3E%3Cpath d='M-100 210c230-150 380-140 570 0s340 140 560 0 340-140 640 0'/%3E%3C/g%3E%3C/svg%3E") center bottom / 1200px 260px no-repeat;
  pointer-events:none;
  opacity: .55;
}
.heroV2__inner{
  display:grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.heroV2__copy{
  position: relative;
  z-index: 1;
  padding: 26px 22px 18px;
}
.heroV2__kicker{
  margin: 0 0 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--muted);
  font-size: 12px;
}
.heroV2__title{
  margin: 0 0 10px;
  font-family: Fraunces, Georgia, serif;
  font-weight: 700;
  letter-spacing: .2px;
  line-height: 1.03;
  font-size: clamp(42px, 5.2vw, 66px);
}
.heroV2__subtitle{
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
  max-width: 54ch;
}
.heroV2__cta{
  margin-top: 18px;
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
}
.heroV2__meta{
  margin-top: 14px;
  display:flex;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--muted);
  font-weight: 600;
}
.metaLink{
  text-decoration: none;
  border-bottom: 1px solid rgba(200,159,152,.35);
}
.metaLink:hover{border-bottom-color: rgba(74,59,54,.35)}
.heroV2__visual{
  position: relative;
  z-index: 1;
  padding: 0 22px 26px;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Mobile: foto primeiro, copy depois */
@media (max-width: 819px){
  .heroV2__visual{order: 1}
  .heroV2__copy{order: 2}
}

.reveal{opacity: 1; transform: none; filter: none}
.js .reveal{
  opacity: 0;
  transform: translateY(10px);
  filter: blur(2px);
  transition: opacity .7s var(--ease), transform .7s var(--ease), filter .7s var(--ease);
  will-change: opacity, transform, filter;
}
.js .reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}

.hero__panel,
.hero__photo,
.hero__content{display:none}
.photoFrame{
  position:absolute;
  inset: 14px;
  border-radius: 26px;
  background:
    radial-gradient(260px 220px at 40% 25%, rgba(242,207,204,.65), transparent 62%),
    radial-gradient(320px 260px at 70% 70%, rgba(230,210,199,.55), transparent 60%);
  filter: blur(.2px);
  opacity: .9;
  pointer-events:none;
}
.photoRing{
  width: 236px;
  height: 236px;
  border-radius: 999px;
  overflow: hidden;
  background: #fff;
  border: 10px solid rgba(255,255,255,.97);
  box-shadow: 0 18px 44px rgba(74,59,54,.10), var(--glow);
  position: relative;
  z-index: 1;
  animation: float 6.5s ease-in-out infinite;
}
.photoRing img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  /*
    Ajuste fino do enquadramento da foto:
    - por defeito foca ligeiramente acima do centro (rosto)
    - podes sobrescrever no HTML com style="--focus-x: 52%; --focus-y: 22%;"
  */
  object-position: var(--focus-x, 50%) var(--focus-y, 22%);
}
.photoRing::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:999px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
  pointer-events:none;
}

.hero__content{
  padding: 18px 22px 26px;
  position: relative;
  z-index: 1;
}

.title{margin-bottom: 12px}
.title__name{
  margin: 0 0 8px;
  font-family: Fraunces, Georgia, serif;
  font-weight: 700;
  letter-spacing: .2px;
  line-height: 1.05;
  font-size: clamp(38px, 4.7vw, 60px);
}
.title__role{
  margin: 0;
  display:inline-flex;
}
.title__role span{
  font-weight: 600;
  color: var(--ink);
  background: rgba(242,207,204,.70);
  padding: 10px 14px;
  border-radius: 999px;
  box-shadow: 0 12px 26px rgba(74,59,54,.07);
}

.contact{
  display:flex;
  flex-direction: column;
  gap: 10px;
  margin: 18px 0 14px;
}
.contact__item{
  display:flex;
  align-items:center;
  gap: 10px;
  text-decoration: none;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(74,59,54,.10);
  backdrop-filter: blur(10px);
  max-width: 520px;
  box-shadow: 0 10px 22px rgba(74,59,54,.06);
  transition: transform .18s var(--ease), box-shadow .35s var(--ease), background .2s var(--ease), border-color .2s var(--ease);
}
.contact__item:hover{
  background: rgba(255,255,255,.90);
  border-color: rgba(200,159,152,.55);
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(74,59,54,.08);
}
.contact__item:focus-visible{
  outline: 3px solid var(--ring);
  outline-offset: 2px;
}
.icon{
  width: 22px;
  height: 22px;
  color: rgba(122,107,102,.95);
  flex: 0 0 auto;
}
.icon svg{width: 22px; height: 22px}
.contact__text{
  font-weight: 500;
  color: var(--ink);
  word-break: break-word;
}

.tagline{
  margin: 14px 0 0;
  font-family: Fraunces, Georgia, serif;
  font-weight: 500;
  color: var(--muted);
  font-size: clamp(18px, 2.1vw, 22px);
}
.tagline span{color: var(--ink)}

.microcopy{
  margin: 10px 0 0;
  color: var(--muted);
  line-height: 1.55;
}

.note{
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.grid3{
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 16px;
}
.card{
  padding: 16px 16px;
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(74,59,54,.10);
  box-shadow: 0 12px 28px rgba(74,59,54,.06);
}
.card__title{
  margin: 0 0 6px;
  font-weight: 800;
  letter-spacing: .2px;
}
.card__text{
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.steps{
  margin-top: 16px;
  display:grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.step{
  display:flex;
  gap: 12px;
  align-items:flex-start;
  padding: 14px 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(74,59,54,.10);
}
.step__num{
  width: 34px;
  height: 34px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  background: rgba(242,207,204,.35);
  border: 1px solid rgba(74,59,54,.10);
  flex: 0 0 auto;
}
.step__body{min-width: 0}
.step__title{
  margin: 0 0 4px;
  font-weight: 800;
}
.step__text{
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.faq{
  margin-top: 14px;
  display:grid;
  gap: 10px;
}
details.faqItem{
  border-radius: 18px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(74,59,54,.10);
  box-shadow: 0 12px 28px rgba(74,59,54,.05);
  overflow: hidden;
}
.faqItem > summary{
  cursor: pointer;
  list-style: none;
  padding: 14px 14px;
  font-weight: 800;
}
.faqItem > summary::-webkit-details-marker{display:none}
.faqItem > summary:focus-visible{outline: 3px solid var(--ring); outline-offset: 2px}
.faqItem__body{
  padding: 0 14px 14px;
  color: var(--muted);
  line-height: 1.65;
}

.timeline{
  margin-top: 16px;
}
.timeline__list{
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
  display:grid;
  gap: 10px;
}
.timeline__item{
  display:flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(74,59,54,.10);
  box-shadow: 0 12px 28px rgba(74,59,54,.05);
}
.timeline__when{
  font-weight: 800;
  color: var(--ink);
}
.timeline__what{
  color: var(--muted);
  line-height: 1.55;
}

.cta{
  margin-top: 18px;
  display:flex;
  gap: 12px;
  flex-wrap: wrap;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  padding: 12px 16px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  border: 1px solid transparent;
  transition: transform .18s var(--ease), background .2s var(--ease), border-color .2s var(--ease), box-shadow .35s var(--ease);
}
.btn:active{transform: translateY(1px)}
.btn:focus-visible{outline: 3px solid var(--ring); outline-offset: 2px}

.btn--primary{
  background: rgba(242,207,204,.82);
  color: var(--ink);
  border-color: rgba(200,159,152,.45);
  box-shadow: 0 10px 22px rgba(74,59,54,.10);
}
.btn--primary:hover{
  background: rgba(242,207,204,.95);
  border-color: rgba(200,159,152,.60);
  box-shadow: 0 14px 30px rgba(74,59,54,.12);
}

.btn--ghost{
  background: rgba(255,255,255,.92);
  border-color: rgba(74,59,54,.12);
}
.btn--ghost:hover{
  background: rgba(255,255,255,.92);
  border-color: rgba(200,159,152,.55);
}

.btn--soft{
  background: rgba(230,210,199,.35);
  border-color: rgba(74,59,54,.10);
  color: var(--ink);
}
.btn--soft:hover{
  background: rgba(230,210,199,.48);
  border-color: rgba(200,159,152,.45);
}

.section{
  padding: 10px 18px 42px;
}
.section__inner{
  max-width: var(--max);
  margin: 0 auto;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(74,59,54,.10);
  border-radius: var(--radiusLg);
  box-shadow: 0 10px 26px rgba(74,59,54,.07);
  padding: 22px;
}
.section__inner--cta{
  padding: 26px 22px;
}
.section__title{
  margin: 0 0 10px;
  font-family: Fraunces, Georgia, serif;
  font-size: 26px;
  letter-spacing: .2px;
}
.section__title--sm{
  margin-top: 18px;
  font-size: 22px;
}
.section__subtitle{
  margin: 0 0 18px;
  color: var(--muted);
  line-height: 1.55;
}

.chips{
  margin: 0;
  padding: 0;
  list-style: none;
  display:flex;
  flex-wrap: wrap;
  gap: 10px;
}

.actionGrid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  margin-top: 16px;
}
.actionCard{
  display:flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px 16px;
  border-radius: 18px;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(74,59,54,.10);
  text-decoration: none;
  box-shadow: 0 12px 28px rgba(74,59,54,.07);
  transition: transform .18s var(--ease), box-shadow .35s var(--ease), border-color .2s var(--ease), background .2s var(--ease);
}
.actionCard:hover{
  transform: translateY(-1px);
  border-color: rgba(200,159,152,.55);
  box-shadow: 0 18px 42px rgba(74,59,54,.10);
}
.actionCard__title{
  font-weight: 700;
  letter-spacing: .2px;
}
.actionCard__detail{
  font-weight: 600;
  color: var(--ink);
  word-break: break-word;
}
.actionCard__hint{
  font-size: 13px;
  color: var(--muted);
}
.actionCard--ghost{
  background: rgba(242,207,204,.14);
}
.chip{
  padding: 10px 12px;
  background: rgba(242,207,204,.22);
  border: 1px solid rgba(74,59,54,.10);
  border-radius: 999px;
  font-weight: 600;
  color: #5b4b45;
}

.footer{
  padding: 0 18px 34px;
}
.footer__inner{
  max-width: var(--max);
  margin: 0 auto;
  padding: 18px 6px 0;
  color: var(--muted);
}
.footer__name{
  margin: 0 0 6px;
  color: var(--ink);
  font-weight: 600;
}
.footer__links{
  margin: 0 0 10px;
  line-height: 1.6;
}
.footer__links a{
  text-decoration: none;
  border-bottom: 1px solid rgba(195,152,144,.35);
}
.footer__links a:hover{
  border-bottom-color: rgba(63,53,49,.45);
}
.footer__privacy{
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.6;
}
.footer__copy{
  margin: 0;
  font-size: 13px;
}

.btn--primary{
  position: relative;
  overflow: hidden;
}
.btn--primary::after{
  content:"";
  position:absolute;
  inset:-2px;
  transform: translateX(-120%) rotate(8deg);
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  opacity: .55;
  pointer-events:none;
}
.btn--primary:hover::after{
  animation: shine .95s var(--ease);
}

.stickyCta{
  padding-bottom: calc(10px + env(safe-area-inset-bottom));
  bottom: calc(12px + env(safe-area-inset-bottom));
}

@keyframes float{
  0%, 100%{transform: translateY(0)}
  50%{transform: translateY(-3px)}
}
@keyframes shine{
  0%{transform: translateX(-120%) rotate(8deg)}
  100%{transform: translateX(120%) rotate(8deg)}
}

@media (min-width: 820px){
  .heroV2__inner{
    grid-template-columns: 1.15fr .85fr;
    align-items: center;
  }
  .heroV2__copy{
    padding: 42px 42px 42px;
  }
  .heroV2__visual{
    padding: 42px 36px 42px 0;
    justify-content: flex-end;
  }
  .photoRing{width: 292px; height: 292px}
  .actionGrid{
    grid-template-columns: 1fr 1fr 1fr;
  }
  .grid3{
    grid-template-columns: 1fr 1fr 1fr;
  }
  .steps{
    grid-template-columns: 1fr 1fr;
  }
}

.stickyCta{
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: 12px;
  display: flex;
  gap: 10px;
  padding: 10px;
  border-radius: 18px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(74,59,54,.10);
  box-shadow: 0 18px 46px rgba(74,59,54,.12), 0 34px 110px rgba(200,159,152,.18);
  backdrop-filter: blur(10px);
  z-index: 20;
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px);
  transition: opacity .35s var(--ease), transform .35s var(--ease);
}
.stickyBtn{
  flex: 1 1 0;
  text-align: center;
  padding: 12px 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  border: 1px solid rgba(74,59,54,.12);
  background: rgba(255,255,255,.95);
}
.stickyBtn--call{
  background: rgba(242,207,204,.82);
  border-color: rgba(200,159,152,.45);
}
.stickyBtn:active{transform: translateY(1px)}
.stickyCta.is-hidden{opacity:0; pointer-events:none; transform: translateY(10px)}
.stickyCta.is-shown{opacity:1; pointer-events:auto; transform: translateY(0)}

@media (min-width: 820px){
  .stickyCta{display:none}
}

@media (prefers-reduced-motion: reduce){
  .btn, .hero__panel, .contact__item, .reveal{transition:none}
  .reveal{opacity:1; transform:none; filter:none}
  .photoRing{animation:none}
}

