/*
Theme Name: Little Keys
Theme URI: https://example.com/little-keys
Author: Code & Bloom
Description: A warm, editorial WooCommerce theme for a small novelty keycap shop.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: little-keys
*/
@font-face{font-family:LittleManrope;src:url('assets/fonts/manrope.ttf') format('truetype');font-style:normal;font-weight:200 800;font-display:swap}
:root{--ink:#1d1e1b;--cream:#f7f5ed;--lime:#d8ff54;--lavender:#d7c2ef;--peach:#f7d0b5;--butter:#f3dfa2;--line:rgba(29,30,27,.18);--max:1280px;--gutter:clamp(1.25rem,4vw,4rem);--serif:Georgia,'Times New Roman',serif;--sans:LittleManrope,Manrope,Arial,sans-serif;--space:clamp(4.5rem,9vw,9rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.52;text-rendering:optimizeLegibility}body,button,input,select,textarea{font-family:var(--sans)}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em}a:hover{color:#555}button,a,input,summary{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px}.container{width:min(100% - 2*var(--gutter),var(--max));margin-inline:auto}.screen-reader-text{clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute!important;width:1px;white-space:nowrap}.skip-link:focus{clip:auto;clip-path:none;height:auto;width:auto;left:1rem;top:1rem;padding:.75rem 1rem;background:var(--lime);z-index:100}
.announcement{background:var(--ink);color:var(--cream);height:35px;display:grid;place-items:center;font-size:.78rem;letter-spacing:.02em}.site-header{background:var(--cream);border-bottom:1px solid var(--line);position:relative;z-index:10}.header-inner{height:84px;display:flex;align-items:center;gap:2rem}.brand{font-size:2rem;font-weight:800;letter-spacing:-.075em;text-decoration:none;white-space:nowrap}.brand span{color:#9fd32e}.custom-logo-link img{max-height:48px;width:auto}.primary-navigation{margin-left:auto}.nav-list{list-style:none;display:flex;align-items:center;gap:clamp(1.25rem,3vw,3rem);padding:0;margin:0}.nav-list li{margin:0}.nav-list a{text-decoration:none;font-size:.9rem}.cart-link{display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;margin-left:.5rem}.cart-link img{width:22px;height:22px}.cart-count{min-width:1.25rem;height:1.25rem;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--cream);font-size:.7rem}.menu-toggle{display:none;background:none;border:0;font:inherit;cursor:pointer}
.hero{border-bottom:1px solid var(--line)}.hero-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);min-height:650px}.hero-copy{padding:clamp(4rem,8vw,8rem) clamp(0rem,4vw,4rem) clamp(4rem,8vw,8rem) 0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.eyebrow{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.16em;margin:0 0 1.25rem}.hero h1{font-size:clamp(3.6rem,7.4vw,7.2rem);line-height:.9;letter-spacing:-.095em;max-width:720px;margin:0 0 2rem;font-weight:800}.hero h1 em{font-family:var(--serif);font-weight:400;letter-spacing:-.08em}.hero-description{font-size:1.25rem;line-height:1.4;max-width:28rem;margin:0 0 2rem}.button{display:inline-flex;justify-content:center;align-items:center;min-height:3.25rem;padding:.85rem 1.5rem;background:var(--ink);color:var(--cream);border:1px solid var(--ink);text-decoration:none;font-weight:700;transition:background .2s,color .2s,transform .2s}.button:hover{background:transparent;color:var(--ink);transform:translateY(-2px)}.text-link{display:inline-block;text-decoration:underline}.hero-secondary{margin-top:1.25rem}.hero-visual{position:relative;min-height:650px;overflow:hidden}.hero-visual>img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-sticker{position:absolute;right:8%;top:9%;width:118px;height:118px;border-radius:50%;display:grid;place-items:center;text-align:center;background:var(--lime);font-weight:800;line-height:1.05;transform:rotate(5deg)}.hero-caption{position:absolute;right:2rem;bottom:1.5rem;background:var(--cream);padding:.45rem .75rem;text-decoration:none;font-size:.85rem}
.value-strip{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);padding-block:2.25rem}.value-strip>div{padding:0 2.5rem;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:.35rem}.value-strip>div:first-child{border-left:0;padding-left:0}.value-strip strong{font-size:1rem}.value-strip span{font-size:.86rem;color:#555}
.section{padding-block:var(--space)}.section-heading{margin-bottom:3.5rem}.section-heading h2,.editorial-copy h2,.story-section h2,.faq-section>h2,.fit-intro h2,.newsletter h2{font-size:clamp(2.4rem,5vw,5rem);line-height:.96;letter-spacing:-.08em;margin:0;font-weight:800}.section-heading p{margin:.75rem 0 0;font-size:1.1rem}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3.5rem)}.product-card__image{aspect-ratio:1/1;display:block;overflow:hidden;background:var(--peach)}.product-card__image img{height:100%;width:100%;object-fit:cover;transition:transform .35s}.product-card:hover .product-card__image img{transform:scale(1.03)}.product-card h3{font-size:1.25rem;letter-spacing:-.04em;margin:1rem 0 .2rem}.product-card h3 a{text-decoration:none}.product-tagline{margin:0;color:#555}.product-colours{font-size:.8rem;margin:.75rem 0 0;color:#555}.price{font-size:1.2rem;font-weight:800;margin:.7rem 0 .35rem}.text-link span{font-size:1.05em}.empty-state{grid-column:1/-1;padding:4rem 0}
.editorial{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,8vw,8rem);align-items:center}.editorial-image{background:var(--peach);overflow:hidden}.editorial-image img{width:100%;aspect-ratio:1.05/1;object-fit:cover}.editorial-copy{max-width:35rem}.editorial-copy p{font-size:1.1rem;max-width:32rem}.feature-price{font-weight:800}.gift-section{grid-template-columns:.9fr 1.1fr}.gift-section .editorial-image{background:var(--butter)}.story-section{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,8vw,8rem);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.story-section p{font-size:1.1rem;max-width:35rem}.fit-banner{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;gap:clamp(2rem,6vw,7rem);background:var(--lime);padding:clamp(2.5rem,5vw,5rem);width:min(100% - 2*var(--gutter),var(--max));}.fit-intro h2{font-size:clamp(2.6rem,5vw,4.8rem);margin-bottom:2rem}.fit-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.fit-steps li{border-left:1px solid var(--ink);padding-left:1.25rem}.fit-steps h3{font-size:1rem;margin:0 0 .5rem}.fit-steps p{margin:0;font-size:.9rem}.fit-checks{list-style:none;padding:0;margin:0;display:grid;gap:1rem}.fit-checks li{border-bottom:1px solid var(--ink);padding:0 0 1rem;font-weight:800}.fit-checks li::before{content:'0';margin-right:.25rem}.fit-checks li:nth-child(2)::before{content:'0';}.fit-checks li:nth-child(3)::before{content:'0';}
.faq-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,8vw,8rem);align-items:start}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line);padding:1rem 0}summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;font-weight:700}summary::-webkit-details-marker{display:none}summary::after{content:'+';font-size:1.25rem;font-weight:400}details[open] summary::after{content:'−'}details>div{padding:1rem 2rem 0 0;color:#555}.newsletter{background:var(--lavender);padding-block:3.5rem}.newsletter-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}.newsletter h2{font-size:clamp(2rem,4vw,3.5rem)}.newsletter p{margin:.5rem 0 0}.newsletter form{display:flex;gap:.5rem}.newsletter input{min-height:3rem;border:1px solid var(--ink);padding:.7rem 1rem;background:var(--cream);min-width:min(22rem,45vw)}.newsletter button{min-height:3rem;border:1px solid var(--ink);background:var(--ink);color:var(--cream);padding:.7rem 1.1rem;font-weight:700;cursor:pointer}.home-extra{padding-top:0}.site-footer{background:var(--ink);color:var(--cream);padding-block:4rem 1.5rem}.site-footer .brand{color:var(--cream)}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:3rem}.site-footer h2{font-size:.72rem;text-transform:uppercase;letter-spacing:.15em;margin:0 0 1rem}.site-footer p{color:#c5c5bd}.site-footer ul,.site-footer .menu{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.site-footer a{text-decoration:none}.site-footer a:hover{color:var(--lime)}.footer-bottom{border-top:1px solid rgba(247,245,237,.35);margin-top:4rem;padding-top:1.2rem;display:flex;justify-content:space-between;font-size:.78rem;color:#c5c5bd}
.page-main{padding-block:clamp(4rem,8vw,8rem);min-height:50vh}.page-heading{margin-bottom:3rem}.page-heading h1,.prose h1{font-size:clamp(3rem,7vw,6.4rem);line-height:.95;letter-spacing:-.09em;margin:0}.prose{max-width:850px}.prose h2{font-size:clamp(1.8rem,4vw,3.2rem);line-height:1;letter-spacing:-.06em;margin-top:3rem}.prose h3{font-size:1.35rem;margin-top:2.5rem}.prose p,.prose li{max-width:65ch;font-size:1.1rem}.prose ul,.prose ol{padding-left:1.2rem}.prose img{margin:2rem 0}.journal-entry{border-top:1px solid var(--line);padding-block:2rem}.journal-entry h2{margin:0;font-size:2rem}.journal-entry h2 a{text-decoration:none}.commerce-page{padding-block:clamp(3rem,7vw,7rem)}
.shop-main{padding-block:clamp(3rem,7vw,7rem)}.woocommerce-breadcrumb{font-size:.82rem;color:#555;margin-bottom:2rem}.woocommerce .page-title{font-size:clamp(3rem,7vw,6rem);line-height:.95;letter-spacing:-.09em;margin:0 0 3rem}.woocommerce ul.products{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3.5rem);margin:0!important;padding:0!important}.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}.woocommerce ul.products li.product{width:auto!important;float:none!important;margin:0!important;text-align:left}.woocommerce ul.products li.product a img{aspect-ratio:1/1;object-fit:cover;margin:0 0 1rem;background:var(--peach)}.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:1.25rem;letter-spacing:-.04em;padding:0}.woocommerce ul.products li.product .price{color:var(--ink);margin-top:.6rem}.woocommerce ul.products li.product .button{background:none;color:var(--ink);padding:0;border:0;text-decoration:underline;font-weight:400;border-radius:0}.single-product .woocommerce div.product{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2.5rem,7vw,7rem);align-items:start}.single-product .woocommerce div.product div.images,.single-product .woocommerce div.product div.summary{width:auto;float:none;margin:0}.single-product .woocommerce div.product div.images{grid-row:span 2}.woocommerce div.product div.images .woocommerce-product-gallery__image img{background:var(--peach)}.woocommerce div.product div.images .flex-control-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:.75rem}.woocommerce div.product div.images .flex-control-thumbs li{width:auto;float:none}.woocommerce div.product div.images .flex-control-thumbs img{opacity:.7;aspect-ratio:1;object-fit:cover}.woocommerce div.product div.images .flex-control-thumbs .flex-active{opacity:1;outline:2px solid var(--ink);outline-offset:-2px}.single-product .product_title{font-size:clamp(3rem,6vw,6rem);line-height:.9;letter-spacing:-.095em;margin:.5rem 0 1rem}.single-product .summary>.price{font-size:1.5rem;color:var(--ink);margin-bottom:1.5rem}.single-product .woocommerce-product-details__short-description{font-size:1.1rem;max-width:36rem}.single-product form.cart{display:flex;align-items:center;gap:.75rem;margin:2rem 0}.single-product form.cart .quantity input{min-height:3.25rem;width:4rem;border:1px solid var(--ink);background:var(--cream);text-align:center}.single-product form.cart .button{border-radius:0;min-height:3.25rem}.single-product .variations{border:0;margin:1.5rem 0}.single-product .variations td{padding:.4rem 0}.single-product .variations label{font-weight:700}.single-product .variations select{min-height:2.75rem;padding:.5rem 2rem .5rem .8rem;border:1px solid var(--ink);background:var(--cream);min-width:14rem}.single-product .reset_variations{margin-left:.5rem;font-size:.8rem}.included-note{font-size:.82rem;color:#555;margin:1.5rem 0;padding-top:1.5rem;border-top:1px solid var(--line)}.product-help{padding:1rem 0;border-top:1px solid var(--line);font-size:.9rem}.product-help strong{font-size:1rem}.product-help p{margin:.35rem 0;color:#555}.product-help .text-link{font-size:.9rem}.product-editorial,.product-fit,.product-details{grid-column:1/-1}.product-editorial{margin-top:var(--space)}.product-fit{width:100%;margin-top:var(--space)}.product-details{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,8vw,8rem)}.product-details .faq-list{margin:0}.woocommerce-tabs{display:none}.single-product .related.products{grid-column:1/-1;margin-top:var(--space);border-top:1px solid var(--line);padding-top:var(--space)}.related.products>h2{font-size:clamp(2rem,4vw,3.5rem);letter-spacing:-.07em;margin:0 0 2rem}.single-product .related.products ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}.woocommerce-message,.woocommerce-info,.woocommerce-error{background:var(--lime);border-top:0;padding:1rem 1.25rem;color:var(--ink)}.woocommerce-error{background:#f4c5c1}.woocommerce .quantity .qty{padding:.5rem}.woocommerce a.remove{color:var(--ink)!important}.woocommerce table.shop_table{border-collapse:collapse;border:0}.woocommerce table.shop_table td,.woocommerce table.shop_table th{border-bottom:1px solid var(--line);padding:1rem}.woocommerce-cart .cart_totals,.woocommerce-checkout #customer_details,.woocommerce-checkout #order_review{margin-top:2rem}.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{background:var(--cream);border:1px solid var(--ink);min-height:2.75rem;padding:.6rem}.woocommerce form .form-row textarea{min-height:8rem}.woocommerce #payment{background:var(--ink);color:var(--cream)}.woocommerce #payment div.payment_box{background:#2e302b;color:var(--cream)}.woocommerce #payment div.payment_box::before{border-bottom-color:#2e302b}.woocommerce-checkout h3{font-size:1.5rem}.woocommerce-checkout #place_order{background:var(--lime);color:var(--ink);border:1px solid var(--ink);border-radius:0;padding:1rem 1.4rem;font-weight:800}.woocommerce .button{border-radius:0}
@media (max-width:900px){.hero-grid,.editorial,.gift-section,.story-section,.faq-section,.fit-banner,.product-details{grid-template-columns:1fr}.hero-grid{min-height:0}.hero-copy{padding-block:5rem}.hero-visual{min-height:58vw}.value-strip{grid-template-columns:1fr;gap:1.25rem}.value-strip>div,.value-strip>div:first-child{border-left:0;border-top:1px solid var(--line);padding:1.25rem 0 0}.value-strip>div:first-child{border-top:0;padding-top:0}.fit-steps{margin-top:1rem}.newsletter-inner{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1.3fr 1fr 1fr}.single-product .woocommerce div.product{grid-template-columns:1fr;gap:2.5rem}.single-product .woocommerce div.product div.images{grid-row:auto}.product-editorial,.product-fit,.product-details{grid-column:auto}.product-details{display:grid}.product-fit{width:100%}}
@media (max-width:680px){.header-inner{height:70px}.primary-navigation{display:none;position:absolute;left:0;right:0;top:70px;background:var(--cream);border-bottom:1px solid var(--line);padding:1rem var(--gutter)}.primary-navigation.is-open{display:block}.nav-list{display:grid;gap:1.25rem}.menu-toggle{display:inline-flex;gap:.35rem;margin-left:auto}.cart-link{margin-left:0}.brand{font-size:1.65rem}.hero-copy{padding-block:4rem}.hero h1{font-size:clamp(3.4rem,16vw,5rem)}.hero-description{font-size:1.05rem}.hero-visual{min-height:84vw}.hero-sticker{width:90px;height:90px;font-size:.75rem}.hero-caption{right:.75rem;bottom:.75rem;font-size:.72rem}.section-heading{margin-bottom:2rem}.product-grid,.woocommerce ul.products,.single-product .related.products ul.products{grid-template-columns:1fr}.product-grid{gap:3.5rem}.editorial,.gift-section{gap:2.5rem}.fit-banner{padding:2rem 1.5rem}.fit-steps{grid-template-columns:1fr;gap:1rem}.fit-steps li{border-left:0;border-top:1px solid var(--ink);padding:1rem 0 0}.story-section{gap:2rem}.faq-section>h2{font-size:3.2rem}.newsletter form{width:100%;flex-direction:column}.newsletter input{min-width:0;width:100%}.footer-grid{grid-template-columns:1fr 1fr;gap:2.5rem}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{margin-top:3rem;flex-direction:column;gap:.5rem}.page-main{padding-block:4rem}.single-product .product_title{font-size:clamp(3rem,15vw,5.5rem)}.single-product form.cart{align-items:stretch;flex-wrap:wrap}.single-product form.cart .button{flex:1}.woocommerce div.product div.images .flex-control-thumbs{gap:.5rem}.woocommerce-cart .cart_item{display:grid}.woocommerce-cart .cart_item td{border-bottom:0}.woocommerce-cart .cart_item .product-remove{grid-column:2}.woocommerce-cart .cart_item .product-thumbnail{grid-row:span 3}.woocommerce-cart .cart_item .product-name{grid-column:2}.woocommerce-cart .cart_item .product-price,.woocommerce-cart .cart_item .product-quantity,.woocommerce-cart .cart_item .product-subtotal{grid-column:2}.woocommerce-cart table.shop_table_responsive tr td::before{font-weight:700}.woocommerce-cart table.shop_table_responsive tr td.product-remove::before,.woocommerce-cart table.shop_table_responsive tr td.product-thumbnail::before{display:none}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.product-card__image img{transition:none}}
