:root {
    --tnj-color-bg: #f5f1e8;
    --tnj-color-bg-alt: #fbf8f2;
    --tnj-color-surface: #ffffff;
    --tnj-color-primary: #5a3e2b;
    --tnj-color-primary-dark: #432d1f;
    --tnj-color-accent: #8b5e3c;
    --tnj-color-accent-light: #d7c2a3;
    --tnj-color-text: #2b2b2b;
    --tnj-color-text-soft: #5a5147;
    --tnj-color-border: #e3d8c9;
    --tnj-shadow-soft: 0 12px 35px rgba(43, 43, 43, 0.08);
    --tnj-radius-lg: 24px;
    --tnj-radius-md: 16px;
    --tnj-radius-sm: 10px;
    --tnj-max-width: 1240px;
    --tnj-transition: 200ms ease;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.tnj-body {
    margin: 0;
    background: var(--tnj-color-bg);
    color: var(--tnj-color-text);
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.6;
}

a { color: var(--tnj-color-primary); text-decoration: none; }
a:hover { color: var(--tnj-color-primary-dark); }
img { max-width: 100%; height: auto; display: block; }

.tnj-container {
    width: min(100% - 2rem, var(--tnj-max-width));
    margin-inline: auto;
}

.tnj-narrow-container {
    width: min(100% - 2rem, 900px);
    margin-inline: auto;
}

.tnj-site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(245, 241, 232, 0.94);
    backdrop-filter: blur(8px);
    border-bottom: 1px solid var(--tnj-color-border);
}

.tnj-header-inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 1rem;
    align-items: center;
    padding: 1rem 0;
}

.tnj-site-title-link,
.custom-logo-link {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--tnj-color-primary-dark);
}

.tnj-site-tagline {
    margin: 0.15rem 0 0;
    font-size: 0.875rem;
    color: var(--tnj-color-text-soft);
}

.tnj-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
}

.tnj-menu a,
.tnj-social-link {
    font-size: 0.95rem;
    font-weight: 600;
}

.tnj-social-links,
.tnj-footer-buy-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.tnj-site-main { overflow: hidden; }
.tnj-section { padding: 5rem 0; }
.tnj-section-header {
    margin-bottom: 2rem;
    max-width: 700px;
}
.tnj-section-kicker {
    margin: 0 0 0.5rem;
    color: var(--tnj-color-accent);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8rem;
    font-weight: 700;
}
.tnj-section-title,
.tnj-hero-title,
.tnj-entry-title {
    margin: 0;
    line-height: 1.1;
    color: var(--tnj-color-primary-dark);
}
.tnj-section-title { font-size: clamp(2rem, 3vw, 3rem); }
.tnj-hero-title { font-size: clamp(2.5rem, 5vw, 4.5rem); }
.tnj-hero-kicker {
    margin: 0 0 1rem;
    color: var(--tnj-color-accent);
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.tnj-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.9rem 1.25rem;
    border-radius: 999px;
    font-weight: 700;
    transition: transform var(--tnj-transition), background var(--tnj-transition), color var(--tnj-transition);
}
.tnj-button:hover { transform: translateY(-2px); }
.tnj-button-primary {
    background: var(--tnj-color-primary);
    color: #fff;
}
.tnj-button-primary:hover {
    background: var(--tnj-color-primary-dark);
    color: #fff;
}
.tnj-button-secondary {
    background: transparent;
    color: var(--tnj-color-primary);
    border: 1px solid var(--tnj-color-primary);
}
.tnj-button-secondary:hover {
    background: var(--tnj-color-primary);
    color: #fff;
}

.tnj-grid {
    display: grid;
    gap: 1.5rem;
}
.tnj-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.tnj-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tnj-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.tnj-card {
    background: var(--tnj-color-surface);
    border: 1px solid var(--tnj-color-border);
    border-radius: var(--tnj-radius-lg);
    overflow: hidden;
    box-shadow: var(--tnj-shadow-soft);
}
.tnj-card-content { padding: 1.5rem; }
.tnj-card-title {
    margin: 0 0 0.75rem;
    color: var(--tnj-color-primary-dark);
    font-size: 1.35rem;
    line-height: 1.2;
}
.tnj-card-title a { color: inherit; }
.tnj-card-text {
    margin: 0 0 1.2rem;
    color: var(--tnj-color-text-soft);
}
.tnj-card-tag {
    display: inline-block;
    margin-bottom: 0.85rem;
    padding: 0.35rem 0.7rem;
    background: var(--tnj-color-bg);
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--tnj-color-accent);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.tnj-card-media {
    min-height: 220px;
    background-size: cover;
    background-position: center;
}

#tnj-hero {
    background:
        radial-gradient(circle at top left, rgba(215, 194, 163, 0.35), transparent 35%),
        linear-gradient(135deg, #f7f3eb 0%, #efe4d4 100%);
}
.tnj-hero-inner {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 2rem;
    align-items: center;
    min-height: 72vh;
}
.tnj-hero-text p {
    font-size: 1.1rem;
    max-width: 620px;
    color: var(--tnj-color-text-soft);
}
.tnj-hero-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: 1.5rem;
}
.tnj-hero-visual {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}
.tnj-hero-image-card {
    min-height: 230px;
    border-radius: 24px;
    overflow: hidden;
    position: relative;
    box-shadow: var(--tnj-shadow-soft);
    background-size: cover;
    background-position: center;
}
.tnj-hero-image-card-1 {
    grid-column: 1 / span 2;
    background-image: linear-gradient(rgba(67,45,31,0.2), rgba(67,45,31,0.2)), url('https://images.unsplash.com/photo-1515377905703-c4788e51af15?auto=format&fit=crop&w=1600&q=80');
}
.tnj-hero-image-card-2 {
    background-image: linear-gradient(rgba(67,45,31,0.15), rgba(67,45,31,0.15)), url('https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&fit=crop&w=1200&q=80');
}
.tnj-hero-image-card-3 {
    background-image: linear-gradient(rgba(67,45,31,0.15), rgba(67,45,31,0.15)), url('https://images.unsplash.com/photo-1503602642458-232111445657?auto=format&fit=crop&w=1200&q=80');
}
.tnj-hero-image-label {
    position: absolute;
    left: 1rem;
    bottom: 1rem;
    padding: 0.45rem 0.8rem;
    background: rgba(255,255,255,0.9);
    border-radius: 999px;
    font-weight: 700;
    color: var(--tnj-color-primary-dark);
}

.tnj-card-media-woodworking,
.tnj-product-media-cutting-board {
    background-image: linear-gradient(rgba(67,45,31,0.15), rgba(67,45,31,0.15)), url('https://images.unsplash.com/photo-1503602642458-232111445657?auto=format&fit=crop&w=1200&q=80');
}
.tnj-card-media-printed,
.tnj-product-media-dice-tower,
.tnj-product-media-phone-stand {
    background-image: linear-gradient(rgba(67,45,31,0.08), rgba(67,45,31,0.08)), url('https://images.unsplash.com/photo-1518770660439-4636190af475?auto=format&fit=crop&w=1200&q=80');
}
.tnj-card-media-custom,
.tnj-product-media-custom-build {
    background-image: linear-gradient(rgba(67,45,31,0.16), rgba(67,45,31,0.16)), url('https://images.unsplash.com/photo-1515377905703-c4788e51af15?auto=format&fit=crop&w=1200&q=80');
}

#tnj-custom-work {
    background: linear-gradient(135deg, rgba(90,62,43,0.96), rgba(67,45,31,0.96));
    color: #fff;
}
#tnj-custom-work .tnj-section-title,
#tnj-custom-work .tnj-card-text,
#tnj-custom-work .tnj-section-kicker { color: #fff; }
#tnj-custom-work .tnj-button-secondary {
    border-color: #fff;
    color: #fff;
}

#tnj-contact-cta .tnj-contact-cta-inner,
#tnj-custom-work .tnj-custom-work-inner {
    padding: 2rem;
    border-radius: var(--tnj-radius-lg);
}
#tnj-contact-cta .tnj-contact-cta-inner {
    background: var(--tnj-color-surface);
    border: 1px solid var(--tnj-color-border);
    box-shadow: var(--tnj-shadow-soft);
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
}
.tnj-contact-cta-actions,
.tnj-section-actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.tnj-content-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 2rem;
}
.tnj-entry-content,
.tnj-archive-description,
.tnj-about-preview-content {
    color: var(--tnj-color-text-soft);
}
.tnj-entry-featured-image-wrap { margin: 1.5rem 0; }
.tnj-entry-featured-image {
    border-radius: var(--tnj-radius-lg);
}
.tnj-sidebar .widget {
    background: var(--tnj-color-surface);
    border: 1px solid var(--tnj-color-border);
    border-radius: var(--tnj-radius-md);
    padding: 1.25rem;
    box-shadow: var(--tnj-shadow-soft);
    margin-bottom: 1rem;
}

.tnj-site-footer {
    background: var(--tnj-color-primary-dark);
    color: rgba(255,255,255,0.92);
    margin-top: 4rem;
}
.tnj-footer-inner {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr;
    gap: 2rem;
    padding: 4rem 0 2rem;
}
.tnj-site-footer a,
.tnj-footer-heading,
.tnj-footer-title {
    color: #fff;
}
.tnj-footer-description,
.tnj-footer-copyright { color: rgba(255,255,255,0.74); }
.tnj-footer-bottom {
    border-top: 1px solid rgba(255,255,255,0.12);
    padding: 1rem 0;
}

@media (max-width: 1100px) {
    .tnj-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tnj-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tnj-footer-inner,
    .tnj-content-layout,
    .tnj-hero-inner,
    .tnj-header-inner {
        grid-template-columns: 1fr;
    }
    .tnj-header-social { justify-self: start; }
}

@media (max-width: 720px) {
    .tnj-section { padding: 3.5rem 0; }
    .tnj-grid-2,
    .tnj-grid-3,
    .tnj-grid-4,
    .tnj-hero-visual {
        grid-template-columns: 1fr;
    }
    .tnj-hero-image-card-1 { grid-column: auto; }
    #tnj-contact-cta .tnj-contact-cta-inner {
        align-items: flex-start;
        flex-direction: column;
    }
}


#tnj-products-hero {
    background: linear-gradient(135deg, rgba(247,243,235,1) 0%, rgba(239,228,212,0.9) 100%);
}

.tnj-products-hero-inner,
.tnj-products-hero-visual {
    align-items: stretch;
}

.tnj-products-hero-content,
.tnj-products-hero-card,
#tnj-products-custom-process-inner {
    height: 100%;
}

.tnj-products-hero-text,
.tnj-products-hero-text p {
    color: var(--tnj-color-text-soft);
}

.tnj-products-hero-visual {
    display: grid;
    gap: 1rem;
}

.tnj-product-category-card .tnj-card-media,
.tnj-product-card .tnj-card-media {
    min-height: 260px;
}

#tnj-products-buy-methods {
    background: var(--tnj-color-bg-alt);
}

#tnj-products-custom-process .tnj-custom-step-card {
    padding: 1.25rem;
    background: var(--tnj-color-bg);
    border: 1px solid var(--tnj-color-border);
    border-radius: var(--tnj-radius-md);
}

.tnj-products-custom-steps {
    margin: 1.5rem 0;
}


.tnj-product-manager-output,
.tnj-product-manager-output-featured,
.tnj-product-manager-output-products-page {
    width: 100%;
}

.tnj-product-manager-output .tnj-grid,
.tnj-product-manager-output .products,
.tnj-product-manager-output .tnj-products-grid,
.tnj-product-manager-output .tnj-product-grid,
.tnj-product-manager-output .tnj-generated-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.5rem;
}

.tnj-product-manager-output .tnj-card,
.tnj-product-manager-output .product,
.tnj-product-manager-output .tnj-product-card,
.tnj-generated-product-card {
    background: var(--tnj-color-surface);
    border: 1px solid var(--tnj-color-border);
    border-radius: var(--tnj-radius-lg);
    box-shadow: var(--tnj-shadow-sm);
    overflow: hidden;
}

.tnj-product-manager-output img,
.tnj-generated-product-media img {
    display: block;
    width: 100%;
    height: auto;
}

.tnj-generated-product-media-placeholder {
    background: linear-gradient(135deg, rgba(90,62,43,0.16) 0%, rgba(215,194,163,0.6) 100%);
}

.tnj-product-manager-output .button,
.tnj-product-manager-output a.button,
.tnj-product-manager-output .tnj-button,
.tnj-generated-product-card .tnj-button {
    display: inline-flex;
    margin-top: 1rem;
}

@media (max-width: 1100px) {
    .tnj-product-manager-output .tnj-grid,
    .tnj-product-manager-output .products,
    .tnj-product-manager-output .tnj-products-grid,
    .tnj-product-manager-output .tnj-product-grid,
    .tnj-product-manager-output .tnj-generated-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .tnj-product-manager-output .tnj-grid,
    .tnj-product-manager-output .products,
    .tnj-product-manager-output .tnj-products-grid,
    .tnj-product-manager-output .tnj-product-grid,
    .tnj-product-manager-output .tnj-generated-product-grid {
        grid-template-columns: 1fr;
    }
}


#tnj-buy-hero {
    background: linear-gradient(135deg, rgba(247,243,235,1) 0%, rgba(239,228,212,0.92) 100%);
}

.tnj-buy-hero-inner,
.tnj-buy-panel-grid {
    align-items: stretch;
}

.tnj-buy-hero-visual {
    display: grid;
    gap: 1rem;
}

.tnj-buy-hero-card,
.tnj-buy-side-card,
.tnj-buy-next-steps-card {
    height: 100%;
}

.tnj-buy-hero-list {
    margin: 0;
    padding-left: 1.2rem;
    color: var(--tnj-color-text-soft);
}

.tnj-buy-hero-list li + li {
    margin-top: 0.65rem;
}

#tnj-buy-local,
#tnj-buy-next-steps {
    background: var(--tnj-color-bg-alt);
}

.tnj-buy-info-grid,
.tnj-buy-next-steps-grid {
    margin-top: 1.5rem;
}

.tnj-buy-feature-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1rem 0 1.4rem;
}

.tnj-buy-feature-item,
.tnj-buy-next-step-item,
.tnj-buy-info-card .tnj-card-content {
    background: var(--tnj-color-bg);
    border: 1px solid var(--tnj-color-border);
    border-radius: var(--tnj-radius-md);
}

.tnj-buy-feature-item {
    padding: 0.75rem 1rem;
    font-weight: 700;
    color: var(--tnj-color-primary-dark);
}

.tnj-buy-next-step-item {
    padding: 1.25rem;
}

.tnj-card-media-buy-etsy,
.tnj-card-media-buy-craft {
    min-height: 260px;
}

.tnj-card-media-buy-etsy {
    background-image: linear-gradient(rgba(67,45,31,0.14), rgba(67,45,31,0.14)), url('https://images.unsplash.com/photo-1516321318423-f06f85e504b3?auto=format&fit=crop&w=1400&q=80');
}

.tnj-card-media-buy-craft {
    background-image: linear-gradient(rgba(67,45,31,0.12), rgba(67,45,31,0.12)), url('https://images.unsplash.com/photo-1517457373958-b7bdd4587205?auto=format&fit=crop&w=1400&q=80');
}

@media (max-width: 900px) {
    .tnj-buy-feature-list {
        flex-direction: column;
    }
}


#tnj-craft-hero {
    background: linear-gradient(135deg, #f7f3eb 0%, #efe4d4 100%);
}

.tnj-craft-hero-inner,
.tnj-craft-events-layout {
    align-items: stretch;
}

.tnj-craft-hero-text p,
.tnj-craft-events-list-card .tnj-card-text,
.tnj-craft-map-card .tnj-card-text,
.tnj-craft-next-show-card .tnj-card-text,
.tnj-craft-cta-card .tnj-card-text {
    color: var(--tnj-color-text-soft);
}

.tnj-craft-highlight-card,
.tnj-craft-next-show-card,
.tnj-craft-cta-card {
    height: 100%;
}

.tnj-card-media-craft-show {
    min-height: 260px;
    background-image: linear-gradient(rgba(67,45,31,0.18), rgba(67,45,31,0.2)), url('https://images.unsplash.com/photo-1517457373958-b7bdd4587205?auto=format&fit=crop&w=1400&q=80');
}

.tnj-meta-list {
    margin: 0;
    padding-left: 1.1rem;
    color: var(--tnj-color-text-soft);
}

.tnj-meta-list li + li {
    margin-top: 0.35rem;
}

.tnj-craft-event-listing {
    display: grid;
    gap: 0.9rem;
}

.tnj-craft-event-row {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    background: var(--tnj-color-bg);
    border: 1px solid var(--tnj-color-border);
    border-radius: var(--tnj-radius-md);
}

.tnj-craft-map-placeholder {
    min-height: 280px;
    border-radius: var(--tnj-radius-md);
    border: 2px dashed var(--tnj-color-accent-light);
    background: linear-gradient(135deg, rgba(215,194,163,0.18), rgba(245,241,232,0.95));
    display: grid;
    place-items: center;
    margin-bottom: 1rem;
}

.tnj-craft-map-placeholder-label {
    font-weight: 700;
    color: var(--tnj-color-primary);
    text-align: center;
}

#tnj-craft-next-show,
#tnj-craft-cta {
    padding-top: 0;
}
