/* =========================================================
   PROCERAM · Sand + Cyprus · Josefin Sans
   Single-fold premium · margens generosas · CTA em destaque
   ========================================================= */

:root{
  --sand:         #F0EDE5;
  --sand-soft:    #F7F4ED;
  --sand-dim:     #DCD7CB;

  --cyprus:       #004643;
  --cyprus-deep:  #003331;
  --cyprus-soft:  #16615D;

  --ivory:        #F0EDE5;
  --ivory-soft:   #F7F4ED;
  --ivory-text:   #F0EDE5;
  --ivory-dim:    #C9C5BB;
  --ink:          #004643;
  --ink-deep:     #003331;

  --text:         #00302E;
  --text-soft:    #2D4B48;
  --text-mute:    #5E7A77;

  --gold:         #B89766;
  --gold-soft:    #D6BB91;
  --gold-deep:    #8E6E45;
  --gold-faint:   rgba(184, 151, 102, .14);

  --serif:  'Cormorant Garamond', 'Times New Roman', serif;
  --sans:   'Josefin Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --script: 'Italianno', 'Cormorant Garamond', cursive;

  --container: 1480px;

  /* Margens · ~3cm em todas as direções */
  --gutter:        clamp(80px, 6vw, 120px);   /* laterais 2.1-3.2cm */
  --pad-top:       clamp(160px, 18vh, 200px); /* header + ~3cm */
  --pad-bottom:    clamp(115px, 14vh, 140px); /* ≥3cm */
  --pad-bottom-lg: clamp(130px, 16vh, 160px); /* ~3.5-4.2cm */

  --t-fast: .25s cubic-bezier(.4,0,.2,1);
  --t-mid:  .5s  cubic-bezier(.4,0,.2,1);
  --t-slow: .9s  cubic-bezier(.16,1,.3,1);
}

/* ---------- RESET ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
body{
  font-family: var(--sans);
  font-weight: 300;
  font-size: 16px;
  line-height: 1.62;
  letter-spacing: 0.014em;
  color: var(--text);
  background: var(--cyprus-deep);
  overflow-x: hidden;
  padding-bottom: 120px;
}
img,svg,video{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; transition: color var(--t-fast); }
ul{ list-style:none; }
button{ font: inherit; cursor:pointer; border:0; background:none; color:inherit; }

::selection{ background: var(--gold); color: #fff; }

/* ---------- SINGLE-FOLD lock ---------- */
body.is-singlefold,
body.is-home{ background: var(--cyprus-deep); }
@media (min-width: 981px){
  body.is-singlefold,
  body.is-home{ overflow: hidden; height: 100vh; }
}
@media (max-width: 980px){
  body.is-singlefold,
  body.is-home{ overflow-y: auto; }
}

body.page-sub{ background: var(--sand); color: var(--text); }
body.page-sub.is-singlefold{ background: var(--cyprus-deep); }

/* ---------- TIPOGRAFIA ---------- */
h1,h2,h3,h4{
  font-family: var(--serif);
  font-weight: 300;
  line-height: 1.04;
  letter-spacing: -0.012em;
}
h1 em, h2 em, h3 em{ font-style: italic; font-weight: 400; }

.script-line{
  font-family: var(--script);
  font-size: clamp(1.5rem, 2.4vw, 2.1rem);
  line-height: 1;
  color: var(--gold);
  font-weight: 400;
}

.lead{
  font-size: clamp(.96rem, 1.05vw, 1.05rem);
  color: var(--text-soft);
  line-height: 1.72;
  font-weight: 300;
  max-width: 62ch;
}
.lead.light{ color: rgba(240, 237, 229, .82); }

.t-ivory, .t-sand{ color: var(--sand); }
.t-gold{ color: var(--gold); }
.t-ink, .t-cyprus{ color: var(--cyprus); }

/* ---------- BUTTONS base ---------- */
.btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  padding: 16px 30px;
  font-family: var(--sans);
  font-size: .78rem;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  border-radius: 1px;
  transition: all var(--t-fast);
  white-space: nowrap;
}
.btn-lg{ padding: 20px 38px; font-size: .82rem; }

.btn-primary{
  background: var(--cyprus);
  color: var(--sand);
  box-shadow: 0 8px 24px rgba(0, 70, 67, .18);
}
.btn-primary:hover{
  background: var(--gold-deep);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(142, 110, 69, .28);
}

.btn-gold{
  background: var(--gold);
  color: #fff;
  box-shadow: 0 12px 30px rgba(184, 151, 102, .28);
}
.btn-gold:hover{
  background: var(--gold-deep);
  transform: translateY(-2px);
  box-shadow: 0 18px 38px rgba(184, 151, 102, .38);
}

/* ===========================================================
   HEADER
   =========================================================== */
.site-header{
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  padding: 18px 0;
  transition: all var(--t-fast);
}
.site-header.scrolled,
body.page-sub:not(.is-singlefold) .site-header{
  background: rgba(0, 51, 49, .9);
  backdrop-filter: saturate(180%) blur(18px);
  padding: 12px 0;
  box-shadow: 0 1px 0 rgba(184, 151, 102, .14);
}
.header-inner{
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: flex;
  align-items: center;
  gap: clamp(20px, 3vw, 56px);
}
.brand{ display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.brand-mark{
  width: 34px; height: 34px;
  object-fit: contain;
  filter: drop-shadow(0 0 12px rgba(184, 151, 102, .4));
}
.brand-name{
  font-family: var(--serif);
  font-size: 1.2rem;
  letter-spacing: .34em;
  font-weight: 500;
  color: var(--sand);
}
.nav{ flex: 1; display: flex; justify-content: center; }
.nav ul{
  display: flex;
  flex-wrap: nowrap;
  white-space: nowrap;
  gap: clamp(18px, 2.6vw, 44px);
}
.nav a{
  font-size: .7rem;
  font-weight: 400;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--sand);
  position: relative;
  padding: 6px 0;
}
.nav a::after{
  content:'';
  position: absolute;
  left: 50%; bottom: 0;
  width: 0; height: 1px;
  background: var(--gold);
  transition: width var(--t-fast);
  transform: translateX(-50%);
}
.nav a:hover, .nav a.is-current{ color: var(--gold); }
.nav a:hover::after, .nav a.is-current::after{ width: 100%; }
.header-cta{
  flex-shrink: 0;
  padding: 11px 22px;
  font-size: .66rem;
  letter-spacing: .22em;
  background: transparent;
  color: var(--sand);
  box-shadow: inset 0 0 0 1px rgba(214, 187, 145, .55);
}
.header-cta:hover{
  background: var(--gold);
  color: #fff;
  box-shadow: inset 0 0 0 1px var(--gold);
}
.menu-toggle{
  display: none;
  width: 32px; height: 32px;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
}
.menu-toggle span{ display: block; height: 1px; width: 100%; background: var(--sand); }
@media (max-width: 1100px){
  .nav ul{ gap: 20px; }
  .nav a{ font-size: .65rem; letter-spacing: .14em; }
}
@media (max-width: 900px){
  .nav{
    position: fixed;
    inset: 0;
    background: var(--cyprus);
    transform: translateX(100%);
    transition: transform var(--t-mid);
    align-items: center;
    padding: 100px 32px 32px;
    z-index: -1;
  }
  .nav ul{ flex-direction: column; gap: 28px; align-items: center; }
  .nav a{ font-size: 1rem; color: var(--sand); }
  .menu-open .nav{ transform: translateX(0); }
  .menu-toggle{ display: flex; }
  .header-cta{ display: none; }
}

/* ===========================================================
   HOME · texto rico + retrato + CTA premium
   =========================================================== */
.dobra-hero{
  position: relative;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(184,151,102,.08) 0%, transparent 60%),
    linear-gradient(180deg, var(--cyprus-deep) 0%, #001E1C 100%);
  color: var(--sand);
  overflow: hidden;
}
@media (min-width: 981px){
  .is-home .dobra-hero{
    height: 100vh;
    display: flex;
    flex-direction: column;
    padding: var(--pad-top) 0 var(--pad-bottom); /* mesma margem da aba contato */
  }
}
@media (max-width: 980px){
  .is-home .dobra-hero{
    min-height: 100vh;
    padding: var(--pad-top) 0 var(--pad-bottom);
  }
}

.hero-veil{
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 15% 30%, rgba(184,151,102,.08), transparent 55%),
    radial-gradient(ellipse at 85% 70%, rgba(22, 97, 93, .14), transparent 55%);
  pointer-events: none;
}
.hero-stage{
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 2.6vh, 30px);
  flex: 1;
  justify-content: center;
}
.hero-main{
  display: grid;
  grid-template-columns: 1.08fr 1fr;
  gap: clamp(40px, 5vw, 90px);
  align-items: center;
}
.hero-text{
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 1.4vh, 18px);
}
.hero-eyebrow{ color: var(--gold-soft); }
.hero-title{
  font-family: var(--serif);
  line-height: .98;
  margin: 0;
}
.hero-title .t-sand{
  display: block;
  font-size: clamp(1.5rem, 2.6vw, 2.3rem);
  font-weight: 300;
  letter-spacing: -.008em;
  color: var(--sand);
}
.hero-title em{
  display: block;
  font-style: italic;
  font-size: clamp(2.4rem, 5.4vw, 4.4rem);
  color: var(--gold);
  font-weight: 400;
  line-height: .94;
}
.hero-lead{
  font-size: clamp(.9rem, 1vw, 1rem);
  color: rgba(240, 237, 229, .82);
  line-height: 1.65;
  font-weight: 300;
  max-width: 50ch;
}
.hero-lead em{
  font-style: italic;
  color: var(--gold-soft);
  font-family: var(--serif);
  font-size: 1.08em;
}
.hero-pills{
  display: grid;
  gap: clamp(12px, 1.8vh, 20px);
}
.hero-pills li{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 7px 16px;
  border-left: 1px solid var(--gold);
  background: linear-gradient(90deg, rgba(184,151,102,.08), rgba(184,151,102,0) 70%);
  color: rgba(240, 237, 229, .88);
  font-size: .78rem;
  font-weight: 300;
  letter-spacing: .02em;
  transition: all var(--t-mid);
  cursor: default;
}
.hero-pills li:hover{
  background: linear-gradient(90deg, rgba(184,151,102,.2), rgba(184,151,102,.02) 70%);
  border-left-color: var(--gold-soft);
  padding-left: 22px;
  color: var(--sand);
}
.hero-pills .pill-num{
  font-family: var(--serif);
  font-style: italic;
  color: var(--gold);
  font-size: .95rem;
  flex-shrink: 0;
  width: 20px;
}

/* === CTA PREMIUM em destaque === */
.cta-feature{
  position: relative;
  padding: 18px 22px 20px;
  background:
    linear-gradient(135deg, rgba(184,151,102,.12) 0%, rgba(184,151,102,.02) 60%, transparent 100%);
  border: 1px solid rgba(184, 151, 102, .42);
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-start;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
}
/* No home (coluna esquerda), caixa compacta alinhada à esquerda */
.hero-text .cta-feature{
  max-width: 460px;
  align-self: flex-start;
}
.cta-feature::before{
  content:'';
  position: absolute;
  width: 240px; height: 240px;
  top: -110px; right: -110px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(184,151,102,.18), transparent 70%);
  pointer-events: none;
  z-index: -1;
}
.cta-tag{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--sans);
  font-size: .66rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--gold-soft);
  font-weight: 500;
}
.cta-tag .dot{
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 12px var(--gold);
  animation: pulse 2.4s ease-in-out infinite;
}
@keyframes pulse{
  0%,100%{ opacity: 1; transform: scale(1); }
  50%{ opacity: .55; transform: scale(1.2); }
}
.btn-premium{
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 19px 30px;
  background: var(--gold);
  color: var(--cyprus-deep);
  font-family: var(--sans);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .26em;
  text-transform: uppercase;
  transition: all var(--t-mid);
  box-shadow: 0 14px 36px rgba(184, 151, 102, .38);
  border: 1px solid transparent;
  overflow: hidden;
}
.btn-premium::before{
  content:'';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--gold-soft), var(--gold-deep));
  opacity: 0;
  transition: opacity var(--t-mid);
  z-index: 0;
}
.btn-premium > *{ position: relative; z-index: 1; }
.btn-premium:hover{
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 22px 52px rgba(184, 151, 102, .48);
}
.btn-premium:hover::before{ opacity: 1; }
.btn-premium-arrow{
  display: inline-flex;
  align-items: center;
  font-size: 1rem;
  letter-spacing: 0;
  transition: transform var(--t-mid);
}
.btn-premium:hover .btn-premium-arrow{ transform: translateX(6px); }
.cta-foot{
  font-family: var(--serif);
  font-style: italic;
  color: rgba(240, 237, 229, .62);
  font-size: .95rem;
  display: flex;
  align-items: center;
  gap: 10px;
}
.cta-foot::before{
  content:'';
  width: 28px; height: 1px;
  background: rgba(184, 151, 102, .55);
}

/* === Retrato da Dra. (interface.jpg) — aumentada === */
.hero-portrait{
  position: relative;
  width: 100%;
  max-width: 540px;
  max-height: clamp(380px, 56vh, 540px);
  margin: 0 auto;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--cyprus-deep);
  isolation: isolate;
  /* Moldura dourada dupla refinada + halo dourado + sombra profunda */
  box-shadow:
    0 0 0 1px rgba(184, 151, 102, .82),       /* linha dourada fina principal */
    0 0 0 5px var(--cyprus-deep),              /* respiro entre as duas linhas */
    0 0 0 6px rgba(184, 151, 102, .32),        /* segunda linha dourada atenuada */
    0 0 70px 14px rgba(184, 151, 102, .14),    /* halo dourado suave */
    0 35px 90px rgba(0, 0, 0, .55);             /* sombra profunda */
}

/* === Bloco título + retrato (coluna direita simétrica) === */
.hero-photo-block{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(12px, 1.6vh, 20px);
  width: 100%;
}
.hero-photo-block .hero-title{
  text-align: center;
  margin: 0;
  line-height: 1.1;
  white-space: nowrap;
}
.hero-photo-block .hero-title .t-sand{
  display: inline;
  font-size: clamp(1.6rem, 2.6vw, 2.35rem);
  font-weight: 300;
  letter-spacing: -.008em;
}
.hero-photo-block .hero-title em{
  display: inline;
  font-style: italic;
  font-size: clamp(1.85rem, 3vw, 2.75rem);
  color: var(--gold);
  font-weight: 400;
  margin-left: 4px;
}
@media (max-width: 700px){
  .hero-photo-block .hero-title{ white-space: normal; }
}
/* Vinheta que funde o fundo cinza da foto com o cyprus do site */
.hero-portrait::before{
  content:'';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 100% 115% at center 50%, transparent 0%, transparent 48%, rgba(0, 33, 31, .55) 100%),
    linear-gradient(180deg, rgba(0, 33, 31, .22) 0%, transparent 22%, transparent 72%, rgba(0, 33, 31, .55) 100%);
}
.hero-portrait img{
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 28%;
}
.hero-portrait-caption{
  position: absolute;
  left: 18px; bottom: 18px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.hero-portrait-caption .script-line{
  font-size: 1.5rem;
  color: var(--gold);
}
.hero-portrait-caption span:last-child{
  font-size: .62rem;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: rgba(240, 237, 229, .82);
  font-weight: 400;
}

.hero-trust{
  display: flex;
  flex-wrap: wrap;
  gap: clamp(14px, 2vw, 32px);
  align-items: center;
  justify-content: space-between;
  padding-top: clamp(8px, 1.2vh, 14px);
  border-top: 1px solid rgba(214, 187, 145, .22);
}
.hero-trust li{
  display: flex;
  align-items: baseline;
  gap: 10px;
  color: rgba(240, 237, 229, .82);
}
.hero-trust strong{
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(.95rem, 1.15vw, 1.1rem);
  font-weight: 400;
  color: var(--gold);
  margin: 0;
}
.hero-trust span{
  font-size: .58rem;
  letter-spacing: .22em;
  text-transform: uppercase;
}

@media (max-width: 980px){
  .hero-main{ grid-template-columns: 1fr; gap: 28px; }
  .hero-trust{ justify-content: center; gap: 14px; }
}

/* ===========================================================
   SUB-PÁGINAS · single-fold
   =========================================================== */
.page-fold{
  position: relative;
  min-height: 100vh;
  padding: var(--pad-top) 0 var(--pad-bottom);
  background: var(--cyprus-deep);
  color: var(--sand);
  overflow: hidden;
  display: flex;
  align-items: stretch;
}
.page-fold.page-fold-lg-bottom{
  padding-bottom: var(--pad-bottom-lg);
}
@media (min-width: 981px){
  body.is-singlefold .page-fold{ height: 100vh; min-height: 0; }
}
.page-fold-bg{
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .14;
  filter: blur(3px) saturate(.55);
  z-index: 0;
}
.page-fold-veil{
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 30% 50%, rgba(184,151,102,.08), transparent 55%),
    linear-gradient(180deg, rgba(0,51,49,.7) 0%, rgba(0,33,31,.94) 100%);
  z-index: 1;
  pointer-events: none;
}
.page-fold-inner{
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: clamp(14px, 2.2vh, 24px);
}
.page-eyebrow{
  display: block;
  color: var(--gold-soft);
  margin-bottom: 2px;
}
.page-title{
  font-family: var(--serif);
  font-weight: 300;
  line-height: .98;
  margin: 0;
  font-size: clamp(1.8rem, 3.6vw, 3.2rem);
  max-width: 22ch;
}
.page-title em{
  font-style: italic;
  color: var(--gold);
  font-weight: 400;
  display: inline-block;
}
.page-lead{
  font-size: clamp(.92rem, 1.02vw, 1.02rem);
  color: rgba(240, 237, 229, .82);
  line-height: 1.65;
  max-width: 58ch;
  font-weight: 300;
}
.page-lead em{
  font-family: var(--serif);
  font-style: italic;
  color: var(--gold-soft);
}

.fold-split{
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(36px, 4.5vw, 80px);
  align-items: flex-start;
}
.fold-right-stack{
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 1.8vh, 22px);
  width: 100%;
  max-width: 580px;
  margin: 0 auto;
}
.fold-right-stack > *{ width: 100%; }
/* caixa CTA dentro do stack (filosofia) — mais compacta */
.fold-right-stack .cta-feature{
  padding: 14px 20px 16px;
  gap: 10px;
}
.fold-right-stack .cta-feature .btn-premium{
  padding: 16px 26px;
}
.fold-right-stack .cta-feature .cta-foot{
  font-size: .88rem;
}
@media (max-width: 900px){
  .fold-split{ grid-template-columns: 1fr; gap: 32px; }
}

.section-cta-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
  margin-top: 6px;
}
.section-aside{
  font-family: var(--serif);
  font-style: italic;
  color: rgba(240, 237, 229, .58);
  font-size: .96rem;
}

/* ===========================================================
   LABORATÓRIO · imagem landscape
   =========================================================== */
.lab-pillars{
  margin: 6px 0 10px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 30px;
}
.lab-pillars li{ display: flex; align-items: flex-start; gap: 14px; }
.pillar-num{
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.45rem;
  color: var(--gold);
  flex-shrink: 0;
  line-height: 1;
  padding-top: 2px;
}
.lab-pillars h4{
  font-family: var(--serif);
  font-size: 1.08rem;
  font-weight: 500;
  color: var(--sand);
  margin-bottom: 2px;
}
.lab-pillars p{
  color: rgba(240, 237, 229, .7);
  font-size: .84rem;
  line-height: 1.45;
  font-weight: 300;
}
.lab-image{
  position: relative;
  aspect-ratio: 4 / 3;
  width: 100%;
  max-height: 70vh;
  overflow: hidden;
  isolation: isolate;
  background: var(--cyprus-deep);
  /* Mesma moldura dourada dupla do retrato do home */
  box-shadow:
    0 0 0 1px rgba(184, 151, 102, .82),
    0 0 0 5px var(--cyprus-deep),
    0 0 0 6px rgba(184, 151, 102, .32),
    0 0 70px 14px rgba(184, 151, 102, .14),
    0 35px 90px rgba(0, 0, 0, .55);
}
/* Vinheta que funde a foto com o fundo cyprus */
.lab-image::before{
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 100% 115% at center 50%, transparent 0%, transparent 50%, rgba(0, 33, 31, .5) 100%),
    linear-gradient(180deg, rgba(0, 33, 31, .22) 0%, transparent 22%, transparent 72%, rgba(0, 33, 31, .5) 100%);
}
.lab-image img{
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform var(--t-slow);
}
.lab-image:hover img{ transform: scale(1.04); }
.lab-image-tag{
  position: absolute;
  left: 16px; bottom: 16px;
  z-index: 3;
  background: rgba(0, 33, 31, .78);
  backdrop-filter: blur(10px);
  padding: 12px 16px;
}
.lab-image-tag .script-line{
  font-size: 1.3rem;
  color: var(--gold);
}
.lab-image-tag span:last-child{
  display: block;
  font-size: .6rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(240, 237, 229, .65);
  margin-top: 2px;
}
@media (max-width: 900px){
  .lab-pillars{ grid-template-columns: 1fr; gap: 12px; }
  .lab-image{ aspect-ratio: 16/10; }
}

/* ===========================================================
   FILOSOFIA · compacto, conteúdo ancorado
   =========================================================== */
.filo-quote{
  position: relative;
  padding: 8px 0 8px 20px;
  border-left: 1px solid rgba(184,151,102,.4);
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1rem, 1.18vw, 1.1rem);
  color: var(--gold-soft);
  line-height: 1.42;
  max-width: 50ch;
}
.filo-values{
  display: grid;
  gap: 8px;
}
.filo-values li{
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 8px 16px;
  background: rgba(184,151,102,.06);
  border-left: 1px solid var(--gold);
  transition: all var(--t-mid);
}
.filo-values li:hover{
  background: rgba(184,151,102,.16);
  padding-left: 22px;
}
.filo-values strong{
  font-family: var(--serif);
  font-style: italic;
  color: var(--gold);
  font-size: .98rem;
  flex-shrink: 0;
  font-weight: 400;
  letter-spacing: 0;
}
.filo-values span{
  color: rgba(240, 237, 229, .85);
  font-size: .82rem;
  line-height: 1.45;
}
.filo-stats{
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: clamp(14px, 1.8vw, 28px);
  padding: 0;
  margin: 0;
  justify-content: start;
}
.cta-feature .filo-stats{
  width: 100%;
  justify-content: space-between;
}
.filo-stats strong{
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.2rem, 1.6vw, 1.55rem);
  font-weight: 400;
  color: var(--gold);
  line-height: 1;
  margin-bottom: 2px;
}
.filo-stats span{
  font-size: .54rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(240, 237, 229, .68);
  white-space: nowrap;
}

.filo-image{
  position: relative;
  aspect-ratio: 4 / 3;
  max-height: 48vh;
  overflow: hidden;
  isolation: isolate;
  background: var(--cyprus-deep);
  /* Mesma moldura dourada dupla do retrato do home */
  box-shadow:
    0 0 0 1px rgba(184, 151, 102, .82),
    0 0 0 5px var(--cyprus-deep),
    0 0 0 6px rgba(184, 151, 102, .32),
    0 0 70px 14px rgba(184, 151, 102, .14),
    0 35px 90px rgba(0, 0, 0, .55);
}
/* Vinheta que funde a foto com o fundo cyprus */
.filo-image::before{
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 100% 115% at center 50%, transparent 0%, transparent 50%, rgba(0, 33, 31, .5) 100%),
    linear-gradient(180deg, rgba(0, 33, 31, .22) 0%, transparent 22%, transparent 72%, rgba(0, 33, 31, .5) 100%);
}
.filo-image img{
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 18%;
  transition: transform var(--t-slow);
}
.filo-image:hover img{ transform: scale(1.04); }
.filo-image-caption{
  position: absolute;
  left: 16px; bottom: 16px;
  z-index: 3;
  background: rgba(0, 33, 31, .8);
  backdrop-filter: blur(10px);
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.filo-image-caption .script-line{
  font-size: 1.35rem;
  color: var(--gold);
}
.filo-image-caption span:last-child{
  font-size: .6rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(240, 237, 229, .68);
}
@media (max-width: 900px){
  .filo-stats{ grid-template-columns: 1fr; gap: 8px; }
}

/* ===========================================================
   BASTIDORES · sem logo duplicado · compacto
   =========================================================== */
.bast-list{
  display: grid;
  gap: 8px;
  margin: 2px 0;
}
.bast-list li{
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 10px 18px;
  border: 1px solid rgba(214, 187, 145, .22);
  background: rgba(0, 51, 49, .35);
  transition: all var(--t-mid);
}
.bast-list li:hover{
  border-color: var(--gold);
  background: rgba(184, 151, 102, .1);
  transform: translateX(6px);
}
.bast-list-num{
  font-family: var(--serif);
  font-style: italic;
  font-size: 1.3rem;
  color: var(--gold);
  flex-shrink: 0;
  width: 26px;
  line-height: 1.1;
}
.bast-list-text strong{
  display: block;
  font-family: var(--serif);
  font-size: 1rem;
  font-weight: 500;
  color: var(--sand);
  margin-bottom: 1px;
}
.bast-list-text span{
  display: block;
  font-size: .8rem;
  color: rgba(240, 237, 229, .68);
  line-height: 1.45;
}
.bast-aside{
  font-family: var(--serif);
  font-style: italic;
  color: rgba(240, 237, 229, .65);
  font-size: .98rem;
  max-width: 52ch;
  line-height: 1.5;
  padding-top: 8px;
  border-top: 1px solid rgba(184,151,102,.18);
}

.bast-feature{
  position: relative;
  padding: clamp(30px, 4vh, 48px) clamp(26px, 3vw, 42px);
  background:
    radial-gradient(circle at 70% 20%, rgba(184,151,102,.18), transparent 60%),
    linear-gradient(160deg, rgba(184,151,102,.14) 0%, rgba(184,151,102,.04) 60%, transparent 100%);
  border: 1px solid rgba(184, 151, 102, .55);
  display: flex;
  flex-direction: column;
  gap: 18px;
  align-items: flex-start;
  isolation: isolate;
  overflow: hidden;
  transition: all var(--t-mid);
  /* centraliza verticalmente em relação à coluna esquerda + abaixa um pouco */
  align-self: center;
  transform: translateY(clamp(16px, 3vh, 32px));
}
.bast-feature::before{
  content:'';
  position: absolute;
  width: 280px; height: 280px;
  top: -110px; right: -110px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(184,151,102,.22), transparent 70%);
  pointer-events: none;
  z-index: -1;
}
.bast-feature-icon{
  width: 44px; height: 44px;
  color: var(--gold);
}
.bast-feature-icon svg{ width: 100%; height: 100%; }
.bast-feature-eyebrow{
  font-family: var(--sans);
  font-size: .66rem;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: rgba(214, 187, 145, .82);
  font-weight: 500;
}
.bast-feature-handle{
  font-family: var(--script);
  font-size: clamp(2.2rem, 4.2vw, 3.4rem);
  color: var(--gold);
  line-height: 1;
  letter-spacing: 0;
  display: block;
}
.bast-feature-sub{
  font-family: var(--serif);
  font-style: italic;
  color: rgba(240, 237, 229, .82);
  font-size: clamp(.92rem, 1vw, 1rem);
  line-height: 1.5;
  max-width: 32ch;
}
.bast-feature .btn{ align-self: stretch; }

/* ===========================================================
   CONTATO · 3 cartões
   =========================================================== */
.contato-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 4px;
}
.contato-card{
  display: block;
  background: rgba(0, 51, 49, .42);
  padding: 26px 22px;
  border: 1px solid rgba(214, 187, 145, .22);
  transition: all var(--t-mid);
  color: var(--sand);
}
.contato-card:hover{
  transform: translateY(-4px);
  border-color: var(--gold);
  background: rgba(184, 151, 102, .08);
  box-shadow: 0 22px 42px rgba(0, 0, 0, .25);
}
.contato-card .script-line{
  font-size: 1.35rem;
  color: var(--gold);
  display: block;
  margin-bottom: 6px;
}
.contato-card h3{
  font-family: var(--serif);
  font-size: 1.2rem;
  color: var(--sand);
  margin-bottom: 6px;
  font-weight: 400;
}
.contato-card p{
  color: rgba(240, 237, 229, .72);
  font-size: .85rem;
  line-height: 1.5;
}
.contato-promise{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 4px;
  padding-top: 14px;
  border-top: 1px solid rgba(184,151,102,.22);
}
.contato-promise li{ display: flex; align-items: flex-start; gap: 12px; }
.contato-promise strong{
  font-family: var(--serif);
  font-style: italic;
  color: var(--gold);
  font-size: 1.05rem;
  flex-shrink: 0;
}
.contato-promise span{
  font-size: .8rem;
  line-height: 1.4;
  color: rgba(240, 237, 229, .75);
}
@media (max-width: 900px){
  .contato-grid, .contato-promise{ grid-template-columns: 1fr; }
}

/* ===========================================================
   CASOS · página COM rolagem
   =========================================================== */
.page-hero{
  position: relative;
  min-height: 56vh;
  padding: var(--pad-top) 0 clamp(70px, 10vh, 110px);
  display: flex;
  align-items: center;
  background: var(--cyprus-deep);
  color: var(--sand);
  overflow: hidden;
}
.page-hero-bg{
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  opacity: .22;
  filter: blur(2px) saturate(.7);
  z-index: 0;
}
.page-hero-veil{
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 30% 50%, rgba(184,151,102,.08), transparent 55%),
    linear-gradient(180deg, rgba(0, 51, 49, .55) 0%, rgba(0, 33, 31, .92) 100%);
  z-index: 1;
}
.page-hero-content{
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.page-hero-content .page-title{
  margin: 12px 0 20px;
  font-size: clamp(2.4rem, 5vw, 4.6rem);
}
.page-section{
  position: relative;
  padding: clamp(80px, 12vh, 140px) 0;
  background: var(--sand);
  color: var(--text);
}
.page-section-inner{
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}
.casos-grid{
  display: flex;
  flex-direction: column;
  gap: clamp(72px, 10vh, 120px);
}
.caso-card{
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  align-items: center;
  gap: clamp(40px, 5vw, 90px);
}
.caso-card.reverse{ grid-template-columns: 1fr 1.4fr; }
.caso-card.reverse .caso-info{ order: -1; }
.caso-media{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.caso-frame{
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--sand-soft);
  isolation: isolate;
  /* Mesma moldura, variante clara (gap em sand-soft p/ combinar com a aba) */
  box-shadow:
    0 0 0 1px rgba(184, 151, 102, .7),
    0 0 0 5px var(--sand-soft),
    0 0 0 6px rgba(184, 151, 102, .3),
    0 0 40px 8px rgba(184, 151, 102, .1),
    0 20px 50px rgba(0, 51, 49, .12);
  transition: transform var(--t-mid), box-shadow var(--t-mid);
}
.caso-frame:hover{
  transform: translateY(-3px);
  box-shadow:
    0 0 0 1px rgba(184, 151, 102, .9),
    0 0 0 5px var(--sand-soft),
    0 0 0 6px rgba(184, 151, 102, .45),
    0 0 50px 10px rgba(184, 151, 102, .18),
    0 35px 70px rgba(0, 51, 49, .22);
}
.caso-half{ background-repeat: no-repeat; background-size: auto 220%; }
.caso-half.caso-antes{ background-position: center 4%; }
.caso-half.caso-depois{ background-position: center 96%; }
.caso-frame figcaption{
  position: absolute;
  top: 16px; left: 16px;
  font-family: var(--sans);
  font-size: .62rem;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--sand);
  padding: 6px 12px;
  background: rgba(0, 51, 49, .82);
  backdrop-filter: blur(6px);
  font-weight: 500;
}
.caso-frame figcaption.gold{
  background: var(--gold);
  color: var(--cyprus-deep);
}
.caso-info .caso-tag{
  font-family: var(--script);
  font-size: clamp(1.6rem, 2.2vw, 2rem);
  color: var(--gold);
  display: block;
  margin-bottom: 14px;
}
.caso-info h3{
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  font-weight: 300;
  color: var(--cyprus);
  line-height: 1.2;
  margin-bottom: 16px;
}
.caso-info p{
  color: var(--text-soft);
  line-height: 1.75;
  max-width: 44ch;
}
.casos-cta{
  margin-top: clamp(80px, 12vh, 140px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  text-align: center;
}
.casos-cta .script-line{
  font-size: clamp(1.8rem, 2.6vw, 2.4rem);
  color: var(--gold-deep);
}
@media (max-width: 900px){
  .caso-card, .caso-card.reverse{ grid-template-columns: 1fr; gap: 32px; }
  .caso-card.reverse .caso-info{ order: 0; }
}

/* ===========================================================
   FOOTER (Casos)
   =========================================================== */
.site-footer{
  background: var(--cyprus-deep);
  color: var(--sand);
  padding: clamp(60px, 8vh, 90px) 0 36px;
}
.footer-inner{
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 40px;
  align-items: center;
}
.footer-brand{ display: flex; align-items: center; gap: 18px; }
.footer-logo{
  width: 44px; height: 44px;
  filter: drop-shadow(0 0 14px rgba(184, 151, 102, .35));
}
.footer-brand .script-line{ font-size: 1.5rem; color: var(--gold-soft); }
.footer-contact{
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: .9rem;
  color: rgba(240, 237, 229, .82);
}
.footer-contact a:hover{ color: var(--gold); }
.footer-meta{
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: .72rem;
  color: rgba(240, 237, 229, .55);
  text-align: right;
}
.footer-meta .legal{ font-size: .66rem; }
@media (max-width: 800px){
  .footer-inner{ grid-template-columns: 1fr; text-align: left; gap: 24px; }
  .footer-meta{ text-align: left; }
}

/* ===========================================================
   WHATSAPP FLOAT
   =========================================================== */
.wa-float{
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 90;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--gold);
  color: #fff !important;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 10px 24px rgba(184, 151, 102, .42);
  transition: all var(--t-fast);
  animation: pulseGold 2.8s ease-in-out infinite;
}
.wa-float:hover{ transform: scale(1.08); background: var(--gold-deep); }
@keyframes pulseGold{
  0%,100%{ box-shadow: 0 10px 24px rgba(184, 151, 102, .42), 0 0 0 0 rgba(184, 151, 102, .5); }
  50%{    box-shadow: 0 10px 24px rgba(184, 151, 102, .42), 0 0 0 14px rgba(184, 151, 102, 0); }
}

/* ===========================================================
   REVEAL
   =========================================================== */
.reveal{
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 1s var(--t-slow), transform 1s var(--t-slow);
}
.reveal.is-visible{ opacity: 1; transform: translateY(0); }

@media print{ .site-header, .wa-float{ display: none; } }
