/* ===========================================
   Shared Responsive Layout System
   Used by all content/subpages for consistent
   content positioning and vertical border lines.
   =========================================== */

:root {
  --content-left: 19vw;
  --content-width: 62vw;
  --content-margin-top: 40px;
  --logo-margin-top: 40px;
}

@media (min-width: 1920px) {
  :root {
    --content-left: 21vw;
    --content-width: 58vw;
    --logo-margin-top: 40px;
  }
}

@media (min-width: 2560px) {
  :root {
    --content-width: 1400px;
    --content-left: calc((100vw - 1400px) / 2);
    --logo-margin-top: 40px;
  }
}

@media (max-width: 1439px) {
  :root {
    --content-left: 17.5vw;
    --content-width: 65vw;
    --content-margin-top: 36px;
    --logo-margin-top: 36px;
  }
}

@media (max-width: 1199px) {
  :root {
    --content-left: 15vw;
    --content-width: 70vw;
    --content-margin-top: 32px;
    --logo-margin-top: 32px;
  }
}

@media (max-width: 1024px) {
  :root {
    --content-left: 5vw;
    --content-width: 90vw;
    --content-margin-top: 24px;
    --logo-margin-top: 24px;
  }
}

@media (max-width: 480px) {
  :root {
    --content-left: 5vw;
    --content-width: 90vw;
    --logo-margin-top: 20px;
  }
}

/* Stripe-style vertical border lines */
.content-border-left,
.content-border-right {
  position: fixed;
  top: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(
    180deg,
    transparent 0%,
    rgba(0, 0, 0, 0.08) 5%,
    rgba(0, 0, 0, 0.08) 95%,
    transparent 100%
  );
  pointer-events: none;
  z-index: 1;
}

.content-border-left {
  left: calc(var(--content-left) - 36px);
}

.content-border-right {
  left: calc(var(--content-left) + var(--content-width) + 36px);
}

@media (max-width: 1024px) {
  .content-border-left {
    left: calc(var(--content-left) - 8px);
  }

  .content-border-right {
    left: calc(var(--content-left) + var(--content-width) + 8px);
  }
}

/* Shared horizontal separator pattern (used by page-title, date-line, etc.) */
.h-rule::after {
  content: '';
  display: block;
  position: relative;
  margin-top: 20px;
  margin-left: -36px;
  width: calc(var(--content-width) + 72px);
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 0, 0, 0.08) 5%,
    rgba(0, 0, 0, 0.08) 95%,
    transparent 100%
  );
}

@media (max-width: 1024px) {
  .h-rule::after {
    margin-left: -8px;
    width: calc(var(--content-width) + 16px);
  }
}
