/* Megaphone PHX — Base (reset + typography + grid + layout utilities) */


/* ==================== RESET ==================== */

*, *::before, *::after {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
}

body {
  background-color: var(--bgTone);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: inherit;
  text-decoration: none;
}

a:active,
a:active * {
  opacity: 0.7;
}

h1, h2, p {
  margin: 0;
}

sub {
  position: relative;
  vertical-align: baseline;
  top: 0.3em;
}

sup {
  position: relative;
  vertical-align: baseline;
  top: -0.4em;
}

ol {
  margin: 0;
  padding: 0 0 0 3em;
}

ul {
  margin: 0;
  padding: 0 0 0 2.2em;
}

blockquote {
  margin: 0;
  padding: 0 0 0 2em;
}

hr {
  background: #766a5f;
  height: 0.05rem;
  display: block;
  margin: 0;
  border: none;
}

button {
  font: inherit;
  border: none;
  background: none;
  padding: 0;
}


/* ==================== TYPOGRAPHY ==================== */

/* Font stacks */
h1, h2 {
  font-family: "Walter Neue Variable", "Space Grotesk", sans-serif;
  font-style: normal;
  font-variation-settings: 'slnt' 0;
  color: var(--agedBlack);
}

body {
  font-family: "IBM Plex Mono", monospace;
  font-size: 12px;
  font-weight: 400;
  color: rgba(0, 0, 0, 0.75);
  line-height: 1.3;
}

/* Headings */
h1 {
  font-weight: 400;
  font-size: 10rem;
  line-height: 0.85;
  letter-spacing: -0.075em;
  margin: 0;
}

h2 {
  font-weight: 400;
  font-size: 4.25vw;
  line-height: 0.95;
  letter-spacing: -0.050em;
  font-variant-numeric: oldstyle-nums;
  margin: 0;
}

/* Named text styles */
.bodycopy a {
  text-decoration: none;
  transition: all .25s ease-in-out 0s;
}

.bodycopy a:hover {
  color: var(--agedBlack);
  text-decoration: line-through;
}

.caption {
  font-size: 1.1rem;
  font-weight: 400;
  color: rgba(50, 43, 37, 0.75);
  font-family: "IBM Plex Mono", monospace;
  line-height: 1.2;
}

.title {
  font-size: 1.50rem;
  font-weight: 400;
  color: rgba(0, 0, 0, 0.75);
  font-family: "Walter Neue Variable", "Space Grotesk", sans-serif;
  font-style: normal;
  line-height: 1.3;
  font-variation-settings: 'slnt' 0;
  display: block;
}

.title a {
  text-decoration: none;
  transition: all .25s ease-in-out 0s;
}

.title a:hover {
  color: var(--agedBlack);
  text-decoration: line-through;
}

.olde {
  font-size: 3.75rem;
  font-weight: 400;
  color: rgba(0, 0, 0, 0.75);
  font-family: warbler-display, serif;
  font-style: italic;
  line-height: 1.3;
  letter-spacing: -0.040em;
}

.superscript {
  font-family: strelka, "Work Sans", sans-serif;
  font-size: 0.2em;
  letter-spacing: -0.07vw;
  vertical-align: super;
  font-weight: 800;
  margin-left: 0.1em;
  font-style: normal;
}

/* Link hover default */
a:hover {
  transition: all .25s ease-in-out 0s;
}

/* Fit-text: scales font-size to fill parent container width.
   Applied by JS (fitText.js) on load + resize. */
.fit-text {
  display: block;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
}

.fullWidth {
  width: 100%;
}


/* ==================== GRID SYSTEM ==================== */

/* 12-column grid */
.row {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  margin: 0 0 -0.5px;
  border: 0.5px solid var(--agedBlack);
}

.row > [class*="col-"] {
  padding: 2rem;
  border: 0.5px solid var(--agedBlack);
  position: relative;
}

/* Column spans */
.col-1  { grid-column: span 1; }
.col-2  { grid-column: span 2; }
.col-3  { grid-column: span 3; }
.col-4  { grid-column: span 4; }
.col-5  { grid-column: span 5; }
.col-6  { grid-column: span 6; }
.col-7  { grid-column: span 7; }
.col-8  { grid-column: span 8; }
.col-9  { grid-column: span 9; }
.col-10 { grid-column: span 10; }
.col-11 { grid-column: span 11; }
.col-12 { grid-column: span 12; }


/* ==================== LAYOUT UTILITIES ==================== */

/* Offset inherited padding */
.inset {
  margin: -2rem;
}

/* Flex column container */
.drop-in {
  display: flex;
  flex-flow: column nowrap;
  justify-content: center;
  border-top: 1px solid var(--agedBlack);
  padding: .5rem 2rem;
}

/* Reversed (dark background) */
.reverse {
  background-color: var(--agedBlack);
  color: #e8e8e8;
  overflow: hidden;
}

.reverse .row {
  border-color: rgba(255, 255, 255, 0.0625);
}

.reverse .row > [class*="col-"] {
  border-color: rgba(255, 255, 255, 0.0625);
}

.reverse a:hover {
  color: var(--tangerine);
  text-decoration: none;
  cursor: pointer;
}


/* ==================== MOBILE ==================== */

@media (max-width: 512px) {

  .row.stack-mobile {
    grid-template-columns: 1fr;
  }

  .row.stack-mobile > [class*="col-"] {
    grid-column: span 1;
  }

  h1 {
    font-size: 8rem;
  }

  h2 {
    font-size: 10vw;
  }

  .mobile-hide {
    display: none !important;
  }
}
