/* ============================================================
   VIVA Moda Feminina — style.css v2
   Paleta: off-white · bege · caramelo · marrom · dourado discreto
   ============================================================ */

/* ── Variáveis ─────────────────────────────────────────────── */
:root {
  --cream:       #FAFAF8;
  --cream-warm:  #F6F0E8;
  --cream-deep:  #EDE5D6;
  --dark:        #1C1610;
  --dark-mid:    #2E2418;
  --text:        #302820;
  --muted:       #897464;
  --muted-light: #B0A090;
  --acc:         #C4954A;
  --acc-dark:    #9E7230;
  --acc-light:   #DDB870;
  --acc-grd:     linear-gradient(135deg, #DDBA70 0%, #C4954A 52%, #9E7230 100%);
  --bdr:         rgba(175, 145, 90, .16);
  --bdr-mid:     rgba(175, 145, 90, .28);
  --sh-xs:       0 1px 8px  rgba(0,0,0,.05);
  --sh-sm:       0 3px 18px rgba(0,0,0,.07);
  --sh-md:       0 8px 40px rgba(0,0,0,.09);
  --sh-lg:       0 18px 64px rgba(0,0,0,.12);
  --r:           8px;
  --r-md:        14px;
  --r-lg:        22px;
  --max-w:       1200px;
  --hh:          70px;
  --py:          90px;
}

/* ── Reset ─────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  background: var(--cream);
  color: var(--text);
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
img    { display: block; max-width: 100%; height: auto; }
a      { color: inherit; text-decoration: none; }
button { cursor: pointer; font: inherit; border: none; background: none; }
address { font-style: normal; }
h1, h2, h3, h4 {
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.2;
}

/* ── Helpers ───────────────────────────────────────────────── */
.kicker {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--acc);
  margin-bottom: 12px;
}
.heading-serif {
  font-size: clamp(26px, 3.5vw, 44px);
  font-weight: 400;
  color: var(--text);
  margin-bottom: 0;
}
.heading-serif em { font-style: italic; }
.accent-bar {
  width: 44px;
  height: 2px;
  background: var(--acc);
  margin: 18px 0 22px;
}
.sec-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 40px;
}
.sec-header {
  margin-bottom: 52px;
}
.sec-header.center { text-align: center; }
.sec-header.center .accent-bar { margin-left: auto; margin-right: auto; }

/* ── Buttons ───────────────────────────────────────────────── */
.btn-fill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 30px;
  background: var(--acc-grd);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: var(--r);
  transition: opacity .2s, transform .2s;
  box-shadow: 0 4px 20px rgba(196,149,74,.28);
}
.btn-fill:hover { opacity: .9; transform: translateY(-1px); }

.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 28px;
  border: 1.5px solid var(--acc);
  color: var(--acc-dark);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: var(--r);
  transition: background .2s, color .2s;
}
.btn-outline:hover { background: var(--acc); color: #fff; }

.btn-text-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 600;
  color: var(--acc-dark);
  transition: gap .2s;
}
.btn-text-link:hover { gap: 8px; }

/* ── ============================================================
       HEADER
   ============================================================ */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 200;
  height: var(--hh);
  background: rgba(250,250,248,.97);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--bdr);
  transition: box-shadow .3s;
}
.site-header.scrolled { box-shadow: 0 2px 24px rgba(0,0,0,.07); }

.header-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 40px;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 32px;
}

/* Logo */
.header-logo { display: flex; align-items: center; }
.logo-img {
  height: 40px;
  width: auto;
}

/* Nav — empurrado para a direita com margin-left: auto */
.header-nav {
  display: flex;
  align-items: center;
  gap: 32px;
  margin-left: auto;
}
.header-nav a {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--muted);
  transition: color .2s;
  position: relative;
}
.header-nav a::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0; right: 0;
  height: 1.5px;
  background: var(--acc);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s;
}
.header-nav a:hover,
.header-nav a.nav-active { color: var(--acc); }
.header-nav a.nav-active::after,
.header-nav a:hover::after { transform: scaleX(1); }

/* Right actions */
.header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
}
.btn-visit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  border: 1.5px solid var(--bdr-mid);
  border-radius: 100px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .05em;
  color: var(--text);
  transition: border-color .2s, color .2s, background .2s;
}
.btn-visit:hover { border-color: var(--acc); color: var(--acc); }
.btn-visit svg { flex-shrink: 0; }

/* Hamburger */
.mobile-toggle {
  display: none;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  border: 1px solid var(--bdr-mid);
  border-radius: 50%;
  background: rgba(255,255,255,.58);
  cursor: pointer;
  padding: 0;
  transition: border-color .2s, background .2s, transform .2s;
}
.mobile-toggle span {
  display: block;
  width: 17px;
  height: 1.4px;
  background: var(--text);
  border-radius: 2px;
  transition: transform .25s ease, opacity .2s ease;
}
.mobile-toggle:hover {
  border-color: var(--acc);
  background: #fff;
  transform: translateY(-1px);
}
.mobile-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6.4px) rotate(45deg); }
.mobile-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.mobile-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6.4px) rotate(-45deg); }

/* ── Mobile Nav ─────────────────────────────────────────────── */
.mobile-nav {
  display: flex;
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 300;
  width: min(86vw, 390px);
  background: linear-gradient(160deg, var(--dark) 0%, var(--dark-mid) 100%);
  box-shadow: -24px 0 60px rgba(0,0,0,.28);
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 24px;
  text-align: left;
  padding: 88px 36px 44px;
  transform: translateX(100%);
  visibility: hidden;
  transition:
    transform .42s cubic-bezier(.32,.72,.16,1),
    visibility 0s linear .42s;
}
.mobile-nav.open {
  transform: translateX(0);
  visibility: visible;
  transition:
    transform .34s cubic-bezier(.55,.06,.68,.19),
    visibility 0s;
}
.mobile-nav::before {
  content: '';
  position: fixed;
  inset: 0 100% 0 auto;
  width: 100vw;
  background: rgba(28,22,16,.52);
  opacity: 0;
  pointer-events: none;
  transition: opacity .34s ease;
}
.mobile-nav.open::before { opacity: 1; }
.mobile-nav-logo {
  height: 44px;
  width: auto;
  margin-bottom: 8px;
  filter: brightness(1.28);
}
.mobile-nav a {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  font-size: 13px;
  line-height: 1;
  font-weight: 400;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(250,248,245,.76);
  transition: color .2s, transform .2s;
}
.mobile-nav a:hover {
  color: var(--acc-light);
  transform: translateX(3px);
}
.mobile-nav .btn-fill {
  margin-top: 12px;
  font-family: system-ui, sans-serif;
  font-size: 12px;
  color: #fff;
}
.mobile-nav-close {
  position: absolute;
  top: 24px; right: 28px;
  width: 40px; height: 40px;
  border-radius: 50%;
  font-size: 26px;
  color: rgba(250,248,245,.7);
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  cursor: pointer;
  line-height: 1;
  padding: 0 0 3px;
  transition: color .2s, border-color .2s, background .2s;
}
.mobile-nav-close:hover {
  color: var(--acc-light);
  border-color: rgba(221,184,112,.42);
  background: rgba(255,255,255,.1);
}

/* ── ============================================================
       HERO CAROUSEL
   ============================================================ */
.hero {
  padding-top: var(--hh);
  height: 88vh;
  min-height: 620px;
  overflow: hidden;
}
.carousel {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
}
.carousel-track {
  display: flex;
  height: 100%;
  transition: transform .8s cubic-bezier(.77,0,.175,1);
}
.carousel-slide {
  flex: 0 0 100%;
  position: relative;
  overflow: hidden;
}
/* Gradient fallbacks per slide (when photos aren't uploaded yet) */
.carousel-slide:nth-child(1) { background: linear-gradient(110deg, #28180A 0%, #4A2E14 55%, #6E4828 100%); }
.carousel-slide:nth-child(2) { background: linear-gradient(110deg, #22180E 0%, #3E2C18 55%, #604228 100%); }
.carousel-slide:nth-child(3) { background: linear-gradient(110deg, #1A1610 0%, #302818 55%, #503C24 100%); }

.slide-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 20%;
}
/* Gradient overlay: dark left, fades to transparent right */
.slide-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(22,14,6,.88)  0%,
    rgba(22,14,6,.72) 30%,
    rgba(22,14,6,.32) 58%,
    rgba(22,14,6,.08) 80%,
    transparent 100%
  );
}
.slide-content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 52px 68px;
  max-width: 640px;
  color: #fff;
}
.slide-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--acc-light);
  margin-bottom: 20px;
}
.slide-title {
  font-family: Georgia, serif;
  font-size: clamp(32px, 5.5vw, 72px);
  font-weight: 400;
  line-height: 1.1;
  margin-bottom: 18px;
  text-shadow: 0 2px 20px rgba(0,0,0,.3);
}
.slide-sub {
  font-size: 15px;
  line-height: 1.7;
  color: rgba(255,255,255,.78);
  max-width: 400px;
  margin-bottom: 32px;
}
.btn-hero-slide {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 14px 32px;
  background: var(--acc-grd);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: var(--r);
  align-self: flex-start;
  box-shadow: 0 4px 24px rgba(196,149,74,.42);
  transition: transform .2s, box-shadow .2s;
}
.btn-hero-slide:hover { transform: translateY(-2px); box-shadow: 0 8px 32px rgba(196,149,74,.5); }
.btn-hero-slide svg { flex-shrink: 0; }

/* Carousel controls */
.c-prev, .c-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 46px; height: 46px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.28);
  color: #fff;
  font-size: 18px;
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(4px);
  transition: background .2s;
}
.c-prev { left: 24px; }
.c-next { right: 24px; }
.c-prev:hover, .c-next:hover { background: rgba(196,149,74,.38); border-color: var(--acc); }

.c-dots {
  position: absolute;
  bottom: 28px; left: 50%;
  transform: translateX(-50%);
  display: flex; gap: 8px;
  z-index: 10;
}
.c-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: rgba(255,255,255,.4);
  border: 1px solid rgba(255,255,255,.5);
  cursor: pointer;
  transition: background .3s, width .3s, border-radius .3s;
}
.c-dot.active {
  background: var(--acc);
  width: 22px; border-radius: 4px;
  border-color: var(--acc);
}

/* ── ============================================================
       FEATURES STRIP
   ============================================================ */
.features-strip {
  background: #fff;
  border-bottom: 1px solid var(--bdr);
}
.strip-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.feature-item {
  padding: 44px 32px;
  text-align: center;
  position: relative;
}
.feature-item + .feature-item::before {
  content: '';
  position: absolute;
  left: 0; top: 28px; bottom: 28px;
  width: 1px;
  background: var(--bdr);
}
.feat-icon {
  width: 44px; height: 44px;
  margin: 0 auto 18px;
  color: var(--acc);
  display: flex; align-items: center; justify-content: center;
}
.feature-item h4 {
  font-family: system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 10px;
}
.feature-item p {
  font-size: 13.5px;
  color: var(--muted);
  line-height: 1.7;
}

/* ── ============================================================
       SOBRE NÓS
   ============================================================ */
.section-sobre {
  padding: var(--py) 0;
  background: var(--cream);
}
.sobre-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 80px;
  align-items: center;
}
/* Image left */
.sobre-img {
  position: relative;
}
.sobre-img img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
  border-radius: var(--r-md);
  box-shadow: var(--sh-md);
}
/* Placeholder when sobre.jpg is missing */
.sobre-img--placeholder {
  aspect-ratio: 4/5;
  border-radius: var(--r-md);
  background: linear-gradient(145deg, #EDE5D6, #D8CCBA);
  box-shadow: var(--sh-md);
}
/* Text right */
.sobre-text { }
.sobre-text p {
  font-size: 15.5px;
  color: var(--muted);
  line-height: 1.85;
  margin-bottom: 14px;
}
.sobre-text .btn-outline { margin-top: 18px; }

/* ── ============================================================
       COLEÇÕES
   ============================================================ */
.section-colecoes {
  padding: var(--py) 0;
  background: var(--cream-warm);
}
.colecoes-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.card-colecao {
  position: relative;
  border-radius: var(--r-md);
  overflow: hidden;
  aspect-ratio: 3/4;
  cursor: pointer;
}
/* Gradient fallbacks per card */
.card-col-1 { background: linear-gradient(165deg, #D8CAB0 0%, #B8A888 100%); }
.card-col-2 { background: linear-gradient(165deg, #7A6A58 0%, #5A4C3C 100%); }
.card-col-3 { background: linear-gradient(165deg, #3C2E20 0%, #1E1610 100%); }
.card-col-4 { background: linear-gradient(165deg, #E8D8A0 0%, #D0BC78 100%); }

.card-colecao img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.card-colecao:hover img { transform: scale(1.05); }
.card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(20,14,8,.82) 0%, rgba(20,14,8,.22) 45%, transparent 65%);
}
.card-info {
  position: absolute;
  bottom: 24px; left: 22px; right: 22px;
  color: #fff;
}
.card-info h3 {
  font-size: clamp(18px, 2vw, 24px);
  font-weight: 400;
  margin-bottom: 6px;
}
.card-info p {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
}
.card-info p span { margin-left: 4px; }

/* ── ============================================================
       GALERIA
   ============================================================ */
.section-galeria {
  /* No vertical padding — bleeds edge-to-edge */
  background: var(--cream);
  overflow: hidden;
}
.galeria-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.gal-item {
  aspect-ratio: 1;
  overflow: hidden;
  position: relative;
  background: var(--cream-deep);
}
.gal-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.gal-item:hover img { transform: scale(1.06); }
/* Warm overlay on hover */
.gal-item::after {
  content: '';
  position: absolute; inset: 0;
  background: rgba(196,149,74,.15);
  opacity: 0;
  transition: opacity .3s;
  pointer-events: none;
}
.gal-item:hover::after { opacity: 1; }

/* ── ============================================================
       INSTAGRAM — dois blocos independentes lado a lado
       Estrutura: [card perfil + grade posts] x2
   ============================================================ */
.section-instagram {
  padding: var(--py) 0;
  background: var(--cream-warm);
}
.instagram-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 40px;
}
.instagram-top {
  margin-bottom: 40px;
}

/* Grid dos dois blocos lado a lado */
.insta-blocos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  align-items: start;
}

/* Cada bloco: card de perfil em cima, grade de posts abaixo */
.insta-bloco {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Card de perfil */
.insta-profile-card {
  background: #fff;
  border: 1px solid var(--bdr);
  border-radius: var(--r-md);
  padding: 20px;
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 14px;
  align-items: start;
}
.insta-avatar {
  width: 56px; height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--bdr-mid);
  background: var(--cream-deep);
}
.insta-unit-name {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text);
  margin-bottom: 3px;
}
.insta-handle {
  display: block;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--acc-dark);
  margin-bottom: 8px;
}
.insta-bio {
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.6;
  margin-bottom: 12px;
}
.insta-see-profile {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--acc-dark);
  transition: color .2s;
}
.insta-see-profile:hover { color: var(--acc); }

/* Grade de posts: 2×2 dentro de cada bloco */
.insta-posts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
.insta-photo {
  display: block;
  position: relative;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--r);
  background: var(--cream-deep);
}
.insta-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .4s;
}
.insta-photo:hover img { transform: scale(1.06); }
.insta-photo-overlay {
  position: absolute; inset: 0;
  background: rgba(20,14,8,.52);
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  transition: opacity .3s;
  border-radius: var(--r);
}
.insta-photo:hover .insta-photo-overlay { opacity: 1; }
.insta-photo-overlay span {
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
/* Placeholder quando imagem não carrega */
.insta-photo--empty {
  display: flex; align-items: center; justify-content: center;
}
.insta-photo--empty::after {
  content: attr(data-handle);
  font-size: 11px;
  font-weight: 600;
  color: var(--muted);
}

.insta-cta { margin-top: 32px; text-align: center; }
.insta-cta .btn-outline + .btn-outline { margin-left: 12px; }

/* ── ============================================================
       CONTATO — seção única com 2 unidades lado a lado
   ============================================================ */
.section-contato {
  padding: var(--py) 0;
  background: #fff;
}
.contato-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 40px;
}
.unidades-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
.unidade-col {
  background: var(--cream);
  border: 1px solid var(--bdr);
  border-radius: var(--r-md);
  overflow: hidden;
}
.unidade-header {
  padding: 28px 30px 20px;
  border-bottom: 1px solid var(--bdr);
}
.unidade-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--acc-dark);
  background: rgba(196,149,74,.1);
  border: 1px solid var(--bdr-mid);
  border-radius: 100px;
  padding: 4px 12px;
  margin-bottom: 10px;
}
.unidade-header h3 {
  font-size: 22px;
  font-weight: 400;
}
.unidade-info {
  padding: 22px 30px;
}
.ui-row {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin-bottom: 13px;
  font-size: 14px;
  line-height: 1.55;
}
.ui-row:last-child { margin-bottom: 0; }
.ui-icon {
  flex-shrink: 0;
  width: 18px; height: 18px;
  color: var(--acc);
  margin-top: 1px;
}
.ui-row a { color: var(--muted); transition: color .2s; }
.ui-row a:hover { color: var(--acc-dark); }
.ui-row a.wa-link { color: #2A8741; font-weight: 600; }
.ui-row .placeholder-text {
  color: var(--muted-light);
  font-style: italic;
  font-size: 13px;
}
.unidade-actions {
  padding: 0 30px 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.unidade-actions .btn-fill { padding: 10px 18px; font-size: 11px; }
.unidade-actions .btn-outline { padding: 9px 16px; font-size: 11px; }

/* Map area */
.unidade-mapa {
  border-top: 1px solid var(--bdr);
  overflow: hidden;
}
.unidade-mapa iframe {
  width: 100%;
  height: 260px;
  display: block;
  border: none;
}
.google-review-cta {
  padding: 18px 30px 26px;
  background: #fff;
  border-top: 1px solid var(--bdr);
}
.google-review-link {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 58px;
  padding: 12px 16px;
  border: 1px solid var(--bdr-mid);
  border-radius: var(--r);
  background: var(--cream-warm);
  color: var(--text);
  transition: border-color .2s, background .2s, transform .2s;
}
.google-review-link:hover {
  border-color: var(--acc);
  background: #fff;
  transform: translateY(-1px);
}
.google-review-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: var(--acc-dark);
}
.google-review-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.35;
}
.google-review-text span {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.google-review-text small {
  margin-top: 2px;
  font-size: 12.5px;
  color: var(--muted);
}
.google-review-arrow {
  margin-left: auto;
  flex-shrink: 0;
  color: var(--acc-dark);
  font-weight: 700;
}
.mapa-placeholder {
  width: 100%;
  height: 220px;
  background: var(--cream-warm);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 8px;
}
.mapa-placeholder span {
  font-size: 12.5px;
  color: var(--muted);
  font-weight: 600;
  text-align: center;
  padding: 0 20px;
  line-height: 1.6;
}
.mapa-placeholder small {
  font-size: 11px;
  color: var(--muted-light);
}

/* ── ============================================================
       FOOTER
   ============================================================ */
.site-footer {
  background: var(--dark);
  color: rgba(250,248,245,.6);
  padding: 68px 0 0;
}
.footer-inner {
  max-width: var(--max-w);
  margin: 0 auto;
  padding: 0 40px 56px;
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 48px;
}
.footer-logo { height: 40px; width: auto; filter: brightness(1.2); }
.footer-tagline {
  margin-top: 18px;
  font-size: 13.5px;
  color: rgba(250,248,245,.46);
  line-height: 1.72;
  max-width: 240px;
}
.footer-col { }

.footer-col h4 {
  font-family: Georgia, serif;
  font-size: 14px;
  font-weight: 400;
  color: var(--acc-light);
  margin-bottom: 18px;
  letter-spacing: .04em;
}
.footer-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.footer-links li a {
  font-size: 13px;
  color: rgba(250,248,245,.48);
  transition: color .2s;
}
.footer-links li a:hover { color: var(--acc-light); }
.footer-links li span {
  font-size: 13px;
  color: rgba(250,248,245,.35);
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.07);
  padding: 22px 40px;
  max-width: var(--max-w);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11.5px;
  color: rgba(250,248,245,.28);
}

/* ── Reveal on scroll ────────────────────────────────────────── */
[data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .65s ease, transform .65s ease;
}
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }

/* ── ============================================================
       RESPONSIVE
   ============================================================ */
@media (max-width: 1100px) {
  :root { --py: 72px; }
  .header-inner { gap: 20px; }
  .header-nav { gap: 20px; }
}

@media (max-width: 900px) {
  :root { --py: 60px; }

  /* Header: hide nav, show hamburger */
  .header-nav { display: none; }
  .header-actions { margin-left: auto; }
  .btn-visit { display: none; }
  .mobile-toggle { display: flex; }

  /* Hero */
  .slide-content { padding: 48px 44px; max-width: 560px; }
  .slide-title { font-size: clamp(26px, 5.5vw, 52px); }

  /* Sobre: stack */
  .sobre-inner { grid-template-columns: 1fr; gap: 40px; }

  /* Coleções: 2×2 */
  .colecoes-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }

  /* Galeria: 2 cols */
  .galeria-grid { grid-template-columns: repeat(2, 1fr); }

  /* Instagram: stack both unit blocks */
  .insta-blocos { grid-template-columns: 1fr; }

  /* Contato: stack */
  .unidades-grid { grid-template-columns: 1fr; }

  /* Footer */
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer-bottom { flex-direction: column; gap: 8px; text-align: center; }
}

@media (max-width: 640px) {
  :root { --py: 48px; --hh: 60px; }
  .sec-inner, .sobre-inner, .instagram-inner, .contato-inner { padding-inline: 20px; }
  .strip-inner { padding-inline: 20px; }

  /* Features: 2×2 */
  .strip-inner { grid-template-columns: repeat(2, 1fr); }
  .feature-item:nth-child(3)::before { display: none; }

  /* Coleções: 2 cols still */
  .colecoes-grid { gap: 10px; }

  /* Instagram: 2-col photo row */
  .insta-row { grid-template-columns: repeat(2, 1fr); }
  .insta-cta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .insta-cta .btn-outline {
    justify-content: center;
    min-width: 0;
    padding-inline: 10px;
    font-size: 10px;
    letter-spacing: .04em;
    white-space: nowrap;
  }
  .insta-cta .btn-outline + .btn-outline { margin-left: 0; }

  /* Contato */
  .unidade-header { padding: 22px 22px 16px; }
  .unidade-info, .unidade-actions { padding-inline: 22px; }

  /* Footer */
  .footer-inner { grid-template-columns: 1fr; padding-inline: 20px; padding-bottom: 40px; }
  .footer-bottom { padding-inline: 20px; }

  /* Carousel nav */
  .c-prev { left: 12px; }
  .c-next { right: 12px; }
  .slide-content { padding: 44px 28px; max-width: 100%; }
  .slide-title { font-size: clamp(24px, 7vw, 40px); }
  .slide-sub { font-size: 14px; margin-bottom: 24px; }
  .btn-hero-slide { align-self: flex-start; max-width: 100%; padding: 12px 22px; font-size: 11.5px; }
}

@media (max-width: 400px) {
  .strip-inner { grid-template-columns: 1fr 1fr; }
  .feature-item { padding: 28px 16px; }
  .insta-profile-card { grid-template-columns: 44px 1fr; }
  .insta-avatar { width: 44px; height: 44px; }
}
