:root, .dark {
  color-scheme: dark;
  --background: #0d1412;
  --foreground: #e7efe9;
  --card: #15201c;
  --card-foreground: #e7efe9;
  --primary: #7fd1ae;
  --primary-foreground: #0d1412;
  --secondary: #1d2a25;
  --secondary-foreground: #e7efe9;
  --muted: #15201c;
  --muted-foreground: #a4b7ad;
  --accent: #1e3a30;
  --accent-foreground: #e7efe9;
  --destructive: #e07a6a;
  --destructive-foreground: #0d1412;
  --border: #2a3a33;
  --input: #2a3a33;
  --font-sans: 'Fraunces', Georgia, serif;
  --font-serif: 'Fraunces', Georgia, serif;
  --font-body: 'IBM Plex Sans', system-ui, sans-serif;
  --font-mono: monospace;
  --radius: 14px;
}
html { scroll-behavior: smooth; }
body { background: var(--background); color: var(--foreground); font-family: var(--font-body); }
::selection { background: #7fd1ae; color: #0d1412; }
a { text-underline-offset: .22em; }
a:focus-visible, button:focus-visible { outline: 3px solid #7fd1ae; outline-offset: 5px; }
h1, h2, h3 { font-family: var(--font-sans); font-weight: 600; }
.navbar { max-width: 1180px; padding: 24px 28px; border-bottom: 1px solid var(--border); }
.navbar--logo a[rel=home], .navbar--modal-logo a[rel=home] { display: flex; align-items: center; gap: 12px; }
.navbar .branding { height: 48px; width: 48px; flex: none; }
.navbar .branding img { object-fit: contain; }
.navbar--logo a[rel=home] > div:not(.branding), .navbar--modal-logo a[rel=home] > div:not(.branding) { font: 600 29px/1.2 var(--font-sans); }
.navbar--menu { font-family: var(--font-body); }
.path-frontpage .layout-container > header { position: relative; max-width: 1180px; margin: auto; }
.path-frontpage .layout-container > header > .container { padding: 90px 28px 0; }
.path-frontpage h1 { max-width: 720px; font-size: clamp(3.6rem, 7.4vw, 6.6rem); line-height: 1.02; letter-spacing: -.055em; text-wrap: balance; }
.path-frontpage h1::before { content: 'SASONICA NEXT'; display: block; margin-bottom: 24px; font: 500 12px/1.4 var(--font-body); letter-spacing: .2em; color: var(--primary); }
.path-frontpage .layout-container > header::after { content: ''; position: absolute; right: 38px; top: 173px; width: 260px; height: 260px; background: url('/brand/sasonica-mark.svg') center / contain no-repeat; transform: rotate(-5deg); }
.path-frontpage main article { max-width: 1180px; margin: auto; padding: 28px 28px 72px; }
.path-frontpage main article p { max-width: 670px; color: var(--muted-foreground); font-size: 19px; line-height: 1.7; }
.path-frontpage main article p:first-child { max-width: 630px; font-size: 22px; line-height: 1.6; margin-bottom: 28px; }
.path-frontpage main article h2 { margin: 100px 0 28px; padding-top: 40px; border-top: 1px solid var(--border); font-size: clamp(2rem, 4vw, 3rem); letter-spacing: -.035em; }
.path-frontpage main article ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; list-style: none; margin: 0 0 32px; padding: 0; }
.path-frontpage main article li { padding: 28px; margin: 0; border: 1px solid var(--border); border-radius: 20px; background: var(--card); color: var(--muted-foreground); font-size: 17px; line-height: 1.65; }
.path-frontpage main article li strong { display: block; color: var(--foreground); font: 600 25px/1.25 var(--font-sans); margin-bottom: 14px; }
.path-frontpage main article li br { display: none; }
.site-footer { max-width: 1180px; padding: 0 28px; }
.site-footer > div > div:first-child { display: none; }
.site-footer > div > div:last-child { display: block; padding: 25px 0; }
.site-footer > div > div:last-child::before { content: 'Sasonica — Talk to your agents.'; color: var(--muted-foreground); font-size: 14px; }
@media (max-width: 1000px) {
  .path-frontpage h1 { max-width: 65%; }
  .path-frontpage .layout-container > header::after { width: 190px; height: 190px; right: 28px; top: 180px; }
  .path-frontpage main article p:first-child { max-width: 70%; }
}
@media (max-width: 650px) {
  .navbar { padding: 18px 20px; }
  .path-frontpage .layout-container > header > .container { padding: 55px 20px 0; }
  .path-frontpage h1 { max-width: 100%; font-size: clamp(3.4rem, 13vw, 5rem); }
  .path-frontpage .layout-container > header::after { display: none; }
  .path-frontpage main article { padding: 24px 20px 45px; }
  .path-frontpage main article p:first-child { max-width: 100%; font-size: 20px; }
  .path-frontpage main article h2 { margin-top: 58px; padding-top: 30px; }
  .path-frontpage main article ul { grid-template-columns: 1fr; gap: 12px; }
  .path-frontpage main article li { padding: 24px; }
  .site-footer { padding: 0 20px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
