/* Public landing — faithful copy of the old Lovable landing (septemberbroder.se). */
:root {
  --lv-bg: hsl(220 15% 97%);
  --lv-fg: hsl(220 25% 15%);
  --lv-card: hsl(0 0% 100%);
  --lv-muted: hsl(220 8% 46%);
  --lv-border: hsl(220 13% 88%);
  --lv-navy: hsl(217 91% 20%);
  --lv-navy-light: hsl(217 91% 35%);
  --lv-gold: hsl(45 85% 55%);
  --lv-gold-light: hsl(45 85% 70%);
  --lv-radius: .75rem;
  --lv-gradient-primary: linear-gradient(135deg, var(--lv-navy), var(--lv-navy-light));
  --lv-gradient-subtle: linear-gradient(180deg, var(--lv-bg), hsl(220 13% 94%));
  --lv-shadow-elegant: 0 20px 40px -12px hsl(217 91% 20% / .25);
}
html.member-pending #landing { visibility: hidden; }
  :where(.lv, .lv *, .lv *::before, .lv *::after) { box-sizing: border-box; border: 0 solid var(--lv-border); }
html:has(.lv) { line-height: 1.5; -webkit-text-size-adjust: 100%;
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }
body:has(> .lv) { margin: 0; background: var(--lv-bg); color: var(--lv-fg); line-height: inherit; }
.lv { font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; }
:where(.lv) :where(h1, h2, h3, p) { margin: 0; font-size: inherit; font-weight: inherit; }
:where(.lv) :where(a) { color: inherit; text-decoration: inherit; }
:where(.lv) :where(img) { display: block; max-width: 100%; height: auto; }
:where(.lv) :where(svg) { display: block; }
.lv-container { width: 100%; max-width: 1400px; margin: 0 auto; padding: 0 1rem; }

/* Header */
.lv-header { position: sticky; top: 0; z-index: 50; border-bottom-width: 1px;
  background: hsl(0 0% 100% / .8); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.lv-header-row { display: flex; align-items: center; justify-content: space-between; height: 4rem; }
.lv-brand { display: flex; align-items: center; gap: .75rem; }
.lv-brand img { width: 2.5rem; height: 2.5rem; }
.lv-brand span { display: none; font-weight: 700; font-size: 1.125rem; line-height: 1.75rem; color: var(--lv-navy); }
@media (min-width: 640px) { .lv-brand span { display: block; } }
.lv-nav { display: none; align-items: center; gap: 2rem; }
@media (min-width: 768px) { .lv-nav { display: flex; } }
.lv-navlink { display: flex; align-items: center; gap: .25rem; padding: .5rem .75rem; border-radius: calc(var(--lv-radius) - 2px);
  font-size: .875rem; line-height: 1.25rem; font-weight: 500; color: var(--lv-gold); background: hsl(45 85% 55% / .1); }
.lv-navlink svg { width: 1rem; height: 1rem; }
.lv-actions { display: flex; align-items: center; gap: 1rem; }
.lv-btn-login { display: inline-flex; align-items: center; justify-content: center; height: 2.5rem; padding: .5rem 1rem;
  border-radius: calc(var(--lv-radius) - 2px); font-size: .875rem; line-height: 1.25rem; font-weight: 500;
  color: hsl(0 0% 98%); background-image: var(--lv-gradient-primary); white-space: nowrap; }
.lv-btn-login:hover { opacity: .9; }
.lv-menu-btn { display: inline-flex; align-items: center; justify-content: center; height: 2.25rem; padding: 0 .75rem;
  border-radius: calc(var(--lv-radius) - 2px); background: transparent; color: var(--lv-fg); cursor: pointer; }
.lv-menu-btn:hover { background: var(--lv-gold); }
.lv-menu-btn svg { width: 1.25rem; height: 1.25rem; }
@media (min-width: 768px) { .lv-menu-btn { display: none; } }
.lv-mobile-nav { padding: 0 0 1rem; }
.lv-mobile-nav[hidden] { display: none; }
@media (min-width: 768px) { .lv-mobile-nav { display: none; } }

/* Hero */
.lv-hero { background-image: var(--lv-gradient-primary); color: #fff; padding: 5rem 0; text-align: center; }
@media (min-width: 1024px) { .lv-hero { padding: 8rem 0; } }
.lv-hero-inner { max-width: 56rem; margin: 0 auto; }
.lv-crest { display: flex; justify-content: center; margin-bottom: 2rem; }
.lv-crest img { width: 6rem; height: 6rem; }
@media (min-width: 768px) { .lv-crest img { width: 8rem; height: 8rem; } }
.lv-hero h1 { font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .lv-hero h1 { font-size: 3.75rem; line-height: 1; } }
.lv-gold { color: var(--lv-gold); }
.lv-lead { font-size: 1.25rem; line-height: 1.625; margin-bottom: 2rem; opacity: .9; }
@media (min-width: 768px) { .lv-lead { font-size: 1.5rem; line-height: 2rem; } }
.lv-cta-row { display: flex; flex-direction: column; gap: 1rem; justify-content: center; }
@media (min-width: 640px) { .lv-cta-row { flex-direction: row; } }
.lv-btn-gold { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; height: 2.75rem; padding: 0 2rem;
  border-radius: calc(var(--lv-radius) - 2px); font-size: .875rem; line-height: 1.25rem; font-weight: 600;
  color: var(--lv-navy); background: var(--lv-gold); white-space: nowrap; transition: background-color .15s; }
.lv-btn-gold:hover { background: var(--lv-gold-light); }
.lv-btn-gold svg { width: 1rem; height: 1rem; margin-left: .5rem; }
.lv-btn-gold:focus-visible, .lv-btn-login:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* About */
.lv-about { padding: 5rem 0; background-image: var(--lv-gradient-subtle); }
.lv-about-inner { max-width: 56rem; margin: 0 auto; }
.lv-about h2 { text-align: center; margin-bottom: 3rem; font-size: 1.875rem; line-height: 2.25rem; font-weight: 700; color: var(--lv-navy); }
@media (min-width: 768px) { .lv-about h2 { font-size: 2.25rem; line-height: 2.5rem; } }
.lv-prose { text-align: center; color: var(--lv-muted); }
.lv-prose > * + * { margin-top: 1.5rem; }
.lv-motto h3 { font-size: 1.25rem; line-height: 1.75rem; font-weight: 600; color: var(--lv-navy); margin-bottom: 1rem; }
.lv-motto p { font-size: 1.25rem; line-height: 1.75rem; font-weight: 600; color: var(--lv-gold); }

/* Ship */
.lv-ship { padding: 3rem 0; background: var(--lv-bg); }
.lv-ship-inner { max-width: 64rem; margin: 0 auto; }
.lv-ship img { width: 100%; border-radius: var(--lv-radius); box-shadow: var(--lv-shadow-elegant); }
