@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500;1,9..144,600&family=Inter+Tight:wght@400;500;600;700&display=swap');

:root {
  --ink: #0B0B0A;
  --ivory: #F6F3EC;
  --parchment: #EDE7DA;
  --stone: #86806F;
  --muted: #4B473C;
  --burgundy: #7A2331;
  --burgundy-dark: #5E1A24;
}

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html {
  scroll-behavior: smooth;
}

body {
  background-color: var(--ivory);
  color: var(--ink);
  font-family: 'Inter Tight', ui-sans-serif, system-ui, sans-serif;
}

.font-display {
  font-family: 'Fraunces', ui-serif, Georgia, serif;
  font-feature-settings: 'ss01' 1;
}

::selection {
  background-color: var(--burgundy);
  color: var(--ivory);
}

:focus-visible {
  outline: 2px solid var(--burgundy);
  outline-offset: 3px;
  border-radius: 2px;
}

/* Signature diagonal-cut motif, echoing the NG monogram mark */
.clip-notch-tr {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 0 40%, 40% 0);
}

.clip-notch-br {
  clip-path: polygon(0 0, 100% 0, 100% 60%, 60% 100%, 0 100%);
}

.diagonal-rule {
  position: relative;
}

.diagonal-rule::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 28px;
  height: 2px;
  background: var(--burgundy);
  transform-origin: left center;
}

.card-border {
  border: 1px solid rgba(11, 11, 10, 0.12);
}

.nav-pill {
  border: 1px solid rgba(11, 11, 10, 0.1);
  background-color: rgba(246, 243, 236, 0.86);
  backdrop-filter: none;
}

.btn-primary {
  background-color: var(--ink);
  color: var(--ivory);
  transition: background-color 180ms ease, transform 180ms ease;
}
.btn-primary:hover {
  background-color: var(--burgundy);
}
.btn-primary:active {
  transform: translateY(1px);
}

.btn-outline {
  border: 1px solid var(--ink);
  color: var(--ink);
  transition: background-color 180ms ease, color 180ms ease;
}
.btn-outline:hover {
  background-color: var(--ink);
  color: var(--ivory);
}

.link-underline {
  background-image: linear-gradient(var(--burgundy), var(--burgundy));
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0% 1px;
  transition: background-size 220ms ease;
}
.link-underline:hover {
  background-size: 100% 1px;
}

[data-reveal] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 620ms ease, transform 620ms ease;
}
[data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .btn-primary,
  .btn-outline,
  .link-underline {
    transition: none;
  }
}

.mobile-menu {
  transform: translateY(-8px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 200ms ease, transform 200ms ease;
}
.mobile-menu.is-open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}

.hamburger span {
  transition: transform 220ms ease, opacity 220ms ease;
}
.hamburger.is-open span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.hamburger.is-open span:nth-child(2) {
  opacity: 0;
}
.hamburger.is-open span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

table.compare-table td, table.compare-table th {
  border-bottom: 1px solid rgba(11, 11, 10, 0.1);
}
