/* =============================================================================
   Veskis portal — wedding editorial
   Forest green · cream · dusty rose · Great Vibes + Cormorant + Source Sans 3
   Inspired by classic invitations + modern wedding sites
   ============================================================================= */

:root {
  --vk-green: #0b3d2e;
  --vk-green-deep: #072b20;
  --vk-green-mid: #1a5240;
  --vk-cream: #f4efe6;
  --vk-paper: #fffbf5;
  --vk-blush: #c4a4a0;
  --vk-blush-deep: #a88884;
  --vk-text: #2c2824;
  --vk-soft: #5a544c;
  --vk-muted: #8a837a;
  --vk-line: rgba(11, 61, 46, 0.1);
  --vk-line-strong: rgba(11, 61, 46, 0.18);
  --vk-script: "Great Vibes", cursive;
  --vk-serif: "Cormorant Garamond", Georgia, serif;
  --vk-sans: "Source Sans 3", system-ui, sans-serif;
  --vk-radius: 8px;
  --vk-radius-lg: 14px;
  --vk-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

.vk-body {
  margin: 0;
  overflow-x: hidden;
  font-family: var(--vk-sans);
  color: var(--vk-text);
  background: var(--vk-cream);
  line-height: 1.65;
  letter-spacing: 0.01em;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}
.vk-body * { box-sizing: border-box; }

/* ----- Dark green nav (ref #2) ----- */
.vk-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  width: 100%;
  max-width: 100vw;
  background: var(--vk-green);
  border-bottom: 0;
  box-shadow: 0 1px 0 rgba(0,0,0,0.08);
}
.vk-nav__inner {
  max-width: min(1100px, 100%);
  margin: 0 auto;
  padding: 0 1.5rem;
  height: 68px;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  justify-content: space-between;
  box-sizing: border-box;
}
.vk-logo {
  font-family: var(--vk-serif);
  font-size: 1.55rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #f4efe6 !important;
  text-decoration: none;
}
.vk-logo span {
  font-family: var(--vk-script);
  font-size: 1.85rem;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 400;
  color: var(--vk-blush);
  margin-left: 1px;
}
.vk-nav__links {
  display: flex;
  align-items: center;
  gap: 0.15rem 1.75rem;
}
.vk-nav__links a {
  color: rgba(244, 239, 230, 0.82);
  text-decoration: none;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: color 0.2s var(--vk-ease);
}
.vk-nav__links a:hover { color: #fff; }
.vk-nav__more { display: none; }
.vk-nav__cta { display: flex; gap: 0.55rem; align-items: center; }
.vk-nav__toggle {
  display: none;
  width: 40px;
  height: 40px;
  border-radius: 6px;
  border: 1px solid rgba(244,239,230,0.25);
  background: transparent;
  color: #f4efe6;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.vk-nav__toggle svg { width: 18px; height: 18px; }

/* Buttons */
.vk-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  padding: 0.7rem 1.35rem;
  border-radius: 4px;
  font-family: var(--vk-sans);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background 0.22s var(--vk-ease), color 0.22s, border-color 0.22s, transform 0.15s;
  line-height: 1.2;
}
.vk-btn:active { transform: scale(0.98); }
.vk-btn--solid {
  background: var(--vk-green);
  color: #f4efe6 !important;
  border-color: var(--vk-green);
}
.vk-btn--solid:hover {
  background: var(--vk-green-deep);
  border-color: var(--vk-green-deep);
  color: #fff !important;
}
.vk-nav .vk-btn--solid {
  background: #f4efe6;
  color: var(--vk-green) !important;
  border-color: #f4efe6;
}
.vk-nav .vk-btn--solid:hover {
  background: #fff;
  color: var(--vk-green-deep) !important;
}
.vk-nav .vk-btn--line {
  background: transparent;
  color: #f4efe6 !important;
  border-color: rgba(244, 239, 230, 0.35);
}
.vk-nav .vk-btn--line:hover {
  border-color: #f4efe6;
  background: rgba(255,255,255,0.06);
}
.vk-btn--line {
  background: transparent;
  color: var(--vk-green) !important;
  border-color: rgba(11, 61, 46, 0.28);
}
.vk-btn--line:hover {
  border-color: var(--vk-green);
  background: rgba(11, 61, 46, 0.04);
}
.vk-btn--bronze {
  background: var(--vk-blush-deep);
  color: #fff !important;
  border-color: var(--vk-blush-deep);
}
.vk-btn--bronze:hover { background: #967672; border-color: #967672; }
.vk-btn--block { width: 100%; }
.vk-btn--sm { padding: 0.5rem 1rem; font-size: 0.72rem; }
.vk-btn--lg { padding: 0.9rem 1.65rem; font-size: 0.82rem; }

/* Layout */
.vk-wrap { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; }
.vk-section { padding: 5rem 0; }
.vk-section--tight { padding: 3.5rem 0; }
.vk-section--alt { background: #ebe4d8; }
.vk-section--green {
  background: var(--vk-green);
  color: #f4efe6;
}

.vk-eyebrow {
  display: block;
  font-family: var(--vk-serif);
  font-style: italic;
  font-size: 1.35rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  text-transform: none;
  color: var(--vk-blush-deep);
  margin: 0 0 0.35rem;
  line-height: 1.2;
}
.vk-center > .vk-eyebrow::after {
  content: "";
  display: block;
  width: 42px;
  height: 1px;
  margin: 0.55rem auto 0.15rem;
  background: rgba(168, 136, 132, 0.9);
}
.vk-eyebrow::before { display: none; }

.vk-h1 {
  font-family: var(--vk-serif);
  font-size: clamp(2.75rem, 6vw, 4rem);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: 0.01em;
  margin: 0 0 1.1rem;
  color: var(--vk-green);
}
.vk-h1 em,
.vk-h1 .script {
  font-family: var(--vk-serif);
  font-style: italic;
  font-weight: 500;
  color: var(--vk-blush-deep);
  letter-spacing: 0;
}
.vk-h2 {
  font-family: var(--vk-serif);
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  font-weight: 500;
  letter-spacing: 0.01em;
  margin: 0 0 0.85rem;
  line-height: 1.15;
  color: var(--vk-green);
}
.vk-lead {
  font-size: 1.08rem;
  color: var(--vk-soft);
  max-width: 32rem;
  margin: 0 0 1.85rem;
  line-height: 1.75;
  font-weight: 400;
}
.vk-muted { color: var(--vk-muted); }
.vk-center { text-align: center; }
.vk-center .vk-lead { margin-left: auto; margin-right: auto; }

/* Hero — invitation feel */
.vk-hero {
  padding: 4.5rem 0 4rem;
  position: relative;
  background:
    radial-gradient(ellipse 80% 60% at 90% 10%, rgba(196, 164, 160, 0.18), transparent 55%),
    var(--vk-cream);
}
.vk-hero__grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 3rem;
  align-items: center;
}
.vk-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1.75rem;
}
.vk-hero__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  font-size: 0.82rem;
  color: var(--vk-muted);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 500;
}
.vk-hero__meta strong {
  color: var(--vk-green);
  font-weight: 650;
  text-transform: none;
  letter-spacing: 0;
  font-size: 0.95rem;
}

.vk-hero-card {
  background: var(--vk-paper);
  border: 1px solid var(--vk-line);
  border-radius: var(--vk-radius-lg);
  padding: 2rem 1.75rem;
  box-shadow: 0 8px 40px -20px rgba(11, 61, 46, 0.18);
  position: relative;
}
.vk-hero-card::before {
  content: "";
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  bottom: 12px;
  border: 1px solid rgba(196, 164, 160, 0.35);
  border-radius: 8px;
  pointer-events: none;
}
.vk-hero-card__title {
  font-family: var(--vk-script);
  font-size: 2rem;
  margin: 0 0 1.25rem;
  font-weight: 400;
  color: var(--vk-green);
  text-align: center;
  position: relative;
}
.vk-hero-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.8rem;
  position: relative;
}
.vk-hero-card li {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
  font-size: 0.95rem;
  color: var(--vk-soft);
  line-height: 1.45;
  font-family: var(--vk-serif);
  font-size: 1.05rem;
}
.vk-hero-card li::before {
  content: "✦";
  color: var(--vk-blush);
  font-size: 0.7rem;
  margin-top: 0.35rem;
  flex-shrink: 0;
}

/* Features — cream cards, green icons */
.vk-feats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.15rem;
  background: transparent;
  border: 0;
}
.vk-feat {
  background: var(--vk-paper);
  padding: 1.85rem 1.5rem;
  border: 1px solid var(--vk-line);
  border-radius: var(--vk-radius-lg);
  transition: border-color 0.25s, box-shadow 0.25s;
}
.vk-feat:hover {
  border-color: rgba(11, 61, 46, 0.28);
  box-shadow: 0 12px 32px -20px rgba(11, 61, 46, 0.2);
}
.vk-feat__icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(11, 61, 46, 0.08);
  color: var(--vk-green);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.1rem;
  font-size: 0;
}
.vk-feat__icon svg {
  width: 18px;
  height: 18px;
  stroke: currentColor;
  fill: none;
  stroke-width: 1.6;
}
.vk-feat h3 {
  font-family: var(--vk-serif);
  font-size: 1.4rem;
  margin: 0 0 0.45rem;
  font-weight: 500;
  color: var(--vk-green);
}
.vk-feat p {
  margin: 0;
  font-size: 0.92rem;
  color: var(--vk-soft);
  line-height: 1.55;
}

/* Plans */
.vk-plans {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: 1.15rem;
  max-width: 920px;
  margin: 0 auto;
}
.vk-demo {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 2rem;
  align-items: center;
}
.vk-demo__card {
  background: var(--vk-paper);
  border: 1px solid rgba(11, 61, 46, 0.08);
  border-radius: 24px;
  padding: 1.35rem 1.4rem 1.2rem;
  box-shadow: 0 22px 40px -28px rgba(11, 61, 46, 0.45);
}
.vk-demo__kicker {
  margin: 0 0 0.6rem;
  font-family: var(--vk-serif);
  font-style: italic;
  color: var(--vk-blush-deep);
  font-size: 1.2rem;
}
.vk-demo__card p {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 0.35rem 0;
  padding-bottom: 0.35rem;
  border-bottom: 1px solid rgba(11, 61, 46, 0.08);
}
.vk-demo__card span { color: var(--vk-muted); }
.vk-demo__note {
  display: block;
  border: 0;
  padding: 0;
  margin-top: 0.85rem;
  color: var(--vk-soft);
  font-size: 0.92rem;
  line-height: 1.45;
}
.vk-plan {
  background: var(--vk-paper);
  border: 1px solid var(--vk-line);
  border-radius: var(--vk-radius-lg);
  padding: 1.35rem 1.45rem 1.55rem;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: visible;
}
.vk-plan > * { position: relative; z-index: 1; }
.vk-plan__crest {
  width: 100%;
  margin: 0 0 0.2rem;
  background-repeat: no-repeat;
}
.vk-plan--standard .vk-plan__crest {
  height: 150px;
  background-image: url("../img/flora/plan-standard.png");
  background-position: right top;
  background-size: contain;
}
.vk-plan--premium .vk-plan__crest {
  height: 168px;
  background-image: url("../img/flora/plan-premium.png");
  background-position: right top;
  background-size: contain;
}
.vk-plan--premium {
  border-color: #b89564;
  background: #fffbf5;
  box-shadow: inset 0 0 0 1px rgba(184, 149, 100, 0.45);
}
.vk-plan--hot {
  border-color: var(--vk-green);
  box-shadow: 0 16px 48px -24px rgba(11, 61, 46, 0.25);
}
.vk-plan__badge {
  position: absolute;
  top: -0.65rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--vk-green);
  color: #f4efe6;
  font-size: 0.65rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.3rem 0.85rem;
  border-radius: 999px;
  white-space: nowrap;
}
.vk-plan__name {
  font-family: var(--vk-serif);
  font-size: 1.65rem;
  margin: 0.35rem 0 0.2rem;
  font-weight: 500;
  color: var(--vk-green);
}
.vk-plan__tag { margin: 0 0 1.15rem; font-size: 0.88rem; color: var(--vk-muted); }
.vk-plan__price {
  display: flex;
  align-items: baseline;
  gap: 0.2rem;
  margin-bottom: 0.25rem;
}
.vk-plan__price strong {
  font-family: var(--vk-serif);
  font-size: 2.85rem;
  font-weight: 500;
  font-variant-numeric: lining-nums;
  font-feature-settings: "lnum" 1;
  line-height: 1;
  color: var(--vk-green);
}
.vk-plan__price strong.is-word {
  font-size: 2.05rem;
  font-style: italic;
  font-weight: 500;
}
.vk-plan__price span {
  font-family: var(--vk-serif);
  font-size: 1.35rem;
  color: var(--vk-soft);
  margin-left: 0.2rem;
}
.vk-plan__note { font-size: 0.8rem; color: var(--vk-muted); margin: 0 0 1.25rem; }
.vk-plan ul {
  list-style: none;
  margin: 0 0 1.45rem;
  padding: 0;
  flex: 1;
  display: grid;
  gap: 0.55rem;
}
.vk-plan li {
  font-size: 0.9rem;
  color: var(--vk-soft);
  padding-left: 1.1rem;
  position: relative;
}
.vk-plan li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45rem;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--vk-blush);
}

/* Steps */
.vk-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  counter-reset: step;
}
.vk-step::before {
  counter-increment: step;
  content: "0" counter(step);
  font-family: var(--vk-serif);
  font-style: italic;
  font-size: 1.7rem;
  color: var(--vk-blush-deep);
  display: block;
  margin-bottom: 0.5rem;
  line-height: 1;
}
.vk-step h3 {
  font-family: var(--vk-serif);
  font-size: 1.35rem;
  margin: 0 0 0.4rem;
  font-weight: 500;
  color: var(--vk-green);
}
.vk-step p { margin: 0; color: var(--vk-soft); font-size: 0.95rem; }

/* CTA band — green like ref header */
.vk-cta {
  background: var(--vk-green);
  color: #f4efe6;
  border-radius: var(--vk-radius-lg);
  padding: 3.5rem 2rem;
  text-align: center;
  margin: 0.5rem 0 1.5rem;
  position: relative;
  overflow: hidden;
}
.vk-cta::before {
  content: "";
  position: absolute;
  inset: -30% 40% auto -10%;
  height: 90%;
  background: radial-gradient(ellipse, rgba(196, 164, 160, 0.22), transparent 70%);
  pointer-events: none;
}
.vk-cta h2 {
  font-family: var(--vk-serif);
  font-size: clamp(2rem, 3.5vw, 2.75rem);
  margin: 0 0 0.5rem;
  font-weight: 500;
  color: #fffbf5;
  position: relative;
}
.vk-cta h2 .script {
  font-family: var(--vk-serif);
  font-style: italic;
  font-weight: 500;
  color: #e4cfc8;
  display: block;
  font-size: 0.62em;
  letter-spacing: 0.04em;
  margin-bottom: 0.2rem;
}
.vk-cta p {
  color: rgba(244, 239, 230, 0.72);
  margin: 0 auto 1.75rem;
  max-width: 28rem;
  position: relative;
}
.vk-cta .vk-btn--solid {
  background: #f4efe6;
  color: var(--vk-green) !important;
  border-color: #f4efe6;
  position: relative;
}
.vk-cta .vk-btn--solid:hover { background: #fff; }
.vk-cta .vk-btn--line {
  color: #f4efe6 !important;
  border-color: rgba(244, 239, 230, 0.35);
  position: relative;
}
.vk-cta .vk-btn--line:hover {
  border-color: #f4efe6;
  background: rgba(255,255,255,0.06);
}

/* Footer */
.vk-footer {
  background: var(--vk-green);
  border-top: 0;
  padding: 3rem 0 2.25rem;
  margin-top: 0;
  color: rgba(244, 239, 230, 0.75);
}
.vk-footer__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 1.75rem;
  justify-content: space-between;
}
.vk-footer__brand {
  font-family: var(--vk-serif);
  font-size: 1.5rem;
  font-weight: 500;
  margin: 0 0 0.4rem;
  color: #f4efe6;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.vk-footer__brand span {
  font-family: var(--vk-script);
  font-size: 1.75rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: var(--vk-blush);
  margin-left: 1px;
}
.vk-footer p { margin: 0; font-size: 0.9rem; max-width: 22rem; color: rgba(244,239,230,0.65); }
.vk-footer__links { display: flex; flex-wrap: wrap; gap: 0.75rem 1.35rem; }
.vk-footer__links a {
  color: rgba(244, 239, 230, 0.75);
  text-decoration: none;
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 500;
}
.vk-footer__links a:hover { color: #fff; }
.vk-footer__copy {
  width: 100%;
  margin-top: 1.75rem;
  padding-top: 1.35rem;
  border-top: 1px solid rgba(244, 239, 230, 0.12);
  font-size: 0.78rem;
  color: rgba(244, 239, 230, 0.45);
}

/* Auth */
.vk-auth {
  min-height: calc(100vh - 140px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 3rem 1.25rem 4rem;
  background: var(--vk-cream);
}
.vk-auth__card {
  width: 100%;
  max-width: 440px;
  background: var(--vk-paper);
  border: 1px solid var(--vk-line);
  border-radius: var(--vk-radius-lg);
  padding: 2.25rem 1.85rem 2rem;
  box-shadow: 0 12px 40px -20px rgba(11, 61, 46, 0.15);
}
.vk-auth__card--wide { max-width: 560px; }
.vk-auth__card h1 {
  font-family: var(--vk-serif);
  font-size: 2.1rem;
  margin: 0 0 0.4rem;
  font-weight: 500;
  color: var(--vk-green);
}
.vk-auth__card .vk-lead { font-size: 0.98rem; margin-bottom: 1.35rem; }
.vk-field { margin-bottom: 1rem; }
.vk-field label {
  display: block;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--vk-soft);
  margin-bottom: 0.4rem;
}
.vk-field input,
.vk-field select {
  width: 100%;
  padding: 0.75rem 0.95rem;
  border: 1px solid var(--vk-line-strong);
  border-radius: 6px;
  font: inherit;
  font-size: 1rem;
  background: var(--vk-paper);
  color: var(--vk-text);
  color-scheme: light;
}
.vk-field input:focus,
.vk-field select:focus {
  outline: none;
  border-color: var(--vk-green);
  box-shadow: 0 0 0 3px rgba(11, 61, 46, 0.12);
}
.vk-field__hint { font-size: 0.78rem; color: var(--vk-muted); margin-top: 0.3rem; }
.vk-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.vk-flash {
  padding: 0.75rem 0.95rem;
  border-radius: 8px;
  font-size: 0.9rem;
  margin-bottom: 1rem;
}
.vk-flash--error { background: #f7eaea; color: #9a4a42; border: 1px solid rgba(154,74,66,0.2); }
.vk-flash--success { background: #e8f0eb; color: #2f5c45; border: 1px solid rgba(47,92,69,0.2); }
.vk-flash--info { background: rgba(196,164,160,0.2); color: var(--vk-soft); border: 1px solid rgba(196,164,160,0.35); }
.vk-auth__footer {
  margin-top: 1.35rem;
  text-align: center;
  font-size: 0.92rem;
  color: var(--vk-soft);
}
.vk-auth__footer a { color: var(--vk-green); font-weight: 600; text-decoration: none; }
.vk-auth__footer a:hover { text-decoration: underline; }
.vk-workspaces { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.4rem; }
.vk-workspaces button {
  width: 100%;
  text-align: left;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--vk-line);
  border-radius: 8px;
  background: var(--vk-cream);
  font: inherit;
  cursor: pointer;
}
.vk-workspaces button:hover { border-color: var(--vk-green); }

.vk-page-head { padding: 3.75rem 0 1.75rem; text-align: center; }
.vk-page-head .vk-lead { margin-left: auto; margin-right: auto; }
.vk-prose {
  max-width: 640px;
  margin: 0 auto;
  color: var(--vk-soft);
  font-size: 1.08rem;
  line-height: 1.8;
  font-family: var(--vk-serif);
}
.vk-prose p { margin: 0 0 1rem; }
.vk-prose strong { color: var(--vk-green); font-family: var(--vk-sans); font-weight: 600; }

/* Mobile nav */
body.vk-nav-open { overflow: hidden; }
body.vk-nav-open .vk-nav__links {
  display: flex !important;
  flex-direction: column;
  position: fixed;
  inset: 68px 0 auto 0;
  background: var(--vk-green-mid);
  padding: 1.25rem 1.5rem 1.5rem;
  gap: 1rem;
  z-index: 60;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

@media (max-width: 900px) {
  .vk-hero__grid { grid-template-columns: 1fr; gap: 2.25rem; }
  .vk-feats { grid-template-columns: 1fr; }
  .vk-plans { grid-template-columns: 1fr; max-width: 420px; }
  .vk-demo { grid-template-columns: 1fr; }
  .vk-steps { grid-template-columns: 1fr; }
  .vk-nav__links { display: none; }
  button.vk-nav__toggle {
    display: inline-flex !important;
    margin-left: auto;
    background: #f4efe6;
    color: #0b3d2e;
    border-color: #f4efe6;
  }
  .vk-nav__cta .vk-btn { display: none; }
  .vk-nav__more { display: block; }
}
@media (max-width: 560px) {
  .vk-field-row { grid-template-columns: 1fr; }
  .vk-section { padding: 3.5rem 0; }
  .vk-hero { padding: 2.75rem 0 3rem; }
}

/* =============================================================================
   Stationery graphics — sprigs, invitation, seal, rules
   ============================================================================= */

.vk-body {
  background-color: var(--vk-cream);
  background-image:
    radial-gradient(ellipse 42% 28% at 0% 0%, rgba(196, 164, 160, 0.2), transparent 60%),
    radial-gradient(ellipse 36% 24% at 100% 8%, rgba(11, 61, 46, 0.05), transparent 55%),
    radial-gradient(rgba(11, 61, 46, 0.035) 0.6px, transparent 0.7px);
  background-size: auto, auto, 8px 8px;
}

.vk-ornament {
  width: 72px;
  height: 72px;
  margin: 0.15rem 0 0.55rem;
  border-radius: 50%;
  background: url("../img/flora/ring-gold.png") center / contain no-repeat;
}
.vk-center > .vk-ornament,
.vk-page-head .vk-ornament,
.vk-invite .vk-ornament {
  margin-left: auto;
  margin-right: auto;
}

.vk-hero { overflow: visible; }
.vk-hero__grid { position: relative; z-index: 1; }

.vk-suite {
  position: relative;
  min-width: 0;
  max-width: 100%;
  min-height: 460px;
  margin: 1.5rem 0 0.5rem;
  padding-left: 72px;
  box-sizing: border-box;
}
.vk-suite__back {
  position: absolute;
  left: -18px;
  top: 28px;
  width: 168px;
  padding: 1.15rem 1rem 1rem;
  background: #fffbf5;
  border: 1px solid rgba(11, 61, 46, 0.12);
  border-radius: 10px;
  box-shadow: 0 16px 30px -22px rgba(11, 61, 46, 0.45);
  transform: rotate(-8deg);
  z-index: 1;
}
.vk-suite__kicker {
  margin: 0;
  font-family: var(--vk-serif);
  font-style: italic;
  font-size: 1.35rem;
  color: var(--vk-blush-deep);
  line-height: 1;
}
.vk-suite__table {
  margin: 0.2rem 0 0.55rem;
  font-family: var(--vk-serif);
  font-size: 1.45rem;
  color: var(--vk-green);
}
.vk-suite__back ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.2rem;
}
.vk-suite__back li {
  font-family: var(--vk-serif);
  font-size: 1.02rem;
  color: var(--vk-soft);
  border-bottom: 1px solid rgba(196, 164, 160, 0.35);
  padding-bottom: 0.15rem;
}
.vk-invite {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background: #fffbf5;
  border: 1px solid rgba(11, 61, 46, 0.14);
  border-radius: 4px;
  min-height: 0;
  padding: 1.45rem 1.45rem 1.7rem;
  text-align: center;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.8) inset,
    0 28px 50px -28px rgba(11, 61, 46, 0.45);
  transform: rotate(2.5deg);
  overflow: hidden;
}
.vk-invite::before {
  content: "";
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(196, 164, 160, 0.75);
  pointer-events: none;
}
.vk-invite::after {
  content: "";
  position: absolute;
  inset: 16px;
  border: 1px solid rgba(11, 61, 46, 0.08);
  pointer-events: none;
}
.vk-invite__ribbon {
  position: absolute;
  top: 22px;
  right: 22px;
  z-index: 2;
  width: auto;
  background: #c4a4a0;
  color: #fffbf5;
  font-size: 0.66rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: center;
  padding: 0.32rem 0.7rem;
  box-shadow: 0 8px 14px -10px rgba(11, 61, 46, 0.6);
}
.vk-invite__arch {
  position: relative;
  display: block;
  width: min(78%, 210px);
  height: auto;
  margin: 0.15rem auto 0.2rem;
  object-fit: contain;
  pointer-events: none;
  z-index: 0;
}
.vk-invite__script {
  position: relative;
  margin: 0.15rem 0 0.1rem;
  font-family: var(--vk-serif);
  font-style: italic;
  font-size: 1.35rem;
  color: var(--vk-blush-deep);
  line-height: 1.15;
}
.vk-invite__names {
  position: relative;
  margin: 0.35rem 0 0.2rem;
  font-family: var(--vk-serif);
  font-weight: 500;
  font-size: clamp(2.3rem, 4vw, 3rem);
  line-height: 0.95;
  color: var(--vk-green);
  letter-spacing: 0.01em;
}
.vk-invite__names em {
  font-family: var(--vk-serif);
  font-style: italic;
  font-weight: 500;
  font-size: 0.62em;
  color: var(--vk-blush-deep);
  padding: 0 0.15rem;
}
.vk-invite__date,
.vk-invite__place {
  position: relative;
  margin: 0;
  font-family: var(--vk-serif);
  font-size: 1.2rem;
  letter-spacing: 0.08em;
  color: var(--vk-soft);
}
.vk-invite__place {
  margin-top: 0.15rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-family: var(--vk-sans);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--vk-green);
}
.vk-feat { position: relative; }
.vk-feat__icon {
  width: 52px;
  height: 52px;
  background:
    radial-gradient(circle at 50% 50%, #c4a4a0 0 3px, transparent 3.5px),
    #fffbf5;
  border: 1px solid rgba(11, 61, 46, 0.16);
  box-shadow:
    inset 0 0 0 5px #f4efe6,
    0 0 0 1px rgba(196, 164, 160, 0.55);
}

.vk-plan::before {
  content: "";
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(196, 164, 160, 0.55);
  border-radius: 8px;
  pointer-events: none;
}
.vk-plan--premium::before { border-color: rgba(184, 149, 100, 0.75); }
.vk-plan .vk-btn--line { background: #fffbf5; }

.vk-step {
  position: relative;
  padding: 1.35rem 1.15rem 1.25rem;
  background: var(--vk-paper);
  border: 1px solid var(--vk-line);
  border-radius: var(--vk-radius-lg);
}
.vk-step::before {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1px solid rgba(196, 164, 160, 0.85);
  box-shadow: inset 0 0 0 5px rgba(244, 239, 230, 0.9), inset 0 0 0 6px rgba(11, 61, 46, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.85rem;
  background: #fffbf5;
}
.vk-step > * { position: relative; z-index: 1; }

.vk-page-head { position: relative; overflow: hidden; }
.vk-page-head::before,
.vk-page-head::after { content: none; }
.vk-page-head .vk-wrap { position: relative; z-index: 1; }
.vk-page-head .vk-h1 { margin-bottom: 0.6rem; }
.vk-page-head .vk-eyebrow { margin-bottom: 0; }
.vk-page-head .vk-eyebrow::after {
  content: "";
  display: block;
  width: 56px;
  height: 56px;
  margin: 0.35rem auto 0.45rem;
  border-radius: 50%;
  background: url("../img/flora/ring-gold.png") center / contain no-repeat;
}

.vk-auth { position: relative; }
.vk-auth__card {
  position: relative;
  z-index: 1;
  padding-top: 4.4rem;
}
.vk-auth__card::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 1.2rem;
  left: 50%;
  width: 52px;
  height: 52px;
  transform: translateX(-50%);
  background:
    radial-gradient(circle, #fffbf5 58%, transparent 60%),
    url("../img/flora/pearl.png") center / contain no-repeat;
  pointer-events: none;
}
.vk-auth__card::before {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(196, 164, 160, 0.45);
  border-radius: 10px;
  pointer-events: none;
}

.vk-footer { position: relative; }

@media (max-width: 900px) {
  .vk-suite { margin: 0.5rem 0 0; min-height: 0; }
  .vk-suite__back { display: none; }
  .vk-hero__grid,
  .vk-hero__grid > * { min-width: 0; }
  .vk-hero__grid { display: block; }
  .vk-suite { width: 100%; padding-left: 0; }
  .vk-invite { width: 100%; transform: none; }
  .vk-invite__ribbon {
    position: static;
    display: table;
    margin: 0 auto 0.85rem;
    right: auto;
    top: auto;
  }
  .vk-invite__script { font-size: 1.35rem; padding: 0 0.4rem; }
  .vk-invite__names { font-size: 2.2rem; }
  .vk-hero__meta { gap: 0.55rem 1rem; }
  .vk-hero__meta span { white-space: nowrap; }
}
@media (max-width: 560px) {
  .vk-nav__inner { padding: 0 0.7rem; gap: 0.35rem; }
  .vk-nav__cta { gap: 0.3rem; }
  .vk-logo { font-size: 1.2rem; }
  .vk-logo span { font-size: 1.45rem; }
  .vk-nav .vk-btn--sm { padding: 0.42rem 0.48rem; letter-spacing: 0.04em; font-size: 0.62rem; }
  .vk-nav__cta .vk-btn--solid { display: none; }
  .vk-hero__meta { flex-direction: column; align-items: flex-start; gap: 0.35rem; }
  .vk-hero__meta span { white-space: normal; }
  .vk-invite { padding: 1.15rem 1rem 1.45rem; }
  .vk-invite__arch { width: min(92%, 220px); }
}

/* Demonstracija — kompiuteris ir telefonas */
#ka-gausite { scroll-margin-top: 84px; }
.vk-show__legend {
  max-width: 46rem;
  margin: -0.35rem auto 1.35rem;
  text-align: center;
  color: var(--vk-soft);
  font-size: 0.98rem;
  line-height: 1.65;
}
.vk-show__legend strong { color: var(--vk-green); font-weight: 650; }
.vk-show__switch {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.45rem;
  margin: 0 0 1.85rem;
}
.vk-show__switch button {
  font-family: var(--vk-sans);
  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: 1px solid rgba(11, 61, 46, 0.18);
  background: rgba(255, 251, 245, 0.88);
  color: var(--vk-green);
  border-radius: 999px;
  padding: 0.48rem 0.85rem;
  cursor: pointer;
}
.vk-show__switch button[aria-selected="true"] {
  background: var(--vk-green);
  color: #f4efe6;
  border-color: var(--vk-green);
}
.vk-show__switch button:focus-visible {
  outline: 2px solid var(--vk-green);
  outline-offset: 2px;
}
.vk-show__panel {
  display: none;
  grid-template-columns: minmax(0, 0.92fr) minmax(260px, 1.08fr);
  gap: 2.4rem;
  align-items: center;
}
.vk-show__panel.is-on { display: grid; }
.vk-show__panel[hidden] { display: none !important; }
.vk-show__panel:target { display: grid !important; }
.vk-show:has(.vk-show__panel:target) .vk-show__panel.is-on:not(:target) { display: none !important; }
.vk-show__where {
  font-family: var(--vk-serif);
  font-style: italic;
  color: var(--vk-blush-deep);
  margin: 0 0 0.25rem;
  font-size: 1.3rem;
}
.vk-show__copy h3 {
  font-family: var(--vk-serif);
  font-size: clamp(1.85rem, 3vw, 2.4rem);
  font-weight: 500;
  color: var(--vk-green);
  margin: 0 0 0.7rem;
  line-height: 1.12;
}
.vk-show__copy > p {
  margin: 0 0 0.9rem;
  color: var(--vk-soft);
  line-height: 1.65;
  max-width: 36rem;
}
.vk-show__copy ul {
  list-style: none;
  margin: 0 0 1.05rem;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.vk-show__copy li {
  position: relative;
  padding-left: 1rem;
  color: var(--vk-text);
}
.vk-show__copy li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55rem;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--vk-blush);
}
.vk-show__plan {
  display: inline-block;
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  font-weight: 650;
  color: var(--vk-green);
  border: 1px solid rgba(11, 61, 46, 0.16);
  border-radius: 999px;
  padding: 0.32rem 0.7rem;
  background: rgba(255, 251, 245, 0.76);
}

.vk-laptop { width: min(540px, 100%); margin-left: auto; }
.vk-laptop__lid {
  background: #0b3d2e;
  border-radius: 16px 16px 8px 8px;
  padding: 0.5rem 0.5rem 0.65rem;
  box-shadow: 0 28px 54px -34px rgba(11, 61, 46, 0.65);
}
.vk-laptop__bar {
  display: flex;
  align-items: center;
  gap: 0.32rem;
  padding: 0.15rem 0.4rem 0.45rem;
}
.vk-laptop__bar i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(244, 239, 230, 0.38);
}
.vk-laptop__bar em {
  margin-left: 0.4rem;
  font-style: normal;
  font-size: 0.72rem;
  color: rgba(244, 239, 230, 0.78);
  background: rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  padding: 0.12rem 0.65rem;
}
.vk-laptop__screen {
  background: #fffbf5;
  border-radius: 8px;
  padding: 0.95rem 1rem 1.05rem;
  min-height: 318px;
  color: #2c2824;
}
.vk-laptop__base {
  height: 12px;
  margin: 0 7%;
  background: linear-gradient(#1a5240, #072b20);
  border-radius: 0 0 12px 12px;
}
.vk-mini__kicker {
  margin: 0 0 0.15rem;
  font-family: var(--vk-serif);
  font-style: italic;
  color: var(--vk-blush-deep);
  font-size: 1rem;
}
.vk-mini__title {
  margin: 0 0 0.15rem;
  font-family: var(--vk-serif);
  font-size: 1.55rem;
  font-weight: 500;
  color: var(--vk-green);
  line-height: 1.15;
}
.vk-mini__title small {
  font-size: 0.78rem;
  color: var(--vk-muted);
  font-family: var(--vk-sans);
  font-weight: 500;
}
.vk-mini__sub { margin: 0 0 0.8rem; color: var(--vk-muted); font-size: 0.82rem; }
.vk-mini__search {
  margin: 0.55rem 0 0.65rem;
  padding: 0.4rem 0.65rem;
  border: 1px solid rgba(11, 61, 46, 0.12);
  border-radius: 8px;
  color: #a39b90;
  font-size: 0.8rem;
  background: #fff;
}
.vk-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.45rem;
  margin-bottom: 0.8rem;
}
.vk-stats div {
  background: #fff;
  border: 1px solid rgba(11, 61, 46, 0.08);
  border-radius: 10px;
  padding: 0.55rem 0.45rem 0.45rem;
  text-align: center;
}
.vk-stats strong {
  display: block;
  font-family: var(--vk-serif);
  font-size: 1.45rem;
  font-weight: 500;
  color: var(--vk-green);
  line-height: 1;
}
.vk-stats span { font-size: 0.68rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--vk-muted); }
.vk-tasks, .vk-glist, .vk-money, .vk-vendors {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.38rem;
}
.vk-tasks li, .vk-glist li, .vk-vendors li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  background: #fff;
  border: 1px solid rgba(11, 61, 46, 0.08);
  border-radius: 8px;
  padding: 0.42rem 0.6rem;
  font-size: 0.84rem;
}
.vk-tasks li > span, .vk-glist li > span { flex: 1; min-width: 0; }
.vk-tasks em, .vk-vendors em, .vk-glist b {
  font-style: normal;
  font-weight: 600;
  color: var(--vk-muted);
  font-size: 0.75rem;
  white-space: nowrap;
}
.vk-tasks .is-done span { color: #6d7a72; text-decoration: line-through; }
.vk-tasks .is-done em { color: #3d5c45; }
.vk-glist li span { display: flex; flex-direction: column; min-width: 0; }
.vk-glist small { color: var(--vk-muted); font-size: 0.72rem; }
.vk-glist em {
  font-style: normal;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-radius: 999px;
  padding: 0.16rem 0.45rem;
  white-space: nowrap;
}
.vk-glist .is-yes { background: #e7f0e9; color: #2f5c45; }
.vk-glist .is-maybe { background: #f6eee6; color: #8a5a32; }
.vk-glist .is-wait { background: #f3efe8; color: #6f675f; }
.vk-glist .is-no { background: #f8ebe8; color: #8a4540; }
.vk-money li {
  display: grid;
  grid-template-columns: 5.4rem 1fr auto;
  gap: 0.45rem;
  align-items: center;
  font-size: 0.82rem;
}
.vk-money i {
  display: block;
  height: 6px;
  border-radius: 99px;
  background: rgba(11, 61, 46, 0.1);
  position: relative;
}
.vk-money i::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: var(--w);
  border-radius: inherit;
  background: #0b3d2e;
}
.vk-money em { font-style: normal; color: var(--vk-muted); font-size: 0.75rem; }
.vk-vendors { margin-top: 0.45rem; }

.vk-phone {
  width: min(292px, 100%);
  margin: 0 auto;
  padding: 0.65rem;
  border-radius: 36px;
  background: linear-gradient(165deg, #3a342e, #161311 60%);
  box-shadow: 0 32px 60px -36px rgba(28, 22, 16, 0.7), inset 0 0 0 1px rgba(255,255,255,0.12);
}
.vk-phone__screen {
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(196, 164, 160, 0.18), transparent 60%),
    #f6f1e8;
  border-radius: 28px;
  min-height: 540px;
  padding: 0.7rem 0.95rem 1.15rem;
}
.vk-phone__time {
  margin: 0;
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: #8a837a;
}
.vk-invite-mini, .vk-day, .vk-seat, .vk-rsvp { padding-top: 0.85rem; }
.vk-invite-mini { text-align: center; }
.vk-invite-mini p { margin: 0; font-family: var(--vk-serif); font-style: italic; color: var(--vk-blush-deep); font-size: 1.15rem; }
.vk-invite-mini h3 {
  margin: 0.7rem 0 0.35rem;
  font-family: var(--vk-serif);
  font-weight: 500;
  font-size: 2.15rem;
  color: var(--vk-green);
  line-height: 1.05;
}
.vk-invite-mini h3 em { font-style: italic; color: var(--vk-blush-deep); font-size: 0.7em; }
.vk-invite-mini__date { margin-top: 0.35rem !important; font-size: 1rem !important; color: var(--vk-soft) !important; }
.vk-invite-mini__place {
  margin: 0.85rem 0 1.15rem !important;
  font-family: var(--vk-sans) !important;
  font-style: normal !important;
  font-size: 0.92rem !important;
  color: var(--vk-text) !important;
  line-height: 1.45;
}
.vk-invite-mini > span, .vk-rsvp__send {
  display: inline-block;
  background: var(--vk-green);
  color: #f4efe6;
  border-radius: 4px;
  padding: 0.55rem 1rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.vk-day h3, .vk-seat h3, .vk-rsvp h3 {
  margin: 0 0 0.8rem;
  font-family: var(--vk-serif);
  font-weight: 500;
  font-size: 1.7rem;
  color: var(--vk-green);
}
.vk-day ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.7rem; }
.vk-day li { display: grid; grid-template-columns: 3.2rem 1fr; gap: 0.45rem; align-items: start; }
.vk-day b { font-family: var(--vk-serif); font-size: 1rem; color: var(--vk-blush-deep); font-weight: 500; }
.vk-day span { color: var(--vk-text); font-size: 0.92rem; }
.vk-day small { display: block; color: var(--vk-muted); font-size: 0.75rem; }
.vk-seat { text-align: center; }
.vk-round {
  width: 92px;
  height: 92px;
  margin: 0.2rem auto 0.8rem;
  border-radius: 50%;
  border: 1px solid rgba(11, 61, 46, 0.2);
  display: grid;
  place-items: center;
  background: radial-gradient(circle at 40% 35%, #fff, #f3ece3);
  box-shadow: inset 0 0 0 8px rgba(255,251,245,0.7);
}
.vk-round span { font-family: var(--vk-serif); font-size: 1.6rem; color: var(--vk-green); }
.vk-seat ul {
  list-style: none;
  margin: 0 0 0.7rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.35rem;
}
.vk-seat li {
  background: #fff;
  border: 1px solid rgba(11, 61, 46, 0.08);
  border-radius: 999px;
  padding: 0.25rem 0.65rem;
  font-size: 0.82rem;
}
.vk-seat > p:last-child { margin: 0; color: var(--vk-soft); font-size: 0.88rem; }
.vk-choices { display: grid; gap: 0.4rem; margin-bottom: 0.85rem; }
.vk-choices span {
  display: block;
  text-align: center;
  border: 1px solid rgba(11, 61, 46, 0.14);
  border-radius: 8px;
  padding: 0.5rem 0.6rem;
  background: #fff;
  font-size: 0.88rem;
}
.vk-choices .is-pick { background: var(--vk-green); color: #f4efe6; border-color: var(--vk-green); }
.vk-rsvp__field {
  margin: 0 0 0.4rem;
  font-size: 0.82rem;
  color: var(--vk-muted);
  background: #fff;
  border-radius: 8px;
  padding: 0.45rem 0.6rem;
  border: 1px solid rgba(11, 61, 46, 0.08);
}
.vk-rsvp__field b { color: var(--vk-text); font-weight: 600; }
.vk-rsvp__send { display: block; text-align: center; margin-top: 0.8rem; }

@media (max-width: 900px) {
  .vk-show__panel,
  .vk-show__panel.is-on,
  .vk-show__panel:target {
    grid-template-columns: 1fr;
  }
  .vk-laptop { margin: 0 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .vk-show__panel { scroll-margin-top: 84px; }
}

/* Viena šventė — žingsniai fotorealistiškuose rėmuose */
.vk-story__rail {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem 0.2rem;
  margin: 0 0 1.6rem;
  position: relative;
}
.vk-story__rail::before {
  content: "";
  position: absolute;
  left: 6%;
  right: 6%;
  top: 14px;
  height: 1px;
  background: rgba(11, 61, 46, 0.16);
}
.vk-story__rail button {
  position: relative;
  z-index: 1;
  border: 0;
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.28rem;
  min-width: 4.6rem;
  padding: 0;
  font-family: var(--vk-sans);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--vk-muted);
  cursor: pointer;
}
.vk-story__rail button i {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #fffbf5;
  border: 1px solid rgba(11, 61, 46, 0.18);
  font-style: normal;
  font-family: var(--vk-serif);
  font-size: 0.95rem;
  color: var(--vk-green);
}
.vk-story__rail button.is-done i,
.vk-story__rail button[aria-selected="true"] i {
  background: var(--vk-green);
  color: #f4efe6;
  border-color: var(--vk-green);
}
.vk-story__rail button[aria-selected="true"] { color: var(--vk-green); }
.vk-story__rail button:focus-visible i {
  outline: 2px solid var(--vk-green);
  outline-offset: 2px;
}
.vk-story__panel {
  display: none;
  grid-template-columns: minmax(0, 0.84fr) minmax(260px, 1.16fr);
  gap: 2rem;
  align-items: center;
}
.vk-story__panel.is-on { display: grid; }
.vk-story__panel[hidden] { display: none !important; }
.vk-story__panel:target { display: grid !important; }
.vk-story:has(.vk-story__panel:target) .vk-story__panel.is-on:not(:target) { display: none !important; }
.vk-story__copy h3 {
  font-family: var(--vk-serif);
  font-size: clamp(1.85rem, 3vw, 2.45rem);
  font-weight: 500;
  color: var(--vk-green);
  margin: 0 0 0.65rem;
  line-height: 1.12;
}
.vk-story__copy > p {
  margin: 0 0 0.85rem;
  color: var(--vk-soft);
  line-height: 1.65;
  max-width: 36rem;
}
.vk-story__copy ul {
  list-style: none;
  margin: 0 0 1rem;
  padding: 0;
  display: grid;
  gap: 0.38rem;
}
.vk-story__copy li {
  padding-left: 0.95rem;
  position: relative;
  color: var(--vk-soft);
  line-height: 1.45;
}
.vk-story__copy li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--vk-blush);
}
.vk-device {
  position: relative;
  margin: 0 auto;
  filter: drop-shadow(0 26px 34px rgba(11, 61, 46, 0.16));
}
.vk-device--laptop { width: min(620px, 100%); }
.vk-device--phone { width: min(292px, 78%); }
.vk-device__frame {
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  z-index: 2;
  pointer-events: none;
  user-select: none;
}
.vk-device__screen {
  position: absolute;
  z-index: 1;
  overflow: hidden;
  background: #fffbf5;
  color: #2c2824;
}
.vk-device--laptop .vk-device__screen {
  left: 10.9%;
  top: 6.28%;
  width: 76.49%;
  height: 71.66%;
  border-radius: 3px;
  padding: 0.38rem 0.65rem 0.28rem;
}
.vk-device--laptop .vk-ui__title { margin-bottom: 0.22rem; font-size: 1.22rem; }
.vk-device--laptop .vk-ui__list { gap: 0.16rem; }
.vk-device--laptop .vk-ui__list li { padding: 0.18rem 0.42rem; }
.vk-device--laptop .vk-ui__table {
  width: 58px;
  height: 58px;
  margin: 0 auto 0.28rem;
  font-size: 1.35rem;
}
.vk-device--phone .vk-device__screen {
  left: 4.5%;
  top: 2.6%;
  width: 69%;
  height: 91.5%;
  border-radius: 28px;
  padding: 2.15rem 0.7rem 0.75rem;
}
.vk-ui {
  height: 100%;
  display: flex;
  flex-direction: column;
  font-size: 12.5px;
  line-height: 1.3;
}
.vk-ui__kicker {
  margin: 0;
  font-family: var(--vk-serif);
  font-style: italic;
  color: var(--vk-blush-deep);
  font-size: 1.05rem;
}
.vk-ui__title {
  margin: 0 0 0.45rem;
  font-family: var(--vk-serif);
  font-size: 1.35rem;
  color: var(--vk-green);
  font-weight: 500;
  line-height: 1.15;
}
.vk-ui__title small {
  font-family: var(--vk-sans);
  font-size: 0.62em;
  color: var(--vk-muted);
  font-weight: 500;
}
.vk-ui__list, .vk-ui__money, .vk-ui__mini, .vk-ui__day {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.28rem;
}
.vk-ui__list li, .vk-ui__mini li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.4rem;
  background: #fff;
  border: 1px solid rgba(11, 61, 46, 0.08);
  border-radius: 8px;
  padding: 0.32rem 0.45rem;
}
.vk-ui__list span, .vk-ui__mini span { min-width: 0; }
.vk-ui__list small, .vk-ui small {
  display: block;
  color: var(--vk-muted);
  font-size: 0.78em;
}
.vk-ui em {
  font-style: normal;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--vk-muted);
  white-space: nowrap;
}
.vk-ui .is-yes { color: #2f5c45; }
.vk-ui .is-maybe { color: #8a5a32; }
.vk-ui .is-wait { color: #6f675f; }
.vk-ui .is-no { color: #8a4540; }
.vk-ui__money li {
  display: grid;
  grid-template-columns: 4.6rem 1fr auto;
  gap: 0.35rem;
  align-items: center;
}
.vk-ui__money i {
  display: block;
  height: 5px;
  border-radius: 99px;
  background: rgba(11, 61, 46, 0.1);
  position: relative;
}
.vk-ui__money i::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: var(--w);
  border-radius: inherit;
  background: #0b3d2e;
}
.vk-ui__table {
  width: 74px;
  height: 74px;
  margin: 0.1rem auto 0.45rem;
  border-radius: 50%;
  border: 1px solid rgba(11, 61, 46, 0.18);
  display: grid;
  place-items: center;
  font-family: var(--vk-serif);
  font-size: 1.6rem;
  color: var(--vk-green);
  background:
    radial-gradient(circle, transparent 58%, rgba(196, 164, 160, 0.35) 59% 62%, transparent 63%);
}
.vk-ui--phone { text-align: center; }
.vk-ui__script {
  margin: 0;
  font-family: var(--vk-serif);
  font-style: italic;
  color: var(--vk-blush-deep);
  font-size: 1rem;
}
.vk-ui__names {
  margin: 0.1rem 0;
  font-family: var(--vk-serif);
  font-size: 1.55rem;
  color: var(--vk-green);
  line-height: 1;
}
.vk-ui__date { margin: 0 0 0.45rem; color: var(--vk-soft); font-size: 0.82rem; }
.vk-ui__seat {
  margin: 0;
  font-family: var(--vk-serif);
  font-size: 1.7rem;
  color: var(--vk-green);
  line-height: 1;
}
.vk-ui__choices { display: grid; gap: 0.28rem; margin: 0.35rem 0; }
.vk-ui__choices span, .vk-ui__field, .vk-ui__note {
  border: 1px solid rgba(11, 61, 46, 0.12);
  border-radius: 8px;
  padding: 0.32rem 0.4rem;
  background: #fff;
  font-size: 0.82rem;
}
.vk-ui__choices .is-pick { background: var(--vk-green); color: #f4efe6; border-color: var(--vk-green); }
.vk-ui__note { color: #3c463f; margin: 0.28rem 0; line-height: 1.4; }
.vk-ui__field { margin: 0; }
.vk-ui__field b { color: var(--vk-text); }
.vk-ui__day { text-align: left; margin-top: 0.35rem; }
.vk-ui__day li {
  display: grid;
  grid-template-columns: 2.6rem 1fr;
  gap: 0.3rem;
  padding: 0.12rem 0;
  border-bottom: 1px solid rgba(11, 61, 46, 0.08);
}
.vk-ui__day b { color: var(--vk-green); font-weight: 650; }
.vk-story__panel.is-play .vk-row {
  animation: vk-fill 0.55s ease both;
}
.vk-story__panel.is-play .vk-row:nth-child(2) { animation-delay: 0.08s; }
.vk-story__panel.is-play .vk-row:nth-child(3) { animation-delay: 0.16s; }
.vk-story__panel.is-play .vk-row:nth-child(4) { animation-delay: 0.24s; }
.vk-story__panel.is-play .vk-row:nth-child(5) { animation-delay: 0.32s; }
.vk-story__panel.is-play .vk-row:nth-child(6) { animation-delay: 0.4s; }
@keyframes vk-fill {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: none; }
}
@media (max-width: 900px) {
  .vk-story__panel,
  .vk-story__panel.is-on,
  .vk-story__panel:target { grid-template-columns: 1fr; }
  .vk-device--laptop { width: min(560px, 100%); }
  .vk-story__rail { justify-content: center; gap: 0.55rem 0.35rem; }
  .vk-story__rail::before { display: none; }
  .vk-invite__arch { width: min(78%, 210px); margin-left: auto; margin-right: auto; }
}
@media (max-width: 700px) {
  .vk-device--laptop { width: 100%; filter: none; }
  .vk-device--laptop .vk-device__frame { display: none; }
  .vk-device--laptop .vk-device__screen {
    position: relative;
    left: auto;
    top: auto;
    width: auto;
    height: auto;
    border-radius: 18px;
    padding: 0.9rem 0.85rem 0.8rem;
    box-shadow: 0 22px 40px -28px rgba(11, 61, 46, 0.45);
    border: 1px solid rgba(11, 61, 46, 0.08);
  }
}
@media (max-width: 560px) {
  .vk-ui { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
  .vk-story__panel.is-play .vk-row { animation: none; }
}

/* Shared portal shell. Existing feature/plan content keeps its class contracts. */
.vp-shell { --vk-green:#203b32; --vk-green-deep:#183127; --vk-green-mid:#254a3b; --vk-cream:#f5f2eb; --vk-paper:#fffdf8; --vk-text:#203b32; --vk-soft:#68685f; --vk-muted:#68685f; --vk-line:#dcded4; --vk-serif:"Cormorant Garamond",Georgia,serif; --vk-sans:Outfit,system-ui,sans-serif; background:#f5f2eb; color:#203b32; font-family:var(--vk-sans); letter-spacing:0; }
.vp-shell a { text-underline-offset:4px; }
.vp-shell button,.vp-shell input,.vp-shell select { font-family:inherit; }
.vp-shell :focus-visible { outline:2px solid #b37b62; outline-offset:4px; }
.vp-skip { position:fixed; left:20px; top:12px; z-index:200; padding:12px 18px; background:#203b32; color:#fffdf8; transform:translateY(-160%); }
.vp-skip:focus { transform:translateY(0); }
.vp-nav { position:sticky; top:0; z-index:70; background:#f5f2eb; border-bottom:1px solid #dcded4; }
.vp-nav__inner { max-width:1600px; height:90px; padding:0 clamp(24px,4vw,72px); margin:auto; display:flex; align-items:center; justify-content:space-between; gap:32px; }
.vp-wordmark { display:inline-block; flex-shrink:0; font:500 47px/.9 "Cormorant Garamond",Georgia,serif; letter-spacing:-3px; color:#203b32; text-decoration:none; }
.vp-wordmark span { color:#b37b62; }
.vp-nav__links { display:flex; align-items:center; gap:clamp(20px,2.3vw,42px); margin-left:auto; }
.vp-nav__links a,.vp-nav__quiet { color:#203b32; text-decoration:none; font-size:14px; padding:12px 0; transition:color .2s; }
.vp-nav__links a:hover,.vp-nav__quiet:hover,.vp-nav__links a[aria-current] { color:#9a5e46; }
.vp-nav__actions { display:flex; align-items:center; gap:24px; margin-left:clamp(8px,2vw,36px); }
.vp-button,.vp-shell .vp-button { display:inline-flex; justify-content:center; align-items:center; gap:32px; min-height:52px; padding:15px 22px; background:#203b32; border:1px solid #203b32; border-radius:5px; color:#fffdf8; text-decoration:none; font:500 15px/1.3 Outfit,system-ui,sans-serif; cursor:pointer; transition:background .2s,transform .2s; }
.vp-button:hover { background:#305242; transform:translateY(-2px); }
.vp-button--small,.vp-shell .vp-button--small { min-height:44px; padding:12px 17px; font-size:13px; gap:18px; }
.vp-shell .vp-button--outline { background:transparent; color:#203b32; }
.vp-shell .vp-button--light { background:#fffdf8; border-color:#fffdf8; color:#203b32; }
.vp-text-link { display:inline-flex; align-items:center; gap:22px; min-height:44px; color:#203b32; font-size:15px; text-decoration:underline; text-decoration-color:#b4bcb1; transition:gap .2s; }
.vp-text-link:hover { gap:28px; }
.vp-nav__toggle,.vp-nav__mobile-account { display:none; }
.vp-main { min-height:50vh; }
.vp-flashes { padding-top:24px; }
.vp-footer { background:#eeece4; padding:72px clamp(24px,4vw,72px) 24px; border-top:1px solid #dcded4; }
.vp-footer__main,.vp-footer__bottom { max-width:1456px; margin:auto; }
.vp-footer__main { display:grid; grid-template-columns:2fr 1fr 1fr; gap:60px; padding-bottom:70px; }
.vp-footer__brand p { margin:24px 0 0; font-size:15px; line-height:1.7; color:#68685f; }
.vp-footer__links { display:flex; flex-direction:column; align-items:start; gap:11px; font-size:14px; }
.vp-footer__links span { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#68685f; margin:4px 0 12px; }
.vp-footer__links a { color:#203b32; text-decoration:none; padding:3px 0; }
.vp-footer__links a:hover { text-decoration:underline; }
.vp-footer__bottom { display:flex; justify-content:space-between; gap:20px; padding-top:22px; border-top:1px solid #d3d7cc; font-size:12px; color:#68685f; }
.vp-reveal-ready { opacity:0; transform:translateY(20px); transition:opacity .6s ease,transform .6s ease; }
.vp-reveal-ready.is-visible { opacity:1; transform:translateY(0); }
.vp-shell .vk-page-head { background:transparent; padding-top:70px; }
.vp-shell .vk-h1,.vp-shell .vk-h2 { letter-spacing:-.025em; }
.vp-shell .vk-feat,.vp-shell .vk-plan { box-shadow:none; }
@media(max-width:1100px) { .vp-nav__inner { gap:20px; } .vp-nav__actions { gap:16px; margin-left:8px; } .vp-nav__links { gap:20px; } }
@media(max-width:860px) {
  .vp-nav__inner { height:74px; padding:0 24px; gap:16px; }
  .vp-wordmark { font-size:41px; }
  .vp-nav__actions { margin-left:auto; gap:12px; }
  .vp-nav__quiet { display:none; }
  .vp-nav__toggle { display:flex; width:44px; height:44px; flex-direction:column; justify-content:center; align-items:center; gap:6px; border:0; background:transparent; color:#203b32; cursor:pointer; }
  .vp-nav__toggle span { display:block; height:1px; width:23px; background:currentColor; transition:transform .2s; }
  .vp-menu-open .vp-nav__toggle span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .vp-menu-open .vp-nav__toggle span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .vp-nav__links { display:none; position:absolute; left:0; right:0; top:74px; margin:0; padding:20px 24px 28px; background:#f5f2eb; border-bottom:1px solid #dcded4; box-shadow:0 20px 24px #203b320a; }
  .vp-menu-open .vp-nav__links { display:flex; flex-direction:column; align-items:stretch; gap:0; }
  .vp-nav__links a { padding:14px 0; font-size:17px; border-bottom:1px solid #dcded4; }
  .vp-nav__mobile-account { display:block; }
  .vp-footer__main { gap:32px; grid-template-columns:1.5fr 1fr 1fr; }
}
@media(max-width:560px) {
  .vp-nav__inner { padding:0 20px; }
  .vp-nav__actions .vp-button { font-size:12px; padding:10px 12px; min-height:42px; gap:10px; }
  .vp-nav__actions .vp-button span { display:none; }
  .vp-footer { padding:48px 24px 24px; }
  .vp-footer__main { grid-template-columns:1fr 1fr; gap:38px 24px; padding-bottom:38px; }
  .vp-footer__brand { grid-column:1/-1; }
  .vp-footer__bottom { flex-direction:column; gap:8px; }
}
@media(prefers-reduced-motion:reduce) { .vp-shell *, .vp-shell *::before,.vp-shell *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } .vp-reveal-ready { opacity:1; transform:none; } }
