﻿/** Shopify CDN: Minification failed

Line 522:0 Unexpected "}"

**/
/* ==========================================================================
   Veracruz — coral orange against deep-sea teal
   Palette: teal #14454F / deep #0E323A | coral #D96A48 / deep #B04E33
            sand #F2E8D5 | mango #E8B83C
   Hard edges only: coral and teal never blend; a 2px sand rule sits between.
   ========================================================================== */

:root {
  --vz-teal: #14454f;
  --vz-teal-deep: #0e323a;
  --vz-coral: #d96a48;
  --vz-coral-deep: #b04e33;
  --vz-coral-ink: #a5462c;
  --vz-sand: #f2e8d5;
  --vz-sand-2: #e8dcc4;
  --vz-mango: #e8b83c;
  --vz-rule: rgba(20, 69, 79, 0.25);
}

.vz {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  color: var(--vz-teal-deep);
  -webkit-font-smoothing: antialiased;
}
.vz * { box-sizing: border-box; }
.vz img { display: block; max-width: 100%; }
/* The parent theme forces svg { width:17px; height:18px } — every decorative svg in
   this homepage is sized by its own class, so pin width/height back to 100% there. */
.vz svg { display: block; }
.vz-hero__papel, .vz-hero__gull, .vz-hero__branch,
.vz-papelband__ropes, .vz-papelband__branch, .vz-papelband__gulls,
.vz-signup__pot, .vz-signup__steam, .vz-signup__papel,
.vz-coast__sky svg, .vz-coast__ripple, .vz-coast__anchor,
.vz-footer__lancha, .vz-footer__band-left svg,
.vz-card__weed, .vz-reviews__flower { width: 100%; height: auto; }
.vz h1, .vz h2, .vz h3, .vz h4, .vz p, .vz ul, .vz ol { margin: 0; padding: 0; }
.vz ul, .vz ol { list-style: none; }
/* Bare anchors inherit; component rules keep their own colour. */
.vz a:not([class]) { text-decoration: none; color: inherit; }

/* Full-bleed helper: escape the theme container */
.vz-bleed {
  position: relative;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* ------------------------------------------------------------ typography */
.vz-eyebrow {
  font-size: 11px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 700;
}
.vz-display {
  font-family: Georgia, "Times New Roman", "Iowan Old Style", serif;
  font-weight: 700;
  line-height: 0.98;
  letter-spacing: -0.01em;
}
.vz-body-copy { font-size: 14px; line-height: 1.62; }
.vz-small { font-size: 11.5px; letter-spacing: 0.04em; }

/* --------------------------------------------------------------- motion */
.vz-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.72s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.72s cubic-bezier(0.22, 0.61, 0.36, 1);
  will-change: opacity, transform;
}
.vz-reveal.is-in { opacity: 1; transform: none; }
.vz-reveal[data-delay="1"] { transition-delay: 0.08s; }
.vz-reveal[data-delay="2"] { transition-delay: 0.16s; }
.vz-reveal[data-delay="3"] { transition-delay: 0.24s; }

/* ambient: only three, all slow */
@keyframes vz-ripple { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-14px); } }
@keyframes vz-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes vz-bubble {
  0% { transform: translateY(0) scale(0.85); opacity: 0; }
  18% { opacity: 0.85; }
  100% { transform: translateY(-120px) scale(1.08); opacity: 0; }
}
.vz-ripple-run { animation: vz-ripple 10s ease-in-out infinite; }
.vz-sway-run { animation: vz-sway 3.5s ease-in-out infinite; transform-origin: 50% 0; }
.vz-bubble-run { animation: vz-bubble 12s linear infinite; }

@media (prefers-reduced-motion: reduce) {
  .vz-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .vz-ripple-run, .vz-sway-run, .vz-bubble-run { animation: none !important; }
}

/* =========================================================== 1 cold strip */
.vz-coldbar {
  background: var(--vz-teal-deep);
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 22px;
}
.vz-coldbar__dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--vz-coral);
  flex: 0 0 auto;
}
.vz-coldbar__items {
  display: flex; align-items: center; gap: 0;
  color: var(--vz-sand);
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  font-weight: 600;
}
.vz-coldbar__items > span + span::before {
  content: "";
  display: inline-block;
  width: 1px; height: 10px;
  background: rgba(242, 232, 213, 0.45);
  margin: 0 14px;
  vertical-align: -1px;
}

/* ================================================================= 2 hero */
.vz-hero { position: relative; background: var(--vz-teal-deep); overflow: hidden; }
/* No overlay, no veil, no gradient over the photograph. Only the text plate is opaque. */
.vz-hero__media { position: relative; height: clamp(520px, 74vh, 780px); }
.vz-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.vz-hero__block {
  position: absolute;
  left: 0; bottom: 0;
  width: 34%;
  min-width: 320px;
  max-width: 520px;
  background: var(--vz-teal-deep);
  padding: 34px 32px 30px;
  display: flex; flex-direction: column; gap: 14px;
}
.vz-hero__eyebrow { color: var(--vz-mango); }
.vz-hero__title {
  color: var(--vz-sand);
  font-size: clamp(34px, 3.6vw, 58px);
}
.vz-hero__sub { color: rgba(242, 232, 213, 0.82); font-size: 13.5px; line-height: 1.5; }
.vz-hero__cta {
  align-self: flex-start;
  margin-top: 4px;
  background: var(--vz-coral-ink);
  color: var(--vz-sand);
  padding: 13px 26px;
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase;
  transition: background-color 0.21s ease, transform 0.21s ease;
}
.vz-hero__cta:hover { background: #8E3A25; transform: translateY(-2px); }
.vz-hero__papel { position: absolute; top: 26px; right: 26px; width: 190px; opacity: 0.9; }
.vz-hero__branch { display: none; }
.vz-hero__mango {
  position: absolute; right: 14px; bottom: 14px;
  width: 9px; height: 9px; background: var(--vz-mango);
}
.vz-hero__gull {
  position: absolute; top: 18%; left: 58%; width: 64px; opacity: 0;
  animation: vz-gullpass 16s linear 1 forwards;
}
@keyframes vz-gullpass {
  0% { transform: translate(120px, 0); opacity: 0; }
  12% { opacity: 0.9; }
  70% { opacity: 0.9; }
  100% { transform: translate(-340px, -26px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .vz-hero__gull { display: none; } }

@media (max-width: 767px) {
  .vz-hero__media { height: 560px; }
  .vz-hero__block { width: 100%; max-width: none; min-width: 0; padding: 26px 20px; }
  .vz-hero__papel { width: 120px; top: 14px; right: 12px; }
}

/* ================================================= 3 relief tile grid (A) */
.vz-relief { background: var(--vz-sand); padding: 64px 0 8px; }
.vz-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 26px; }
.vz-head__kicker { color: var(--vz-coral-deep); margin-bottom: 8px; display: block; }
.vz-head__title { font-size: clamp(26px, 2.6vw, 40px); color: var(--vz-teal-deep); }
.vz-head__note { max-width: 330px; color: var(--vz-teal-deep); font-size: 12.5px; line-height: 1.55; }
.vz-wrap { width: min(1440px, 100% - 64px); margin: 0 auto; }

.vz-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.vz-tile {
  position: relative;
  display: flex; flex-direction: column;
  padding: 0;
  border-radius: 4px;
  overflow: hidden;
  transition: transform 0.22s ease, background-color 0.22s ease;
  min-width: 0;
}
.vz-tile--teal { background: var(--vz-teal); }
.vz-tile--coral { background: var(--vz-coral); }
/* hard 2px sand seam only where colours meet */
.vz-tile--teal + .vz-tile--coral,
.vz-tile--coral + .vz-tile--teal {
  border-left: 2px solid var(--vz-sand);
  margin-left: -2px;
}

.vz-tile__head { display: flex; align-items: center; padding: 8px 8px 0; min-height: 36px; }
.vz-tile__media { position: relative; margin: 0 8px; aspect-ratio: 1 / 1; overflow: hidden; }
.vz-tile__media img {
  width: 100%; height: 100%; object-fit: cover;
  box-shadow: 3px 3px 0 var(--vz-teal-deep);
  transition: box-shadow 0.22s ease;
}
.vz-tile__tag {
  position: relative; left: 0; top: 0;
  width: 64px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  font-size: 9px; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase;
  color: var(--vz-sand);
  padding: 0 3px;
  text-align: center;
  line-height: 1.05;
  z-index: 2;
}
.vz-tile--teal .vz-tile__tag { background: var(--vz-coral-ink); box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.3); }
.vz-tile--coral .vz-tile__tag { background: var(--vz-teal-deep); box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.35); }

/* coral cards keep coral for the ground, but every band that carries small type
   drops to coral-ink so the text keeps its contrast */
.vz-tile--coral .vz-tile__bar,
.vz-tile--coral .vz-tile__intro { background: var(--vz-coral-ink); }
.vz-tile--coral:hover .vz-tile__bar,
.vz-tile--coral:hover .vz-tile__intro { background: #8E3A25; }

.vz-tile__bar {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  height: 36px; padding: 0 12px; margin-top: 8px;
  color: var(--vz-sand);
  font-size: 12.5px; font-weight: 500;
}
.vz-tile__bar svg { flex: 0 0 auto; }
.vz-tile__intro { padding: 10px 12px 14px; color: #F2E8D5; font-size: 10.5px; line-height: 1.55; }
.vz-tile__intro b { color: #FFFFFF; font-weight: 700; }

/* sawtooth corner marks, inward only */
.vz-tile__corners { position: absolute; inset: 0; pointer-events: none; }
.vz-tile__corners i {
  position: absolute; width: 12px; height: 12px;
  border: 0;
}
.vz-tile__corners i::before,
.vz-tile__corners i::after {
  content: ""; position: absolute; background: var(--vz-mango);
}
.vz-tile__corners i::before { width: 1.5px; height: 6px; }
.vz-tile__corners i::after { width: 6px; height: 1.5px; }
.vz-tile__corners i:nth-child(1) { left: 5px; top: 5px; }
.vz-tile__corners i:nth-child(2) { right: 5px; top: 5px; transform: scaleX(-1); }
.vz-tile__corners i:nth-child(3) { left: 5px; bottom: 5px; transform: scaleY(-1); }
.vz-tile__corners i:nth-child(4) { right: 5px; bottom: 5px; transform: scale(-1, -1); }

.vz-tile:hover { transform: translateY(-4px); }
.vz-tile--teal:hover { background: var(--vz-teal-deep); }
.vz-tile--coral:hover { background: var(--vz-coral-deep); }
.vz-tile:hover .vz-tile__media img { box-shadow: 4px 4px 0 var(--vz-teal-deep); }
.vz-tile--teal:hover .vz-tile__tag { background: #8E3A25; }
.vz-tile--coral:hover .vz-tile__tag { background: var(--vz-teal-deep); }
.vz-tile:focus-visible { outline: 1px solid var(--vz-mango); outline-offset: -1px; }

@media (max-width: 1023px) { .vz-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .vz-wrap { width: calc(100% - 28px); }
  .vz-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vz-tile__media { margin: 6px 6px 0; }
  .vz-tile__tag { width: 54px; height: 22px; font-size: 7.5px; left: 8px; top: 8px; }
  .vz-tile__bar { height: 31px; padding: 0 8px; font-size: 10.5px; }
  .vz-tile__bar svg { width: 16px; height: 16px; }
  .vz-tile__intro { padding: 7px 8px 10px; font-size: 9px; line-height: 1.45; }
  .vz-head { flex-direction: column; align-items: flex-start; }
}

/* ================================================ 4 pot-tag rail (B) */
.vz-rail { background: var(--vz-sand); padding: 54px 0 64px; }
.vz-rail__stage { position: relative; padding: 0 0 0 0; }
.vz-rail__track {
  display: flex; gap: 20px;
  overflow-x: auto;
  scroll-behavior: smooth;
  padding: 32px 8px;
  scrollbar-width: none;
  cursor: grab;
}
.vz-rail__track::-webkit-scrollbar { display: none; }
.vz-rail__track.is-drag { cursor: grabbing; scroll-behavior: auto; }
.vz-card {
  position: relative;
  flex: 0 0 clamp(420px, 38vw, 560px);
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  background: var(--vz-teal);
  border-radius: 4px;
  overflow: hidden;
  transition: transform 0.22s ease, background-color 0.22s ease;
}
.vz-card:nth-child(even) { background: var(--vz-coral); }
.vz-card__tag {
  position: relative;
  background: var(--vz-coral-ink);
  color: var(--vz-sand);
  display: flex; align-items: center; justify-content: center;
  border-radius: 4px 0 0 4px;
  clip-path: polygon(0 6px, 6px 0, calc(100% - 6px) 0, 100% 6px, 100% calc(100% - 6px), calc(100% - 6px) 100%, 6px 100%, 0 calc(100% - 6px));
}
.vz-card:nth-child(even) .vz-card__tag { background: var(--vz-teal-deep); }
.vz-card__tag span {
  writing-mode: vertical-rl;
  text-orientation: mixed;
  transform: rotate(180deg);
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  padding: 12px 0;
  box-shadow: inset 2px 2px 0 rgba(14, 50, 58, 0.55);
}
.vz-card__body { display: flex; flex-direction: column; border-left: 2px solid var(--vz-sand); }
.vz-card__media { position: relative; margin: 12px 12px 0; aspect-ratio: 3 / 2; overflow: hidden; background: rgba(14, 50, 58, 0.35); }
.vz-card__media img { width: 100%; height: 100%; object-fit: cover; box-shadow: 0 3px 0 var(--vz-teal-deep); }
.vz-card__strip {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  height: 32px; margin-top: 10px; padding: 0 12px;
  background: var(--vz-teal-deep);
  color: rgba(242, 232, 213, 0.9);
  font-size: 10.5px; font-weight: 400; letter-spacing: 0.03em;
}
.vz-card:nth-child(even) .vz-card__strip { background: #8E3A25; }
.vz-card:nth-child(even) .vz-card__intro { background: var(--vz-coral-ink); }
.vz-card__strip svg { flex: 0 0 auto; }
.vz-card__intro { padding: 11px 12px 14px; color: #E4DAC6; font-size: 10.5px; line-height: 1.55; }
.vz-card__intro b { color: #FFFFFF; font-weight: 700; }
.vz-card__weed { position: absolute; right: 10px; bottom: 10px; opacity: 0.85; transition: opacity 0.22s ease; }
.vz-card:hover { transform: translateY(-3px); }
.vz-card:hover .vz-card__weed { opacity: 1; filter: brightness(1.18); }

.vz-rail__nav {
  position: absolute; top: 46%; width: 44px; height: 44px;
  border-radius: 50%;
  border: 0; padding: 0;
  background: var(--vz-teal);
  color: var(--vz-sand);
  box-shadow: inset 2px 2px 0 var(--vz-teal-deep);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background-color 0.2s ease;
  z-index: 3;
}
.vz-rail__nav:hover { background: var(--vz-coral-deep); }
.vz-rail__nav--prev { left: -6px; }
.vz-rail__nav--next { right: -6px; }

@media (max-width: 767px) {
  .vz-card { flex-basis: 84vw; }
  .vz-rail__nav { display: none; }
}

/* ============================================= 5 niche pyramid (C) */
.vz-niche {
  background:
    linear-gradient(180deg, rgba(14, 50, 58, 0.94), rgba(14, 50, 58, 0.98)),
    url("vz-sandstone.jpg") center / 620px auto repeat;
  background-blend-mode: multiply, normal;
  padding: 54px 0 30px;
  color: var(--vz-sand);
}
.vz-niche .vz-head__title { color: var(--vz-sand); }
.vz-niche .vz-head__kicker { color: var(--vz-mango); background: var(--vz-teal-deep); padding: 4px 9px; display: inline-block; }
.vz-niche .vz-head__note { color: rgba(242, 232, 213, 0.74); }

.vz-pyramid { display: flex; flex-direction: column; gap: 14px; align-items: center; }
.vz-pyramid__row { display: grid; gap: 14px; width: 100%; }
.vz-pyramid__row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vz-pyramid__row--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); width: min(62%, 820px); }
.vz-pyramid__row--1 { grid-template-columns: minmax(0, 1fr); width: min(30%, 400px); }

.vz-cell {
  position: relative;
  display: flex; flex-direction: column;
  padding: 13px 13px 14px;
  background:
    linear-gradient(180deg, rgba(14, 50, 58, 0.30), rgba(14, 50, 58, 0.62)),
    url("vz-sandstone.jpg") center / 460px auto;
  background-blend-mode: multiply, normal;
  border: 1px solid rgba(242, 232, 213, 0.22);
  /* the niche is cut INTO the wall: the shadow falls inward, top-left */
  box-shadow: inset 5px 5px 0 rgba(9, 32, 38, 0.55), inset -2px -2px 0 rgba(242, 232, 213, 0.14);
  transition: transform 0.22s ease;
}
.vz-cell:hover { transform: translateY(-3px); }
.vz-cell__plaque {
  align-self: flex-start;
  background: var(--vz-teal);
  color: var(--vz-sand);
  font-size: 8.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase;
  padding: 6px 9px; margin-bottom: 12px;
  box-shadow: inset 2px 2px 0 var(--vz-teal-deep);
}
.vz-cell__price {
  position: absolute; right: 16px; top: 16px;
  background: var(--vz-coral-ink);
  color: var(--vz-sand);
  font-size: 12px; font-weight: 700;
  padding: 6px 9px;
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, 0.28);
}
.vz-cell__hole {
  display: block;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #0a2429;
  /* the inner face of the niche, darker than the wall around it */
  box-shadow: inset 0 0 0 1px rgba(242, 232, 213, 0.18), inset 6px 6px 18px rgba(0, 0, 0, 0.55);
}
.vz-cell__hole img { width: 100%; height: 100%; object-fit: cover; }
.vz-cell__name {
  margin-top: 12px;
  font-size: 14px; font-weight: 600; color: var(--vz-sand);
  background: rgba(9, 32, 38, 0.9);
  padding: 5px 8px;
  align-self: flex-start;
}
.vz-cell__meta {
  margin-top: 6px;
  font-size: 10px; line-height: 1.5;
  color: rgba(242, 232, 213, 0.94);
  background: rgba(9, 32, 38, 0.9);
  padding: 7px 8px;
}
.vz-cell__meta b { color: #FFFFFF; font-weight: 700; }

@media (max-width: 900px) {
  .vz-pyramid__row--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vz-pyramid__row--2, .vz-pyramid__row--1 { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .vz-pyramid__row--3, .vz-pyramid__row--2, .vz-pyramid__row--1 { grid-template-columns: minmax(0, 1fr); }
}

/* ============================================== 6 ice counter (D)
   Deliberately NOT a square grid: portrait crops, staggered vertical rhythm, a printed
   ticket under each lot, and the whole row sitting on one crushed-ice slab. */
.vz-ice { background: var(--vz-sand); padding: 26px 0 0; }
.vz-ice__slab {
  position: relative;
  background: url("vz-ice.jpg") center / cover;
  border-top: 6px solid var(--vz-coral);
  border-bottom: 6px solid var(--vz-coral);
  padding: 30px 0 38px;
}
.vz-ice__slab::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(246, 243, 234, 0.90), rgba(246, 243, 234, 0.72) 40%, rgba(246, 243, 234, 0.90));
  pointer-events: none;
}
.vz-ice__inner { position: relative; }
.vz-ice__title { color: var(--vz-teal-deep); font-size: clamp(22px, 2.2vw, 32px); margin-bottom: 5px; }
.vz-ice__note { color: var(--vz-teal-deep); font-size: 12px; margin-bottom: 18px; }

.vz-ice__row {
  display: grid;
  /* a long counter, not four equal tiles: 1.7 / 1 / 1.15 / 0.85 */
  grid-template-columns: 1.7fr 1fr 1.15fr 0.85fr;
  gap: 18px;
  align-items: end;
}
.vz-slab {
  position: relative;
  display: flex; flex-direction: column;
  background: #F7F4EC;
  border-left: 4px solid var(--vz-coral);
  box-shadow: 6px 6px 0 rgba(14, 50, 58, 0.12);
  transition: transform 0.22s ease;
}
/* each lot stands at its own height on the slab */
.vz-slab:nth-child(1) .vz-slab__media { aspect-ratio: 5 / 4; }
.vz-slab:nth-child(2) .vz-slab__media { aspect-ratio: 3 / 4; }
.vz-slab:nth-child(3) .vz-slab__media { aspect-ratio: 1 / 1; }
.vz-slab:nth-child(4) .vz-slab__media { aspect-ratio: 2 / 3; }
.vz-slab:hover { transform: translateY(-4px); }

.vz-slab__media { position: relative; overflow: hidden; background: #dce9ee; }
.vz-slab__media img { width: 100%; height: 100%; object-fit: cover; }
.vz-slab__tag {
  position: absolute; left: 0; bottom: 0;
  background: var(--vz-teal-deep);
  color: var(--vz-sand);
  font-size: 9px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  padding: 5px 8px;
}
.vz-slab__foot {
  display: flex; align-items: baseline; justify-content: space-between; gap: 8px;
  padding: 10px 11px 4px;
  background: #F7F4EC;
  color: var(--vz-teal-deep);
}
.vz-slab__foot strong { font-size: 12.5px; font-weight: 700; }
.vz-slab__foot span { font-size: 12px; color: var(--vz-coral-ink); font-weight: 700; }
.vz-slab__intro {
  padding: 4px 11px 12px;
  background: #F7F4EC;
  color: #1B4A52; font-size: 10px; line-height: 1.5;
}
@media (max-width: 1023px) {
  .vz-ice__row { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .vz-slab:nth-child(1) .vz-slab__media,
  .vz-slab:nth-child(2) .vz-slab__media,
  .vz-slab:nth-child(3) .vz-slab__media,
  .vz-slab:nth-child(4) .vz-slab__media { aspect-ratio: 4 / 3; }
}
}
@media (max-width: 560px) {
  .vz-ice__row { grid-template-columns: minmax(0, 1fr); }
}

/* ============================================ 7 coastline scroll */
.vz-coast { background: var(--vz-sand); padding: 56px 0 64px; }
.vz-coast__frame {
  border: 1px solid var(--vz-rule);
  border-radius: 10px;
  background: var(--vz-sand);
  overflow: hidden;
}
.vz-coast__sky { position: relative; height: 210px; background: linear-gradient(180deg, #d8e4e2, #efe7d6); overflow: hidden; }
.vz-coast__sky svg { position: absolute; left: 0; bottom: 0; width: 100%; height: 100%; }
.vz-coast__ripple { position: absolute; left: -20px; right: -20px; top: 26px; height: 26px; opacity: 0.5; }
.vz-coast__cols { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(20, 69, 79, 0.18); }
.vz-coast__col { position: relative; padding: 30px 26px 26px; }
.vz-coast__col + .vz-coast__col { border-left: 1px dashed rgba(20, 69, 79, 0.22); }
.vz-coast__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--vz-coral); margin-bottom: 10px; }
.vz-coast__name { color: var(--vz-teal-deep); font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.vz-coast__copy { color: var(--vz-teal-deep); font-size: 12px; line-height: 1.6; }
.vz-coast__method {
  display: inline-block; margin-top: 9px;
  background: var(--vz-sand); color: var(--vz-coral-ink);
  padding: 3px 8px; font-size: 11px; letter-spacing: 0.03em;
}
.vz-coast__anchor { position: absolute; left: 18px; bottom: 14px; opacity: 0.28; }
.vz-coast__frame .vz-tank { position: absolute; right: 20px; bottom: 16px; opacity: 0.85; }
@media (max-width: 767px) {
  .vz-coast__sky { height: 150px; }
  .vz-coast__cols { grid-template-columns: minmax(0, 1fr); }
  .vz-coast__col + .vz-coast__col { border-left: 0; border-top: 1px dashed rgba(20, 69, 79, 0.22); }
}

/* ========================================= 8 papel band (decor only) */
.vz-papelband {
  position: relative;
  height: 200px;
  overflow: hidden;
  background: linear-gradient(90deg, var(--vz-teal) 0%, var(--vz-teal) 44%, var(--vz-coral) 56%, var(--vz-coral) 100%);
  border-top: 6px solid var(--vz-coral);
  border-bottom: 6px solid var(--vz-coral);
}
.vz-papelband__ropes { position: absolute; inset: 26px 0 auto; height: 150px; }
.vz-papelband__flags { position: absolute; left: 6px; right: 6px; top: 30px; display: flex; justify-content: space-around; overflow: hidden; }
.vz-papelband__flags svg { width: 74px; height: 88px; }
.vz-papelband__branch { position: absolute; left: 0; bottom: 6px; width: 46%; opacity: 0.55; }
.vz-papelband__gulls { position: absolute; right: 8%; top: 22px; width: 130px; opacity: 0.85; }

/* ============================================ 10 review strip */
.vz-reviews { background: var(--vz-sand); padding: 30px 0; }
.vz-reviews__box {
  display: flex; align-items: center; gap: 26px;
  border: 1px solid var(--vz-rule);
  border-radius: 8px;
  padding: 18px 22px;
  background: rgba(255, 255, 255, 0.35);
  position: relative;
}
.vz-reviews__score {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  background: var(--vz-teal); color: var(--vz-sand);
  border-radius: 8px; padding: 10px 16px; flex: 0 0 auto;
}
.vz-reviews__score strong { font-size: 20px; }
.vz-reviews__stars { color: var(--vz-mango); font-size: 11px; letter-spacing: 0.1em; }
.vz-reviews__items { display: flex; gap: 0; flex: 1 1 auto; }
.vz-reviews__item { flex: 1 1 0; padding: 0 20px; }
.vz-reviews__item + .vz-reviews__item { border-left: 1px solid var(--vz-coral); }
.vz-reviews__quote { font-size: 12.5px; line-height: 1.55; color: rgba(14, 50, 58, 0.86); }
.vz-reviews__who { margin-top: 6px; font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vz-teal); }
.vz-reviews__flower { position: absolute; right: 14px; top: 12px; opacity: 0.5; }
.vz-reviews__pip { position: absolute; left: 12px; top: 12px; width: 7px; height: 7px; background: var(--vz-coral); }
@media (max-width: 767px) {
  .vz-reviews__box { flex-direction: column; align-items: stretch; gap: 14px; }
  .vz-reviews__items { flex-direction: column; }
  .vz-reviews__item + .vz-reviews__item { border-left: 0; border-top: 1px solid var(--vz-coral); padding-top: 12px; margin-top: 12px; }
}

/* ============================================ 11 email signup */
.vz-signup {
  background: linear-gradient(90deg, var(--vz-teal) 0%, var(--vz-teal) 62%, var(--vz-teal-deep) 100%);
  color: var(--vz-sand);
  padding: 54px 0 46px;
  position: relative;
  overflow: hidden;
}
.vz-signup__pot { position: absolute; left: 3%; bottom: 0; width: 180px; opacity: 0.9; }
.vz-signup__steam { position: absolute; left: 12%; bottom: 148px; width: 90px; height: 70px; }
.vz-signup__steam path {
  stroke: rgba(242, 232, 213, 0.55);
  stroke-width: 2;
  fill: none;
  stroke-dasharray: 120;
  stroke-dashoffset: 120;
}
.vz-signup.is-in .vz-signup__steam path { animation: vz-draw 1.6s ease-out forwards; }
.vz-signup.is-in .vz-signup__steam path:nth-child(2) { animation-delay: 0.18s; }
.vz-signup.is-in .vz-signup__steam path:nth-child(3) { animation-delay: 0.36s; }
@keyframes vz-draw { to { stroke-dashoffset: 0; } }
.vz-signup__inner { position: relative; display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; padding-left: 120px; }
.vz-signup__title { font-size: clamp(22px, 2.2vw, 30px); }
.vz-signup__form { display: flex; align-items: center; gap: 0; width: min(560px, 100%); }
.vz-signup__field {
  flex: 1 1 auto;
  height: 54px;
  border: 1px solid var(--vz-teal-deep);
  border-right: 0;
  background: var(--vz-sand);
  color: var(--vz-teal-deep);
  padding: 0 18px;
  font-size: 13px;
  border-radius: 8px 0 0 8px;
  outline: none;
}
.vz-signup__field::placeholder { color: rgba(14, 50, 58, 0.5); }
.vz-signup__btn {
  height: 54px;
  padding: 0 26px;
  border: 0;
  border-radius: 0 8px 8px 0;
  background: var(--vz-coral-ink);
  color: var(--vz-sand);
  font-size: 11.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}
.vz-signup__btn:hover { background: var(--vz-teal-deep); color: var(--vz-sand); }
.vz-signup__line { font-size: 12px; color: rgba(242, 232, 213, 0.9); }
.vz-signup__fine { font-size: 10.5px; color: rgba(242, 232, 213, 0.78); }
.vz-signup__papel { position: absolute; right: 16px; bottom: 10px; width: 128px; opacity: 0.28; }
.vz-signup__pip { position: absolute; left: 16px; top: 16px; width: 8px; height: 8px; background: var(--vz-mango); }
.vz-signup__cane { position: absolute; left: 0; right: 0; bottom: 0; height: 18px; opacity: 0.22;
  background: url("vz-cane.jpg") center / cover; }
@media (max-width: 899px) {
  /* .vz svg { display:block } is (0,1,1); these have to match it or they lose */
  .vz svg.vz-signup__pot, .vz svg.vz-signup__steam,
  .vz .vz-signup__papel, .vz .vz-signup__pip { display: none; }
  .vz-signup__inner { padding-left: 0; }
  .vz-signup__form { flex-direction: column; gap: 10px; }
  .vz-signup__field, .vz-signup__btn { border-radius: 8px; width: 100%; border: 1px solid var(--vz-teal-deep); }
  .vz .vz-signup__cane { display: none; }
  .vz-signup { padding-bottom: 40px; }
}

/* ================================================ 12 footer */
.vz-footer { background: var(--vz-teal-deep); color: var(--vz-sand); padding: 0 0 26px; }
.vz-footer__band {
  position: relative;
  height: 78px;
  background: var(--vz-teal);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 22px;
  overflow: hidden;
}
.vz-footer__band svg { opacity: 0.9; }
.vz-footer__band-left { display: flex; gap: 4px; }
.vz-footer__band-left svg { width: 54px; height: 62px; }
.vz-footer__lancha { width: 120px; }
.vz-footer__grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 34px;
  padding: 42px 0 30px;
}
.vz-footer__brand { max-width: 320px; }
.vz-footer__brand p { margin-top: 12px; font-size: 12px; line-height: 1.65; color: rgba(242, 232, 213, 0.66); }
.vz-footer__col-title { color: var(--vz-mango); font-size: 10px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; margin-bottom: 14px; }
.vz-footer__col li + li { margin-top: 9px; }
.vz-footer__col a { font-size: 12.5px; color: rgba(242, 232, 213, 0.86); transition: color 0.2s ease; }
.vz-footer__col a:hover { color: var(--vz-coral); }
.vz-footer__base {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  border-top: 1px solid rgba(242, 232, 213, 0.16);
  padding-top: 18px;
}
.vz-footer__social { display: flex; gap: 8px; }
.vz-footer__social a {
  width: 30px; height: 30px; border: 1px solid rgba(242, 232, 213, 0.3);
  display: flex; align-items: center; justify-content: center;
  color: rgba(242, 232, 213, 0.85);
  transition: border-color 0.2s ease, color 0.2s ease;
}
.vz-footer__social a:hover { border-color: var(--vz-coral); color: var(--vz-coral); }
.vz-footer__copy { font-size: 10.5px; color: rgba(242, 232, 213, 0.5); letter-spacing: 0.04em; }
@media (max-width: 900px) {
  .vz-footer__grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .vz-footer__base { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 560px) { .vz-footer__grid { grid-template-columns: 1fr; } }

/* ============================================== seams (6, once each) */
.vz-seam { position: relative; height: 20px; background: var(--vz-sand); overflow: hidden; }
.vz-seam--niche { height: 20px; background: url("vz-sandstone.jpg") center / 300px auto repeat-x; }
.vz-seam--niche::before {
  content: ""; position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg,
    transparent 0 46px, rgba(14, 50, 58, 0.55) 46px 50px, transparent 50px 96px),
    linear-gradient(180deg, rgba(242, 232, 213, 0.72), rgba(232, 220, 196, 0.86));
}
.vz-seam--shard { height: 18px; background: url("vz-talavera.jpg") center / 130px auto repeat-x; }
.vz-seam--vanilla { height: 14px; background: url("vz-vanilla.jpg") center 40% / 260px auto repeat-x; }
.vz-seam--coral { height: 16px; background: var(--vz-coral); position: relative; }
.vz-seam--coral::after {
  content: ""; position: absolute; inset: 0;
  background: url("vz-water.jpg") center / 400px auto repeat-x;
  mix-blend-mode: multiply; opacity: 0.6;
}
.vz-seam--rope { height: 16px; background: url("vz-rope.jpg") center 50% / 300px auto repeat-x; }
.vz-seam--papel { height: 18px; background: url("vz-papel-strip.jpg") center / auto 18px repeat-x; }

/* decorations are paint only: never intercept a tap or a click */
.vz-signup__pot, .vz-signup__steam, .vz-signup__papel, .vz-signup__cane, .vz-signup__pip,
.vz-hero__papel, .vz-hero__gull, .vz-hero__branch, .vz-hero__mango,
.vz-papelband__ropes, .vz-papelband__branch, .vz-papelband__gulls,
.vz-coast__anchor, .vz-tank, .vz-dusk__knot, .vz-dusk__lamp,
.vz-log__corner,
.vz-footer__band svg, .vz-card__weed, .vz-reviews__flower { pointer-events: none; }

/* exact sizes for motifs that carry their own box */
.vz-hero__papel { width: 190px; height: 70px; }
.vz-hero__gull { width: 64px; height: 26px; }
@media (min-width: 900px) {
  .vz-signup__pot { width: 180px; height: 150px; }
  .vz-signup__steam { width: 90px; height: 70px; }
  .vz-signup__papel { width: 128px; height: 56px; }
}
.vz-coast__anchor { width: 34px; height: 40px; }
.vz-footer__lancha { width: 120px; height: 46px; }
.vz-footer__band-left svg { width: 54px; height: 62px; }
.vz-card__weed { width: 46px; height: 46px; }
.vz-reviews__flower { width: 34px; height: 34px; }
.vz-coast__ripple { height: 26px; }
.vz-papelband__ropes svg { height: 150px; }

/* ---------- coral tank sprig with rising bubbles (third ambient loop, 12s) ---------- */
.vz-tank { position: relative; width: 54px; height: 74px; }
.vz-tank i {
  position: absolute; bottom: 8px;
  width: 4px; height: 4px; border-radius: 50%;
  background: rgba(242, 232, 213, 0.75);
  animation: vz-bubble 12s linear infinite;
}
.vz-tank i:nth-child(2) { left: 16px; animation-delay: 3s; width: 3px; height: 3px; }
.vz-tank i:nth-child(3) { left: 28px; animation-delay: 6s; width: 5px; height: 5px; }
.vz-tank i:nth-child(4) { left: 38px; animation-delay: 9s; width: 3px; height: 3px; }

@media (prefers-reduced-motion: reduce) {
  .vz-signup__steam, .vz-hero__gull { display: none; animation: none !important; }
  .vz-tank i, .vz-tank { animation: none !important; }
  .vz-ripple-run, .vz-sway-run, .vz-bubble-run { animation: none !important; }
  .vz-signup__steam path { animation: none !important; stroke-dashoffset: 0; }
}

/* ---------- decorative marks that give the niche wall and ice counter a third layer ---------- */
.vz-pyramid { position: relative; }
.vz-pyramid__carving { position: absolute; left: 50%; top: -22px; width: 400px; height: 34px; transform: translateX(-50%); opacity: .8; }
.vz-pyramid__shell { position: absolute; right: -6px; top: -18px; width: 60px; height: 60px; opacity: .9; }
.vz-pyramid__tally { position: absolute; left: 2px; bottom: -14px; width: 80px; height: 18px; }
@media (max-width: 900px) {
  .vz-pyramid__carving { width: 260px; top: -16px; }
  .vz-pyramid__shell { width: 42px; height: 42px; right: 0; top: -12px; }
}
.vz-ice__tally { width: 96px; height: 20px; margin: 0 0 14px; }
