/* ---------- Tokens ---------- */
:root{
  --bg: #0A0908;
  --bg-alt: #141210;
  --bg-card: #1B1815;
  --line: #2A2622;
  --gold: #C9A85C;
  --gold-soft: #E4CE94;
  --ember: #8C3B2E;
  --text: #EDE7DA;
  --text-muted: #9A9184;
  --whatsapp: #25D366;
  --whatsapp-dark: #0C2E1B;

  --font-display: 'Cormorant', serif;
  --font-body: 'Jost', sans-serif;

  --container: 1080px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  font-weight:300;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 24px;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}

.eyebrow{
  font-family:var(--font-body);
  font-size:12px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 14px;
}
.eyebrow.center{text-align:center;}
.section-title{
  font-family:var(--font-display);
  font-weight:500;
  font-size:clamp(28px,4vw,40px);
  color:var(--gold-soft);
  margin:0 0 20px;
}
.section-title.center{text-align:center;}

/* ---------- Ember field (signature ambient motion) ---------- */
.ember-field{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:1;
  overflow:hidden;
}
.ember{
  position:absolute;
  bottom:-10px;
  width:3px;
  height:3px;
  border-radius:50%;
  background:var(--gold);
  opacity:0;
  animation:ember-rise linear infinite;
  box-shadow:0 0 6px 1px rgba(201,168,92,0.6);
}
@keyframes ember-rise{
  0%{ transform:translateY(0) translateX(0); opacity:0; }
  10%{ opacity:.8; }
  90%{ opacity:.3; }
  100%{ transform:translateY(-100vh) translateX(var(--drift,20px)); opacity:0; }
}
@media (prefers-reduced-motion: reduce){
  .ember{animation:none;display:none;}
  html{scroll-behavior:auto;}
}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:20;
  background:rgba(10,9,8,0.85);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 24px;
}
.brand{
  font-family:var(--font-display);
  font-size:20px;
  letter-spacing:0.5px;
  color:var(--gold-soft);
}
.whatsapp-pill{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--whatsapp);
  color:var(--whatsapp-dark);
  border:none;
  padding:9px 18px;
  border-radius:22px;
  font-family:var(--font-body);
  font-size:13px;
  font-weight:500;
  cursor:pointer;
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding:120px 0 100px;
  text-align:center;
  overflow:hidden;
  background:
    linear-gradient(180deg, rgba(10,9,8,0.55), rgba(10,9,8,0.92) 70%, var(--bg) 100%),
    url("assets/img/hero-bg.jpg") center 35% / cover no-repeat,
    var(--bg);
}
.hero-inner{position:relative; z-index:2;}
.hero-title{
  font-family:var(--font-display);
  font-weight:500;
  font-size:clamp(34px,6vw,58px);
  line-height:1.15;
  color:var(--text);
  margin:0 0 22px;
}
.hero-title em{
  font-style:italic;
  color:var(--gold);
}
.hero-sub{
  max-width:520px;
  margin:0 auto 36px;
  color:var(--text-muted);
  font-size:16px;
}
.hero-actions{
  display:flex; gap:16px; justify-content:center; flex-wrap:wrap;
}
.btn-primary{
  display:inline-block;
  background:var(--gold);
  color:#1A1408;
  padding:14px 28px;
  border-radius:2px;
  font-family:var(--font-body);
  font-weight:500;
  font-size:14px;
  letter-spacing:0.3px;
  transition:background .2s ease;
}
.btn-primary:hover{background:var(--gold-soft);}
.btn-ghost{
  display:inline-block;
  padding:14px 28px;
  border:1px solid var(--line);
  color:var(--text-muted);
  font-size:14px;
  border-radius:2px;
  transition:border-color .2s ease, color .2s ease;
}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold-soft);}

.hero-flame{
  margin:56px auto 0;
  color:var(--ember);
  opacity:.85;
  animation:flicker 3.4s ease-in-out infinite;
}
.flame-outer{fill:var(--ember);}
.flame-inner{fill:var(--gold);}
@keyframes flicker{
  0%,100%{ transform:scale(1) rotate(0deg); opacity:.85; }
  25%{ transform:scale(1.05,0.96) rotate(-1.5deg); opacity:1; }
  50%{ transform:scale(0.97,1.04) rotate(1deg); opacity:.75; }
  75%{ transform:scale(1.03,0.98) rotate(-0.5deg); opacity:.95; }
}

/* ---------- Sobre mí ---------- */
.sobre-mi{
  padding:100px 0;
  position:relative; z-index:2;
}
.sobre-mi-grid{
  display:grid;
  grid-template-columns:0.8fr 1.2fr;
  gap:56px;
  align-items:center;
}
.sobre-mi-photo{
  border-radius:2px;
  overflow:hidden;
  border:1px solid var(--line);
  aspect-ratio:4/5;
}
.sobre-mi-photo img{
  width:100%; height:100%;
  object-fit:cover;
  filter:saturate(0.95);
}
.sobre-mi-copy .contacto-text{max-width:460px; margin-bottom:18px;}
.sobre-mi-copy .contacto-text--muted{color:var(--text-muted); font-size:13.5px; margin-bottom:26px;}

.sobre-mi-stats{
  display:flex;
  gap:32px;
  margin:24px 0 26px;
  flex-wrap:wrap;
}
.stat{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding-right:28px;
  border-right:1px solid var(--line);
}
.stat:last-child{border-right:none; padding-right:0;}
.stat-num{
  font-family:var(--font-display);
  font-size:26px;
  font-weight:500;
  color:var(--gold-soft);
}
.stat-label{
  font-size:11.5px;
  color:var(--text-muted);
  letter-spacing:0.3px;
}

.especialidades-tags{
  list-style:none;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  padding:0;
  margin:0 0 30px;
  max-width:460px;
}
.especialidades-tags li{
  font-size:12.5px;
  color:var(--gold-soft);
  border:1px solid var(--line);
  padding:7px 14px;
  border-radius:20px;
}

/* ---------- Servicios ---------- */
.servicios{padding:100px 0; background:var(--bg-alt); position:relative; z-index:2;}
.servicios-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:20px;
  margin-top:48px;
}
.servicio-card{
  background:var(--bg-card);
  border:1px solid var(--line);
  padding:32px 26px;
  border-radius:2px;
  transition:border-color .2s ease, transform .2s ease;
}
.servicio-card:hover{border-color:var(--gold); transform:translateY(-3px);}
.servicio-card--feature{background:linear-gradient(155deg, var(--bg-card), #201A12);}
.servicio-num{
  display:inline-block;
  font-family:var(--font-display);
  font-style:italic;
  color:var(--gold);
  font-size:14px;
  margin-bottom:14px;
  border-bottom:1px solid var(--line);
  padding-bottom:8px;
}
.servicio-art{
  margin-bottom:18px;
  height:60px;
  display:flex;
  align-items:flex-end;
}
.servicio-photo{
  margin:-32px -26px 20px;
  height:160px;
  overflow:hidden;
}
.servicio-photo img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:saturate(0.9) brightness(0.92);
  transition:transform .3s ease;
}
.servicio-card:hover .servicio-photo img{transform:scale(1.04);}
.servicio-art .art-line{
  fill:none;
  stroke:var(--gold);
  stroke-width:1.3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.servicio-art .art-fill{
  fill:none;
  stroke:var(--ember);
  stroke-width:1.3;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.servicio-card--feature .servicio-art .art-fill{
  fill:rgba(140,59,46,0.18);
}
.servicio-card h3{
  font-family:var(--font-display);
  font-weight:500;
  font-size:24px;
  color:var(--text);
  margin:0 0 10px;
}
.servicio-card p{
  color:var(--text-muted);
  font-size:14.5px;
  margin:0 0 18px;
}
.servicio-link{
  font-size:13px;
  color:var(--gold-soft);
  border-bottom:1px solid var(--gold-soft);
  padding-bottom:2px;
}

/* ---------- Testimonios ---------- */
.testimonios{
  padding:100px 0;
  position:relative; z-index:2;
  background:
    linear-gradient(100deg, var(--bg) 45%, rgba(10,9,8,0.75) 75%),
    url("assets/img/testimonios.jpg") right center / cover no-repeat;
}
.testi-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin-top:44px;
}
.testi{
  margin:0;
  padding:0 0 0 18px;
  border-left:2px solid var(--gold);
}
.testi p{
  font-family:var(--font-display);
  font-style:italic;
  font-size:19px;
  color:var(--text);
  margin:0 0 14px;
  line-height:1.5;
}
.testi cite{
  font-size:12px;
  color:var(--text-muted);
  font-style:normal;
  letter-spacing:0.5px;
}

/* ---------- Contacto ---------- */
.contacto{
  padding:100px 0 120px;
  position:relative; z-index:2;
  overflow:hidden;
  background:var(--bg-alt);
}
.contacto-bg-photo{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 25%;
  opacity:0.95;
  z-index:0;
}
.contacto-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg, rgba(10,9,8,0.35), rgba(10,9,8,0.68) 55%, rgba(10,9,8,0.94));
}
.contacto-cta{
  position:relative;
  z-index:2;
  text-align:center;
  max-width:560px;
  margin:0 auto;
}
.contacto-text--center{
  color:var(--text-muted);
  font-size:15.5px;
  max-width:460px;
  margin:0 auto 32px;
}
.btn-lg{
  padding:16px 40px;
  font-size:15px;
}

/* ---------- Redes sociales ---------- */
.redes{padding:90px 0; background:var(--bg-alt); position:relative; z-index:2;}
.redes-grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:16px;
  margin-top:40px;
}
.red-card{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  padding:28px 16px;
  background:var(--bg-card);
  border:1px solid var(--line);
  border-radius:2px;
  font-size:13px;
  color:var(--text-muted);
  transition:border-color .2s ease, transform .2s ease, color .2s ease;
}
.red-card:hover{
  border-color:var(--gold);
  color:var(--gold-soft);
  transform:translateY(-3px);
}
.red-icon{
  width:52px; height:52px;
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-alt);
  border:1px solid var(--line);
  color:var(--gold);
}
.red-card:hover .red-icon{border-color:var(--gold);}

/* ---------- Footer ---------- */
.site-footer{
  padding:26px 0;
  border-top:1px solid var(--line);
  position:relative; z-index:2;
}
.footer-row{
  display:flex; justify-content:space-between; align-items:center;
  font-size:12px; color:var(--text-muted);
}

/* ---------- Floating WhatsApp ---------- */
.whatsapp-float{
  position:fixed;
  bottom:22px; right:22px;
  width:56px; height:56px;
  background:var(--whatsapp);
  color:var(--whatsapp-dark);
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 20px rgba(0,0,0,0.4);
  z-index:30;
  transition:transform .2s ease;
}
.whatsapp-float:hover{transform:scale(1.06);}

/* ---------- Responsive ---------- */
@media (max-width:860px){
  .servicios-grid{grid-template-columns:1fr;}
  .testi-row{grid-template-columns:1fr; gap:32px;}
  .sobre-mi-grid{grid-template-columns:1fr; gap:32px;}
  .redes-grid{grid-template-columns:repeat(2,1fr);}
  .hero{padding:90px 0 70px;}
}
