/* ═══════════════════════════════════════════════════════════════
   SI Cortes Especiais — Folha de Estilos
   Marmoraria de Alto Padrão | São Paulo
   ═══════════════════════════════════════════════════════════════ */

:root {
  --bg:       #ffffff;
  --bg-alt:   #f7f7f5;
  --ink:      #1c1c1a;
  --ink2:     #3a3a37;
  --ink3:     #808079;
  --ink4:     #3c9109;
  --ink5:     #f0f0f0;
  --gold:     #b8924a;
  --gold-l:   #d4ae72;
  --border:   #e4e4e0;
  --border2:  #c8c8c2;
}

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

html {
  scroll-behavior: smooth;
}

body {
	background: var(--bg);
	color: var(--ink);
	font-family: 'Jost', sans-serif;
	font-weight: 300;
	overflow-x: hidden;
	background-color: #FFF;
}

img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ───── CURSOR PERSONALIZADO ───── */
body { cursor: none; }

#cur {
  position: fixed;
  width: 10px;
  height: 10px;
  background: var(--gold);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: width .2s, height .2s;
  mix-blend-mode: multiply;
}

#cur-r {
  position: fixed;
  width: 32px;
  height: 32px;
  border: 1px solid var(--gold);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9998;
  transform: translate(-50%, -50%);
  opacity: .5;
  transition: all .1s;
}

@media (pointer: coarse) {
  #cur, #cur-r { display: none; }
  body { cursor: auto; }
}

/* ───── NAVBAR ───── */
#nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 800;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 3.5rem;
  height: 96px;
  background: rgba(255, 255, 255, 0);
  transition: background .35s, border-bottom .35s, height .3s, box-shadow .35s;
}

#nav.solid {
  background: rgba(255, 255, 255, .97);
  border-bottom: 1px solid var(--border);
  height: 76px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 1px 12px rgba(0,0,0,.04);
}

.nav-logo { display: flex; align-items: center; }
.nav-logo a { display: block; line-height: 0; }
.nav-logo img {
  height: 64px;
  width: auto;
  object-fit: contain;
  transition: height .3s, filter .3s;
}
#nav.solid .nav-logo img { height: 52px; }

/* Logo branco no topo (sobre o hero escuro) — usa filtro CSS */
#nav:not(.solid) .nav-logo img {
  filter: brightness(0) invert(1);
}

/* ───── BOTÃO MENU ───── */
.menu-btn {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .55rem 1.3rem .55rem 1.4rem;
  background: transparent;
  border: 1px solid rgba(255,255,255,.5);
  cursor: pointer;
  transition: all .25s ease;
  font-family: 'Jost', sans-serif;
}

#nav.solid .menu-btn { border-color: var(--gold); }

.menu-btn:hover {
  background: var(--gold);
  border-color: var(--gold);
}

.menu-btn-text {
  font-size: .72rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  font-weight: 400;
  color: #fff;
  transition: color .25s;
}
#nav.solid .menu-btn-text { color: var(--gold); }
.menu-btn:hover .menu-btn-text { color: #fff; }

.menu-btn-icon {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 18px;
}
.menu-btn-icon span {
  display: block;
  width: 18px;
  height: 1.5px;
  background: #fff;
  transition: background .25s;
}
#nav.solid .menu-btn-icon span { background: var(--gold); }
.menu-btn:hover .menu-btn-icon span { background: #fff; }

/* ───── MENU LATERAL (abre da direita) ───── */
#mobile-menu {
  display: flex;
  position: fixed;
  top: 0; right: 0;
  width: 420px;
  max-width: 100%;
  height: 100vh;
  z-index: 950;
  background: #fff;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  padding: 4rem 2rem;
  transform: translateX(100%);
  transition: transform .45s cubic-bezier(.25, .8, .25, 1);
  box-shadow: -8px 0 40px rgba(0,0,0,.12);
}

#mobile-menu.open { transform: translateX(0); }

/* Overlay escuro atrás do menu */
/*#menu-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 940;
  background: rgba(15, 15, 12, .55);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}*/
#menu-overlay.on { display: block; }

.menu-close {
  position: absolute;
  top: 1.5rem;
  right: 1.8rem;
  width: 44px;
  height: 44px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--ink);
  font-size: 1.6rem;
  font-weight: 300;
  cursor: pointer;
  line-height: 1;
  transition: all .22s;
  font-family: 'Jost', sans-serif;
}
.menu-close:hover {
  background: var(--gold);
  color: #fff;
  border-color: var(--gold);
}

.menu-nav {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  text-align: center;
}

.menu-nav a {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.1rem;
  font-weight: 300;
  color: var(--gold);
  text-decoration: none;
  letter-spacing: .03em;
  position: relative;
  display: inline-block;
  padding: .25rem .8rem;
  transition: color .22s, transform .22s;
}

.menu-nav a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 0;
  height: 1px;
  background: var(--gold);
  transition: width .3s, left .3s;
}

.menu-nav a:hover {
  color: var(--ink);
  transform: translateY(-2px);
}

.menu-nav a:hover::after {
  width: 60%;
  left: 20%;
  background: var(--ink);
}

.menu-cta {
  display: inline-block;
  margin-top: 1rem;
  padding: .9rem 2.2rem;
  background: var(--gold);
  color: #fff;
  font-size: .72rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  text-decoration: none;
  font-weight: 400;
  transition: background .25s, transform .2s;
}
.menu-cta:hover {
  background: var(--ink);
  transform: translateY(-2px);
}

/* ───── HERO ───── */
#hero {
  position: relative;
  height: 100vh;
  min-height: 620px;
  display: flex;
  align-items: center;
  overflow: hidden;
}

.hero-bg { position: absolute; inset: 0; }
.hero-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg,
    rgba(10, 9, 8, .72) 0%,
    rgba(10, 9, 8, .38) 55%,
    rgba(10, 9, 8, .1) 100%);
}

.hero-content {
  position: relative;
  z-index: 2;
  padding: 0 3.5rem;
  max-width: 800px;
}

.hero-eyebrow {
  font-size: .68rem;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.5rem;
  opacity: 0;
  animation: fadeUp .7s .4s forwards;
}

.hero-h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3rem, 5.5vw, 5.8rem);
  font-weight: 300;
  line-height: 1.06;
  color: #fff;
  opacity: 0;
  animation: fadeUp .8s .6s forwards;
}
.hero-h1 em { font-style: italic; color: var(--gold-l); }

.hero-sub {
  margin-top: 1.6rem;
  font-size: .96rem;
  color: rgba(255, 255, 255, .68);
  max-width: 440px;
  line-height: 1.8;
  opacity: 0;
  animation: fadeUp .7s .85s forwards;
}

.hero-cta {
  margin-top: 2.5rem;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  opacity: 0;
  animation: fadeUp .7s 1.05s forwards;
}

.btn-dark {
  display: inline-block;
  padding: .82rem 2rem;
  background: var(--ink);
  color: #fff;
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  font-weight: 400;
  transition: background .22s, transform .18s;
}
.btn-dark:hover { background: var(--ink2); transform: translateY(-2px); }

.btn-gold-o {
  display: inline-block;
  padding: .82rem 2rem;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-size: .7rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background .22s, color .22s;
}
.btn-gold-o:hover { background: var(--gold); color: #fff; }

.hero-scroll {
  position: absolute;
  right: 3.5rem;
  bottom: 2.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .6rem;
  font-size: .6rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .45);
  opacity: 0;
  animation: fadeUp .7s 1.3s forwards;
}

.hero-scroll-line {
  width: 1px;
  height: 44px;
  background: linear-gradient(to bottom, var(--gold), transparent);
  animation: scrollLine 2s 2s infinite;
}

/* ───── WRAPPERS & UTILS ───── */
.w {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 3.5rem;
}

.w-wide {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 3.5rem;
}

hr.div {
  border: none;
  border-top: 1px solid var(--border);
  margin: 0;
}

.sec-label {
  display: block;
  font-size: .66rem;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: .8rem;
}

.sec-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 3.2vw, 3rem);
  font-weight: 300;
  color: var(--ink);
  line-height: 1.14;
}
.sec-title em { font-style: italic; color: var(--gold); }
.sec-center { text-align: center; }

/* ───── ESTATÍSTICAS ───── */
#numeros { padding: 5rem 0; background: var(--bg); }

.stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--border);
}

.stat-box {
  padding: 2.5rem 2rem;
  border-right: 1px solid var(--border);
  text-align: center;
}
.stat-box:last-child { border-right: none; }

.stat-n {
  font-family: 'Cormorant Garamond', serif;
  font-size: 3rem;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
}

.stat-l {
  font-size: .66rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink3);
  margin-top: .4rem;
}

/* ───── MATERIAIS ───── */
#materiais { padding: 7rem 0; background: var(--bg-alt); }
.mat-head { margin-bottom: 3.5rem; }

.mat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3px;
  background: var(--border);
}

.mat-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3/4;
  background: var(--bg-alt);
}

.mat-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .55s ease;
}
.mat-card:hover img { transform: scale(1.06); }

.mat-ov {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top,
    rgba(255, 255, 255, .97) 0%,
    rgba(255, 255, 255, .55) 36%,
    transparent 65%);
  transition: background .35s;
}
.mat-card:hover .mat-ov {
  background: linear-gradient(to top,
    rgba(255, 255, 255, 1) 0%,
    rgba(255, 255, 255, .7) 44%,
    rgba(255, 255, 255, .06) 70%);
}

.mat-info {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 1.3rem 1.1rem 1.1rem;
  border-top: 2px solid transparent;
  transition: border-color .3s;
}
.mat-card:hover .mat-info { border-top-color: var(--gold); }

.mat-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.2rem;
  font-weight: 400;
  color: var(--ink);
}

.mat-type {
  font-size: .6rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: .2rem;
  display: block;
}

/* ───── SERVIÇOS ───── */
#servicos { padding: 7rem 0; background: var(--bg); }

.srv-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--border);
  margin-top: 4rem;
}

.srv-card {
  padding: 2.4rem 2.2rem;
  background: var(--bg);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  position: relative;
  overflow: hidden;
  transition: background .28s;
}
.srv-grid > .srv-card:nth-child(3n) { border-right: none; }
.srv-grid > .srv-card:nth-child(n+4) { border-bottom: none; }
.srv-card:hover { background: var(--bg-alt); }

.srv-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s;
}
.srv-card:hover::before { transform: scaleX(1); }

.srv-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.8rem;
  font-weight: 300;
  color: var(--border2);
  line-height: 1;
  margin-bottom: 1.1rem;
  transition: color .28s;
}
.srv-card:hover .srv-num { color: var(--gold); }

.srv-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.35rem;
  font-weight: 400;
  margin-bottom: .6rem;
  color: var(--ink);
}

.srv-desc {
  font-size: .86rem;
  color: var(--ink3);
  line-height: 1.76;
}

/* ───── PORTFÓLIO ───── */
#portfolio { padding: 7rem 0; background: var(--bg-alt); }

.port-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-auto-rows: 220px;
  gap: 4px;
  margin-top: 3.5rem;
}

.pi {
  overflow: hidden;
  position: relative;
  cursor: zoom-in;
  background: var(--bg-alt);
  text-decoration: none;
}

.pi img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .6s cubic-bezier(.25, .46, .45, .94);
  image-orientation: from-image;
  display: block;
}
.pi:hover img { transform: scale(1.07); }

/* Grid 12 colunas — Layout perfeitamente fechado:
   Linha 1: 5 + 4 + 3 = 12
   Linha 2: 4 + 4 + 4 = 12
   Linha 3: 3 + 5 + 4 = 12
   Linha 4: 12 (card PDF) = 12
*/
.pi-1 { grid-column: span 5; }
.pi-2 { grid-column: span 4; }
.pi-3 { grid-column: span 3; }
.pi-4 { grid-column: span 4; }
.pi-5 { grid-column: span 4; }
.pi-6 { grid-column: span 4; }
.pi-7 { grid-column: span 3; }
.pi-8 { grid-column: span 5; }
.pi-9 { grid-column: span 4; }

/* Card especial PDF — fecha o grid com elegância */
.pi-pdf {
  grid-column: span 12;
  cursor: pointer;
  background: linear-gradient(135deg, var(--ink) 0%, #2a2a26 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .35s;
  overflow: hidden;
  position: relative;
  text-decoration: none;
}

.pi-pdf::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(184,146,74,.15) 0%, transparent 60%);
  opacity: 0;
  transition: opacity .4s;
}

.pi-pdf:hover {
  background: linear-gradient(135deg, #15140f 0%, #1f1c14 100%);
}
.pi-pdf:hover::before { opacity: 1; }

.pdf-inner {
  display: flex;
  align-items: center;
  gap: 1.6rem;
  padding: 1.5rem 2.5rem;
  position: relative;
  z-index: 2;
  flex-wrap: wrap;
  justify-content: center;
}

.pdf-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border: 1px solid var(--gold);
  color: var(--gold);
  flex-shrink: 0;
  transition: background .3s, color .3s;
}
.pdf-icon svg {
  width: 28px;
  height: 28px;
}
.pi-pdf:hover .pdf-icon {
  background: var(--gold);
  color: #fff;
}

.pdf-text {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.pdf-label {
  font-size: .68rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 400;
}

.pdf-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.9rem;
  font-weight: 400;
  color: #fff;
  font-style: italic;
  line-height: 1;
}

.pdf-arrow {
  font-size: 1.6rem;
  color: var(--gold);
  margin-left: .5rem;
  transition: transform .35s;
}
.pi-pdf:hover .pdf-arrow {
  transform: translateY(4px);
}

/* ───── LIGHTBOX ───── */
#lb {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(10, 9, 8, .96);
  backdrop-filter: blur(6px);
  align-items: center;
  justify-content: center;
}
#lb.on { display: flex; }

#lb-img {
  max-width: 90vw;
  max-height: 88vh;
  object-fit: contain;
  width: auto;
  height: auto;
  image-orientation: from-image;
}

#lb-x {
  position: absolute;
  top: 1.4rem;
  right: 2rem;
  font-size: 2.2rem;
  color: #fff;
  cursor: pointer;
  background: none;
  border: none;
  font-family: 'Jost';
  font-weight: 200;
  line-height: 1;
}

#lb-p, #lb-n {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .2);
  color: #fff;
  font-size: 1.3rem;
  cursor: pointer;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .22s;
}
#lb-p:hover, #lb-n:hover { background: rgba(255, 255, 255, .2); }
#lb-p { left: 1.4rem; }
#lb-n { right: 1.4rem; }

/* ───── SOBRE ───── */
#sobre { padding: 7rem 0; background: var(--bg); }

.sobre-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: center;
}

.sobre-img { position: relative; }
.sobre-img img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  image-orientation: from-image;
}

.sobre-frame {
  position: absolute;
  bottom: -16px;
  right: -16px;
  width: 70%;
  height: 70%;
  border: 1px solid var(--border2);
  z-index: -1;
}

.sobre-text p {
  margin-top: 1.5rem;
  font-size: .93rem;
  color: var(--ink3);
  line-height: 1.9;
}

.sobre-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin-top: 3rem;
  border: 1px solid var(--border);
}

.s-stat {
  padding: 1.4rem 1.3rem;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.s-stat:nth-child(2n) { border-right: none; }
.s-stat:nth-child(3), .s-stat:nth-child(4) { border-bottom: none; }

.s-n {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.4rem;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
}

.s-l {
  font-size: .64rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink3);
  margin-top: .35rem;
}

/* ───── INSTAGRAM ───── */
#instagram {
  padding: 6rem 0;
  background: var(--bg-alt);
  text-align: center;
}

.ig-box {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 1.6rem;
}

.ig-qr {
  width: 160px;
  height: 160px;
  
  display: flex;
  align-items: center;
  justify-content: center;
}
.ig-qr img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ig-handle {
  font-size: .76rem;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: #FFF;
	font-weight: 400;
}

.ig-caption {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.1rem;
  font-style: italic;
  color: var(--ink3);
}

/* ───── CONTATO ───── */
#contato { padding: 7rem 0; background: var(--bg); }

.ct-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6rem;
  align-items: start;
}

.ct-items { margin-top: 2.6rem; }

.ct-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  padding: 1.2rem 0;
  border-bottom: 1px solid var(--border);
}

.ct-icon {
  width: 36px;
  height: 36px;
  border: 1px solid var(--border2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--gold);
  font-size: .95rem;
}

.ct-body small {
  font-size: .62rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink3);
}

.ct-body a, .ct-body p {
  display: block;
  font-size: .93rem;
  color: var(--ink);
  text-decoration: none;
  margin-top: .12rem;
  transition: color .22s;
}
.ct-body a:hover { color: var(--gold); }

.ct-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.f-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.f-field {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.f-field label {
  font-size: .62rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--ink3);
}

.f-field input,
.f-field textarea,
.f-field select {
  background: var(--bg-alt);
  border: 1px solid var(--border2);
  color: var(--ink);
  font-family: 'Jost';
  font-size: .88rem;
  padding: .78rem .95rem;
  outline: none;
  resize: vertical;
  transition: border-color .22s;
  -webkit-appearance: none;
}

.f-field input:focus,
.f-field textarea:focus,
.f-field select:focus {
  border-color: var(--gold);
}

.f-field select option { background: var(--bg); }
.f-field textarea { min-height: 106px; }

.btn-send {
	background: var(--ink4);
	color: #fff;
	border: none;
	font-family: 'Jost';







  font-size: .7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 400;







  padding: .88rem 2rem;
	cursor: pointer;
	align-self: flex-start;
	transition: background .22s, transform .18s;
}
.btn-send:hover {
	background: var(--gold);
	transform: translateY(-2px);
}

/* ───── FOOTER ───── */
footer {
	background: var(--ink);
	padding: 1.2rem 5.5rem 1.2rem 4.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
}

.f-logo img {
  height: 34px;
  width: auto;
  object-fit: contain;
}

footer p {
  font-size: .68rem;
  color: rgba(255, 255, 255, .32);
  letter-spacing: .06em;
}

.f-nav a {
  font-size: .66rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .36);
  text-decoration: none;
  margin-left: 1.5rem;
  transition: color .22s;
}
.f-nav a:hover { color: var(--gold); }

/* ───── BOTÃO FLUTUANTE WHATSAPP ───── */
#wa {
  position: fixed;
  bottom: 2rem;
  right: 1rem;
  z-index: 900;
  width: 54px;
  height: 54px;
  background: #25D366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: 0 4px 18px rgba(37, 211, 102, .38);
  transition: transform .22s, box-shadow .22s;
}

#wa:hover {
  transform: scale(1.1) translateY(-3px);
  box-shadow: 0 7px 28px rgba(37, 211, 102, .55);
}

#wa svg { width: 26px; height: 26px; fill: #fff; }

#wa-pulse {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(37, 211, 102, .38);
  animation: pulse 2.2s infinite;
}

/* ───── MENU MOBILE ───── */
#mobile-menu {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  z-index: 700;
  background: rgba(255, 255, 255, .98);
  backdrop-filter: blur(8px);
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
}

#mobile-menu.open { display: flex; }

#mobile-menu a {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.2rem;
  font-weight: 300;
  color: var(--ink);
  text-decoration: none;
  letter-spacing: .04em;
  transition: color .22s;
}
#mobile-menu a:hover { color: var(--gold); }

/* ───── REVEAL ON SCROLL ───── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .72s ease, transform .72s ease;
}
.reveal.on {
  opacity: 1;
  transform: none;
}

/* ───── ANIMAÇÕES ───── */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes scrollLine {
  0%   { transform: scaleY(0); transform-origin: top; }
  50%  { transform: scaleY(1); transform-origin: top; }
  51%  { transform: scaleY(1); transform-origin: bottom; }
  100% { transform: scaleY(0); transform-origin: bottom; }
}

@keyframes pulse {
  0%   { transform: scale(1);    opacity: .55; }
  100% { transform: scale(1.72); opacity: 0; }
}

/* ═══════════════════════════════════════════════
   RESPONSIVO
═══════════════════════════════════════════════ */

@media (max-width: 1024px) {
  .mat-grid { grid-template-columns: repeat(3, 1fr); }
  .srv-grid { grid-template-columns: repeat(2, 1fr); }
  .srv-grid > .srv-card:nth-child(3n) { border-right: 1px solid var(--border); }
  .srv-grid > .srv-card:nth-child(2n) { border-right: none; }
  .srv-grid > .srv-card:nth-child(n+5) { border-bottom: none; }
}

@media (max-width: 768px) {
  #nav { padding: 0 1.2rem; height: 76px; }
  #nav.solid { height: 64px; }
  .nav-logo img { height: 50px; }
  #nav.solid .nav-logo img { height: 42px; }
  .menu-btn { padding: .45rem 1rem; gap: .6rem; }
  .menu-btn-text { font-size: .66rem; letter-spacing: .2em; }
  .w, .w-wide { padding: 0 1.4rem; }
  #hero .hero-content { padding: 0 1.4rem; }
  .hero-scroll { display: none; }
  #numeros, #materiais, #servicos, #portfolio, #instagram, #contato, #sobre {
    padding: 4.5rem 0;
  }
  .stats-row { grid-template-columns: 1fr 1fr; }
  .stat-box:nth-child(2n) { border-right: none; }
  .stat-box { border-bottom: 1px solid var(--border); }
  .stat-box:nth-child(3), .stat-box:nth-child(4) { border-bottom: none; }
  .mat-grid { grid-template-columns: 1fr 1fr; }
  .srv-grid { grid-template-columns: 1fr; }
  .srv-grid > .srv-card { border-right: none; }
  .srv-grid > .srv-card:nth-child(n+6) { border-bottom: none; }
  .port-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 180px; }
  .pi-1, .pi-2, .pi-3, .pi-4, .pi-5, .pi-6, .pi-7, .pi-8, .pi-9 {
    grid-column: span 1;
    grid-row: span 1;
  }
  .pi-1 { grid-column: span 2; }
  .pi-pdf { grid-column: span 2; }
  .pdf-title { font-size: 1.4rem; }
  .pdf-icon { width: 48px; height: 48px; }
  .pdf-inner { padding: 1.2rem 1.4rem; gap: 1rem; }
  .sobre-grid, .ct-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .sobre-img img { aspect-ratio: 16/9; }
  .f-row { grid-template-columns: 1fr; }
  footer { flex-direction: column; text-align: center; padding: 2rem 1.4rem; }
  .f-nav a { margin-left: .8rem; }
}

@media (max-width: 460px) {
  .mat-grid { grid-template-columns: 1fr; }
  .stats-row { grid-template-columns: 1fr; }
  .stat-box { border-right: none; border-bottom: 1px solid var(--border); }
  .stat-box:last-child { border-bottom: none; }
}
