/* ============================================
   MARCO STUDIO — Home
   ============================================ */

/* ---------- HERO ---------- */
/* El hero ocupa la pantalla y su logo queda EXACTAMENTE en el centro: el mismo lugar
   y tamaño que tenía en la presentación de inicio (ver .intro más abajo). */
.hero {
  margin-top: -88px;      /* compensa el padding-top de main (header fijo) */
  padding: 88px 0;
}

.hero__inner {
  max-width: 880px;
  min-height: calc(100vh - 176px);
  min-height: calc(100svh - 176px);
  display: grid;
  grid-template-rows: 1fr auto 1fr;   /* título | logo | texto */
  justify-items: center;
  text-align: center;
}

.hero__title {
  font-size: clamp(3rem, 8vw, 6.5rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 0.95;
  text-wrap: balance;
  align-self: end;
  padding-bottom: 0.5rem;
  /* leve sombreado para que se lea sobre la marca de fondo */
  text-shadow:
    0 2px 16px rgba(59, 34, 19, 0.14),
    0 0 10px rgba(247, 243, 244, 0.9);
}

.hero__subtitle {
  font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
  color: var(--color-muted);
  max-width: 520px;
  line-height: 1.5;
  text-wrap: pretty;
  align-self: start;
  padding-top: 0.5rem;
}

/* ---------- PRESENTACIÓN DE INICIO ---------- */
/* Línea de tiempo: html.is-intro (script en <head>) muestra el fondo; js/main.js
   agrega html.is-playing cuando el logo ya cargó y recién ahí arrancan las
   animaciones. Así, en celulares con conexión lenta no se "pierde" la intro. */
:root {
  --mark-w: min(80vw, 640px);
  --intro-hold: 2.7s;   /* cuándo empieza a salir la presentación */
  --intro-out: 0.9s;    /* duración del cruce hacia la web */
}

html.is-intro,
html.is-intro body {
  overflow: hidden;
}

.intro {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  place-items: center;
  background: var(--color-bg);
}

html.is-intro .intro {
  display: grid;
}

html.is-playing .intro {
  animation: introOut var(--intro-out) cubic-bezier(0.4, 0, 0.2, 1) var(--intro-hold) forwards;
}

.intro__logo {
  display: block;
  width: var(--mark-w);
  height: auto;
  opacity: 0;
}

html.is-playing .intro__logo {
  animation: introLogoIn 1s cubic-bezier(0.16, 1, 0.3, 1) 0.2s both;
}

.intro__bar {
  position: absolute;
  left: 50%;
  top: calc(50% + var(--mark-w) * 0.14 + 32px);
  width: min(220px, 40vw);
  height: 3px;
  border-radius: 999px;
  background: rgba(59, 34, 19, 0.08);
  overflow: hidden;
  transform: translateX(-50%);
  opacity: 0;
}

html.is-playing .intro__bar {
  animation: introFadeIn 0.4s ease 0.5s both;
}

.intro__bar span {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: var(--gradient-sage);
  transform-origin: left center;
  transform: scaleX(0);
}

html.is-playing .intro__bar span {
  animation: introBar 2s cubic-bezier(0.45, 0.05, 0.25, 1) 0.6s both;
}

@keyframes introLogoIn {
  from { opacity: 0; transform: scale(0.92); filter: blur(8px); }
  to   { opacity: 1; transform: scale(1);    filter: blur(0); }
}

@keyframes introFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes introBar {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

@keyframes introOut {
  to { opacity: 0; visibility: hidden; }
}

/* Con "reducir movimiento" (muy común en celulares) la presentación se mantiene,
   pero solo con fundidos: sin escala, desenfoque ni barra. */
@media (prefers-reduced-motion: reduce) {
  :root {
    --intro-hold: 1.6s;
    --intro-out: 0.5s;
  }
  html.is-playing .intro__logo {
    animation: introFadeIn 0.5s ease 0.1s both;
  }
  .intro__bar {
    display: none;
  }
}

/* ---------- MARCA TRASLÚCIDA DEL HERO ---------- */
/* El logo queda FIJO en el centro de la pantalla (el mismo lugar y tamaño que en la
   presentación), detrás de la web. Se desvanece y baja al pasar "Lo que hacemos"
   (js/main.js). .hero-mark-space solo reserva su lugar entre el título y el texto. */
.hero-mark-space {
  width: var(--mark-w);
  aspect-ratio: 1672 / 941;
}

.hero-mark {
  position: fixed;
  inset: 0;
  z-index: -1;
  display: grid;
  place-items: center;
  pointer-events: none;
  will-change: transform, opacity;
}

.hero-mark__img {
  width: var(--mark-w);
  display: block;
  height: auto;
  opacity: 1;
}

/* Durante la presentación la marca espera; luego aparece mientras la intro se va */
html.is-intro .hero-mark__img {
  opacity: 0;
}

html.is-playing .hero-mark__img {
  animation: heroMarkIn calc(var(--intro-out) + 0.2s) ease var(--intro-hold) both;
}

@keyframes heroMarkIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}



/* ---------- TITULOS DE SECCIÓN (home) ---------- */
.home-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem 2.5rem;
  margin-bottom: 1.75rem;
  padding: 0 0.5rem;
}

.home-head__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2.25rem, 4.6vw, 4rem);
  line-height: 1;
  letter-spacing: -0.035em;
}

.home-head__title em {
  font-style: italic;
  font-weight: 300;
}

.home-head__sub {
  color: var(--color-muted);
  max-width: 360px;
}

.home-section {
  padding: clamp(4.5rem, 9vw, 8rem) 0 0;
}

/* ---------- SERVICIOS ---------- */
.services-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
  gap: 0.75rem;
}

.service-card {
  position: relative;
  will-change: transform;
  display: block;
  scroll-margin-top: 104px;
  border-radius: 20px;
  border: 1px solid var(--color-line);
  background-color: var(--color-surface);
  background-image: var(--gradient-hover);
  background-repeat: no-repeat;
  background-position: 50% 100%;
  background-size: 100% 0%;
  transition: background-size 0.5s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.3s ease, transform var(--transition), box-shadow var(--transition);
}

/* Resumen de la tarjeta (lo que se ve cerrada). Es también el botón de abrir/cerrar */
.service-card__main {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 0.75rem;
  height: 100%;
}

/* El título es un <button> estirado: toda la tarjeta es clickeable sin anidar interactivos */
.service-card__trigger {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  letter-spacing: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.service-card__trigger::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 20px;
}
.service-card__trigger:focus-visible { outline: none; }
.service-card__trigger:focus-visible::after { outline: 2px solid var(--color-coral); outline-offset: 2px; }

/* :hover (mouse) + .is-touched / :active (táctil, ver js/main.js) */
.service-card:hover,
.service-card.is-touched,
.service-card:active {
  background-size: 100% 100%;
  border-color: var(--color-accent);
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -24px rgba(59, 34, 19, 0.25);
}

.service-card__arrow { transition: transform 0.45s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.3s ease, color 0.3s ease; }
.service-card:hover .service-card__arrow,
.service-card.is-touched .service-card__arrow,
.service-card:active .service-card__arrow {
  transform: scale(1.08);
  background-color: var(--color-coral);   /* acento coral al pasar el mouse / tocar */
  color: #fff;
}

.service-card__media {
  aspect-ratio: 4 / 3;
  border-radius: 12px;
  background: var(--color-placeholder) repeating-linear-gradient(135deg, transparent 0 11px, rgba(59, 34, 19, 0.04) 11px 12px);
  background-size: cover;
  background-position: center;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 0.875rem;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--color-accent);
}

.service-card__media span:last-child {
  white-space: nowrap;
}

.service-card__body {
  padding: 0 0.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.service-card__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.375rem;
  letter-spacing: -0.02em;
}

.service-card__desc {
  color: var(--color-muted);
  font-size: var(--fs-small);
}

.service-card__foot {
  margin-top: auto;
  padding: 0 0.5rem 0.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.5rem;
}

.service-card__mods {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}

.service-card__mods span {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  padding: 3px 9px;
  border-radius: 6px;
  background: var(--color-bg-alt);
  color: var(--color-muted);
}

.service-card__arrow {
  border: 0;
  padding: 0;
  font-family: inherit;
  color: inherit;
  cursor: pointer;
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  line-height: 1;
}

/* ---------- SERVICIOS: modo "abierto" (todo ocurre en la misma página) ---------- */
.service-card__detail { display: none; }

/* Las otras tres desaparecen; la elegida va al centro y se despliega hacia abajo */
.services-grid.has-active .service-card:not(.is-active) { display: none; }

.service-card.is-active {
  grid-column: 1 / -1;
  display: block;
  background-size: 100% 0%;
  will-change: auto;   /* sin contexto de apilado propio: las piezas pueden pasar por encima del fantasma */
}
.service-card.is-active,
.service-card.is-active:hover,
.service-card.is-active:active,
.service-card.is-active.is-touched {
  transform: none !important;
  background: var(--color-bg) !important;   /* opaco: tapa el logo fijo del fondo */
  border-color: transparent;
  box-shadow: none;
}
/* La tarjeta se "desarma": ya no hay caja, las piezas quedan centradas como encabezado */
.service-card.is-active .service-card__main {
  width: min(100%, 780px);
  height: auto;
  margin: 0 auto;
  align-items: center;
  text-align: center;
  gap: 1.1rem;
  padding: 0.75rem 0 0;
}
.service-card.is-active .service-card__main > * { position: relative; z-index: 5; }
.service-card.is-active .service-card__media { width: 100%; aspect-ratio: 21 / 8; }
.service-card.is-active .service-card__body { align-items: center; padding: 0; gap: 0.75rem; }
.service-card.is-active .service-card__title { font-size: clamp(2rem, 4.4vw, 3.25rem); line-height: 1; letter-spacing: -0.035em; }
.service-card.is-active .service-card__desc { max-width: 46ch; font-size: 1rem; }
.service-card.is-active .service-card__foot { margin-top: 0; padding: 0; justify-content: center; gap: 0.875rem; }
.card-ghost {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid var(--color-accent);
  background: var(--gradient-hover);
  box-shadow: 0 24px 48px -28px rgba(59, 34, 19, 0.3);
}
.card-ghost .service-card__main { height: 100%; }
.card-ghost .service-card__arrow { background-color: var(--color-coral); color: #fff; }
.service-card.is-active .service-card__arrow {
  background-color: var(--color-coral);
  color: #fff;
}
.service-card.is-active .service-card__arrow:hover { background-color: #C9503A; }
.service-card.is-active .service-card__arrow:focus-visible { outline: 2px solid var(--color-ink); outline-offset: 3px; }
.service-card__arrow span { display: block; transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); }
.service-card.is-active .service-card__arrow span { transform: rotate(45deg); }
.service-card.is-active .service-card__detail { display: block; }

/* Contenido desplegado */
.detail {
  display: flex;
  flex-direction: column;
  gap: clamp(2.25rem, 4.5vw, 3.25rem);
  width: min(100%, 1020px);
  margin: clamp(1.25rem, 3vw, 2rem) auto 0;
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1rem, 3vw, 2rem) clamp(1.75rem, 3vw, 2.5rem);
  border-top: 1px solid var(--color-line);
}

.detail__kicker {
  display: block;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--color-accent);
  margin-bottom: 0.5rem;
  text-align: center;
}
.detail__heading {
  text-align: center;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(1.5rem, 2.6vw, 2.125rem);
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-bottom: 1.25rem;
}
.detail__heading em { font-style: italic; font-weight: 300; }

.detail__block--lead .detail__kicker { color: var(--color-coral); }
.detail__block--lead .detail__heading { font-size: clamp(2rem, 4.4vw, 3.25rem); margin-bottom: 1.75rem; }
.problems { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.problem {
  position: relative;
  padding: 1.5rem 1.5rem 1.5rem 1.75rem;
  border-radius: 14px;
  background: #fff;
  border: 1px solid var(--color-line);
  transition: border-color 0.3s ease, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.problem::before {
  content: '';
  position: absolute;
  left: 0; top: 1.5rem; bottom: 1.5rem;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: var(--color-coral);
}
.problem:hover { border-color: var(--color-accent); transform: translateY(-3px); box-shadow: 0 18px 36px -24px rgba(59, 34, 19, 0.3); }
.problem__q {
  font-family: var(--font-display);
  font-style: italic;
  font-size: clamp(1.1875rem, 1.9vw, 1.5rem);
  line-height: 1.25;
  margin-bottom: 0.75rem;
}
.problem__a { color: var(--color-muted); font-size: 0.9375rem; line-height: 1.6; }

.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 1.25rem; }
.step { padding-top: 1rem; border-top: 2px solid var(--color-line); transition: border-color 0.3s ease; }
.step:hover { border-top-color: var(--color-coral); }
.step__num { display: block; font-family: var(--font-mono); font-size: 0.6875rem; letter-spacing: 0.06em; color: var(--color-coral); margin-bottom: 0.5rem; }
.step__title { font-family: var(--font-display); font-weight: 600; font-size: 1.0625rem; letter-spacing: -0.01em; margin-bottom: 0.4rem; }
.step__desc { color: var(--color-muted); font-size: var(--fs-small); line-height: 1.55; }

.showreel {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.5rem;
  min-height: 180px;
  border-radius: 14px;
  background: var(--color-placeholder) repeating-linear-gradient(135deg, transparent 0 11px, rgba(59, 34, 19, 0.04) 11px 12px);
}
.showreel__play {
  width: 56px; height: 56px; flex-shrink: 0;
  border-radius: 50%;
  background: var(--color-coral); color: #fff;
  display: flex; align-items: center; justify-content: center;
}
.showreel__title { font-family: var(--font-display); font-size: 1.375rem; }

.detail__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  gap: 1.5rem;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border-radius: 18px;
  background: var(--color-sage-soft);
  border: 1px solid rgba(100, 127, 120, 0.25);
}
.detail__cta-title { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.375rem, 2.2vw, 1.75rem); line-height: 1.1; letter-spacing: -0.03em; max-width: 24ch; }
.detail__cta-title em { font-style: italic; font-weight: 300; }
.detail__cta-sub { color: var(--color-muted); font-size: var(--fs-small); margin-top: 0.5rem; max-width: 46ch; }
.detail__cta-btns { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* Los bloques entran escalonados cuando se abre la tarjeta */
.service-card.is-active .d-item {
  animation: detail-in 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: calc(0.6s + var(--i, 0) * 0.07s);
}
@keyframes detail-in {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: none; }
}

@media (max-width: 700px) {
  .problems { grid-template-columns: minmax(0, 1fr); }
  .detail__cta { flex-direction: column; align-items: flex-start; }
  .detail__cta-btns { width: 100%; }
  .detail__cta-btns .btn { flex: 1 1 auto; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .service-card.is-active .d-item { animation: none; }
}

/* ---------- PROCESO ---------- */
.process {
  margin-top: clamp(4.5rem, 9vw, 8rem);
  /* salvia suave y traslúcido, el mismo tono del relleno de las tarjetas de servicios */
  --process-bg: var(--color-sage-soft);
  background: var(--process-bg);
  border-top: 1px solid rgba(100, 127, 120, 0.25);
  border-bottom: 1px solid rgba(100, 127, 120, 0.25);
  padding: clamp(4rem, 8vw, 7rem) 0;
}

.process__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 2.25rem 2rem;
}

.process__grid::before {
  content: '';
  position: absolute;
  top: 34px;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--color-accent);
  opacity: 0.35;
}

.process__step {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.process__num {
  align-self: flex-start;
  font-family: var(--font-display);
  font-size: 4.5rem;
  line-height: 1;
  letter-spacing: -0.04em;
  padding-right: 1rem;
  background: var(--process-bg);   /* tapa la línea detrás del número */
}

.process__num span {
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* Números en coral con degradé propio por paso (como los originales: del más claro al más profundo, terminando en el marrón del logo) */
.process__step:nth-child(1) .process__num span { background-image: linear-gradient(135deg, #F2937A, #E2664A); }
.process__step:nth-child(2) .process__num span { background-image: linear-gradient(135deg, #E87A5F, #D45A41); }
.process__step:nth-child(3) .process__num span { background-image: linear-gradient(135deg, #E2664A, #7A3322); }
.process__step:nth-child(4) .process__num span { background-image: linear-gradient(135deg, #E2664A, #3D2314); }

.process__step h3 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.375rem;
  letter-spacing: -0.015em;
  margin-top: 0.5rem;
}

.process__step p {
  color: var(--color-muted);
  font-size: 0.9375rem;
}

/* ---------- POR QUÉ ---------- */
.why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
  gap: 0.75rem;
}

.why-card {
  border-radius: 20px;
  border: 1px solid var(--color-line);
  background: var(--color-surface);
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  transition: border-color var(--transition), transform var(--transition);
}

.why-card:hover {
  border-color: var(--color-accent);
  transform: translateY(-4px);
}

.why-card__kicker {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.why-card h3 {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.375rem;
  letter-spacing: -0.02em;
}

.why-card p {
  color: var(--color-muted);
  font-size: var(--fs-small);
}

/* ---------- TRABAJOS ---------- */
.works-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
  gap: 0.75rem;
}

.work-card {
  aspect-ratio: 4 / 5;
  border-radius: 20px;
  border: 1px solid var(--color-line);
  background: var(--color-surface) repeating-linear-gradient(135deg, transparent 0 11px, rgba(59, 34, 19, 0.04) 11px 12px);
  background-size: cover;
  background-position: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.25rem;
  cursor: pointer;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}

.work-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -20px rgba(59, 34, 19, 0.18);
  border-color: var(--color-line-strong);
}

.work-card__label {
  font-family: var(--font-mono);
  font-size: 0.625rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted-2);
}

.work-card__info {
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid var(--color-line-strong);
  border-radius: 14px;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.work-card__tag {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-accent);
}

.work-card__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 1.25rem;
  letter-spacing: -0.015em;
  line-height: 1.2;
}

/* ---------- MODALIDADES (tarjetas superpuestas) ---------- */
.plans {
  display: flex;
  align-items: center;
  padding: 1.5rem 0;
}

.plan {
  position: relative;
  z-index: 1;
  flex: 1 1 0;
  min-height: 280px;
  border-radius: 28px;
  border: 1px solid #E9E4E2;
  padding: 2.25rem 2.25rem 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: transform var(--transition);
}

.plan:hover { transform: translateY(-4px); }

.plan:first-child {
  background: linear-gradient(90deg, #F9F5F4 0%, #F7F3F4 70%, #E4E2DF 100%);
  padding-right: 5.25rem;
}

.plan:last-child {
  background: linear-gradient(270deg, #F9F5F4 0%, #F7F3F4 70%, #E4E2DF 100%);
  padding-left: 5.25rem;
}

.plan--featured {
  z-index: 2;
  flex: 1.05 1 0;
  min-height: 330px;
  margin: 0 -48px;
  padding: 2.5rem 2.5rem 1.75rem;
  background: var(--gradient-sage);
  border-color: rgba(255, 255, 255, 0.35);
  color: #FFFFFF;
  box-shadow: 0 30px 60px -24px rgba(59, 34, 19, 0.35);
}

.plan__kicker {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--color-muted-2);
}

.plan__big {
  font-family: var(--font-display);
  font-weight: 500;
  font-size: clamp(2.75rem, 4.4vw, 3.75rem);
  line-height: 1;
  letter-spacing: -0.04em;
}

.plan__desc,
.plan__ideal {
  color: var(--color-muted);
  max-width: 340px;
}

.plan__ideal {
  display: none;
  font-size: var(--fs-small);
  padding-top: 0.625rem;
  border-top: 1px solid var(--color-line);
}

.plan.is-open .plan__ideal { display: block; }

.plan--featured .plan__kicker,
.plan--featured .plan__desc,
.plan--featured .plan__ideal { color: #F7F3F4; }

.plan--featured .plan__ideal { border-top-color: rgba(255, 255, 255, 0.35); }

.plan__toggle {
  margin-top: auto;
  align-self: flex-end;
  width: 56px;
  height: 56px;
  flex-shrink: 0;
  border-radius: 50%;
  background: var(--color-coral);   /* botón "+" en coral */
  color: #FFFFFF;
  font-size: 1.5rem;
  font-weight: 300;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease, background-color 0.3s ease, color 0.3s ease;
}

.plan__toggle:hover { background: #D2573B; }

/* Tarjeta destacada (fondo salvia): círculo blanco con el "+" en coral */
.plan--featured .plan__toggle,
.plan--featured .plan__toggle:hover {
  background: #FFFFFF;
  color: var(--color-coral);
}

/* Abierta: gira a "×" y el coral se oscurece */
.plan.is-open .plan__toggle {
  transform: rotate(45deg);
  background: #C9503A;
}

.plan--featured.is-open .plan__toggle {
  background: #FFFFFF;
  color: #C9503A;
}

/* ---------- CONTACTO ---------- */
.home-cta {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  background: var(--gradient-sage);
  color: #FFFFFF;
  padding: clamp(1.75rem, 5vw, 4.5rem);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr));
  gap: 2.5rem 4rem;
}

.home-cta::after {
  content: '';
  position: absolute;
  bottom: -60px;
  right: -60px;
  width: 480px;
  height: 480px;
  background: url('../images/Logos/logo-marco-studio.png') bottom right / contain no-repeat;
  filter: brightness(0) invert(1); /* silueta blanca sobre el degradé */
  opacity: 0.12;
  pointer-events: none;
}

.home-cta__text {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  justify-content: space-between;
}

.home-cta__title {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: clamp(2.5rem, 5.6vw, 5rem);
  line-height: 0.98;
  letter-spacing: -0.04em;
  text-wrap: balance;
}

.home-cta__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.625rem;
}

.home-cta__info {
  list-style: none;
  margin: 1.5rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.home-cta__info li { display: flex; flex-wrap: wrap; gap: 0.25rem 0.875rem; align-items: baseline; }
.home-cta__info span {
  min-width: 5.5rem;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.7;
}
.home-cta__info a { font-size: 1.0625rem; border-bottom: 1px solid currentColor; padding-bottom: 1px; }
.home-cta__info a:hover { opacity: 0.8; }

.btn--light {
  background: #F7F3F4;
  color: var(--color-ink);
  border-radius: 12px;
}

.btn--light:hover { background: #FFFFFF; }

.btn--outline-light {
  border: 1px solid rgba(255, 255, 255, 0.7);
  color: #FFFFFF;
  border-radius: 12px;
}

.btn--outline-light:hover { background: rgba(255, 255, 255, 0.12); }

.home-cta__form {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  color: var(--color-ink);
}

.home-cta__form .eyebrow { color: var(--color-ink); margin-bottom: 0.25rem; }

.home-cta__form input,
.home-cta__form textarea {
  width: 100%;
  padding: 0 0.875rem;
  height: 52px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.35);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.6);
  color: var(--color-ink);
  font-family: inherit;
  font-size: 0.9375rem;
  outline: none;
}

.home-cta__form textarea {
  height: auto;
  min-height: 110px;
  padding: 0.875rem;
  resize: vertical;
}

.home-cta__form input::placeholder,
.home-cta__form textarea::placeholder { color: var(--color-muted); }

.home-cta__form input:focus,
.home-cta__form textarea:focus { border-color: #FFFFFF; background: rgba(255, 255, 255, 0.5); }

.home-cta__form button {
  height: 52px;
  border-radius: 10px;
  background: rgba(59, 34, 19, 0.96);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  color: #FFFFFF;
  font-weight: 500;
  font-size: 0.9375rem;
}

.home-cta__form button:hover { background: var(--color-ink); }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 968px) {
  .plans {
    flex-direction: column;
    gap: 0.75rem;
  }

  .plan,
  .plan--featured,
  .plan:first-child,
  .plan:last-child {
    flex: 0 0 auto;
    width: 100%;
    margin: 0;
    min-height: 240px;
    padding: 1.75rem;
  }
}

#contacto-card { scroll-margin-top: 104px; }
