:root{
  --azul: #1C2B33;
  --azul-2: #24363f;
  --terracota: #E8633C;
  --areia: #F7F0E6;
  --areia-2: #efe4d4;
  --oliva: #7A8C5C;
  --dourado: #C9A875;
  --ink: #2a2620;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family: 'Source Sans 3', sans-serif;
  background: var(--areia);
  color: var(--ink);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,.display{
  font-family: 'Fraunces', serif;
  font-weight: 500;
  letter-spacing: -0.01em;
}
em{ font-style: italic; font-weight: 400; color: var(--terracota); }
a{ color: inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width: 1120px; margin: 0 auto; padding: 0 28px; }

:focus-visible{ outline: 2px solid var(--terracota); outline-offset: 3px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* ---------- NAV ---------- */
.nav{
  position: sticky; top:0; z-index: 50;
  background: rgba(28,43,51,0.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid rgba(201,168,117,0.25);
}
.nav .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height: 72px; gap: 24px;
}
.brand{
  font-family:'Fraunces',serif; font-weight:500; font-size:1.15rem;
  color: var(--areia); text-decoration:none; letter-spacing: 0.01em; white-space:nowrap;
}
.brand span{ color: var(--dourado); }
.nav-links{ display:flex; gap:24px; list-style:none; }
.nav-links a{
  color: var(--areia); text-decoration:none; font-size:0.92rem;
  opacity:0.8; transition: opacity .2s; white-space:nowrap;
}
.nav-links a:hover, .nav-links a.active{ opacity:1; }
.nav-cta{
  background: var(--terracota); color: var(--areia);
  padding: 10px 20px; border-radius: 3px; font-size:0.88rem;
  text-decoration:none; font-weight:600; white-space:nowrap;
}
.nav-back{ color:var(--areia); text-decoration:none; font-size:.95rem; opacity:.85; }
.nav-back:hover{ opacity:1; }
@media (max-width: 960px){ .nav-links{ display:none; } }

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding: 14px 26px; border-radius:3px; text-decoration:none;
  font-weight:600; font-size:0.95rem; transition: transform .18s ease, background .18s ease;
}
.btn-primary{ background: var(--terracota); color:#fff; }
.btn-primary:hover{ background:#d1522c; transform: translateY(-1px); }
.btn-ghost{ border:1px solid rgba(247,240,230,0.35); color: var(--areia); }
.btn-ghost:hover{ border-color: var(--dourado); }

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
  color: var(--dourado); margin-bottom:22px; font-weight:600;
}
.eyebrow::before{ content:''; width:26px; height:1px; background: var(--dourado); display:block; }

/* ---------- HERO (home) ---------- */
.hero{
  position: relative;
  background: var(--azul);
  color: var(--areia);
  padding: 96px 0 0;
  overflow: hidden;
}
.hero .wrap{
  display:grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items:center;
  padding-bottom: 64px;
}
@media (max-width: 860px){
  .hero{ padding-top: 48px; }
  .hero .wrap{ grid-template-columns: 1fr; gap: 36px; padding-bottom: 48px; }
  .hero-photo{ max-width: 420px; }
}
.hero h1{
  font-size: clamp(2.3rem, 4.6vw, 3.6rem);
  line-height: 1.08;
  color: #fff;
  max-width: 15ch;
}
.hero p.lede{
  margin-top:22px; font-size:1.08rem; max-width:46ch; color: rgba(247,240,230,0.82);
}
.hero-ctas{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }

.hero-photo{
  position:relative;
  aspect-ratio: 4/5;
  border-radius: 4px;
  overflow:hidden;
  box-shadow: 0 30px 70px -20px rgba(0,0,0,0.55);
}
.hero-photo img{ width:100%; height:100%; object-fit:cover; }
.hero-photo::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(28,43,51,0) 55%, rgba(28,43,51,0.55) 100%);
}
.hero-tag{
  position:absolute; left:18px; bottom:18px; z-index:2;
  color:#fff; font-size:0.85rem; background: rgba(28,43,51,0.55);
  padding:8px 14px; border-radius:3px; backdrop-filter: blur(3px);
}

/* ---------- PAGE HERO (inner pages: sobre, serviços, contato) ---------- */
.page-hero{ background:var(--azul); color:var(--areia); padding:64px 0 56px; }
.page-hero h1{ color:var(--areia); font-size:clamp(1.9rem,4vw,2.6rem); line-height:1.15; max-width:22ch; }
.page-hero p.lede{ margin-top:16px; color:rgba(247,240,230,.78); font-size:1.05rem; max-width:56ch; }
.page-hero .hero-ctas{ margin-top:28px; }

/* ---------- WAVE DIVIDER (signature element) ---------- */
.mare{
  display:block; width:100%; height:64px;
  color: var(--areia);
}
.mare path{ fill: currentColor; }
.mare.flip{ transform: scaleY(-1); }
.mare-dark{ color: var(--azul); }

/* ---------- CREDENTIALS STRIP ---------- */
.credentials{
  background: var(--areia);
  padding: 8px 0 64px;
}
.cred-grid{
  display:grid; grid-template-columns: repeat(3,1fr); gap:0;
  border-top: 1px solid var(--dourado); border-bottom: 1px solid var(--dourado);
}
.cred-item{
  padding: 30px 24px; text-align:center;
  border-left: 1px solid rgba(201,168,117,0.4);
}
.cred-item:first-child{ border-left:none; }
.cred-num{
  font-family:'Fraunces',serif; font-size:2.1rem; color: var(--terracota); font-weight:500;
}
.cred-label{ font-size:0.85rem; color: var(--ink); opacity:0.75; margin-top:6px; }
@media (max-width:720px){
  .cred-grid{ grid-template-columns: 1fr; }
  .cred-item{ border-left:none; border-top: 1px solid rgba(201,168,117,0.4); }
  .cred-item:first-child{ border-top:none; }
}

/* ---------- BIO (home + sobre) ---------- */
.bio{ padding: 20px 0 100px; background: var(--areia); }
.bio .wrap{ display:grid; grid-template-columns: 0.85fr 1.15fr; gap:64px; align-items:start; }
.section-label{
  font-size:0.78rem; letter-spacing:0.14em; text-transform:uppercase;
  color: var(--oliva); font-weight:700; margin-bottom:14px;
}
.bio h2{ font-size: clamp(1.8rem,3vw,2.4rem); color: var(--azul); margin-bottom:20px; }
.bio p{ color: #4a463e; margin-bottom:16px; max-width:56ch; }
.bio-photo{ border-radius:4px; overflow:hidden; }
.bio-photo img{ width:100%; }
@media (max-width: 860px){ .bio .wrap{ grid-template-columns:1fr; } .bio-photo{ max-width:340px; } }

/* ---------- SERVICES (home "cuidado" — processo em etapas) ---------- */
.services{ background: var(--azul); padding: 90px 0 100px; color: var(--areia); }
.services .section-label{ color: var(--dourado); }
.services h2{ color:#fff; font-size: clamp(1.8rem,3vw,2.4rem); max-width: 20ch; margin-bottom:48px; }
.service-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap:1px; background: rgba(247,240,230,0.15); }
.service-card{
  background: var(--azul-2); padding: 36px 32px;
  transition: background .2s ease;
}
.service-card:hover{ background: #2b3f49; }
.service-index{ font-family:'Fraunces',serif; color: var(--terracota); font-size:1.1rem; margin-bottom:16px; }
.service-card h3{ font-size:1.2rem; color:#fff; margin-bottom:10px; font-weight:500; }
.service-card p{ font-size:0.94rem; color: rgba(247,240,230,0.75); }
@media (max-width:720px){ .service-grid{ grid-template-columns:1fr; } }

/* ---------- SERVICE LINKS (home "Nossos serviços" — cards claros ligando às páginas dedicadas) ---------- */
.service-links{ background: var(--areia); padding: 20px 0 100px; }
.service-links h2{ font-size: clamp(1.8rem,3vw,2.4rem); color: var(--azul); margin-bottom:48px; max-width:22ch; }
.service-link-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
.service-link-card{
  background: var(--areia-2); border-top:3px solid var(--dourado);
  border-radius: 6px; padding: 32px 28px; display:flex; flex-direction:column; gap:14px;
  text-decoration:none; color: inherit; transition: transform .18s ease, box-shadow .18s ease;
}
.service-link-card:hover{ transform: translateY(-3px); box-shadow: 0 16px 32px -18px rgba(28,43,51,0.35); }
.service-link-card h3{ font-size:1.15rem; color: var(--azul); font-weight:500; }
.service-link-card p{ font-size:0.92rem; color:#4a463e; flex-grow:1; }
.service-link-card .link-arrow{ font-size:0.86rem; font-weight:600; color: var(--terracota); }
@media (max-width:860px){ .service-link-grid{ grid-template-columns:1fr; } }

/* ---------- PHILOSOPHY / QUOTE ---------- */
.philosophy{ background: var(--areia); padding: 100px 0; }
.philosophy .wrap{ max-width: 760px; text-align:left; }
.philosophy blockquote{
  font-family:'Fraunces',serif; font-size: clamp(1.4rem,3vw,2rem);
  font-weight: 400; font-style: italic; color: var(--azul); line-height:1.4;
}
.philosophy cite{
  display:block; margin-top:24px; font-style:normal; font-size:0.9rem;
  color: var(--oliva); font-weight:600; letter-spacing:0.02em;
}

/* ---------- CTA FINAL ---------- */
.cta-final{ background: var(--terracota); padding: 80px 0; text-align:center; color:#fff; }
.cta-final h2{ font-size: clamp(1.8rem,3.4vw,2.6rem); margin-bottom:18px; }
.cta-final p{ opacity:0.92; max-width:48ch; margin: 0 auto 32px; font-size:1.05rem; }
.cta-final .btn-primary{ background: var(--azul); }
.cta-final .btn-primary:hover{ background:#132029; }

/* ---------- DOC / ARTICLE CONTENT (privacidade + páginas de serviço) ---------- */
main{ padding:52px 0 40px; }
main .wrap.doc{ max-width: 820px; }
main h1{ color: var(--azul); }
main h2{ font-size:1.32rem; margin:38px 0 12px; padding-top:8px; border-top:1px solid rgba(201,168,117,.4); color:var(--azul); }
main h2:first-of-type{ border-top:none; padding-top:0; margin-top:0; }
main h3{ font-size:1.05rem; margin:20px 0 6px; color:var(--azul-2); }
main p{ margin:0 0 14px; }
main ul{ margin:0 0 16px; padding-left:22px; }
main li{ margin:0 0 8px; }
main strong{ color:var(--azul); }
main a{ color: var(--terracota); text-decoration:underline; }
.card{ background:var(--areia-2); border-left:4px solid var(--oliva); padding:18px 22px; border-radius:6px; margin:8px 0 22px; }
.card p{ margin:0; }

/* ---------- FOOTER ---------- */
footer{ background: var(--azul); color: rgba(247,240,230,0.7); padding: 56px 0 40px; font-size:0.88rem; }
.foot-grid{ display:grid; grid-template-columns: 1.2fr 1fr 1fr 1fr; gap: 40px; margin-bottom:40px; }
footer h4{ color: var(--areia); font-family:'Fraunces',serif; font-weight:500; font-size:1rem; margin-bottom:14px; }
footer a{ text-decoration:none; color: inherit; }
footer ul{ list-style:none; display:flex; flex-direction:column; gap:8px; }
.foot-bottom{
  border-top:1px solid rgba(247,240,230,0.15); padding-top:22px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.8rem;
}
@media (max-width:860px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .foot-grid{ grid-template-columns:1fr; } }

/* ---------- COOKIE BANNER ---------- */
#cookie-banner{
  position: fixed; right:20px; bottom:20px; z-index:100;
  max-width: 380px;
  background: var(--azul); color: rgba(247,240,230,0.85);
  padding: 22px 24px; font-size:0.86rem;
  border-radius: 8px;
  box-shadow: 0 20px 45px -12px rgba(0,0,0,0.45);
  display:flex; flex-direction:column; gap:16px;
}
#cookie-banner p{ margin:0; }
#cookie-banner a{ color: var(--dourado); text-decoration:underline; }
.cookie-actions{ display:flex; gap:10px; justify-content:flex-end; }
.cookie-btn{
  border:none; border-radius:3px; padding:10px 18px; font-size:0.86rem;
  font-weight:600; cursor:pointer; font-family:'Source Sans 3', sans-serif;
}
.cookie-btn-primary{ background: var(--terracota); color:#fff; }
.cookie-btn-primary:hover{ background:#d1522c; }
.cookie-btn-ghost{ background:transparent; color: var(--areia); border:1px solid rgba(247,240,230,0.35); }
.cookie-btn-ghost:hover{ border-color: var(--dourado); }
@media (max-width:600px){
  #cookie-banner{ left:12px; right:12px; bottom:12px; max-width:none; }
}
