:root{
  --navy:#1d3a6e;--gold:#c09440;--terra:#c8643b;--terra-d:#a94f2b;
  --ink:#3a2e26;--muted:#7a6a5d;--cream:#fbf5ec;--sand:#f3e7d6;--card:#fffdf9;--line:#ead9c3;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.65;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
a{color:var(--terra-d)}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2}

/* hero */
.hero{position:relative;color:#fff;text-align:center;padding:56px 16px 72px;
  background:
    linear-gradient(180deg,rgba(40,24,14,.35) 0%,rgba(120,60,25,.45) 55%,rgba(200,100,59,.55) 100%),
    url("/assets/hero.jpg") center 60%/cover no-repeat;}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:40px;background:var(--cream);
  clip-path:ellipse(70% 100% at 50% 100%)}
.hero-inner{position:relative;z-index:1;max-width:720px;margin:0 auto}
.logo-card{display:inline-block;background:#fff;padding:14px 22px;border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.25);margin-bottom:32px}
.logo-card img{display:block;width:min(280px,70vw);height:auto}
.eyebrow{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#ffe2b8;margin:0 0 10px}
.eyebrow.dark{color:var(--terra)}
.hero h1{font-size:clamp(1.9rem,5vw,3rem);margin:0 0 16px;text-shadow:0 2px 16px rgba(0,0,0,.35)}
.hero .lead{font-size:clamp(1rem,2.2vw,1.15rem);color:#fff6ea;margin:0 auto 28px;max-width:560px;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.hero .custo{margin:12px 0 0;font-size:.8rem;color:#fff6ea;opacity:.9;text-shadow:0 1px 6px rgba(0,0,0,.4)}
footer .custo-f{font-size:.8em;opacity:.8}

/* botões */
.btn{display:inline-block;padding:13px 24px;border-radius:999px;text-decoration:none;font-weight:700;border:2px solid transparent;transition:transform .15s,background .15s,color .15s}
.btn:hover{transform:translateY(-1px)}
.btn-warm{background:var(--terra);color:#fff;box-shadow:0 6px 18px rgba(169,79,43,.35)}
.btn-warm:hover{background:var(--terra-d)}
.btn-ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.8);backdrop-filter:blur(4px)}
.btn-ghost:hover{background:#fff;color:var(--terra-d)}
.btn-outline{color:var(--terra-d);border-color:var(--terra)}
.btn-outline:hover{background:var(--terra);color:#fff}

/* promessas */
.promise{max-width:980px;margin:0 auto;padding:40px 16px 24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.promise-item{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px 22px;text-align:center;box-shadow:0 4px 14px rgba(120,80,40,.06)}
.promise-item .icon{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--sand);font-size:1.5rem;margin-bottom:8px}
.promise-item h3{margin:6px 0 6px;font-size:1.15rem;color:var(--ink)}
.promise-item p{margin:0;color:var(--muted);font-size:.95rem}

/* morada + mapa */
.visit{padding:40px 16px 56px}
.visit-inner{max-width:980px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:32px;align-items:stretch;
  background:var(--card);border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 8px 24px rgba(120,80,40,.08)}
.visit h2{color:var(--ink);margin:0 0 12px;font-size:clamp(1.4rem,3vw,1.8rem)}
.visit dl{margin:0 0 24px}
.visit dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--gold);font-weight:700;margin-top:14px}
.visit dd{margin:4px 0 0}
.visit .small{font-size:.8rem;color:var(--muted)}
.visit-map{min-height:320px;border-radius:16px;overflow:hidden}
.visit-map iframe{width:100%;height:100%;min-height:320px;border:0;display:block;filter:sepia(.15) saturate(1.05)}

/* rodapé */
footer{background:#3a2a20;color:#ead8c4;text-align:center;padding:32px 16px;font-size:.9rem}
footer p{margin:4px 0}
footer strong{color:#fff}
footer .thanks{font-family:var(--serif);font-size:1.2rem;color:#ffe2b8;margin-bottom:12px}
footer .links{margin-top:14px;display:flex;gap:20px;justify-content:center;flex-wrap:wrap}
footer a{color:#f3c98b}

@media (max-width:760px){
  .promise{grid-template-columns:1fr}
  .visit-inner{grid-template-columns:1fr;padding:20px}
  .hero{padding:40px 16px 64px}
}

/* termos */
.doc{flex:1;width:100%;max-width:820px;margin:0 auto;padding:32px 16px 48px}
.doc header{text-align:center;margin-bottom:24px}
.doc header .logo{width:min(240px,70vw);height:auto;margin-bottom:12px}
.doc header h1{color:var(--ink);font-size:clamp(1.7rem,4vw,2.3rem);margin:0}
.doc .back{display:inline-block;margin-bottom:16px;font-size:.9rem}
.doc article{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px clamp(16px,4vw,40px);overflow-wrap:anywhere}
.doc article p{font-size:.95rem}
.doc article strong{color:var(--terra-d)}
footer .privacy{margin-top:14px;font-size:.75rem;opacity:.7}
.px{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* Logo de Natal (globo animado + texto) */
.logo-card.natal{display:inline-flex;align-items:flex-end;gap:4px;padding:10px 22px 14px 10px}
.logo-card.natal .globo{display:block;width:clamp(112px,27vw,150px);height:auto;margin:-46px -4px -8px 0;filter:drop-shadow(0 4px 6px rgba(0,0,0,.18))}
.logo-card.natal .texto{display:block;width:clamp(170px,40vw,230px);height:auto;margin-bottom:6px}
