
:root{
  --ivory:#F8F4ED;
  --paper:#FFFDF9;
  --charcoal:#3D3936;
  --warm-gray:#746E68;
  --line:#DED5CB;
  --gold:#B49359;
  --gold-soft:#D8C39F;
  --blush:#F2DFDC;
  --dusty-blue:#E2E9EE;
  --lilac:#E9E2EC;
  --sand:#EFE5D8;
  --rose:#EEDBDD;
  --peach:#F3E3D6;
  --soft-gray:#ECE9E5;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  font-family:"DM Sans",sans-serif;
  color:var(--charcoal);
  background:var(--paper);
  line-height:1.65;
}

a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

.topbar{
  position:sticky;
  top:0;
  z-index:50;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 5vw;
  background:rgba(255,253,249,.94);
  backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(180,147,89,.18);
}

.brand{display:flex;flex-direction:column;line-height:1.15}
.brand span{
  font-family:"Playfair Display",serif;
  font-size:1.38rem;
  letter-spacing:.02em;
}
.brand small{
  font-family:"Nunito",sans-serif;
  font-size:.72rem;
  color:var(--warm-gray);
  margin-top:4px;
}

nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  font-size:.86rem;
  color:var(--warm-gray);
  white-space:nowrap;
}
nav a{
  position:relative;
  padding:8px 0;
}
nav a::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:2px;
  height:1px;
  background:var(--gold);
  transition:.2s ease;
}
nav a:hover{color:var(--gold)}
nav a:hover::after{right:0}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:13px 22px;
  border-radius:999px;
  background:var(--charcoal);
  color:#fff;
  border:1px solid var(--charcoal);
  font-weight:600;
  font-size:.92rem;
  transition:.25s ease;
}
.btn:hover{transform:translateY(-2px);background:#2F2C2A}
.btn-small{padding:10px 17px;font-size:.84rem}
.btn-outline{background:transparent;color:var(--charcoal);border-color:var(--gold)}
.btn-outline:hover{background:var(--ivory)}

.hero{
  min-height:84vh;
  display:grid;
  grid-template-columns:1.05fr .95fr;
  align-items:center;
  gap:5vw;
  padding:72px 8vw 90px;
  background:
    radial-gradient(circle at 10% 12%, rgba(242,223,220,.50), transparent 28%),
    radial-gradient(circle at 88% 13%, rgba(216,195,159,.19), transparent 25%),
    var(--ivory);
  overflow:hidden;
}

.eyebrow{
  margin:0 0 14px;
  color:var(--gold);
  font-size:.73rem;
  font-weight:600;
  letter-spacing:.18em;
}

h1,h2,h3{margin-top:0}
h1,h2{
  font-family:"Playfair Display",serif;
  font-weight:500;
}

h1{
  font-size:clamp(3rem,6vw,5.7rem);
  line-height:1.03;
  max-width:760px;
  margin-bottom:26px;
}

h2{
  font-size:clamp(2.1rem,4vw,3.7rem);
  line-height:1.12;
  margin-bottom:22px;
}

.lead{
  font-size:1.12rem;
  max-width:690px;
  color:var(--warm-gray);
}

.hero-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:32px;
}

.hero-note{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:26px;
  color:var(--warm-gray);
  font-size:.85rem;
}
.dot{color:var(--gold)}

.hero-photo-wrap{
  position:relative;
  min-height:620px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.photo-frame{
  width:min(480px,88%);
  aspect-ratio:4/5;
  border-radius:180px 180px 28px 28px;
  overflow:hidden;
  position:relative;
  z-index:2;
  box-shadow:0 26px 60px rgba(75,65,55,.12);
}

.photo-frame img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 22%;
}

.soft-shape{
  position:absolute;
  border-radius:50%;
}
.shape-one{
  width:310px;
  height:310px;
  background:var(--blush);
  right:-30px;
  top:42px;
  opacity:.64;
}
.shape-two{
  width:245px;
  height:245px;
  background:var(--dusty-blue);
  left:-6px;
  bottom:24px;
  opacity:.58;
}

.gold-orbit{
  position:absolute;
  z-index:3;
  width:135px;
  height:135px;
  border:1.5px solid var(--gold-soft);
  border-radius:50%;
  right:2%;
  bottom:8%;
}

.little-note{
  position:absolute;
  z-index:4;
  left:0;
  bottom:7%;
  font-family:"Nunito",sans-serif;
  font-size:.92rem;
  color:#796B60;
  background:#FFF9F5;
  border:1px solid rgba(180,147,89,.3);
  padding:10px 16px;
  border-radius:18px;
  box-shadow:0 12px 25px rgba(80,65,55,.05);
}

.intro-card{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:6vw;
  margin:-42px auto 0;
  width:min(1180px,88%);
  padding:54px 58px;
  background:var(--paper);
  border:1px solid rgba(180,147,89,.32);
  border-radius:28px;
  box-shadow:0 22px 55px rgba(75,65,55,.06);
  position:relative;
  z-index:4;
}

.intro-card h2{font-size:2.7rem;margin-bottom:8px}
.handwritten{
  font-family:"Nunito",sans-serif;
  font-weight:700;
  color:#AF8A88;
  font-size:1rem;
  display:inline-block;
}
.intro-text p{margin-top:0;color:var(--warm-gray)}

.section{padding:110px 8vw}
.section-heading{max-width:800px;margin-bottom:50px}
.section-heading.centered{text-align:center;margin-left:auto;margin-right:auto}
.section-heading>p:last-child{color:var(--warm-gray);font-size:1.03rem}

.motives{overflow:hidden}
.bubble-cloud{
  max-width:1120px;
  margin:0 auto;
  min-height:660px;
  position:relative;
}

.bubble{
  position:absolute;
  display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:center;
  padding:26px;
  border-radius:50%;
  box-shadow:0 16px 35px rgba(70,60,55,.06);
  border:1px solid rgba(180,147,89,.13);
  transition:.25s ease;
}
.bubble:hover{transform:translateY(-5px)}
.bubble strong{
  font-family:"Nunito",sans-serif;
  font-size:1.08rem;
  line-height:1.18;
  margin-bottom:8px;
}
.bubble span{font-size:.85rem;color:#665F5A;line-height:1.35}

.b1{width:245px;height:245px;left:1%;top:8%;background:var(--blush)}
.b2{width:235px;height:235px;left:24%;top:0;background:var(--sand)}
.b3{width:250px;height:250px;left:48%;top:8%;background:var(--dusty-blue)}
.b4{width:260px;height:260px;right:0;top:0;background:var(--lilac)}
.b5{width:230px;height:230px;left:10%;bottom:3%;background:var(--peach)}
.b6{width:245px;height:245px;left:39%;bottom:0;background:var(--soft-gray)}

.other{
  width:280px;
  height:280px;
  right:4%;
  bottom:2%;
  background:#FFF8F1;
  border:1.5px solid var(--gold-soft);
}
.other .mini-bear{
  color:var(--gold);
  font-size:1.45rem;
  margin-bottom:7px;
}
.bubble-link{
  display:inline-block;
  margin-top:10px;
  font-size:.80rem;
  font-weight:700;
  color:#8A6B39;
}

.emotions{
  padding:110px 8vw;
  background:
    radial-gradient(circle at 12% 22%, rgba(233,226,236,.8), transparent 24%),
    radial-gradient(circle at 88% 78%, rgba(242,223,220,.8), transparent 26%),
    var(--ivory);
}

.bears{
  max-width:1050px;
  margin:46px auto 22px;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:22px;
}

.emotion{
  text-align:center;
  font-family:"Nunito",sans-serif;
  font-weight:700;
  color:#6E655F;
}

.bear{
  position:relative;
  width:120px;
  height:112px;
  margin:0 auto 14px;
  border-radius:50% 50% 46% 46%;
  border:1px solid rgba(80,70,60,.11);
  box-shadow:0 12px 26px rgba(70,60,55,.06);
}
.bear-happy{background:var(--sand)}
.bear-sad{background:var(--dusty-blue)}
.bear-fear{background:var(--lilac)}
.bear-angry{background:var(--rose)}
.bear-nervous{background:var(--peach)}
.bear-calm{background:var(--soft-gray)}

.ear{
  position:absolute;
  width:39px;
  height:39px;
  border-radius:50%;
  background:inherit;
  top:-8px;
  border:1px solid rgba(80,70,60,.10);
  z-index:-1;
}
.ear.left{left:2px}
.ear.right{right:2px}

.eye{
  position:absolute;
  width:7px;
  height:9px;
  border-radius:50%;
  background:#49433E;
  top:41px;
}
.eye.e1{left:36px}
.eye.e2{right:36px}
.calm-eye{
  height:2px;
  width:12px;
  border-radius:5px;
  top:44px;
}
.calm-eye.e1{left:31px;transform:rotate(5deg)}
.calm-eye.e2{right:31px;transform:rotate(-5deg)}

.angry-eye{height:2px;width:12px;border-radius:4px;top:41px}
.angry-eye.e1{left:31px;transform:rotate(17deg)}
.angry-eye.e2{right:31px;transform:rotate(-17deg)}

.muzzle{
  position:absolute;
  width:37px;
  height:27px;
  left:50%;
  transform:translateX(-50%);
  top:54px;
  border-radius:50%;
  background:rgba(255,255,255,.45);
}
.muzzle::before{
  content:"";
  position:absolute;
  width:8px;
  height:6px;
  left:50%;
  transform:translateX(-50%);
  top:4px;
  border-radius:50%;
  background:#514A45;
}
.mouth{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  top:72px;
}
.mouth.happy{
  width:24px;height:10px;
  border-bottom:2px solid #514A45;
  border-radius:0 0 50% 50%;
}
.mouth.sad{
  width:24px;height:10px;
  border-top:2px solid #514A45;
  border-radius:50% 50% 0 0;
}
.mouth.fear{
  width:10px;height:12px;
  border:2px solid #514A45;
  border-radius:50%;
}
.mouth.angry{
  width:22px;height:2px;background:#514A45;
}
.mouth.nervous{
  width:24px;height:7px;
  border-top:2px dashed #514A45;
}
.mouth.calm{
  width:20px;height:8px;
  border-bottom:2px solid #514A45;
  border-radius:0 0 50% 50%;
}

.emotions-caption{
  text-align:center;
  margin:30px auto 0;
  max-width:760px;
  color:var(--warm-gray);
  font-family:"Nunito",sans-serif;
  font-size:1.04rem;
}

.process{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:8vw;
  padding:110px 8vw;
  background:#F1ECE5;
}

.process-copy{
  position:sticky;
  top:130px;
  align-self:start;
}
.process-copy p:last-child{color:var(--warm-gray)}

.steps{display:flex;flex-direction:column}
.step{
  display:grid;
  grid-template-columns:60px 1fr;
  gap:20px;
  padding:26px 0;
  border-bottom:1px solid rgba(180,147,89,.35);
}
.step>span{
  color:var(--gold);
  font-family:"Playfair Display",serif;
  font-size:1.2rem;
}
.step h3{margin-bottom:7px;font-size:1.1rem}
.step p{margin:0;color:var(--warm-gray)}

.families{
  display:flex;
  flex-direction:column;
  gap:46px;
  padding:110px 8vw;
  background:var(--paper);
}


.family-illustration{
  min-height:360px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:28px;
  border-radius:28px;
  background:
    radial-gradient(circle at 10% 15%, rgba(242,223,220,.56), transparent 28%),
    radial-gradient(circle at 90% 85%, rgba(226,233,238,.58), transparent 30%),
    var(--ivory);
  border:1px solid rgba(180,147,89,.18);
}

.family-flow{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
}

.family-circle{
  width:128px;
  height:128px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:16px;
  font-family:"Nunito",sans-serif;
  font-weight:700;
  color:#665D57;
  border:1px solid rgba(180,147,89,.28);
  box-shadow:0 12px 28px rgba(70,60,55,.05);
  flex:0 0 auto;
}

.family-circle.child{background:var(--blush)}
.family-circle.therapy{
  background:#FFFDF9;
  border:1.5px solid var(--gold);
}
.family-circle.family{background:var(--dusty-blue)}

.family-arrow{
  color:var(--gold);
  font-size:2.1rem;
  line-height:1;
  font-family:"Playfair Display",serif;
  margin-top:-2px;
}

.family-flow-note{
  margin:24px 0 0 !important;
  color:#8A7766 !important;
  font-family:"Nunito",sans-serif;
  font-weight:700;
  font-size:.95rem;
  text-align:center;
}

.family-copy p{color:var(--warm-gray)}
.family-highlight{
  margin-top:28px;
  padding:20px 24px;
  border-left:3px solid var(--gold);
  background:var(--ivory);
  font-family:"Nunito",sans-serif;
  font-weight:700;
  color:#625A55 !important;
}

.faq details{
  max-width:900px;
  margin:0 auto;
  padding:22px 0;
  border-bottom:1px solid var(--line);
}
.faq summary{
  cursor:pointer;
  font-family:"Nunito",sans-serif;
  font-weight:700;
}
.faq details p{
  color:var(--warm-gray);
  max-width:790px;
}

.contact{
  margin:40px 8vw 90px;
  padding:58px;
  border-radius:30px;
  background:var(--charcoal);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
}
.contact .eyebrow{color:var(--gold-soft)}
.contact h2{margin-bottom:12px}
.contact p:last-child{color:#D5D0CC}
.contact-actions{display:flex;gap:12px;flex-wrap:wrap}
.contact .btn{
  background:var(--gold);
  border-color:var(--gold);
  color:#fff;
}
.contact .btn-outline{
  background:transparent;
  border-color:#CDBB9A;
  color:#fff;
}

footer{
  display:flex;
  justify-content:space-between;
  gap:30px;
  padding:32px 8vw;
  border-top:1px solid var(--line);
  color:var(--warm-gray);
  font-size:.84rem;
}
footer div{display:flex;flex-direction:column}
footer strong{
  font-family:"Playfair Display",serif;
  color:var(--charcoal);
  font-size:1.15rem;
}

@media (max-width: 1080px){
  .topbar{
    flex-wrap:wrap;
    row-gap:10px;
  }
  nav{
    order:3;
    width:100%;
    justify-content:flex-start;
    overflow-x:auto;
    gap:20px;
    padding:2px 0 0;
    scrollbar-width:none;
  }
  nav::-webkit-scrollbar{display:none}
  .bubble-cloud{
    min-height:auto;
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:18px;
  }
  .bubble{
    position:static;
    width:100% !important;
    height:auto !important;
    min-height:210px;
    border-radius:40px;
  }
  .bears{grid-template-columns:repeat(3,1fr)}
}

@media (max-width: 900px){
  .hero{grid-template-columns:1fr;padding-top:58px}
  .hero-photo-wrap{min-height:520px;margin-top:15px}
  .intro-card{grid-template-columns:1fr}
  .process{grid-template-columns:1fr}
  .process-copy{position:static}
  .families{grid-template-columns:1fr}
  .family-illustration{min-height:360px}
  .contact{flex-direction:column;align-items:flex-start}
}

@media (max-width: 620px){
  .topbar{
    padding:12px 5vw 10px;
    row-gap:8px;
  }
  .brand small{display:none}
  .btn-small{font-size:.76rem;padding:8px 12px}
  nav{
    gap:18px;
    font-size:.79rem;
    padding-top:1px;
  }
  .hero{padding:52px 6vw 72px}
  h1{font-size:3.18rem}
  .hero-photo-wrap{min-height:470px}
  .photo-frame{border-radius:120px 120px 24px 24px}
  .little-note{left:2%;bottom:4%;font-size:.8rem}
  .intro-card{width:90%;padding:34px 28px}
  .section,.process,.families,.emotions{padding:78px 6vw}
  .bubble-cloud{grid-template-columns:1fr}
  .bears{grid-template-columns:repeat(2,1fr)}
  .bear{width:108px;height:102px}
  .family-circle{width:110px;height:110px;font-size:.84rem}
  .l1,.l2{width:120px}
  .contact{margin:20px 6vw 60px;padding:38px 28px}
  footer{flex-direction:column}
}


/* Ajustes de prolijidad V2.1 */
.little-note{
  transform:none !important;
  left:4%;
  bottom:6%;
  text-align:center;
}

.handwritten{
  transform:none !important;
  margin-top:2px;
  line-height:1.35;
}

.intro-title{
  align-self:start;
}

.family-copy{
  align-self:center;
}

@media (max-width: 620px){
  .family-illustration{
    min-height:auto;
    padding:26px 18px;
  }
  .family-flow{
    flex-direction:column;
    gap:10px;
  }
  .family-arrow{
    transform:rotate(90deg);
    font-size:1.8rem;
    margin:0;
  }
  .family-circle{
    width:112px;
    height:112px;
  }
  .family-flow-note{
    margin-top:18px !important;
  }
}


/* Ajuste V2.2: texto de familias arriba y diagrama debajo */
.families .family-copy{
  width:min(960px,100%);
  margin:0 auto;
  align-self:auto;
}

.families .family-illustration{
  width:min(960px,100%);
  margin:0 auto;
}

.families .family-copy h2{
  max-width:820px;
}

.families .family-copy > p:not(.eyebrow):not(.family-highlight){
  max-width:900px;
}

@media (max-width: 900px){
  .families{
    display:flex;
    flex-direction:column;
    gap:34px;
  }
}
