.vs-social-strip{background:linear-gradient(115deg,#075aa2,#0877c9);color:#fff;margin-block:0;padding-block:33px}.vs-social-strip :where(.wp-block-group)>*{margin-block-start:0}.vs-social-inner{display:flex;justify-content:space-between;align-items:center;gap:45px}.vs-social-copy{max-width:760px}.vs-social-strip .vs-social-eyebrow{font:600 .64rem/1.4 var(--vs-font-body);letter-spacing:.14em;margin:0 0 9px;color:#d9f0ff}.vs-social-strip h2{font-size:clamp(1.5rem,2.1vw,2rem);line-height:1.15;letter-spacing:-.03em;color:#fff;margin:0 0 10px}.vs-social-copy>p:last-child{font-size:.88rem;line-height:1.5;margin:0;color:#fff}.vs-social-profiles{max-width:320px;min-width:210px}.vs-social-icons{margin:0;gap:12px}.vs-social-strip .vs-social-pending{font-size:.72rem;line-height:1.5;margin:0;color:#eaf6ff}.vs-social-strip .wp-social-link{border-radius:9px}.vs-social-strip .wp-social-link a{padding:12px 14px}.vs-social-strip a:focus-visible{outline:3px solid #fff;outline-offset:4px}.vs-social-strip .wp-social-link-label{font-size:.85rem}
@media(max-width:600px){.vs-social-strip{padding-block:28px}.vs-social-inner{align-items:flex-start;flex-direction:column;gap:21px}.vs-social-strip h2{font-size:1.6rem}.vs-social-copy>p:last-child{font-size:.84rem}.vs-social-profiles{max-width:100%;min-width:0}.vs-social-strip .wp-block-social-links{justify-content:flex-start}}

/* VillaSal: ritmo fluido entre secciones, sin alterar sus composiciones. */
:root {
  --vs-space-section: clamp(2.75rem, 5.5vw, 5.5rem);
  --vs-space-callout: clamp(2.5rem, 4vw, 4.5rem);
  --vs-space-linked: clamp(1.25rem, 2.3vw, 2.25rem);
  --vs-space-heading: clamp(1.25rem, 2.5vw, 2.25rem);
  --vs-space-social: clamp(1.25rem, 2.25vw, 2rem);
  --vs-nav-type: clamp(.875rem, .2vw + .75rem, .9375rem);
  --vs-footer-type: clamp(.9375rem, .2vw + .825rem, 1rem);
}
.vs-associates, .vs-activities,
.vs-association .vs-assoc-section,
.vs-work .vs-work-intro, .vs-work .vs-work-lines, .vs-work .vs-work-featured, .vs-work .vs-work-future,
.vs-buy .vs-buy-value, .vs-buy .vs-buy-near, .vs-buy .vs-buy-discover,
.vs-members .vs-members-list, .vs-members .vs-members-close,
.vs-signup .vs-signup-why, .vs-signup .vs-signup-process, .vs-signup .vs-signup-application {
  padding-block: var(--vs-space-section);
}
.vs-values { padding-block: var(--vs-space-linked); }
.vs-local-inner { padding-block: clamp(2.25rem, 3.75vw, 4rem); }
.vs-local-reason { padding-block: var(--vs-space-linked); }
.vs-join, .vs-association .vs-assoc-cta, .vs-work .vs-work-cta, .vs-buy .vs-buy-closing {
  padding-block: var(--vs-space-callout);
}
.vs-activities .vs-section-heading { margin-block-end: var(--vs-space-heading); }
.vs-header .wp-block-navigation { font-size: var(--vs-nav-type); }
.vs-header .wp-block-navigation__container { gap: clamp(.75rem, 1.3vw, 1.25rem); }
.vs-header-actions { gap: clamp(.875rem, 1.5vw, 1.5rem); }
.vs-nav-cta .wp-block-button__link {
  font-size: clamp(.8125rem, .25vw + .75rem, .9375rem);
  padding-block: .75rem;
  padding-inline: clamp(.8rem, 1.1vw, 1.125rem);
}
.vs-footer { padding-block: clamp(1.5rem, 3vw, 2.5rem); }
.vs-footer-sections { gap: .75rem clamp(1rem, 1.6vw, 1.5rem); }
.vs-footer-sections p, .vs-footer-sections a { font-size: var(--vs-footer-type); line-height: 1.5; }
.vs-footer-name { font-size: clamp(.8125rem, 1vw, .9375rem); line-height: 1.5; }
.vs-footer-bottom {
  display: flex; flex-wrap: wrap; align-items: flex-start;
  gap: clamp(.75rem, 2vw, 1.5rem);
  padding-block-start: var(--vs-space-linked);
  margin-block-start: var(--vs-space-linked);
}
.vs-footer-bottom > * { flex: 1 1 18rem; }
.vs-footer-bottom p { font-size: clamp(.8125rem, 1vw, .875rem); line-height: 1.5; }
.vs-social-strip { padding-block: var(--vs-space-social); margin-block: 0; }
.vs-social-inner { gap: clamp(1rem, 3vw, 2.5rem); }
.vs-social-strip h2 { font-size: clamp(1.25rem, 1.7vw, 1.625rem); margin-block-end: .5rem; }
.vs-social-strip .vs-social-eyebrow { font-size: .75rem; margin-block-end: .5rem; }
.vs-social-copy > p:last-child { font-size: .9375rem; line-height: 1.5; }
.vs-social-strip .wp-social-link a { padding: .625rem .875rem; }
.vs-social-strip .wp-social-link-label { font-size: .9375rem; }
.wp-site-blocks > :last-child { margin-block-end: 0; }
@media (max-width: 64rem) {
  .vs-header-actions { flex-direction: row-reverse; gap: clamp(.75rem, 2vw, 1.25rem); }
  .vs-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
  .vs-header .wp-block-navigation__responsive-container-open { display: flex; }
  .vs-header .wp-block-navigation__responsive-container.is-menu-open {
    display: flex; inset: 0; background: white;
    padding: clamp(4.5rem, 9vw, 6rem) 1.5rem 2rem;
  }
  .vs-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    gap: 1.5rem; font-size: 1.0625rem; align-items: flex-start;
  }
}
@media (min-width: 64.001rem) {
  .vs-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block; }
  .vs-header .wp-block-navigation__responsive-container-open { display: none; }
}
@media (max-width: 37.5rem) {
  .vs-local-inner { padding-block: 1.75rem 1.25rem; }
  .vs-social-inner { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .vs-social-profiles { min-width: 0; max-width: 100%; }
  .vs-social-strip h2 { font-size: 1.375rem; }
  .vs-header .vs-nav-cta .wp-block-button__link { font-size: .8125rem; }
}

/* Footer: conservar tipografia, dar al menu toda la anchura necesaria. */
.vs-footer-top {
  display: grid;
  grid-template-columns: 6.25rem minmax(0, 1fr);
  align-items: center;
  gap: clamp(1rem, 1.8vw, 1.75rem);
}
.vs-footer-top .vs-footer-logo { grid-column: 1; }
.vs-footer-top .vs-footer-name { grid-column: 2; min-width: 0; }
.vs-footer-top .vs-footer-sections {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  max-width: none;
  min-width: 0;
  gap: .75rem clamp(.875rem, 1.4vw, 1.25rem);
}
.vs-footer-sections p { flex: 0 0 auto; }
.vs-footer-sections a { white-space: nowrap; }
@media (min-width: 64rem) {
  .vs-footer-top .vs-footer-sections { flex-wrap: nowrap; }
}
@media (min-width: 78rem) {
  .vs-footer-top {
    grid-template-columns: 6.25rem minmax(12rem, 1fr) max-content;
    column-gap: clamp(1.25rem, 2vw, 2rem);
  }
  .vs-footer-top .vs-footer-sections { grid-column: 3; justify-content: flex-end; }
}

/* Redes oficiales: franja compacta y botones vectoriales nativos de WordPress. */
.vs-social-strip .vs-social-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: center;
  gap: clamp(1.5rem, 3vw, 2.5rem);
}
.vs-social-strip .vs-social-copy { min-width: 0; max-width: none; }
.vs-social-strip .vs-social-profiles { min-width: 0; max-width: none; }
.vs-social-strip h2 { font-size: clamp(1.25rem, 1.6vw, 1.625rem); }
.vs-social-strip .vs-social-icons {
  display: flex;
  flex-wrap: nowrap;
  gap: .75rem;
  margin: 0;
  padding: 0;
}
.vs-social-strip .wp-social-link {
  margin: 0;
  border-radius: .625rem;
  overflow: visible;
  transition: none;
}
.vs-social-strip .wp-social-link:hover { transform: none; }
.vs-social-strip .wp-social-link a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .625rem;
  min-height: 3.125rem;
  padding: .8125rem 1rem;
  box-sizing: border-box;
  border-radius: .625rem;
  background: #fff;
  color: var(--vs-blue, #075AA2);
  text-decoration: none;
  transition: background-color .15s ease, box-shadow .15s ease;
}
.vs-social-strip .wp-social-link svg {
  width: 1.375rem;
  height: 1.375rem;
  flex: 0 0 1.375rem;
  fill: currentColor;
}
.vs-social-strip .wp-social-link-label {
  font: 600 .9375rem/1.3 var(--vs-font-body);
  white-space: nowrap;
}
.vs-social-strip .wp-social-link a:hover {
  background: var(--vs-ice, #EAF6FF);
  color: var(--vs-blue, #075AA2);
  box-shadow: 0 .25rem .875rem #003b6924;
}
.vs-social-strip .wp-social-link a:focus-visible {
  outline: .1875rem solid #fff;
  outline-offset: .25rem;
  box-shadow: 0 0 0 .0625rem var(--vs-blue, #075AA2);
}
@media (max-width: 64rem) {
  .vs-social-strip .vs-social-inner { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .vs-social-strip .vs-social-icons { justify-content: flex-start; }
}
@media (max-width: 37.5rem) {
  .vs-social-strip .vs-social-profiles { width: 100%; }
  .vs-social-strip .vs-social-icons { display: grid; grid-template-columns: minmax(0, 1fr); gap: .625rem; }
  .vs-social-strip .wp-social-link a { display: flex; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .vs-social-strip .wp-social-link a { transition: none; }
}

/* Fotografía aérea de portada: modificar solo el encuadre, sin alterar el hero. */
body.home .vs-hero .vs-hero-photo img{object-fit:cover;object-position:60% 52%}
@media(max-width:1000px){body.home .vs-hero .vs-hero-photo img{object-position:66% 50%}}
@media(max-width:620px){body.home .vs-hero .vs-hero-photo img{object-position:55% 50%}}
/* Home only. Keep the existing hero/curve/text geometry; crop photo and pins together. */
body.home .vs-hero .vs-commerce-scene {
  --vs-photo-x: .60;
  --vs-photo-y: .52;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  visibility: hidden;
  pointer-events: none;
}
body.home .vs-hero .vs-commerce-scene.is-ready { visibility: visible; }
body.home .vs-hero .vs-hero-marker { opacity: 0; transform-origin: 0 0; }
body.home .vs-hero .is-ready .vs-hero-marker {
  animation: vs-marker-reveal .65s cubic-bezier(.2,.6,.3,1) var(--vs-pin-delay) 1 both;
}
body.home .vs-hero .vs-halo-pulse { transform-origin: 0 0; }
body.home .vs-hero .is-ready .vs-halo-pulse {
  animation: vs-marker-glow 1.1s ease-in-out calc(var(--vs-pin-delay) + .5s) 1 both;
}
@keyframes vs-marker-reveal {
  from { opacity: 0; transform: scale(.94); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes vs-marker-glow {
  0%, 100% { opacity: .74; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.06); }
}
@media (max-width: 1000px) {
  body.home .vs-hero .vs-commerce-scene { --vs-photo-x: .66; --vs-photo-y: .50; }
}
@media (max-width: 620px) {
  body.home .vs-hero .vs-commerce-scene { --vs-photo-x: .55; --vs-photo-y: .50; }
}
@media (prefers-reduced-motion: reduce) {
  body.home .vs-hero .vs-hero-marker,
  body.home .vs-hero .vs-halo-pulse {
    opacity: 1;
    transform: none;
    animation: none !important;
  }
}

/* Homepage activity cards only: image headers and aligned links, including mobile. */
body.home .vs-activities .vs-activity-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: 100%;
}
body.home .vs-activities .vs-activity-photo {
  flex: none;
  height: auto;
  min-height: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}
body.home .vs-activities .vs-activity-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}
body.home .vs-activities .vs-activity-card:first-child .vs-activity-photo img { object-position: 35% 55%; }
body.home .vs-activities .vs-activity-card:nth-child(2) .vs-activity-photo img { object-position: 55% 45%; }
body.home .vs-activities .vs-activity-card:nth-child(3) .vs-activity-photo img { object-position: 30% 50%; }
body.home .vs-activities .vs-activity-body {
  display: flex;
  flex-direction: column;
  flex: 1;
}
body.home .vs-activities .vs-card-link {
  margin-block-start: auto;
  padding-block-start: clamp(.5rem, 1vw, .875rem);
}

/* Homepage local-shopping photograph only: preserve section geometry and its gradient. */
body.home .vs-local .vs-local-photo img { object-fit: cover; object-position: 50% 52%; }
@media (max-width: 900px) and (min-width: 601px) {
  body.home .vs-local .vs-local-photo img { object-position: 52% 52%; }
}
@media (max-width: 600px) {
  body.home .vs-local .vs-local-photo img { object-position: 50% 55%; }
}

/* Homepage only: shorter shopping CTA and a readable editorial transition. */
body.home .vs-local .wp-block-button__link { white-space: nowrap; }
body.home .vs-local-reason {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin: 0;
  padding-block: clamp(2.75rem, 5vw, 5.5rem);
  background: var(--vs-ice, #EAF6FF);
  text-align: center;
}
body.home .vs-local-reason-inner {
  max-width: 54rem;
  margin-inline: auto;
}
body.home .vs-local-reason .vs-local-reason-eyebrow {
  max-width: none;
  margin: 0 0 clamp(.875rem, 1.4vw, 1.25rem);
  color: var(--vs-blue, #075AA2);
  font: 600 clamp(.6875rem, .6rem + .25vw, .8125rem)/1.5 var(--vs-font-body);
  letter-spacing: .13em;
}
body.home .vs-local-reason .vs-local-reason-title {
  margin: 0;
  color: var(--vs-blue, #075AA2);
  font-family: var(--vs-font-heading);
  font-size: clamp(1.625rem, 1.2rem + 1.3vw, 2.375rem);
  font-weight: 800;
  line-height: 1.28;
  letter-spacing: -.03em;
  text-wrap: balance;
}
body.home .vs-local-reason .vs-local-reason-description {
  max-width: 43rem;
  margin: clamp(1rem, 1.8vw, 1.625rem) auto 0;
  color: var(--vs-ink, #06234d);
  font: 400 clamp(1rem, .9rem + .35vw, 1.1875rem)/1.65 var(--vs-font-body);
  text-wrap: pretty;
}

/* Editorial title: independent translate composes with the existing reveal transform. */
body.home .vs-local-reason .vs-local-reason-title {
  translate: 0 var(--vs-editorial-parallax, 0px);
}
body.home .vs-local-reason .vs-local-reason-description {
  max-width: 54rem;
  font-size: clamp(1rem, .925rem + .15vw, 1.0625rem);
}
@media (max-width: 900px), (pointer: coarse), (prefers-reduced-motion: reduce) {
  body.home .vs-local-reason .vs-local-reason-title { translate: none; }
}
.vs-footer .vs-footer-credit a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: .2em;
}
.vs-footer .vs-footer-credit a:hover,
.vs-footer .vs-footer-credit a:focus-visible {
  color: var(--vs-blue, #075AA2);
  text-decoration: underline;
}
.vs-footer .vs-footer-credit a:focus-visible {
  outline: .125rem solid currentColor;
  outline-offset: .1875rem;
  border-radius: .125rem;
}

/* Portada: segunda frase del titular al 72 %, sin saltos forzados. */
body.home .vs-hero h1 > br,
body.home .vs-hero h1 em br {
  display: none;
}
body.home .vs-hero h1 em {
  display: block;
  font-size: .72em;
  line-height: 1.12;
  margin-block-start: .16em;
}
