/* ============================================================
   Edmara Monteiro — folha de estilo do site
   Identidade: editorial, feminina, profunda.
   Playfair Display itálico para títulos · Lato light para corpo
   ============================================================ */

/* --- fontes hospedadas no próprio site (não dependem do Google) --- */
@font-face{font-family:'Playfair Display';src:url('../fonts/playfair-display-latin-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'Playfair Display';src:url('../fonts/playfair-display-latin-700-italic.woff2') format('woff2');font-weight:700;font-style:italic;font-display:swap;}
@font-face{font-family:'Playfair Display';src:url('../fonts/playfair-display-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Playfair Display';src:url('../fonts/playfair-display-latin-900-normal.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap;}
@font-face{font-family:'Lato';src:url('../fonts/lato-latin-300-normal.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap;}
@font-face{font-family:'Lato';src:url('../fonts/lato-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Lato';src:url('../fonts/lato-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Cormorant Garamond';src:url('../fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;}

:root{
  --cream:      #FAF6F2;
  --cream-2:    #F6F0EC;
  --blush:      #EFE4E8;
  --blush-soft: #F7EEF0;
  --card:       #F9F1F2;
  --mauve:      #C9A7BC;
  --mauve-deep: #A97F98;

  --ink:        #181114;
  --ink-soft:   #3B2E34;
  --body:       #6E5C64;
  --muted:      #907E86;

  --accent:     #E5155F;
  --accent-dk:  #B80F4B;

  --line:       rgba(24,17,20,.13);
  --line-soft:  rgba(24,17,20,.07);

  --serif: 'Playfair Display', 'Cormorant Garamond', Georgia, serif;
  --sans:  'Lato', 'Helvetica Neue', Arial, sans-serif;
  --label: 'Cormorant Garamond', Georgia, serif;

  --wrap: 1180px;
  --gut: 28px;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--cream);
  color:var(--body);
  font-family:var(--sans);
  font-weight:300;
  font-size:17px;
  line-height:1.72;
  letter-spacing:.012em;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; }

/* ---------- layout ---------- */
.wrap{ width:100%; max-width:var(--wrap); margin:0 auto; padding:0 var(--gut); }
.wrap-narrow{ max-width:860px; }

section{ position:relative; overflow:hidden; }

/* escondido para leitores humanos, visível para leitores de tela e robôs */
.vh{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.sec{ padding:120px 0; }
.sec-sm{ padding:88px 0; }
.sec-lg{ padding:150px 0; }

.bg-cream{ background:var(--cream); }
.bg-blush{ background:var(--blush); }
.bg-blush-soft{ background:var(--blush-soft); }
.bg-cream2{ background:var(--cream-2); }

/* ---------- tipografia ---------- */
h1,h2,h3,h4{
  font-family:var(--serif);
  font-style:italic;
  font-weight:700;
  color:var(--ink);
  letter-spacing:-.02em;
  line-height:1.08;
  margin:0;
}

h1{ font-size:clamp(2.5rem, 6.2vw, 4.6rem); }
h2{ font-size:clamp(2.1rem, 5vw, 3.6rem); }
h3{ font-size:clamp(1.35rem, 2.6vw, 1.85rem); line-height:1.18; }
h4{ font-size:clamp(1.1rem, 2vw, 1.3rem); line-height:1.25; }

p{ margin:0 0 1.15em; }
p:last-child{ margin-bottom:0; }

.eyebrow{
  font-family:var(--sans);
  font-weight:400;
  font-style:normal;
  font-size:.72rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin:0 0 22px;
  display:block;
}
.eyebrow-accent{ color:var(--accent); }

.lead{
  font-size:clamp(1.05rem,1.9vw,1.28rem);
  line-height:1.68;
  color:var(--ink-soft);
  font-weight:300;
}

.rule{
  width:62px; height:1px;
  background:var(--mauve-deep);
  border:0; margin:0 0 34px;
}
.rule-center{ margin-left:auto; margin-right:auto; }

.center{ text-align:center; }
.accent{ color:var(--accent); }
.serif-it{ font-family:var(--serif); font-style:italic; }

.quote-big{
  font-family:var(--serif);
  font-style:italic;
  font-weight:700;
  font-size:clamp(1.8rem,4.4vw,3.3rem);
  line-height:1.16;
  color:var(--ink);
  letter-spacing:-.02em;
  margin:0;
}
.quote-attr{
  font-family:var(--sans);
  font-size:.74rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--muted);
  margin-top:26px;
}

/* ---------- header ---------- */
.site-head{
  position:fixed; top:0; left:0; right:0; z-index:60;
  background:rgba(250,246,242,.86);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--line-soft);
}
.site-head .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:76px; gap:20px;
}
.brand{ display:flex; align-items:center; text-decoration:none; flex:0 0 auto; }
.brand img{ height:44px; width:auto; max-width:none; flex:0 0 auto; }
.brand-fallback{
  font-family:var(--serif); font-style:normal; font-weight:900;
  font-size:1.02rem; line-height:1.02; color:var(--ink); letter-spacing:-.01em;
}

.head-nav{ display:flex; align-items:center; gap:18px; flex:0 1 auto; min-width:0; }
.nav-links{ display:flex; align-items:center; gap:15px; }
.nav-cta{ flex:0 0 auto; padding-left:24px; padding-right:24px; }
.head-nav a{
  font-size:.69rem; letter-spacing:.11em; text-transform:uppercase;
  text-decoration:none; color:var(--ink-soft); font-weight:400;
  transition:color .25s ease;
}
.head-nav a:hover{ color:var(--accent); }

/* --- menu principal --- */
.nav-links a{ position:relative; white-space:nowrap; padding:6px 0; }
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--mauve-deep);
  transform:scaleX(0); transform-origin:right;
  transition:transform .3s ease;
}
.nav-links a:hover::after,
.nav-links a:focus-visible::after{ transform:scaleX(1); transform-origin:left; }
.nav-links a.is-current{ color:var(--ink); }
.nav-links a.is-current::after{ transform:scaleX(1); background:var(--accent); }
.nav-links a.is-active{ color:var(--ink); }
.nav-links a.is-active::after{ transform:scaleX(1); background:var(--mauve-deep); }

/* --- botão sanduíche --- */
.nav-toggle{
  display:none; order:3;
  width:44px; height:44px; padding:0; margin-right:-10px;
  background:transparent; border:0; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.nav-toggle span{
  display:block; width:24px; height:1px; background:var(--ink);
  transition:transform .3s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

.btn-outline{
  display:inline-block;
  padding:15px 30px;
  border:1px solid var(--ink);
  color:var(--ink);
  font-family:var(--sans); font-weight:400;
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  text-decoration:none; background:transparent;
  transition:background .3s ease, color .3s ease, border-color .3s ease;
  white-space:nowrap; cursor:pointer;
}
.btn-outline:hover{ background:var(--ink); color:var(--cream); }

.btn{
  display:inline-block;
  padding:18px 42px;
  background:var(--ink); color:var(--cream);
  font-family:var(--sans); font-weight:400;
  font-size:.74rem; letter-spacing:.2em; text-transform:uppercase;
  text-decoration:none; border:1px solid var(--ink); cursor:pointer;
  transition:background .3s ease, color .3s ease;
}
.btn:hover{ background:transparent; color:var(--ink); }

.btn-accent{ background:var(--accent); border-color:var(--accent); color:#fff; }
.btn-accent:hover{ background:transparent; color:var(--accent); }

.btn-row{ display:flex; flex-wrap:wrap; gap:16px; margin-top:38px; }
.btn-row-center{ justify-content:center; }

/* ---------- hero ---------- */
.hero{
  min-height:100svh;
  display:flex; align-items:center;
  padding:130px 0 90px;
  background:linear-gradient(102deg,#FBF7F3 0%,#F6EDEE 42%,#E0C9D5 76%,#C9A7BC 100%);
  position:relative; overflow:hidden;
}
.hero-inner{ max-width:840px; position:relative; z-index:2; }
.hero h1{ margin-bottom:30px; }
.hero .lead{ max-width:640px; }

.hero-mark{
  position:absolute; right:-4%; bottom:-8%;
  width:min(48vw,620px); opacity:.13; z-index:1; pointer-events:none;
  mix-blend-mode:multiply;
}

.watermark{
  position:absolute; z-index:0; pointer-events:none;
  opacity:.08; mix-blend-mode:multiply;
  width:min(44vw,520px);
}
.wm-right{ right:-3%; top:8%; }
.wm-left{ left:-4%; bottom:4%; }
.sec > .wrap{ position:relative; z-index:2; }

/* ---------- grids ---------- */
.grid{ display:grid; gap:24px; }
.g2{ grid-template-columns:repeat(2,1fr); }
.g3{ grid-template-columns:repeat(3,1fr); }
.g4{ grid-template-columns:repeat(4,1fr); }

.split{
  display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:76px; align-items:center;
}
.split-rev{ grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); }

.portrait{ aspect-ratio:4/5; object-fit:cover; object-position:center; width:100%; }

/* ---------- cards ---------- */
.card{
  background:var(--card);
  border:1px solid var(--line-soft);
  padding:38px 32px;
}
.card-plain{ background:transparent; border:1px solid var(--line); }
.card-cream{ background:var(--cream); }

.quote-card{
  background:var(--blush-soft);
  border:1px solid var(--line-soft);
  padding:38px 32px;
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(1.1rem,2.1vw,1.4rem);
  line-height:1.35; color:var(--ink);
}
.quote-card .qm{ color:var(--accent); font-weight:700; }

.step-letter{
  font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:3.4rem; line-height:1; color:var(--accent);
  display:block; margin-bottom:18px;
}
.card h3{ margin-bottom:12px; }
.card p{ font-size:.97rem; line-height:1.62; color:var(--body); }

.num{
  font-family:var(--label); font-style:italic; font-weight:400;
  font-size:1.5rem; color:var(--accent); letter-spacing:.06em;
  display:block; margin-bottom:14px;
}

/* ---------- listas ---------- */
.tick{ list-style:none; padding:0; margin:0; }
.tick li{
  position:relative; padding-left:26px; margin-bottom:15px;
  font-size:1rem; line-height:1.6; color:var(--ink-soft);
}
.tick li::before{
  content:''; position:absolute; left:0; top:.68em;
  width:9px; height:1px; background:var(--accent);
}
.tick-x li::before{ background:var(--muted); }

.plain-list{ list-style:none; padding:0; margin:0; }
.plain-list li{
  padding:16px 0; border-bottom:1px solid var(--line-soft);
  font-size:.98rem; color:var(--ink-soft);
}
.plain-list li:last-child{ border-bottom:0; }

/* ---------- livros ---------- */
.book{
  display:grid; grid-template-columns:minmax(0,.62fr) minmax(0,1fr);
  gap:52px; align-items:center;
  padding:64px 0; border-bottom:1px solid var(--line-soft);
}
.book:last-of-type{ border-bottom:0; }
.book-cover{ box-shadow:0 24px 54px rgba(24,17,20,.15); }
.book-vol{
  font-family:var(--label); font-style:italic; font-size:1.05rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--accent);
  display:block; margin-bottom:12px;
}
.book h3{ font-size:clamp(1.6rem,3vw,2.3rem); margin-bottom:16px; }
.book .book-sub{
  font-family:var(--serif); font-style:italic; font-size:1.15rem;
  color:var(--ink-soft); margin-bottom:20px; line-height:1.4;
}

/* ---------- eventos ---------- */
.event{
  display:grid; grid-template-columns:1fr auto; gap:20px; align-items:baseline;
  padding:26px 0; border-bottom:1px solid var(--line-soft);
}
.event h4{ margin-bottom:6px; }
.event .ev-meta{ font-size:.94rem; color:var(--body); }
.tag{
  font-family:var(--sans); font-size:.64rem; letter-spacing:.18em;
  text-transform:uppercase; padding:6px 13px; border:1px solid var(--line);
  color:var(--muted); white-space:nowrap;
}
.tag-on{ border-color:var(--accent); color:var(--accent); }

/* ---------- tabela ---------- */
.table-wrap{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
table{ width:100%; border-collapse:collapse; min-width:560px; font-size:.95rem; }
th,td{ text-align:left; padding:17px 18px; border-bottom:1px solid var(--line-soft); vertical-align:top; }
th{
  font-family:var(--sans); font-weight:400; font-size:.68rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--ink);
  border-bottom:1px solid var(--line);
}
td{ color:var(--ink-soft); }
td:first-child{ white-space:nowrap; font-family:var(--serif); font-style:italic; color:var(--ink); }

/* ---------- acordeão ---------- */
.acc{ border-top:1px solid var(--line-soft); }
.acc-item{ border-bottom:1px solid var(--line-soft); }
.acc-head{
  width:100%; background:none; border:0; cursor:pointer;
  display:flex; align-items:baseline; justify-content:space-between; gap:24px;
  padding:28px 0; text-align:left; font-family:inherit; color:inherit;
}
.acc-head:hover .acc-title{ color:var(--accent); }
.acc-title{
  font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:clamp(1.15rem,2.3vw,1.55rem); color:var(--ink);
  line-height:1.2; transition:color .25s ease;
}
.acc-kicker{
  display:block; font-family:var(--sans); font-style:normal; font-weight:400;
  font-size:.66rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--accent); margin-bottom:9px;
}
.acc-sign{
  flex:0 0 auto; width:15px; height:15px; position:relative;
  transition:transform .35s ease;
}
.acc-sign::before,.acc-sign::after{
  content:''; position:absolute; background:var(--ink-soft);
  left:50%; top:50%; transform:translate(-50%,-50%);
}
.acc-sign::before{ width:15px; height:1px; }
.acc-sign::after{ width:1px; height:15px; transition:opacity .3s ease; }
.acc-item.open .acc-sign::after{ opacity:0; }
.acc-body{ display:none; padding:0 0 34px; }
.acc-item.open .acc-body{ display:block; }
.acc-body h4{ margin:24px 0 12px; }
.acc-body h4:first-child{ margin-top:0; }

/* ---------- depoimentos ---------- */
.testi{
  background:var(--cream); border:1px solid var(--line-soft);
  padding:clamp(34px,5vw,60px);
}
.testi p{ font-size:1.03rem; line-height:1.75; color:var(--ink-soft); }
.testi-who{
  margin-top:28px; padding-top:22px; border-top:1px solid var(--line-soft);
  font-family:var(--sans); font-size:.72rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--muted);
}
.testi-nav{ display:flex; gap:12px; justify-content:center; margin-top:34px; }
.testi-nav button{
  width:46px; height:46px; border:1px solid var(--line); background:transparent;
  color:var(--ink); cursor:pointer; font-size:1rem; line-height:1;
  transition:background .25s ease, color .25s ease;
}
.testi-nav button:hover{ background:var(--ink); color:var(--cream); }
.testi-slide{ display:none; }
.testi-slide.active{ display:block; }

/* ---------- loja ---------- */
.shop-group{ margin-bottom:86px; }
.shop-group:last-child{ margin-bottom:0; }
.shop-head{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:20px; flex-wrap:wrap;
  padding-bottom:20px; margin-bottom:38px; border-bottom:1px solid var(--line);
}
.shop-head h3{ font-size:clamp(1.5rem,3vw,2.1rem); }
.shop-head .shop-sub{ font-size:.95rem; color:var(--body); }

.prod{ background:var(--cream); border:1px solid var(--line-soft); }
.prod-gallery{ position:relative; overflow:hidden; aspect-ratio:1/1; background:var(--blush-soft); }
.prod-gallery img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; transition:opacity .55s ease;
}
.prod-gallery img.b{ opacity:0; }
.prod:hover .prod-gallery img.a{ opacity:0; }
.prod:hover .prod-gallery img.b{ opacity:1; }
.prod-body{ padding:22px 20px 26px; }
.prod-name{
  font-family:var(--serif); font-style:italic; font-weight:700;
  font-size:1.08rem; color:var(--ink); line-height:1.25; margin:0 0 16px;
}
.prod-cta{
  display:inline-block; font-family:var(--sans); font-size:.68rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--accent);
  text-decoration:none; border-bottom:1px solid var(--accent);
  padding-bottom:3px; transition:opacity .25s ease;
}
.prod-cta:hover{ opacity:.6; }

/* ---------- formulário ---------- */
.form-wrap{ max-width:520px; margin:44px auto 0; }
.field{ margin-bottom:18px; }
.field input{
  width:100%; padding:17px 18px;
  background:var(--cream); border:1px solid var(--line);
  font-family:var(--sans); font-weight:300; font-size:1rem; color:var(--ink);
  border-radius:0; -webkit-appearance:none;
}
.field input::placeholder{ color:var(--muted); }
.field input:focus{ outline:none; border-color:var(--accent); }
.form-note{
  margin-top:20px; font-size:.8rem; letter-spacing:.06em; color:var(--muted);
  text-align:center;
}
.form-msg{
  margin-top:18px; padding:15px 18px; font-size:.92rem; display:none;
  border:1px solid var(--line);
}
.form-msg.ok{ display:block; border-color:var(--accent); color:var(--accent); }
.form-msg.err{ display:block; border-color:#b3261e; color:#b3261e; }
.form-wrap .btn{ width:100%; text-align:center; }

/* ---------- rodapé ---------- */
.site-foot{
  background:var(--ink); color:rgba(245,240,240,.7);
  padding:76px 0 44px; text-align:center;
}
.site-foot .foot-logo{ height:56px; width:auto; margin:0 auto 22px; }
.site-foot .foot-logo-txt{
  font-family:var(--serif); font-style:normal; font-weight:900;
  font-size:1.4rem; color:#F5F0F0; line-height:1.05; margin-bottom:22px;
}
.foot-role{
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(245,240,240,.62); margin-bottom:34px;
}
.foot-links{
  display:flex; flex-wrap:wrap; gap:8px 26px; justify-content:center;
  margin-bottom:38px;
}
.foot-links a{
  font-size:.74rem; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; color:rgba(245,240,240,.72);
  transition:color .25s ease;
}
.foot-links a:hover{ color:var(--accent); }
.foot-copy{
  font-size:.74rem; letter-spacing:.1em; color:rgba(245,240,240,.42);
  padding-top:30px; border-top:1px solid rgba(245,240,240,.13);
}

/* ---------- animação de entrada ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s ease, transform .9s ease; }
.reveal.in{ opacity:1; transform:none; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; transition:none; }
  *{ animation-duration:.001ms!important; transition-duration:.001ms!important; }
}

/* ---------- responsivo ---------- */

/* menu vira sanduíche quando a linha não cabe mais */
@media (max-width:1240px){
  .nav-toggle{ display:flex; }
  .site-head .wrap{ justify-content:space-between; }
  .head-nav{
    position:fixed; top:76px; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    padding:6px 0 26px;
    background:var(--cream);
    border-bottom:1px solid var(--line);
    box-shadow:0 24px 40px -28px rgba(24,17,20,.35);
    max-height:calc(100vh - 76px); overflow-y:auto;
    opacity:0; visibility:hidden; pointer-events:none;
    transform:translateY(-10px);
    transition:opacity .28s ease, transform .28s ease, visibility .28s;
  }
  .head-nav.is-open{ opacity:1; visibility:visible; pointer-events:auto; transform:none; }
  .nav-links{ flex-direction:column; align-items:stretch; gap:0; }
  .nav-links a{
    padding:16px var(--gut); font-size:.78rem; letter-spacing:.16em;
    border-bottom:1px solid var(--line-soft);
  }
  .nav-links a::after{ display:none; }
  .nav-links a.is-current{ color:var(--accent); }
  .head-nav .nav-cta{
    margin:24px var(--gut) 0; text-align:center;
    padding:16px 24px; font-size:.7rem;
  }
  body.nav-aberto{ overflow:hidden; }
}

@media (max-width:980px){
  .split,.split-rev{ grid-template-columns:1fr; gap:44px; }
  .split-rev .split-media{ order:-1; }
  .g4{ grid-template-columns:repeat(2,1fr); }
  .book{ grid-template-columns:1fr; gap:32px; padding:48px 0; }
  .book-cover{ max-width:280px; }
  .hero-mark{ width:70vw; opacity:.1; }
}

@media (max-width:760px){
  :root{ --gut:22px; }
  body{ font-size:16px; }
  .sec{ padding:82px 0; }
  .sec-lg{ padding:96px 0; }
  .sec-sm{ padding:64px 0; }
  .g2,.g3,.g4{ grid-template-columns:1fr; }
  .site-head .wrap{ height:66px; }
  .head-nav{ top:66px; max-height:calc(100vh - 66px); }
  .brand img{ height:38px; }
  .hero{ padding:112px 0 76px; min-height:auto; }
  .event{ grid-template-columns:1fr; gap:10px; }
  .tag{ justify-self:start; }
  .card{ padding:30px 24px; }
  .btn{ padding:16px 30px; width:100%; text-align:center; }
  .btn-row{ gap:12px; }
}
