/* ═══════════════════════════════════════════════════════════════
   La Vistule — design system
   Brand palette preserved: deep green #0F2A22, gold #B9974C,
   cream #F2EDE3. Everything else is new.
   ═══════════════════════════════════════════════════════════════ */

:root {
  /* Brand */
  --green-900:#081913;
  --green-800:#0F2A22;
  --green-700:#16392E;
  --green-600:#1F4E3F;
  --green-100:#DCE7E1;
  --gold-600:#9C7C34;
  --gold-500:#B9974C;
  --gold-400:#CFB173;
  --gold-100:#F1E7D0;
  --cream:#F2EDE3;
  --cream-dark:#E7E0D3;

  /* Semantic */
  --bg:var(--cream);
  --bg-alt:#FBF9F5;
  --surface:#FFFFFF;
  --surface-2:#F7F4EE;
  --ink:var(--green-800);
  --ink-soft:#4E5F57;
  --ink-faint:#7C8A83;
  --line:#E2DCD0;
  --line-strong:#CFC7B7;
  --accent:var(--gold-500);
  --accent-ink:#3A2E11;
  --ok:#1E7A54;
  --warn:#B45309;
  --err:#B3261E;

  /* Type */
  --font:'Inter var','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --font-display:'Inter var','Inter',-apple-system,'Segoe UI',Georgia,serif;

  --step--1:clamp(.8125rem,.79rem + .1vw,.875rem);
  --step-0:clamp(.9375rem,.91rem + .14vw,1rem);
  --step-1:clamp(1.0625rem,1.02rem + .23vw,1.1875rem);
  --step-2:clamp(1.25rem,1.17rem + .4vw,1.5rem);
  --step-3:clamp(1.5rem,1.35rem + .75vw,2.125rem);
  --step-4:clamp(1.875rem,1.6rem + 1.35vw,3rem);
  --step-5:clamp(2.25rem,1.75rem + 2.5vw,4.25rem);

  /* Space & shape */
  --gut:clamp(1.125rem,4vw,2rem);
  --sec-y:clamp(3.5rem,7vw,7rem);
  --wrap:1220px;
  --wrap-narrow:760px;
  --r-sm:10px;
  --r:16px;
  --r-lg:24px;
  --r-xl:32px;
  --r-pill:999px;

  --sh-1:0 1px 2px rgba(15,42,34,.05), 0 1px 3px rgba(15,42,34,.06);
  --sh-2:0 4px 12px rgba(15,42,34,.07), 0 2px 4px rgba(15,42,34,.04);
  --sh-3:0 18px 40px -12px rgba(15,42,34,.18), 0 6px 14px rgba(15,42,34,.06);
  --sh-4:0 32px 70px -20px rgba(8,25,19,.35);

  --ease:cubic-bezier(.22,.61,.36,1);
  --nav-h:76px;
}

/* ── Reset ─────────────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box}
*{margin:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px)}
body{
  font-family:var(--font);
  font-size:var(--step-0);
  line-height:1.65;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none;padding:0}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.12;letter-spacing:-.022em;font-weight:700;text-wrap:balance}
p{text-wrap:pretty}
:focus-visible{outline:3px solid var(--gold-500);outline-offset:3px;border-radius:4px}
::selection{background:var(--gold-500);color:#fff}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* ── Layout ────────────────────────────────────────────────── */
.lv-wrap{width:min(100% - var(--gut) * 2,var(--wrap));margin-inline:auto}
.lv-wrap--narrow{width:min(100% - var(--gut) * 2,var(--wrap-narrow))}
.lv-sec{padding-block:var(--sec-y)}
.lv-sec--tight{padding-block:clamp(2.5rem,5vw,4.5rem)}
.lv-sec--alt{background:var(--bg-alt)}
.lv-sec--dark{background:var(--green-800);color:var(--cream)}
.lv-sec--dark h2,.lv-sec--dark h3{color:#fff}
.lv-sec--dark .lv-sec-head__text{color:rgba(242,237,227,.78)}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:1rem;top:1rem;z-index:9999;background:#fff;padding:.75rem 1.25rem;border-radius:var(--r-sm);box-shadow:var(--sh-3)}

/* ── Typography helpers ────────────────────────────────────── */
.lv-eyebrow{
  font-size:var(--step--1);font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold-600);margin-bottom:.75rem;
}
.lv-sec--dark .lv-eyebrow{color:var(--gold-400)}
.lv-sec-head{max-width:64ch;margin-bottom:clamp(2rem,4vw,3.25rem)}
.lv-sec-head--center{margin-inline:auto;text-align:center}
.lv-sec-head__title{font-size:var(--step-4)}
.lv-sec-head__text{margin-top:1rem;font-size:var(--step-1);color:var(--ink-soft);line-height:1.6}
.lv-lead{font-size:var(--step-1);color:var(--ink-soft)}
.lv-prose h2{font-size:var(--step-3);margin:2.5rem 0 1rem}
.lv-prose h3{font-size:var(--step-2);margin:2rem 0 .75rem}
.lv-prose p,.lv-prose ul,.lv-prose ol{margin-bottom:1.15rem}
.lv-prose ul{list-style:disc;padding-left:1.25rem}
.lv-prose ol{list-style:decimal;padding-left:1.25rem}
.lv-prose li{margin-bottom:.4rem}
.lv-prose a{color:var(--gold-600);text-decoration:underline;text-underline-offset:3px}
.lv-prose img{border-radius:var(--r);margin:1.5rem 0}
.lv-prose blockquote{border-left:3px solid var(--gold-500);padding-left:1.25rem;font-size:var(--step-1);font-style:italic;color:var(--ink-soft);margin:1.5rem 0}

/* ── Icons ─────────────────────────────────────────────────── */
.lv-icon{flex:none}

/* ── Buttons ───────────────────────────────────────────────── */
.lv-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.875rem 1.5rem;border-radius:var(--r-pill);
  font-size:var(--step-0);font-weight:600;letter-spacing:-.01em;
  border:1.5px solid transparent;
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background-color .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease);
  white-space:nowrap;cursor:pointer;
}
.lv-btn:hover{transform:translateY(-2px)}
.lv-btn:active{transform:translateY(0)}
.lv-btn--accent{background:var(--gold-500);color:#fff;box-shadow:0 6px 18px -6px rgba(185,151,76,.65)}
.lv-btn--accent:hover{background:var(--gold-600);box-shadow:0 12px 26px -8px rgba(185,151,76,.7)}
.lv-btn--dark{background:var(--green-800);color:var(--cream)}
.lv-btn--dark:hover{background:var(--green-700)}
.lv-btn--light{background:#fff;color:var(--green-800);box-shadow:var(--sh-2)}
.lv-btn--light:hover{box-shadow:var(--sh-3)}
.lv-btn--ghost{background:transparent;color:inherit;border-color:currentColor;opacity:.9}
.lv-btn--ghost:hover{opacity:1;background:rgba(255,255,255,.08)}
.lv-sec:not(.lv-sec--dark) .lv-btn--ghost:hover{background:rgba(15,42,34,.05)}
.lv-btn--lg{padding:1.0625rem 2rem;font-size:var(--step-1)}
.lv-btn--sm{padding:.5rem 1rem;font-size:var(--step--1)}
.lv-btn--block{width:100%}
.lv-btn[disabled],.lv-btn[aria-disabled=true]{opacity:.55;pointer-events:none}
.lv-cta-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.lv-cta-row--center{justify-content:center}

.lv-link{
  display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--gold-600);
  transition:gap .2s var(--ease)
}
.lv-link:hover{gap:.7rem}

/* ── Pills & badges ────────────────────────────────────────── */
.lv-pill{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.375rem .875rem;border-radius:var(--r-pill);
  font-size:var(--step--1);font-weight:600;
  background:var(--gold-100);color:var(--gold-600);
}
.lv-pill--dark{background:rgba(255,255,255,.12);color:#fff;backdrop-filter:blur(6px)}
.lv-pill--ok{background:#E3F3EB;color:var(--ok)}

/* ── Cards ─────────────────────────────────────────────────── */
.lv-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.lv-card--hover:hover{transform:translateY(-4px);box-shadow:var(--sh-3);border-color:var(--line-strong)}

/* ═══ NAVBAR ═══════════════════════════════════════════════ */
.lv-nav{
  position:sticky;top:0;z-index:900;
  height:var(--nav-h);
  background:rgba(251,249,245,.82);
  backdrop-filter:saturate(160%) blur(14px);
  -webkit-backdrop-filter:saturate(160%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease),background-color .25s var(--ease),box-shadow .25s var(--ease);
}
.lv-nav.is-stuck{border-bottom-color:var(--line);box-shadow:0 6px 24px -18px rgba(15,42,34,.5)}
.lv-nav__inner{
  height:100%;display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);
  width:min(100% - var(--gut) * 2,var(--wrap));margin-inline:auto;
}
.lv-logo{flex:none;display:block}
.lv-logo img{width:clamp(112px,14vw,150px);height:auto}
.lv-nav__menu{display:flex;align-items:center;gap:clamp(.75rem,1.8vw,1.75rem);margin-right:auto}
.lv-nav__menu a{
  position:relative;font-size:var(--step-0);font-weight:500;color:var(--ink-soft);
  padding:.5rem 0;transition:color .2s var(--ease)
}
.lv-nav__menu a::after{
  content:"";position:absolute;left:0;right:100%;bottom:.15rem;height:2px;
  background:var(--gold-500);border-radius:2px;transition:right .25s var(--ease)
}
.lv-nav__menu a:hover,.lv-nav__menu a[aria-current]{color:var(--ink)}
.lv-nav__menu a:hover::after,.lv-nav__menu a[aria-current]::after{right:0}
.lv-nav__actions{display:flex;align-items:center;gap:.75rem;flex:none}
.lv-nav__phone{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:var(--step-0)}
.lv-nav__phone:hover{color:var(--gold-600)}
.lv-burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;border-radius:var(--r-sm);border:1px solid var(--line)}
.lv-burger span{display:block;width:20px;height:2px;background:currentColor;border-radius:2px;position:relative;transition:transform .25s var(--ease),background-color .2s}
.lv-burger span::before,.lv-burger span::after{
  content:"";position:absolute;left:0;width:20px;height:2px;background:currentColor;border-radius:2px;
  transition:transform .25s var(--ease),top .25s var(--ease)
}
.lv-burger span::before{top:-6px}
.lv-burger span::after{top:6px}
.lv-burger[aria-expanded=true] span{background:transparent}
.lv-burger[aria-expanded=true] span::before{top:0;transform:rotate(45deg)}
.lv-burger[aria-expanded=true] span::after{top:0;transform:rotate(-45deg)}

.lv-drawer{
  position:fixed;inset:var(--nav-h) 0 0;z-index:880;
  background:var(--bg-alt);
  padding:1.5rem var(--gut) 2.5rem;
  overflow-y:auto;
  transform:translateY(-8px);opacity:0;pointer-events:none;
  transition:opacity .22s var(--ease),transform .22s var(--ease);
}
.lv-drawer.is-open{opacity:1;transform:none;pointer-events:auto}
.lv-drawer a{display:block;padding:1rem 0;font-size:var(--step-2);font-weight:600;border-bottom:1px solid var(--line)}
.lv-drawer .lv-btn{margin-top:1.5rem;width:100%}
.lv-drawer__meta{margin-top:1.75rem;display:grid;gap:.5rem;color:var(--ink-soft);font-size:var(--step-0)}

@media (max-width:1020px){
  .lv-nav__menu{display:none}
  .lv-burger{display:flex}
  .lv-nav__actions .lv-btn--accent{display:none}
}
@media (max-width:560px){
  .lv-nav__phone span{display:none}
}

/* ═══ HERO ═════════════════════════════════════════════════ */
.lv-hero{
  position:relative;isolation:isolate;
  background:var(--green-800);color:var(--cream);
  padding-block:clamp(3rem,7vw,5.5rem) clamp(3.5rem,8vw,6rem);
  overflow:hidden;
}
.lv-hero__bg{position:absolute;inset:0;z-index:-2}
.lv-hero__bg img{width:100%;height:100%;object-fit:cover;opacity:.34}
.lv-hero::after{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(120% 90% at 8% 0%,rgba(15,42,34,.96) 0%,rgba(15,42,34,.82) 42%,rgba(8,25,19,.92) 100%),
    linear-gradient(180deg,rgba(8,25,19,.35),rgba(8,25,19,.85));
}
.lv-hero__grid{
  display:grid;gap:clamp(2rem,4vw,3.5rem);
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  align-items:start;
}
@media (max-width:1020px){.lv-hero__grid{grid-template-columns:1fr}}

.lv-hero__title{font-size:var(--step-5);color:#fff;letter-spacing:-.03em}
.lv-hero__title em{font-style:normal;color:var(--gold-400)}
.lv-hero__text{margin-top:1.25rem;font-size:var(--step-1);color:rgba(242,237,227,.82);max-width:56ch}
.lv-hero__badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.75rem}
.lv-hero__badge{
  display:inline-flex;align-items:center;gap:.4rem;
  padding:.4rem .85rem;border-radius:var(--r-pill);
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);
  font-size:var(--step--1);font-weight:500;color:rgba(255,255,255,.92);
  backdrop-filter:blur(4px);
}
.lv-hero__badge .lv-icon{color:var(--gold-400)}
.lv-hero__actions{margin-top:2rem}
.lv-hero__stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1.25rem;
  margin-top:clamp(2rem,4vw,3rem);padding-top:1.75rem;border-top:1px solid rgba(255,255,255,.14);
}
.lv-hero__stat b{display:block;font-size:var(--step-3);color:#fff;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.lv-hero__stat span{font-size:var(--step--1);color:rgba(242,237,227,.65)}

/* ═══ QUOTE WIDGET ═════════════════════════════════════════ */
.lv-quote{
  background:var(--surface);color:var(--ink);
  border-radius:var(--r-xl);
  box-shadow:var(--sh-4);
  padding:clamp(1.25rem,2.5vw,1.75rem);
  position:relative;
}
.lv-quote__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}
.lv-quote__title{font-size:var(--step-2)}
.lv-quote__rate{font-size:var(--step--1);color:var(--ink-faint);font-weight:500}
.lv-quote__rate b{color:var(--gold-600)}

.lv-field{position:relative;margin-bottom:.875rem}
.lv-field__label{
  display:block;font-size:var(--step--1);font-weight:600;color:var(--ink-soft);
  margin-bottom:.375rem;letter-spacing:.01em
}
.lv-field__label .req{color:var(--err)}
.lv-input,.lv-select,.lv-textarea{
  width:100%;padding:.8125rem .95rem;
  background:var(--surface-2);border:1.5px solid var(--line);border-radius:var(--r-sm);
  font-size:var(--step-0);color:var(--ink);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease),background-color .18s var(--ease);
}
.lv-input::placeholder,.lv-textarea::placeholder{color:var(--ink-faint)}
.lv-input:focus,.lv-select:focus,.lv-textarea:focus{
  outline:none;background:#fff;border-color:var(--gold-500);
  box-shadow:0 0 0 4px rgba(185,151,76,.16)
}
.lv-input[aria-invalid=true],.lv-select[aria-invalid=true]{border-color:var(--err);box-shadow:0 0 0 4px rgba(179,38,30,.1)}
.lv-textarea{min-height:110px;resize:vertical}
.lv-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%237C8A83' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}
.lv-field__error{display:none;margin-top:.3rem;font-size:var(--step--1);color:var(--err);font-weight:500}
.lv-field.has-error .lv-field__error{display:block}
.lv-field__icon{position:absolute;left:.9rem;top:2.35rem;color:var(--gold-500);pointer-events:none}
.lv-field--icon .lv-input{padding-left:2.6rem}
.lv-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

.lv-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.875rem}
.lv-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.875rem}
@media (max-width:520px){.lv-grid-2,.lv-grid-3{grid-template-columns:1fr}}

/* Autocomplete */
.lv-ac{
  position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  box-shadow:var(--sh-3);overflow:hidden;max-height:280px;overflow-y:auto;
}
.lv-ac[hidden]{display:none}
.lv-ac__item{
  display:flex;flex-direction:column;gap:.1rem;width:100%;text-align:left;
  padding:.65rem .9rem;border-bottom:1px solid var(--line);
  transition:background-color .12s
}
.lv-ac__item:last-child{border-bottom:0}
.lv-ac__item:hover,.lv-ac__item.is-active{background:var(--gold-100)}
.lv-ac__item b{font-weight:600;font-size:var(--step-0)}
.lv-ac__item span{font-size:var(--step--1);color:var(--ink-faint)}

/* Vehicle chooser */
.lv-vehicles{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.875rem}
@media (max-width:520px){.lv-vehicles{grid-template-columns:1fr}}
.lv-vehicle{position:relative}
.lv-vehicle input{position:absolute;opacity:0;width:0;height:0}
.lv-vehicle__box{
  display:block;padding:.7rem .75rem;border:1.5px solid var(--line);border-radius:var(--r-sm);
  background:var(--surface-2);cursor:pointer;text-align:center;
  transition:border-color .18s var(--ease),background-color .18s var(--ease),box-shadow .18s var(--ease)
}
.lv-vehicle__box b{display:block;font-size:var(--step-0);font-weight:600}
.lv-vehicle__box span{font-size:var(--step--1);color:var(--ink-faint)}
.lv-vehicle input:checked + .lv-vehicle__box{
  border-color:var(--gold-500);background:#fff;box-shadow:0 0 0 3px rgba(185,151,76,.16)
}
.lv-vehicle input:focus-visible + .lv-vehicle__box{outline:3px solid var(--gold-500);outline-offset:2px}

/* Result panel */
.lv-quote__result{
  margin-top:1rem;border-radius:var(--r);overflow:hidden;
  background:var(--green-800);color:var(--cream);
  display:grid;gap:0;
}
.lv-quote__result[hidden]{display:none}
.lv-quote__price{
  display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  padding:1.1rem 1.25rem;
}
.lv-quote__price-value{font-size:var(--step-4);font-weight:700;color:#fff;letter-spacing:-.03em;line-height:1}
.lv-quote__price-label{font-size:var(--step--1);color:rgba(242,237,227,.7);display:block;margin-bottom:.25rem}
.lv-quote__meta{display:flex;gap:1.25rem;flex-wrap:wrap;font-size:var(--step--1);color:rgba(242,237,227,.82)}
.lv-quote__meta span{display:inline-flex;align-items:center;gap:.35rem}
.lv-quote__breakdown{
  padding:.75rem 1.25rem;border-top:1px solid rgba(255,255,255,.12);
  font-size:var(--step--1);color:rgba(242,237,227,.62)
}
.lv-quote__cta{padding:0 1.25rem 1.25rem}

.lv-quote__note{margin-top:.875rem;font-size:var(--step--1);color:var(--ink-faint);text-align:center}
.lv-quote__msg{
  margin-top:.875rem;padding:.75rem .9rem;border-radius:var(--r-sm);font-size:var(--step--1);
  background:#FDECEA;color:var(--err);border:1px solid #F5C6C1
}
.lv-quote__msg[hidden]{display:none}
.lv-quote__msg--info{background:var(--gold-100);color:var(--gold-600);border-color:var(--gold-400)}

.lv-spinner{
  width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;
  border-radius:50%;animation:lv-spin .7s linear infinite
}
@keyframes lv-spin{to{transform:rotate(360deg)}}
.is-loading .lv-btn__label{opacity:.7}

/* ═══ TRUST BAR ════════════════════════════════════════════ */
.lv-trust{background:var(--surface);border-bottom:1px solid var(--line)}
.lv-trust__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:1.5rem;padding-block:1.5rem;align-items:center;
}
.lv-trust__item{display:flex;align-items:center;gap:.75rem;font-size:var(--step--1);color:var(--ink-soft)}
.lv-trust__item .lv-icon{color:var(--gold-500)}
.lv-trust__item b{display:block;color:var(--ink);font-size:var(--step-0);font-weight:600}

/* ═══ SERVICES ═════════════════════════════════════════════ */
.lv-services{display:grid;gap:clamp(1rem,2vw,1.5rem);grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.lv-services{grid-template-columns:1fr}}
.lv-service{
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease)
}
.lv-service:hover{transform:translateY(-5px);box-shadow:var(--sh-3)}
.lv-service__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--green-700)}
.lv-service__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.lv-service:hover .lv-service__media img{transform:scale(1.05)}
.lv-service__icon{
  position:absolute;left:1rem;bottom:1rem;width:44px;height:44px;
  display:grid;place-items:center;border-radius:12px;
  background:rgba(255,255,255,.94);color:var(--green-800);box-shadow:var(--sh-2)
}
.lv-service__body{padding:1.5rem;display:flex;flex-direction:column;flex:1;gap:.75rem}
.lv-service__title{font-size:var(--step-2)}
.lv-service__sub{font-size:var(--step--1);color:var(--gold-600);font-weight:600;margin-top:-.4rem}
.lv-service__text{color:var(--ink-soft);font-size:var(--step-0)}
.lv-service__list{display:grid;gap:.5rem;margin-top:.25rem}
.lv-service__list li{display:flex;gap:.55rem;font-size:var(--step--1);color:var(--ink-soft);line-height:1.5}
.lv-service__list .lv-icon{color:var(--ok);margin-top:.15rem}
.lv-service__foot{margin-top:auto;padding-top:1rem}

/* ═══ ROUTE CARDS ══════════════════════════════════════════ */
.lv-routes{display:grid;gap:clamp(1rem,2vw,1.5rem);grid-template-columns:repeat(3,1fr)}
@media (max-width:1020px){.lv-routes{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.lv-routes{grid-template-columns:1fr}}
.lv-route{
  position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s var(--ease)
}
.lv-route:hover{transform:translateY(-5px);box-shadow:var(--sh-3);border-color:var(--line-strong)}
.lv-route__media{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--green-700)}
.lv-route__media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.lv-route:hover .lv-route__media img{transform:scale(1.06)}
.lv-route__badge{
  position:absolute;top:.85rem;left:.85rem;
  padding:.3rem .7rem;border-radius:var(--r-pill);
  background:var(--gold-500);color:#fff;font-size:.75rem;font-weight:700;
  letter-spacing:.03em;text-transform:uppercase;box-shadow:var(--sh-2)
}
.lv-route__price-tag{
  position:absolute;right:.85rem;bottom:.85rem;
  padding:.4rem .8rem;border-radius:var(--r-pill);
  background:rgba(255,255,255,.95);color:var(--green-800);
  font-weight:700;font-size:var(--step-0);box-shadow:var(--sh-2);backdrop-filter:blur(6px)
}
.lv-route__body{padding:1.25rem 1.25rem 1.4rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.lv-route__title{font-size:var(--step-2);letter-spacing:-.02em}
.lv-route__title a::after{content:"";position:absolute;inset:0}
.lv-route__text{font-size:var(--step--1);color:var(--ink-soft);line-height:1.55}
.lv-route__meta{
  display:flex;gap:1rem;flex-wrap:wrap;margin-top:auto;padding-top:.75rem;
  border-top:1px solid var(--line);font-size:var(--step--1);color:var(--ink-faint)
}
.lv-route__meta span{display:inline-flex;align-items:center;gap:.35rem}
.lv-route__meta .lv-icon{color:var(--gold-500)}

/* Compact route table */
.lv-pricelist{width:100%;border-collapse:collapse;background:var(--surface);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh-1)}
.lv-pricelist th,.lv-pricelist td{padding:.9rem 1rem;text-align:left;border-bottom:1px solid var(--line);font-size:var(--step-0)}
.lv-pricelist th{background:var(--surface-2);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}
.lv-pricelist tr:last-child td{border-bottom:0}
.lv-pricelist td:last-child{text-align:right;font-weight:700;white-space:nowrap}
.lv-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ═══ WHY / FEATURES ═══════════════════════════════════════ */
.lv-features{display:grid;gap:clamp(1rem,2.2vw,1.75rem);grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.lv-features{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.lv-features{grid-template-columns:1fr}}
.lv-feature{
  padding:1.5rem;border-radius:var(--r-lg);
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
}
.lv-sec:not(.lv-sec--dark) .lv-feature{background:var(--surface);border-color:var(--line);box-shadow:var(--sh-1)}
.lv-feature__icon{
  width:48px;height:48px;border-radius:14px;display:grid;place-items:center;
  background:rgba(185,151,76,.16);color:var(--gold-400);margin-bottom:1rem
}
.lv-sec:not(.lv-sec--dark) .lv-feature__icon{background:var(--gold-100);color:var(--gold-600)}
.lv-feature__title{font-size:var(--step-1);margin-bottom:.4rem}
.lv-feature__text{font-size:var(--step-0);color:rgba(242,237,227,.72);line-height:1.6}
.lv-sec:not(.lv-sec--dark) .lv-feature__text{color:var(--ink-soft)}

/* ═══ STEPS ════════════════════════════════════════════════ */
.lv-steps{display:grid;gap:clamp(1.5rem,3vw,2.5rem);grid-template-columns:repeat(3,1fr);counter-reset:step}
@media (max-width:820px){.lv-steps{grid-template-columns:1fr}}
.lv-step{position:relative;counter-increment:step;padding-top:3.25rem}
.lv-step::before{
  content:counter(step,decimal-leading-zero);
  position:absolute;top:0;left:0;
  font-size:var(--step-3);font-weight:700;color:var(--gold-500);
  font-variant-numeric:tabular-nums;letter-spacing:-.03em
}
.lv-step::after{
  content:"";position:absolute;top:1.35rem;left:3.5rem;right:0;height:1px;
  background:linear-gradient(90deg,var(--line-strong),transparent)
}
.lv-step:last-child::after{display:none}
@media (max-width:820px){.lv-step::after{display:none}}
.lv-step__title{font-size:var(--step-1);margin-bottom:.4rem}
.lv-step__text{color:var(--ink-soft);font-size:var(--step-0)}

/* ═══ SPLIT SECTIONS ═══════════════════════════════════════ */
.lv-split{display:grid;gap:clamp(2rem,4vw,4rem);grid-template-columns:1fr 1fr;align-items:center}
@media (max-width:900px){.lv-split{grid-template-columns:1fr}}
.lv-split--rev .lv-split__media{order:2}
@media (max-width:900px){.lv-split--rev .lv-split__media{order:0}}
.lv-split__media{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--sh-3)}
.lv-split__media img{width:100%;aspect-ratio:4/3;object-fit:cover}
.lv-split__badge{
  position:absolute;left:1.25rem;bottom:1.25rem;
  background:rgba(255,255,255,.95);border-radius:var(--r);padding:.85rem 1.1rem;
  box-shadow:var(--sh-2);backdrop-filter:blur(8px)
}
.lv-split__badge b{display:block;font-size:var(--step-2);color:var(--green-800);line-height:1}
.lv-split__badge span{font-size:var(--step--1);color:var(--ink-faint)}
.lv-checklist{display:grid;gap:.75rem;margin-top:1.5rem}
.lv-checklist li{display:flex;gap:.7rem;align-items:flex-start;font-size:var(--step-0)}
.lv-checklist .lv-icon{color:var(--ok);margin-top:.22rem;flex:none}

/* ═══ REVIEWS ══════════════════════════════════════════════ */
.lv-reviews{
  display:grid;gap:1.25rem;grid-template-columns:repeat(3,1fr);
}
@media (max-width:980px){.lv-reviews{grid-template-columns:repeat(2,1fr)}}
@media (max-width:660px){
  .lv-reviews{
    grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(84%,340px);
    overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;
    scrollbar-width:thin;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut)
  }
  .lv-review{scroll-snap-align:start}
}
.lv-review{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.5rem;display:flex;flex-direction:column;gap:.85rem;box-shadow:var(--sh-1)
}
.lv-review__top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.lv-stars{display:inline-flex;gap:2px}
.lv-stars__star{color:var(--line-strong);display:inline-flex}
.lv-stars__star.is-on{color:var(--gold-500)}
.lv-stars__star.is-on .lv-icon{fill:currentColor}
.lv-review__source{font-size:var(--step--1);color:var(--ink-faint);font-weight:500}
.lv-review__text{font-size:var(--step-0);color:var(--ink-soft);line-height:1.62;flex:1}
.lv-review__author{display:flex;align-items:center;gap:.7rem;padding-top:.5rem;border-top:1px solid var(--line)}
.lv-review__avatar{
  width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:var(--green-800);color:var(--gold-400);font-weight:700;font-size:var(--step--1)
}
.lv-review__author b{display:block;font-size:var(--step-0)}
.lv-review__author span{font-size:var(--step--1);color:var(--ink-faint)}
.lv-rating-summary{
  display:inline-flex;align-items:center;gap:.75rem;padding:.6rem 1.1rem;border-radius:var(--r-pill);
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--sh-1);margin-top:1rem
}
.lv-rating-summary b{font-size:var(--step-1)}
.lv-rating-summary span{font-size:var(--step--1);color:var(--ink-faint)}

/* ═══ FAQ ══════════════════════════════════════════════════ */
.lv-faq{display:grid;gap:.75rem;max-width:860px;margin-inline:auto}
.lv-faq__item{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  overflow:hidden;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)
}
.lv-faq__item[open]{border-color:var(--gold-400);box-shadow:var(--sh-2)}
.lv-faq__q{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.1rem 1.25rem;font-weight:600;font-size:var(--step-1);cursor:pointer;
  list-style:none;transition:color .2s
}
.lv-faq__q::-webkit-details-marker{display:none}
.lv-faq__q:hover{color:var(--gold-600)}
.lv-faq__q .lv-icon{transition:transform .25s var(--ease);color:var(--gold-500);flex:none}
.lv-faq__item[open] .lv-faq__q .lv-icon{transform:rotate(180deg)}
.lv-faq__a{padding:0 1.25rem 1.25rem;color:var(--ink-soft);font-size:var(--step-0);line-height:1.65;max-width:70ch}

/* ═══ CTA BAND ═════════════════════════════════════════════ */
.lv-band{
  position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(120deg,var(--green-800),var(--green-600));
  color:var(--cream);border-radius:var(--r-xl);
  padding:clamp(2rem,5vw,3.5rem);
  text-align:center;
}
.lv-band::before{
  content:"";position:absolute;inset:auto -10% -60% auto;width:520px;height:520px;z-index:-1;
  background:radial-gradient(circle,rgba(185,151,76,.35),transparent 65%)
}
.lv-band h2{font-size:var(--step-4);color:#fff}
.lv-band p{margin:.85rem auto 1.75rem;max-width:52ch;color:rgba(242,237,227,.82);font-size:var(--step-1)}

/* ═══ CONTACT ══════════════════════════════════════════════ */
.lv-contact{display:grid;gap:clamp(1.5rem,3vw,3rem);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}
@media (max-width:900px){.lv-contact{grid-template-columns:1fr}}
.lv-contact__list{display:grid;gap:1rem;margin-top:1.75rem}
.lv-contact__item{
  display:flex;gap:.9rem;align-items:flex-start;padding:1rem 1.1rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-1);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease)
}
.lv-contact__item:hover{border-color:var(--gold-400);box-shadow:var(--sh-2)}
.lv-contact__item .lv-icon{color:var(--gold-500);margin-top:.15rem}
.lv-contact__item b{display:block;font-size:var(--step--1);color:var(--ink-faint);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.lv-contact__item a,.lv-contact__item p{font-size:var(--step-1);font-weight:600}
.lv-form{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(1.25rem,3vw,2rem);box-shadow:var(--sh-2)
}
.lv-form__status{margin-top:1rem;padding:.85rem 1rem;border-radius:var(--r-sm);font-size:var(--step-0)}
.lv-form__status[hidden]{display:none}
.lv-form__status--ok{background:#E3F3EB;color:var(--ok);border:1px solid #B9E0CB}
.lv-form__status--err{background:#FDECEA;color:var(--err);border:1px solid #F5C6C1}

/* ═══ BOOKING PAGE ═════════════════════════════════════════ */
.lv-booking{display:grid;gap:clamp(1.5rem,3vw,2.5rem);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start}
@media (max-width:980px){.lv-booking{grid-template-columns:1fr}}
.lv-summary{
  position:sticky;top:calc(var(--nav-h) + 1.5rem);
  background:var(--green-800);color:var(--cream);border-radius:var(--r-lg);
  padding:1.5rem;box-shadow:var(--sh-3)
}
@media (max-width:980px){.lv-summary{position:static}}
.lv-summary h3{color:#fff;font-size:var(--step-2);margin-bottom:1rem}
.lv-summary__row{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:var(--step-0)}
.lv-summary__row:last-of-type{border-bottom:0}
.lv-summary__row span:first-child{color:rgba(242,237,227,.65)}
.lv-summary__row span:last-child{font-weight:600;text-align:right}
.lv-summary__total{
  display:flex;justify-content:space-between;align-items:baseline;gap:1rem;
  margin-top:1rem;padding-top:1rem;border-top:2px solid rgba(255,255,255,.18)
}
.lv-summary__total b{font-size:var(--step-3);color:#fff;letter-spacing:-.02em}
.lv-summary__note{margin-top:1rem;font-size:var(--step--1);color:rgba(242,237,227,.6);line-height:1.5}
.lv-fieldset{border:0;padding:0;margin:0 0 2rem}
.lv-fieldset__legend{
  font-size:var(--step-2);font-weight:700;font-family:var(--font-display);
  margin-bottom:1rem;display:flex;align-items:center;gap:.6rem
}
.lv-fieldset__legend .n{
  width:28px;height:28px;border-radius:50%;background:var(--gold-500);color:#fff;
  display:grid;place-items:center;font-size:.8125rem;font-weight:700;flex:none
}
.lv-check{display:flex;gap:.7rem;align-items:flex-start;padding:.75rem .9rem;border:1.5px solid var(--line);border-radius:var(--r-sm);cursor:pointer;transition:border-color .18s,background-color .18s}
.lv-check:hover{border-color:var(--line-strong)}
.lv-check input{margin-top:.22rem;accent-color:var(--gold-500);width:18px;height:18px;flex:none}
.lv-check:has(input:checked){border-color:var(--gold-500);background:var(--gold-100)}
.lv-check b{display:block;font-size:var(--step-0)}
.lv-check span{font-size:var(--step--1);color:var(--ink-faint)}
.lv-check__price{margin-left:auto;font-weight:700;white-space:nowrap}

/* ═══ CONFIRMATION ═════════════════════════════════════════ */
.lv-confirm{text-align:center;max-width:640px;margin-inline:auto}
.lv-confirm__icon{
  width:76px;height:76px;border-radius:50%;margin:0 auto 1.5rem;
  display:grid;place-items:center;background:#E3F3EB;color:var(--ok)
}
.lv-confirm__ref{
  display:inline-block;margin:1rem 0;padding:.6rem 1.4rem;border-radius:var(--r-pill);
  background:var(--green-800);color:var(--gold-400);font-weight:700;font-size:var(--step-2);letter-spacing:.06em
}
.lv-confirm__card{margin-top:2rem;text-align:left}

/* ═══ STICKY MOBILE CTA ════════════════════════════════════ */
.lv-sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:850;display:none;
  gap:.5rem;padding:.6rem var(--gut) calc(.6rem + env(safe-area-inset-bottom));
  background:rgba(251,249,245,.94);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);box-shadow:0 -6px 24px -18px rgba(15,42,34,.6);
  transform:translateY(110%);transition:transform .3s var(--ease)
}
.lv-sticky-cta.is-visible{transform:none}
.lv-sticky-cta .lv-btn{flex:1;padding:.8rem 1rem}
@media (max-width:768px){
  .lv-sticky-cta{display:flex}
  body{padding-bottom:0}
}

/* ═══ FOOTER ═══════════════════════════════════════════════ */
.lv-footer{background:var(--green-900);color:rgba(242,237,227,.72);padding-block:clamp(3rem,6vw,4.5rem) 0;margin-top:0}
.lv-footer__grid{
  display:grid;gap:clamp(2rem,4vw,3rem);
  grid-template-columns:1.6fr 1fr 1fr 1.2fr;
  padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.1)
}
@media (max-width:900px){.lv-footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.lv-footer__grid{grid-template-columns:1fr}}
.lv-footer__logo img{width:150px;filter:brightness(0) invert(1);opacity:.95}
.lv-footer__about{margin-top:1rem;font-size:var(--step-0);line-height:1.6;max-width:38ch}
.lv-footer h3{color:#fff;font-size:var(--step-0);text-transform:uppercase;letter-spacing:.1em;margin-bottom:1rem;font-weight:600}
.lv-footer ul{display:grid;gap:.6rem}
.lv-footer a{transition:color .18s var(--ease)}
.lv-footer a:hover{color:var(--gold-400)}
.lv-footer__contact li{display:flex;gap:.6rem;align-items:flex-start}
.lv-footer__contact .lv-icon{color:var(--gold-500);margin-top:.2rem;flex:none}
.lv-footer__bar{
  display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;align-items:center;
  padding-block:1.5rem;font-size:var(--step--1)
}
.lv-footer__bar nav{display:flex;gap:1.25rem;flex-wrap:wrap}

/* ═══ MISC PAGES ═══════════════════════════════════════════ */
.lv-page-head{
  background:var(--green-800);color:var(--cream);
  padding-block:clamp(2.5rem,5vw,4.5rem);position:relative;isolation:isolate;overflow:hidden
}
.lv-page-head::before{
  content:"";position:absolute;inset:auto -5% -70% auto;width:460px;height:460px;z-index:-1;
  background:radial-gradient(circle,rgba(185,151,76,.28),transparent 65%)
}
.lv-page-head h1{font-size:var(--step-4);color:#fff;max-width:22ch}
.lv-page-head p{margin-top:.9rem;font-size:var(--step-1);color:rgba(242,237,227,.78);max-width:62ch}
.lv-crumbs{margin-bottom:1.25rem;font-size:var(--step--1)}
.lv-crumbs ol{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;color:rgba(242,237,227,.6)}
.lv-crumbs li + li::before{content:"/";margin-right:.4rem;opacity:.5}
.lv-crumbs a:hover{color:var(--gold-400)}
.lv-sec:not(.lv-sec--dark) .lv-crumbs ol{color:var(--ink-faint)}

.lv-posts{display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr)}
@media (max-width:980px){.lv-posts{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.lv-posts{grid-template-columns:1fr}}
.lv-post{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.lv-post:hover{transform:translateY(-4px);box-shadow:var(--sh-3)}
.lv-post__media{aspect-ratio:16/10;overflow:hidden;background:var(--surface-2)}
.lv-post__media img{width:100%;height:100%;object-fit:cover}
.lv-post__body{padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.lv-post__title{font-size:var(--step-1)}
.lv-post__meta{font-size:var(--step--1);color:var(--ink-faint)}

/* ═══ ANIMATION ════════════════════════════════════════════ */
.lv-reveal{opacity:0;transform:translateY(18px)}
.lv-reveal.is-in{opacity:1;transform:none;transition:opacity .6s var(--ease),transform .6s var(--ease)}
.lv-reveal:nth-child(2){transition-delay:.06s}
.lv-reveal:nth-child(3){transition-delay:.12s}
.lv-reveal:nth-child(4){transition-delay:.18s}
.lv-reveal:nth-child(5){transition-delay:.24s}
.lv-reveal:nth-child(6){transition-delay:.3s}

/* ═══ UTILITIES ════════════════════════════════════════════ */
.lv-center{text-align:center}
.lv-mt-1{margin-top:1rem}.lv-mt-2{margin-top:2rem}.lv-mt-3{margin-top:3rem}
.lv-hide{display:none!important}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
