/**
 * Typography
 *
 * MankatoLIFE Magic Homepage Prototype
 */

:root {
    --font-serif: "Source Serif 4", Georgia, serif;
    --font-sans: "Source Sans 3", Arial, sans-serif;

    --color-text: #242424;
    --color-muted: #666;
    --color-heading: #111;
    --color-link: #1f3a5f;
    --color-link-hover: #2f5c93;
    --color-ui: #333;
}

/* ==========================================================================
   Base
   ========================================================================== */

html {
    text-rendering: optimizeLegibility;
    font-feature-settings: "liga" 1, "kern" 1, "onum" 1;
}

body {
    font-family: var(--font-serif);
    font-optical-sizing: auto;
    font-weight: 400;
    color: var(--color-text);
    line-height: 1.45;
}

/* ==========================================================================
   Headings
   ========================================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {
    margin: 0 0 0.45em;
    color: var(--color-heading);
    font-family: var(--font-sans);
    font-optical-sizing: auto;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -0.01em;
}

/* ==========================================================================
   Body Elements
   ========================================================================== */

p {
    margin: 0 0 0.75rem;
    line-height: 1.42;
}

ul,
ol {
    margin: 0 0 0.85rem;
    padding-left: 1.25rem;
}

li {
    line-height: 1.35;
}

li + li {
    margin-top: 0.2rem;
}

/* ==========================================================================
   Links
   ========================================================================== */

a {
    color: var(--color-link);
    text-decoration: none;
}

a:hover {
    color: var(--color-link-hover);
    text-decoration: underline;
}

/* ==========================================================================
   Shared Sans UI Text
   ========================================================================== */

.main-nav a,
.edition-volume,
.cover-story__link,
.video-feature__link,
.featured-attraction__link,
.edition-stories__list a,
.featured-columns,
.featured-event__title,
.featured-event__location,
.featured-event__datetime,
.specials__list a,
.featured-events__link,
.homepage-footer {
    font-family: var(--font-sans);
    font-optical-sizing: auto;
}

/* ==========================================================================
   Edition Header
   ========================================================================== */

.edition-volume {
    margin-bottom: 0.15rem;
    color: var(--color-muted);
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.edition-title {
    margin-bottom: 0.8rem;
    font-weight: 800;
    line-height: 1.08;
}

/* ==========================================================================
   Cover Story
   ========================================================================== */

.cover-story__title {
    margin-top: 0.65rem;
    margin-bottom: 0.35rem;
    font-weight: 750;
    line-height: 1.12;
}

.cover-story__summary,
.video-feature__summary,
.featured-attraction__summary {
    line-height: 1.38;
}

.cover-story__link,
.video-feature__link,
.featured-attraction__link {
    font-weight: 600;
    white-space: nowrap;
}

/* ==========================================================================
   Video Feature
   ========================================================================== */

.video-feature__title {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.video-feature__title .material-symbols-outlined {
    font-size: 1.1em;
}

/* ==========================================================================
   Section Titles
   ========================================================================== */

.edition-stories__title,
.featured-attraction__title,
.featured-events__title,
.specials__title {
    margin-bottom: 0.55rem;
    font-weight: 700;
    line-height: 1.15;
}

/* ==========================================================================
   Lists
   ========================================================================== */

.edition-stories__list a,
.specials__list a {
    font-weight: 600;
    line-height: 1.35;
}

/* ==========================================================================
   Featured Attraction
   ========================================================================== */

.featured-attraction__title {
    display: flex;
    align-items: center;
    gap: 0.35rem;
}

.featured-attraction__title .material-symbols-outlined {
    font-size: 1em;
}

/* ==========================================================================
   Featured Events
   ========================================================================== */

.featured-event {
    margin-bottom: 0.6rem;
}

.featured-event__title {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.3rem;
    margin-bottom: 0.05rem;
    font-weight: 700;
    line-height: 1.2;
}

.featured-event__title a {
    font-weight: 700;
}

.featured-event__categories {
    display: inline-flex;
    gap: 0.12rem;
}

.featured-event__categories .material-symbols-outlined,
.featured-event__title > .material-symbols-outlined {
    color: var(--color-ui);
}

.featured-event__location,
.featured-event__datetime {
    margin: 0;
    color: var(--color-muted);
    line-height: 1.15;
}

.featured-event__location {
    margin-bottom: 0.04rem;
}

/* ==========================================================================
   Footer
   ========================================================================== */

.homepage-footer {
    color: var(--color-muted);
    line-height: 1.35;
}

/* ==========================================================================
   Material Symbols
   ========================================================================== */

.material-symbols-outlined {
    vertical-align: middle;
    font-variation-settings:
            "FILL" 0,
            "wght" 400,
            "GRAD" 0,
            "opsz" 24;
}

.featured-columns {
    margin: 0 0 0.85rem;
    line-height: 1.35;
}

.featured-columns dt,
.featured-columns dd {
    display: inline;
    margin: 0;
}

.featured-columns dt {
    font-weight: 600;
}

.featured-columns dt::after {
    content: ": ";
}

.featured-columns dd::after {
    content: "";
    display: block;
    margin-bottom: 0.25rem;
}