/* ==========================================================================
   VELLA BOUTIQUE · Página institucional  (Fase 7)
   Todo cuelga de .vella-pagina, la clase que el tema hijo añade al <body>
   sólo en /vella/. Nada de aquí alcanza la portada, la tienda ni la ficha.

   COPY PROVISIONAL — el texto institucional es de relleno hasta recibir el
   definitivo. Se sustituye desde Elementor sin tocar este archivo.
   ========================================================================== */

.vella-pagina {
  --v-tinta:      #340E21;
  --v-vino:       #681D41;
  --v-oro:        #C8A259;
  --v-rosa:       #F6D7E6;
  --v-champagne:  #F7EED9;
  --v-durazno:    #F7CFB8;
  --v-blanco:     #FDFBF7;
  --v-serif:      "Baskervville", Baskerville, "Baskerville Old Face", Georgia, serif;
  --v-script:     "Corinthia", "Snell Roundhand", cursive;
  --v-max:        1620px;
  --v-aire:       clamp(24px, 4vw, 76px);
}

/* La página arranca pegada a la cabecera y sin el título de archivo del tema. */
body.vella-pagina .site-content,
body.vella-pagina .main-page-wrapper,
body.vella-pagina .wd-content-layout { padding-block: 0; margin-bottom: 0; }
.vella-pagina .wd-page-title { display: none; }

.vella-pagina .vp-sec {
  font-family: var(--v-serif);
  color: var(--v-tinta);
  width: 100vw;
  max-width: none;
  margin-inline: calc(50% - 50vw);
  padding: 0;
  position: relative;
}

/* --------------------------------------------------------------------------
   Tipografía
   -------------------------------------------------------------------------- */

.vella-pagina .vp-eyebrow .elementor-heading-title {
  font-family: var(--v-serif);
  font-size: 11.5px;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: var(--v-oro);
  margin: 0 0 18px;
  display: flex;
  align-items: center;
  gap: 14px;
}
.vella-pagina .vp-eyebrow .elementor-heading-title::before {
  content: ""; width: 34px; height: 1px; background: var(--v-oro); flex: none;
}

.vella-pagina .vp-script .elementor-heading-title {
  font-family: var(--v-script);
  font-size: clamp(44px, 3.8vw, 62px);
  line-height: .78;
  color: var(--v-oro);
  margin: 0 0 10px;
}

.vella-pagina .vp-h1 .elementor-heading-title {
  font-family: var(--v-serif);
  font-weight: 400;
  font-size: clamp(38px, 4.6vw, 74px);
  line-height: 1.02;
  letter-spacing: .01em;
  color: var(--v-tinta);
  margin: 0;
  text-wrap: balance;
}

.vella-pagina .vp-h2 .elementor-heading-title {
  font-family: var(--v-serif);
  font-weight: 400;
  font-size: clamp(28px, 2.9vw, 44px);
  line-height: 1.16;
  letter-spacing: .015em;
  color: var(--v-tinta);
  margin: 0;
  text-wrap: balance;
}
.vella-pagina .vp-h2-centro .elementor-heading-title { text-align: center; }

.vella-pagina .vp-entrada p,
.vella-pagina .vp-cuerpo p {
  font-family: var(--v-serif);
  font-size: clamp(15.5px, 1.15vw, 17.5px);
  line-height: 1.82;
  color: rgba(52, 14, 33, .8);
  margin: 22px 0 0;
  max-width: 46ch;
}

/* --------------------------------------------------------------------------
   Llamadas a la acción
   -------------------------------------------------------------------------- */

.vella-pagina .vp-cta .elementor-button {
  font-family: var(--v-serif);
  font-size: 12px;
  letter-spacing: .24em;
  text-transform: uppercase;
  border-radius: 0;
  line-height: 1;
  box-shadow: none;
  transition: background-color .32s ease, color .32s ease, border-color .32s ease;
}
.vella-pagina .vp-cta-solido .elementor-button {
  background: var(--v-tinta); color: var(--v-champagne);
  border: 1px solid var(--v-tinta); padding: 18px 40px;
}
.vella-pagina .vp-cta-solido .elementor-button:hover {
  background: var(--v-oro); border-color: var(--v-oro); color: var(--v-tinta);
}
.vella-pagina .vp-cta-linea .elementor-button {
  background: transparent; color: var(--v-tinta);
  border: 1px solid rgba(52, 14, 33, .28); padding: 18px 40px;
}
.vella-pagina .vp-cta-linea .elementor-button:hover {
  border-color: var(--v-tinta); background: var(--v-tinta); color: var(--v-champagne);
}
.vella-pagina .vp-cta-texto .elementor-button {
  background: transparent; border: 0; padding: 0; color: var(--v-tinta);
}
.vella-pagina .vp-cta-texto .elementor-button-text::after {
  content: "→"; display: inline-block; margin-left: 14px; color: var(--v-oro);
  transition: transform .5s cubic-bezier(.2, .7, .3, 1);
}
.vella-pagina .vp-cta-texto .elementor-button:hover .elementor-button-text::after { transform: translateX(5px); }

/* --------------------------------------------------------------------------
   Fotografías
   -------------------------------------------------------------------------- */

.vella-pagina .vp-foto { margin: 0; overflow: hidden; line-height: 0; width: 100%; --width: 100%; }
.vella-pagina .vp-foto .elementor-widget-container,
.vella-pagina .vp-foto a { display: block; width: 100%; height: 100%; }
.vella-pagina .vp-foto img {
  display: block; width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .9s cubic-bezier(.2, .7, .3, 1);
}
.vella-pagina .vp-foto:hover img { transform: scale(1.02); }

/* --------------------------------------------------------------------------
   1 · Hero
   -------------------------------------------------------------------------- */

.vella-pagina .vp-hero {
  background:
    radial-gradient(58% 74% at 6% 4%,   rgba(247, 238, 217, .96) 0%, rgba(247, 238, 217, 0) 66%),
    radial-gradient(44% 56% at 92% 92%, rgba(246, 215, 230, .5)  0%, rgba(246, 215, 230, 0)  62%),
    var(--v-blanco);
  overflow: hidden;
}
.vella-pagina .vp-hero-wrap {
  max-width: var(--v-max);
  width: 100%;
  margin-inline: auto;
  padding: clamp(56px, 6vw, 96px) var(--v-aire) clamp(64px, 6.4vw, 104px);
  --width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 46fr) minmax(0, 54fr);
  gap: clamp(28px, 4vw, 72px);
  align-items: center;
}
.vella-pagina .vp-hero-texto,
.vella-pagina .vp-hero-foto { padding: 0; --width: 100%; gap: 0; }
.vella-pagina .vp-hero-foto .vp-foto img { height: clamp(420px, 52vw, 780px); object-position: 50% 26%; }
.vella-pagina .vp-hero .vp-cta { margin-top: 34px; }

/* La palabra de fondo, apenas perceptible. */
.vella-pagina .vp-hero::after {
  content: "VELLA";
  position: absolute;
  left: -2vw; bottom: -2vw;
  font-family: var(--v-serif);
  font-size: clamp(140px, 20vw, 320px);
  line-height: .74;
  color: rgba(52, 14, 33, .032);
  pointer-events: none; user-select: none; white-space: nowrap;
}

/* --------------------------------------------------------------------------
   2 · Nuestra esencia
   -------------------------------------------------------------------------- */

.vella-pagina .vp-esencia { background: var(--v-blanco); }
.vella-pagina .vp-esencia-wrap {
  max-width: var(--v-max);
  width: 100%;
  margin-inline: auto;
  padding: clamp(70px, 7vw, 118px) var(--v-aire);
  --width: 100%;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(20px, 2.6vw, 44px);
  align-items: start;
}
.vella-pagina .vp-esencia-texto { grid-column: 1 / span 5; padding: 0; --width: 100%; gap: 0; padding-top: clamp(20px, 3vw, 56px); }
.vella-pagina .vp-esencia-principal { grid-column: 6 / span 4; padding: 0; --width: 100%; }
.vella-pagina .vp-esencia-detalle { grid-column: 10 / span 3; padding: 0; --width: 100%; margin-top: clamp(60px, 7vw, 130px); }
.vella-pagina .vp-esencia-principal .vp-foto img { height: clamp(400px, 44vw, 660px); object-position: 50% 24%; }
.vella-pagina .vp-esencia-detalle .vp-foto img { height: clamp(260px, 29vw, 430px); object-position: 50% 40%; }

/* --------------------------------------------------------------------------
   3 · Filosofía
   -------------------------------------------------------------------------- */

.vella-pagina .vp-filosofia {
  background:
    linear-gradient(180deg, rgba(247, 238, 217, .55) 0%, rgba(247, 238, 217, 0) 56%),
    var(--v-blanco);
}
.vella-pagina .vp-filo-wrap {
  max-width: var(--v-max);
  width: 100%;
  margin-inline: auto;
  padding: clamp(60px, 6vw, 100px) var(--v-aire) clamp(70px, 7vw, 118px);
  --width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 38fr) minmax(0, 62fr);
  gap: clamp(30px, 4.4vw, 82px);
  align-items: center;
}
.vella-pagina .vp-filo-foto { padding: 0; --width: 100%; }
.vella-pagina .vp-filo-foto .vp-foto img { height: clamp(420px, 46vw, 700px); object-position: 50% 22%; }
.vella-pagina .vp-filo-lista { padding: 0; --width: 100%; gap: clamp(30px, 3.4vw, 56px); }

.vella-pagina .vp-concepto { padding: 0; --width: 100%; gap: 0; position: relative; }
.vella-pagina .vp-concepto + .vp-concepto { border-top: 1px solid rgba(52, 14, 33, .12); padding-top: clamp(28px, 3.2vw, 52px); }
.vella-pagina .vp-num .elementor-heading-title {
  font-family: var(--v-serif);
  font-size: 12px; letter-spacing: .3em; color: var(--v-oro); margin: 0 0 12px;
}
.vella-pagina .vp-concepto-t .elementor-heading-title {
  font-family: var(--v-serif); font-weight: 400;
  font-size: clamp(21px, 2vw, 30px);
  letter-spacing: .1em; text-transform: uppercase;
  color: var(--v-tinta); margin: 0;
}
.vella-pagina .vp-concepto-p p {
  font-family: var(--v-serif);
  font-size: clamp(14.5px, 1.05vw, 16.5px);
  line-height: 1.72; color: rgba(52, 14, 33, .7);
  margin: 12px 0 0; max-width: 44ch;
}
/* Sólo el segundo concepto se desplaza: asimetría medida, no desorden. */
.vella-pagina .vp-c2 { padding-left: clamp(0px, 4vw, 74px); }

/* --------------------------------------------------------------------------
   4 · Manifiesto — la pausa
   -------------------------------------------------------------------------- */

.vella-pagina .vp-manifiesto { background: var(--v-tinta); }
.vella-pagina .vp-mani-wrap {
  max-width: 1100px;
  width: 100%;
  margin-inline: auto;
  padding: clamp(88px, 9vw, 150px) var(--v-aire);
  --width: 100%;
  --align-items: center;
  align-items: center;
  text-align: center;
  gap: 0;
}
.vella-pagina .vp-script-claro .elementor-heading-title { color: var(--v-oro); margin-bottom: 14px; }
.vella-pagina .vp-mani-frase .elementor-heading-title {
  font-family: var(--v-serif); font-weight: 400;
  font-size: clamp(26px, 2.9vw, 44px);
  line-height: 1.38;
  color: var(--v-champagne);
  margin: 0;
  max-width: 22ch;
  text-wrap: balance;
}
.vella-pagina .vp-mani-pie { --width: auto; position: relative; padding-top: 34px; }
.vella-pagina .vp-mani-pie p {
  font-family: var(--v-serif);
  font-size: clamp(13px, 1vw, 15px);
  letter-spacing: .26em; text-transform: uppercase;
  color: var(--v-oro); margin: 0;
}
.vella-pagina .vp-mani-pie::before {
  content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 54px; height: 1px; background: rgba(200, 162, 89, .5);
}

/* --------------------------------------------------------------------------
   5 · Curaduría
   -------------------------------------------------------------------------- */

.vella-pagina .vp-curaduria { background: var(--v-blanco); }
.vella-pagina .vp-cur-wrap {
  max-width: var(--v-max);
  width: 100%;
  margin-inline: auto;
  padding: clamp(70px, 7vw, 118px) var(--v-aire);
  --width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
  gap: clamp(30px, 4.4vw, 80px);
  align-items: center;
}
.vella-pagina .vp-cur-texto,
.vella-pagina .vp-cur-foto { padding: 0; --width: 100%; gap: 0; }
.vella-pagina .vp-cur-foto .vp-foto img { height: clamp(380px, 42vw, 620px); object-position: 50% 28%; }
.vella-pagina .vp-cur-texto .vp-cta { margin-top: 32px; }
/* La fotografía se asoma hacia el borde: rompe la sensación de plantilla. */
.vella-pagina .vp-cur-foto { margin-right: clamp(-70px, -3.4vw, 0px); }

/* --------------------------------------------------------------------------
   6 · Cierre
   -------------------------------------------------------------------------- */

.vella-pagina .vp-cierre {
  background:
    radial-gradient(60% 80% at 50% 0%, rgba(247, 238, 217, .9) 0%, rgba(247, 238, 217, 0) 68%),
    var(--v-blanco);
}
.vella-pagina .vp-cierre-wrap {
  max-width: 900px;
  width: 100%;
  margin-inline: auto;
  padding: clamp(78px, 8vw, 130px) var(--v-aire) clamp(88px, 9vw, 142px);
  --width: 100%;
  --align-items: center;
  align-items: center;
  text-align: center;
  gap: 0;
}
.vella-pagina .vp-cierre-botones {
  padding: 0; --width: auto;
  margin-top: 36px;
  flex-direction: row;
  --flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  --justify-content: center;
  gap: 14px;
}

/* --------------------------------------------------------------------------
   Microanimaciones · sólo entrada, discretas
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
  .vella-pagina .vp-sec .elementor-widget,
  .vella-pagina .vp-sec > .e-con > .e-con {
    animation: vp-entra .72s cubic-bezier(.2, .7, .3, 1) both;
    animation-timeline: view();
    animation-range: entry 0% entry 42%;
  }
}
@keyframes vp-entra {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .vella-pagina .vp-foto img { transition: none; }
  .vella-pagina .vp-foto:hover img { transform: none; }
}

/* Foco visible en toda la página. */
.vella-pagina .vp-sec a:focus-visible,
.vella-pagina .vp-sec .elementor-button:focus-visible {
  outline: 2px solid var(--v-oro);
  outline-offset: 3px;
}

/* --------------------------------------------------------------------------
   Tablet
   -------------------------------------------------------------------------- */

@media (max-width: 1024px) {
  .vella-pagina .vp-hero-wrap { grid-template-columns: minmax(0, 44fr) minmax(0, 56fr); }
  .vella-pagina .vp-esencia-texto { grid-column: 1 / span 5; }
  .vella-pagina .vp-esencia-principal { grid-column: 6 / span 4; }
  .vella-pagina .vp-esencia-detalle { grid-column: 10 / span 3; margin-top: clamp(40px, 6vw, 90px); }
  .vella-pagina .vp-filo-wrap { grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); }
  .vella-pagina .vp-c2 { padding-left: clamp(0px, 2.6vw, 40px); }
}

/* --------------------------------------------------------------------------
   Composición vertical
   -------------------------------------------------------------------------- */

@media (max-width: 860px) {
  .vella-pagina .vp-hero-wrap,
  .vella-pagina .vp-filo-wrap,
  .vella-pagina .vp-cur-wrap {
    grid-template-columns: 1fr;
    gap: clamp(26px, 6vw, 40px);
  }
  .vella-pagina .vp-hero-wrap { padding-block: clamp(40px, 8vw, 60px) clamp(48px, 9vw, 70px); }
  .vella-pagina .vp-hero-texto { order: 1; }
  .vella-pagina .vp-hero-foto  { order: 2; }
  .vella-pagina .vp-hero-foto .vp-foto img { height: clamp(400px, 96vw, 560px); object-position: 50% 22%; }

  /* Esencia: la principal a todo el ancho y el detalle como banda apaisada. */
  .vella-pagina .vp-esencia-wrap { grid-template-columns: 1fr; gap: clamp(24px, 6vw, 38px); }
  .vella-pagina .vp-esencia-texto,
  .vella-pagina .vp-esencia-principal,
  .vella-pagina .vp-esencia-detalle { grid-column: 1 / -1; margin-top: 0; padding-top: 0; }
  .vella-pagina .vp-esencia-principal .vp-foto img { height: clamp(400px, 100vw, 540px); }
  .vella-pagina .vp-esencia-detalle { max-width: 62%; margin-left: auto; }
  .vella-pagina .vp-esencia-detalle .vp-foto img { height: clamp(220px, 52vw, 300px); }

  .vella-pagina .vp-filo-foto .vp-foto img { height: clamp(400px, 100vw, 540px); }
  .vella-pagina .vp-c2 { padding-left: 0; }

  .vella-pagina .vp-cur-foto { margin-right: 0; }
  .vella-pagina .vp-cur-foto .vp-foto img { height: clamp(360px, 92vw, 480px); }

  .vella-pagina .vp-hero::after { font-size: clamp(110px, 34vw, 180px); }
}

@media (max-width: 480px) {
  .vella-pagina .vp-cierre-botones { flex-direction: column; --flex-direction: column; width: 100%; }
  .vella-pagina .vp-cierre-botones .elementor-widget-button,
  .vella-pagina .vp-cierre-botones .elementor-button { width: 100%; }
}
