/*
Theme Name: Lumi & Koto
Theme URI: https://lumikoto.example
Author: Lumi & Koto
Description: Light, cosy & joyful gifts for little ones. Classic WooCommerce theme.
Version: 1.0.0
Requires at least: 6.4
Requires PHP: 8.0
License: Proprietary
Text Domain: lumi-koto
*/

/* ---------- Fonts (self-hosted, latin subset) ---------- */
@font-face{font-family:"Fredoka";font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/fredoka-500.woff2) format("woff2")}
@font-face{font-family:"Fredoka";font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/fredoka-600.woff2) format("woff2")}
@font-face{font-family:"Fredoka";font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/fredoka-700.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/nunito-400.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/nunito-600.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/nunito-700.woff2) format("woff2")}
@font-face{font-family:"Nunito";font-style:normal;font-weight:800;font-display:swap;src:url(assets/fonts/nunito-800.woff2) format("woff2")}

/* ---------- Tokens (palette.json) ---------- */
:root{
  --sunshine:#FFC83D;--coral:#FF7A8A;--sky:#7CC6F2;--mint:#8FE0C0;--plum:#2B1E4A;--cream:#FFF9EE;--glow:#FFE9A8;
  --muted:#6B5F85;--berry:#B5304B;--forest:#1E7A55;--white:#fff;
  --font-heading:"Fredoka","Baloo 2",ui-rounded,system-ui,sans-serif;
  --font-body:"Nunito",system-ui,sans-serif;
  --radius-card:20px;
  --shadow-soft:0 2px 8px rgba(43,30,74,.08);
  --shadow-card:0 8px 24px rgba(43,30,74,.10);
  --shadow-glow:0 0 24px rgba(255,200,61,.55);
}

/* ---------- Reset (Tailwind preflight equivalent) ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;border:0 solid;border-color:rgba(43,30,74,.2)}
html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;scroll-behavior:smooth;font-family:var(--font-body)}
body{line-height:inherit;background:var(--cream);color:var(--plum);font-family:var(--font-body);display:flex;min-height:100vh;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-family:var(--font-heading);font-weight:600;line-height:1.15}
a{color:inherit;text-decoration:inherit}
b,strong{font-weight:bolder}
small{font-size:80%}
img,svg,video{display:block;max-width:100%;height:auto;vertical-align:middle}
svg{height:auto}
ol,ul,menu{list-style:none}
table{border-collapse:collapse;border-color:inherit;text-indent:0}
button,input,select,textarea{font:inherit;letter-spacing:inherit;color:inherit;background:transparent;border-radius:0}
button,[type=button],[type=submit]{-webkit-appearance:button;appearance:button;cursor:pointer}
textarea{resize:vertical}
address{font-style:normal}
fieldset{min-width:0}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--plum);outline-offset:3px;border-radius:8px}
.screen-reader-text,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{position:absolute;left:12px;top:12px;z-index:60;width:auto;height:auto;margin:0;clip:auto;overflow:visible;padding:.5rem 1rem;border-radius:999px;background:var(--sunshine);color:var(--plum);font-weight:700}

main{flex:1 1 0%}
.container{max-width:72rem;margin-inline:auto;padding-inline:1rem}
.text-muted{color:var(--muted)}
.text-berry{color:var(--berry)}
.text-forest{color:var(--forest)}

/* ---------- Components ---------- */
.btn,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,
.wp-block-button__link,button.single_add_to_cart_button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:999px;padding:.8rem 1.6rem;font-family:var(--font-heading);font-weight:600;font-size:1.05rem;line-height:1.5;color:var(--plum);border:2px solid var(--plum);box-shadow:0 3px 0 var(--plum);transition:transform .15s,box-shadow .15s;cursor:pointer;text-decoration:none;background:var(--coral)}
.btn:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--plum),var(--shadow-glow);color:var(--plum)}
.btn:active,.woocommerce a.button:active,.woocommerce button.button:active{transform:translateY(2px);box-shadow:0 1px 0 var(--plum)}
.btn:disabled,.btn.disabled,.woocommerce button.button:disabled,.woocommerce button.button.disabled{opacity:.6;cursor:not-allowed;transform:none}
.btn-coral{background:var(--coral)}
.btn-sun{background:var(--sunshine)}
.btn-ghost{background:#fff}
.btn-block{width:100%}
.btn-sm{padding:.25rem .75rem}
.card{background:#fff;border-radius:var(--radius-card);box-shadow:var(--shadow-card)}
.input,.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.woocommerce-page form .form-row input.input-text,
.woocommerce-page form .form-row textarea,.woocommerce-page form .form-row select,.woocommerce .input-text,.qty{border:2px solid var(--plum);border-radius:14px;padding:.7rem 1rem;background:#fff;color:var(--plum);width:100%;line-height:1.5;font-size:1rem}
.woocommerce form .form-row select{appearance:auto}
.input::placeholder{color:var(--muted)}
.input:focus,.woocommerce .input-text:focus,.woocommerce select:focus{outline:3px solid var(--sunshine);outline-offset:0;box-shadow:none}
.prose-lk p{margin-bottom:.9rem;line-height:1.7}
.prose-lk ul{list-style:disc;padding-left:1.4rem;margin-bottom:.9rem}
.prose-lk ol{list-style:decimal;padding-left:1.4rem;margin-bottom:.9rem}
.prose-lk li{margin-bottom:.4rem;line-height:1.6}
.prose-lk h2{font-size:1.5rem;margin:1.4rem 0 .6rem}
.prose-lk a{color:var(--berry);text-decoration:underline}
.link-u{color:var(--berry);text-decoration:underline}

@keyframes wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-10px) rotate(8deg)}}
@keyframes twinkle{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(.8)}}
.hover-wiggle:hover{animation:wiggle .5s ease-in-out}
.floaty{animation:floaty 5s ease-in-out infinite}
.twinkle{animation:twinkle 3s ease-in-out infinite}
@media (prefers-reduced-motion:reduce){.hover-wiggle:hover,.floaty,.twinkle{animation:none}html{scroll-behavior:auto}.btn{transition:none}}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:40;border-bottom:2px solid rgba(43,30,74,.1);background:rgba(255,249,238,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.site-header__bar{max-width:72rem;margin-inline:auto;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.site-logo{flex-shrink:0;display:block}
.site-logo img{height:2.5rem;width:auto}
.nav-main{display:none;align-items:center;gap:.25rem}
.nav-main ul{display:flex;align-items:center;gap:.25rem}
.nav-main a{display:block;border-radius:999px;padding:.5rem 1rem;font-weight:700}
.nav-main a:hover{background:rgba(255,200,61,.6)}
.nav-mobile{display:flex;gap:.5rem;overflow-x:auto;padding:0 1rem .75rem;scrollbar-width:none}
.nav-mobile::-webkit-scrollbar{display:none}
.nav-mobile ul{display:flex;gap:.5rem}
.nav-mobile a{display:block;flex-shrink:0;white-space:nowrap;border-radius:999px;border:2px solid var(--plum);background:#fff;padding:.25rem .75rem;font-size:.875rem;line-height:1.25rem;font-weight:700}
.lk-cart{padding:.5rem 1rem!important;background:var(--sunshine)}
.lk-cart svg{width:22px;height:22px}
.lk-cart__count{display:inline-flex;height:1.5rem;min-width:1.5rem;align-items:center;justify-content:center;border-radius:999px;background:var(--plum);padding:0 .375rem;font-size:.875rem;line-height:1.25rem;color:var(--cream)}
@media (min-width:640px){.site-logo img{height:3rem}}
@media (min-width:768px){.nav-main{display:flex}.nav-mobile{display:none}}

/* ---------- Footer ---------- */
.site-footer{margin-top:4rem;background:var(--plum);color:var(--cream)}
.site-footer__grid{max-width:72rem;margin-inline:auto;padding:3rem 1rem;display:grid;gap:2rem}
.site-footer__logo img{height:3rem;width:auto}
.site-footer p.tag{margin-top:.75rem;max-width:20rem}
.site-footer nav{display:flex;flex-direction:column;gap:.5rem}
.site-footer nav ul{display:flex;flex-direction:column;gap:.5rem}
.site-footer h2{font-size:1.125rem;color:var(--sunshine)}
.site-footer a:hover{text-decoration:underline}
.site-footer__copy{border-top:1px solid rgba(255,249,238,.2);padding:1rem;text-align:center;font-size:.875rem;line-height:1.25rem}
@media (min-width:640px){.site-footer__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- Decor ---------- */
.deco{position:absolute}
.hero{position:relative;overflow:hidden;background:rgba(255,233,168,.6)}
.hero__decor{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero__inner{position:relative;max-width:72rem;margin-inline:auto;padding:3rem 1rem;display:grid;align-items:center;gap:2rem}
.hero h1{font-size:2.25rem}
.hero p.lead{margin-top:1rem;max-width:32rem;font-size:1.125rem;line-height:1.75rem}
.hero__cta{margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:.75rem}
.hero__mark{display:flex;justify-content:center}
.hero__mark img{width:14rem;height:14rem;filter:drop-shadow(0 0 30px rgba(255,200,61,.8))}
@media (min-width:640px){.hero h1{font-size:3rem}.hero__mark img{width:18rem;height:18rem}}
@media (min-width:768px){.hero__inner{grid-template-columns:repeat(2,minmax(0,1fr));padding-block:5rem}}
@media (min-width:1024px){.hero h1{font-size:3.75rem}}
.d-sm{display:none}
@media (min-width:640px){.d-sm{display:block}}

.section{max-width:72rem;margin-inline:auto;padding:3.5rem 1rem 0}
.section h2.h-lg{font-size:1.875rem}
.grid-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem}
@media (min-width:1024px){.grid-products{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem}
@media (min-width:1024px){.tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tile{position:relative;display:flex;height:100%;min-height:9rem;flex-direction:column;justify-content:space-between;overflow:hidden;border-radius:20px;padding:1rem;box-shadow:var(--shadow-card);transition:box-shadow .15s}
.tile:hover{box-shadow:0 0 24px rgba(255,200,61,.7)}
.tile svg{position:absolute;right:.75rem;top:.75rem;opacity:.8}
.tile h3{font-size:1.25rem;padding-right:1.5rem}
.tile p{font-size:.875rem;line-height:1.25rem;font-weight:600}
@media (min-width:640px){.tile h3{font-size:1.5rem}}
.bg-sky{background:var(--sky)}.bg-sunshine{background:var(--sunshine)}.bg-coral{background:var(--coral)}.bg-mint{background:var(--mint)}
.featured-head{display:flex;align-items:center;gap:.5rem}
.center-cta{margin-top:2rem;text-align:center}
.why{max-width:72rem;margin:3.5rem auto 0;padding-inline:1rem}
.why__box{border-radius:28px;background:#fff;padding:1.5rem;box-shadow:var(--shadow-card)}
.why ul{margin-top:1.5rem;display:grid;gap:1.25rem}
.why li{display:flex;gap:.75rem}
.why .ico{margin-top:.25rem;display:inline-flex;height:2.5rem;width:2.5rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:999px}
.why h3{font-size:1.25rem}
.why li p{margin-top:.25rem;color:var(--muted)}
@media (min-width:640px){.why__box{padding:2.5rem}}
@media (min-width:768px){.why ul{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- Page wrappers ---------- */
.page-wrap{max-width:72rem;margin-inline:auto;padding:2.5rem 1rem}
.page-wrap--narrow{max-width:48rem}
.page-wrap--mid{max-width:64rem}
.page-wrap h1.page-title{font-size:2.25rem;line-height:1.15}
.page-sub{margin-top:.5rem;color:var(--muted)}

/* ---------- Product card ---------- */
.product-card{display:block;height:100%;border-radius:20px}
.product-card article{display:flex;height:100%;flex-direction:column;overflow:hidden;transition:box-shadow .15s}
.product-card:hover{animation:wiggle .5s ease-in-out}
.product-card:hover article{box-shadow:0 8px 30px rgba(255,200,61,.45)}
.product-card__img{position:relative;aspect-ratio:1/1;overflow:hidden;background:rgba(255,233,168,.4);transition:box-shadow .15s}
.product-card:hover .product-card__img{box-shadow:var(--shadow-glow)}
.product-card__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:.75rem}
.product-card__body{display:flex;flex:1 1 0%;flex-direction:column;gap:.25rem;padding:1rem}
.product-card__brand{font-size:.75rem;line-height:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.025em;color:var(--muted)}
.product-card__title{font-size:1.125rem;line-height:1.15}
.product-card__price{margin-top:auto;padding-top:.5rem;font-size:1.125rem;line-height:1.75rem;font-weight:800}
.product-card__price .woocommerce-Price-amount{font-weight:800}
.vat{margin-left:.25rem;font-size:.75rem;line-height:1rem;font-weight:600;color:var(--muted)}
.product-card__price del{font-weight:600;color:var(--muted);margin-right:.25rem}
.product-card__price ins{text-decoration:none}
ul.products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.5rem}
@media (min-width:1024px){ul.products{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* ---------- Single product ---------- */
.breadcrumb{margin-bottom:1rem;font-size:.875rem;line-height:1.25rem;color:var(--muted)}
.breadcrumb a{text-decoration:underline}
.pdp{display:grid;gap:2rem}
.pdp-gallery__main{position:relative;aspect-ratio:1/1;overflow:hidden;background:#fff}
.pdp-gallery__main img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:1rem}
.pdp-gallery__thumbs{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem}
.pdp-gallery__thumbs button{position:relative;display:block;height:4rem;width:4rem;overflow:hidden;border-radius:14px;border:2px solid rgba(43,30,74,.2);background:#fff}
.pdp-gallery__thumbs button[aria-pressed=true]{border-color:var(--plum);box-shadow:0 0 14px rgba(255,200,61,.8)}
.pdp-gallery__thumbs img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:.25rem}
@media (min-width:640px){.pdp-gallery__thumbs button{height:5rem;width:5rem}}
.pdp__brand{font-size:.875rem;line-height:1.25rem;font-weight:700;text-transform:uppercase;letter-spacing:.025em;color:var(--muted)}
.pdp h1.product_title{margin-top:.25rem;font-size:1.875rem;line-height:1.15}
.pdp__price{margin-top:1.5rem;font-size:1.875rem;line-height:2.25rem;font-weight:800}
.pdp__price .woocommerce-Price-amount{font-weight:800}
.pdp__price del{font-size:1.25rem;font-weight:600;color:var(--muted)}
.pdp__price ins{text-decoration:none}
.pdp__price .vat{margin-left:.5rem;font-size:.875rem;line-height:1.25rem}
.pdp-buy{margin-top:1rem;display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem}
.pdp-buy label.lbl,.lbl{display:block;margin-bottom:.25rem;font-weight:700}
.qty-wrap{display:flex;align-items:center;gap:.25rem}
.qty-wrap .qty-btn{padding:.5rem 1rem}
.qty-wrap input.qty{width:4rem;text-align:center;-moz-appearance:textfield}
.qty-wrap input.qty::-webkit-outer-spin-button,.qty-wrap input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qty-wrap--sm .qty-btn{padding:.25rem .75rem}
.qty-wrap--sm input.qty{width:3rem;padding:.35rem .25rem}
.pdp-buy .stock{font-weight:700;color:var(--berry)}
.pdp h2.h-md{font-size:1.5rem}
.highlights{margin-top:calc(2rem + 36px)}
.highlights ul{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}
.highlights li{display:flex;gap:.5rem}
.highlights li::before{content:"";flex-shrink:0;margin-top:.25rem;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1c.8 6.2 4.8 10.2 11 11-6.2.8-10.2 4.8-11 11-.8-6.2-4.8-10.2-11-11C7.2 11.2 11.2 7.2 12 1z' fill='%23FFC83D'/%3E%3C/svg%3E") center/contain no-repeat}
.pdp-lower{margin-top:3rem;display:grid;gap:2rem}
.pdp-lower .card{padding:1.5rem}
.pdp-lower h2{margin-bottom:.75rem;font-size:1.5rem}
.specs{width:100%;text-align:left}
.specs tr{border-bottom:1px solid rgba(43,30,74,.1)}
.specs tr:last-child{border-bottom:0}
.specs th{padding:.5rem .75rem .5rem 0;vertical-align:top;font-weight:700}
.specs td{padding:.5rem 0}
.specs p{margin:0}
.related{margin-top:3.5rem}
@media (min-width:1024px){.pdp{grid-template-columns:repeat(2,minmax(0,1fr))}.pdp-lower{grid-template-columns:3fr 2fr}.pdp-lower .card.specs-card{height:fit-content}}
@media (min-width:640px){.pdp h1.product_title{font-size:2.25rem}}

/* ---------- Notices ---------- */
.woocommerce-notices-wrapper{margin-bottom:0}
.woocommerce-message,.woocommerce-info,.woocommerce-error{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 1rem;padding:.9rem 1.2rem;border-radius:14px;font-weight:700;list-style:none}
.woocommerce-message{background:var(--mint);border:2px solid var(--plum)}
.woocommerce-info{background:var(--glow);border:2px solid var(--plum)}
.woocommerce-error{background:rgba(181,48,75,.1);border:2px solid var(--berry);color:var(--berry);flex-direction:column;align-items:flex-start;gap:.35rem}
.woocommerce-message a.button{order:2;margin-left:auto;padding:.3rem 1rem;font-size:.95rem}
.woocommerce-message a:not(.button),.woocommerce-info a:not(.button){text-decoration:underline}
.woocommerce-error a{text-decoration:underline}
.lk-notices{width:100%;max-width:72rem;margin-inline:auto;padding:1.25rem 1rem 0}
.lk-notices:empty{display:none}
.lk-notices .woocommerce-notices-wrapper>*:last-child{margin-bottom:0}

/* ---------- Cart ---------- */
.cart-grid{margin-top:1.5rem;display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}
.cart-list{display:flex;flex-direction:column;gap:1rem}
.cart-item{display:flex;gap:1rem;padding:1rem}
.cart-item__img{position:relative;display:block;height:6rem;width:6rem;flex-shrink:0;overflow:hidden;border-radius:14px;background:rgba(255,233,168,.4)}
.cart-item__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:.25rem}
.cart-item__main{display:flex;flex:1 1 0%;flex-direction:column;gap:.5rem;min-width:0}
.cart-item__top{display:flex;justify-content:space-between;gap:.5rem}
.cart-item__name{font-family:var(--font-heading);font-size:1.125rem;font-weight:600}
.cart-item__meta{font-size:.875rem;line-height:1.25rem;color:var(--muted)}
.cart-item__total{font-weight:800}
.cart-item__row{margin-top:auto;display:flex;align-items:center;gap:.5rem}
.cart-item__row .remove-link{margin-left:auto;color:var(--berry);text-decoration:underline}
.cart-summary{height:fit-content;padding:1.5rem}
.cart-summary h2{font-size:1.5rem}
.cart-summary dl{margin-top:1rem;display:flex;justify-content:space-between;font-size:1.125rem;line-height:1.75rem}
.cart-summary dd{font-weight:800}
.cart-summary dt small{font-size:.875rem;font-weight:400;color:var(--muted)}
.cart-summary .note{margin-top:.5rem;font-size:.875rem;line-height:1.25rem;color:var(--muted)}
.cart-summary .btn{margin-top:1.25rem;width:100%}
.cart-empty{margin-top:1.5rem;padding:2rem;text-align:center}
.cart-empty p{font-size:1.25rem;line-height:1.75rem}
.cart-empty .btn{margin-top:1rem}
.cart-update{position:absolute;left:-9999px}
@media (min-width:1024px){.cart-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}

/* ---------- Checkout ---------- */
.checkout-grid{margin-top:1.5rem;display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}
.checkout-steps{display:flex;flex-direction:column;gap:1.25rem}
.step{padding:1.5rem}
.step__head{display:flex;align-items:center;gap:.75rem}
.step__num{display:flex;height:2.25rem;width:2.25rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:999px;border:2px solid var(--plum);background:var(--sunshine);font-family:var(--font-heading);font-size:1.125rem;line-height:1.75rem;font-weight:600}
.step__head h2{font-size:1.5rem}
.step__body{margin-top:1rem}
.checkout-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem}
.checkout .form-row{margin:0;padding:0;display:block;width:100%;float:none}
.checkout .form-row label{display:block;margin-bottom:.25rem;font-weight:700}
.checkout .form-row .required{color:var(--berry);text-decoration:none;border:0}
.checkout .form-row .optional{font-weight:400;color:var(--muted)}
.checkout .form-row.woocommerce-invalid input.input-text{border-color:var(--berry)}
.checkout .form-row.woocommerce-invalid label{color:var(--berry)}
.checkout .form-row strong{display:block;border:2px solid var(--plum);border-radius:14px;background:var(--cream);padding:.7rem 1rem;font-weight:400}
.checkout .field-note,.step__note{margin-top:.25rem;font-size:.875rem;line-height:1.25rem;color:var(--muted)}
.checkout .woocommerce-input-wrapper{display:block}
.checkout .form-row .description{font-size:.875rem;color:var(--muted)}
.field-error,.woocommerce-checkout .checkout-inline-error-message{margin-top:.25rem;font-size:.875rem;font-weight:600;color:var(--berry)}
.shipping-options{display:flex;flex-direction:column;gap:.75rem}
.shipping-option{display:flex;cursor:pointer;align-items:center;gap:.75rem;border-radius:14px;border:2px solid var(--plum);background:#fff;padding:1rem}
.shipping-option:has(input:checked){background:var(--glow)}
.shipping-option input{height:1.25rem;width:1.25rem;accent-color:var(--plum)}
.shipping-option .name{flex:1 1 0%;font-weight:700}
.shipping-option .price{font-weight:800}
.checkout-sticky{display:block}
.order-summary{height:fit-content;padding:1.5rem}
.order-summary h2{font-size:1.5rem}
.order-summary ul.items{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}
.order-summary li.item{display:flex;align-items:center;gap:.75rem}
.order-summary .thumb{position:relative;display:block;height:3.5rem;width:3.5rem;flex-shrink:0;border-radius:12px;background:rgba(255,233,168,.4)}
.order-summary .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:.25rem;border-radius:12px}
.order-summary .thumb .q{position:absolute;right:0;top:0;border-radius:999px;background:var(--plum);padding:0 .375rem;font-size:.75rem;line-height:1rem;font-weight:700;color:var(--cream)}
.order-summary .nm{flex:1 1 0%;font-size:.875rem;line-height:1.375}
.order-summary .lt{font-weight:700}
.order-summary dl{margin-top:1rem;display:flex;flex-direction:column;gap:.5rem;border-top:1px solid rgba(43,30,74,.1);padding-top:.75rem}
.order-summary dl>div{display:flex;justify-content:space-between}
.order-summary dl>div.total{border-top:1px solid rgba(43,30,74,.1);padding-top:.5rem;font-size:1.25rem;line-height:1.75rem;font-weight:800}
.order-summary dl>div.vat-row{font-size:.875rem;line-height:1.25rem;color:var(--muted)}
.order-summary .edit{margin-top:1rem;display:inline-block;color:var(--berry);text-decoration:underline}
.pay-methods{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}
.pay-methods li.wc_payment_method{border-radius:14px;border:2px solid var(--muted);background:#fff;padding:.9rem 1rem}
.pay-methods li.wc_payment_method:has(input[type=radio]:checked){border-color:var(--plum);background:var(--glow)}
.pay-methods li.wc_payment_method>label{font-weight:700;display:inline}
.pay-methods li.wc_payment_method>input[type=radio]{margin-right:.5rem;accent-color:var(--plum)}
.pay-methods .payment_box{margin-top:.75rem;border-radius:14px;background:#fff;padding:.75rem;font-size:.95rem}
.pay-methods .payment_box p{margin-bottom:.5rem}
.pay-methods .payment_box fieldset{border:0}
.pay-methods .payment_box label{font-weight:700}
.pay-methods .payment_box input[type=text],.pay-methods .payment_box input[type=tel],.pay-methods .payment_box .wc-stripe-elements-field,.pay-methods .payment_box .StripeElement{border:2px solid var(--plum);border-radius:14px;background:#fff;padding:.7rem 1rem;width:100%}
.pay-methods .payment_box .StripeElement--focus{outline:3px solid var(--sunshine)}
.pay-methods .payment_box .StripeElement--invalid{border-color:var(--berry)}
.pay-methods .payment_box .wc-stripe-upe-element,.pay-methods .payment_box .wc-stripe-upe-form{border:0;padding:0}
.place-order{margin-top:1rem}
.place-order .btn{width:100%;font-size:1.125rem}
.place-order .terms,.place-order .woocommerce-privacy-policy-text{margin-bottom:.75rem;font-size:.875rem;line-height:1.25rem;color:var(--muted)}
.place-order .woocommerce-privacy-policy-text a,.place-order .woocommerce-terms-and-conditions-wrapper a{color:var(--berry);text-decoration:underline}
.secure-note{margin-top:.75rem;text-align:center;font-size:.875rem;line-height:1.25rem;color:var(--muted)}
.checkout input[type=checkbox]{accent-color:var(--plum);height:1rem;width:1rem}
.woocommerce-checkout .blockUI.blockOverlay{background:rgba(255,249,238,.7)!important}
.woocommerce form.checkout_coupon,.woocommerce-form-coupon-toggle{display:none}
@media (min-width:640px){.step{padding:2rem}.checkout-fields.two{grid-template-columns:repeat(2,minmax(0,1fr))}.checkout-fields .span2{grid-column:span 2/span 2}}
@media (min-width:1024px){.checkout-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.checkout-sticky{position:sticky;top:6rem;align-self:start}}

/* ---------- Thank you ---------- */
.ty{max-width:64rem;margin-inline:auto;padding:2.5rem 1rem}
.ty__hero{position:relative;overflow:hidden;padding:1.5rem}
.ty__hero svg{position:absolute;right:1.25rem;top:1.25rem}
.ty__hero h1{font-size:2.25rem;line-height:1.15}
.ty__hero .num{margin-top:.75rem;font-size:1.25rem;line-height:1.75rem}
.ty__hero .keep{margin-top:.25rem;color:var(--muted)}
.ty__grid{margin-top:1.5rem;display:grid;gap:1.5rem}
.ty__ship{padding:1.5rem}
.ty__ship h2{font-size:1.5rem}
.ty__ship address{margin-top:.75rem}
.ty__ship p{margin-top:.75rem}
.ty__ship .btn{margin-top:1.5rem}
@media (min-width:640px){.ty__hero{padding:2rem}}
@media (min-width:1024px){.ty__grid{grid-template-columns:3fr 2fr}}

/* ---------- Account ---------- */
.woocommerce-MyAccount-navigation ul{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.woocommerce-MyAccount-navigation a{display:block;border-radius:999px;border:2px solid var(--plum);background:#fff;padding:.25rem .9rem;font-weight:700}
.woocommerce-MyAccount-navigation .is-active a{background:var(--sunshine)}
.woocommerce-MyAccount-content,.woocommerce-form-login,.woocommerce-form-register,.u-columns .u-column1,.u-columns .u-column2,.woocommerce-order-details{background:#fff;border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:1.5rem}
.woocommerce-form-login,.woocommerce-form-register{max-width:28rem}
.woocommerce-form-login .form-row,.woocommerce-form-register .form-row{margin-bottom:.9rem}
.woocommerce-form-login label,.woocommerce-form-register label{display:block;margin-bottom:.25rem;font-weight:700}
.woocommerce-MyAccount-content a:not(.button){color:var(--berry);text-decoration:underline}
.woocommerce table.shop_table{width:100%;text-align:left}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{padding:.6rem .5rem .6rem 0;border-bottom:1px solid rgba(43,30,74,.1);vertical-align:top}
.woocommerce-LostPassword a{color:var(--berry);text-decoration:underline}
.u-columns{display:grid;gap:1.5rem}
@media (min-width:768px){.u-columns{grid-template-columns:repeat(2,minmax(0,1fr))}}
.woocommerce-account .woocommerce{display:block}

/* ---------- 404 ---------- */
.nf{max-width:36rem;margin-inline:auto;padding:5rem 1rem;text-align:center}
.nf svg{margin-inline:auto}
.nf h1{margin-top:1rem;font-size:2.25rem}
.nf p{margin-top:.75rem}
.nf .btn{margin-top:1.5rem}
.pagination{margin-top:2rem;display:flex;justify-content:center;gap:.5rem}
.pagination .page-numbers{display:inline-block;border-radius:999px;border:2px solid var(--plum);background:#fff;padding:.25rem .9rem;font-weight:700}
.pagination .current{background:var(--sunshine)}

/* WooCommerce defaults we do not use */
.woocommerce-breadcrumb,.woocommerce-result-count,.woocommerce-ordering,.onsale{display:none}
.wc-upe-form,.wc-payment-form{position:relative;overflow-x:clip}
#wc-stripe-hidden-style-input{max-width:100%}
.woocommerce-account .woocommerce h2,.woocommerce-MyAccount-content h2{font-size:1.5rem;margin:0 0 .75rem}
.woocommerce-account .woocommerce>h2{margin-top:1rem}
