/* ============================================================
   ALTAN · Alta perfumaria para pets
   Folha de estilo base (mapeável a resources/css no Laravel)
   ============================================================ */

:root{
  /* Paleta extraída da marca (CMYK → RGB) */
  --olive:      #33381d;   /* C60 M56 Y77 K50 — primária / escuros */
  --olive-soft: #444829;   /* derivado — superfícies sobre escuro  */
  --gold:       #7d7345;   /* C42 M47 Y68 K15 — secundária / acento */
  --gold-deep:  #645b34;   /* hover do dourado */
  --stone:      #bcbfb2;   /* C26 M25 Y30 — neutro */
  --stone-soft: #d8d5c9;
  --cream:      #ede0cc;   /* C07 M12 Y20 — fundo claro */
  --paper:      #f6f2e9;   /* near-white quente — fundo principal */
  --paper-2:    #fbf9f3;
  --ink:        #2c2d20;   /* texto sobre claro */
  --ink-soft:   #6a6957;   /* texto secundário */
  --line:       #e3ddce;   /* divisórias sobre claro */

  /* acentos por fragrância (uso pontual) */
  --c-amor:#e07b6e; --c-euforia:#e7a23c; --c-serenidade:#9cbf8f;
  --c-confianca:#74bfe0; --c-nostalgia:#e87b48;
  --c-high:#2bb6e3; --c-paradise:#c9bd13; --c-vip:#8e44ad;

  --serif: 'Cormorant Garamond', 'Times New Roman', serif;
  --sans:  'Jost', 'Helvetica Neue', Arial, sans-serif;

  --maxw: 1240px;
  --pad: clamp(22px, 5vw, 64px);
  --sect: clamp(72px, 11vw, 148px);
  --r: 4px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
section[id]{ scroll-margin-top:96px; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-weight:300; font-size:17px; line-height:1.72;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }

/* ---------- Tipografia ---------- */
h1,h2,h3,h4{ font-family:var(--serif); font-weight:400; margin:0; line-height:1.06; letter-spacing:.005em; }
.display{ font-size:clamp(2.9rem, 7.2vw, 6.1rem); font-weight:300; line-height:.98; }
h2.section-title{ font-size:clamp(2.1rem, 4.6vw, 3.6rem); font-weight:400; }
h3{ font-size:clamp(1.5rem,2.4vw,2rem); }
.serif-i{ font-style:italic; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }

.eyebrow{
  font-family:var(--sans); font-weight:500; font-size:.72rem;
  letter-spacing:.34em; text-transform:uppercase; color:var(--gold);
  display:inline-block; margin:0 0 1.4rem;
}
.eyebrow.on-dark{ color:var(--stone); }
.lede{ font-size:clamp(1.05rem,1.5vw,1.32rem); color:var(--ink-soft); font-weight:300; line-height:1.7; }
.muted{ color:var(--ink-soft); }

/* ---------- Layout ---------- */
.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.wide{ max-width:1480px; }
.section{ padding-block:var(--sect); }
.center{ text-align:center; }
.divider{ height:1px; background:var(--line); border:0; margin:0; }

/* ---------- Botões ---------- */
.btn{
  --bg:var(--olive); --fg:var(--paper); --bd:var(--olive);
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--sans); font-weight:400; font-size:.82rem;
  letter-spacing:.16em; text-transform:uppercase;
  padding:1.02em 1.9em; border:1px solid var(--bd); border-radius:var(--r);
  background:var(--bg); color:var(--fg);
  transition:background .35s var(--ease), color .35s var(--ease),
             border-color .35s var(--ease), transform .35s var(--ease);
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary:hover{ --bg:var(--gold); --bd:var(--gold); }
.btn-gold{ --bg:var(--gold); --bd:var(--gold); --fg:#fff; }
.btn-gold:hover{ --bg:var(--gold-deep); --bd:var(--gold-deep); }
.btn-ghost{ --bg:transparent; --fg:var(--olive); --bd:var(--stone); }
.btn-ghost:hover{ --bg:var(--olive); --fg:var(--paper); --bd:var(--olive); }
.btn-light{ --bg:transparent; --fg:var(--cream); --bd:rgba(237,224,204,.5); }
.btn-light:hover{ --bg:var(--cream); --fg:var(--olive); --bd:var(--cream); }
.btn-block{ width:100%; justify-content:center; }
.btn .ar{ transition:transform .35s var(--ease); }
.btn:hover .ar{ transform:translateX(4px); }
.btn-row{ display:flex; flex-wrap:wrap; gap:14px; }

/* link sublinhado dourado */
.link-u{
  font-family:var(--sans); font-weight:400; font-size:.82rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--olive); display:inline-flex; align-items:center; gap:.6em;
  padding-bottom:6px; border-bottom:1px solid var(--gold);
  transition:color .3s var(--ease), gap .3s var(--ease);
}
.link-u:hover{ color:var(--gold); gap:.95em; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:60;
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding:20px var(--pad);
  transition:background .4s var(--ease), box-shadow .4s var(--ease),
             padding .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  background:rgba(246,242,233,.9); backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 1px 0 rgba(51,56,29,.06), 0 18px 40px -34px rgba(51,56,29,.5);
  padding-block:13px; border-bottom-color:var(--line);
}
.brand{ display:flex; align-items:center; flex:0 0 auto; }
.brand img{ height:46px; width:auto; transition:height .4s var(--ease); }
.site-header.scrolled .brand img{ height:38px; }

.nav{ display:flex; align-items:center; gap:38px; }
.nav-link{
  font-family:var(--sans); font-weight:400; font-size:.84rem;
  letter-spacing:.13em; text-transform:uppercase; color:var(--ink);
  position:relative; padding:6px 0; transition:color .3s var(--ease); white-space:nowrap;
}
.nav-link::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1px; width:0;
  background:var(--gold); transition:width .35s var(--ease);
}
.nav-link:hover{ color:var(--gold); }
.nav-link:hover::after, .nav-link[aria-current="page"]::after{ width:100%; }
.nav-link[aria-current="page"]{ color:var(--gold); }

/* submenu (dropdown) */
.nav-item{ position:relative; display:flex; align-items:center; }
.nav-parent{ display:inline-flex; align-items:center; gap:.42em; }
.nav-parent .caret{ opacity:.55; transition:transform .3s var(--ease); }
.nav-item:hover .caret, .nav-item:focus-within .caret{ transform:rotate(180deg); }
.subnav{
  position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(6px);
  background:var(--paper-2); border:1px solid var(--line); border-radius:var(--r);
  box-shadow:0 26px 54px -30px rgba(51,56,29,.7);
  padding:10px; min-width:212px; display:grid; gap:2px; z-index:6;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .28s var(--ease), transform .28s var(--ease);
}
.subnav::before{ content:""; position:absolute; top:-12px; left:0; right:0; height:12px; } /* ponte de hover */
.nav-item:hover .subnav, .nav-item:focus-within .subnav{
  opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(10px);
}
.subnav a{
  font-family:var(--sans); font-size:.82rem; letter-spacing:.04em; color:var(--ink);
  text-transform:none; padding:.72em .9em; border-radius:3px; white-space:nowrap;
  display:flex; align-items:center; gap:.65em; transition:background .25s var(--ease), color .25s var(--ease);
}
.subnav a::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--gold); opacity:.55; transition:opacity .25s var(--ease); }
.subnav a:hover{ background:var(--cream); color:var(--gold); }
.subnav a:hover::before{ opacity:1; }

/* submenu no drawer mobile */
.nav-drawer .drawer-sub{
  display:grid; gap:0; margin:2px 0 6px; padding-left:20px;
  border-left:1px solid rgba(237,224,204,.2);
}
.nav-drawer .drawer-sub a{
  font-size:1.35rem; color:var(--stone); border-bottom:0; padding:.16em 0;
}
.nav-drawer .drawer-sub a:hover{ color:var(--cream); }

.header-actions{ display:flex; align-items:center; gap:18px; }
.header-cta{
  display:inline-flex; align-items:center; gap:.55em;
  font-family:var(--sans); font-weight:400; font-size:.8rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--olive);
  border:1px solid var(--stone); border-radius:var(--r); padding:.72em 1.15em;
  transition:all .3s var(--ease);
}
.header-cta:hover{ background:var(--olive); color:var(--paper); border-color:var(--olive); }
.header-cta svg{ width:16px; height:16px; }

.hamburger{
  display:none; width:44px; height:44px; border:1px solid var(--stone);
  border-radius:var(--r); background:transparent; position:relative; flex:0 0 auto;
}
.hamburger span,.hamburger span::before,.hamburger span::after{
  content:""; position:absolute; left:50%; top:50%; width:18px; height:1.6px;
  background:var(--olive); transform:translate(-50%,-50%); transition:.3s var(--ease);
}
.hamburger span::before{ transform:translate(-50%,-7px); }
.hamburger span::after{ transform:translate(-50%,7px); }
body.menu-open .hamburger span{ background:transparent; }
body.menu-open .hamburger span::before{ transform:translate(-50%,0) rotate(45deg); background:var(--cream); }
body.menu-open .hamburger span::after{ transform:translate(-50%,0) rotate(-45deg); background:var(--cream); }

/* drawer mobile */
.nav-drawer{
  position:fixed; inset:0; z-index:55; background:var(--olive);
  display:flex; flex-direction:column; justify-content:center; gap:6px;
  padding:0 var(--pad); transform:translateY(-100%);
  transition:transform .55s var(--ease); visibility:hidden;
}
body.menu-open .nav-drawer{ transform:translateY(0); visibility:visible; }
.nav-drawer a{
  font-family:var(--serif); font-size:2.3rem; color:var(--cream); font-weight:300;
  padding:.32em 0; border-bottom:1px solid rgba(237,224,204,.12);
}
.nav-drawer a:last-of-type{ border-bottom:0; }
.nav-drawer .drawer-foot{
  margin-top:34px; font-family:var(--sans); font-size:.85rem; letter-spacing:.04em;
  color:var(--stone); text-transform:none;
}
.nav-drawer .drawer-foot a{ font-family:var(--sans); font-size:.9rem; border:0; padding:0; display:inline; }

/* ============================================================
   HERO (Home)
   ============================================================ */
.hero{ position:relative; min-height:92vh; display:grid; grid-template-columns:1.05fr .95fr; }
.hero-text{
  display:flex; flex-direction:column; justify-content:center;
  padding:148px var(--pad) 96px; background:var(--paper);
  position:relative; z-index:2;
}
.hero-text .display{ max-width:13ch; }
.hero-text .lede{ max-width:46ch; margin-top:1.5rem; }
.hero-text .btn-row{ margin-top:2.6rem; }
.hero-media{ position:relative; overflow:hidden; background:var(--cream); }
.hero-media img{ width:100%; height:100%; object-fit:cover; object-position:38% 42%; }
.hero-media::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(100deg, var(--paper) 0%, rgba(246,242,233,.35) 18%, rgba(246,242,233,0) 42%);
}
.hero-scroll{
  position:absolute; left:var(--pad); bottom:34px; z-index:3;
  font-family:var(--sans); font-size:.72rem; letter-spacing:.28em; text-transform:uppercase;
  color:var(--ink-soft); display:flex; align-items:center; gap:.8em;
}
.hero-scroll i{ width:46px; height:1px; background:var(--gold); display:inline-block; }

/* ============================================================
   SEÇÕES EDITORIAIS
   ============================================================ */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,96px); align-items:center; }
.split.reverse .split-media{ order:2; }
.split-media{ position:relative; }
.split-media img{ width:100%; border-radius:var(--r); }
.split-body .eyebrow{ margin-bottom:1rem; }
.split-body .section-title{ margin-bottom:1.4rem; }

.media-frame{ position:relative; }
.media-frame::after{
  content:""; position:absolute; inset:auto -22px -22px auto; width:62%; height:62%;
  border:1px solid var(--gold); border-radius:var(--r); z-index:-1;
}

/* faixa escura */
.band-dark{ background:var(--olive); color:var(--cream); position:relative; overflow:hidden; }
.band-dark .section-title{ color:var(--cream); }
.band-dark .lede, .band-dark .muted{ color:var(--stone); }
.band-dark .watermark{
  position:absolute; right:-4%; bottom:-32%; font-family:var(--serif); font-style:italic;
  font-size:46vw; line-height:1; color:rgba(237,224,204,.04); pointer-events:none; user-select:none; z-index:0;
}
.band-dark .container{ position:relative; z-index:1; }

/* ---------- Vitrine de produtos (preview) ---------- */
.vitrine-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:clamp(34px,5vw,56px); }
.vitrine-head .section-title{ max-width:16ch; }

.pgrid{ display:grid; gap:clamp(18px,2.4vw,30px); }
.pgrid.cols-3{ grid-template-columns:repeat(3,1fr); }
.pgrid.cols-4{ grid-template-columns:repeat(4,1fr); }

.pcard{ display:flex; flex-direction:column; }
.pcard-media{
  position:relative; overflow:hidden; border-radius:var(--r); background:var(--cream);
  aspect-ratio:3/4; border:1px solid var(--line);
}
.pcard-media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--ease);
}
.pcard:hover .pcard-media img{ transform:scale(1.045); }
.pcard-media::after{
  content:""; position:absolute; inset:0; border-radius:var(--r);
  box-shadow:inset 0 0 0 1px transparent; transition:box-shadow .4s var(--ease);
}
.pcard:hover .pcard-media::after{ box-shadow:inset 0 0 0 1px var(--gold); }
.pcard-tag{
  position:absolute; top:14px; left:14px; z-index:2;
  font-family:var(--sans); font-size:.62rem; letter-spacing:.18em; text-transform:uppercase;
  background:rgba(246,242,233,.92); color:var(--olive); padding:.42em .8em; border-radius:100px;
  display:inline-flex; align-items:center; gap:.5em;
}
.pcard-tag .dot{ width:7px; height:7px; border-radius:50%; background:var(--gold); }
.pcard-body{ padding:1.2rem .2rem 0; }
.pcard-name{ font-family:var(--serif); font-size:1.5rem; font-weight:400; line-height:1.1; }
.pcard-sub{ font-family:var(--sans); font-size:.78rem; letter-spacing:.04em; color:var(--ink-soft); margin-top:.35rem; }
.pcard-formats{ margin-top:.9rem; display:flex; gap:8px; flex-wrap:wrap; }
.chip{
  font-family:var(--sans); font-size:.7rem; letter-spacing:.08em; color:var(--ink-soft);
  border:1px solid var(--line); border-radius:100px; padding:.32em .8em;
}

/* ---------- CTA downloads banner ---------- */
.dlcta{ background:var(--cream); position:relative; overflow:hidden; }
.dlcta .inner{ display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.dlcta .section-title{ max-width:18ch; }

/* ============================================================
   LISTAGEM — EAU DE PARFUM
   ============================================================ */
.page-head{ padding:clamp(150px,18vh,210px) 0 clamp(40px,6vw,72px); text-align:center; }
.page-head .display{ margin-inline:auto; }
.page-head .lede{ max-width:54ch; margin:1.4rem auto 0; }

.line-banner{
  position:relative; border-radius:var(--r); overflow:hidden; margin-bottom:clamp(34px,5vw,52px);
  border:1px solid var(--line);
}
.line-banner img{ width:100%; display:block; }
.line-intro{ display:flex; align-items:flex-end; justify-content:space-between; gap:28px; flex-wrap:wrap; margin-bottom:30px; }
.line-intro .section-title{ font-size:clamp(2rem,3.6vw,3rem); }
.line-intro p{ max-width:42ch; }
.line-meta{ font-family:var(--sans); font-size:.72rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); }

/* ============================================================
   PÁGINA DE PRODUTO
   ============================================================ */
.pd-top{ padding-top:clamp(132px,16vh,180px); }
.crumbs{ font-family:var(--sans); font-size:.75rem; letter-spacing:.08em; color:var(--ink-soft); margin-bottom:30px; display:flex; gap:.6em; flex-wrap:wrap; }
.crumbs a:hover{ color:var(--gold); }
.crumbs span{ color:var(--stone); }

.pd-hero{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(36px,5vw,80px); align-items:start; }
.pd-gallery{ display:grid; grid-template-columns:1fr; gap:16px; }
.pd-shot{ background:var(--cream); border:1px solid var(--line); border-radius:var(--r); overflow:hidden; position:relative; }
.pd-shot img{ width:100%; aspect-ratio:3/4; object-fit:cover; }
.pd-info{ position:sticky; top:104px; }
.pd-line{ font-family:var(--sans); font-size:.74rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); }
.pd-title{ font-size:clamp(2.6rem,4.6vw,4rem); font-weight:300; margin:.5rem 0 .2rem; }
.pd-inspo{ font-family:var(--serif); font-style:italic; font-size:1.3rem; color:var(--ink-soft); }
.pd-desc{ margin-top:1.7rem; }
.pd-formats{ margin-top:1.9rem; }
.pd-formats .lbl{ font-family:var(--sans); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.7rem; }
.fmt-row{ display:flex; gap:10px; flex-wrap:wrap; }
.fmt{
  font-family:var(--sans); font-size:.85rem; letter-spacing:.05em; color:var(--olive);
  border:1px solid var(--stone); border-radius:var(--r); padding:.7em 1.15em; background:transparent;
}
.pd-buy{ margin-top:2.1rem; display:flex; gap:14px; flex-wrap:wrap; align-items:center; }

/* pirâmide olfativa */
.pyramid{ display:grid; gap:14px; }
.pyr-row{
  display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:center;
  padding:1.5rem 0; border-bottom:1px solid var(--line);
}
.pyr-row:first-child{ border-top:1px solid var(--line); }
.pyr-k{ font-family:var(--serif); font-style:italic; font-size:1.5rem; color:var(--gold); white-space:nowrap; }
.pyr-k small{ display:block; font-family:var(--sans); font-style:normal; font-size:.64rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin-top:.2rem; }
.pyr-v{ font-family:var(--serif); font-size:1.35rem; color:var(--ink); line-height:1.4; }

/* pirâmide olfativa visual (fragrâncias — kits seguem usando .pyramid acima) */
.pyr-tri{ display:grid; gap:10px; justify-items:center; text-align:center; }
.pyr-step{
  width:56%; padding:clamp(.9rem,2vw,1.3rem) clamp(1rem,3vw,2rem);
  background:var(--accent); /* fallback sem color-mix */
  background:color-mix(in srgb, var(--accent) 60%, var(--olive));
  color:var(--paper); border-radius:var(--r);
}
.pyr-step:nth-child(2){ width:78%; }
.pyr-step:nth-child(3){ width:100%; }
.pyr-step strong{
  display:block; font-family:var(--sans); font-weight:500; font-size:.78rem;
  letter-spacing:.18em; text-transform:uppercase; margin-bottom:.35rem;
}
.pyr-step span{ display:block; font-family:var(--serif); font-size:clamp(1.15rem,2vw,1.35rem); line-height:1.4; }
.pyr-family{ margin-top:1.1rem; }
.pyr-family strong{
  display:block; font-family:var(--sans); font-weight:500; font-size:.72rem;
  letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.3rem;
}
.pyr-family span{ font-family:var(--serif); font-size:1.35rem; color:var(--ink); }

/* abas técnicas (renderizadas sobre .band-dark) */
.tabs{ }
.tab-nav{ display:flex; gap:6px; flex-wrap:wrap; border-bottom:1px solid rgba(237,224,204,.18); margin-bottom:2.4rem; }
.tab-btn{
  font-family:var(--sans); font-size:.82rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--stone); background:transparent; border:0; padding:1em 1.3em;
  position:relative; cursor:pointer; transition:color .3s var(--ease);
}
.tab-btn::after{ content:""; position:absolute; left:1.3em; right:1.3em; bottom:-1px; height:2px; background:var(--gold); transform:scaleX(0); transition:transform .35s var(--ease); }
.tab-btn:hover{ color:var(--cream); }
.tab-btn[aria-selected="true"]{ color:var(--cream); }
.tab-btn[aria-selected="true"]::after{ transform:scaleX(1); }
.tab-panel{ display:none; max-width:64ch; color:var(--stone); animation:fade .5s var(--ease); }
.tab-panel.active{ display:block; }
.tab-panel h4{ font-size:1.4rem; margin-bottom:.7rem; color:var(--cream); }
.tab-panel ul{ margin:.4rem 0 0; padding-left:1.1rem; }
.tab-panel li{ margin-bottom:.5rem; }
@keyframes fade{ from{ opacity:0; transform:translateY(8px);} to{ opacity:1; transform:none;} }
@media (max-width:640px){
  .tab-nav{ gap:2px; }
  .tab-btn{ font-size:.72rem; letter-spacing:.08em; padding:.85em .9em; }
}

/* vídeo do produto (embed do YouTube, dentro das informações técnicas) */
.video-embed{
  margin-top:2.4rem; aspect-ratio:16/9; border-radius:var(--r); overflow:hidden;
  border:1px solid rgba(237,224,204,.18); background:var(--olive);
}
.video-embed iframe{ display:block; width:100%; height:100%; border:0; }

/* relacionados */
.related-head{ margin-bottom:34px; }

/* ============================================================
   DOWNLOADS
   ============================================================ */
.dl-list{ display:grid; gap:0; border-top:1px solid var(--line); }
.dl-item{
  display:grid; grid-template-columns:auto 1fr auto; gap:clamp(18px,3vw,40px);
  align-items:center; padding:clamp(22px,3vw,34px) 0; border-bottom:1px solid var(--line);
  transition:padding-left .35s var(--ease);
}
.dl-item:hover{ padding-left:10px; }
.dl-ic{ width:56px; height:56px; border:1px solid var(--stone); border-radius:var(--r); display:grid; place-items:center; color:var(--gold); flex:0 0 auto; }
.dl-ic svg{ width:24px; height:24px; }
.dl-meta h3{ font-size:1.55rem; }
.dl-meta .file{ font-family:var(--sans); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-top:.4rem; display:flex; gap:.8em; flex-wrap:wrap; }
.dl-meta .file span{ display:inline-flex; align-items:center; gap:.4em; }

/* ============================================================
   CONTATO
   ============================================================ */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,90px); align-items:start; }
.contact-list{ list-style:none; margin:2.2rem 0 0; padding:0; display:grid; gap:0; }
.contact-list li{ display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:center; padding:1.5rem 0; border-bottom:1px solid var(--line); }
.contact-list li:first-child{ border-top:1px solid var(--line); }
.contact-list .ic{ width:46px; height:46px; border:1px solid var(--stone); border-radius:50%; display:grid; place-items:center; color:var(--gold); }
.contact-list .ic svg{ width:20px; height:20px; }
.contact-list .k{ font-family:var(--sans); font-size:.7rem; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-soft); }
.contact-list .v{ font-family:var(--serif); font-size:1.4rem; }
.contact-list .v:hover{ color:var(--gold); }

.cform{ background:var(--paper-2); border:1px solid var(--line); border-radius:var(--r); padding:clamp(26px,4vw,44px); }
.field{ margin-bottom:18px; }
.field label{ font-family:var(--sans); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:.6rem; }
.field input,.field textarea,.field select{
  width:100%; font-family:var(--sans); font-size:1rem; font-weight:300; color:var(--ink);
  background:#fff; border:1px solid var(--line); border-radius:var(--r); padding:.9em 1em;
  transition:border-color .3s var(--ease);
}
.field input:focus,.field textarea:focus,.field select:focus{ outline:none; border-color:var(--gold); }
.field textarea{ resize:vertical; min-height:130px; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{ background:var(--olive); color:var(--stone); padding-top:clamp(64px,8vw,96px); position:relative; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:clamp(48px,6vw,72px); }
.footer-brand img{ height:52px; margin-bottom:22px; }
.footer-brand p{ color:var(--stone); font-size:.95rem; max-width:34ch; }
.footer-col h4{ font-family:var(--sans); font-weight:500; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--cream); margin-bottom:1.2rem; }
.footer-col ul{ list-style:none; margin:0; padding:0; display:grid; gap:.75rem; }
.footer-col a{ color:var(--stone); font-size:.95rem; transition:color .3s var(--ease); }
.footer-col a:hover{ color:var(--cream); }
.social{ display:flex; gap:12px; margin-top:4px; }
.social a{ width:42px; height:42px; border:1px solid rgba(237,224,204,.22); border-radius:50%; display:grid; place-items:center; color:var(--stone); transition:.3s var(--ease); }
.social a:hover{ background:var(--cream); color:var(--olive); border-color:var(--cream); transform:translateY(-2px); }
.social svg{ width:18px; height:18px; }
.footer-bottom{ border-top:1px solid rgba(237,224,204,.14); padding:26px 0; display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; font-size:.8rem; letter-spacing:.04em; }
.footer-bottom a:hover{ color:var(--cream); }

/* ---------- WhatsApp flutuante ---------- */
.wa-float{
  position:fixed; right:24px; bottom:24px; z-index:70; width:60px; height:60px; border-radius:50%;
  background:#25D366; color:#fff; display:grid; place-items:center;
  box-shadow:0 14px 30px -8px rgba(37,211,102,.6); transition:transform .35s var(--ease);
}
.wa-float:hover{ transform:scale(1.08); }
.wa-float svg{ width:32px; height:32px; fill:#fff; }
.wa-float::after{
  content:""; position:absolute; inset:0; border-radius:50%; border:2px solid #25D366;
  animation:waPulse 2.4s var(--ease) infinite;
}
@keyframes waPulse{ 0%{ transform:scale(1); opacity:.6;} 100%{ transform:scale(1.6); opacity:0;} }

/* placeholder de imagem (assets a serem fornecidos) */
.imgph{
  position:relative; border-radius:var(--r); overflow:hidden;
  background:var(--cream); border:1px solid var(--line);
  display:grid; place-items:center; color:var(--ink-soft);
  background-image:repeating-linear-gradient(135deg, transparent 0 22px, rgba(125,115,69,.06) 22px 44px);
}
.imgph .ph-in{ text-align:center; padding:24px; }
.imgph svg{ width:38px; height:38px; color:var(--gold); margin-inline:auto; }
.imgph .ph-cap{ font-family:'Jost',sans-serif; font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; margin-top:14px; }
.imgph .ph-note{ font-family:monospace; font-size:.7rem; color:var(--stone); margin-top:6px; }

/* reveal on scroll */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; }
  .wa-float::after{ animation:none; }
  html{ scroll-behavior:auto; }
}

/* ============================================================
   RESPONSIVO
   ============================================================ */
@media (max-width:1024px){
  .footer-top{ grid-template-columns:1fr 1fr; gap:36px; }
  .footer-brand{ grid-column:1 / -1; }
  .hero{ min-height:auto; }
}
@media (max-width:920px){
  .nav, .header-cta{ display:none; }
  .hamburger{ display:block; }
  .hero{ grid-template-columns:1fr; }
  .hero-media{ order:-1; height:46vh; min-height:300px; }
  .hero-media img{ object-position:42% 36%; }
  .hero-media::before{ background:linear-gradient(0deg, var(--paper) 0%, rgba(246,242,233,0) 36%); }
  .hero-text{ padding:40px var(--pad) 64px; }
  .hero-text .display{ max-width:none; }
  .hero-scroll{ display:none; }
  .split{ grid-template-columns:1fr; gap:34px; }
  .split.reverse .split-media{ order:0; }
  .pd-hero{ grid-template-columns:1fr; }
  .pd-info{ position:static; }
  .contact-grid{ grid-template-columns:1fr; }
  .pgrid.cols-4{ grid-template-columns:repeat(2,1fr); }
  .pgrid.cols-3{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px){
  body{ font-size:16px; }
  .pyr-tri{ gap:8px; }
  .pyr-step{ width:74%; }
  .pyr-step:nth-child(2){ width:88%; }
  .pyr-step:nth-child(3){ width:100%; }
  .pyr-step span{ font-size:1.05rem; }
  .pyr-family span{ font-size:1.2rem; }
  .pgrid.cols-4, .pgrid.cols-3{ grid-template-columns:1fr 1fr; gap:14px; }
  .pcard-name{ font-size:1.2rem; }
  .dl-item{ grid-template-columns:auto 1fr; }
  .dl-item .btn{ grid-column:1 / -1; }
  .footer-top{ grid-template-columns:1fr; }
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
  .wa-float{ width:54px; height:54px; right:18px; bottom:18px; }
}
