/* Viralqo: smoke blue ground, lemon geometry, 6 column bento */

*,
*::before,
*::after { box-sizing: border-box; }

:root {
  --ground: #546C7E;
  --smoke: #3F5162;
  --tile-light: #5A7386;
  --text: #FFFFFF;
  --muted: #CFDAE2;
  --note: #E8EEF2;
  --line: #7F95A5;
  --lemon: #F4E04D;
  --ink: #26333E;
  --grain-a: #34465A;
  --grain-b: #4A5F72;
  --display: Futura, 'Futura PT', 'Century Gothic', 'Avenir Next', 'Trebuchet MS', sans-serif;
  --body: 'Avenir Next', Avenir, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
  --dur: 320ms;
  --gap: 12px;
  --radius: 20px;
  --pad: clamp(1rem, 3.4vw, 2.75rem);
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: clip;
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body {
  margin: 0;
  background: var(--ground);
  color: var(--text);
  font-family: var(--body);
  font-size: 0.9375rem;
  line-height: 1.45;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img, svg { display: block; max-width: 100%; }
svg { width: 100%; height: auto; }
a { color: inherit; }
p, figure, dl, dd { margin: 0; }
h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--display);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
ul, ol { margin: 0; padding: 0; list-style: none; }
button { font: inherit; color: inherit; }
p, li, dd, dt, h1, h2, h3, h4, a { overflow-wrap: break-word; }
[hidden] { display: none !important; }

:focus-visible {
  outline: 3px solid var(--lemon);
  outline-offset: 4px;
  border-radius: 6px;
}

::selection { background: var(--lemon); color: var(--ink); }

.vq-skip {
  position: absolute;
  left: 1rem;
  top: -5rem;
  z-index: 50;
  padding: 0.7rem 1.1rem;
  background: var(--lemon);
  color: var(--ink);
  border-radius: 999px;
  font-weight: 600;
  text-decoration: none;
}
.vq-skip:focus { top: 1rem; }

.vq-vh {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.vq-wrap {
  width: min(1360px, calc(100% - 2 * var(--pad)));
  margin-inline: auto;
}

/* ---------- Shared type ---------- */

.vq-label {
  display: flex;
  align-items: center;
  gap: 0.6em;
  font-family: var(--body);
  font-size: 0.72rem;
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

.vq-h2 { font-size: 1.75rem; font-weight: 600; }
.vq-h3 { font-size: 1.0625rem; font-weight: 600; line-height: 1.2; }

.vq-note {
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--note);
  max-width: 46ch;
}

.vq-fig {
  font-family: var(--display);
  font-weight: 500;
  font-size: 1.75rem;
  line-height: 1.05;
  letter-spacing: -0.015em;
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--text);
}
.vq-fig--xl { font-size: clamp(2.1rem, 3.4vw, 2.75rem); }

.vq-unit {
  display: inline-block;
  margin-left: 0.4em;
  font-family: var(--body);
  font-size: 0.8125rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--muted);
  vertical-align: baseline;
}

.vq-sign {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--display);
  font-size: 1.3125rem;
  font-weight: 500;
  letter-spacing: 0.01em;
}

/* In-text links between pages */
.vq-tile a:not([class]),
.vq-prose a:not([class]),
.vq-rates__group a {
  text-decoration-color: var(--lemon);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.2em;
  transition: color 0.2s ease;
}
.vq-tile a:not([class]):hover,
.vq-prose a:not([class]):hover,
.vq-rates__group a:hover { color: var(--text); }
.vq-tile--lemon a:not([class]) { text-decoration-color: var(--ink); }

/* ---------- Geometric alphabet ---------- */

.vq-mark {
  display: inline-block;
  flex: none;
  width: 0.8em;
  height: 0.8em;
  background: var(--lemon);
}
.vq-mark--circle { border-radius: 50%; }
.vq-mark--square { border-radius: 0.22em; }
.vq-mark--half { width: 1em; height: 0.5em; border-radius: 0.5em 0.5em 0 0; }

.vq-shape {
  flex: none;
  display: grid;
  place-items: center;
  background: var(--lemon);
  color: var(--smoke);
  transition: transform var(--dur) var(--ease);
}
.vq-shape--circle { width: 1em; height: 1em; border-radius: 50%; }
.vq-shape--square { width: 0.94em; height: 0.94em; border-radius: 0.24em; }
.vq-shape--half {
  width: 1.5em;
  height: 0.75em;
  border-radius: 0.75em 0.75em 0 0;
  place-items: end center;
  padding-bottom: 0.07em;
}
.vq-shape__num {
  font-family: var(--display);
  font-weight: 500;
  font-size: 0.38em;
  line-height: 1;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
[aria-expanded="true"] .vq-shape { transform: rotate(8deg); }

/* ---------- Icons, links, buttons ---------- */

.vq-ico {
  display: inline-block;
  flex: none;
  width: 1.1em;
  transition: transform var(--dur) var(--ease), color 0.2s ease;
}

.vq-more {
  display: inline-flex;
  align-items: center;
  gap: 0.6em;
  align-self: flex-start;
  padding: 0.35rem 0;
  font-family: var(--body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  text-decoration: none;
  transition: color 0.2s ease, transform var(--dur) var(--ease);
}
.vq-more:hover { color: var(--text); transform: translateX(3px); }
.vq-more:hover .vq-ico { color: var(--lemon); transform: translateX(4px); }

.vq-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
  align-self: flex-start;
  width: auto;
  padding: 0.85rem 1.35rem 0.85rem 1.5rem;
  border-radius: 999px;
  background: var(--lemon);
  color: var(--ink);
  font-family: var(--body);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  border: 0;
}
.vq-btn:hover .vq-ico { transform: translateX(4px); }
.vq-btn:focus-visible { outline-color: var(--text); }

.vq-linklist { display: grid; gap: 0.1rem; }
.vq-linklist a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 0;
  color: var(--muted);
  text-decoration: none;
  transition: transform var(--dur) var(--ease), color 0.2s ease;
}
.vq-linklist a:hover { transform: translateX(6px); color: var(--text); }
.vq-linklist a:hover .vq-ico { color: var(--lemon); }
.vq-linklist a[aria-current="page"] { color: var(--text); }

/* ---------- Plus toggle ---------- */

.vq-plus {
  position: relative;
  flex: none;
  width: 1.05rem;
  height: 1.05rem;
  color: var(--muted);
  transition: color 0.2s ease, transform var(--dur) var(--ease);
}
.vq-plus::before,
.vq-plus::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  margin-top: -1px;
  border-radius: 2px;
  background: currentColor;
  transition: transform var(--dur) var(--ease);
}
.vq-plus::after { transform: rotate(90deg); }
[aria-expanded="true"] > .vq-plus { color: var(--lemon); }
[aria-expanded="true"] > .vq-plus::after { transform: rotate(0deg); }
button:hover > .vq-plus { color: var(--lemon); }

.vq-plus--index { width: 0.26em; height: 0.26em; align-self: center; }
.vq-plus--index::before,
.vq-plus--index::after { height: 0.035em; margin-top: -0.0175em; }

/* ---------- Top band and menu ---------- */

.vq-band { position: relative; z-index: 5; }
.vq-band__in {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 2rem;
  padding-block: 0.95rem;
}

.vq-wordmark {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--display);
  font-size: 1.0625rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  line-height: 1;
  color: var(--text);
  text-decoration: none;
}
.vq-trio { display: inline-flex; align-items: flex-end; gap: 3px; font-size: 0.72rem; }
.vq-trio .vq-mark { width: 0.85em; height: 0.85em; }
.vq-trio .vq-mark--half { width: 1.1em; height: 0.55em; }
.vq-wordmark:hover .vq-mark--circle { transform: translateY(-2px); }
.vq-trio .vq-mark { transition: transform var(--dur) var(--ease); }

.vq-nav { min-width: 0; }
.vq-nav__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 1.9rem;
}
.vq-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 0.55em;
  padding: 0.5rem 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
  text-decoration: none;
  transition: color 0.2s ease, transform var(--dur) var(--ease);
}
.vq-nav__link:hover { color: var(--text); transform: translateX(3px); }
.vq-nav__link[aria-current="page"] { color: var(--text); }
.vq-nav__link[aria-current="page"]::before {
  content: "";
  width: 0.6em;
  height: 0.6em;
  border-radius: 50%;
  background: var(--lemon);
}
.vq-nav__link--mail {
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: var(--lemon);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.3em;
}

.vq-menu-btn {
  display: none;
  align-items: center;
  gap: 0.7rem;
  padding: 0.55rem 0.95rem 0.55rem 1.1rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.vq-menu-btn .vq-plus { width: 0.8rem; height: 0.8rem; }
.vq-menu-btn[aria-expanded="true"] .vq-plus { transform: rotate(45deg); }
.vq-menu-btn[aria-expanded="true"] .vq-plus::after { transform: rotate(90deg); }

@media (max-width: 720px) {
  .vq-js .vq-band { position: relative; }
  .vq-js .vq-menu-btn { display: inline-flex; }
  .vq-js .vq-nav {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 20;
    padding-inline: var(--pad);
    background: var(--smoke);
    border-radius: 0 0 var(--radius) var(--radius);
    overflow: hidden;
    transition: height var(--dur) var(--ease);
  }
  .vq-js .vq-nav__list {
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding-block: 0.25rem 1rem;
  }
  .vq-js .vq-nav__link { font-size: 0.8125rem; padding: 0.7rem 0; }
  html:not(.vq-js) .vq-nav__link--mail { display: none; }
  html:not(.vq-js) .vq-nav__list { gap: 0.25rem 1.1rem; }
}

/* ---------- Home index ---------- */

.vq-index {
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 3.6rem);
  min-height: calc(100svh - 3.6rem);
  padding-block: clamp(0.75rem, 3vh, 2rem) clamp(1rem, 3vh, 2rem);
}

.vq-index__kicker {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.6rem;
  font-family: var(--body);
  font-size: 0.72rem;
  line-height: 1.4;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.vq-index__kicker span + span::before {
  content: "";
  display: inline-block;
  width: 0.45em;
  height: 0.45em;
  margin-right: 1.6rem;
  margin-left: -1.6rem;
  border-radius: 50%;
  background: var(--line);
  vertical-align: 0.15em;
  transform: translateX(0.64rem);
}
@media (max-width: 640px) {
  .vq-index__kicker span + span::before { display: none; }
}

.vq-index__list {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  gap: clamp(1rem, 4vh, 2.75rem);
  padding-block: clamp(1.5rem, 5vh, 3.5rem);
  font-size: clamp(2.5rem, 6.6vw, 8rem);
}

.vq-index__row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}
.vq-index__row--right { align-items: flex-end; }
.vq-index__row--indent { padding-left: clamp(0rem, 6vw, 8rem); }

.vq-index__heading { margin: 0; font: inherit; max-width: 100%; }

.vq-index__trigger {
  display: flex;
  align-items: center;
  gap: 0.22em;
  max-width: 100%;
  padding: 0.06em 0;
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
  font-family: var(--display);
  font-size: 1em;
  font-weight: 500;
  line-height: 0.98;
  letter-spacing: -0.025em;
  color: var(--text);
  transition: transform var(--dur) var(--ease);
}
.vq-index__row--right .vq-index__trigger { flex-direction: row-reverse; text-align: right; }
.vq-index__trigger:hover { transform: translateX(0.05em); }
.vq-index__row--right .vq-index__trigger:hover { transform: translateX(-0.05em); }
.vq-index__trigger:hover .vq-shape { transform: rotate(-6deg); }
.vq-index__trigger[aria-expanded="true"]:hover .vq-shape { transform: rotate(8deg); }
.vq-index__trigger:focus-visible { outline-offset: 0.1em; border-radius: 0.15em; }

.vq-index__words { min-width: 0; text-wrap: balance; overflow-wrap: anywhere; }
.vq-index__sub { color: var(--muted); font-weight: 400; transition: color 0.25s ease; }
.vq-index__trigger:hover .vq-index__sub,
.vq-index__trigger[aria-expanded="true"] .vq-index__sub { color: var(--text); }

.vq-index__panel { font-size: 1rem; max-width: 100%; }
.vq-index__panel-in {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1rem 2.5rem;
  max-width: 64rem;
  padding: 1.1rem 0 0.4rem;
}
.vq-index__row--right .vq-index__panel-in { justify-content: flex-end; }

.vq-index__facts { display: flex; flex-wrap: wrap; gap: 1rem 2rem; min-width: 0; }
.vq-index__fact {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
  max-width: 16rem;
  padding-left: 0.9rem;
  border-left: 2px solid var(--lemon);
}
.vq-index__cap { font-size: 0.8125rem; line-height: 1.4; color: var(--note); }

.vq-index__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 2rem;
}
.vq-index__summary { max-width: 58ch; font-size: 0.8125rem; color: var(--note); }
.vq-index__mail {
  font-family: var(--display);
  font-size: 1.0625rem;
  font-weight: 500;
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: var(--lemon);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.3em;
  overflow-wrap: anywhere;
  transition: color 0.2s ease;
}
.vq-index__mail:hover { color: var(--lemon); }

@media (max-width: 640px) {
  .vq-plus--index { display: none; }
  .vq-index__row--indent { padding-left: 0; }
}

/* Masked wipe on the index, class added by script only */
@keyframes vq-wipe-l { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes vq-wipe-r { from { clip-path: inset(0 0 0 100%); } to { clip-path: inset(0 0 0 0); } }
@keyframes vq-pop { from { transform: scale(0.35) rotate(-40deg); } to { transform: scale(1) rotate(0deg); } }

.vq-wipe .vq-index__words { animation: vq-wipe-l 900ms var(--ease) backwards; }
.vq-wipe.vq-index__row--right .vq-index__words { animation-name: vq-wipe-r; }
.vq-wipe .vq-shape { animation: vq-pop 760ms var(--ease) backwards; }
.vq-wipe:nth-child(2) .vq-index__words,
.vq-wipe:nth-child(2) .vq-shape { animation-delay: 160ms; }
.vq-wipe:nth-child(3) .vq-index__words,
.vq-wipe:nth-child(3) .vq-shape { animation-delay: 320ms; }

/* ---------- Sections ---------- */

.vq-section { padding-top: clamp(3.5rem, 8vw, 6rem); }
.vq-section--flush { padding-top: 0; }
.vq-section--steps { padding-top: clamp(2.5rem, 5vw, 4rem); }
.vq-section--mid { padding-top: clamp(3rem, 6vw, 4.5rem); }
.vq-section--long { padding-top: clamp(4rem, 9vw, 7rem); }

.vq-sechead {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.75rem 2.5rem;
  margin-bottom: 1.4rem;
}
.vq-sechead__text { display: grid; gap: 0.65rem; max-width: 44rem; min-width: 0; }
.vq-sechead__aside { max-width: 40ch; font-size: 0.8125rem; color: var(--note); }

/* ---------- Inner page strip ---------- */

.vq-strip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  gap: 1.25rem clamp(1.25rem, 3vw, 2.5rem);
  padding-block: clamp(2.5rem, 8vw, 6rem) clamp(2rem, 4vw, 3rem);
}
.vq-strip__shape { font-size: clamp(3.75rem, 8vw, 6.5rem); }
.vq-strip__shape.vq-shape--half { align-self: end; }
.vq-strip__head { display: grid; gap: 0.7rem; min-width: 0; }
.vq-strip__title { font-size: clamp(2rem, 4.4vw, 2.75rem); font-weight: 600; letter-spacing: -0.02em; }
.vq-strip__lead {
  grid-column: 2;
  max-width: 64ch;
  font-size: 1.0625rem;
  line-height: 1.55;
  color: var(--note);
}
@media (max-width: 560px) {
  .vq-strip { grid-template-columns: minmax(0, 1fr); }
  .vq-strip__lead { grid-column: 1; }
}

/* ---------- Bento ---------- */

.vq-bento {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  grid-auto-rows: minmax(9.5rem, auto);
  grid-auto-flow: row dense;
  gap: var(--gap);
}

.vq-c1 { grid-column: span 1; }
.vq-c2 { grid-column: span 2; }
.vq-c3 { grid-column: span 3; }
.vq-c4 { grid-column: span 4; }
.vq-c5 { grid-column: span 5; }
.vq-c6 { grid-column: span 6; }
.vq-r2 { grid-row: span 2; }
.vq-r3 { grid-row: span 3; }

.vq-tile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
  padding: clamp(1.15rem, 2vw, 1.6rem);
  border-radius: var(--radius);
  background: var(--smoke);
  color: var(--text);
}
.vq-tile > * { min-width: 0; }
.vq-tile--ground {
  background: var(--tile-light);
  border: 0;
  --muted: #F1F5F8;
  --note: #FFFFFF;
}
.vq-tile--bare {
  background: transparent;
  padding-inline: 0.35rem clamp(1rem, 2vw, 1.6rem);
}
.vq-tile--pill {
  border-radius: 999px;
  justify-content: center;
  padding-inline: clamp(1.6rem, 3vw, 2.5rem);
}
.vq-tile--corner {
  border-top-right-radius: min(120px, 28vw);
  padding-right: clamp(2.25rem, 6vw, 4.5rem);
}
.vq-tile--lemon { background: var(--lemon); color: var(--ink); border: 0; }
.vq-tile--lemon .vq-label,
.vq-tile--lemon .vq-note,
.vq-tile--lemon .vq-tile__body { color: var(--ink); }
.vq-tile--lemon .vq-mark { background: var(--ink); }
.vq-tile--lemon .vq-sign { color: var(--ink); }
.vq-tile--lemon :focus-visible { outline-color: var(--ink); }

.vq-tile--grain {
  background-color: var(--smoke);
  background-image:
    repeating-linear-gradient(2deg, rgba(62, 80, 97, 0) 0px, rgba(62, 80, 97, 0) 9px, var(--grain-a) 10px, rgba(62, 80, 97, 0) 12px, rgba(62, 80, 97, 0) 23px),
    repeating-linear-gradient(-3deg, rgba(79, 100, 118, 0) 0px, rgba(79, 100, 118, 0) 17px, var(--grain-b) 18px, rgba(79, 100, 118, 0) 21px, rgba(79, 100, 118, 0) 37px),
    repeating-linear-gradient(0.6deg, rgba(62, 80, 97, 0) 0px, rgba(62, 80, 97, 0) 41px, rgba(46, 62, 77, 0.85) 43px, rgba(62, 80, 97, 0) 47px, rgba(62, 80, 97, 0) 71px);
  background-size: 160% 160%;
  background-position: 0% 0%;
}

.vq-tile__end { margin-top: auto; }
.vq-tile__line { font-size: 1.0625rem; font-weight: 500; }
.vq-tile__body { font-size: 0.9375rem; line-height: 1.55; max-width: 62ch; color: var(--text); }
.vq-tile__quote {
  font-family: var(--display);
  font-size: 1.3125rem;
  font-weight: 500;
  line-height: 1.3;
  max-width: 28ch;
}

.vq-wry {
  font-family: var(--display);
  font-size: clamp(1.5rem, 2.4vw, 1.75rem);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: -0.015em;
  max-width: 24ch;
}

.vq-step-num {
  font-family: var(--display);
  font-size: 1.75rem;
  font-weight: 500;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: var(--muted);
}
.vq-steps-strip .vq-tile,
.vq-bento > li.vq-tile { list-style: none; }

/* Closing next blocks */
.vq-next { margin-top: var(--gap); }
.vq-next__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.75rem;
  margin-top: auto;
  padding-top: 0.5rem;
}
.vq-next__actions > * { align-self: center; }

.vq-mini {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  padding-top: 0.25rem;
}
.vq-mini div { display: grid; gap: 0.15rem; }
.vq-mini dt { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.vq-mini dd { font-family: var(--display); font-size: 1.3125rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.vq-mini--big { flex-direction: column; gap: 1rem; }
.vq-mini--big dd { font-size: 1.75rem; }

.vq-list { display: grid; gap: 0.15rem; }
.vq-list li {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  padding: 0.38rem 0;
  font-size: 0.9375rem;
  line-height: 1.45;
}
.vq-list li::before {
  content: "";
  flex: none;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--lemon);
  transform: translateY(-0.05em);
}
.vq-list--no li { color: var(--muted); }
.vq-list--no li::before { background: transparent; border: 1.5px solid var(--line); }
.vq-list--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.75rem; }

.vq-hours { display: grid; gap: 0.2rem; }
.vq-hours div {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.25rem 1rem;
  padding: 0.6rem 0;
}
.vq-hours dt { font-size: 0.8125rem; color: var(--muted); }
.vq-hours dd {
  font-family: var(--display);
  font-size: 1.3125rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 1080px) {
  .vq-bento { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .vq-c1, .vq-c2, .vq-c3 { grid-column: span 2; }
  .vq-c4, .vq-c5, .vq-c6 { grid-column: span 4; }
  .vq-md-1 { grid-column: span 1; }
  .vq-md-2 { grid-column: span 2; }
  .vq-md-4 { grid-column: span 4; }
}

@media (max-width: 620px) {
  .vq-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
  .vq-c1 { grid-column: span 1; }
  .vq-c2, .vq-c3, .vq-c4, .vq-c5, .vq-c6 { grid-column: span 2; }
  .vq-md-1 { grid-column: span 1; }
  .vq-md-2, .vq-md-4 { grid-column: span 2; }
  .vq-r2, .vq-r3 { grid-row: auto; }
  .vq-list--cols { grid-template-columns: minmax(0, 1fr); }
  .vq-tile--pill { border-radius: 2.5rem; }
}

@media (max-width: 400px) {
  .vq-c1, .vq-md-1 { grid-column: span 2; }
}

/* ---------- Reveal: offset class is only ever added by script, content never goes transparent ---------- */

[data-reveal] { transition: transform 700ms var(--ease); }
.vq-hide { transform: translateY(16px); }

/* ---------- Accordion base ---------- */

.vq-acc__body { min-width: 0; }
.vq-js .vq-acc__body { overflow: hidden; transition: height var(--dur) var(--ease); }
/* Bodies stay shut from first paint until the script has set their state */
.vq-js .vq-acc__body:not([data-state]) { height: 0; visibility: hidden; }
/* Without the script the bodies are simply open text: no toggle icons, no pointer */
html:not(.vq-js) .vq-acc__trigger .vq-plus { display: none; }
html:not(.vq-js) .vq-acc__trigger { cursor: default; }

/* ---------- Tabs ---------- */

.vq-tabs__list { display: none; }
.vq-js .vq-tabs__list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}
.vq-tabs__tab {
  display: inline-flex;
  align-items: baseline;
  gap: 0.7rem;
  padding: 0.75rem 1.25rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  font-family: var(--display);
  font-size: 1.0625rem;
  font-weight: 500;
  color: var(--muted);
  transition: color 0.2s ease, border-color 0.2s ease, transform var(--dur) var(--ease);
}
.vq-tabs__tab:hover { color: var(--text); border-color: var(--text); transform: translateX(2px); }
.vq-tabs__price { font-family: var(--body); font-size: 0.8125rem; font-weight: 500; color: inherit; opacity: 0.8; font-variant-numeric: tabular-nums; }
.vq-tabs__tab[aria-selected="true"] { background: var(--lemon); border-color: var(--lemon); color: var(--ink); transform: none; }
.vq-tabs__tab[aria-selected="true"]:focus-visible { outline-color: var(--text); }

.vq-js .vq-tabs__wrap { overflow: hidden; transition: height var(--dur) var(--ease); }
html:not(.vq-js) .vq-tabs__panel + .vq-tabs__panel { margin-top: 3.5rem; }
.vq-tabs__panel:focus-visible { outline-offset: -3px; border-radius: var(--radius); }

.vq-tabs__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem 1.25rem;
  margin-bottom: 1rem;
}
.vq-tabs__title { font-size: 1.75rem; font-weight: 600; }

/* ---------- Desk tile ---------- */

.vq-desk {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  gap: clamp(1.5rem, 3.5vw, 3.5rem);
  padding: clamp(1.25rem, 3vw, 2.5rem);
}
.vq-desk__fig { display: grid; gap: 0.9rem; }
.vq-desk__text { display: grid; gap: 0.85rem; }
.vq-desk__para { font-size: 0.9375rem; line-height: 1.62; max-width: 68ch; color: var(--text); }
@media (max-width: 900px) {
  .vq-desk { grid-template-columns: minmax(0, 1fr); }
  .vq-desk__fig { max-width: 32rem; }
}

/* ---------- Rate table ---------- */

.vq-table-wrap {
  overflow-x: auto;
  border-radius: var(--radius);
  background: var(--smoke);
  padding: 0.5rem clamp(1rem, 2.5vw, 2rem) 1.5rem;
  -webkit-overflow-scrolling: touch;
}
.vq-rates {
  width: 100%;
  min-width: 600px;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums lining-nums;
}
.vq-rates thead th {
  padding: 1rem 0.75rem 0.75rem 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: left;
  color: var(--muted);
}
.vq-rates thead th:first-child { padding-left: 0.75rem; }
.vq-rates th.vq-rates__num { text-align: right; padding-right: 1.25rem; }
.vq-rates__group th {
  padding: 1.75rem 0 0.6rem;
  text-align: left;
  font-family: var(--display);
  font-size: 1.3125rem;
  font-weight: 600;
  color: var(--text);
}
.vq-rates__group th .vq-mark { margin-right: 0.6rem; font-size: 0.85rem; vertical-align: 0.05em; }
.vq-rates tbody tr:not(.vq-rates__group) > * {
  padding: 0.75rem 0.75rem 0.75rem 0;
  vertical-align: baseline;
}
.vq-rates tbody tr:not(.vq-rates__group) > :first-child { padding-left: 0.75rem; }
.vq-rates tbody tr:nth-child(even):not(.vq-rates__group) > * { background: rgba(127, 149, 165, 0.25); }
.vq-rates__name { text-align: left; font-size: 1.0625rem; font-weight: 500; color: var(--text); width: 30%; }
.vq-rates__detail { font-size: 0.8125rem; color: var(--note); }
.vq-rates__price {
  text-align: right;
  white-space: nowrap;
  padding-right: 1.25rem !important;
  font-family: var(--display);
  font-size: 1.3125rem;
  font-weight: 500;
}
.vq-rates__price--word { font-size: 1.0625rem; color: var(--lemon); }
.vq-rates__unit { font-size: 0.8125rem; color: var(--muted); white-space: nowrap; }

/* ---------- Editing tiers ---------- */

.vq-tiers { display: grid; gap: var(--gap); }
.vq-tier { border-radius: var(--radius); background: var(--smoke); }
.vq-tier + .vq-tier { background: #4D6375; border: 0; }
.vq-tier__head { font: inherit; }
.vq-tier__trigger {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 0.75rem clamp(1rem, 3vw, 2.5rem);
  width: 100%;
  padding: clamp(1.25rem, 2.6vw, 2rem) clamp(1.15rem, 2.6vw, 2rem);
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
}
.vq-tier__name {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  font-family: var(--display);
  font-size: 1.75rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  transition: transform var(--dur) var(--ease);
}
.vq-tier__shape { font-size: 1.6rem; }
.vq-tier__trigger:hover .vq-tier__name { transform: translateX(5px); }
.vq-tier__meta { font-size: 0.8125rem; color: var(--muted); transition: color 0.2s ease; }
.vq-tier__trigger:hover .vq-tier__meta { color: var(--text); }
.vq-tier__price {
  font-family: var(--display);
  font-size: clamp(1.75rem, 3.4vw, 2.75rem);
  font-weight: 500;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.vq-tier__body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 0.8fr);
  gap: 1.5rem clamp(1.5rem, 3vw, 3rem);
  padding: 0 clamp(1.15rem, 2.6vw, 2rem) clamp(1.5rem, 3vw, 2.25rem);
}
.vq-tier__col { display: grid; gap: 0.6rem; align-content: start; }
.vq-tier__facts { display: grid; gap: 0.9rem; align-content: start; }
.vq-tier__facts div { display: grid; gap: 0.2rem; padding-left: 0.9rem; border-left: 2px solid var(--lemon); }
.vq-tier__facts dt { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.vq-tier__facts dd { font-family: var(--display); font-size: 1.75rem; font-weight: 500; line-height: 1.05; font-variant-numeric: tabular-nums; }

@media (max-width: 860px) {
  .vq-tier__trigger { grid-template-columns: minmax(0, 1fr) auto auto; }
  .vq-tier__meta { grid-column: 1 / -1; grid-row: 2; }
  .vq-tier__body { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
  .vq-tier__name { font-size: 1.3125rem; }
}

/* ---------- Long section on editing ---------- */

.vq-long {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: var(--gap);
  align-items: start;
}
.vq-long__intro {
  border-radius: var(--radius);
  background: #4D6375;
  border: 0;
  border-top-left-radius: min(120px, 28vw);
  padding: clamp(1.5rem, 3vw, 2.5rem);
  padding-top: clamp(2.5rem, 5vw, 4rem);
}
.vq-long__sticky { display: grid; gap: 1.1rem; }
@media (min-width: 1001px) {
  .vq-long__intro { position: sticky; top: 1.5rem; }
}
.vq-long__title { font-size: clamp(2rem, 3.6vw, 2.75rem); font-weight: 600; letter-spacing: -0.02em; }

.vq-prose { display: grid; gap: 0.95rem; }
.vq-prose p { font-size: 1.0625rem; line-height: 1.62; max-width: 66ch; }
.vq-long__intro .vq-prose p { font-size: 0.9375rem; color: var(--note); }

.vq-steps { display: grid; gap: var(--gap); counter-reset: none; }
.vq-step { border-radius: var(--radius); background: var(--smoke); }
.vq-step:nth-child(even) { background: #4D6375; border: 0; }
.vq-step__head { font: inherit; }
.vq-step__trigger {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.1rem;
  width: 100%;
  padding: 1.2rem clamp(1.1rem, 2.4vw, 1.75rem);
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
}
.vq-step__shape { font-size: 2.5rem; }
.vq-step__shape .vq-shape__num { font-size: 0.42em; }
.vq-step__titles { display: grid; gap: 0.4rem; justify-items: start; transition: transform var(--dur) var(--ease); }
.vq-step__trigger:hover .vq-step__titles { transform: translateX(5px); }
.vq-step__title {
  font-family: var(--display);
  font-size: 1.3125rem;
  font-weight: 600;
  line-height: 1.2;
  text-wrap: balance;
}
.vq-badge {
  display: inline-block;
  padding: 0.28rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-family: var(--body);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.vq-badge--full { border-color: var(--lemon); color: var(--text); }
.vq-step__body {
  padding: 0.25rem clamp(1.1rem, 2.4vw, 1.75rem) 1.75rem calc(clamp(1.1rem, 2.4vw, 1.75rem) + 2.5rem + 1.1rem);
}

.vq-wave {
  display: grid;
  gap: 0.7rem;
  margin: 0.5rem 0;
  padding: 1.25rem;
  max-width: 34rem;
  border-radius: 14px;
  border: 1px solid var(--line);
}

@media (max-width: 1000px) {
  .vq-long { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 560px) {
  .vq-step__body { padding-left: clamp(1.1rem, 2.4vw, 1.75rem); }
  .vq-step__title { font-size: 1.0625rem; }
  .vq-step__shape { font-size: 2rem; }
}

/* ---------- Contact ---------- */

.vq-write { gap: 0.9rem; padding: clamp(1.4rem, 3vw, 2.5rem); }
.vq-write__mail {
  font-family: var(--display);
  font-size: clamp(1.6rem, 4.6vw, 2.75rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: var(--lemon);
  text-decoration-thickness: 3px;
  text-underline-offset: 0.18em;
  overflow-wrap: anywhere;
  transition: color 0.2s ease;
}
.vq-write__mail:hover { color: var(--lemon); }
.vq-write__place { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }

.vq-holiday { gap: 1rem; padding: clamp(1.5rem, 3.5vw, 2.75rem); }
.vq-holiday__note {
  font-size: 1.0625rem;
  line-height: 1.62;
  max-width: 60ch;
  color: var(--ink);
}

.vq-faq-wrap {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: var(--gap);
  align-items: start;
}
.vq-faq-wrap__head { margin-bottom: 0; }
.vq-faq { display: grid; gap: var(--gap); }
.vq-faq__item { border-radius: var(--radius); background: #4D6375; border: 0; }
.vq-faq__item:nth-child(even) { background: var(--smoke); }
.vq-faq__h { font: inherit; }
.vq-faq__trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  width: 100%;
  padding: 1.15rem clamp(1.1rem, 2.4vw, 1.75rem);
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
  font-family: var(--display);
  font-size: 1.3125rem;
  font-weight: 500;
  line-height: 1.25;
}
.vq-faq__q { min-width: 0; transition: transform var(--dur) var(--ease); text-wrap: balance; }
.vq-faq__trigger:hover .vq-faq__q { transform: translateX(5px); }
.vq-faq__a { padding: 0 clamp(1.1rem, 2.4vw, 1.75rem) 1.4rem; }
.vq-faq__a p { max-width: 64ch; font-size: 0.9375rem; line-height: 1.6; color: var(--note); }

@media (max-width: 900px) {
  .vq-faq-wrap { grid-template-columns: minmax(0, 1fr); }
  .vq-faq-wrap__head { margin-bottom: 0.5rem; }
}
@media (max-width: 480px) {
  .vq-faq__trigger { font-size: 1.0625rem; }
}

/* ---------- Footer ---------- */

.vq-foot { padding-top: clamp(4rem, 9vw, 7rem); padding-bottom: 1.5rem; }
.vq-foot__panel {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 2rem clamp(2rem, 4vw, 4rem);
  padding: clamp(1.6rem, 4vw, 3rem);
  border-radius: var(--radius);
  border-top-left-radius: min(120px, 28vw);
  background: var(--smoke);
}
.vq-foot__brand { display: grid; gap: 1rem; align-content: start; padding-top: 1rem; }
.vq-wordmark--foot { font-size: 1.3125rem; }
.vq-wordmark--foot .vq-trio { font-size: 0.9rem; }
.vq-foot__nav { display: grid; gap: 0.75rem; align-content: start; }
.vq-foot__contact { display: grid; gap: 0.5rem; align-content: start; }
.vq-foot__mail {
  font-family: var(--display);
  font-size: 1.3125rem;
  font-weight: 500;
  color: var(--text);
  text-decoration: underline;
  text-decoration-color: var(--lemon);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.28em;
  overflow-wrap: anywhere;
  margin-bottom: 0.25rem;
  transition: color 0.2s ease;
}
.vq-foot__mail:hover { color: var(--lemon); }
.vq-foot__base {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem 2rem;
  padding: 1.1rem 0.25rem 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
@media (max-width: 860px) {
  .vq-foot__panel { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .vq-foot__brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .vq-foot__panel { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Ambient motion ---------- */

@keyframes vq-drift {
  from { background-position: 0% 0%; }
  to { background-position: 100% 70%; }
}

@media (prefers-reduced-motion: no-preference) {
  .vq-tile--grain { animation: vq-drift 32s ease-in-out infinite alternate; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .vq-hide { opacity: 1; transform: none; }
}

@media print {
  .vq-hide { opacity: 1; transform: none; }
  .vq-band, .vq-menu-btn, .vq-tabs__list { display: none; }
  body { background: #fff; color: #000; }
}