/* ===== Ateliê Via Norte — Design System ===== */
:root{
  --bg:         #fdf6f3;
  --bg-soft:    #f9e4dd;
  --surface:    #ffffff;
  --rose:       #e8a8a0;
  --rose-soft:  #f6d4cd;
  --rose-deep:  #c9847b;
  --brown:      #6b4f43;
  --brown-deep: #2a1f1a;
  --gold:       #c9a24c;
  --gold-soft:  #e2c889;
  --wa-green:   #25d366;
  --wa-green-d: #1f8a4d;
  --text:       #2a1f1a;
  --text-soft:  #6b5b52;
  --muted:      #b09a90;
  --line:       #f0dcd5;
  --shadow:     0 10px 30px -12px rgba(201,132,123,.25);
  --shadow-sm:  0 4px 14px -6px rgba(201,132,123,.18);
  --radius:     14px;
  --radius-lg:  22px;
  --serif:      "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans:       "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --container:  1160px;
}

*,*::before,*::after{ box-sizing:border-box }
html{ scroll-behavior:smooth }
body{
  margin:0;
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block }
a{ color:inherit; text-decoration:none }

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  color:var(--brown-deep);
  letter-spacing:-.01em;
  line-height:1.18;
  margin:0 0 .4em;
}
h1{ font-size:clamp(2rem, 4.6vw, 3.4rem); font-weight:500 }
h2{ font-size:clamp(1.7rem, 3.2vw, 2.4rem) }
h3{ font-size:1.15rem; font-weight:600 }
h4{ font-size:1rem; font-weight:600; color:#fff; letter-spacing:.04em }
p{ margin:0 0 1em; color:var(--text-soft) }
strong{ color:var(--brown-deep); font-weight:600 }

.container{ width:100%; max-width:var(--container); margin:0 auto; padding:0 22px }

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(253,246,243,.92);
  backdrop-filter:saturate(180%) blur(10px);
  -webkit-backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:78px; gap:24px;
}
.brand{ display:flex; align-items:center }
.brand-logo{
  height:58px; width:auto; display:block;
  border-radius:10px; object-fit:contain;
}
.nav{ display:flex; gap:24px }
.nav a{
  font-size:.92rem; color:var(--text-soft); position:relative;
  transition:color .2s ease;
}
.nav a:hover{ color:var(--brown-deep) }
.nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px;
  height:1px; background:var(--rose-deep); transform:scaleX(0); transform-origin:left;
  transition:transform .25s ease;
}
.nav a:hover::after{ transform:scaleX(1) }

/* ===== Buttons ===== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--sans); font-weight:600;
  padding:12px 22px; border-radius:999px;
  border:1px solid transparent; cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;
}
.btn-sm{ padding:9px 16px; font-size:.88rem }
.btn-lg{ padding:14px 26px; font-size:1rem }
.btn-xl{ padding:18px 34px; font-size:1.08rem }
.btn-primary{
  background:linear-gradient(135deg,var(--wa-green-d),var(--wa-green));
  color:#fff;
  box-shadow:0 10px 24px -10px rgba(31,138,77,.55);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 16px 28px -10px rgba(31,138,77,.6) }
.btn-ghost{
  background:transparent; color:var(--brown-deep);
  border-color:var(--brown);
}
.btn-ghost:hover{ background:var(--brown-deep); color:#fff }
.wa-ico{
  width:10px; height:10px; border-radius:50%; background:#fff;
  display:inline-block; box-shadow:0 0 0 3px rgba(255,255,255,.25);
}
.btn-ghost .wa-ico{ background:var(--wa-green); box-shadow:none }
.link-secondary{
  display:block;
  text-align:center;
  margin:0 0 26px;
  font-size:.9rem;
  color:var(--text-soft);
  text-decoration:underline;
  text-underline-offset:3px;
  transition:color .2s ease;
}
.link-secondary:hover{ color:var(--brown-deep) }

/* ===== Hero ===== */
.hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(circle at 88% 8%, var(--rose-soft) 0%, transparent 55%),
    radial-gradient(circle at 5% 85%, #fbe7e0 0%, transparent 60%),
    var(--bg);
  padding:40px 0 88px;
}
.hero-grid{
  display:grid; grid-template-columns:1.05fr 1fr;
  gap:56px; align-items:center;
}
.eyebrow{
  display:inline-block; font-size:.78rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--rose-deep);
  padding:6px 14px; border:1px solid var(--rose-soft);
  border-radius:999px; background:#fff3ef; margin-bottom:18px;
  font-weight:500;
}
.eyebrow-light{
  color:#fff; background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.2);
}
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:.6rem 1rem;
  border-radius:999px;
  background:rgba(248,214,206,.65);
  color:var(--rose-deep);
  font-size:.95rem;
  letter-spacing:.01em;
  margin-bottom:18px;
}
.hero-badges{ display:flex; flex-wrap:wrap; gap:8px 10px; margin-bottom:18px }
.hero-badges .hero-badge{ margin-bottom:0 }
.hero-badge-express{
  background:#fff; color:var(--brown-deep); font-weight:600;
  border:1.5px solid var(--gold);
}
.lead{ font-size:1.12rem; color:var(--text-soft); max-width:54ch; margin-bottom:28px }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:14px }
.hero-quote{ margin:0 0 22px; max-width:54ch }
.hero-quote blockquote{ margin:0; font-family:var(--serif); font-size:1.02rem; line-height:1.35; font-style:italic; color:var(--brown); text-wrap:pretty }
.hero-quote figcaption{ font-size:.78rem; line-height:1.5; color:var(--muted); letter-spacing:.04em }
.hero-quote .stars{ display:inline; margin:0 2px 0 0; font-size:.85rem; letter-spacing:1px; color:var(--rose-deep) }
.trust-badges{
  list-style:none; padding:0; margin:0;
  display:flex; flex-wrap:wrap; gap:18px;
  font-size:.9rem; color:var(--text-soft);
}
.trust-badges li{ display:flex; align-items:center; gap:8px }
.dot{ width:7px; height:7px; border-radius:50%;
  background:linear-gradient(135deg,var(--rose),var(--rose-deep));
  box-shadow:0 0 0 3px #fff3ef;
}

.hero-image{ position:relative }
@media (min-width: 961px){
  /* Alinha a foto ao título em vez de centralizar na coluna de texto */
  .hero-image{ align-self:start; margin-top:66px }
  /* Citação e diferenciais em faixa centralizada abaixo das duas colunas */
  .hero-grid{ row-gap:8px }
  .hero-proof{ grid-column:1 / -1; grid-row:2; text-align:center }
  .hero-proof .hero-quote{ max-width:none }
  .hero-proof .hero-quote blockquote{ font-size:1.15rem }
  .hero-proof .trust-badges{ justify-content:center; max-width:700px; margin:0 auto }
}
.hero-image img{
  width:100%; aspect-ratio:5/4; object-fit:cover;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow);
}
.hero-image-frame{
  position:absolute; inset:18px -18px -18px 18px;
  border:1px solid var(--rose);
  border-radius:var(--radius-lg);
  z-index:-1;
}

/* ===== Section base ===== */
.section{ padding:90px 0 }
.section-alt{
  background:linear-gradient(180deg, var(--bg-soft) 0%, var(--bg) 100%);
}
.section-head{ text-align:center; max-width:680px; margin:0 auto 54px }
.section-head p{ font-size:1.05rem }
.section-cta{ text-align:center; margin-top:48px }
.section-cta-note{ font-size:.88rem; color:var(--muted); margin-top:12px }

/* ===== Cards ===== */
.cards-grid{
  display:grid; gap:20px;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
}
.cards-grid-sm{ grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)) }
.card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:28px 24px;
  box-shadow:var(--shadow-sm);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:var(--shadow);
  border-color:var(--gold-soft);
}
.card-icon{
  width:46px; height:46px; border-radius:12px;
  display:grid; place-items:center;
  background:linear-gradient(135deg,var(--rose-soft),#fff);
  color:var(--rose-deep);
  font-size:1.3rem; margin-bottom:16px;
  border:1px solid var(--line);
}
.card h3{ margin-bottom:6px }
.service-price{ font-size:.94rem; color:var(--muted); margin:0 0 12px; line-height:1.5; }
.card p{ font-size:.95rem; margin:0 }

.card-featured{
  border:1.5px solid var(--gold);
  position:relative;
}
.card-tag{
  position:absolute;
  top:-12px;
  left:50%;
  transform:translateX(-50%);
  background:var(--gold);
  color:#fff;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.08em;
  padding:3px 12px;
  border-radius:20px;
  white-space:nowrap;
}

.rich-copy{ transition:max-height .3s ease; overflow:hidden; }
.rich-copy p{ margin-bottom:1em; }
@media (max-width: 900px) {
  .rich-copy.collapsed{ max-height: calc(1.65em * 3); }
}
.rich-copy.expanded{ max-height: none; }
.read-more-btn{
  margin-top:18px;
  padding:10px 18px;
  border-radius:999px;
  border:1px solid var(--line);
  background:transparent;
  color:var(--rose-deep);
  font-size:.96rem;
  cursor:pointer;
}
.read-more-btn:hover{ background:var(--rose-soft); }

/* ===== Sobre ===== */
.sobre-grid{
  display:grid; grid-template-columns:1fr 1.05fr;
  gap:56px; align-items:center;
}
.sobre-image{ position:relative }
.sobre-image img{
  width:100%; aspect-ratio:4/3; object-fit:cover;
  border-radius:var(--radius-lg); box-shadow:var(--shadow);
}
.sobre-list{
  list-style:none; padding:0; margin:18px 0 28px;
  display:grid; gap:10px;
}
.sobre-list li{
  position:relative; padding-left:22px; color:var(--text-soft); font-size:.98rem;
}
.sobre-list li::before{
  content:"✓"; position:absolute; left:0; top:0;
  color:var(--rose-deep); font-weight:600;
}

/* ===== Steps ===== */
.steps{
  list-style:none; padding:0; margin:0;
  display:grid; gap:22px;
  grid-template-columns:repeat(3, 1fr);
}
.step{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:32px 26px;
  position:relative;
  box-shadow:var(--shadow-sm);
  transition:transform .25s ease, box-shadow .25s ease;
}
.step:hover{ transform:translateY(-3px); box-shadow:var(--shadow) }
.step-num{
  font-family:var(--serif); font-size:2.4rem;
  color:var(--rose-deep); font-weight:600; line-height:1; margin-bottom:14px;
}
.step h3{ margin-bottom:6px }
.step p{ margin:0; font-size:.95rem }

/* ===== Testimonials ===== */
.testimonials{
  display:grid; gap:22px;
  grid-template-columns:repeat(3, 1fr);
}
.quote{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:28px 26px;
  margin:0;
  box-shadow:var(--shadow-sm);
  position:relative;
  transition:transform .25s ease, box-shadow .25s ease;
}
.quote:hover{ transform:translateY(-3px); box-shadow:var(--shadow) }
.stars{
  color:var(--gold); letter-spacing:2px; font-size:1rem; margin-bottom:6px;
}
.quote blockquote{
  font-family:var(--serif); font-size:1.18rem;
  color:var(--brown-deep); margin:8px 0 14px; line-height:1.4;
}
.quote figcaption{ font-size:.85rem; color:var(--muted); letter-spacing:.04em }

/* ===== Gallery ===== */
.gallery{
  display:grid; gap:22px;
  grid-template-columns:repeat(3,1fr);
}
.gallery-item{ margin:0; position:relative; overflow:hidden;
  border-radius:var(--radius); box-shadow:var(--shadow-sm);
  background:var(--surface);
}
.gallery-item img{
  width:100%; aspect-ratio:1/1; object-fit:cover;
  transition:transform .6s ease;
}
.gallery-item:hover img{ transform:scale(1.04) }
.gallery-item figcaption{
  position:absolute; left:14px; bottom:12px;
  background:rgba(255,255,255,.92);
  color:var(--brown-deep);
  padding:6px 14px; border-radius:999px;
  font-size:.82rem; font-weight:500;
  border:1px solid var(--line);
}

/* ===== Mapa ===== */
.map-wrap{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.map-wrap iframe{
  width:100%; height:380px; border:0; display:block;
}
.map-actions{
  display:flex; flex-wrap:wrap; gap:12px;
  padding:18px 22px;
  border-top:1px solid var(--line);
  background:#fff;
  justify-content:center;
}

/* ===== FAQ ===== */
.faq{
  display:grid; gap:14px;
  max-width:780px; margin:0 auto;
}
.faq-item{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px 22px;
  box-shadow:var(--shadow-sm);
  transition:border-color .2s ease;
}
.faq-item[open]{ border-color:var(--rose-soft) }
.faq-item summary{
  cursor:pointer; font-family:var(--serif); font-size:1.15rem;
  color:var(--brown-deep); font-weight:600;
  list-style:none; position:relative; padding-right:28px;
}
.faq-item summary::-webkit-details-marker{ display:none }
.faq-item summary::after{
  content:"+"; position:absolute; right:0; top:-2px;
  color:var(--rose-deep); font-size:1.4rem; font-weight:300;
  transition:transform .25s ease;
}
.faq-item[open] summary::after{ content:"–"; transform:rotate(0) }
.faq-item p{ margin:12px 0 0; font-size:.96rem }

/* ===== CTA final ===== */
.cta-final{
  background:
    radial-gradient(circle at 20% 20%, var(--rose) 0%, transparent 55%),
    radial-gradient(circle at 85% 80%, var(--rose-deep) 0%, transparent 55%),
    linear-gradient(135deg, #3a2620, #2a1f1a);
  color:#fff;
  padding:90px 0;
  text-align:center;
}
.cta-final h2{ color:#fff; margin:14px 0 14px }
.cta-final p{ color:rgba(255,255,255,.85); font-size:1.1rem; max-width:560px; margin:0 auto 28px }
.cta-final-note{ font-size:.85rem !important; color:rgba(255,255,255,.6) !important; margin-top:18px !important }

/* ===== Footer ===== */
.site-footer{
  background:#1f1612; color:rgba(255,255,255,.75);
  padding:54px 0 24px; font-size:.92rem;
}
.footer-inner{
  display:grid; gap:36px;
  grid-template-columns:1.2fr 1fr 1fr;
  align-items:start;
}
.footer-brand-block{ display:flex; flex-direction:column; gap:14px }
.footer-logo{
  width:96px; height:auto; border-radius:10px;
  background:#fdf6f3; padding:6px;
}
.footer-tagline{ color:rgba(255,255,255,.7); margin:0; line-height:1.6 }
.footer-col h4{ margin-bottom:14px }
.footer-col p{ color:rgba(255,255,255,.7); margin:0 0 8px }
.site-footer a{ color:var(--rose-soft); transition:color .2s ease }
.site-footer a:hover{ color:#fff }
.footer-links{ list-style:none; padding:0; margin:0; display:grid; gap:8px }
.footer-links a{ color:rgba(255,255,255,.7) }
.footer-bottom{
  margin-top:36px; padding-top:24px;
  border-top:1px solid rgba(255,255,255,.08);
  display:flex; flex-wrap:wrap; gap:8px 24px; justify-content:space-between;
}
.footer-small{ font-size:.8rem; color:rgba(255,255,255,.5); margin:0 }

/* ===== WhatsApp float ===== */
.wa-float{
  position:fixed; right:20px; bottom:20px; z-index:60;
  height:58px; padding:0 22px 0 18px; border-radius:999px;
  background:linear-gradient(135deg,var(--wa-green-d),var(--wa-green));
  display:inline-flex; align-items:center; gap:10px;
  color:#fff; font-weight:600; font-size:.95rem;
  box-shadow:0 14px 30px -8px rgba(31,138,77,.55);
  animation:pulse 2.6s ease-out infinite;
  transition:transform .2s ease, box-shadow .2s ease;
}
.wa-float:hover{ transform:scale(1.04) }
.wa-float svg{ flex-shrink:0 }
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,.5), 0 14px 30px -8px rgba(31,138,77,.55) }
  70%{ box-shadow:0 0 0 18px rgba(37,211,102,0), 0 14px 30px -8px rgba(31,138,77,.55) }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0), 0 14px 30px -8px rgba(31,138,77,.55) }
}

/* ===== Reveal animation ===== */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease }
.reveal.is-visible{ opacity:1; transform:none }

/* ===== Responsive ===== */
@media (max-width: 960px){
  .hero{ padding:32px 0 64px }
  .hero-grid, .sobre-grid{ grid-template-columns:1fr; gap:36px }
  .hero-grid{ row-gap:0 }
  .hero-image{ margin-top:36px }
  .hero-image-frame{ display:none }
  .sobre-image{ order:-1 }
  .steps, .testimonials, .gallery{ grid-template-columns:1fr 1fr }
  .footer-inner{ grid-template-columns:1fr 1fr }
  .nav{ display:none }
  .section{ padding:72px 0 }
  .section-head{ margin-bottom:40px }
}
@media (max-width: 620px){
  body{ font-size:15.5px }
  .section{ padding:56px 0 }
  .steps, .testimonials, .gallery, .footer-inner{ grid-template-columns:1fr }
  .hero-ctas{ flex-direction:column; align-items:stretch }
  .hero-ctas .btn{ width:100% }
  .header-inner{ height:64px; gap:12px }
  .brand-logo{ height:46px }
  .header-inner .btn-sm{ padding:8px 12px; font-size:.8rem }
  .btn-xl{ width:100%; padding:16px 22px; font-size:1rem }
  .wa-float{ height:54px; padding:0 18px 0 14px; right:14px; bottom:14px; font-size:.88rem }
  .wa-float-label{ display:none }
  .wa-float{ padding:0; width:54px; justify-content:center }
  .map-wrap iframe{ height:300px }
  .map-actions .btn{ width:100% }
  .footer-bottom{ flex-direction:column; gap:8px }
  .lead{ font-size:1.02rem }
  /* Hero compacta: botão e prova social visíveis sem rolar */
  .hero{ padding-top:28px }
  .hero .eyebrow{ font-size:.7rem; letter-spacing:.1em; padding:5px 12px; margin-bottom:12px }
  .hero .lead{ display:none }
  .hero-badges{ margin-bottom:20px }
  .hero .link-secondary{ margin-bottom:18px }
  .trust-badges{ gap:10px 16px; font-size:.85rem }
  /* Um diferencial por linha, bolinha alinhada à primeira linha do texto */
  .hero .trust-badges{ flex-direction:column; gap:6px }
  .hero .trust-badges li{ align-items:flex-start }
  .hero .trust-badges .dot{ flex-shrink:0; margin-top:calc((1.65em - 7px) / 2) }
}

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important }
  .reveal{ opacity:1; transform:none }
}

/* ===== Mobile WhatsApp sticky bar ===== */
.wa-bar-mobile{ display:none }
@media (max-width: 768px){
  .wa-bar-mobile{
    display:flex;
    position:fixed; bottom:0; left:0;
    width:100%; min-height:56px;
    z-index:100;
    background:linear-gradient(135deg,var(--wa-green-d),var(--wa-green));
    color:#fff;
    align-items:center; justify-content:center; gap:10px;
    font-family:var(--sans); font-weight:600; font-size:1rem;
    box-shadow:0 -4px 16px rgba(31,138,77,.35);
    text-decoration:none;
  }
  body{ padding-bottom:56px }
  .wa-float{ display:none }
}

/* ===== Seção rich (conteúdo detalhado) ===== */
.section-rich{ background:linear-gradient(180deg, var(--bg) 0%, #fbe7e0 100%) }
.rich-grid{
  display:grid; gap:22px;
  grid-template-columns:repeat(auto-fit, minmax(320px, 1fr));
  margin-top:8px;
}
.rich-block{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:28px 26px;
  box-shadow:var(--shadow-sm);
  transition:transform .25s ease, box-shadow .25s ease;
}
.rich-block:hover{ transform:translateY(-3px); box-shadow:var(--shadow) }
.rich-block h3{
  font-family:var(--serif);
  font-size:1.35rem; font-weight:600;
  color:var(--brown-deep);
  margin-bottom:.6em;
  padding-bottom:.5em;
  border-bottom:1px solid var(--line);
}
.rich-block p{ font-size:.97rem; line-height:1.7 }
.rich-block p:last-child{ margin-bottom:0 }
/* Bloco sobrando sozinho na última linha (7, 13...) ocupa a largura toda em 2 ou 3 colunas */
.rich-block:last-child:nth-child(6n+1){ grid-column:1 / -1 }

/* ===== Áreas atendidas ===== */
.areas-grid{
  list-style:none; padding:0; margin:24px 0 18px;
  display:grid; gap:10px;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
}
.areas-grid li{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:999px;
  padding:10px 18px;
  font-size:.92rem;
  color:var(--brown-deep);
  text-align:center;
  transition:background .2s ease, border-color .2s ease;
}
.areas-grid li:hover{ background:var(--rose-soft); border-color:var(--rose) }
.areas-note{
  text-align:center; font-size:.95rem;
  color:var(--text-soft); max-width:680px; margin:8px auto 0;
}

@media (max-width:640px){
  .rich-block{ padding:22px 20px }
  .rich-block h3{ font-size:1.2rem }
  .areas-grid{ grid-template-columns:repeat(2, 1fr) }
}
