/*
Theme Name:     Yarnmuffin
Theme URI:      https://yarnmuffin.com
Template:       storefront
Author:         Yarnmuffin
Description:    Playful child theme for Yarnmuffin yarn shop. Cozy yarn for crafty souls.
Version:        1.0.0
*/

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,700;9..144,900&family=Nunito:wght@400;600;800&display=swap');

:root {
    --ym-pink:   #FF6BB5;
    --ym-yellow: #FFC93C;
    --ym-purple: #9D7BCD;
    --ym-lime:   #88C808;
    --ym-red:    #E63946;
    --ym-teal:   #4ECDC4;
    --ym-cream:  #FFF8EE;
    --ym-black:  #1a1a1a;
}

body, button, input, select, textarea {
    font-family: 'Nunito', system-ui, sans-serif;
    background: var(--ym-cream);
    color: var(--ym-black);
}

h1, h2, h3, h4,
.entry-title, .product_title,
.site-header .site-branding h1 a,
.site-header .site-branding p.site-title a {
    font-family: 'Fraunces', Georgia, serif !important;
    font-weight: 900 !important;
    letter-spacing: -0.02em;
    color: var(--ym-black) !important;
}

.site-header {
    background: var(--ym-cream) !important;
    border-bottom: 4px solid var(--ym-black);
    padding: 1rem 0;
}
.site-header .site-branding h1 a,
.site-header .site-branding p.site-title a { font-size: 2rem; }
.site-header .site-branding .site-description {
    color: var(--ym-purple) !important;
    font-family: 'Nunito', sans-serif;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-size: 0.75rem;
    font-weight: 700;
}
.site-header-cart .cart-contents {
    background: var(--ym-yellow) !important;
    color: var(--ym-black) !important;
    border: 3px solid var(--ym-black) !important;
    border-radius: 999px !important;
    padding: 0.6rem 1.2rem !important;
    font-weight: 800;
    box-shadow: 4px 4px 0 var(--ym-black);
}
.site-header-cart .cart-contents:hover {
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 var(--ym-black);
}

ul.products li.product {
    background: var(--ym-cream);
    border: 4px solid var(--ym-black) !important;
    border-radius: 24px !important;
    padding: 1rem !important;
    box-shadow: 6px 6px 0 var(--ym-black);
    transition: transform 0.2s ease;
}
ul.products li.product:hover {
    transform: translate(-3px, -3px);
    box-shadow: 9px 9px 0 var(--ym-black);
}
ul.products li.product .price {
    font-family: 'Fraunces', serif;
    font-weight: 900;
    color: var(--ym-black) !important;
    font-size: 1.25rem;
}
ul.products li.product h2,
ul.products li.product h3,
ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Fraunces', serif !important;
    font-weight: 900 !important;
    font-size: 1.1rem !important;
}
ul.products li.product .button {
    background: var(--ym-pink) !important;
    color: white !important;
    border: 3px solid var(--ym-black) !important;
    border-radius: 999px !important;
    font-weight: 800 !important;
    padding: 0.65rem 1.25rem !important;
    box-shadow: 3px 3px 0 var(--ym-black);
}

.button, button, input[type="submit"],
.woocommerce a.button, .woocommerce button.button,
.woocommerce input.button, .woocommerce #respond input#submit {
    background: var(--ym-pink) !important;
    color: white !important;
    border: 3px solid var(--ym-black) !important;
    border-radius: 999px !important;
    font-family: 'Nunito', sans-serif !important;
    font-weight: 800 !important;
    box-shadow: 4px 4px 0 var(--ym-black);
    text-transform: none !important;
}
.button:hover, button:hover {
    transform: translate(-2px, -2px);
    box-shadow: 6px 6px 0 var(--ym-black);
}

.woocommerce #payment #place_order,
.wc-block-components-checkout-place-order-button {
    background: var(--ym-lime) !important;
    color: var(--ym-black) !important;
}

.site-footer {
    background: var(--ym-pink) !important;
    color: white !important;
    border-top: 4px solid var(--ym-black);
    padding: 3rem 0 !important;
}
.site-footer a, .site-footer .site-info { color: white !important; }

.site, body { background: var(--ym-cream) !important; }

.woocommerce table.shop_table {
    border: 3px solid var(--ym-black) !important;
    border-radius: 16px !important;
    overflow: hidden;
}
.woocommerce form .form-row input,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
    border: 2px solid var(--ym-black) !important;
    border-radius: 12px !important;
    padding: 0.6rem !important;
}

.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
    background: var(--ym-red) !important;
    color: white !important;
    border: 2px solid var(--ym-black) !important;
    border-radius: 999px !important;
    font-family: 'Nunito', sans-serif !important;
    font-weight: 800 !important;
    padding: 0.4rem 0.9rem !important;
}

.yarnmuffin-hero {
    background: linear-gradient(135deg, var(--ym-cream) 0%, #FFE680 100%);
    border-bottom: 4px solid var(--ym-black);
    padding: 5rem 1.5rem;
    text-align: center;
    overflow: hidden;
}
.yarnmuffin-hero h1 {
    font-family: 'Fraunces', serif;
    font-weight: 900;
    font-size: clamp(2.5rem, 6vw, 5rem);
    line-height: 1;
    margin: 0 0 1rem;
    letter-spacing: -0.03em;
}
.yarnmuffin-hero h1 .pink { color: var(--ym-pink); }
.yarnmuffin-hero h1 .purple { color: var(--ym-purple); }
.yarnmuffin-hero p.tagline {
    font-family: 'Nunito', sans-serif;
    font-size: clamp(1.1rem, 2.5vw, 1.5rem);
    color: #444;
    max-width: 36rem;
    margin: 0 auto 2rem;
}
.yarnmuffin-hero .pill {
    display: inline-block;
    background: var(--ym-lime);
    border: 2px solid var(--ym-black);
    border-radius: 999px;
    padding: 0.35rem 1rem;
    font-weight: 800;
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
}

/* yarnmuffin-logo-tweaks — fit the cupcake character cleanly in the header */
.site-branding .custom-logo {
    max-height: 80px;
    width: auto;
    margin-right: 1rem;
    vertical-align: middle;
}
.site-branding {
    display: flex !important;
    align-items: center;
    gap: 1rem;
}
.site-branding .site-title,
.site-branding h1.beta {
    margin: 0 !important;
    line-height: 1 !important;
}
@media (max-width: 600px) {
    .site-branding .custom-logo { max-height: 56px; }
    .site-branding .site-title { font-size: 1.5rem !important; }
}
