/* index.css — Solo estilos del body de index.html (Hero + secciones home) */

/* =========================================================
   HERO
========================================================= */

.hero{
  position:relative;
  padding-top:clamp(16px,2.4vw,40px);
  padding-bottom:clamp(40px,6vw,90px);
  overflow:hidden;
}

.hero__grid{
  display:grid;
  grid-template-columns: 1.35fr .65fr;
  align-items: stretch;
  gap:clamp(26px,4vw,54px);
}

.hero__panel,
.hero__media{
  display:flex;
  flex-direction:column;
}

/* Panel izquierdo */
.hero__panel{
  background:transparent;
  border:none;
  box-shadow:none;
  padding:clamp(8px,2vw,16px);
}

/* Click en cualquier parte */
.hero__clickArea{
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:inherit;
}

/* Poner por encima todo lo que se ve/clica */
.hero__nav,
.hero__content,
.hero__actions,
.hero__trust{
  position:relative;
  z-index:2;
}

/* Copy */
.hero__content{
  display:flex;
  flex-direction:column;
  gap:22px;
}

.hero__eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  color:rgba(244,244,244,.78);
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.78rem;
  margin-bottom:14px;
}

.hero__eyebrow::before{
  content:"";
  width:40px;
  height:2px;
  background:rgba(200,202,55,.75);
  border-radius:99px;
}

/* Título marca */
.hero__title{
  font-weight:900;
  line-height:var(--line-tight);
  letter-spacing:-.02em;
}

.hero__title--brand{
  text-transform:uppercase;
  letter-spacing:-0.04em;
  font-size:clamp(4.2rem, 8.5vw, 7.2rem);
  line-height:0.92;
}

/* Slogan */
.hero__subtitle{
  margin-top:14px;
  color:var(--muted);
  max-width:52ch;
  font-weight:500;
}

.hero__subtitle--slogan{
  margin-top:14px;
  max-width:none;
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-weight:650;
  font-size:clamp(1rem, 1.3vw, 1.1rem);
  color:rgba(244,244,244,.72);
}

/* En escritorio, forzar una sola línea (columna de texto ya ensanchada) */
@media (min-width: 901px){
  .hero__subtitle--slogan{
    white-space:nowrap;
  }
}

.hero__lead{
  margin-top:16px;
  max-width:880px;
  color:var(--muted);
  line-height:1.65;
}

.hero__cta{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  margin-top:22px;
}

/* Tiles (accesos tipo app) */
.hero__actions{
  margin-top:18px;
}

.hero__actions--tiles{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:12px;
}

/* Tile (UNIFICADO, sin duplicados) */
.hero-tile{
  display:block;
  padding:14px;
  border-radius:18px;
  cursor:pointer;

  background:rgba(244,244,244,.035);
  border:1px solid rgba(200,202,55,.35);

  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.04),
    0 10px 26px rgba(0,0,0,.30);

  transition:
    transform .18s ease,
    box-shadow .2s ease,
    background .2s ease,
    border-color .2s ease;

  position:relative;
  z-index:3; /* evitar que el overlay robe el click */
}

.hero-tile:hover{
  transform:translateY(-3px);
  background:rgba(200,202,55,.10);
  border-color:rgba(200,202,55,.75);
  box-shadow:
    inset 0 0 0 1px rgba(200,202,55,.35),
    0 0 0 4px rgba(200,202,55,.12),
    0 22px 46px rgba(0,0,0,.45);
}

.hero-tile:focus-visible{
  outline:none;
  box-shadow:
    inset 0 0 0 1px rgba(200,202,55,.45),
    0 0 0 4px rgba(200,202,55,.25),
    0 22px 46px rgba(0,0,0,.45);
}

.hero-tile__kicker{
  display:block;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:.72rem;
  color:rgba(244,244,244,.60);
}

.hero-tile__title{
  display:block;
  margin-top:6px;
  font-weight:900;
  font-size:1.05rem;
  color:rgba(244,244,244,.92);
}

/* Trust pills */
.hero__trust{
  margin-top:18px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.trust-pill{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:999px;
  background:rgba(244,244,244,.04);
  border:1px solid rgba(244,244,244,.10);
}

.trust-pill__dot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:rgba(200,202,55,.9);
  box-shadow:0 0 0 6px rgba(200,202,55,.10);
}

.trust-pill__text{
  font-weight:700;
  font-size:.9rem;
  color:rgba(244,244,244,.84);
}

/* Casos reales */
.hero__cases{
  margin-top:30px;
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}

.hero__casesText{
  font-weight:600;
  font-size:1rem;
  color:rgba(244,244,244,.78);
  line-height:1.4;
}

/* Media (derecha) */
.hero__media{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  background:linear-gradient(180deg, rgba(200,202,55,.10), rgba(0,0,0,0));
  border:1px solid rgba(244,244,244,.10);
  box-shadow:var(--shadow);
  min-height:520px;
}

.hero__img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.02);
  filter:saturate(1.02) contrast(1.06);
}

.hero__media::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(60% 60% at 50% 30%, rgba(0,0,0,0) 0%, rgba(0,0,0,.15) 70%),
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.18));
  pointer-events:none;
}

/* Floating cards */
.hero__card{
  position:absolute;
  z-index:2;
  width:min(260px, 78%);
  border-radius:16px;
  padding:14px;
  background:rgba(18,18,18,.78);
  border:1px solid rgba(244,244,244,.12);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(10px);
}

.hero__card--top{ top:16px; left:16px; }
.hero__card--bottom{ bottom:16px; right:16px; }

.hero__cardTitle{
  font-weight:900;
  letter-spacing:.01em;
  margin-bottom:4px;
}

.hero__cardText{
  color:rgba(244,244,244,.72);
  font-weight:600;
  font-size:.95rem;
}

/* Fondo decorativo hero */
.hero__bg{
  position:absolute;
  inset:-120px -120px auto -120px;
  height:520px;
  background:
    radial-gradient(40% 55% at 15% 40%, rgba(200,202,55,.28), rgba(200,202,55,0) 70%),
    radial-gradient(40% 55% at 55% 0%, rgba(200,202,55,.18), rgba(200,202,55,0) 70%),
    radial-gradient(45% 60% at 85% 40%, rgba(200,202,55,.12), rgba(200,202,55,0) 72%);
  filter:blur(18px);
  opacity:.9;
  pointer-events:none;
}


/* =========================================================
   BOTONES (GLOBAL dentro del index)
========================================================= */

.btn{
  cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease;
}

.btn:hover{ transform:translateY(-1px); }

.btn--ghost{
  background:rgba(244,244,244,.06);
  border-color:rgba(244,244,244,.18);
  box-shadow:0 12px 28px rgba(0,0,0,.28);
}

.btn--ghost:hover{
  background:rgba(244,244,244,.09);
  border-color:rgba(200,202,55,.55);
  box-shadow:0 18px 44px rgba(0,0,0,.36);
}

.btn:focus-visible{
  outline:2px solid rgba(200,202,55,.75);
  outline-offset:3px;
}


/* =========================================================
   SERVICIOS
========================================================= */

.section--services{
  --container: 1400px;
  padding-top: 0;
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

/* Header de sección (Servicios, Precios, Cómo trabajamos, FAQ...) */
.section__head{
  max-width: 1040px;              /* controla ancho del bloque */
  margin: 0 auto clamp(2.6rem, 4vw, 3.8rem);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(0.9rem, 1.8vw, 1.4rem);
}

/* TÍTULO REAL */
.section__title{
  font-size: clamp(2.8rem, 5vw, 3.8rem);
  font-weight:900;
  letter-spacing:-0.035em;
  line-height:1.05;
  text-transform:uppercase;
  color:var(--text);
  text-shadow:0 2px 20px rgba(0,0,0,0.55);
  margin:0;
}

/* SUBTÍTULO: frase descriptiva */
.section__sub{
  color:var(--muted);
  margin-top:0.6rem;
}

/* Grid cards (se reajusta sola en pantallas pequeñas, sin markup duplicado) */
.services-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  grid-template-rows: auto auto auto auto; /* top / lead / list / acciones, compartidas vía subgrid */
  gap: clamp(1.6rem, 2vw, 2.2rem);
}

/* Card: usa subgrid para que cada bloque (top/lead/list/acciones)
   quede alineado con el mismo bloque de las demás tarjetas */
.service-card{
  position:relative;
  display:grid;
  grid-template-rows: subgrid;
  grid-row: span 4;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.85rem 1.6rem 1.6rem;
  box-shadow: var(--shadow-soft);
  overflow:hidden;
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.service-card::before{
  content:"";
  position:absolute;
  inset:-2px;
  background: radial-gradient(600px 180px at 20% 0%, rgba(200,202,55,.16), transparent 60%);
  opacity:0.9;
  pointer-events:none;
}

.service-card:hover{
  transform: translateY(-4px);
  border-color: rgba(200,202,55,.30);
  box-shadow: 0 18px 50px rgba(0,0,0,.45);
}

.service-card__top{
  grid-row:1;
  align-self:start;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.75rem;
  margin-bottom:1rem;
  position:relative;
  z-index:1;
}

.service-card__title{
  font-size: clamp(1.3rem, 1.6vw, 1.5rem);
  font-weight:800;
  margin:0;
  letter-spacing:-0.015em;
}

.badge{
  display:inline-flex;
  align-items:center;
  padding:0.35rem 0.65rem;
  border-radius:999px;
  font-size:0.78rem;
  font-weight:800;
  background: rgba(200,202,55,.16);
  border: 1px solid rgba(200,202,55,.28);
  color: var(--text);
  white-space:nowrap;
}

.badge--soft{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.14);
  color: var(--muted);
}

.service-card__lead{
  grid-row:2;
  align-self:start;
  position:relative;
  z-index:1;
  margin:0 0 0.9rem;
  color:var(--muted);
  line-height:1.55;
}

.service-card__list{
  grid-row:3;
  align-self:start;
  position:relative;
  z-index:1;
  list-style:none;
  margin:0 0 1.2rem;
  padding:0;
  color: rgba(244,244,244,.82);
}

.service-card__list li{
  position:relative;
  margin:0.7rem 0;
  padding-left:1.4rem;
  line-height:1.5;
}

.service-card__list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.5rem;
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--accent);
  box-shadow:0 0 0 6px rgba(200,202,55,.10);
}

.service-card__actions{
  grid-row:4;
  align-self:end;
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  gap:0.65rem;
  padding-top: clamp(1.6rem, 2.6vw, 2.2rem);
}

/* Featured */
.service-card--featured{ border-color: rgba(200,202,55,.26); }

.service-card--featured::after{
  content:"";
  position:absolute;
  right:-120px;
  top:-120px;
  width:260px;
  height:260px;
  border-radius:50%;
  background: rgba(200,202,55,.12);
  pointer-events:none;
}

/* =========================================================
   PRECIOS
========================================================= */

.section--pricing{
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

.pricing-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: clamp(1.6rem, 2vw, 2.2rem);
}

.pricing-card{
  position:relative;
  display:flex;
  flex-direction:column;
  background: linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.02));
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.5rem 1.4rem 1.4rem;
  box-shadow: var(--shadow-soft);
  transition: transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.pricing-card:hover{
  transform: translateY(-4px);
  border-color: rgba(200,202,55,.30);
  box-shadow: 0 18px 50px rgba(0,0,0,.45);
}

.pricing-card--featured{
  border-color: rgba(200,202,55,.28);
  background:
    radial-gradient(500px 160px at 10% 0%, rgba(200,202,55,.14), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.02));
}

.pricing-card__title{
  margin:0 0 1.2rem;
  font-size: clamp(1.3rem, 1.6vw, 1.5rem);
  font-weight:800;
  letter-spacing:-0.015em;
  color:var(--text);
}

.pricing-card__list{
  list-style:none;
  margin:0 0 1.4rem;
  padding:0;
  display:grid;
  gap:.6rem;
  flex-grow:1;
}

.pricing-card__list li{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.75rem;
  padding:.7rem .1rem;
  border-bottom:1px solid rgba(244,244,244,.08);
}

.pricing-card__list li:last-child{ border-bottom:0; }

.pricing-card__row--highlight{ align-items:center; }

.pricing-card__period{
  color:var(--muted);
  font-weight:600;
  font-size:.92rem;
}

.pricing-card__price{
  font-size:1.15rem;
  font-weight:800;
  color:var(--text);
}

.pricing-card__priceWrap{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.15rem;
}

.pricing-card__row--highlight .pricing-card__price{
  font-size:1.4rem;
  color:var(--accent);
}

.pricing-card__note{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.03em;
  color:var(--muted-2);
  text-transform:uppercase;
}

.pricing-card > .btn{ align-self:flex-start; }

.pricing-note{
  margin-top: clamp(1.8rem, 3vw, 2.4rem);
  color:var(--muted-2);
  font-size:.88rem;
  line-height:1.6;
  text-align:center;
  max-width:100%;
  margin-inline:auto;
}

/* =========================================================
   CÓMO TRABAJAMOS
========================================================= */

.section--process{
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

.section--process .section__sub{
  max-width: 64ch;
}

.steps-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: clamp(1.2rem, 2vw, 1.8rem);
}

.step-card{
  position:relative;
  display:flex;
  flex-direction:column;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.4rem 1.6rem;
  box-shadow: var(--shadow-soft);
  transition: transform 220ms ease, border-color 220ms ease;
}

.step-card:hover{
  transform: translateY(-4px);
  border-color: rgba(200,202,55,.28);
}

.step-card__icon{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  width:52px;
  height:52px;
  margin:auto auto 0;
  border-radius:16px;
  background: rgba(200,202,55,.12);
  border:1px solid rgba(200,202,55,.28);
  color: var(--accent);
}

.step-card__icon svg{
  width:26px;
  height:26px;
}

.step-card__number{
  display:block;
  text-align:left;
  margin-bottom:.7rem;
  font-size:1.6rem;
  font-weight:900;
  letter-spacing:-0.03em;
  color: var(--accent);
}

.step-card__title{
  margin:0 0 .5rem;
  font-size:1.05rem;
  font-weight:800;
  color:var(--text);
}

.step-card__text{
  margin:0 0 1.3rem;
  color:var(--muted);
  line-height:1.55;
  font-size:.92rem;
}

/* =========================================================
   SP-APP
========================================================= */

.section--spapp{
  position: relative;
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

.section__head--spapp{
  max-width: 780px;
  margin: 0 auto clamp(2.5rem, 4vw, 3.2rem);
  text-align: center;
}

.section__title--spapp{
  font-size: clamp(2.8rem, 5vw, 3.8rem);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--text);
  text-shadow: 0 2px 20px rgba(0,0,0,0.55);
  margin: 0;
}

.section__sub--spapp{
  margin-top: 0.8rem;
  color: var(--muted);
  max-width: 60ch;
  margin-inline: auto;
  line-height: 1.6;
}

.spapp{
  display: grid;
  gap: clamp(1.8rem, 3vw, 2.4rem);
}

/* =========================
   FILA SUPERIOR
========================= */

.spapp__top{
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  align-items: center;
}

.spapp-intro{
  min-width: 0;
}

.spapp-intro__kicker{
  margin: 0 0 .8rem;
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--accent);
}

.spapp-intro__title{
  margin: 0 0 1rem;
  font-size: clamp(1.7rem, 2.5vw, 2.5rem);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--text);
  max-width: 16ch;
}

.spapp-intro__text{
  margin: 0 0 1.2rem;
  color: var(--muted);
  line-height: 1.7;
  max-width: 58ch;
}

.spapp-intro__list{
  display: grid;
  gap: .8rem;
  margin: 0 0 1.6rem;
  padding: 0;
}

.spapp-intro__list li{
  position: relative;
  padding-left: 1.5rem;
  color: var(--text);
  line-height: 1.55;
}

.spapp-intro__list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: .58rem;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 0 0 6px rgba(200,202,55,.10);
}

.spapp-visual{
  display: flex;
  justify-content: center;
  align-items: center;
}

.spapp-visual__frame{
  width: min(100%, 420px);
  padding: 14px;
  border-radius: 30px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  border: 1px solid rgba(244,244,244,.10);
  box-shadow:
    0 24px 60px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.04);
}

.spapp-visual__frame img{
  display: block;
  width: 100%;
  height: auto;
}

.spapp-highlight{
  margin: clamp(1.6rem, 3vw, 2.2rem) 0 0;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: .1em;
  font-weight: 800;
  font-size: clamp(1rem, 1.6vw, 1.25rem);
  color: var(--accent);
}

/* =========================================================
   SOBRE MÍ
========================================================= */

.section--about{
  position: relative;
  overflow: hidden;
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

/* Panel principal: una sola columna de texto con la foto insertada dentro */
.about-panel{
  position: relative;
  max-width: 960px;
  margin-inline: auto;
  padding: clamp(1.6rem, 3vw, 2.4rem);
  border-radius: calc(var(--radius) + 6px);
  border: 1px solid rgba(200,202,55,.22);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  box-shadow: var(--shadow-soft);
}

.about-panel__content{
  max-width: 820px;
  margin-inline: auto;
}

/* Foto, centrada dentro del texto */
.about-panel__media{
  display: flex;
  justify-content: center;
  margin: 1.8rem 0;
}

.about-panel__frame{
  position: relative;
  width: min(100%, 640px);
  padding: 12px;
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  border: 1px solid rgba(244,244,244,.10);
  box-shadow:
    0 24px 60px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.04);
}

.about-panel__frame::after{
  content: "";
  position: absolute;
  inset: 12px;
  border-radius: 20px;
  background: rgba(0,0,0,.32);
  pointer-events: none;
}

.about-panel__frame img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 20px;
  border: 1px solid rgba(244,244,244,.08);
  object-fit: cover;
  aspect-ratio: 3 / 2;
  object-position: center;
}

.about-panel__title{
  margin: 0 0 1rem;
  font-size: clamp(2.2rem, 3vw, 3rem);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--text);
}

.about-panel__text{
  margin: 0 0 1.1rem;
  color: var(--muted);
  line-height: 1.7;
}

/* Primera línea (justo bajo el "Soy Sergi."): mismo peso que los nombres de las reseñas */
.about-panel__text:first-of-type{
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--text);
}

.about-panel__highlight{
  margin: 0 0 1.5rem;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--text);
}

.about-panel__actions{
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
}

/* =========================================================
   FAQ
========================================================= */

.section--faq{
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

.faq-list{
  display: grid;
  gap: .9rem;
  max-width: 860px;
  margin-inline: auto;
}

.faq-item{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 1.1rem 1.3rem;
  box-shadow: var(--shadow-soft);
  transition: border-color 220ms ease;
}

.faq-item[open]{
  border-color: rgba(200,202,55,.30);
}

.faq-item__question{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  list-style: none;
  font-weight: 800;
  font-size: 1rem;
  color: var(--text);
}

.faq-item__question::-webkit-details-marker{ display: none; }

.faq-item__question::after{
  content: "+";
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--accent);
  background: rgba(200,202,55,.12);
  transition: transform 220ms ease;
}

.faq-item[open] .faq-item__question::after{
  transform: rotate(45deg);
}

.faq-item__answer{
  margin: .9rem 0 0;
  color: var(--muted);
  line-height: 1.6;
  font-size: .95rem;
}

/* =========================================================
   VALORACIONES
========================================================= */

.section--transformations{
  background: var(--bg);
  position: relative;
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

/* ---------- Header ---------- */

.section-head--transformations{
  max-width: 780px;
  margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
  text-align: center;
}

.section--transformations .eyebrow{
  margin-bottom: .6rem;
}

.section--transformations .section-title{
  font-size: clamp(2.4rem, 4.8vw, 3.4rem);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1.05;
  margin: 0 0 1rem;
}

.section--transformations .section-subtitle{
  font-size: 1rem;
  color: var(--muted);
  max-width: 520px;
  margin: 0 auto;
}

/* ---------- Grid ---------- */

.transforms-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: clamp(1.2rem, 3vw, 2rem);
}

/* ---------- Card ---------- */

.transform-card{
  background: var(--surface);
  border-radius: var(--radius-sm);
  overflow: hidden;
  box-shadow: var(--shadow-soft);
  transition: transform .35s ease, box-shadow .35s ease;
}

.transform-card:hover{
  transform: translateY(-6px);
  box-shadow: var(--shadow);
}

/* ---------- Image ---------- */

.transform-media{
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.transform-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(10%) contrast(1.05);
  transition: transform .5s ease, filter .5s ease;
}

.transform-card:hover img{
  transform: scale(1.06);
  filter: grayscale(0%);
}

/* ---------- Content ---------- */

.transform-body{
  padding: 1rem 1.1rem 1.25rem;
  text-align: center;
}

.transform-name{
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0 0 .4rem;
  color: var(--text);
}

.transform-text{
  font-size: 0.85rem;
  line-height: 1.4;
  color: var(--muted-2);
  margin: 0;
}

/* ============================= */
/* CARRUSEL TRANSFORMACIONES */
/* ============================= */

.transforms-carousel{
  position: relative;
}

.carousel-viewport{
  overflow: hidden;
  scroll-behavior: smooth;
  border-radius: var(--radius-sm);
}

/* Track horizontal */
.carousel-track{
  display: flex;
  gap: clamp(1.2rem, 3vw, 2rem);
  padding: .25rem; /* evita cortar sombras */
  scroll-snap-type: x mandatory;
}

/* Cada card se comporta como slide */
.carousel-track .transform-card{
  flex: 0 0 calc((100% - (3 * clamp(1.2rem, 3vw, 2rem))) / 4);
  scroll-snap-align: start;
}

/* Botones flechas */
.carousel-btn{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;

  width: 44px;
  height: 44px;
  border-radius: 999px;

  border: 1px solid rgba(244,244,244,.16);
  background: rgba(18,18,18,.72);
  backdrop-filter: blur(10px);

  color: var(--text);
  font-size: 28px;
  line-height: 1;

  display: grid;
  place-items: center;

  cursor: pointer;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.carousel-btn:hover{
  background: rgba(18,18,18,.9);
  border-color: rgba(200,202,55,.45);
}

.carousel-btn--prev{ left: -10px; }
.carousel-btn--next{ right: -10px; }


/* =========================================================
   SEPARADORES
========================================================= */

.section-separator{
  width: 100%;
  height: 2px;
  margin: clamp(3rem, 6vw, 5rem) 0 0 0;

  background: linear-gradient(
    90deg,
    transparent,
    var(--accent),
    transparent
  );

  opacity: .7;
}

/* =========================================================
   CONTACTO
========================================================= */

.section--contact{
  padding-bottom: clamp(3.5rem, 6vw, 5.5rem);
}

.section--contact .section__head--contact{
  max-width:1120px;
  margin:0 auto 1.8rem;
  text-align:center;
}

.section--contact .section__title--contact{
  font-size: clamp(2.8rem, 5vw, 3.8rem);
  font-weight:900;
  letter-spacing:-0.035em;
  line-height:1.05;
  text-transform:uppercase;
  color:var(--text);
  text-shadow:0 2px 20px rgba(0,0,0,0.55);
  margin:0;
}

.section--contact .section__head--contact .section-subtitle{
  margin:.8rem auto 0;
  color:var(--muted);
}

.section--contact .section-subtitle{
  max-width: none;
  margin-inline: auto;
}

/* En escritorio, que quepa en una sola línea (cabecera ya ensanchada) */
@media (min-width: 901px){
  .section--contact .section-subtitle{
    white-space: nowrap;
  }
}

.contact{
  display:grid;
  grid-template-columns: 1.2fr 1fr;
  align-items: start;
  gap: clamp(1.2rem, 2.6vw, 2rem);
}

.contact-card{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02));
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding: clamp(1.2rem, 2.4vw, 1.6rem);
  box-shadow: var(--shadow-soft);
}

.contact-card--main{
  position:relative;
  overflow:hidden;
  padding-bottom: clamp(2.8rem, 5vw, 3.6rem);
  border-color: rgba(200,202,55,.28);
}

.contact-card--main::before{
  content:"";
  position:absolute;
  inset:-80px -120px auto auto;
  width:260px;
  height:260px;
  background: radial-gradient(circle, rgba(200,202,55,.28), transparent 60%);
  pointer-events:none;
}

.contact-card__title{
  margin:0 0 .35rem;
  font-size:1.2rem;
  letter-spacing:.3px;
}

.contact-card__text{
  margin:0 0 1.4rem;
  color:var(--muted);
  line-height:1.55;
}

.contact-cta{
  display:flex;
  flex-wrap:wrap;
  gap:.75rem;
  margin-bottom:1.6rem;
}

.contact-actions{
  display:grid;
  gap:.9rem;
}

.contact-action{
  display:grid;
  gap:.15rem;
  padding:1rem 1.1rem;
  border-radius:16px;
  border:1px solid rgba(244,244,244,.14);
  background: rgba(0,0,0,.3);
  text-decoration:none;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

.contact-action:hover{
  transform:translateY(-2px);
  border-color: rgba(200,202,55,.45);
  background: rgba(200,202,55,.08);
}

.contact-action__label{
  font-size:.8rem;
  color: var(--muted-2);
  letter-spacing:.4px;
  text-transform:uppercase;
}

.contact-action__value{
  font-weight:700;
  color: var(--text);
}

.contact-card__kicker{
  margin:0 0 .6rem;
  color: var(--muted-2);
  font-size:.85rem;
}

.contact-list{
  list-style:none;
  padding:0;
  margin:0 0 1.2rem;
  display:grid;
  gap:.45rem;
}

.contact-list li{
  color:var(--text);
  font-size:.95rem;
}

.contact-badges{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
}

/* Card foto */
.contact-card--photo{
  padding: 12px;
}

.contact-photo-frame{
  width:100%;
  aspect-ratio: 1 / 1;
  border-radius:16px;
  overflow:hidden;
}

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

.hero__actions--tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 16px;
  margin-top: 2rem;
  max-width: 760px;
}

.hero-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 112px;
  padding: 18px 22px;
  border: 1px solid rgba(200, 202, 55, 0.32);
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255,255,255,0.02) 0%, rgba(255,255,255,0.00) 100%),
    rgba(12, 12, 12, 0.82);
  box-shadow:
    0 10px 24px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255,255,255,0.04);
  text-decoration: none;
  color: #f4f1ea;
  transition:
    transform 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease,
    background 0.25s ease;
  overflow: hidden;
}

.hero-tile::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at top left, rgba(200, 202, 55, 0.12), transparent 45%);
  opacity: 0;
  transition: opacity 0.25s ease;
}

.hero-tile:hover {
  transform: translateY(-4px);
  border-color: rgba(200, 202, 55, 0.7);
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.35),
    0 0 0 1px rgba(200, 202, 55, 0.12) inset;
}

.hero-tile:hover::before {
  opacity: 1;
}

.hero-tile__kicker {
  position: relative;
  z-index: 1;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(200, 202, 55, 0.92);
}

.hero-tile__title {
  position: relative;
  z-index: 1;
  max-width: 85%;
  font-size: 1.55rem;
  line-height: 1.02;
  font-weight: 800;
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: #fff;
}

.hero-tile__arrow {
  position: absolute;
  right: 18px;
  top: 18px;
  font-size: 1rem;
  color: rgba(255,255,255,0.6);
  transition: transform 0.25s ease, color 0.25s ease;
}

.hero-tile:hover .hero-tile__arrow {
  transform: translate(2px, -2px);
  color: #c8ca37;
}

/* REDES */
.hero__socialproof {
  margin-top: 2rem;
}

.hero__networks {
  max-width: 760px;
}

.hero__networksTitle {
  margin-bottom: 1rem;
  font-size: 1.1rem;
  font-weight: 700;
  color: #fff;
}

.hero__networksText {
  margin: 20px 0 0;
  font-size: 0.98rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.72);
  max-width: 560px;
}

.hero__networkLinks {
  display: grid;
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 16px;
}

.social-pill {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  min-height: 112px;
  padding: 18px 22px;
  border-radius: 22px;
  text-decoration: none;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.03);
  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
  transition:
    transform 0.25s ease,
    border-color 0.25s ease,
    background 0.25s ease,
    box-shadow 0.25s ease;
}

.social-pill:hover {
  transform: translateY(-3px);
}

.social-pill__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 16px;
  background: rgba(255,255,255,0.06);
  flex-shrink: 0;
}

.social-pill__icon svg {
  width: 24px;
  height: 24px;
}

.social-pill__text {
  display: flex;
  flex-direction: column;
  line-height: 1.15;
}

.social-pill__text strong {
  font-size: 1.15rem;
  font-weight: 800;
}

.social-pill__text small {
  margin-top: 5px;
  font-size: 0.88rem;
  color: rgba(255,255,255,0.64);
}

/* TIKTOK */
.social-pill--tiktok:hover {
  border-color: rgba(200, 202, 55, 0.55);
  background: rgba(200, 202, 55, 0.08);
  box-shadow: 0 14px 32px rgba(0,0,0,0.24);
}

/* INSTAGRAM */
.social-pill--instagram:hover {
  border-color: rgba(200, 202, 55, 0.55);
  background: rgba(200, 202, 55, 0.08);
  box-shadow: 0 14px 32px rgba(0,0,0,0.24);
}

/* RESPONSIVE */
@media (max-width: 900px) {
  .hero__actions--tiles {
    grid-template-columns: 1fr;
    max-width: 100%;
  }

  .hero-tile__title {
    max-width: 100%;
    font-size: 1.3rem;
  }

  .hero__networkLinks {
    grid-template-columns: 1fr;
  }

  .social-pill {
    min-width: 0;
  }
}

/* =========================================================
   VALORACIONES (manteniendo estilo de transformaciones)
========================================================= */

/* =========================================================
   VALORACIONES (más compactas y centradas)
========================================================= */

.review-card{
  background: var(--surface);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-soft);
  transition: transform .35s ease, box-shadow .35s ease, border-color .25s ease;
  border: 1px solid rgba(244,244,244,.10);

  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 250px;
  padding: 1.6rem 1.35rem;
  text-align: center;
}

.review-card:hover{
  transform: translateY(-6px);
  box-shadow: var(--shadow);
  border-color: rgba(200,202,55,.28);
}

.review-card .transform-body{
  padding: 0;
  text-align: center;
}

.review-card__head{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  margin-bottom: 1rem;
}

.review-card__avatar{
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  font-weight: 800;
  font-size: .95rem;
  color: var(--text);
  background: rgba(200,202,55,.12);
  border: 1px solid rgba(200,202,55,.24);
}

.review-card__meta{
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.review-card .transform-name{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
}

.review-card__stars{
  margin-top: .15rem;
  font-size: .9rem;
  letter-spacing: .16em;
  color: var(--accent);
  line-height: 1;
}

.review-card .transform-text{
  max-width: 30ch;
  margin: 0 auto;
  font-size: .95rem;
  line-height: 1.65;
  color: var(--muted);
  text-align: center;
}

/* Desktop: 3 visibles */
.carousel-track .review-card{
  flex: 0 0 calc((100% - (2 * clamp(1.2rem, 3vw, 2rem))) / 3);
}

.review-card__stars{
  font-size: .92rem;
  letter-spacing: .12em;
  color: var(--accent);
  line-height: 1;
}

.review-card .transform-text{
  font-size: .92rem;
  line-height: 1.55;
  color: var(--muted);
  text-align: left;
}

/* Desktop: 3 reseñas visibles */
.carousel-track .review-card{
  flex: 0 0 calc((100% - (2 * clamp(1.2rem, 3vw, 2rem))) / 3);
}

.section-head--transformations{
  max-width: 780px;
  margin: 0 auto clamp(2.5rem, 5vw, 3.5rem);
  text-align: center;
}

.section--transformations .eyebrow{
  margin-bottom: .6rem;
}

.section--transformations .section-title{
  font-size: clamp(2.4rem, 4.8vw, 3.4rem);
  font-weight: 900;
  letter-spacing: -0.035em;
  line-height: 1.05;
  margin: 0 0 1rem;
}

.section--transformations .section-subtitle{
  font-size: 1rem;
  color: var(--muted);
  max-width: 520px;
  margin: 0 auto;
}