/* ============================================================
   Studio Byluly — hoja de estilos
   Paleta y tipografía tomadas del diseño original.
   ============================================================ */

:root{
  /* colores */
  --burgundy:      #770523;
  --burgundy-dark: #55041A;
  --cream:         #F2E8D4;
  --cream-light:   #FBF5E7;
  --peony:         #FAD2E1;
  --peony-deep:    #F3BCD2;
  --pistachio:     #D0D996;
  --pistachio-dark:#BCC77C;
  --fuchsia:       #EF0066;
  --orange:        #DD4E28;
  --brown:         #63422A;
  --rose-muted:    #D69FB0;
  --dusty-rose:    #E0AAB8;

  --ink:    var(--burgundy);
  --body:   #4a2230;

  /* tipografía */
  --sans:  "Avenir Next", Avenir, Mulish, "Nunito Sans", -apple-system, system-ui, "Segoe UI", sans-serif;
  --serif: "Times New Roman", Tinos, "Liberation Serif", Times, serif;
  --poppins: Poppins, var(--sans);
  --paper:   #FBF5E8;
  --wine:    #860021;
  --ink-dark:#3A0714;

  /* medidas */
  --wrap: 1440px;
  --pad:  clamp(20px, 5vw, 88px);
  --hdr:  72px;
}

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }

/* sin palabras huérfanas: el navegador reparte mejor el final de cada párrafo y título */
p,li,figcaption,small{ text-wrap:pretty; }
h1,h2,h3{ text-wrap:balance; }

html{ scroll-behavior:smooth; }
[id]{ scroll-margin-top:100px; }

body{
  margin:0;
  background:var(--cream);
  color:var(--body);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

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

.display{
  font-family:var(--serif);
  font-weight:400;
  color:var(--burgundy);
  line-height:1.02;
  letter-spacing:-.01em;
  margin:0;
}
.display em{ font-style:italic; font-weight:700; }

.eyebrow{
  font-size:clamp(18px,1.6vw,25px);
  letter-spacing:.06em;
  color:var(--burgundy);
  margin:0 0 .55em;
  font-weight:400;
}

/* ---------- botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:.95em 2.3em;
  border:0; border-radius:999px;
  font:inherit; font-size:16px; line-height:1;
  text-decoration:none; cursor:pointer;
  transition:transform .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn--peony{ background:var(--peony); color:var(--burgundy); }
.btn--peony:hover{ background:var(--peony-deep); }
.btn--pistacho,.btn--pistachio{ background:var(--pistachio); color:var(--burgundy); }
.btn--pistacho:hover,.btn--pistachio:hover{ background:var(--pistachio-dark); }
.btn--fuchsia{ background:var(--fuchsia); color:#fff; }
.btn--fuchsia:hover{ background:#d00059; }
.btn--wpp{ background:var(--orange); color:#fff; }
.btn--wpp:hover{ background:#c33f1c; }
.btn--wpp svg{ width:20px; height:20px; fill:currentColor; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:60;
  background:var(--cream-light);
  transition:box-shadow .25s ease;
}
.site-header.is-stuck{ box-shadow:0 4px 22px rgba(119,5,35,.12); }

.header__inner{
  max-width:var(--wrap); margin:0 auto;
  padding:0 var(--pad);
  min-height:var(--hdr);
  display:flex; align-items:center; gap:clamp(12px,2.4vw,40px);
}
.logo{ flex:0 0 auto; line-height:0; }
.logo img{ width:clamp(96px,8vw,124px); height:auto; }

.nav{ display:flex; align-items:center; gap:clamp(12px,2vw,34px); margin-left:auto; }
.nav__link{
  position:relative;
  background:none; border:0; padding:6px 0;
  font:inherit; font-size:16px; color:var(--burgundy);
  text-decoration:none; cursor:pointer; white-space:nowrap;
}
.nav__link::after{
  content:""; position:absolute; left:0; right:0; bottom:0;
  height:1.5px; background:var(--fuchsia);
  transform:scaleX(0); transform-origin:left; transition:transform .22s ease;
}
.nav__link:hover::after,.nav__link.is-active::after{ transform:scaleX(1); }

.nav__group{ position:relative; }
.nav__sub{
  position:absolute; top:100%; left:50%;
  transform:translate(-50%,8px);
  background:var(--cream-light);
  border-radius:14px; padding:10px 6px;
  box-shadow:0 14px 34px rgba(119,5,35,.16);
  display:flex; flex-direction:column; min-width:190px;
  opacity:0; visibility:hidden; transition:.2s ease;
}
.nav__group:hover .nav__sub,.nav__group:focus-within .nav__sub{
  opacity:1; visibility:visible; transform:translate(-50%,4px);
}
.nav__sublink{
  padding:9px 18px; font-size:15px; color:var(--burgundy);
  text-decoration:none; border-radius:9px; white-space:nowrap;
}
.nav__sublink:hover,.nav__sublink.is-active{ background:var(--peony); }

.header__right{ display:flex; align-items:center; gap:14px; margin-left:auto; }
.socials{ display:flex; align-items:center; gap:12px; }
.ico{ display:grid; place-items:center; width:26px; height:26px; color:var(--burgundy); }
.ico svg{ width:19px; height:19px; fill:currentColor; transition:transform .18s ease; }
.ico:hover svg{ transform:scale(1.14); }

.burger{ display:none; width:34px; height:34px; background:none; border:0; padding:5px; cursor:pointer; }
.burger span{ display:block; height:2px; margin:5px 0; background:var(--burgundy); border-radius:2px; transition:.25s ease; }
.burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ============================================================
   HERO
   ============================================================ */
.hero{
  display:grid;
  grid-template-columns:minmax(0,49.2fr) minmax(0,50.8fr);
  background:var(--cream);
  align-items:stretch;
}
.hero__left{
  background:var(--burgundy);
  padding:clamp(34px,4.6vw,76px) clamp(20px,3.6vw,66px) clamp(40px,4.6vw,74px);
  display:flex; flex-direction:column; justify-content:center;
  position:relative;
}
.hero__title{ margin:0; font-weight:400; display:grid; justify-items:start; }
.ht-1,.ht-2,.ht-3{ display:block; line-height:.92; }
.ht-1{ font-size:clamp(46px,7vw,132px); color:var(--pistachio); }
.ht-2{ font-size:clamp(24px,3.7vw,70px); color:var(--rose-muted); line-height:1; margin-top:.06em; }
.ht-3{
  font-size:clamp(46px,7vw,132px); color:var(--peony);
  margin-top:-.30em; margin-left:.30em;
  position:relative; padding-right:.34em;
}

.hero__mac{
  position:absolute; pointer-events:none;
  width:clamp(58px,8.3vw,160px); max-width:none; height:auto;
  left:96%; bottom:-.14em;
}
.hero__text{
  margin:clamp(22px,3vw,46px) 0 clamp(20px,2.4vw,34px);
  color:var(--peony);
  font-size:clamp(14px,1.18vw,19px);
  line-height:1.5;
}
.hero__text b{ font-weight:700; }
.hero__left .btn{ align-self:flex-start; }

.hero__right{
  position:relative;
  display:flex; align-items:center; justify-content:center;
  padding:clamp(26px,5.8vw,112px) clamp(16px,3vw,54px) clamp(26px,4.4vw,84px);
}
.hero__star{
  position:absolute; z-index:2;
  width:clamp(52px,5.6vw,108px); height:auto;
  top:clamp(10px,4.2vw,80px);
  right:clamp(16px,8.2vw,158px);
  animation:star-spin 14s linear infinite;
  transform-origin:50% 50%;
}
@keyframes star-spin{ to{ transform:rotate(360deg); } }
.hero__photo{ margin:0; position:relative; width:min(100%,27vw); max-width:520px; }
.hero__photo>img{ width:100%; height:auto; }
.sticker{
  position:absolute; left:-13%; bottom:4.5%;
  width:36%;
  background:var(--burgundy);
  border-radius:1.1em;
  box-shadow:4px 5px 0 rgba(84,3,20,.35);
  padding:.7em .9em;
}
.sticker span{
  display:block;
  font-weight:700; font-size:clamp(10px,1.05vw,19px); line-height:1.4;
  color:var(--peony);
}

/* ============================================================
   BLOQUES CENTRADOS (Branding / Tienda)
   ============================================================ */
.bloque{
  position:relative; overflow:hidden;
  padding:clamp(36px,4.2vw,68px) var(--pad);
}
.bloque--branding{ background:var(--cream); }
.bloque--tienda{ background:var(--peony); }

.bloque__centro{
  position:relative; z-index:2;
  max-width:860px; margin:0 auto; text-align:center;
}
.bloque--tienda .bloque__centro{ max-width:1080px; }
.bloque--branding .display{ font-size:clamp(34px,4.6vw,80px); }
.bloque--tienda .display{ font-size:clamp(30px,4.1vw,72px); }
.star-inline{
  display:inline-block; vertical-align:-.16em;
  width:clamp(26px,3.2vw,58px); height:auto; margin-left:.06em;
}
.bloque__texto{
  margin:clamp(24px,3vw,46px) auto clamp(26px,3vw,44px);
  font-size:clamp(13px,1.05vw,17px);
  line-height:1.62; color:var(--burgundy);
  max-width:840px;
}
.bloque--tienda .bloque__texto{ color:var(--burgundy); }

/* mockups sueltos del bloque branding */
.deco{ position:absolute; z-index:1; height:auto; object-fit:cover; }
.deco--bl1{ left:7.4vw;  top:8%;    width:clamp(96px,14.1vw,271px); }
.deco--bl2{ left:10.8vw; bottom:6%; width:clamp(88px,12.7vw,244px); }
.deco--bl3{ right:14.3vw; top:5%;   width:clamp(100px,15vw,288px); }
.deco--bl4{ right:6.8vw;  bottom:4%; width:clamp(100px,15.1vw,290px); }

/* ============================================================
   SOCIAL MEDIA
   ============================================================ */
.redes{
  background:var(--cream);
  display:grid; grid-template-columns:minmax(0,49fr) minmax(0,51fr);
  align-items:center; gap:clamp(24px,3vw,48px);
  padding:clamp(30px,3.6vw,58px) 0 clamp(30px,3.6vw,58px) var(--pad);
  overflow:hidden;
}
.redes__texto{ max-width:640px; }
.redes .display{ font-size:clamp(32px,4.4vw,76px); margin-bottom:.5em; }
.redes__texto p{
  font-size:clamp(14px,1.1vw,18px); line-height:1.55;
  color:var(--burgundy); margin:0 0 1.1em; max-width:52ch;
}
.redes__texto .btn{ margin-top:.6em; }

.redes__visual{
  position:relative;
  min-height:clamp(260px,35vw,540px);
  background:url("img/bg-rosa.jpg") center/cover no-repeat;
  display:grid; place-items:center;
  padding:clamp(18px,3vw,54px);
}
.redes__grid{ width:min(86%,620px); height:auto; box-shadow:0 18px 46px rgba(84,3,20,.22); }
.redes__tulipanes{
  position:absolute; left:clamp(-26px,-1vw,-8px); bottom:clamp(-16px,-0.5vw,0px);
  width:clamp(74px,9vw,160px); height:auto; z-index:2;
}

/* ============================================================
   TESTIMONIOS
   ============================================================ */
.testimonios{
  background:var(--wine);
  padding:clamp(32px,4vw,62px) var(--pad) clamp(36px,4vw,64px);
  text-align:center;
  overflow:hidden;
}
.testimonios__corazon{
  width:clamp(58px,5.4vw,96px); height:auto; margin:0 auto .2em;
  animation:heart-float 3.2s ease-in-out infinite;
}
@keyframes heart-float{
  0%,100%{ transform:translateY(0) rotate(-3deg); }
  50%{ transform:translateY(-10px) rotate(3deg); }
}
.testimonios__title{ color:var(--cream-light); font-size:clamp(38px,5.2vw,92px); }

.chats{
  margin:clamp(26px,3.4vw,54px) auto 0;
  max-width:1600px;
  display:grid; gap:clamp(12px,1.4vw,22px);
  grid-template-columns:repeat(3,1fr);
  align-items:start;
  text-align:left;
}
.chat{
  background:#fff; border-radius:12px;
  padding:11px 14px 7px;
  box-shadow:0 5px 16px rgba(84,3,20,.18);
  font-size:clamp(13px,1vw,16px); line-height:1.34; color:#111;
  max-width:420px;
}
.chat p{ margin:0; }
.chat__de{ color:var(--de,#2f7fd1); font-weight:700; font-size:.92em; margin-bottom:.15em !important; }
.chat__de--inline{ display:inline; font-weight:700; }
.chat time{ display:block; text-align:right; font-size:.72em; color:#8a8a8a; margin-top:2px; }

/* posiciones escalonadas, como en el diseño */
.chat--a{ grid-column:1; justify-self:end;    margin-top:0; }
.chat--b{ grid-column:2; justify-self:center; margin-top:26px; }
.chat--c{ grid-column:3; justify-self:end;    margin-top:14px; }
.chat--d{ grid-column:1; justify-self:start;  margin-top:-4px; }
.chat--e{ grid-column:2; justify-self:start;  margin-top:8px; }
.chat--f{ grid-column:3; justify-self:start;  margin-top:2px; }
.chat--g{ grid-column:2; justify-self:end;    margin-top:6px; }
.chat--h{ grid-column:1; justify-self:center; margin-top:26px; }
.chat--i{ grid-column:2; justify-self:center; margin-top:34px; }
.chat--j{ grid-column:3; justify-self:center; margin-top:-6px; }

/* ============================================================
   PROYECTOS + TIRA
   ============================================================ */
.proyectos{
  background:var(--cream);
  padding:clamp(36px,4.4vw,66px) var(--pad) clamp(26px,3vw,46px);
  text-align:center;
}
.proyectos__head{ max-width:1100px; margin:0 auto; }
.proyectos .display{ font-size:clamp(30px,4.2vw,72px); }
.proyectos__texto{
  margin:clamp(24px,3vw,44px) auto 0;
  font-size:clamp(14px,1.12vw,18px); line-height:1.62;
  color:var(--burgundy); max-width:70ch;
}
.proyectos__texto b{ font-weight:700; }

.tira{
  background:var(--cream);
  overflow:hidden;
}
.tira__track{
  display:flex; gap:0; width:max-content;
  animation:tira-scroll 32s linear infinite;
}
.tira:hover .tira__track,
.tira:focus-within .tira__track{ animation-play-state:paused; }
.tira img{
  flex:0 0 clamp(150px,20vw,384px);
  height:clamp(150px,13.5vw,260px);
  object-fit:cover;
  transition:transform .5s ease, filter .5s ease;
}
.tira img:hover{ transform:scale(1.045); filter:brightness(1.04); }
@keyframes tira-scroll{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
.tira__cta{ background:var(--cream); text-align:center; padding:clamp(24px,2.8vw,42px) var(--pad); }

/* ============================================================
   HABLEMOS (contacto global)
   ============================================================ */
.hablemos{
  background:var(--burgundy);
  padding:clamp(32px,3.8vw,58px) var(--pad) clamp(36px,4vw,64px);
  text-align:center;
  color:var(--cream-light);
}
.hablemos__badge{
  position:relative;
  width:clamp(96px,8.5vw,150px); aspect-ratio:1/1; margin:0 auto;
}
.hablemos__badge-ring{
  position:absolute; inset:0; width:100%; height:100%;
  animation:badge-spin 16s linear infinite;
}
.hablemos__badge-logo{
  position:absolute;
  left:28.667%; top:34.556%; width:43.556%; height:24.556%;
}
@keyframes badge-spin{ to{ transform:rotate(360deg); } }
.hablemos__title{
  font-family:var(--sans); font-weight:400;
  color:var(--pistachio);
  font-size:clamp(44px,6.4vw,112px);
  line-height:1; margin:.1em 0 0;
}
.hablemos__grid{
  max-width:1180px; margin:clamp(22px,3vw,46px) auto 0;
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(28px,5vw,90px);
  text-align:left;
}
.hablemos__lead{ margin:0 0 1.6em; font-size:clamp(14px,1.08vw,17px); line-height:1.55; max-width:44ch; }

.pasos{ list-style:none; margin:0 0 2em; padding:0; display:grid; gap:1.15em; }
.pasos li{
  display:grid; grid-template-columns:auto 1fr; gap:.85em;
  align-items:start;
  font-size:clamp(13px,1.02vw,16px); line-height:1.45;
}
.pasos span{
  width:1.85em; height:1.85em; border-radius:999px;
  background:var(--pistachio); color:var(--burgundy);
  display:grid; place-items:center; font-size:.9em; font-weight:600;
}
.hablemos__or{ margin:1.1em 0 0; font-size:clamp(13px,1.02vw,16px); opacity:.88; }

/* formulario */
.form-contacto{ display:grid; gap:clamp(14px,1.5vw,22px); align-content:start; }
.field{ display:grid; gap:2px; }
.field span{ font-size:clamp(12px,.92vw,14px); color:#E7C8D3; }
.field input{
  background:transparent; border:0; border-bottom:1px solid rgba(250,210,225,.5);
  padding:.65em 0 .45em; color:var(--cream-light);
  font:inherit; font-size:16px; border-radius:0;
}
.field input:focus{ outline:none; border-bottom-color:var(--pistachio); }

.checks{ border:0; padding:0; margin:.2em 0 0; display:grid; gap:.55em; }
.checks legend{ font-size:clamp(12px,.92vw,14px); color:#E7C8D3; padding:0; margin-bottom:.5em; }
.checks label{ display:flex; align-items:center; gap:.7em; font-size:clamp(13px,1.02vw,16px); cursor:pointer; }
.checks input{ position:absolute; opacity:0; width:0; height:0; }
.checks i{
  width:1.05em; height:1.05em; border:1px solid rgba(250,210,225,.7);
  border-radius:3px; flex:0 0 auto; position:relative;
}
.checks input:checked + i{ background:var(--pistachio); border-color:var(--pistachio); }
.checks input:checked + i::after{
  content:""; position:absolute; inset:.16em .12em .22em;
  border-left:2px solid var(--burgundy); border-bottom:2px solid var(--burgundy);
  transform:rotate(-45deg);
}
.checks input:focus-visible + i{ outline:2px solid var(--pistachio); outline-offset:2px; }
.form-contacto .btn{ justify-self:start; margin-top:.4em; }
.form-msg{ margin:0; font-size:14px; color:var(--pistachio); min-height:1.2em; }

/* ---------- variante clara del "Hablemos!" (página Contacto) ---------- */
.hablemos--light{ background:var(--peony); color:var(--burgundy); }
.hablemos__title--light{ color:var(--burgundy); }
.hablemos__badge--light .hablemos__badge-logo{
  left:50%; top:50%; width:58%; height:auto;
  transform:translate(-50%,-50%);
}
.hablemos__lead--center{ max-width:56ch; margin:0 auto 1.6em; text-align:center; }
.pasos--center{ width:fit-content; max-width:100%; margin:0 auto 2em; text-align:left; }

.form-contacto--light{
  max-width:900px; margin:0 auto; text-align:left;
  display:block;
}
.form-contacto__row{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(14px,1.5vw,22px);
  margin-bottom:clamp(14px,1.5vw,22px);
}
.field--light span{ color:var(--burgundy); font-size:15px; margin-bottom:.4em; }
.field--light input,
.field--light select,
.field--light textarea{
  background:var(--cream-light); border:0; border-radius:14px;
  padding:.9em 1em; color:var(--burgundy);
  font:inherit; font-size:16px;
  appearance:none; -webkit-appearance:none;
}
.field--light select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23770523'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1em center; background-size:18px;
  padding-right:2.6em;
}
.field--light textarea{ resize:vertical; min-height:110px; font-family:inherit; }
.field--light input:focus,
.field--light select:focus,
.field--light textarea:focus{ outline:2px solid var(--burgundy); outline-offset:2px; }
.field--full{ margin-bottom:clamp(14px,1.5vw,22px); }
.form-contacto__privacy{
  font-size:13.5px; line-height:1.5; color:var(--burgundy); opacity:.85;
  margin:0 0 1.4em; max-width:70ch;
}
.form-contacto--light .btn{ display:flex; margin:0 auto; }
.btn--cream{ background:var(--cream-light); color:var(--burgundy); font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.btn--cream:hover{ background:#fff; }
.form-contacto--light .form-msg{ color:var(--burgundy); text-align:center; margin-top:.8em; }

/* ---------- hero de Contacto ---------- */
.about__hello{
  font-family:var(--serif); font-weight:400; color:var(--burgundy);
  font-size:clamp(34px,4.4vw,70px); line-height:1; margin:0 0 .5em !important;
  display:flex; align-items:center; gap:.2em;
}
.about__luly{ width:clamp(130px,13.5vw,220px); height:auto; margin-left:-.05em; }
.about__flower{ width:clamp(28px,3vw,44px); height:auto; }
.about__text p{ color:var(--burgundy); margin:0 0 1.2em; line-height:1.6; }
.about__text p b{ font-weight:700; }
.about__media{ position:relative; }
.about__media img:first-child{ border-radius:24px; width:100%; height:auto; box-shadow:0 18px 40px rgba(84,3,20,.16); }
.about__pin{ position:absolute; top:-6.5%; right:-1.2%; width:11%; height:auto; z-index:2; }
.about__sparkles{ position:absolute; bottom:-5%; left:-6%; width:18%; height:auto; z-index:2; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
  background:var(--burgundy-dark);
  color:var(--peony);
  text-align:center;
  padding:clamp(26px,3vw,42px) var(--pad) clamp(28px,3vw,44px);
}
.footer__contact{ display:flex; justify-content:center; gap:clamp(16px,3vw,42px); flex-wrap:wrap; }
.footer__contact a{ text-decoration:none; font-size:15px; }
.footer__contact a:hover{ color:#fff; }
.socials--footer{ justify-content:center; margin:16px 0 14px; }
.socials--footer .ico{ color:var(--peony); }
.footer__nav{ display:flex; justify-content:center; flex-wrap:wrap; gap:8px clamp(12px,1.6vw,22px); }
.footer__nav a{ text-decoration:none; font-size:14px; }
.footer__nav a:hover{ color:#fff; }
.footer__legal{ margin:16px 0 0; font-size:12.5px; color:rgba(250,210,225,.6); }

/* botón flotante de whatsapp */
.wpp-float{
  position:fixed; right:16px; bottom:16px; z-index:70;
  display:inline-flex; align-items:center; gap:.55em;
  padding:.8em 1.25em; border-radius:999px;
  background:var(--peony); color:var(--burgundy); text-decoration:none;
  font-size:15px; box-shadow:0 10px 26px rgba(84,3,20,.22);
  transition:transform .18s ease, background-color .18s ease;
}
.wpp-float:hover{ transform:translateY(-2px); background:var(--peony-deep); }
.wpp-float svg{ width:20px; height:20px; fill:currentColor; }

/* ============================================================
   PÁGINAS INTERIORES
   ============================================================ */
.page-hero{
  background:var(--burgundy); color:var(--peony);
  padding:clamp(36px,4vw,64px) var(--pad);
  text-align:center;
}
.page-hero--short{ padding:clamp(28px,3.1vw,48px) var(--pad); }
.page-hero__kicker{ margin:0 0 .5em; letter-spacing:.12em; font-size:14px; color:var(--pistachio); }
.page-hero__title{
  font-family:var(--serif); font-weight:400; color:var(--cream-light);
  font-size:clamp(34px,5vw,82px); line-height:1.04; margin:0;
}
.page-hero__title em{ font-style:italic; font-weight:700; }
.page-hero__sub{ margin:1.2em auto 0; max-width:62ch; font-size:clamp(14px,1.1vw,18px); }

/* ============================================================
   SERVICIOS: Branding y Redes Sociales
   Medidas sacadas de los PDF (artboard de 1920px): cada tamaño es
   px_del_pdf / 19.2 en vw, con un mínimo para mobile y el valor del
   PDF como máximo. Títulos en Times, textos en Avenir, "eyebrows",
   duraciones y botones en Poppins, como en el diseño.
   ============================================================ */
.svc-hero .eyebrow,.pack-feature .eyebrow,.social-hero .eyebrow,
.pack-universe .eyebrow,.payment .eyebrow{
  font-family:var(--poppins); font-weight:400; letter-spacing:0;
  font-size:clamp(17px,2.5vw,48px); line-height:1.1; margin:0;
}
.pack-feature .eyebrow--lg,.payment .eyebrow{ font-size:clamp(20px,3.44vw,66px); }
.pack-feature .eyebrow,.pack-universe .eyebrow{ font-size:clamp(15px,1.8vw,34px); }
.pack-feature .eyebrow--lg{ font-size:clamp(16px,2.2vw,42px); }

.svc-hero .btn,.why .btn,.pack-feature .btn,.pack-universe .btn,
.contrata .btn,.prod-band .btn,.hablemos--rosa .btn{
  font-family:var(--poppins); font-size:clamp(13px,1.042vw,20px); padding:1em 4em;
}
.svc-hero .btn--big{ font-size:clamp(15px,1.667vw,32px); padding:.9em 2.1em; }
.why .btn--wide{ padding-inline:clamp(2.4em,7.6vw,7.3em); }
.btn--wine{ background:var(--wine); color:var(--paper); }
.btn--wine:hover{ background:#6a001a; }

/* ---------- hero de Branding ---------- */
.svc-hero{ background:var(--peony); padding:clamp(40px,6vw,116px) var(--pad) clamp(40px,3.6vw,70px); text-align:center; }
.svc-hero__title{ font-size:clamp(38px,5vw,96px); line-height:.78; letter-spacing:-.03em; margin:.08em 0 0; }
.svc-hero__sub{
  margin:1.5em auto 0; color:var(--burgundy);
  font-size:clamp(15px,1.25vw,24px); line-height:1.2;
}
.svc-hero .btn{ margin-top:clamp(20px,2.1vw,40px); }

/* ---------- "¿Por qué tu marca necesita branding?" ---------- */
.why{
  position:relative; overflow:hidden;
  padding:clamp(40px,4.7vw,90px) 6.25vw clamp(48px,5.2vw,100px);
  text-align:center; color:var(--paper);
  background:#2c3a24 var(--fondo, url("img/branding-grass.jpg")) center/cover no-repeat;
}
.why::before{ content:""; position:absolute; inset:0; background:rgba(20,28,16,.12); }
.why > *{ position:relative; z-index:1; }
.why__title{ color:var(--paper); font-size:clamp(28px,3.7vw,70px); line-height:1; letter-spacing:-.03em; margin:0 auto; }
.why__title em{ color:inherit; }
.why__cards{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.9vw;
  max-width:1320px; margin:clamp(24px,4.2vw,80px) auto 0; text-align:center;
}
.why__card{
  background:var(--paper); border-radius:clamp(18px,2.1vw,40px);
  padding:clamp(20px,2.2vw,42px) clamp(18px,2vw,38px) clamp(22px,2.4vw,46px);
}
.why__card h3{
  font-family:var(--poppins); font-weight:400; color:var(--burgundy);
  font-size:clamp(18px,1.75vw,33px); line-height:1.05; letter-spacing:-.04em; margin:0 0 .6em; min-height:3.15em;
}
.why__card p{ color:var(--ink-dark); font-size:clamp(14px,1.04vw,20px); line-height:1.2; margin:0; text-align:justify; text-align-last:center; hyphens:none; }
.why__card p b{ font-weight:500; }
.why__closing{
  max-width:26em; margin:clamp(22px,1.6vw,32px) auto 0;
  font-family:var(--poppins); font-weight:700; font-size:clamp(15px,1.3vw,25px); line-height:1.25;
}
.why .btn{ margin-top:clamp(18px,3.65vw,70px); }

/* ---------- packs (Branding: THE CORE / OBJECT / VOICE / SPACE; Redes: PLAN Base / Crecimiento) ---------- */
.pack-feature{ background:var(--cream); padding:clamp(44px,3.3vw,64px) 7.3vw clamp(44px,4vw,78px); }
.pack-feature--paper{ background:var(--paper); }
.pack-feature--peony{ background:var(--peony); }
.pack-feature__row{ display:grid; grid-template-columns:1fr 1fr; column-gap:6vw; align-items:center; }
.pack-feature__row + .pack-feature__row{ margin-top:clamp(56px,8vw,154px); }
.pack-feature__row--voice{ margin-top:clamp(56px,11.3vw,218px) !important; }
.pack-feature__row--voice + .pack-feature__row{ margin-top:2vw; }
.pack-feature__row--reverse .pack-feature__text{ order:2; text-align:right; }
.pack-feature__row--reverse .pack-feature__media{ order:1; }

.pack-feature__title{
  font-family:var(--serif); font-weight:400; color:var(--dusty-rose);
  font-size:clamp(40px,5.6vw,108px); line-height:.92; letter-spacing:-.04em; margin:0; white-space:nowrap;
}
.pack-feature__title--wine{ color:var(--wine); }
.pack-feature__title--one{ font-size:clamp(36px,5vw,96px); }
.pack-feature__title--sm{ font-size:clamp(32px,3.9vw,75px); line-height:.74; margin-bottom:.55em; }
.pack-feature__title sup{
  font-family:var(--poppins); font-size:.36em; letter-spacing:0;
  vertical-align:top; position:relative; top:-.1em; margin-left:.08em;
}
.pack-feature__time{
  font-family:var(--poppins); font-size:clamp(16px,1.8vw,34px); line-height:1.1;
  color:var(--burgundy); margin:.12em 0 .35em;
}
.pack-feature__desc{ color:var(--ink-dark); font-size:clamp(15px,1.35vw,26px); line-height:1.2; margin:0 0 .8em; max-width:17.4em; }
.pack-feature__row--core .pack-feature__desc{ max-width:16.6em; }
.pack-feature__row--space .pack-feature__desc{ max-width:18.3em; }
.pack-feature__text{ position:relative; z-index:1; }
.pack-feature__row--reverse .pack-feature__desc{ margin-left:auto; }
.pack-feature__desc b{ font-weight:700; }

.pack-feature__media{ position:relative; margin:0; }
.pack-feature__media > img:first-child{ width:100%; height:auto; }

/* THE CORE: collage con las piezas en las mismas posiciones que el PDF */
.pack-feature__row--core{ grid-template-columns:31.2vw 1fr; align-items:center; }
.pack-feature__collage{ position:relative; width:41.6vw; aspect-ratio:798/724; justify-self:end; }
.pack-feature__collage img{ position:absolute; }
.pf-cards{ left:44.1%; top:0; width:47.9%; }
.pf-aflore{ left:5.5%; top:36.7%; width:45.9%; z-index:1; }
.pf-star{ left:0; top:29.8%; width:14%; z-index:2; }
.pf-folders{ left:78.9%; top:58.8%; width:21.1%; z-index:2; }

/* THE OBJECT */
.pack-feature__row--object{ grid-template-columns:37.5vw 1fr; align-items:center; }
.pack-feature__row--object .pack-feature__media{ width:31.8vw; justify-self:end; }
.pf-pin{ position:absolute; left:88%; top:-8%; width:25%; z-index:1; }

/* THE VOICE: la foto sale hasta el borde derecho de la pantalla */
.pack-feature__row--voice{ grid-template-columns:32.6vw 1fr; column-gap:1.77vw; }
.pack-feature__row--voice .pack-feature__media{ width:58.3vw; justify-self:start; margin-right:-7.3vw; }

/* THE SPACE */
.pack-feature__row--space{ grid-template-columns:36.7vw 1fr; }

/* Redes: PLAN Base (texto a la izquierda aunque la foto vaya primero) y PLAN Crecimiento */
.pack-feature--redes{ padding-block:clamp(44px,5.5vw,106px); }
.pack-feature--redes .pack-feature__row + .pack-feature__row{ margin-top:clamp(56px,5.8vw,112px); }
.pack-feature--redes .pack-feature__desc{ font-size:clamp(15px,1.3vw,25px); }
.pack-feature__row--base{ grid-template-columns:35vw 1fr; column-gap:8vw; }
.pack-feature__row--base .pack-feature__text{ text-align:left; }
.pack-feature__row--base .pack-feature__media{ width:31.8vw; justify-self:end; }
.pack-feature__row--base .pack-feature__desc{ max-width:23.5em; margin-left:0; }
.pack-feature__row--crec{ grid-template-columns:1fr 30.2vw; }
.pack-feature__row--crec .pack-feature__text{ padding-left:3.4vw; }
.pack-feature__row--crec .pack-feature__desc{ max-width:21em; }

/* THE UNIVERSE (pack completo, en banda) */
.pack-universe{ background:var(--wine); padding:clamp(48px,6vw,110px) var(--pad); }
.pack-universe__inner{ max-width:1000px; margin:0 auto; text-align:center; }
.pack-universe__sparkle{ width:clamp(48px,5vw,96px); height:auto; margin:0 auto .6em; }
.pack-universe .eyebrow{ color:var(--peony); }
.pack-universe__title{
  font-family:var(--serif); font-weight:400; color:var(--pistachio);
  font-size:clamp(40px,5.6vw,108px); line-height:.92; letter-spacing:-.04em; margin:.05em 0 0;
}
.pack-universe__time{ font-family:var(--poppins); font-size:clamp(16px,1.8vw,34px); line-height:1.1; color:var(--peony); margin:.12em 0 .4em; }
.pack-universe__desc{ color:var(--paper); font-size:clamp(15px,1.35vw,26px); line-height:1.2; margin:0 auto .9em; max-width:24em; }

/* ---------- hero de Redes Sociales ---------- */
.social-hero{
  position:relative; z-index:2; background:var(--paper); overflow-x:clip;
  padding:clamp(36px,3.1vw,60px) 10.2vw clamp(56px,4.7vw,90px) 12.5vw;
}
.social-hero__row{ display:grid; grid-template-columns:1fr 29.5vw; align-items:center; }
.social-hero__title-wrap{ position:relative; width:fit-content; }
.social-hero__title{ font-size:clamp(40px,7vw,134px); line-height:.76; letter-spacing:-.045em; margin:.12em 0 0; }
.social-hero__heart{ position:absolute; width:16%; left:-14%; top:80%; }
.social-hero__star{ position:absolute; width:17.5%; left:94%; top:-26%; }
.social-hero__desc{ margin:.35em 0 0; color:var(--ink-dark); font-size:clamp(15px,1.25vw,24px); line-height:1.2; max-width:22.4em; }
.social-hero__body p{ color:var(--ink-dark); font-size:clamp(15px,1.25vw,24px); line-height:1.2; margin:0 0 1.2em; }
.social-hero__body p:last-child{ margin-bottom:0; }
.social-hero__body b{ font-weight:700; }
.social-hero__phone{
  position:absolute; right:8.3vw; bottom:-1vw; width:6.6vw; z-index:3;
  --rot:-12deg;
}

/* ---------- Contratá a tu diseñadora (mitad foto de rosa, mitad texto) ---------- */
.contrata{ display:grid; grid-template-columns:56.15vw 1fr; background:var(--paper); }
.contrata__media{
  display:grid; place-items:center; padding:clamp(40px,4.8vw,92px) 0 clamp(40px,3.1vw,60px);
  background:url("img/redes-rosa-bg.jpg") center/cover no-repeat;
}
.contrata__grid{ width:33.9vw; height:auto; }
.contrata__text{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:clamp(44px,4vw,80px) 3vw;
}
@media (min-width:981px){ .contrata__text{ justify-content:flex-end; padding-bottom:1vw; } }
.contrata__text .contrata__kicker{ font-family:var(--poppins); font-size:clamp(16px,1.875vw,36px); line-height:1.1; color:var(--burgundy); margin:0 0 .9em; max-width:none; }
.contrata__title{
  font-family:var(--serif); font-weight:400; color:var(--wine);
  font-size:clamp(34px,5vw,96px); line-height:.78; letter-spacing:-.06em; margin:0 0 .5em;
}
.contrata__text p{ color:var(--ink-dark); font-size:clamp(15px,1.25vw,24px); line-height:1.2; margin:0 0 1.2em; max-width:18.6em; }
.contrata__text .btn{ margin-top:.2em; }

/* ---------- Producciones (banda bordó con cámara y laptop) ---------- */
.prod-band{
  position:relative; background:var(--wine); overflow:hidden;
  padding:clamp(48px,10.4vw,200px) var(--pad) clamp(48px,7.2vw,140px); text-align:center;
}
.prod-band__camera{ position:absolute; left:10.6vw; top:5.6vw; width:16.1vw; --rot:60deg; }
.prod-band__laptop{ position:absolute; left:67vw; top:12.6vw; width:27.8vw; }
.prod-band__body{ position:relative; z-index:1; margin:0 auto; }
.prod-band__title{
  font-family:var(--serif); font-weight:400; color:var(--paper);
  font-size:clamp(38px,5vw,96px); line-height:1; letter-spacing:-.04em; margin:0 0 .35em;
}
.prod-band__body p{ color:var(--paper); font-size:clamp(15px,1.25vw,24px); line-height:1.2; margin:0 auto 1.2em; max-width:27em; }
.prod-band__body .btn{ margin-top:.4em; }

.cta-band{ background:var(--peony); padding:clamp(30px,3.4vw,54px) var(--pad); text-align:center; }
.cta-band .display{ font-size:clamp(28px,3.6vw,58px); margin-bottom:.6em; }

/* galería / portafolio */
.gallery-page{ background:var(--cream); padding:clamp(28px,3.2vw,52px) var(--pad); }
.gallery{
  display:grid; gap:clamp(10px,1.4vw,20px);
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  max-width:1320px; margin:0 auto;
}
.gallery__item{ margin:0; border-radius:16px; overflow:hidden; background:var(--cream-light); cursor:zoom-in; }
.gallery__item:focus-visible{ outline:3px solid var(--fuchsia); outline-offset:3px; }
.gallery__item img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .5s ease; }
.gallery__item:hover img{ transform:scale(1.05); }
.gallery__item figcaption{
  padding:14px 18px 18px;
  font-family:var(--serif); font-size:21px; color:var(--burgundy); line-height:1.2;
}
.gallery__item figcaption span{
  display:block; margin-top:.25em;
  font-family:var(--sans); font-size:12.5px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--fuchsia);
}
/* descripción corta del proyecto en la tarjeta (completa en el visor) */
.gallery__desc{
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden;
  margin-top:.6em; font-family:var(--sans); font-size:14px; line-height:1.4; color:var(--body);
}
.gallery__note{ text-align:center; font-size:14px; margin-top:2em; color:var(--burgundy); }

.tags{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:0 0 clamp(22px,2.6vw,38px); }
.tag{
  padding:.5em 1.1em; border-radius:999px; font-size:13.5px;
  background:var(--peony); color:var(--burgundy);
}

/* sobre mí / contacto interior */
.about{ background:var(--cream); padding:clamp(30px,3.4vw,56px) var(--pad); }
.about__body{
  max-width:1280px; margin:0 auto;
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:clamp(28px,4.4vw,70px); align-items:center;
}

.contact{ background:var(--cream); padding:clamp(30px,3.4vw,56px) var(--pad); }
.contact__grid{ max-width:1080px; margin:0 auto; display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,64px); }
.contact__title{ font-family:var(--serif); font-size:clamp(28px,3.4vw,52px); color:var(--burgundy); margin:0 0 .5em; }
.contact__text{ color:var(--burgundy); }
.contact__or{ font-size:14px; margin-top:1em; }
.contact__stamp{ display:grid; place-items:center; }
.contact__stamp-core img{ width:clamp(120px,14vw,210px); }

.steps--light li{ color:var(--peony); }

/* podcast / player */
.podcast{ background:var(--brown); color:var(--cream-light); padding:clamp(30px,3.4vw,56px) var(--pad); }
.podcast__inner{ max-width:900px; margin:0 auto; text-align:center; }
.podcast__title{ font-family:var(--serif); font-size:clamp(28px,3.6vw,56px); margin:0 0 .6em; color:var(--pistachio); }
.player{ display:flex; align-items:center; gap:16px; background:rgba(255,255,255,.08); border-radius:18px; padding:16px; text-align:left; }
.player__cover{ width:70px; height:70px; border-radius:12px; object-fit:cover; }
.player__info{ flex:1; min-width:0; }
.player__label{ font-size:12px; letter-spacing:.1em; opacity:.7; margin:0; }
.player__name{ margin:.2em 0 .5em; font-size:17px; }
.player__bar{ height:4px; border-radius:4px; background:rgba(255,255,255,.25); }
.player__play{ width:46px; height:46px; border-radius:999px; border:0; background:var(--pistachio); color:var(--brown); cursor:pointer; font-size:18px; }
.player__time{ font-size:13px; opacity:.7; }

/* ---------- Medios de pago (Branding y Redes) ---------- */
.payment{ background:var(--peony); padding:clamp(44px,5.2vw,100px) var(--pad) clamp(8px,1.2vw,24px); }
.payment__inner{ margin:0 auto; text-align:center; }
.payment__title{
  font-family:var(--serif); font-weight:400; color:var(--burgundy);
  font-size:clamp(40px,6.875vw,132px); line-height:.85; letter-spacing:-.045em; margin:.02em 0 .3em;
}
.payment__cols{
  display:grid; grid-template-columns:26.7vw 1fr; column-gap:7.6vw; align-items:center;
  width:53vw; margin:0 auto; text-align:left;
}
.payment__desc,.payment__list li{ color:var(--ink-dark); font-size:clamp(15px,1.72vw,33px); line-height:1.2; }
.payment__desc{ margin:0; }
.payment__list{ list-style:none; margin:0; padding:0; }
.payment__list li{ padding-left:.7em; position:relative; white-space:nowrap; }
.payment__list li::before{ content:"•"; position:absolute; left:0; }

/* ---------- "Hablemos!" rosa (Branding y Redes, como sus PDF) ---------- */
.hablemos--rosa{ background:var(--peony); color:var(--ink-dark); padding:clamp(12px,.8vw,16px) var(--pad) clamp(52px,4.4vw,85px); }
.hablemos__badge--ly{ width:clamp(96px,10.5vw,200px); }
.hablemos__badge--ly .hablemos__badge-ring{ animation-duration:9s; }
/* logo "byluly" centrado dentro del círculo de texto */
.hablemos__badge--ly .hablemos__badge-logo{
  left:50%; top:50%; width:64%; height:auto; transform:translate(-50%,-50%);
  animation:ly-wiggle 3.2s ease-in-out infinite;
}
@keyframes ly-wiggle{
  0%,100%{ rotate:-5deg; scale:1; }
  50%{ rotate:5deg; scale:1.07; }
}
.hablemos__title--serif{
  font-family:var(--serif); color:var(--burgundy);
  font-size:clamp(64px,11.25vw,216px); line-height:.9; letter-spacing:-.035em; margin:.02em 0 .15em;
}
.hablemos--rosa .stagger{ display:flex; flex-direction:column; align-items:center; width:fit-content; max-width:100%; margin:0 auto; }
.hablemos__lead--rosa{ font-size:clamp(15px,1.406vw,27px); line-height:1.2; margin:0 0 2.3em; max-width:none; }
.pasos--rosa{ align-self:flex-start; margin:0 0 3.3em .25em; gap:1.2em; text-align:left; }
.pasos--rosa li{ font-size:clamp(14px,1.406vw,27px); line-height:1.2; gap:.55em; align-items:center; }
.pasos--rosa span{
  width:1.78em; height:1.78em; font-size:1em;
  background:var(--wine); color:var(--pistachio); font-family:var(--serif); font-weight:400;
}
.hablemos--rosa .btn--xl{
  font-weight:700; font-size:clamp(17px,2.24vw,43px); padding:.9em 3.3em; letter-spacing:0;
}

/* popup del recurso gratis */
.lightbox{
  position:fixed; inset:0; z-index:90; display:flex; align-items:center; justify-content:center;
  background:rgba(84,3,20,.6);
  padding:20px; overflow:auto; opacity:0; visibility:hidden; transition:opacity .3s ease;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox__frame{
  position:relative; flex:0 1 580px; min-width:0; width:100%; max-width:580px;
  background:var(--peony) url('img/popup-stars-bg.svg') repeat; background-size:110px 110px;
  border-radius:34px; padding:clamp(28px,5.6vw,46px);
  box-shadow:0 24px 60px rgba(84,3,20,.35);
  transform:scale(.92) translateY(10px); transition:transform .3s ease;
}
.lightbox.is-open .lightbox__frame{ transform:none; }
.lightbox__box{
  position:relative; background:var(--cream-light); border-radius:22px;
  padding:clamp(46px,7vw,54px) clamp(22px,3.6vw,38px) clamp(26px,4vw,44px);
  max-height:82vh; overflow:auto;
  text-align:center;
}
.lightbox__close{
  position:absolute; top:14px; right:20px; background:none; border:0;
  font-size:30px; line-height:1; cursor:pointer; color:var(--burgundy);
}
.lightbox__title{
  font-family:var(--serif); font-weight:400; color:var(--burgundy);
  font-size:clamp(26px,3.4vw,42px); line-height:1.12; margin:0 auto .5em;
}
.lightbox__sub{ font-size:15px; color:var(--body); line-height:1.5; margin:0 auto 1.7em; max-width:40ch; }
.lightbox__form{ display:flex; flex-direction:column; align-items:center; gap:14px; }
.lightbox__row{ display:flex; align-items:center; gap:16px; width:100%; max-width:360px; }
.lightbox__row span{ flex:0 0 78px; text-align:left; font-weight:700; color:var(--burgundy); font-size:15px; }
.lightbox__row input, .lightbox__row select{
  flex:1 1 auto; min-width:0; padding:.85em 1.2em; border-radius:999px; border:0;
  background:var(--peony); font:inherit; font-size:15px; color:var(--burgundy);
  appearance:none; -webkit-appearance:none;
}
.lightbox__row select{
  cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23770523'%3E%3Cpath d='M5.5 7.5l4.5 4.5 4.5-4.5' stroke='%23770523' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1.1em center; background-size:16px;
  padding-right:2.6em;
}
.lightbox__submit{ align-self:center; margin-top:4px; border:0; cursor:pointer; font:inherit; }

/* modal "qué incluye" de cada pack (Branding) */
.pack-modal{
  position:fixed; inset:0; z-index:95; display:flex; align-items:center; justify-content:center;
  background:rgba(84,3,20,.6); padding:16px; overflow:auto;
  opacity:0; visibility:hidden; transition:opacity .3s ease;
}
.pack-modal.is-open{ opacity:1; visibility:visible; }
.pack-modal__box{
  position:relative; width:100%; max-width:1180px; max-height:94vh; overflow:auto;
  background:var(--cream); border-radius:26px; box-shadow:0 24px 60px rgba(84,3,20,.35);
  transform:scale(.94) translateY(10px); transition:transform .3s ease;
  font-size:14.5px;
}
.pack-modal.is-open .pack-modal__box{ transform:none; }
.pack-modal__close{
  position:absolute; top:10px; right:14px; z-index:2; background:none; border:0;
  font-size:26px; line-height:1; cursor:pointer; color:var(--burgundy);
}
.pack-modal__cols{ display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.pack-modal__left{ padding:clamp(18px,2.4vw,32px) clamp(20px,2.8vw,38px); background:var(--cream); border-radius:26px 0 0 26px; }
.pack-modal__right{ padding:clamp(18px,2.4vw,32px) clamp(20px,2.8vw,38px); background:var(--peony); border-radius:0 26px 26px 0; }
.pack-modal__left h3{
  font-family:var(--serif); font-weight:400; color:var(--burgundy);
  font-size:clamp(24px,2.8vw,34px); margin:.1em 0 .05em; line-height:1.02;
}
.pack-modal__duration{ font-size:14px; color:var(--burgundy); opacity:.85; margin:0 0 .5em; }
.pack-modal__left h4{ font-size:15px; color:var(--burgundy); margin:.8em 0 .3em; }
.pack-modal__left ul{ margin:0 0 .3em; padding-left:1.1em; color:var(--body); line-height:1.35; }
.pack-modal__left ul li{ margin-bottom:.15em; }
.pack-modal__extra{ color:var(--body); margin:.35em 0 0; line-height:1.35; }
.pack-modal__tier{ margin-bottom:.22em; padding-bottom:.22em; border-bottom:1px solid rgba(119,5,35,.14); }
.pack-modal__tier:last-child{ border-bottom:0; margin-bottom:0; padding-bottom:0; }
.pack-modal__tier h4{ font-family:var(--serif); font-size:18px; font-weight:400; color:var(--burgundy); margin:0 0 .08em; }
.pack-modal__audience{ font-weight:700; color:var(--burgundy); margin:0 0 .12em; }
.pack-modal__tier-price{ font-family:var(--serif); font-size:16px; color:var(--burgundy); margin:.15em 0 0; }
.pack-modal__proceso{
  font-family:var(--serif); font-weight:400; color:var(--burgundy);
  font-size:clamp(19px,2vw,24px); margin:0 0 .4em;
}
.pack-modal__week{ margin-bottom:.7em; }
.pack-modal__week h5{ font-size:13.5px; letter-spacing:.03em; color:var(--burgundy); margin:0 0 .12em; }
.pack-modal__week ul{ margin:0; padding-left:1.1em; color:var(--body); line-height:1.35; }
.pack-modal__week ul li{ margin-bottom:.05em; }
.pack-modal__call{ font-style:italic; color:var(--burgundy); font-size:12.5px; margin:.08em 0 0; }
.pack-modal__total{ font-family:var(--serif); font-size:clamp(18px,1.9vw,22px); color:var(--burgundy); margin:.4em 0 .5em; }
.pack-modal__cta{
  width:100%; margin-top:.3em; box-shadow:0 10px 22px rgba(84,3,20,.28);
  font-weight:700; letter-spacing:.02em;
}

/* lo que entra deslizándose desde los costados no tiene que generar scroll horizontal */
main,.hablemos{ overflow-x:clip; }

/* animación de entrada: .reveal aparece sola; .stagger hace aparecer sus hijos uno detrás de otro */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .9s cubic-bezier(.2,.7,.2,1); }
.reveal--left{ transform:translateX(-60px); }
.reveal--right{ transform:translateX(60px); }
.reveal--zoom{ transform:scale(.9); }
.reveal.is-in{ opacity:1; transform:none; }
.stagger > *{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.stagger.is-in > *{ opacity:1; transform:none; }
.stagger.is-in > :nth-child(2){ transition-delay:.12s; }
.stagger.is-in > :nth-child(3){ transition-delay:.24s; }
.stagger.is-in > :nth-child(4){ transition-delay:.36s; }
.stagger.is-in > :nth-child(5){ transition-delay:.48s; }
.stagger.is-in > :nth-child(n+6){ transition-delay:.6s; }

/* movimiento suave de los stickers (corazón, estrellas, celular, cámara, pin...) */
.float{ animation:floaty 5s ease-in-out infinite; }
.float-tilt{ animation:floaty-tilt 6s ease-in-out infinite; }
.spin-slow{ animation:spin-slow 24s linear infinite; }
.sway{ transform-origin:50% 0; animation:sway 4.5s ease-in-out infinite; }
.twinkle{ animation:twinkle 3.2s ease-in-out infinite; }
@keyframes floaty{ 0%,100%{ translate:0 0; } 50%{ translate:0 -12px; } }
@keyframes floaty-tilt{
  0%,100%{ translate:0 0; rotate:0deg; }
  50%{ translate:0 -10px; rotate:4deg; }
}
@keyframes spin-slow{ to{ rotate:360deg; } }
@keyframes sway{ 0%,100%{ rotate:-5deg; } 50%{ rotate:5deg; } }
@keyframes twinkle{ 0%,100%{ opacity:1; scale:1; } 50%{ opacity:.55; scale:.88; } }

/* los botones se levantan un poquito al pasar el mouse */
.svc-hero .btn,.why .btn,.pack-feature .btn,.pack-universe .btn,.contrata .btn,.prod-band .btn,.hablemos--rosa .btn{
  transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease;
}
.svc-hero .btn:hover,.why .btn:hover,.pack-feature .btn:hover,.pack-universe .btn:hover,
.contrata .btn:hover,.prod-band .btn:hover,.hablemos--rosa .btn:hover{
  transform:translateY(-3px); box-shadow:0 10px 22px rgba(84,3,20,.2);
}
.why__card{ transition:transform .35s ease; }
.why__card:hover{ transform:translateY(-6px); }

@media (prefers-reduced-motion:reduce){
  .reveal,.stagger > *{ opacity:1; transform:none; transition:none; }
  html{ scroll-behavior:auto; }
  .tira__track,.hero__star,.testimonios__corazon,.hablemos__badge-ring,.hablemos__badge-logo,
  .float,.float-tilt,.spin-slow,.sway,.twinkle{ animation:none; }
}

/* ---------- parallax: los stickers se mueven a otra velocidad al bajar ----------
   script.js escribe --py; las animaciones usan translate/rotate/scale sueltos,
   así que se suman a esto sin pisarse. --rot es la inclinación fija de cada sticker */
[data-speed],.float-tilt{ transform:translateY(var(--py,0px)) rotate(var(--rot,0deg)); }

/* ---------- transición entre páginas: un velo crema que se desvanece ---------- */
body::after{
  content:""; position:fixed; inset:0; z-index:9999; pointer-events:none;
  background:var(--cream-light);
  animation:veil-out .55s ease .05s both;
}
body.is-leaving::after{ animation:veil-in .28s ease both; }
@keyframes veil-out{ from{ opacity:1; } to{ opacity:0; } }
@keyframes veil-in{ from{ opacity:0; } to{ opacity:1; } }

/* ---------- cinta "BRANDING ✦ SOCIAL MEDIA ✦ ..." ---------- */
.cinta{ position:relative; z-index:1; overflow:hidden; background:var(--wine); color:var(--peony); padding:clamp(12px,1.1vw,20px) 0; }
.cinta__track{ display:flex; width:max-content; animation:cinta 40s linear infinite; }
.cinta:hover .cinta__track{ animation-play-state:paused; }
.cinta__half{ display:flex; align-items:center; flex-shrink:0; }
.cinta span{
  font-family:var(--serif); font-size:clamp(22px,2.6vw,50px); line-height:1;
  letter-spacing:-.01em; white-space:nowrap; padding:0 .55em;
}
.cinta i{ font-style:normal; color:var(--pistachio); font-size:clamp(15px,1.6vw,30px); line-height:1; }
@keyframes cinta{ to{ transform:translateX(-50%); } }

/* ---------- visor de fotos del portafolio ---------- */
.visor{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center;
  background:rgba(42,3,14,.92); padding:70px 90px;
  opacity:0; transition:opacity .3s ease;
}
.visor.is-open{ opacity:1; }
.visor__fig{ margin:0; display:flex; flex-direction:column; align-items:center; max-width:1100px; }
.visor__img{
  display:block; max-width:100%; max-height:calc(100vh - 330px); width:auto; height:auto;
  border-radius:14px; box-shadow:0 24px 60px rgba(0,0,0,.4);
  transition:opacity .22s ease, transform .35s cubic-bezier(.2,.7,.2,1);
}
.visor.is-open .visor__img{ animation:visor-in .45s cubic-bezier(.2,.7,.2,1); }
.visor__img.is-swapping{ opacity:0; transform:scale(.96); }
@keyframes visor-in{ from{ transform:scale(.92); opacity:0; } }
.visor__cap{ margin-top:16px; text-align:center; color:var(--cream-light); font-family:var(--serif); font-size:clamp(22px,2vw,32px); line-height:1.1; }
.visor__cap span{ display:block; margin-top:4px; font-family:var(--sans); font-size:14px; letter-spacing:.08em; text-transform:uppercase; color:var(--peony); }
.visor__btn,.visor__close{
  position:absolute; display:grid; place-items:center;
  border:0; border-radius:50%; background:var(--cream-light); color:var(--burgundy);
  cursor:pointer; line-height:1; transition:transform .2s ease, background-color .2s ease;
}
.visor__btn{ top:50%; width:56px; height:56px; margin-top:-28px; font-size:34px; padding-bottom:4px; }
.visor__btn--prev{ left:24px; }
.visor__btn--next{ right:24px; }
.visor__close{ top:20px; right:20px; width:46px; height:46px; font-size:30px; }
.visor__btn:hover,.visor__close:hover{ background:var(--peony); transform:scale(1.08); }
.visor__count{ position:absolute; left:0; right:0; bottom:18px; margin:0; text-align:center; color:var(--cream-light); opacity:.7; font-size:14px; letter-spacing:.1em; }
@media (max-width:700px){
  .visor{ padding:70px 14px 110px; }
  .visor__img{ max-height:calc(100vh - 380px); }
  .visor__btn{ top:auto; bottom:50px; margin-top:0; width:48px; height:48px; font-size:28px; }
  .visor__btn--prev{ left:calc(50% - 70px); }
  .visor__btn--next{ right:calc(50% - 70px); }
  .visor__count{ bottom:18px; }
}

@media (prefers-reduced-motion:reduce){
  .cinta__track,.visor.is-open .visor__img{ animation:none; }
  body::after{ animation-duration:.01s; }
}

/* ---------- visor: descripción y miniaturas de cada proyecto ---------- */
.visor__desc{
  max-width:640px; margin:10px auto 0; text-align:center;
  color:var(--cream-light); opacity:.92; font-size:15px; line-height:1.45;
}
.visor__thumbs{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin-top:14px; }
.visor__thumbs:empty{ display:none; }
.visor__thumb{
  width:54px; height:54px; padding:0; border-radius:10px; cursor:pointer;
  background:center/cover no-repeat; border:2px solid transparent; opacity:.6;
  transition:opacity .2s ease, border-color .2s ease, transform .2s ease;
}
.visor__thumb:hover{ opacity:1; transform:translateY(-2px); }
.visor__thumb.is-active{ opacity:1; border-color:var(--pistachio); }
@media (max-width:700px){
  .visor__desc{ font-size:13.5px; }
  .visor__thumb{ width:44px; height:44px; }
}

/* ---------- cursor: la estrella rosa bordada de la home (más grande sobre lo que se puede tocar), solo con mouse ---------- */
@media (hover:hover) and (pointer:fine){
  html,body{
    cursor:url("img/cursor-star.png") 16 16, auto;
    cursor:-webkit-image-set(url("img/cursor-star.png") 1x, url("img/cursor-star@2x.png") 2x) 16 16, auto;
  }
  a,button,[role="button"],label,select,summary,.gallery__item{
    cursor:url("img/cursor-star-hover.png") 20 20, pointer !important;
    cursor:-webkit-image-set(url("img/cursor-star-hover.png") 1x, url("img/cursor-star-hover@2x.png") 2x) 20 20, pointer !important;
  }
  input,textarea{ cursor:text; }
}

/* ---------- pantalla de carga con el logo ----------
   script.js la saca cuando la página terminó de cargar; si no hubiera JS,
   la animación loader-auto la esconde sola a los 3 segundos */
.loader{
  position:fixed; inset:0; z-index:10000;
  display:grid; place-items:center;
  background:var(--cream-light);
  transition:opacity .5s ease, visibility .5s ease;
  animation:loader-auto 0s 3s forwards;
}
.loader.is-done{ opacity:0; visibility:hidden; }
.no-loader .loader{ display:none; }
.loader__logo{ width:clamp(130px,14vw,210px); height:auto; animation:loader-pop .9s cubic-bezier(.2,.7,.2,1) both, loader-beat 1.4s ease-in-out .9s infinite; }
@keyframes loader-pop{ from{ opacity:0; transform:scale(.8) rotate(-4deg); } }
@keyframes loader-beat{ 0%,100%{ scale:1; } 50%{ scale:1.05; } }
@keyframes loader-auto{ to{ opacity:0; visibility:hidden; } }

/* ---------- lluvia de estrellas rosas de bienvenida ---------- */
.lluvia{
  position:fixed; top:-50px; z-index:9400; pointer-events:none; line-height:0;
  height:auto; margin-left:-16px; opacity:0; animation:caer var(--dur) cubic-bezier(.35,.1,.6,1) var(--delay) forwards;
}
@keyframes caer{
  0%{ opacity:0; transform:translate(0,0) rotate(0); }
  8%{ opacity:1; }
  80%{ opacity:1; }
  100%{ opacity:0; transform:translate(var(--sx), calc(100vh + 60px)) rotate(var(--rt)); }
}

/* ---------- números que suben solos (home) ---------- */
.stats{
  display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(16px,3vw,48px);
  background:var(--peony); padding:clamp(40px,5vw,84px) var(--pad);
  text-align:center;
}
.stats__num{
  margin:0; font-family:var(--serif); color:var(--burgundy);
  font-size:clamp(52px,8vw,130px); line-height:.9; letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;
}
.stats__label{ margin:.2em 0 0; font-family:var(--poppins); color:var(--burgundy); font-size:clamp(16px,1.9vw,30px); }
@media (max-width:560px){ .stats{ grid-template-columns:1fr; gap:26px; } }

/* ---------- botón "volver arriba" con forma de corazón ---------- */
.to-top{
  position:fixed; right:22px; bottom:84px; z-index:70;
  width:52px; height:48px; padding:0; border:0; background:none;
  opacity:0; visibility:hidden; transform:translateY(16px) scale(.8);
  transition:opacity .3s ease, transform .35s cubic-bezier(.2,.7,.2,1), visibility .3s;
  filter:drop-shadow(0 6px 12px rgba(84,3,20,.25));
}
.to-top.is-visible{ opacity:1; visibility:visible; transform:none; }
.to-top svg{ display:block; width:100%; height:100%; overflow:visible; }
.to-top__heart{ fill:#fff; stroke:var(--burgundy); stroke-width:2; transition:fill .2s ease; }
.to-top__arrow{ fill:none; stroke:var(--burgundy); stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; }
.to-top:hover .to-top__heart{ fill:var(--peony); }
.to-top:hover svg{ animation:heart-beat .8s ease-in-out infinite; }
@keyframes heart-beat{ 0%,100%{ scale:1; } 30%{ scale:1.12; } 60%{ scale:.97; } }
@media (max-width:560px){ .to-top{ right:18px; bottom:78px; width:46px; height:42px; } }

@media (prefers-reduced-motion:reduce){
  .loader__logo,.to-top:hover svg{ animation:none; }
}

/* ============================================================
   DETALLES "PRO"
   ============================================================ */

/* ---------- textura de papel sobre toda la web (muy sutil) ---------- */
body::before{
  content:""; position:fixed; inset:0; z-index:9000; pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35  0 0 0 0 .12  0 0 0 0 .14  0 0 0 1.1 -.25'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E") repeat; opacity:.11;
}

/* ---------- barra de progreso de lectura, pegada abajo del menú ---------- */
.progress{
  position:absolute; left:0; right:0; bottom:0; height:3px;
  transform-origin:left; transform:scaleX(var(--p,0));
  background:linear-gradient(90deg,var(--dusty-rose),var(--fuchsia));
  pointer-events:none;
}

/* ---------- títulos que aparecen palabra por palabra (o letra por letra) ---------- */
.split .w{ display:inline-block; opacity:0; transform:translateY(.45em) rotate(3deg); filter:blur(4px);
  transition:opacity .6s ease, transform .75s cubic-bezier(.2,.7,.2,1), filter .6s ease;
  transition-delay:calc(var(--i) * 55ms); }
.split.is-split-in .w{ opacity:1; transform:none; filter:none; }

/* ---------- fotos que se descubren con una cortina ---------- */
.pack-feature__media.reveal,.gallery__item.reveal{ --curtain:var(--peony); }
.pack-feature--peony .pack-feature__media.reveal{ --curtain:var(--wine); }
.pack-feature__media.reveal::after,.gallery__item.reveal::after{
  content:""; position:absolute; inset:0; z-index:3; pointer-events:none;
  background:var(--curtain);
  transform-origin:right; transition:transform 1.05s cubic-bezier(.77,0,.18,1) .15s;
}
.gallery__item{ position:relative; }
.pack-feature__media.reveal.is-in::after,.gallery__item.reveal.is-in::after{ transform:scaleX(0); }

/* ---------- fotos que se inclinan en 3D con el mouse ---------- */
.tilt{ transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(var(--ts,1));
  transition:transform .5s cubic-bezier(.2,.7,.2,1); will-change:transform; }
.tilt.is-tilting{ transition-duration:.12s; }
.gallery__item:hover img{ transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(1.05); }
.glare{ position:absolute; inset:0; z-index:2; pointer-events:none; opacity:0; transition:opacity .4s ease;
  background:radial-gradient(circle at var(--gx,50%) var(--gy,50%), rgba(255,255,255,.35), rgba(255,255,255,0) 55%); }
.is-glaring > .glare{ opacity:1; }

/* ---------- botones magnéticos ---------- */
.btn.is-magnetic{ transition:translate .45s cubic-bezier(.2,.7,.2,1), transform .25s ease, background-color .25s ease, box-shadow .25s ease; }
.btn.is-magnetic.is-pulling{ transition-duration:.15s, .25s, .25s, .25s; }
.btn__txt{ display:inline-block; transition:translate .45s cubic-bezier(.2,.7,.2,1); }
.is-pulling .btn__txt{ transition-duration:.15s; }

/* ---------- brillitos al hacer clic ---------- */
.chispa{
  position:fixed; z-index:9500; pointer-events:none; margin:-7px 0 0 -7px;
  width:14px; height:14px; line-height:14px; text-align:center; font-size:14px;
  animation:chispa .75s cubic-bezier(.2,.7,.2,1) forwards;
}
@keyframes chispa{
  0%{ transform:translate(0,0) scale(.4) rotate(0); opacity:1; }
  100%{ transform:translate(var(--dx),var(--dy)) scale(1) rotate(var(--rt)); opacity:0; }
}

/* ---------- filtros del portafolio ---------- */
.filtros{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin:0 auto clamp(26px,3vw,44px); }
.filtros__btn{
  font:inherit; font-family:var(--poppins); font-size:15px; letter-spacing:.02em;
  padding:.65em 1.5em; border-radius:999px; cursor:pointer;
  border:1.5px solid var(--burgundy); background:transparent; color:var(--burgundy);
  transition:background-color .25s ease, color .25s ease, transform .2s ease;
}
.filtros__btn:hover{ transform:translateY(-2px); }
.filtros__btn.is-active{ background:var(--burgundy); color:var(--cream-light); }
.gallery__item.is-filtered{ display:none; }
.gallery__item.is-out{ opacity:0 !important; transform:scale(.9) !important; transition:opacity .2s ease, transform .2s ease !important; }

/* ---------- lista de marcas de la home con foto flotante ---------- */
.marcas{ position:relative; background:var(--cream-light); padding:clamp(56px,7vw,120px) var(--pad); }
.marcas__eyebrow{ text-align:center; color:var(--burgundy); margin:0 0 clamp(20px,2.5vw,40px); font-family:var(--poppins); font-size:clamp(15px,1.4vw,22px); }
.marcas__list{ list-style:none; margin:0 auto; padding:0; max-width:1200px; border-top:1px solid rgba(119,5,35,.25); }
.marcas__list li{ border-bottom:1px solid rgba(119,5,35,.25); }
.marcas__row{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:clamp(14px,1.6vw,26px) 4px; color:var(--burgundy); text-decoration:none;
  transition:padding .35s cubic-bezier(.2,.7,.2,1), color .3s ease;
}
.marcas__name{ font-family:var(--serif); font-size:clamp(34px,5.2vw,86px); line-height:1; letter-spacing:-.035em; transition:color .3s ease; }
.marcas__cat{ font-family:var(--poppins); font-size:clamp(12px,1vw,16px); letter-spacing:.08em; text-transform:uppercase; opacity:.75; text-align:right; }
.marcas__thumb{ display:none; }
.marcas__list:hover .marcas__name{ color:rgba(119,5,35,.28); }
.marcas__list .marcas__row:hover .marcas__name{ color:var(--burgundy); }
.marcas__row:hover{ padding-left:22px; }
.marcas__preview{
  position:fixed; left:0; top:0; z-index:50; pointer-events:none;
  width:clamp(220px,20vw,320px); aspect-ratio:4/5; object-fit:cover; border-radius:14px;
  box-shadow:0 22px 50px rgba(84,3,20,.3);
  opacity:0; scale:.7; rotate:-6deg; transition:opacity .3s ease, scale .4s cubic-bezier(.2,.7,.2,1), rotate .4s ease;
}
.marcas__preview.is-on{ opacity:1; scale:1; rotate:-3deg; }
@media (hover:none),(max-width:860px){
  .marcas__preview{ display:none; }
  /* en celular: foto chiquita a la izquierda, nombre y rubro apilados al lado */
  .marcas__row{ display:grid; grid-template-columns:64px 1fr; column-gap:16px; row-gap:4px; align-items:center; padding:14px 2px; }
  .marcas__thumb{ display:block; grid-column:1; grid-row:1 / 3; width:64px; height:64px; object-fit:cover; border-radius:10px; }
  .marcas__name{ grid-column:2; grid-row:1; font-size:clamp(28px,8.2vw,40px); align-self:end; }
  .marcas__cat{ grid-column:2; grid-row:2; text-align:left; align-self:start; font-size:12px; }
  .marcas__row:hover{ padding-left:2px; }
}
@media (max-width:480px){
  .filtros{ gap:6px; }
  .filtros__btn{ font-size:13px; padding:.5em .75em; }
}

@media (prefers-reduced-motion:reduce){
  .split .w{ opacity:1; transform:none; filter:none; transition:none; }
  .pack-feature__media.reveal::after,.gallery__item.reveal::after{ display:none; }
  .chispa{ display:none; }
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1100px){
  .chat{ max-width:none; }
  .deco--bl1,.deco--bl3{ top:16px; }
}

@media (max-width:980px){
  .redes{ grid-template-columns:1fr; padding:clamp(36px,5vw,64px) var(--pad); gap:30px; }
  .redes__texto{ max-width:none; }
  .redes__visual{ min-height:320px; border-radius:16px; }
  .about__body,.contact__grid,.hablemos__grid{ grid-template-columns:1fr; }
  .hablemos__grid{ gap:36px; }
  .about__body{ text-align:left; }
  .about__hello{ justify-content:flex-start; }
  .form-contacto__row{ grid-template-columns:1fr; gap:14px; }

  /* Branding y Redes en tablet/mobile: todo en una columna, centrado */
  .why{ padding-inline:var(--pad); }
  .why__cards{ grid-template-columns:1fr; max-width:560px; gap:16px; }

  .pack-modal__cols{ grid-template-columns:1fr; }
  .pack-modal__left{ border-radius:28px 28px 0 0; }
  .pack-modal__right{ border-radius:0 0 28px 28px; }
  /* en celular el detalle del pack es largo: el botón y la X quedan siempre a la vista */
  .pack-modal__cta{ position:sticky; bottom:12px; z-index:2; }
  .pack-modal__close{
    position:fixed; top:24px; right:24px; width:38px; height:38px; border-radius:50%;
    background:var(--cream-light); box-shadow:0 4px 12px rgba(84,3,20,.2);
  }

  .payment__cols{ grid-template-columns:1fr; width:auto; text-align:center; gap:20px; }
  .payment__list li{ padding-left:0; }
  .payment__list li::before{ display:none; }

  .pack-feature{ padding-inline:var(--pad); }
  .pack-feature__row,
  .pack-feature__row--core,.pack-feature__row--object,.pack-feature__row--voice,.pack-feature__row--space,
  .pack-feature__row--base,.pack-feature__row--crec{ grid-template-columns:1fr; text-align:center; row-gap:28px; }
  .pack-feature__row + .pack-feature__row,
  .pack-feature__row--voice + .pack-feature__row{ margin-top:64px; }
  .pack-feature__row--reverse .pack-feature__text,
  .pack-feature__row--base .pack-feature__text{ order:2; text-align:center; }
  .pack-feature__row--reverse .pack-feature__media,
  .pack-feature__text + .pack-feature__media,
  .pack-feature__text + .pack-feature__collage{ order:-1; }
  .pack-feature__row--crec .pack-feature__text{ padding-left:0; }
  .pack-feature__desc,.pack-feature__row--base .pack-feature__desc,.pack-feature__row--crec .pack-feature__desc{ margin-left:auto; margin-right:auto; max-width:34em; }
  .pack-feature__title{ white-space:normal; }
  .pack-feature__desc{ max-width:34em; }
  .why__card h3{ min-height:0; }
  .why__card p{ text-align:center; }
  .pack-feature__collage{ width:min(100%,520px); justify-self:center; }
  .pack-feature__row--object .pack-feature__media,
  .pack-feature__row--base .pack-feature__media,
  .pack-feature__row--space .pack-feature__media,
  .pack-feature__row--crec .pack-feature__media{ width:min(86%,420px); justify-self:center; }
  .pack-feature__row--voice .pack-feature__media{ width:100%; margin-right:0; }

  .social-hero{ padding:40px var(--pad) 215px; }
  .social-hero__row{ grid-template-columns:1fr; text-align:center; gap:28px; }
  .social-hero__title-wrap{ margin:0 auto; }
  .social-hero__desc,.social-hero__body p{ margin-left:auto; margin-right:auto; max-width:30em; }
  .social-hero__br{ display:none; }
  .social-hero__heart{ left:-3%; top:66%; width:10%; }
  .social-hero__star{ left:84%; top:44%; width:12%; }
  .social-hero__phone{ right:auto; left:50%; margin-left:-40px; bottom:18px; width:80px; }

  .contrata{ grid-template-columns:1fr; }
  .contrata__grid{ width:min(78%,440px); }
  .contrata__text{ padding:48px var(--pad); }

  .prod-band{ display:flex; flex-direction:column; align-items:center; padding:48px var(--pad); }
  .prod-band__camera,.prod-band__laptop{ position:static; width:44%; max-width:200px; margin:0 0 20px; }
  .prod-band__body{ order:2; }
  .prod-band__camera{ order:1; margin:24px 0 44px; }
  .prod-band__laptop{ order:3; margin:24px 0 0; }

  .pasos--rosa{ align-self:center; }
  .d-only{ display:none; }
}

@media (max-width:860px){
  .burger{ display:block; }
  .socials--header{ display:none; }
  .nav{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch; gap:0;
    background:var(--cream-light);
    padding:8px var(--pad) 22px;
    box-shadow:0 18px 30px rgba(119,5,35,.14);
    display:none;
  }
  .nav.is-open{ display:flex; }
  .nav__link{ padding:13px 0; font-size:17px; text-align:left; }
  .nav__link::after{ display:none; }
  .nav__group{ position:static; }
  .nav__sub{
    position:static; transform:none; opacity:1; visibility:visible;
    box-shadow:none; background:transparent; padding:0 0 6px 14px;
    min-width:0; display:none;
  }
  .nav__sub.is-open{ display:flex; }
  /* al tocar "Servicios" el botón queda con foco/hover: sin esto se aplica el
     corrimiento del desplegable de escritorio y las opciones quedan fuera de pantalla */
  .nav__group:hover .nav__sub,.nav__group:focus-within .nav__sub{ transform:none; }
  .nav__sublink{ padding:10px 12px; font-size:16px; }

  .hero{ grid-template-columns:1fr; }
  .hero__left{ order:2; padding:34px var(--pad) 42px; }
  .hero__right{ order:1; padding:26px var(--pad) 0; }
  .hero__photo{ width:min(100%,420px); }
  .hero__star{ right:6vw; top:6px; }
  .ht-1,.ht-3{ font-size:clamp(46px,13vw,92px); }
  .ht-2{ font-size:clamp(24px,7vw,46px); }
  .hero__mac{ width:clamp(76px,20vw,120px); }
  .hero__text{ font-size:15px; }

  .deco{ display:none; }
  .bloque{ padding:44px var(--pad) 52px; }
  /* los saltos de línea son del diseño de escritorio: en mobile el texto fluye solo */
  .hero__text br,.bloque__texto br,.proyectos__texto br{ display:none; }

  .chats{ grid-template-columns:1fr; max-width:520px; gap:12px; }
  .chat{ grid-column:1 !important; margin-top:0 !important; justify-self:stretch !important; }

  .tira img{ flex:0 0 46vw; height:34vw; }
}

@media (max-width:560px){
  body{ font-size:16px; }
  .header__inner{ gap:10px; }
  .sticker{ left:-6px; bottom:10px; max-width:78%; }
  .sticker span{ font-size:12px; }
  .wpp-float span{ display:none; }
  .wpp-float{ padding:.85em; }
  .tira img{ flex:0 0 62vw; height:46vw; }
  .footer__nav{ gap:6px 14px; }
  .footer__contact{ gap:8px 16px; padding-right:56px; }
}

/* ---------- menú mobile a pantalla completa ---------- */
@media (max-width:860px){
  .logo,.burger{ position:relative; z-index:2; }
  .nav{
    position:fixed; inset:0; z-index:1; margin:0;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
    background:var(--peony); padding:90px var(--pad) 40px; box-shadow:none;
    opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s;
  }
  .nav.is-open{ opacity:1; visibility:visible; }
  .nav .nav__link{
    font-family:var(--serif); font-size:clamp(38px,11vw,58px); line-height:1.05; letter-spacing:-.03em;
    padding:6px 0; text-align:center;
    opacity:0; transform:translateY(24px); transition:opacity .45s ease, transform .55s cubic-bezier(.2,.7,.2,1);
  }
  .nav.is-open .nav__link{ opacity:1; transform:none; }
  .nav.is-open > :nth-child(1) .nav__link,.nav.is-open > .nav__link:nth-child(1){ transition-delay:.08s; }
  .nav.is-open > :nth-child(2) .nav__link{ transition-delay:.15s; }
  .nav.is-open > .nav__link:nth-child(3){ transition-delay:.22s; }
  .nav.is-open > .nav__link:nth-child(4){ transition-delay:.29s; }
  .nav .nav__link.is-active{ font-style:italic; }
  .nav__group{ display:flex; flex-direction:column; align-items:center; }
  .nav__sub{ padding:0 0 8px; align-items:center; }
  .nav__sublink{ font-family:var(--poppins); font-size:17px; padding:8px 16px; }
  .nav__sublink.is-active{ background:rgba(255,255,255,.55); }
  .menu-open{ overflow:hidden; }
}

/* ============================================================
   IDENTIDAD DE MARCA y REDES SOCIALES: todo un poco más chico
   (pedido de Luly: los tamaños del PDF se veían muy grandes en pantalla)
   ============================================================ */
.svc-hero .eyebrow,.social-hero .eyebrow,.payment .eyebrow{ font-size:clamp(15px,1.8vw,34px); }
.svc-hero__title{ font-size:clamp(34px,3.8vw,72px); }
.svc-hero__sub,.social-hero__desc,.social-hero__body p,.contrata__text p,.prod-band__body p{ font-size:clamp(14px,1.05vw,20px); }
.svc-hero .btn--big{ font-size:clamp(14px,1.25vw,24px); }
.social-hero__title{ font-size:clamp(34px,5.2vw,100px); }
.contrata__text .contrata__kicker{ font-size:clamp(15px,1.4vw,27px); }
.contrata__title,.prod-band__title{ font-size:clamp(30px,3.8vw,72px); }
.payment__title{ font-size:clamp(34px,4.8vw,92px); }
.payment__desc,.payment__list li{ font-size:clamp(14px,1.3vw,25px); }
.hablemos__title--serif{ font-size:clamp(54px,8vw,154px); }
.hablemos__lead--rosa,.pasos--rosa li{ font-size:clamp(14px,1.15vw,22px); }
.hablemos--rosa .btn--xl{ font-size:clamp(16px,1.7vw,32px); }
.cinta span{ font-size:clamp(20px,2vw,38px); }
.cinta i{ font-size:clamp(14px,1.25vw,24px); }

/* ---------- aviso opcional arriba de todo (se prende desde el panel) ---------- */
.aviso{
  background:var(--wine); color:var(--cream-light); text-align:center;
  font-family:var(--poppins); font-size:clamp(12.5px,1vw,15px); letter-spacing:.02em;
  padding:.65em var(--pad); line-height:1.35;
}
.aviso a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }

/* si desde el panel se quita una foto fija, ese lugar se oculta en vez de mostrar una imagen rota */
img[src=""]{ display:none; }
