:root{
  --ink-deep:   #fdf1ee;
  --ink-panel:  #ffffff;
  --ink-panel-2:#fbe4de;
  --gold:       #d98a76;
  --gold-soft:  #e8ab9b;
  --wine:       #f3c6c1;
  --wine-soft:  #f6d6d1;
  --text-hi:    #5a3a34;
  --text-mid:   #8a6259;
  --text-low:   #b28b81;
  --line:       rgba(217,138,118,0.28);
  --radius:     2px;
}
 
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink-deep);
  color:var(--text-hi);
  font-family:'Work Sans', sans-serif;
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:500;
  letter-spacing:0.01em;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
::selection{background:var(--wine); color:var(--text-hi);}
 
.eyebrow{
  font-family:'Work Sans', sans-serif;
  font-size:0.72rem;
  letter-spacing:0.28em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-block;
  margin-bottom:1rem;
}
.eyebrow::before{content:"✦  "; opacity:0.8;}
 
.wrap{max-width:1140px; margin:0 auto; padding:0 6vw;}
 
/* ===== STARFIELD BACKGROUND (elemento distintivo de ambientación) ===== */
.stars{
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(1.5px 1.5px at 12% 22%, var(--gold-soft) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 78% 14%, var(--gold-soft) 0%, transparent 60%),
    radial-gradient(2px 2px at 34% 68%, var(--gold) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 88% 78%, var(--gold-soft) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 55% 40%, var(--gold) 0%, transparent 60%),
    radial-gradient(2px 2px at 20% 88%, var(--gold-soft) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 65% 90%, var(--gold) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 5% 55%, var(--gold-soft) 0%, transparent 60%),
    radial-gradient(1.5px 1.5px at 95% 45%, var(--gold) 0%, transparent 60%);
  background-size:100% 100%;
  animation:twinkle 6s ease-in-out infinite alternate;
  opacity:0.35;
}
@keyframes twinkle{ from{opacity:0.35;} to{opacity:0.75;} }
@media (prefers-reduced-motion: reduce){ .stars{animation:none;} }
 
/* ===== NAV ===== */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(16,11,28,0.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
nav.wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:74px;
}
.logo{
  font-family:'Fraunces', serif;
  font-size:1.15rem;
  letter-spacing:0.02em;
}
.logo em{font-style:italic; color:var(--gold);}
.nav-links{display:flex; gap:2.4rem; align-items:center;}
.nav-links a{
  font-size:0.85rem;
  letter-spacing:0.04em;
  color:var(--text-mid);
  transition:color .2s ease;
  position:relative;
}
.nav-links a:hover{color:var(--gold-soft);}
.nav-cta{
  border:1px solid var(--gold);
  color:var(--gold-soft) !important;
  padding:0.55rem 1.1rem;
  border-radius:var(--radius);
  font-size:0.78rem !important;
  letter-spacing:0.06em !important;
}
.nav-cta:hover{background:var(--gold); color:#ffffff !important;}
 
.burger{display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:8px; z-index:60;}
.burger span{width:24px; height:1.5px; background:var(--gold-soft); display:block; transition:.25s;}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
 
/* ===== HERO ===== */
.hero{
  position:relative; z-index:1;
  padding:6.5rem 0 5rem;
  text-align:center;
}
.hero h1{
  font-size:clamp(2.2rem, 6vw, 4rem);
  line-height:1.12;
  max-width:16ch;
  margin:0 auto 1.6rem;
}
.hero h1 i{font-style:italic; color:var(--gold-soft);}
.hero p{
  max-width:46ch; margin:0 auto 2.6rem;
  color:var(--text-mid);
  font-size:1.05rem;
}
.hero-actions{display:flex; gap:1rem; justify-content:center; flex-wrap:wrap;}
 
.btn{
  display:inline-flex; align-items:center; gap:0.55rem;
  padding:0.95rem 1.8rem;
  border-radius:var(--radius);
  font-size:0.85rem;
  letter-spacing:0.05em;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
  cursor:pointer;
  border:1px solid transparent;
}
.btn-primary{
  background:linear-gradient(135deg, var(--gold) 0%, #c96f57 100%);
  color:#ffffff;
  font-weight:600;
}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 10px 30px -10px rgba(201,162,77,0.5);}
.btn-ghost{
  border-color:var(--line);
  color:var(--text-hi);
}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold-soft);}
 
.hero-sigil{
  width:1px; height:64px;
  background:linear-gradient(var(--gold), transparent);
  margin:3.2rem auto 0;
}
 
/* ===== SECTION SHELL ===== */
section{position:relative; z-index:1; padding:5.5rem 0;}
.section-head{max-width:56ch; margin-bottom:3rem;}
.section-head h2{font-size:clamp(1.7rem, 3.6vw, 2.4rem);}
.section-head p{color:var(--text-mid); margin-top:0.9rem;}
.divider{
  height:1px;
  background:linear-gradient(90deg, transparent, var(--line), transparent);
}
 
/* ===== SERVICIOS — flip cards (elemento firma) ===== */
.cards{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:1.6rem;
}
.card{
  perspective:1400px;
  height:280px;
}
.card-inner{
  position:relative; width:100%; height:100%;
  transform-style:preserve-3d;
  transition:transform .7s cubic-bezier(.4,.2,.2,1);
}
.card.flipped .card-inner, .card:focus-within .card-inner{transform:rotateY(180deg);}
.card-face{
  position:absolute; inset:0;
  backface-visibility:hidden;
  border-radius:var(--radius);
  padding:1.8rem;
  display:flex; flex-direction:column;
  border:1px solid var(--line);
}
.card-front{
  background:
    linear-gradient(160deg, rgba(201,162,77,0.08), transparent 55%),
    var(--ink-panel);
  justify-content:space-between;
  cursor:pointer;
}
.card-num{font-size:0.7rem; letter-spacing:0.2em; color:var(--text-low);}
.card-front h3{font-size:1.25rem; line-height:1.25;}
.card-glyph{
  font-family:'Fraunces', serif; font-style:italic;
  font-size:2.6rem; color:var(--gold); opacity:0.85;
}
.card-hint{font-size:0.72rem; color:var(--text-low); letter-spacing:0.05em;}
.card-back{
  background:linear-gradient(160deg, var(--gold) 0%, #c96f57 100%);
  transform:rotateY(180deg);
  justify-content:space-between;
}
.card-back p{font-size:0.9rem; color:#fff6f3; line-height:1.55;}
.card-back .card-hint{color:#fbdcd2;}
 
/* ===== SOBRE MI ===== */
.about{
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:3.5rem;
  align-items:center;
}
.about-portrait{
  position:relative;
  aspect-ratio:4/5;
  border-radius:var(--radius);
  background:
    radial-gradient(circle at 30% 20%, rgba(201,162,77,0.25), transparent 55%),
    linear-gradient(150deg, var(--ink-panel-2), var(--ink-deep));
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
}
.about-portrait .card-glyph{font-size:4rem;}
.about-quote{
  font-family:'Fraunces', serif; font-style:italic;
  font-size:1.3rem; line-height:1.5; color:var(--text-hi);
  margin-bottom:1.6rem;
}
.about p.body{color:var(--text-mid); margin-bottom:1.2rem;}
.about-signoff{
  margin-top:1.6rem;
  font-family:'Fraunces', serif; font-style:italic;
  color:var(--gold-soft); font-size:1.15rem;
}
 
/* ===== CONTACTO ===== */
.contact-grid{
  max-width:520px;
  margin:0 auto;
}
.field{margin-bottom:1.3rem;}
.field label{
  display:block; font-size:0.75rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--text-low); margin-bottom:0.5rem;
}
.field input, .field select, .field textarea{
  width:100%;
  background:var(--ink-panel);
  border:1px solid var(--line);
  color:var(--text-hi);
  padding:0.85rem 1rem;
  font-family:'Work Sans', sans-serif;
  font-size:0.92rem;
  border-radius:var(--radius);
  transition:border-color .2s ease;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--gold);
}
.field textarea{resize:vertical; min-height:100px;}
.form-note{font-size:0.78rem; color:var(--text-low); margin-top:0.4rem;}
 
.contact-info{
  border-left:1px solid var(--line);
  padding-left:2.4rem;
}
.contact-info h3{font-size:1.3rem; margin-bottom:1rem;}
.contact-line{
  display:flex; gap:0.9rem; align-items:flex-start;
  margin-bottom:1.3rem;
  color:var(--text-mid); font-size:0.92rem;
}
.contact-line strong{display:block; color:var(--text-hi); font-weight:500; margin-bottom:0.15rem;}
.whatsapp-cta{
  margin-top:1.8rem;
  display:flex; align-items:center; justify-content:center; gap:0.6rem;
  width:100%;
  background:#1f7a4d;
  color:#fff; font-weight:600;
  padding:1rem; border-radius:var(--radius);
  font-size:0.9rem; letter-spacing:0.03em;
  transition:transform .2s ease, box-shadow .2s ease;
}
.whatsapp-cta:hover{transform:translateY(-2px); box-shadow:0 10px 26px -10px rgba(31,122,77,0.6);}
 
/* ===== FOOTER ===== */
footer{
  position:relative; z-index:1;
  border-top:1px solid var(--line);
  padding:2.6rem 0;
}
.foot-wrap{
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:1rem;
}
.foot-wrap p{font-size:0.8rem; color:var(--text-low);}
.foot-links{display:flex; gap:1.6rem;}
.foot-links a{font-size:0.8rem; color:var(--text-mid);}
.foot-links a:hover{color:var(--gold-soft);}
 
/* ===== RESPONSIVE ===== */
@media (max-width: 880px){
  .cards{grid-template-columns:repeat(2, 1fr);}
  .about{grid-template-columns:1fr; gap:2.2rem;}
  .about-portrait{max-width:280px; margin:0 auto;}
  .contact-grid{grid-template-columns:1fr; gap:2.4rem;}
  .contact-info{border-left:none; border-top:1px solid var(--line); padding-left:0; padding-top:2rem;}
}
@media (max-width: 620px){
  .nav-links{
    position:fixed; inset:74px 0 0 0;
    background:var(--ink-deep);
    flex-direction:column; justify-content:flex-start;
    padding:3rem 8vw; gap:2rem;
    transform:translateX(100%);
    transition:transform .3s ease;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{font-size:1.1rem;}
  .burger{display:flex;}
  .cards{grid-template-columns:1fr;}
  .card{height:250px;}
  .hero{padding:4.5rem 0 3.5rem;}
  section{padding:4rem 0;}
  .wrap{padding:0 7vw;}
}
 
