/*
Theme Name: LTVibe
Theme URI: https://ltvibe.ee/
Author: LTVibe
Description: LTVibe custom theme based on the approved mastercopy.
Version: 1.0.6
Text Domain: ltvibe
*/

/* ==========================================================================
   LTVibe — WordPress static stylesheet
   All classes are prefixed with ltvibe- to avoid theme conflicts.
   ========================================================================== */

:root {
  --ltvibe-background: oklch(1 0 0);
  --ltvibe-foreground: oklch(0.18 0 0);
  --ltvibe-muted: oklch(0.45 0.01 12);
  --ltvibe-border: oklch(0.92 0.008 12);
  --ltvibe-soft: oklch(0.972 0.006 12);
  --ltvibe-blush: #DFA2AE;
  --ltvibe-blush-hover: #C98292;
  --ltvibe-blush-deep: #B66E7F;
  --ltvibe-font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --ltvibe-font-display: "Playfair Display", ui-serif, Georgia, serif;
}

/* Scope reset — keep WordPress theme styles intact outside ltvibe blocks. */
.ltvibe-body,
.ltvibe-body * { box-sizing: border-box; }

html { scroll-behavior: smooth; }

.ltvibe-body {
  margin: 0;
  overflow-x: hidden;
  background: var(--ltvibe-background);
  color: var(--ltvibe-foreground);
  font-family: var(--ltvibe-font-sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  font-feature-settings: "ss01", "cv11";
}

.ltvibe-body h1,
.ltvibe-body h2,
.ltvibe-body h3,
.ltvibe-body h4 {
  font-family: var(--ltvibe-font-display);
  letter-spacing: -0.02em;
  margin: 0;
  font-weight: 500;
}

.ltvibe-body p { margin: 0; }
.ltvibe-body a { color: inherit; text-decoration: none; }
.ltvibe-body ul { list-style: none; padding: 0; margin: 0; }
.ltvibe-body button { font-family: inherit; cursor: pointer; }
.ltvibe-body svg { display: block; }

.ltvibe-italic {
  font-style: italic;
  color: inherit;
}

.ltvibe-dot,
.ltvibe-logo__dot { color: var(--ltvibe-blush-hover); }

.ltvibe-container {
  width: 100%;
  max-width: 80rem; /* 1280px */
  margin: 0 auto;
  padding: 0 1.5rem;
}
@media (min-width: 1024px) { .ltvibe-container { padding: 0 2.5rem; } }

.ltvibe-eyebrow {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: oklch(0.18 0 0 / 0.55);
}

/* ========================= HEADER ========================= */
.ltvibe-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  transition: background-color .3s ease, border-color .3s ease, backdrop-filter .3s ease;
  background: transparent;
}
.ltvibe-header.is-scrolled {
  background: oklch(1 0 0 / 0.8);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--ltvibe-border);
}
.ltvibe-header__inner {
  max-width: 80rem;
  margin: 0 auto;
  padding: 1rem 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (min-width: 1024px) { .ltvibe-header__inner { padding: 1rem 2.5rem; } }

.ltvibe-logo {
  font-family: var(--ltvibe-font-display);
  font-size: 1.875rem;
  letter-spacing: -0.02em;
  color: var(--ltvibe-foreground);
}
.ltvibe-logo--footer { font-size: 1.5rem; }

.ltvibe-nav { display: none; align-items: center; gap: 2.25rem; }
@media (min-width: 768px) { .ltvibe-nav { display: flex; } }
.ltvibe-nav__link {
  font-size: 0.875rem;
  font-weight: 500;
  color: oklch(0.18 0 0 / 0.9);
  transition: color .2s ease;
}
.ltvibe-nav__link:hover { color: var(--ltvibe-foreground); }

.ltvibe-body .ltvibe-header__cta,
.ltvibe-header__cta {
  display: none;
  background: var(--ltvibe-blush);
  color: var(--ltvibe-foreground);
  border-radius: 9999px;
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  transition: background-color .2s ease, box-shadow .2s ease;
}
@media (min-width: 768px) {
  .ltvibe-body .ltvibe-header__cta,
  .ltvibe-header__cta { display: inline-flex; }
}
.ltvibe-header__cta:hover {
  background: var(--ltvibe-blush-hover);
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

.ltvibe-menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem;
  border: 1px solid var(--ltvibe-border);
  background: transparent;
  border-radius: 9999px;
  color: var(--ltvibe-foreground);
}
@media (min-width: 768px) { .ltvibe-menu-btn { display: none; } }
.ltvibe-menu-btn .ltvibe-icon-close { display: none; }
.ltvibe-menu-btn.is-open .ltvibe-icon-menu { display: none; }
.ltvibe-menu-btn.is-open .ltvibe-icon-close { display: block; }

.ltvibe-mobile-nav {
  display: none;
  flex-direction: column;
  background: var(--ltvibe-background);
  border-top: 1px solid var(--ltvibe-border);
  padding: 0.5rem 1.5rem 1rem;
}
.ltvibe-mobile-nav.is-open { display: flex; }
@media (min-width: 768px) { .ltvibe-mobile-nav { display: none !important; } }
.ltvibe-mobile-nav__link {
  padding: 0.75rem 0;
  font-size: 1rem;
  color: oklch(0.18 0 0 / 0.8);
}
.ltvibe-body .ltvibe-mobile-nav__cta,
.ltvibe-mobile-nav__cta {
  margin-top: 0.75rem;
  background: var(--ltvibe-blush);
  color: var(--ltvibe-foreground);
  border-radius: 9999px;
  padding: 0.75rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 500;
  text-align: center;
}

/* ========================= BUTTONS ========================= */
.ltvibe-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  padding: 0.875rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  transition: all .2s ease;
  border: 1px solid transparent;
  cursor: pointer;
}
.ltvibe-body .ltvibe-btn--primary,
.ltvibe-btn--primary {
  background: var(--ltvibe-blush-hover);
  color: var(--ltvibe-foreground);
}
.ltvibe-btn--primary:hover {
  background: var(--ltvibe-blush-deep);
}
.ltvibe-btn--primary:hover svg { transform: translateX(2px); }
.ltvibe-btn--primary svg { transition: transform .2s ease; }
.ltvibe-body .ltvibe-btn--ghost,
.ltvibe-btn--ghost {
  background: var(--ltvibe-background);
  color: var(--ltvibe-foreground);
  border-color: var(--ltvibe-border);
}
.ltvibe-btn--ghost:hover {
  border-color: var(--ltvibe-blush-hover);
  color: var(--ltvibe-blush-hover);
}

/* ========================= HERO ========================= */
.ltvibe-hero {
  position: relative;
  overflow: hidden;
  padding: 8rem 1.5rem 6rem;
}
@media (min-width: 768px) { .ltvibe-hero { padding: 10rem 1.5rem 8rem; } }
@media (min-width: 1024px) { .ltvibe-hero { padding-left: 2.5rem; padding-right: 2.5rem; } }
.ltvibe-hero__bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 80% 0%, color-mix(in oklab, var(--ltvibe-blush) 35%, transparent) 0%, transparent 55%);
}
.ltvibe-hero__inner {
  position: relative;
  max-width: 80rem;
  margin: 0 auto;
  display: grid;
  gap: 4rem;
  align-items: center;
}
@media (min-width: 1024px) {
  .ltvibe-hero__inner {
    grid-template-columns: 1.05fr 1fr;
    gap: 5rem;
  }
}
.ltvibe-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid var(--ltvibe-border);
  background: oklch(1 0 0 / 0.6);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  border-radius: 9999px;
  padding: 0.25rem 0.75rem;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: oklch(0.18 0 0 / 0.6);
}
.ltvibe-pill__icon { color: var(--ltvibe-blush-hover); }

.ltvibe-hero__title {
  margin-top: 1.75rem;
  font-size: clamp(2.4rem, 5.4vw, 4.6rem);
  line-height: 1.05;
}
.ltvibe-hero__sub {
  margin-top: 1.75rem;
  max-width: 36rem;
  font-size: 1.125rem;
  line-height: 1.7;
  color: oklch(0.18 0 0 / 0.65);
}
.ltvibe-hero__ctas {
  margin-top: 2.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.ltvibe-hero__badges {
  margin-top: 2.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.ltvibe-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  border: 1px solid var(--ltvibe-border);
  background: oklch(1 0 0 / 0.7);
  border-radius: 9999px;
  padding: 0.375rem 0.875rem;
  font-size: 0.75rem;
  color: oklch(0.18 0 0 / 0.75);
}
.ltvibe-badge__check { color: var(--ltvibe-blush-hover); }

.ltvibe-hero__visual {
  position: relative;
  margin: 0 auto;
  width: 100%;
  max-width: 520px;
}

/* ========================= VISUAL ========================= */
.ltvibe-visual { position: relative; width: 100%; aspect-ratio: 1 / 1; }
.ltvibe-visual__glow {
  position: absolute; inset: 0;
  border-radius: 9999px;
  filter: blur(48px);
  opacity: 0.7;
  background: radial-gradient(circle at 60% 40%, var(--ltvibe-blush) 0%, transparent 60%);
}
.ltvibe-visual__svg { position: relative; height: 100%; width: 100%; }
.ltvibe-visual__orbit {
  transform-origin: 240px 240px;
  animation: ltvibe-spin 80s linear infinite;
}
@keyframes ltvibe-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.ltvibe-pulse {
  transform-origin: center;
  transform-box: fill-box;
  animation: ltvibe-pulse 3.4s ease-in-out infinite;
}
@keyframes ltvibe-pulse { 0%,100% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.3); opacity: 1; } }

.ltvibe-mini-visual { position: relative; width: 100%; aspect-ratio: 4 / 5; }
.ltvibe-mini-visual__glow {
  position: absolute; inset: 0;
  border-radius: 2rem;
  filter: blur(40px);
  opacity: 0.6;
  background: radial-gradient(circle at 30% 30%, var(--ltvibe-blush) 0%, transparent 65%);
}
.ltvibe-mini-visual__svg { position: relative; height: 100%; width: 100%; }

/* ========================= SECTIONS ========================= */
.ltvibe-section { padding: 7rem 0; background: var(--ltvibe-background); }
@media (min-width: 768px) { .ltvibe-section { padding: 9rem 0; } }
.ltvibe-section--soft { background: var(--ltvibe-soft); }

.ltvibe-section__header { max-width: 48rem; }
.ltvibe-section__title {
  margin-top: 1.25rem;
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.1;
}

/* ========================= GRID + CARDS ========================= */
.ltvibe-grid { margin-top: 4rem; display: grid; gap: 1.5rem; }
@media (min-width: 768px) {
  .ltvibe-grid { gap: 2rem; }
  .ltvibe-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ltvibe-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
  .ltvibe-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; }
}
.ltvibe-grid--audience { margin-top: 3.5rem; gap: 2.5rem; }
@media (min-width: 768px) { .ltvibe-grid--audience { gap: 4rem; } }

.ltvibe-card {
  position: relative;
  border: 1px solid var(--ltvibe-border);
  border-radius: 1rem;
  background: var(--ltvibe-background);
  padding: 2rem;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
@media (min-width: 768px) { .ltvibe-card { padding: 2.5rem; } }
.ltvibe-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 50px -20px rgba(216,170,184,0.45);
}
.ltvibe-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.75rem;
  width: 2.75rem;
  border-radius: 9999px;
  background: var(--ltvibe-blush);
  color: var(--ltvibe-foreground);
  transition: background-color .2s ease;
}
.ltvibe-card:hover .ltvibe-card__icon { background: var(--ltvibe-blush-hover); }
.ltvibe-card__title { margin-top: 1.5rem; font-size: 1.25rem; }
.ltvibe-card__text { margin-top: 0.75rem; color: oklch(0.18 0 0 / 0.65); line-height: 1.7; }

/* ========================= SERVICES ========================= */
.ltvibe-service {
  position: relative;
  display: flex;
  flex-direction: column;
  border: 1px solid var(--ltvibe-border);
  border-radius: 1rem;
  padding: 2rem;
  background: transparent;
  transition: transform .3s ease, border-color .3s ease, background-color .3s ease;
}
@media (min-width: 768px) { .ltvibe-service { padding: 2.5rem; } }
.ltvibe-service:hover {
  transform: translateY(-4px);
  border-color: var(--ltvibe-blush-hover);
  background: var(--ltvibe-soft);
}
.ltvibe-service__num {
  font-family: var(--ltvibe-font-display);
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: var(--ltvibe-blush-hover);
}
.ltvibe-service__title { margin-top: 1rem; font-size: 1.25rem; line-height: 1.35; }
.ltvibe-service__text { margin-top: 0.75rem; line-height: 1.7; color: oklch(0.18 0 0 / 0.65); }
.ltvibe-service__rule {
  margin-top: 2rem;
  height: 1px;
  width: 3rem;
  background: var(--ltvibe-border);
  transition: width .3s ease, background-color .3s ease;
}
.ltvibe-service:hover .ltvibe-service__rule { width: 5rem; background: var(--ltvibe-blush-hover); }

/* ========================= STATEMENT ========================= */
.ltvibe-statement {
  position: relative;
  overflow: hidden;
  background: var(--ltvibe-background);
  padding: 8rem 1.5rem;
  text-align: center;
}
@media (min-width: 768px) { .ltvibe-statement { padding: 11rem 1.5rem; } }
@media (min-width: 1024px) { .ltvibe-statement { padding-left: 2.5rem; padding-right: 2.5rem; } }
.ltvibe-statement__bg {
  position: absolute; inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 30%, color-mix(in oklab, var(--ltvibe-blush) 45%, transparent) 0%, transparent 60%);
}
.ltvibe-statement__inner {
  position: relative;
  max-width: 64rem;
  margin: 0 auto;
}
.ltvibe-statement__inner .ltvibe-eyebrow { letter-spacing: 0.22em; }
.ltvibe-statement__title {
  margin-top: 1.5rem;
  font-family: var(--ltvibe-font-display);
  font-size: clamp(2.8rem, 6vw, 5.5rem);
  line-height: 1.05;
  letter-spacing: -0.02em;
}
.ltvibe-statement__text {
  margin: 2.5rem auto 0;
  max-width: 42rem;
  font-size: 1.125rem;
  line-height: 1.7;
  color: oklch(0.18 0 0 / 0.7);
}
@media (min-width: 768px) { .ltvibe-statement__text { font-size: 1.25rem; } }

/* ========================= AUDIENCE LIST ========================= */
.ltvibe-list__item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--ltvibe-border);
  font-size: 1rem;
  line-height: 1.7;
  color: oklch(0.18 0 0 / 0.8);
}
.ltvibe-list__item:last-child { border-bottom: 0; }
.ltvibe-list__check {
  margin-top: 0.125rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 1.5rem;
  height: 1.5rem;
  width: 1.5rem;
  border-radius: 9999px;
  background: var(--ltvibe-blush);
  color: var(--ltvibe-foreground);
}

/* ========================= STORY ========================= */
.ltvibe-story {
  display: grid;
  gap: 4rem;
  align-items: center;
}
@media (min-width: 768px) {
  .ltvibe-story { grid-template-columns: 1.15fr 1fr; gap: 5rem; }
}
.ltvibe-story__title { font-size: clamp(1.9rem, 3.6vw, 3rem); line-height: 1.12; }
.ltvibe-story__body {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  font-size: 1.125rem;
  line-height: 1.7;
  color: oklch(0.18 0 0 / 0.7);
}
.ltvibe-story__visual {
  margin: 0 auto;
  width: 100%;
  max-width: 420px;
}

/* ========================= PROCESS ========================= */
.ltvibe-process { position: relative; margin-top: 4rem; }
.ltvibe-process__line {
  display: none;
  position: absolute;
  top: 22px;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--ltvibe-border);
}
@media (min-width: 768px) { .ltvibe-process__line { display: block; } }
.ltvibe-process__grid {
  display: grid;
  gap: 2.5rem;
}
@media (min-width: 768px) {
  .ltvibe-process__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; }
}
.ltvibe-step { position: relative; }
.ltvibe-step__num {
  position: relative;
  z-index: 10;
  margin-bottom: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.75rem;
  width: 2.75rem;
  border-radius: 9999px;
  border: 1px solid var(--ltvibe-border);
  background: var(--ltvibe-background);
  font-family: var(--ltvibe-font-display);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
}
.ltvibe-step__title { font-size: 1.125rem; }
.ltvibe-step__text { margin-top: 0.5rem; font-size: 0.875rem; line-height: 1.7; color: oklch(0.18 0 0 / 0.65); }

/* ========================= FINAL CTA ========================= */
.ltvibe-final { padding: 5rem 1.5rem; }
@media (min-width: 1024px) { .ltvibe-final { padding-left: 2.5rem; padding-right: 2.5rem; } }
.ltvibe-final__card {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--ltvibe-border);
  border-radius: 1.5rem;
  padding: 5rem 2rem;
  max-width: 72rem;
  margin: 0 auto;
  text-align: center;
  background: linear-gradient(135deg,
    color-mix(in oklab, var(--ltvibe-blush) 70%, white) 0%,
    color-mix(in oklab, var(--ltvibe-blush-hover) 40%, white) 100%);
}
@media (min-width: 768px) { .ltvibe-final__card { padding: 7rem 2rem; } }
.ltvibe-final__blob {
  position: absolute;
  top: -8rem;
  right: -8rem;
  height: 20rem;
  width: 20rem;
  border-radius: 9999px;
  filter: blur(48px);
  background: color-mix(in oklab, var(--ltvibe-blush-hover) 60%, transparent);
  pointer-events: none;
}
.ltvibe-final__inner { position: relative; max-width: 48rem; margin: 0 auto; }
.ltvibe-final__title {
  font-size: clamp(1.8rem, 3.6vw, 3.2rem);
  line-height: 1.12;
}
.ltvibe-final__title .ltvibe-italic { color: inherit; }
.ltvibe-final__cta { margin-top: 2.5rem; padding: 1rem 1.75rem; }

/* ========================= CONTACT ========================= */
.ltvibe-contact {
  display: grid;
  gap: 4rem;
}
@media (min-width: 768px) {
  .ltvibe-contact { grid-template-columns: 1fr 1.2fr; gap: 5rem; }
}
.ltvibe-contact__lede {
  margin-top: 1.5rem;
  max-width: 28rem;
  font-size: 1.125rem;
  line-height: 1.7;
  color: oklch(0.18 0 0 / 0.65);
}
.ltvibe-contact__cards { margin-top: 2.5rem; display: flex; flex-direction: column; gap: .75rem; }
.ltvibe-contact__card {
  display: flex;
  align-items: center;
  border: 1px solid var(--ltvibe-border);
  background: var(--ltvibe-background);
  border-radius: 0.75rem;
  padding: .85rem 1rem;
  transition: border-color .2s ease, background-color .2s ease;
}
.ltvibe-contact__card:hover { border-color: var(--ltvibe-blush-hover); background: color-mix(in oklab, var(--ltvibe-blush) 18%, white); }
.ltvibe-contact__body { display: flex; flex-direction: column; }
.ltvibe-contact__label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: oklch(0.18 0 0 / 0.5);
}
.ltvibe-contact__value { font-size: 1rem; margin-top: 0.125rem; }

.ltvibe-contact__form {
  border: 1px solid var(--ltvibe-border);
  background: var(--ltvibe-background);
  border-radius: 1rem;
  padding: 2rem;
  min-height: 18rem;
}
@media (min-width: 768px) { .ltvibe-contact__form { padding: 2.5rem; } }
.ltvibe-form-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 14rem;
  border: 1px dashed var(--ltvibe-border);
  border-radius: 0.75rem;
  color: oklch(0.18 0 0 / 0.5);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.875rem;
  text-align: center;
  padding: 2rem;
}



/* ========================= CONTACT FORM ========================= */
.ltvibe-contact__form { padding: 1.75rem; }
.ltvibe-contact-form { display:flex; flex-direction:column; gap:1rem; }
.ltvibe-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.ltvibe-contact-form label { display:flex; flex-direction:column; gap:.45rem; color:var(--ltvibe-ink); font-size:.78rem; letter-spacing:.04em; }
.ltvibe-contact-form label > span { font-weight:500; }
.ltvibe-contact-form input,
.ltvibe-contact-form select,
.ltvibe-contact-form textarea { width:100%; border:1px solid var(--ltvibe-border); background:#fff; color:var(--ltvibe-ink); border-radius:.65rem; padding:.8rem .85rem; font:inherit; font-size:.95rem; box-sizing:border-box; outline:none; transition:border-color .2s ease, box-shadow .2s ease, background-color .2s ease; }
.ltvibe-contact-form textarea { resize:vertical; min-height:9rem; }
.ltvibe-contact-form input:focus,
.ltvibe-contact-form select:focus,
.ltvibe-contact-form textarea:focus { border-color:var(--ltvibe-blush-hover); box-shadow:0 0 0 3px color-mix(in srgb, var(--ltvibe-blush) 35%, transparent); }
.ltvibe-form-full { width:100%; }
.ltvibe-form-actions { display:flex; align-items:center; gap:1rem; margin-top:.25rem; }
.ltvibe-form-actions > span { color:var(--ltvibe-muted); font-size:.82rem; }
.ltvibe-form-hp { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.ltvibe-form-message { border-radius:.75rem; padding:1rem 1.1rem; margin-bottom:.5rem; display:flex; flex-direction:column; gap:.2rem; line-height:1.5; }
.ltvibe-form-message--success { background:color-mix(in srgb, var(--ltvibe-blush) 55%, white); border:1px solid color-mix(in srgb, var(--ltvibe-blush-hover) 45%, white); }
.ltvibe-form-message--error { background:#fff8f8; border:1px solid #ebcaca; }
@media (max-width: 767px) {
  .ltvibe-form-grid { grid-template-columns:1fr; }
  .ltvibe-form-actions { align-items:flex-start; flex-direction:column; }
}

/* ========================= FOOTER ========================= */
.ltvibe-footer {
  border-top: 1px solid var(--ltvibe-border);
  background: var(--ltvibe-soft);
  padding: 4rem 0;
}
.ltvibe-footer__grid {
  display: grid;
  gap: 3rem;
}
@media (min-width: 768px) { .ltvibe-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ltvibe-footer__tag {
  margin-top: 1rem;
  max-width: 20rem;
  font-size: 0.875rem;
  line-height: 1.7;
  color: oklch(0.18 0 0 / 0.65);
}
.ltvibe-footer__label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: oklch(0.18 0 0 / 0.5);
}
.ltvibe-footer__links {
  margin-top: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-size: 0.875rem;
}
.ltvibe-footer__links a:hover,
.ltvibe-footer__nav a:hover { color: var(--ltvibe-blush-hover); }
.ltvibe-footer__nav {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  font-size: 0.875rem;
}
.ltvibe-footer__bottom {
  margin-top: 4rem;
  padding-top: 2rem;
  border-top: 1px solid var(--ltvibe-border);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  font-size: 0.75rem;
  color: oklch(0.18 0 0 / 0.5);
}
@media (min-width: 768px) { .ltvibe-footer__bottom { flex-direction: row; align-items: center; } }

/* ========================= REVEAL ANIMATIONS ========================= */
.ltvibe-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .7s ease, transform .7s ease;
  will-change: opacity, transform;
}
.ltvibe-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  .ltvibe-reveal { opacity: 1; transform: none; transition: none; }
  .ltvibe-visual__orbit, .ltvibe-pulse { animation: none; }
  html { scroll-behavior: auto; }
}

/* ========================= MASTER COPY V2 ADDITIONS ========================= */
.ltvibe-header__actions { display:flex; align-items:center; gap:1rem; }
.ltvibe-language { font-size:.72rem; letter-spacing:.12em; font-weight:600; color:oklch(.18 0 0 / .62); white-space:nowrap; }
.ltvibe-language span { color:oklch(.18 0 0 / .25); padding:0 .18rem; }
.ltvibe-language--mobile { display:block; padding:.75rem 0 0; }

.ltvibe-section__lede { max-width:44rem; margin:1.25rem auto 0; color:var(--ltvibe-muted); font-size:1.02rem; line-height:1.75; }
.ltvibe-hero__copy { max-width:42rem; }
.ltvibe-hero__title { max-width:40rem; }
.ltvibe-hero__sub { max-width:36rem; }
.ltvibe-hero__badges { margin-top:1.5rem; }
.ltvibe-badge { background:var(--ltvibe-soft); border-color:var(--ltvibe-border); }

.ltvibe-highlight { margin-top:3.5rem; padding:2rem 2.25rem; border:1px solid var(--ltvibe-border); background:var(--ltvibe-background); display:flex; flex-direction:column; gap:.45rem; }
.ltvibe-highlight strong { font-family:var(--ltvibe-font-display); font-size:clamp(1.35rem,2.6vw,2rem); line-height:1.2; font-weight:500; }
.ltvibe-highlight span { color:var(--ltvibe-muted); }
.ltvibe-highlight--dark { background: color-mix(in oklab, var(--ltvibe-blush) 22%, white); color: var(--ltvibe-foreground); border-color: var(--ltvibe-border); }
.ltvibe-highlight--dark span { color: var(--ltvibe-muted); }

.ltvibe-service__link { display:inline-flex; margin-top:1.1rem; font-size:.85rem; font-weight:600; color:var(--ltvibe-foreground); border-bottom:1px solid var(--ltvibe-border); padding-bottom:.18rem; }
.ltvibe-service__link:hover { border-color:var(--ltvibe-blush-hover); color:var(--ltvibe-blush-hover); }

.ltvibe-pricing-grid { display:grid; grid-template-columns:1fr; gap:1rem; margin-top:3rem; }
@media (min-width: 900px) { .ltvibe-pricing-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; } }
.ltvibe-price-card { position:relative; background:var(--ltvibe-background); border:1px solid var(--ltvibe-border); padding:2rem; display:flex; flex-direction:column; min-height:100%; }
.ltvibe-price-card--featured { border-color:var(--ltvibe-border); box-shadow:none; }
.ltvibe-price-card__tag { position:absolute; top:1rem; right:1rem; font-size:.68rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:.35rem .55rem; background:var(--ltvibe-blush); border-radius:999px; }
.ltvibe-price-card__label { font-size:.85rem; color:var(--ltvibe-muted); min-height:2.5em; }
.ltvibe-price-card__price { font-family:var(--ltvibe-font-display); font-size:clamp(2.7rem,5vw,4rem); line-height:1; margin-top:1rem; letter-spacing:-.04em; }
.ltvibe-price-card__price span { font-family:var(--ltvibe-font-sans); font-size:.9rem; font-weight:500; color:var(--ltvibe-muted); letter-spacing:0; margin-left:.35rem; }
.ltvibe-price-card__price .ltvibe-price-card__currency { font-family:var(--ltvibe-font-display); font-size:1.45rem; font-weight:500; color:var(--ltvibe-foreground); margin-left:.15rem; vertical-align:.35em; }
.ltvibe-price-card__volume { margin-top:.8rem; font-weight:600; }
.ltvibe-price-card__divider { margin:1.5rem 0; border-top:1px solid var(--ltvibe-border); }
.ltvibe-price-card__list { display:grid; gap:.7rem; }
.ltvibe-price-card__list li { position:relative; padding-left:1.2rem; color:oklch(.18 0 0 / .8); font-size:.92rem; }
.ltvibe-price-card__list li::before { content:'✓'; position:absolute; left:0; top:0; font-size:.76rem; color:var(--ltvibe-blush-hover); font-weight:700; }
.ltvibe-pricing-notes { display:grid; grid-template-columns:1fr; gap:1rem; margin-top:1rem; }
@media (min-width:768px) { .ltvibe-pricing-notes { grid-template-columns:1fr 1fr; } }
.ltvibe-pricing-notes > div { padding:1rem 1.15rem; border:1px solid var(--ltvibe-border); background:var(--ltvibe-background); display:flex; flex-direction:column; gap:.15rem; }
.ltvibe-pricing-notes span { color:var(--ltvibe-muted); font-size:.9rem; }
.ltvibe-pricing-guidance { margin-top:1rem; padding:1.5rem; border-top:1px solid var(--ltvibe-border); }
.ltvibe-pricing-guidance h3 { font-family:var(--ltvibe-font-display); font-size:1.45rem; font-weight:500; }
.ltvibe-pricing-guidance p { margin-top:.5rem; max-width:60rem; color:var(--ltvibe-muted); }
.ltvibe-pricing-guidance--accent { background:var(--ltvibe-background); border:1px solid var(--ltvibe-border); }

.ltvibe-annual { display:grid; grid-template-columns:1fr; gap:2rem; padding:3rem; border:1px solid var(--ltvibe-border); background:var(--ltvibe-soft); overflow:hidden; }
@media (min-width: 900px) { .ltvibe-annual { grid-template-columns:1.55fr .45fr; padding:4rem; align-items:center; } }
.ltvibe-annual__copy > p { color:var(--ltvibe-muted); margin-top:1rem; max-width:46rem; font-size:1.02rem; line-height:1.75; }
.ltvibe-annual .ltvibe-section__title { max-width:58rem; font-size:clamp(2.4rem,3.8vw,3.3rem); }
.ltvibe-annual__price { margin-top:1.5rem !important; color:var(--ltvibe-foreground) !important; }
.ltvibe-annual__small { font-size:.9rem !important; }
.ltvibe-annual__copy .ltvibe-btn { margin-top:1.5rem; }
.ltvibe-annual__aside { min-height:20rem; display:flex; align-items:center; justify-content:center; flex-direction:column; border-left:1px solid var(--ltvibe-border); position:relative; }
@media (max-width:899px) { .ltvibe-annual__aside { min-height:11rem; border-left:0; border-top:1px solid var(--ltvibe-border); padding-top:2rem; } }
.ltvibe-annual__word { font-family:var(--ltvibe-font-display); font-size:clamp(3.5rem,8vw,7rem); letter-spacing:-.05em; line-height:1; }
.ltvibe-annual__word--soft { font-family:var(--ltvibe-font-sans); font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; color:var(--ltvibe-muted); margin-top:1rem; }
.ltvibe-annual__line { width:7rem; border-top:1px solid var(--ltvibe-blush-hover); margin-top:1rem; }

.ltvibe-payroll { display:grid; grid-template-columns:1fr; gap:2rem; align-items:start; padding:3rem 0; }
@media (min-width:900px) { .ltvibe-payroll { grid-template-columns:1fr 1fr; gap:6rem; } }
.ltvibe-payroll > div:last-child p { color:var(--ltvibe-muted); font-size:1.02rem; line-height:1.75; }
.ltvibe-payroll__price { margin-top:1.4rem; color:var(--ltvibe-foreground) !important; }
.ltvibe-payroll__small { font-size:.88rem !important; margin-top:.6rem; }

.ltvibe-story-grid { display:grid; grid-template-columns:1fr; gap:2rem; margin-top:3rem; }
@media (min-width:900px) { .ltvibe-story-grid { grid-template-columns:1.15fr .85fr; gap:4rem; align-items:stretch; } }
.ltvibe-story-copy { display:block; }
.ltvibe-story-copy p { color:var(--ltvibe-muted); font-size:1.02rem; line-height:1.8; margin:0 0 1.15rem; }
.ltvibe-story-copy p:last-child { margin-bottom:0; }
.ltvibe-story-copy strong { color:inherit; font-weight:400; }
.ltvibe-story-card { background:var(--ltvibe-soft); border:1px solid var(--ltvibe-border); padding:2.5rem; display:flex; flex-direction:column; justify-content:center; min-height:18rem; }
.ltvibe-story-card__number { font-family:var(--ltvibe-font-display); font-size:clamp(4.8rem,11vw,8rem); line-height:.85; letter-spacing:-.06em; }
.ltvibe-story-card__label { margin-top:1rem; font-weight:600; max-width:12rem; }
.ltvibe-story-card__rule { width:5rem; border-top:1px solid var(--ltvibe-blush-hover); margin:2rem 0 1.25rem; }
.ltvibe-story-card__note { color:var(--ltvibe-muted); max-width:22rem; }
.ltvibe-industry-list { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:2rem; }
.ltvibe-industry-list span { border:1px solid var(--ltvibe-border); background:var(--ltvibe-background); padding:.38rem .58rem; font-size:.75rem; line-height:1.25; color:oklch(.18 0 0 / .75); white-space:nowrap; }
@media (min-width: 1200px) { .ltvibe-industry-list { flex-wrap:nowrap; } }

.ltvibe-tools { display:grid; grid-template-columns:1fr; gap:1rem; margin-top:3rem; }
@media (min-width:768px) { .ltvibe-tools { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.ltvibe-tools > div { border-top:1px solid var(--ltvibe-border); padding-top:1rem; }
.ltvibe-tools__label { font-size:.7rem; text-transform:uppercase; letter-spacing:.15em; color:oklch(.18 0 0 / .55); }
.ltvibe-tools p { margin-top:.7rem; font-family:var(--ltvibe-font-display); font-size:clamp(1.3rem,2.3vw,1.8rem); line-height:1.35; }
.ltvibe-tools__promise { margin-top:2rem; padding:1.4rem 1.5rem; background:var(--ltvibe-background); border:1px solid var(--ltvibe-border); display:flex; flex-direction:column; gap:.35rem; }
.ltvibe-tools__promise span { color:var(--ltvibe-muted); }

.ltvibe-faq { max-width:62rem; margin:2.5rem auto 0; border-top:1px solid var(--ltvibe-border); }
.ltvibe-faq__item { border-bottom:1px solid var(--ltvibe-border); padding:1.15rem 0; }
.ltvibe-faq__item summary { list-style:none; cursor:pointer; font-weight:600; padding-right:2rem; position:relative; }
.ltvibe-faq__item summary::-webkit-details-marker { display:none; }
.ltvibe-faq__item summary::after { content:'+'; position:absolute; right:0; top:-.15rem; font-size:1.5rem; font-weight:300; color:var(--ltvibe-muted); transition:transform .2s ease; }
.ltvibe-faq__item[open] summary::after { transform:rotate(45deg); }
.ltvibe-faq__item p { margin-top:.8rem; color:var(--ltvibe-muted); max-width:52rem; line-height:1.7; }

.ltvibe-final__text { max-width:44rem; margin:1rem auto 0; color:var(--ltvibe-muted); font-size:1.02rem; line-height:1.75; }

@media (max-width: 767px) {
  .ltvibe-header__actions { display:none; }
  .ltvibe-hero { padding-top:7.25rem; }
  .ltvibe-hero__visual { display:none; }
  .ltvibe-price-card { padding:1.5rem; }
  .ltvibe-annual { padding:1.5rem; }
  .ltvibe-story-card { padding:1.75rem; }
}

/* ========================= LTVIBE VISUAL REFINEMENT V1 ========================= */
.ltvibe-hero__inner { grid-template-columns: 1.05fr .95fr; }
.ltvibe-hero__visual--editorial { max-width: 520px; }
.ltvibe-hero__editorial {
  position: relative;
  width: min(100%, 500px);
  aspect-ratio: 1 / 1;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  gap: .15rem;
  padding: 3rem 2.25rem 3rem 2rem;
  overflow: hidden;
  border-left: 1px solid var(--ltvibe-border);
}
.ltvibe-hero__editorial::before {
  content: "";
  position: absolute;
  inset: 10% 2% 10% 22%;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in oklab, var(--ltvibe-blush) 68%, transparent) 0%, transparent 70%);
}
.ltvibe-hero__editorial::after {
  content: "";
  position: absolute;
  right: 7%;
  top: 12%;
  width: 62%;
  aspect-ratio: 1;
  border: 1px solid color-mix(in oklab, var(--ltvibe-blush-hover) 45%, transparent);
  border-radius: 50%;
}
.ltvibe-hero__editorial span {
  position: relative;
  z-index: 1;
  font-family: var(--ltvibe-font-display);
  font-size: clamp(2.3rem, 5vw, 4.6rem);
  line-height: .96;
  letter-spacing: -.035em;
}
.ltvibe-hero__editorial span:nth-child(1) { transform: translateX(-1.2rem); }
.ltvibe-hero__editorial span:nth-child(2) { transform: translateX(.8rem); }
.ltvibe-hero__editorial span:nth-child(3) { transform: translateX(-1.8rem); font-style: italic; }

.ltvibe-section--soft .ltvibe-section__header { max-width: 58rem; }
.ltvibe-highlight { border-radius: .9rem; background: color-mix(in oklab, var(--ltvibe-blush) 16%, white); color: var(--ltvibe-foreground); border-color: var(--ltvibe-border); padding: 2rem 2.25rem; }
.ltvibe-highlight span { color: var(--ltvibe-muted); }

.ltvibe-statement { padding: 5.5rem 1.5rem; }
@media (min-width: 768px) { .ltvibe-statement { padding: 6.5rem 1.5rem; } }
.ltvibe-statement__bg { background: radial-gradient(ellipse at 50% 30%, color-mix(in oklab, var(--ltvibe-blush) 35%, transparent) 0%, transparent 58%); }
.ltvibe-statement__title { font-size: clamp(2.5rem, 5vw, 4.7rem); }
.ltvibe-statement__text { margin-top: 1.35rem; max-width: 40rem; font-size: 1.05rem; }

@media (max-width: 1023px) {
  .ltvibe-hero__editorial { max-width: 420px; }
}
@media (max-width: 767px) {
  .ltvibe-hero__inner { grid-template-columns: 1fr; gap: 2rem; }
  .ltvibe-hero__visual--editorial { order: -1; max-width: 100%; }
  .ltvibe-hero__editorial { min-height: 220px; width: 100%; aspect-ratio: auto; align-items: center; border-left: 0; border-top: 1px solid var(--ltvibe-border); padding: 2rem 1rem; }
  .ltvibe-hero__editorial::before { inset: 5% 18%; }
  .ltvibe-hero__editorial::after { right: 22%; top: 5%; width: 56%; }
  .ltvibe-hero__editorial span:nth-child(1),
  .ltvibe-hero__editorial span:nth-child(2),
  .ltvibe-hero__editorial span:nth-child(3) { transform: none; }
  .ltvibe-highlight { padding: 1.65rem 1.4rem; }
  .ltvibe-statement { padding: 4.25rem 1.25rem; }
}


/* ========================= LTVIBE VISUAL REFINEMENT V2 ========================= */
.ltvibe-header__cta,
.ltvibe-mobile-nav__cta { background: var(--ltvibe-blush); }
.ltvibe-header__cta:hover,
.ltvibe-mobile-nav__cta:hover { background: var(--ltvibe-blush-hover); }
.ltvibe-hero__title,
.ltvibe-section__title,
.ltvibe-statement__title,
.ltvibe-final__title { color: var(--ltvibe-foreground); }
.ltvibe-section__title { max-width: 58rem; }
.ltvibe-contact__body { min-width: 0; }
.ltvibe-contact__value { font-weight: 500; }
.ltvibe-story-card__number { font-size: clamp(4.4rem, 9vw, 7rem); }
.ltvibe-final__card { background: color-mix(in oklab, var(--ltvibe-blush) 22%, white); box-shadow: none; }
@media (min-width: 1024px) {
  .ltvibe-hero { padding-bottom: 7rem; }
  .ltvibe-section__title { line-height: 1.05; }
}


/* ========================= LTVIBE VISUAL REFINEMENT V3 ========================= */
/* Center the hero editorial words for a calmer, more balanced composition. */
.ltvibe-hero__editorial {
  align-items: center;
  text-align: center;
  gap: .05rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.ltvibe-hero__editorial span:nth-child(1),
.ltvibe-hero__editorial span:nth-child(2),
.ltvibe-hero__editorial span:nth-child(3) {
  transform: none;
}

/* Replace numbered badges with a simple star motif. */
.ltvibe-card__icon {
  font-family: var(--ltvibe-font-sans);
  font-size: 1rem;
  line-height: 1;
  font-weight: 400;
}

@media (max-width: 767px) {
  .ltvibe-hero__editorial {
    align-items: center;
    text-align: center;
  }
}


/* ========================= LTVIBE VISUAL REFINEMENT V4 ========================= */
/* Softer hero editorial: typography carries the composition, decoration stays quiet. */
.ltvibe-hero__editorial { max-width: 500px; padding: 2rem 1.75rem; }
.ltvibe-hero__editorial::before { inset: 16% 14% 16% 14%; opacity: .45; }
.ltvibe-hero__editorial::after { right: 14%; top: 14%; width: 72%; opacity: .65; }
.ltvibe-hero__editorial span { font-size: clamp(2.2rem, 4.6vw, 4.1rem); }
.ltvibe-header__cta { background: var(--ltvibe-blush-hover); }
.ltvibe-header__cta:hover { background: var(--ltvibe-blush-deep); }

/* Quieter section headers and a cleaner type rhythm. */
.ltvibe-section__header { max-width: 52rem; }
.ltvibe-section__lede { max-width: 42rem; }

/* Make the service section feel like one primary offer with supporting services. */
.ltvibe-services-layout { margin-top: 3.5rem; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1.95fr); gap:1.5rem; align-items:stretch; }
.ltvibe-services-layout__secondary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem; }
.ltvibe-service--primary { min-height:100%; padding:2.5rem; display:flex; flex-direction:column; justify-content:center; background:var(--ltvibe-soft); }
.ltvibe-service--primary .ltvibe-service__title { font-size:clamp(1.55rem,2.3vw,2.1rem); }
.ltvibe-service--primary .ltvibe-service__text { max-width:34rem; margin-top:1rem; }
.ltvibe-service--primary .ltvibe-service__link { margin-top:2.25rem; align-self:flex-start; }
.ltvibe-services-layout__secondary .ltvibe-service { min-height:15rem; }
.ltvibe-services-layout__secondary .ltvibe-service { width:100%; justify-self:stretch; }
.ltvibe-services-layout__secondary .ltvibe-service:last-child { grid-column:auto; width:100%; justify-self:stretch; }

/* Care statement becomes the emotional signature, not another card. */
.ltvibe-care-statement { padding:7rem 1.5rem 6.5rem; background:var(--ltvibe-background); }
.ltvibe-care-statement__inner { max-width:80rem; margin:0 auto; padding:0 1.5rem; }
.ltvibe-care-statement h2 { margin-top:1rem; max-width:68rem; font-family:var(--ltvibe-font-display); font-size:clamp(2.7rem,5.6vw,5.6rem); line-height:1.02; letter-spacing:-.04em; font-weight:500; }
.ltvibe-care-statement p { margin-top:1.5rem; max-width:38rem; color:var(--ltvibe-muted); font-size:1.06rem; line-height:1.75; }

/* Keep the principle section compact so the page does not feel over-designed. */
.ltvibe-statement { padding:4.75rem 1.5rem; }
.ltvibe-statement__inner { max-width:64rem; }
.ltvibe-statement__title { font-size:clamp(2.25rem,4.8vw,4.3rem); }
.ltvibe-statement__text { max-width:36rem; color:var(--ltvibe-muted); }

/* Stronger but still refined annual-report feature. */
.ltvibe-annual--strong { background:linear-gradient(135deg, color-mix(in oklab, var(--ltvibe-blush) 18%, white), var(--ltvibe-soft)); border-color:color-mix(in oklab, var(--ltvibe-blush-hover) 28%, var(--ltvibe-border)); }
.ltvibe-annual--strong .ltvibe-annual__aside { border-left-color:color-mix(in oklab, var(--ltvibe-blush-hover) 24%, var(--ltvibe-border)); }

/* Less visual weight in the about section; experience gets the headline role. */
.ltvibe-story-card { background:transparent; border:0; padding:1rem 0 1rem 2.5rem; min-height:18rem; }
.ltvibe-story-card__number { font-size:clamp(5rem,10vw,8rem); }
.ltvibe-story-card__label { font-family:var(--ltvibe-font-display); font-size:1.35rem; font-weight:500; max-width:17rem; }

/* Industry chips stay neat without becoming a wall of boxes. */
.ltvibe-industry-list span { background:transparent; }


/* Industry experience reads as editorial text rather than filter-like tags. */
.ltvibe-industry-list { display:flex; flex-wrap:wrap; gap:.25rem .7rem; margin-top:2rem; }
.ltvibe-industry-list span { border:0; padding:0; background:transparent; color:var(--ltvibe-muted); font-size:.92rem; line-height:1.5; }
.ltvibe-industry-list span:not(:last-child)::after { content:'·'; margin-left:.7rem; color:var(--ltvibe-blush-hover); }

/* FAQ: lighter questions, tighter rhythm. */
.ltvibe-faq__item { padding:1rem 0; }
.ltvibe-faq__item summary { font-weight:500; }
.ltvibe-faq__item p { margin-top:.65rem; }

@media (max-width: 1023px) {
  .ltvibe-services-layout { grid-template-columns:1fr; }
  .ltvibe-services-layout__secondary .ltvibe-service:last-child { grid-column:auto; width:auto; justify-self:stretch; }
  .ltvibe-service--primary { min-height:auto; }
  .ltvibe-care-statement h2 { max-width:58rem; }
}

@media (max-width: 767px) {
  .ltvibe-hero__editorial { max-width:100%; }
  .ltvibe-services-layout__secondary { grid-template-columns:1fr; }
  .ltvibe-service--primary { padding:1.75rem; }
  .ltvibe-care-statement { padding:5rem 1.25rem; }
  .ltvibe-care-statement__inner { padding:0; }
  .ltvibe-care-statement h2 { font-size:clamp(2.3rem,11vw,3.8rem); }
  .ltvibe-story-card { padding:1.5rem 0 0; min-height:auto; }
}

/* ========================= LTVIBE VISUAL REFINEMENT V7 ========================= */
/* Keep the principle subtitle directly under the title, centered and comfortably on one line on desktop. */
.ltvibe-statement__inner { text-align:center; }
.ltvibe-statement__title { margin-bottom:.55rem; }
.ltvibe-statement__text { max-width:52rem; margin:.55rem auto 0; text-align:center; }
@media (max-width: 767px) {
  .ltvibe-statement__text { max-width:34rem; }
}


/* ========================= LTVIBE VISUAL REFINEMENT V10 ========================= */
/* Services: clean 3x2 grid, with the core service gently differentiated rather than oversized. */
.ltvibe-services-layout {
  margin-top: 3.5rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
}
.ltvibe-services-layout__secondary { display: contents; }
.ltvibe-service,
.ltvibe-service--primary {
  min-height: 22rem;
  padding: 2.2rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.ltvibe-service--primary {
  background: var(--ltvibe-soft);
}
.ltvibe-service--primary .ltvibe-service__title {
  font-size: clamp(1.55rem, 2.1vw, 2.05rem);
  max-width: 16rem;
}
.ltvibe-service__num {
  font-size: .95rem;
  line-height: 1;
  letter-spacing: 0;
  color: var(--ltvibe-blush-deep);
  margin-bottom: 1.2rem;
}
.ltvibe-service__text { max-width: 34rem; }
.ltvibe-service__link { margin-top: auto; }

/* Industry experience: one elegant inline list instead of tag-like UI. */
.ltvibe-industry-list {
  display: block;
  margin-top: 2rem;
  color: var(--ltvibe-muted);
  font-size: .94rem;
  line-height: 1.7;
}
.ltvibe-industry-list span { display: inline; border: 0; padding: 0; background: transparent; color: inherit; font-size: inherit; line-height: inherit; white-space: normal; }
.ltvibe-industry-list span:not(:last-child)::after { content: ' · '; color: var(--ltvibe-blush-deep); }

@media (max-width: 1020px) {
  .ltvibe-services-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .ltvibe-services-layout { grid-template-columns: 1fr; }
  .ltvibe-service,
  .ltvibe-service--primary { min-height: auto; }
}

/* ========================= LTVIBE MOBILE + BRAND REFINEMENT V11 ========================= */
/* Final approved messaging refinements. */
.ltvibe-card__text { max-width: 34rem; }
.ltvibe-care-statement h2 { max-width: 72rem; }
.ltvibe-story-card__note { max-width: 20rem; }
.ltvibe-price-card__volume { font-weight: 400; }

/* Annual report: replace the unexplained APR label with a quiet document motif. */
.ltvibe-annual__document {
  width: 9rem;
  height: 11rem;
  border: 1px solid color-mix(in oklab, var(--ltvibe-blush-hover) 38%, var(--ltvibe-border));
  background: color-mix(in oklab, var(--ltvibe-blush) 5%, white);
  position: relative;
  padding: 2rem 1.5rem 1.5rem;
}
.ltvibe-annual__document-corner {
  position: absolute;
  right: -1px;
  top: -1px;
  width: 2.4rem;
  height: 2.4rem;
  border-left: 1px solid color-mix(in oklab, var(--ltvibe-blush-hover) 38%, var(--ltvibe-border));
  border-bottom: 1px solid color-mix(in oklab, var(--ltvibe-blush-hover) 38%, var(--ltvibe-border));
  background: var(--ltvibe-soft);
  clip-path: polygon(100% 0, 0 0, 100% 100%);
}
.ltvibe-annual__document-line {
  display: block;
  height: 1px;
  background: color-mix(in oklab, var(--ltvibe-foreground) 32%, transparent);
  margin-top: 1.1rem;
}
.ltvibe-annual__document-line:first-of-type { width: 62%; }
.ltvibe-annual__document-line--short { width: 43%; }
.ltvibe-annual__document-month {
  display: block;
  margin-top: 2rem;
  font-family: var(--ltvibe-font-display);
  font-size: 1.35rem;
  letter-spacing: -.02em;
}

/* E-resident section gets a very quiet editorial connector rather than an icon. */
.ltvibe-e-resident__layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(16rem,.9fr); gap:4rem; align-items:center; }
.ltvibe-e-resident__visual { min-height:13rem; display:flex; align-items:center; justify-content:center; position:relative; }
.ltvibe-e-resident__line { position:absolute; width:70%; height:1px; background:color-mix(in oklab, var(--ltvibe-blush-hover) 35%, var(--ltvibe-border)); transform:rotate(-12deg); }
.ltvibe-e-resident__line--short { width:30%; transform:rotate(28deg) translate(3rem,-1.2rem); }
.ltvibe-e-resident__dot { width:.6rem; height:.6rem; border-radius:50%; background:var(--ltvibe-blush-hover); position:relative; z-index:2; }
.ltvibe-e-resident__pin { position:absolute; z-index:3; transform:translate(3.5rem,-2rem); border:1px solid var(--ltvibe-border); background:var(--ltvibe-background); border-radius:999px; padding:.4rem .65rem; font-size:.72rem; letter-spacing:.16em; }

/* The selected care statement is now the actual brand promise. */
.ltvibe-care-statement { background: color-mix(in oklab, var(--ltvibe-blush) 8%, white); }

/* Mobile: eliminate desktop overflow and preserve the editorial hierarchy. */
@media (max-width: 767px) {
  .ltvibe-container { padding-left: 1rem; padding-right: 1rem; }
  .ltvibe-header__inner { padding: .8rem 1rem; }
  .ltvibe-logo { font-size: 1.6rem; }
  .ltvibe-header { background: oklch(1 0 0 / .96); }

  .ltvibe-hero { padding: 6.5rem 1rem 4.5rem; }
  .ltvibe-hero__inner { grid-template-columns:1fr; gap:1.75rem; }
  .ltvibe-hero__copy { max-width:none; min-width:0; }
  .ltvibe-hero__visual { display:none; }
  .ltvibe-pill { font-size:.68rem; }
  .ltvibe-hero__title {
    width:100%;
    max-width:100%;
    font-size:clamp(2.15rem, 10.2vw, 3.4rem);
    line-height:1.02;
    letter-spacing:-0.035em;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  .ltvibe-hero__sub { max-width:none; font-size:.98rem; line-height:1.62; }
  .ltvibe-hero__ctas { flex-wrap:wrap; gap:.7rem; }
  .ltvibe-btn {
    padding:.8rem 1.05rem;
    max-width:100%;
    white-space:normal;
    text-align:center;
  }
  .ltvibe-hero__badges { gap:.4rem; flex-wrap:wrap; }

  .ltvibe-section { padding:4.5rem 0; }
  .ltvibe-section__title { max-width:none; font-size:clamp(2.35rem, 10.5vw, 3.4rem); line-height:1.02; }
  .ltvibe-section__lede { max-width:none; font-size:.98rem; line-height:1.65; margin-top:1rem; }

  .ltvibe-grid--2 { grid-template-columns:1fr; gap:1rem; }
  .ltvibe-card { padding:1.5rem; }
  .ltvibe-card__title { font-size:1.15rem; }
  .ltvibe-card__text { font-size:.95rem; line-height:1.65; }

  .ltvibe-care-statement { padding:4.5rem 1rem; }
  .ltvibe-care-statement__inner { padding:0; }
  .ltvibe-care-statement h2 { font-size:clamp(2.35rem, 10.5vw, 3.4rem); line-height:1.03; }
  .ltvibe-care-statement p { font-size:.98rem; line-height:1.65; }

  .ltvibe-statement { padding:4.25rem 1rem; }
  .ltvibe-statement__title { font-size:clamp(2.5rem, 11vw, 3.7rem); }
  .ltvibe-statement__text { font-size:1rem; line-height:1.65; margin-top:1rem; }

  .ltvibe-services-layout { grid-template-columns:1fr; gap:1rem; margin-top:2.25rem; }
  .ltvibe-service,
  .ltvibe-service--primary { min-height:auto; padding:1.5rem; }
  .ltvibe-service--primary { background:var(--ltvibe-soft); }
  .ltvibe-service__title,
  .ltvibe-service--primary .ltvibe-service__title { max-width:none; font-size:1.45rem; }
  .ltvibe-service__text { font-size:.95rem; line-height:1.65; }
  .ltvibe-service__link { margin-top:1.4rem; }

  .ltvibe-pricing-grid { grid-template-columns:1fr; gap:1rem; margin-top:2rem; }
  .ltvibe-price-card { padding:1.5rem; }
  .ltvibe-price-card__price { font-size:3.1rem; }
  .ltvibe-price-card__list { gap:.6rem; }
  .ltvibe-pricing-notes { grid-template-columns:1fr; }
  .ltvibe-pricing-notes > div { padding:1rem; }
  .ltvibe-pricing-guidance { padding:1.25rem 0; }

  .ltvibe-annual { grid-template-columns:1fr; gap:1.5rem; padding:1.5rem; min-width:0; }
  .ltvibe-annual__copy,
  .ltvibe-annual__aside { min-width:0; }

  .ltvibe-annual .ltvibe-section__title {
    width:100%;
    max-width:100%;
    font-size:clamp(2.05rem, 9.6vw, 3.1rem);
    line-height:1.04;
    letter-spacing:-0.035em;
    overflow-wrap:anywhere;
  }
  .ltvibe-annual__copy > p { font-size:.98rem; line-height:1.65; }
  .ltvibe-annual__aside { min-height:auto; border-top:1px solid var(--ltvibe-border); border-left:0; padding-top:1.5rem; }
  .ltvibe-annual__document { width:7.5rem; height:9.25rem; }

  .ltvibe-story-grid { grid-template-columns:1fr; gap:2rem; margin-top:2rem; }
  .ltvibe-story-copy p { font-size:.98rem; line-height:1.7; }
  .ltvibe-story-card { padding:1.5rem 0 0; min-height:auto; }
  .ltvibe-story-card__number { font-size:5rem; }
  .ltvibe-story-card__label { max-width:14rem; font-size:1.2rem; }
  .ltvibe-story-card__note { max-width:20rem; }
  .ltvibe-industry-list { font-size:.9rem; line-height:1.75; }

  .ltvibe-tools { grid-template-columns:1fr; gap:1rem; margin-top:2rem; }
  .ltvibe-tools p { font-size:1.3rem; }
  .ltvibe-tools__promise { padding:1.2rem; }

  .ltvibe-e-resident__layout { grid-template-columns:1fr; gap:2rem; }
  .ltvibe-e-resident__visual { min-height:7rem; order:-1; }
  .ltvibe-e-resident__line { width:58%; }
  .ltvibe-e-resident__pin { transform:translate(2.2rem,-1.5rem); }

  .ltvibe-faq { margin-top:2rem; }
  .ltvibe-faq__item { padding:1rem 0; }
  .ltvibe-faq__item summary { font-size:.96rem; line-height:1.45; }
  .ltvibe-faq__item p { font-size:.94rem; line-height:1.65; }

  .ltvibe-final { padding:3rem 1rem; }
  .ltvibe-final__card { padding:3.5rem 1.25rem; }
  .ltvibe-final__title { font-size:clamp(2.55rem, 11vw, 3.8rem); }
  .ltvibe-final__text { font-size:.98rem; line-height:1.65; }

  .ltvibe-contact { grid-template-columns:1fr; gap:2rem; }
  .ltvibe-contact__form { padding:1.25rem; }
  .ltvibe-contact__lede { font-size:.98rem; line-height:1.65; }
  .ltvibe-contact__cards { margin-top:1.75rem; }
  .ltvibe-contact-form input,
  .ltvibe-contact-form select,
  .ltvibe-contact-form textarea { font-size:1rem; }

  .ltvibe-footer { padding:3rem 0; }
  .ltvibe-footer__grid { grid-template-columns:1fr; gap:2rem; }
  .ltvibe-footer__bottom { margin-top:2.5rem; }
}

@media (min-width:768px) and (max-width:1023px) {
  .ltvibe-hero__title { max-width:34rem; font-size:clamp(3.1rem, 6.2vw, 4.4rem); }
  .ltvibe-hero__sub { max-width:31rem; }
  .ltvibe-services-layout { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ltvibe-service,
  .ltvibe-service--primary { min-height:20rem; }
}


/* ========================= LTVIBE MOBILE V13 HARDENING ========================= */
@media (max-width: 767px) {
  html, body { width:100%; max-width:100%; overflow-x:hidden; }
  .ltvibe-body, .ltvibe-body * { min-width:0; }
  .ltvibe-container,
  .ltvibe-hero,
  .ltvibe-hero__inner,
  .ltvibe-hero__copy,
  .ltvibe-section,
  .ltvibe-section > .ltvibe-container,
  .ltvibe-annual,
  .ltvibe-annual__copy,
  .ltvibe-contact,
  .ltvibe-contact__body,
  .ltvibe-contact__form,
  .ltvibe-final,
  .ltvibe-final__card {
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  .ltvibe-hero__inner { grid-template-columns:minmax(0,1fr); }
  .ltvibe-hero__title,
  .ltvibe-annual .ltvibe-section__title,
  .ltvibe-section__title,
  .ltvibe-statement__title,
  .ltvibe-final__title,
  .ltvibe-care-statement h2 {
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-wrap:anywhere;
    word-break:break-word;
    hyphens:auto;
  }

  .ltvibe-hero__title {
    font-size:clamp(1.9rem, 8.6vw, 2.7rem) !important;
    line-height:1.04;
    letter-spacing:-0.025em;
  }
  .ltvibe-hero__sub { width:100%; max-width:100%; }
  .ltvibe-hero__ctas { width:100%; max-width:100%; }
  .ltvibe-btn { max-width:100%; }

  .ltvibe-annual {
    overflow:hidden;
  }
  .ltvibe-annual .ltvibe-section__title {
    font-size:clamp(1.85rem, 8vw, 2.7rem) !important;
    line-height:1.06;
  }
  .ltvibe-annual__copy > p,
  .ltvibe-annual__small,
  .ltvibe-annual__price {
    width:100%;
    max-width:100%;
  }
  .ltvibe-annual__copy .ltvibe-btn { width:auto; max-width:100%; }
}

/* v14 refinements */
.ltvibe-footer__legal { display:flex; gap:1rem; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.ltvibe-footer__legal a { color:inherit; text-decoration:none; }
.ltvibe-footer__legal a:hover { text-decoration:underline; }
@media (max-width: 767px) {
  .ltvibe-footer__legal { justify-content:flex-start; }
}

/* --- Services page --- */
.ltvibe-page-hero{padding:6.75rem 0 4rem;background:var(--ltvibe-bg,#fff)}
.ltvibe-page-hero__inner{max-width:60rem}
.ltvibe-page-hero__title{font-size:clamp(3rem,6vw,5.8rem);line-height:1.02;letter-spacing:-.045em;font-weight:500;margin:.6rem 0 1.4rem}
.ltvibe-page-hero__lede{max-width:46rem;font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.7;color:var(--ltvibe-muted,#6d6a69)}
.ltvibe-service-detail{padding:7rem 0}
.ltvibe-service-detail--primary{padding-top:4rem;padding-bottom:8rem;background:var(--ltvibe-soft,#faf6f7)}
.ltvibe-service-detail--soft{background:var(--ltvibe-soft,#faf6f7)}
.ltvibe-service-detail__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(18rem,.65fr);gap:5rem;align-items:center}
.ltvibe-service-detail__grid--reverse{grid-template-columns:minmax(18rem,.65fr) minmax(0,1.35fr)}
.ltvibe-service-detail__grid--reverse .ltvibe-service-detail__copy{grid-column:2}
.ltvibe-service-detail__grid--reverse > :not(.ltvibe-service-detail__copy){grid-column:1;grid-row:1}
.ltvibe-service-detail__copy{max-width:48rem}
.ltvibe-service-detail__copy p{font-size:1.06rem;line-height:1.8;color:var(--ltvibe-text,#4f4b4b);max-width:48rem}
.ltvibe-service-detail__copy p+p{margin-top:1rem}
.ltvibe-service-detail__price{font-size:1.15rem!important;color:var(--ltvibe-text,#262222)!important}
.ltvibe-service-detail__small{font-size:.95rem!important;color:var(--ltvibe-muted,#777)!important}
.ltvibe-service-detail__aside{min-height:24rem;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1rem;overflow:hidden}
.ltvibe-service-detail__aside-word{font-family:"Playfair Display",serif;font-size:clamp(3rem,7vw,6.5rem);letter-spacing:-.05em;color:rgba(20,16,17,.16);line-height:.9;text-align:center}
.ltvibe-service-detail__aside-rule{width:7rem;height:1px;background:rgba(20,16,17,.18)}
.ltvibe-service-detail__mini-stat{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:18rem}
.ltvibe-service-detail__mini-value{font-family:"Playfair Display",serif;font-size:clamp(4.5rem,8vw,7rem);letter-spacing:-.06em;line-height:.9}
.ltvibe-service-detail__mini-label{margin-top:1rem;color:var(--ltvibe-muted,#6d6a69);font-size:.95rem}
.ltvibe-service-detail__text-link{display:inline-flex;margin-top:1.6rem;font-weight:600;color:#211d1d;text-decoration:none;border-bottom:1px solid rgba(33,29,29,.35);padding-bottom:.2rem}
.ltvibe-service-detail__annual-mark{display:flex;justify-content:center;align-items:center;min-height:24rem}
.ltvibe-annual__document--large{width:14rem;height:18rem;transform:rotate(2deg);box-shadow:0 1rem 3rem rgba(31,22,24,.08)}
.ltvibe-service-detail__statement{display:flex;flex-direction:column;gap:.2rem;justify-content:center;align-items:flex-start;padding:2.5rem 2rem;min-height:17rem;background:#fff;border:1px solid rgba(23,19,20,.08)}
.ltvibe-service-detail__statement span{color:var(--ltvibe-muted,#777);font-size:.95rem}
.ltvibe-service-detail__statement strong{font-family:"Playfair Display",serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:500;line-height:1.05}
.ltvibe-service-page__final{padding-top:2rem}
@media (max-width: 900px){
  .ltvibe-page-hero{padding:6rem 0 3.25rem}
  .ltvibe-service-detail{padding:5rem 0}
  .ltvibe-service-detail__grid,.ltvibe-service-detail__grid--reverse{grid-template-columns:1fr;gap:2.5rem}
  .ltvibe-service-detail__grid--reverse .ltvibe-service-detail__copy{grid-column:auto;grid-row:auto}
  .ltvibe-service-detail__grid--reverse > :not(.ltvibe-service-detail__copy){grid-column:auto;grid-row:auto}
  .ltvibe-service-detail__aside,.ltvibe-service-detail__annual-mark,.ltvibe-service-detail__mini-stat{min-height:auto;padding:1rem 0 0}
  .ltvibe-service-detail__statement{min-height:auto}
}
@media (max-width: 640px){
  .ltvibe-page-hero{padding:5.25rem 0 2.5rem}
  .ltvibe-page-hero__title{font-size:clamp(2.55rem,12vw,4rem);overflow-wrap:normal;word-break:normal}
  .ltvibe-page-hero__lede{font-size:1rem}
  .ltvibe-service-detail{padding:4rem 0}
  .ltvibe-service-detail--primary{padding-top:3rem;padding-bottom:4.5rem}
  .ltvibe-service-detail__copy p{font-size:1rem;line-height:1.7}
  .ltvibe-service-detail__aside-word{font-size:4rem}
  .ltvibe-service-detail__statement{padding:1.75rem 1.5rem}
}

/* V16: WordPress page routing + final responsive polish */
.ltvibe-page-hero--soft { background: #fbf4f6; }
.ltvibe-prose { max-width: 860px; }
.ltvibe-prose p { margin: 0 0 1.5rem; }
.ltvibe-about-page .ltvibe-page-hero__lede { max-width: 760px; }
.ltvibe-contact-page .ltvibe-section { min-height: 0; }

@media (max-width: 720px) {
  .ltvibe-page-hero__title,
  .ltvibe-section__title,
  .ltvibe-final__title,
  .ltvibe-service-detail__copy h2,
  .ltvibe-care-statement__inner h2 {
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }

  .ltvibe-page-hero__title,
  .ltvibe-section__title,
  .ltvibe-final__title,
  .ltvibe-service-detail__copy h2,
  .ltvibe-care-statement__inner h2 { text-wrap: pretty; }
}

/* Language switcher links */
.ltvibe-language a { color: inherit; text-decoration: none; }
.ltvibe-language a:hover { text-decoration: underline; }

/* ========================= MOBILE NAV + LANGUAGE REFINEMENT V28 ========================= */
.ltvibe-header { isolation:isolate; }
.ltvibe-menu-btn { position:relative; z-index:1002; cursor:pointer; touch-action:manipulation; }
.ltvibe-mobile-nav { position:relative; z-index:1001; pointer-events:auto; }
.ltvibe-mobile-nav a, .ltvibe-language a { pointer-events:auto; cursor:pointer; }
@media (max-width:767px) {
  .ltvibe-header { z-index:1000; }
  .ltvibe-mobile-nav.is-open { display:flex; position:absolute; left:0; right:0; top:100%; box-shadow:0 12px 30px rgba(0,0,0,.06); }
}
