/* ── Default Theme ────────────────────────────────────────────────────────────
   Warm, clean, literary. Suitable for any genre as a fallback.
   Always loaded first; genre themes override the variables below and add a few
   signature touches. Fonts: Playfair Display / Source Serif 4 / Inter.
   ─────────────────────────────────────────────────────────────────────────── */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap');

:root {
    --t-bg:             #fbfaf7;
    --t-bg-alt:         #f3efe8;
    --t-surface:        #ffffff;
    --t-border:         #e4ddd3;
    --t-text:           #1f1a16;
    --t-text-muted:     #6a5f55;
    --t-accent:         #6b4a2e;
    --t-accent-hover:   #52381f;
    --t-accent-light:   #f1e9df;
    --t-on-accent:      #ffffff;
    --t-heading-font:   'Playfair Display', Georgia, 'Times New Roman', serif;
    --t-heading-weight: 600;
    --t-body-font:      'Source Serif 4', Georgia, 'Times New Roman', serif;
    --t-ui-font:        'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --t-radius:         6px;
    --t-radius-lg:      10px;
    --t-shadow:         0 1px 3px rgba(40, 25, 10, .06), 0 4px 14px rgba(40, 25, 10, .06);
    --t-shadow-lg:      0 10px 30px rgba(40, 25, 10, .14);
    --t-cover-shadow:   0 2px 4px rgba(0, 0, 0, .12), 0 12px 28px rgba(0, 0, 0, .22);
    --t-hero-bg:        linear-gradient(160deg, #241810 0%, #4a3020 60%, #7a5638 100%);
    --t-hero-text:      #faf3ea;
    --t-hero-muted:     rgba(250, 243, 234, .78);
    --t-hero-accent:    #e8c79a;
    --t-focus:          var(--t-accent);
    --t-success:        #2f7d4f;
    --t-error:          #b3261e;
}

/* ── Base ────────────────────────────────────────────────────────────────────*/

body {
    background: var(--t-bg);
    color: var(--t-text);
    font-family: var(--t-body-font);
    line-height: 1.7;
    font-size: 17px;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4,
.nav-brand, .footer-name, .newsletter-title {
    font-family: var(--t-heading-font);
    font-weight: var(--t-heading-weight);
    letter-spacing: -.005em;
}

a { color: var(--t-accent); }
a:hover { color: var(--t-accent-hover); }

:focus-visible { outline-color: var(--t-focus); }

::selection { background: var(--t-accent); color: var(--t-on-accent); }

.skip-link {
    background: var(--t-accent);
    color: var(--t-on-accent);
    font-family: var(--t-ui-font);
    border-radius: var(--t-radius);
}

/* Shared button look: solid accent */
.ppd-cta, .coming-soon-cta, .hero-feature-buy, .book-btn--buy, .books-more-btn,
.blog-more-btn, .book-detail-store-btn, .event-cta, .event-register-btn, .product-cta,
.contact-submit, .newsletter-cta, .reviews-more-btn, .worldbuilding-more-btn {
    background: var(--t-accent);
    color: var(--t-on-accent);
    border-radius: var(--t-radius);
    font-family: var(--t-ui-font);
    transition: background .15s, color .15s, transform .15s;
}
.ppd-cta:hover, .coming-soon-cta:hover, .hero-feature-buy:hover, .book-btn--buy:hover, .books-more-btn:hover,
.blog-more-btn:hover, .book-detail-store-btn:hover, .event-cta:hover, .event-register-btn:hover, .product-cta:hover,
.contact-submit:hover:not(:disabled), .newsletter-cta:hover, .reviews-more-btn:hover, .worldbuilding-more-btn:hover {
    background: var(--t-accent-hover);
    color: var(--t-on-accent);
    text-decoration: none;
}

/* Shared button look: outline */
.events-more-btn, .gallery-more-btn, .store-more-btn {
    border: 2px solid var(--t-accent);
    color: var(--t-accent);
    border-radius: var(--t-radius);
    font-family: var(--t-ui-font);
    transition: background .15s, color .15s;
}
.events-more-btn:hover, .gallery-more-btn:hover, .store-more-btn:hover {
    background: var(--t-accent);
    color: var(--t-on-accent);
    text-decoration: none;
}

/* ── Coming Soon ─────────────────────────────────────────────────────────────*/

.coming-soon-inner   { background: var(--t-hero-bg); }
.coming-soon-label   { color: var(--t-hero-accent); font-family: var(--t-ui-font); }
.coming-soon-name    { color: var(--t-hero-text); }
.coming-soon-message { color: var(--t-hero-muted); font-style: italic; }
.coming-soon-owner   { color: var(--t-hero-muted); font-family: var(--t-ui-font); }

/* ── Loading / Not-found ─────────────────────────────────────────────────────*/

.site-loading    { color: var(--t-accent); background: var(--t-bg); }
.site-not-found  { background: var(--t-bg); color: var(--t-text-muted); }
.not-found-inner h1 { color: var(--t-text); }
.not-found-inner p  { font-family: var(--t-ui-font); }

/* ── Navigation ──────────────────────────────────────────────────────────────*/

.site-nav {
    background: color-mix(in srgb, var(--t-surface) 92%, transparent);
    backdrop-filter: saturate(1.4) blur(10px);
    border-bottom: 1px solid var(--t-border);
    transition: box-shadow .2s;
}

.nav-brand { color: var(--t-text); }
.nav-brand:hover { color: var(--t-text); }

.nav-links a {
    color: var(--t-text-muted);
    font-family: var(--t-ui-font);
    font-weight: 500;
    transition: color .15s, border-color .15s;
}

.nav-links a:hover { color: var(--t-text); }
.nav-links a.nav-active { color: var(--t-accent); border-bottom-color: var(--t-accent); }

.nav-scrolled { box-shadow: var(--t-shadow); }

.nav-toggle span { background: var(--t-text); border-radius: 2px; }

@media (max-width: 900px) {
    .nav-links {
        background: var(--t-surface);
        border-bottom: 1px solid var(--t-border);
        box-shadow: var(--t-shadow-lg);
    }
    .nav-links li + li a { border-top: 1px solid var(--t-border); }
    .nav-links a.nav-active { background: var(--t-accent-light); }
}

/* ── Hero ────────────────────────────────────────────────────────────────────*/

.site-section--hero {
    background: var(--t-hero-bg);
    color: var(--t-hero-text);
}

.hero-genre   { color: var(--t-hero-accent); font-family: var(--t-ui-font); font-weight: 600; }
.hero-name    { color: var(--t-hero-text); }
.hero-tagline { color: var(--t-hero-muted); font-style: italic; }

.hero-cta {
    background: transparent;
    border: 1.5px solid color-mix(in srgb, var(--t-hero-text) 55%, transparent);
    color: var(--t-hero-text);
    border-radius: var(--t-radius);
    font-family: var(--t-ui-font);
    font-weight: 600;
    font-size: .95rem;
    letter-spacing: .02em;
    transition: background .2s, border-color .2s;
}
.hero-cta:hover {
    background: color-mix(in srgb, var(--t-hero-text) 12%, transparent);
    border-color: var(--t-hero-text);
    color: var(--t-hero-text);
    text-decoration: none;
}

.hero-feature-cover { box-shadow: var(--t-cover-shadow), 0 30px 60px rgba(0, 0, 0, .35); border-radius: 3px; overflow: hidden; }
.hero-feature-label { color: var(--t-hero-accent); font-family: var(--t-ui-font); }
.hero-feature-title a, .hero-feature-title { color: var(--t-hero-text); }
.hero-feature-series { color: var(--t-hero-muted); font-family: var(--t-ui-font); }
.hero-feature-blurb  { color: var(--t-hero-muted); }
.hero-feature-more   { color: var(--t-hero-text); font-family: var(--t-ui-font); }
.hero-feature-more:hover { color: var(--t-hero-text); }
.site-section--hero :focus-visible { outline-color: var(--t-hero-text); }

/* The hero's buy menu sits on the hero, not a card */
.hero-feature .book-buy-menu { bottom: auto; top: calc(100% + .4rem); }

/* ── Section backgrounds ─────────────────────────────────────────────────────*/

.site-section--about,
.site-section--events,
.site-section--reviews,
.site-section--contact { background: var(--t-bg-alt); }

.site-section--books,
.site-section--blog,
.site-section--gallery,
.site-section--worldbuilding,
.site-section--store { background: var(--t-bg); }

.section-heading { color: var(--t-text); }

/* Short accent rule under each heading */
.section-heading::after {
    content: '';
    display: block;
    width: 48px;
    height: 3px;
    margin-top: .75rem;
    background: var(--t-accent);
    border-radius: 2px;
}

.section-empty { color: var(--t-text-muted); font-family: var(--t-ui-font); }

/* ── Newsletter band ─────────────────────────────────────────────────────────*/

.site-section--newsletter {
    background: var(--t-hero-bg);
    color: var(--t-hero-text);
}
.newsletter-title { color: var(--t-hero-text); }
.newsletter-desc  { color: var(--t-hero-muted); }
.newsletter-cta {
    background: var(--t-hero-text);
    color: #1a1410;
    border-radius: var(--t-radius);
    font-family: var(--t-ui-font);
    transition: transform .15s, box-shadow .15s;
}
.newsletter-cta:hover { color: #1a1410; text-decoration: none; transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0, 0, 0, .25); }
.site-section--newsletter :focus-visible { outline-color: var(--t-hero-text); }

/* ── About ───────────────────────────────────────────────────────────────────*/

.about-photo { border-radius: var(--t-radius-lg); box-shadow: var(--t-shadow-lg); }

.about-initials {
    background: linear-gradient(135deg, var(--t-accent), var(--t-accent-hover));
    color: var(--t-on-accent);
    font-family: var(--t-heading-font);
    border-radius: var(--t-radius-lg);
}

.about-bio { color: var(--t-text); }

.social-link {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    color: var(--t-text);
    font-family: var(--t-ui-font);
    font-weight: 500;
    transition: background .15s, color .15s, border-color .15s;
}
.social-link .icon { color: var(--t-accent); }
.social-link:hover { background: var(--t-accent); border-color: var(--t-accent); color: var(--t-on-accent); text-decoration: none; }
.social-link:hover .icon { color: inherit; }

/* ── Books ───────────────────────────────────────────────────────────────────*/

.book-card { transition: transform .2s; }
.book-card:hover { transform: translateY(-4px); }

.book-cover-wrap {
    border-radius: 3px;
    box-shadow: var(--t-cover-shadow);
    transition: box-shadow .2s;
}
.book-card:hover .book-cover-wrap { box-shadow: var(--t-cover-shadow), var(--t-shadow-lg); }

.book-cover-placeholder {
    background: linear-gradient(160deg, var(--t-accent) 0%, var(--t-accent-hover) 100%);
    color: var(--t-on-accent);
    font-family: var(--t-heading-font);
    font-weight: var(--t-heading-weight);
}

.book-title    { color: var(--t-text); }
.book-series   { color: var(--t-text-muted); font-family: var(--t-ui-font); }

.book-badge--soon {
    background: var(--t-accent);
    color: var(--t-on-accent);
    border-radius: var(--t-radius);
    font-family: var(--t-ui-font);
    box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
}

.book-btn { border-radius: var(--t-radius); font-family: var(--t-ui-font); transition: background .15s, color .15s; }

.book-btn--info {
    background: transparent;
    color: var(--t-accent);
    box-shadow: inset 0 0 0 1.5px var(--t-accent);
}
.book-btn--info:hover { background: var(--t-accent); color: var(--t-on-accent); text-decoration: none; }

/* Buy menu */
.book-buy-menu {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius);
    box-shadow: var(--t-shadow-lg);
}
.book-buy-option {
    color: var(--t-text);
    font-family: var(--t-ui-font);
    border-radius: calc(var(--t-radius) - 2px);
}
.book-buy-option:hover,
.book-buy-option:focus-visible { background: var(--t-accent-light); color: var(--t-accent); text-decoration: none; outline: none; }

.book-direct-btn--disabled { opacity: .6; cursor: default; }

/* ── Book detail page ────────────────────────────────────────────────────────*/

.book-detail-back,
.post-detail-back,
.event-detail-back { color: var(--t-text-muted); font-family: var(--t-ui-font); }
.book-detail-back:hover,
.post-detail-back:hover,
.event-detail-back:hover { color: var(--t-accent); }

.book-detail-cover { border-radius: 3px; box-shadow: var(--t-cover-shadow), var(--t-shadow-lg); }

.book-detail-title    { color: var(--t-text); }
.book-detail-subtitle { color: var(--t-text-muted); }
.book-detail-series   { color: var(--t-accent); font-family: var(--t-ui-font); font-weight: 600; }
.book-detail-genre    { color: var(--t-text-muted); font-family: var(--t-ui-font); }
.book-detail-meta-item { color: var(--t-text-muted); font-family: var(--t-ui-font); }
.book-detail-desc      { color: var(--t-text); }

/* ── Blog ────────────────────────────────────────────────────────────────────*/

.post-card {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius-lg);
    box-shadow: var(--t-shadow);
    transition: transform .2s, box-shadow .2s;
}
.post-card:hover { transform: translateY(-3px); box-shadow: var(--t-shadow-lg); }

.post-date, .post-reading-time { color: var(--t-text-muted); font-family: var(--t-ui-font); }
.post-reading-time::before { content: '·'; margin-right: .65rem; }
.post-title   { color: var(--t-text); }
.post-excerpt { color: var(--t-text-muted); }
.post-tag {
    background: var(--t-accent-light);
    color: var(--t-accent);
    border-radius: var(--t-radius);
    font-family: var(--t-ui-font);
    font-weight: 500;
}
.post-read-more       { color: var(--t-accent); font-family: var(--t-ui-font); }
.post-read-more:hover { color: var(--t-accent-hover); }

/* ── Blog post detail page ───────────────────────────────────────────────────*/

.post-detail-image { border-radius: var(--t-radius-lg); }
.post-detail-title { color: var(--t-text); }

.post-detail-body          { color: var(--t-text); }
.post-detail-body h2,
.post-detail-body h3       { color: var(--t-text); }
.post-detail-body a        { color: var(--t-accent); }
.post-detail-body a:hover  { color: var(--t-accent-hover); }
.post-detail-body blockquote { border-left-color: var(--t-accent); color: var(--t-text-muted); }

.post-detail-tags { border-top-color: var(--t-border); }

/* ── Events ──────────────────────────────────────────────────────────────────*/

.event-card {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius-lg);
    box-shadow: var(--t-shadow);
}

.event-title, .event-title a { color: var(--t-text); }
.event-title a:hover { color: var(--t-accent); }
.event-date, .event-venue { color: var(--t-text-muted); font-family: var(--t-ui-font); }
.event-date .icon, .event-venue .icon { color: var(--t-accent); }
.event-desc { color: var(--t-text-muted); }
.event-cta  { font-size: .88rem; font-weight: 600; }

.event-details-link { color: var(--t-accent); font-family: var(--t-ui-font); font-weight: 600; }
.event-details-link:hover { color: var(--t-accent-hover); }

.event-type-badge,
.event-format-badge {
    background: var(--t-accent-light);
    color: var(--t-accent);
    font-family: var(--t-ui-font);
}

.event-price-badge {
    background: var(--t-bg-alt);
    color: var(--t-text-muted);
    font-family: var(--t-ui-font);
    border: 1px solid var(--t-border);
}

/* ── Event detail page ───────────────────────────────────────────────────────*/

.event-detail-title  { color: var(--t-text); }
.event-detail-meta   { color: var(--t-text-muted); font-family: var(--t-ui-font); }
.event-detail-meta .icon { color: var(--t-accent); }

.event-detail-info {
    background: var(--t-bg-alt);
    border: 1px solid var(--t-border);
}

.event-info-label { color: var(--t-text-muted); font-family: var(--t-ui-font); }
.event-info-value { color: var(--t-text); font-family: var(--t-ui-font); }
.event-info-value a { color: var(--t-accent); }
.event-info-value a:hover { color: var(--t-accent-hover); }

.event-detail-register {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    box-shadow: var(--t-shadow);
}

.event-capacity-note { color: var(--t-text-muted); font-family: var(--t-ui-font); }
.event-featured-books h3 { color: var(--t-text); }

/* ── Gallery ─────────────────────────────────────────────────────────────────*/

.gallery-item {
    border-radius: var(--t-radius);
    background: var(--t-surface);
    border: 1px solid var(--t-border);
}

.gallery-image { transition: transform .35s; }
.gallery-image-wrap:hover .gallery-image { transform: scale(1.04); }
.gallery-image-wrap:focus-visible { outline: 3px solid var(--t-focus); outline-offset: -3px; }
.gallery-caption { color: var(--t-text-muted); font-family: var(--t-ui-font); }

.gallery-category-badge {
    background: rgba(0, 0, 0, .65);
    color: #fff;
    font-family: var(--t-ui-font);
}

/* ── Worldbuilding ───────────────────────────────────────────────────────────*/

.world-card {
    border-radius: var(--t-radius-lg);
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    box-shadow: var(--t-shadow);
}

.world-image { transition: transform .35s; }
.world-card:hover .world-image { transform: scale(1.03); }
.world-body { padding: 1.25rem; }

.world-tag {
    background: var(--t-accent-light);
    color: var(--t-accent);
    border-radius: var(--t-radius);
    font-family: var(--t-ui-font);
    font-weight: 500;
}

.world-title { color: var(--t-text); }
.world-desc  { color: var(--t-text-muted); }

.world-filter-btn {
    color: var(--t-text-muted);
    border-color: var(--t-border);
    font-family: var(--t-ui-font);
}
.world-filter-btn:hover { color: var(--t-text); border-color: var(--t-text-muted); }
.world-filter-btn--active,
.world-filter-btn--active:hover {
    background: var(--t-accent);
    color: var(--t-on-accent);
    border-color: var(--t-accent);
}

.world-summary { color: var(--t-text-muted); font-family: var(--t-ui-font); }

/* ── Reviews ─────────────────────────────────────────────────────────────────*/

.review-card {
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius-lg);
    box-shadow: var(--t-shadow);
}

.review-card--featured         { border-color: var(--t-accent); }
.review-card--featured::before { background: var(--t-accent); color: var(--t-on-accent); font-family: var(--t-ui-font); }

.review-stars        { color: #c98a0c; }
.review-text         { color: var(--t-text); }
.review-name         { color: var(--t-text); font-family: var(--t-ui-font); }
.review-meta         { font-family: var(--t-ui-font); }
.review-source-badge { background: var(--t-bg-alt); color: var(--t-text-muted); border: 1px solid var(--t-border); }
.review-date         { color: var(--t-text-muted); }

.reviews-filter-btn             { background: var(--t-surface); color: var(--t-text-muted); box-shadow: inset 0 0 0 1px var(--t-border); font-family: var(--t-ui-font); }
.reviews-filter-btn:hover       { color: var(--t-text); }
.reviews-filter-btn--active,
.reviews-filter-btn--active:hover { background: var(--t-accent); color: var(--t-on-accent); box-shadow: none; }

/* ── Store ───────────────────────────────────────────────────────────────────*/

.product-card {
    border-radius: var(--t-radius-lg);
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    box-shadow: var(--t-shadow);
    transition: transform .2s, box-shadow .2s;
}
.product-card:hover { transform: translateY(-3px); box-shadow: var(--t-shadow-lg); }

.product-image-wrap {
    position: relative;
    aspect-ratio: 1;
    background: var(--t-bg-alt);
}

.product-type-badge {
    position: absolute;
    top: .6rem;
    left: .6rem;
    background: var(--t-accent);
    color: var(--t-on-accent);
    font-family: var(--t-ui-font);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .03em;
    padding: .2rem .5rem;
    border-radius: var(--t-radius);
    text-transform: uppercase;
    z-index: 1;
}
.product-type-header   { padding: .9rem 1.1rem 0; }
.product-type-badge--inline { position: static; display: inline-block; }

.product-body      { padding: 1.1rem; gap: .4rem; }
.product-title     { color: var(--t-text); margin: 0; }
.product-desc      { color: var(--t-text-muted); margin: 0; }
.product-price-row { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: .25rem; }
.product-price     { color: var(--t-text); font-family: var(--t-ui-font); margin: 0; }

.product-status-badge {
    display: inline-block;
    padding: .1rem .5rem;
    border-radius: 20px;
    font-family: var(--t-ui-font);
    font-size: .7rem;
    font-weight: 600;
    white-space: nowrap;
    background: var(--t-accent-light);
    color: var(--t-accent);
}
.product-status-badge--oos,
.product-status-badge--oop { background: var(--t-bg-alt); color: var(--t-text-muted); }

.product-cta { font-size: .88rem; font-weight: 600; margin-top: .5rem; }
.product-cta--disabled,
.product-cta--disabled:hover {
    background: var(--t-bg-alt);
    color: var(--t-text-muted);
    cursor: default;
}
.product-cta--contact {
    background: transparent;
    box-shadow: inset 0 0 0 1.5px var(--t-accent);
    color: var(--t-accent);
}
.product-cta--contact:hover { background: var(--t-accent); color: var(--t-on-accent); }
.product-cta:disabled { opacity: .7; cursor: wait; }

.product-checkout-error { color: var(--t-error); font-family: var(--t-ui-font); }

.store-listing-page { padding-top: 2rem; min-height: 60vh; }
.store-success-banner {
    margin: -1.5rem 0 2rem;
    padding: 1rem 1.25rem;
    background: var(--t-accent-light);
    color: var(--t-text);
    border-left: 4px solid var(--t-accent);
    border-radius: var(--t-radius);
    font-family: var(--t-ui-font);
}

/* ── Contact ─────────────────────────────────────────────────────────────────*/

.contact-block {
    padding: 2.25rem;
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    border-radius: var(--t-radius-lg);
    box-shadow: var(--t-shadow);
}

.contact-block-desc { color: var(--t-text-muted); }
.contact-label { color: var(--t-text); font-family: var(--t-ui-font); }

.contact-input,
.contact-textarea {
    width: 100%;
    padding: .75rem .9rem;
    background: var(--t-bg);
    border: 1.5px solid var(--t-border);
    border-radius: var(--t-radius);
    color: var(--t-text);
    font-family: var(--t-ui-font);
    font-size: 1rem;
    transition: border-color .15s, box-shadow .15s;
}
.contact-input:focus,
.contact-textarea:focus {
    outline: none;
    border-color: var(--t-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--t-accent) 30%, transparent);
}
.contact-textarea { resize: vertical; min-height: 140px; }

.contact-submit {
    align-self: flex-start;
    padding: .8rem 1.75rem;
    border: none;
    font-size: .95rem;
    font-weight: 600;
    cursor: pointer;
}
.contact-submit:disabled { opacity: .6; cursor: not-allowed; }

.contact-status { font-family: var(--t-ui-font); font-size: .9rem; min-height: 1.3em; }
/* Privacy notices where readers give their details (contact form, store) */
.contact-privacy,
.store-note { font-family: var(--t-ui-font); font-size: .8rem; line-height: 1.5; color: var(--t-text-muted); margin-top: .75rem; }
.store-note { text-align: center; max-width: 42rem; margin: 1.5rem auto 0; }
.contact-privacy a,
.store-note a { color: inherit; text-decoration: underline; }
.contact-status--success { color: var(--t-success); }
.contact-status--error   { color: var(--t-error); }

/* ── Footer ──────────────────────────────────────────────────────────────────*/

.site-footer {
    background: var(--t-bg-alt);
    border-top: 1px solid var(--t-border);
}

.footer-name { color: var(--t-text); }

.social-icon-link {
    color: var(--t-text-muted);
    background: var(--t-surface);
    border: 1px solid var(--t-border);
    transition: color .15s, background .15s, border-color .15s;
}
.social-icon-link:hover { color: var(--t-on-accent); background: var(--t-accent); border-color: var(--t-accent); }

.footer-newsletter { color: var(--t-accent); font-family: var(--t-ui-font); }
.footer-legal { color: var(--t-text-muted); font-family: var(--t-ui-font); }
.footer-ppd  { color: var(--t-text-muted); }
.footer-ppd:hover { color: var(--t-accent); }
