/* Seoul Trails — Apple Design System Tokens */
/* Source: https://github.com/VoltAgent/awesome-design-md/blob/main/design-md/apple/DESIGN.md */

:root {
  /* ─── Colors: Brand & Accent ─── */
  --color-action-blue: #0066cc;
  --color-focus-blue: #0071e3;
  --color-sky-link-blue: #2997ff; /* dark surfaces only */

  /* ─── Colors: Text ─── */
  --color-ink: #1d1d1f;
  --color-body: #1d1d1f;
  --color-body-on-dark: #ffffff;
  --color-body-muted: #cccccc;
  --color-ink-muted-80: #333333;
  --color-ink-muted-48: #7a7a7a;
  --color-on-primary: #ffffff;
  --color-on-dark: #ffffff;

  /* ─── Colors: Surfaces ─── */
  --color-canvas: #ffffff;
  --color-canvas-parchment: #f5f5f7;
  --color-surface-pearl: #fafafc;
  --color-surface-tile-1: #272729;
  --color-surface-tile-2: #2a2a2c;
  --color-surface-tile-3: #252527;
  --color-surface-black: #000000;
  --color-surface-chip-translucent: #d2d2d7;

  /* ─── Colors: Borders ─── */
  --color-divider-soft: #f0f0f0;
  --color-hairline: #e0e0e0;

  /* ─── Typography: Font Families ─── */
  --font-display: "SF Pro Display", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-text:    "SF Pro Text",    system-ui, -apple-system, BlinkMacSystemFont, sans-serif;

  /* ─── Typography: Scale ─── */
  --type-hero-display-size:    56px;
  --type-hero-display-weight:  600;
  --type-hero-display-lh:      1.07;
  --type-hero-display-ls:      -0.28px;

  --type-display-lg-size:      40px;
  --type-display-lg-weight:    600;
  --type-display-lg-lh:        1.10;
  --type-display-lg-ls:        0;

  --type-display-md-size:      34px;
  --type-display-md-weight:    600;
  --type-display-md-lh:        1.47;
  --type-display-md-ls:        -0.374px;

  --type-lead-size:            28px;
  --type-lead-weight:          400;
  --type-lead-lh:              1.14;
  --type-lead-ls:              0.196px;

  --type-lead-airy-size:       24px;
  --type-lead-airy-weight:     300;
  --type-lead-airy-lh:         1.5;
  --type-lead-airy-ls:         0;

  --type-tagline-size:         21px;
  --type-tagline-weight:       600;
  --type-tagline-lh:           1.19;
  --type-tagline-ls:           0.231px;

  --type-body-strong-size:     17px;
  --type-body-strong-weight:   600;
  --type-body-strong-lh:       1.24;
  --type-body-strong-ls:       -0.374px;

  --type-body-size:            17px;
  --type-body-weight:          400;
  --type-body-lh:              1.47;
  --type-body-ls:              -0.374px;

  --type-dense-link-size:      17px;
  --type-dense-link-weight:    400;
  --type-dense-link-lh:        2.41;
  --type-dense-link-ls:        0;

  --type-caption-size:         14px;
  --type-caption-weight:       400;
  --type-caption-lh:           1.43;
  --type-caption-ls:           -0.224px;

  --type-caption-strong-size:  14px;
  --type-caption-strong-weight:600;
  --type-caption-strong-lh:    1.29;
  --type-caption-strong-ls:    -0.224px;

  --type-button-large-size:    18px;
  --type-button-large-weight:  300;
  --type-button-large-lh:      1.0;
  --type-button-large-ls:      0;

  --type-button-utility-size:  14px;
  --type-button-utility-weight:400;
  --type-button-utility-lh:    1.29;
  --type-button-utility-ls:    -0.224px;

  --type-fine-print-size:      12px;
  --type-fine-print-weight:    400;
  --type-fine-print-lh:        1.0;
  --type-fine-print-ls:        -0.12px;

  --type-micro-legal-size:     10px;
  --type-micro-legal-weight:   400;
  --type-micro-legal-lh:       1.3;
  --type-micro-legal-ls:       -0.08px;

  --type-nav-link-size:        12px;
  --type-nav-link-weight:      400;
  --type-nav-link-lh:          1.0;
  --type-nav-link-ls:          -0.12px;

  /* ─── Spacing ─── */
  --space-xxs:     4px;
  --space-xs:      8px;
  --space-sm:      12px;
  --space-md:      17px;
  --space-lg:      24px;
  --space-xl:      32px;
  --space-xxl:     48px;
  --space-section: 80px;

  /* ─── Border Radius ─── */
  --radius-none: 0px;
  --radius-xs:   5px;
  --radius-sm:   8px;
  --radius-md:   11px;
  --radius-lg:   18px;
  --radius-pill: 9999px;
  --radius-full: 9999px;

  /* ─── Elevation ─── */
  --shadow-product: rgba(0, 0, 0, 0.22) 3px 5px 30px 0;  /* product imagery only */
  --shadow-hairline: 0 0 0 1px rgba(0, 0, 0, 0.08);       /* utility cards, sub-nav */

  /* ─── Layout ─── */
  --content-max-width: 1440px;
  --nav-height: 44px;
  --sub-nav-height: 52px;
  --sticky-bar-height: 64px;
  --tile-padding: var(--space-section); /* 80px */
  --card-padding: var(--space-lg);      /* 24px */
}

/* ─── Utility Classes ─── */

/* Typography */
.type-hero-display {
  font-family: var(--font-display);
  font-size: var(--type-hero-display-size);
  font-weight: var(--type-hero-display-weight);
  line-height: var(--type-hero-display-lh);
  letter-spacing: var(--type-hero-display-ls);
}
.type-display-lg {
  font-family: var(--font-display);
  font-size: var(--type-display-lg-size);
  font-weight: var(--type-display-lg-weight);
  line-height: var(--type-display-lg-lh);
  letter-spacing: var(--type-display-lg-ls);
}
.type-display-md {
  font-family: var(--font-text);
  font-size: var(--type-display-md-size);
  font-weight: var(--type-display-md-weight);
  line-height: var(--type-display-md-lh);
  letter-spacing: var(--type-display-md-ls);
}
.type-lead {
  font-family: var(--font-display);
  font-size: var(--type-lead-size);
  font-weight: var(--type-lead-weight);
  line-height: var(--type-lead-lh);
  letter-spacing: var(--type-lead-ls);
}
.type-tagline {
  font-family: var(--font-display);
  font-size: var(--type-tagline-size);
  font-weight: var(--type-tagline-weight);
  line-height: var(--type-tagline-lh);
  letter-spacing: var(--type-tagline-ls);
}
.type-body {
  font-family: var(--font-text);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-lh);
  letter-spacing: var(--type-body-ls);
}
.type-body-strong {
  font-family: var(--font-text);
  font-size: var(--type-body-strong-size);
  font-weight: var(--type-body-strong-weight);
  line-height: var(--type-body-strong-lh);
  letter-spacing: var(--type-body-strong-ls);
}
.type-caption {
  font-family: var(--font-text);
  font-size: var(--type-caption-size);
  font-weight: var(--type-caption-weight);
  line-height: var(--type-caption-lh);
  letter-spacing: var(--type-caption-ls);
}

/* Buttons */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-action-blue);
  color: var(--color-on-primary);
  font-family: var(--font-text);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-lh);
  letter-spacing: var(--type-body-ls);
  border-radius: var(--radius-pill);
  padding: 11px 22px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.1s ease;
}
.btn-primary:active { transform: scale(0.95); }
.btn-primary:focus-visible { outline: 2px solid var(--color-focus-blue); outline-offset: 2px; }

.btn-secondary-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: transparent;
  color: var(--color-action-blue);
  font-family: var(--font-text);
  font-size: var(--type-body-size);
  font-weight: var(--type-body-weight);
  line-height: var(--type-body-lh);
  letter-spacing: var(--type-body-ls);
  border-radius: var(--radius-pill);
  padding: 11px 22px;
  border: 1px solid var(--color-action-blue);
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.1s ease;
}
.btn-secondary-pill:active { transform: scale(0.95); }

.btn-store-hero {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-action-blue);
  color: var(--color-on-primary);
  font-family: var(--font-text);
  font-size: var(--type-button-large-size);
  font-weight: var(--type-button-large-weight);
  line-height: var(--type-button-large-lh);
  border-radius: var(--radius-pill);
  padding: 14px 28px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.1s ease;
}
.btn-store-hero:active { transform: scale(0.95); }

.btn-dark-utility {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: var(--color-ink);
  color: var(--color-on-dark);
  font-family: var(--font-text);
  font-size: var(--type-button-utility-size);
  font-weight: var(--type-button-utility-weight);
  line-height: var(--type-button-utility-lh);
  letter-spacing: var(--type-button-utility-ls);
  border-radius: var(--radius-sm);
  padding: 8px 15px;
  border: none;
  cursor: pointer;
  text-decoration: none;
  transition: transform 0.1s ease;
}
.btn-dark-utility:active { transform: scale(0.95); }

/* Tiles */
.tile-light {
  background-color: var(--color-canvas);
  color: var(--color-ink);
  padding: var(--tile-padding);
  width: 100%;
}
.tile-parchment {
  background-color: var(--color-canvas-parchment);
  color: var(--color-ink);
  padding: var(--tile-padding);
  width: 100%;
}
.tile-dark {
  background-color: var(--color-surface-tile-1);
  color: var(--color-on-dark);
  padding: var(--tile-padding);
  width: 100%;
}
.tile-dark-2 {
  background-color: var(--color-surface-tile-2);
  color: var(--color-on-dark);
  padding: var(--tile-padding);
  width: 100%;
}
.tile-dark-3 {
  background-color: var(--color-surface-tile-3);
  color: var(--color-on-dark);
  padding: var(--tile-padding);
  width: 100%;
}

/* Cards */
.card {
  background-color: var(--color-canvas);
  color: var(--color-ink);
  border: 1px solid var(--color-hairline);
  border-radius: var(--radius-lg);
  padding: var(--card-padding);
}

/* Product image shadow — imagery only */
.product-image {
  box-shadow: var(--shadow-product);
}

/* Navigation */
.global-nav {
  background-color: var(--color-surface-black);
  color: var(--color-on-dark);
  height: var(--nav-height);
  display: flex;
  align-items: center;
}
.global-nav a {
  font-family: var(--font-text);
  font-size: var(--type-nav-link-size);
  font-weight: var(--type-nav-link-weight);
  line-height: var(--type-nav-link-lh);
  letter-spacing: var(--type-nav-link-ls);
  color: var(--color-on-dark);
  text-decoration: none;
}

.sub-nav {
  background-color: rgba(245, 245, 247, 0.8);
  backdrop-filter: saturate(180%) blur(20px);
  height: var(--sub-nav-height);
  display: flex;
  align-items: center;
}

/* Links */
a { color: var(--color-action-blue); }
.tile-dark a,
.tile-dark-2 a,
.tile-dark-3 a { color: var(--color-sky-link-blue); }

/* Layout container */
.content-container {
  max-width: var(--content-max-width);
  margin-inline: auto;
  padding-inline: var(--space-lg);
}

/* ─── Responsive Hero Typography ─── */
@media (max-width: 1068px) {
  .type-hero-display { font-size: 40px; }
}
@media (max-width: 640px) {
  .type-hero-display { font-size: 34px; }
  .tile-light, .tile-parchment, .tile-dark,
  .tile-dark-2, .tile-dark-3 { padding: 48px var(--space-lg); }
}
@media (max-width: 419px) {
  .type-hero-display { font-size: 28px; }
}
