/*
Theme Name: HappyUnpacking
Author: Happy Unpacking
Version: 1.1
Description: Lightweight kawaii WooCommerce theme (fast, no builders).
Text Domain: happyunpacking
*/

:root{
  --bg: #fff5fa;
  --card: #ffffff;
  --ink: #2b2b2b;
  --muted: #6b6b6b;
  --pink: #ff6fa6;
  --pink2:#ffe3ef;
  --blue:#6ec6ff;
  --line:#f2d7e5;
  --shadow: 0 10px 30px rgba(40, 20, 30, .08);
  --radius: 22px;
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; }
body{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background: radial-gradient(1200px 600px at 30% 0%, #ffeaf4 0%, transparent 60%),
              radial-gradient(1000px 600px at 80% 10%, #e8f6ff 0%, transparent 55%),
              var(--bg);
  color: var(--ink);
}

a{ color: inherit; text-decoration:none; }
a:hover{ text-decoration: underline; }

.container{
  width:min(1200px, calc(100% - 32px));
  margin-inline:auto;
}

.site-header{
  position: sticky;
  top:0;
  z-index:50;
  background: rgba(255,255,255,.82);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(0,0,0,.04);
}

.header-inner{
  display:flex;
  align-items:center;
  gap:16px;
  padding:14px 0;
}

.site-brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width: 220px;
}
.site-brand img{
  display:block;
  height:46px;
  width:auto;
}

.header-actions{
  display:flex;
  align-items:center;
  gap:14px;
  margin-left:auto;
}

.header-actions a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-radius: 999px;
  background: rgba(255,111,166,.08);
  border: 1px solid rgba(255,111,166,.18);
  font-weight: 600;
  color: #b62b61;
}

.header-actions a:hover{
  background: rgba(255,111,166,.14);
  text-decoration:none;
}

.header-search{
  flex: 1 1 auto;
  display:flex;
  align-items:center;
  max-width: 520px;
}
.header-search form{
  width:100%;
  display:flex;
  gap:10px;
  align-items:center;
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 999px;
  padding: 8px 10px;
  box-shadow: 0 8px 24px rgba(40,20,30,.06);
}
.header-search input[type="search"]{
  border:0;
  outline:none;
  width:100%;
  font-size:14px;
  padding: 6px 10px;
  background: transparent;
}
.header-search button{
  border:0;
  background: linear-gradient(135deg, var(--pink), #ff9ac1);
  color:#fff;
  border-radius: 999px;
  padding: 10px 14px;
  cursor:pointer;
  font-weight: 700;
}

.hero{
  margin-top: 22px;
  border-radius: calc(var(--radius) + 10px);
  background: linear-gradient(135deg, #ffe3ef 0%, #eaf7ff 60%, #fff 100%);
  box-shadow: var(--shadow);
  border: 1px solid rgba(255,255,255,.6);
  overflow:hidden;
}

.hero-inner{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap: 16px;
  padding: 28px;
  align-items:center;
}

.hero h1{
  margin: 0 0 10px 0;
  font-size: clamp(28px, 3.2vw, 44px);
  letter-spacing: -.02em;
}
.hero p{
  margin: 0 0 18px 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.5;
}
.hero-cta{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 800;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 24px rgba(40,20,30,.08);
}
.btn-primary{
  background: linear-gradient(135deg, var(--pink), #ff9ac1);
  color:#fff;
}
.btn-secondary{
  background: #fff;
  color:#b62b61;
}
.btn:hover{ text-decoration:none; transform: translateY(-1px); }

.hero-art{
  justify-self:end;
  width:min(380px, 100%);
  aspect-ratio: 4/3;
  border-radius: 22px;
  background: radial-gradient(140px 140px at 30% 30%, rgba(255,111,166,.35), transparent 60%),
              radial-gradient(140px 140px at 70% 50%, rgba(110,198,255,.35), transparent 60%),
              rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.85);
}

.trust-row{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 16px 0 0 0;
}

.trust-item{
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 18px;
  padding: 12px 14px;
  display:flex;
  gap:10px;
  align-items:center;
  box-shadow: 0 8px 24px rgba(40,20,30,.06);
}
.trust-item strong{ display:block; font-size:14px; }
.trust-item span{ display:block; color: var(--muted); font-size:13px; }

.home-main{
  margin: 18px 0 34px 0;
  display:grid;
  grid-template-columns: 260px 1fr;
  gap: 18px;
  align-items:start;
}

.cat-menu{
  position: sticky;
  top: 84px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(0,0,0,.05);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 14px;
}
.cat-menu h2{
  margin: 6px 6px 12px 6px;
  font-size: 16px;
}
.cat-menu ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.cat-menu a{
  display:flex;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(255,111,166,.06);
  border: 1px solid rgba(255,111,166,.14);
  font-weight: 700;
  color:#b62b61;
}
.cat-menu a:hover{
  background: rgba(255,111,166,.12);
  text-decoration:none;
}

.products-wrap{
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.75);
  border-radius: calc(var(--radius) + 6px);
  box-shadow: var(--shadow);
  padding: 16px;
}

/* WooCommerce product grid – force 5 per row on desktop */
.woocommerce ul.products{
  display:grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px !important;
  margin: 0 !important;
}
.woocommerce ul.products li.product{
  width:auto !important;
  margin: 0 !important;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 20px;
  padding: 12px;
  box-shadow: 0 8px 24px rgba(40,20,30,.06);
  transition: transform .15s ease, box-shadow .15s ease;
}
.woocommerce ul.products li.product:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 34px rgba(40,20,30,.10);
}
.woocommerce ul.products li.product a img{
  border-radius: 16px;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-size: 14px;
  margin: 10px 0 6px 0 !important;
}
.woocommerce ul.products li.product .price{
  color: #b62b61;
  font-weight: 900;
}
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button{
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--pink), #ff9ac1) !important;
  color: #fff !important;
  font-weight: 900 !important;
  border: 0 !important;
  padding: 12px 14px !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover{
  filter: brightness(1.02);
}

.site-footer{
  margin-top: 40px;
  padding: 26px 0;
  color: var(--muted);
  text-align:center;
}

/* Responsive */
@media (max-width: 1100px){
  .woocommerce ul.products{ grid-template-columns: repeat(4, 1fr) !important; }
}
@media (max-width: 900px){
  .hero-inner{ grid-template-columns: 1fr; }
  .hero-art{ justify-self:stretch; }
  .trust-row{ grid-template-columns: repeat(2, 1fr); }
  .home-main{ grid-template-columns: 1fr; }
  .cat-menu{ position: relative; top:auto; }
  .woocommerce ul.products{ grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 560px){
  .header-inner{ flex-wrap:wrap; }
  .site-brand{ min-width:auto; }
  .header-search{ order: 3; width:100%; max-width:none; }
  .woocommerce ul.products{ grid-template-columns: repeat(2, 1fr) !important; }
}


/* Footer */
.site-footer{
  margin-top: 46px;
  padding: 34px 0 22px 0;
  background: rgba(255,255,255,.78);
  border-top: 1px solid rgba(0,0,0,.05);
  text-align: left;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1fr 1fr 1.2fr;
  gap: 18px;
  padding: 16px;
  border-radius: calc(var(--radius) + 6px);
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(255,255,255,.8);
  box-shadow: 0 10px 30px rgba(40, 20, 30, .06);
}
.footer-col h3{
  margin: 6px 0 12px 0;
  font-size: 15px;
  letter-spacing: -.01em;
}
.footer-col ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.footer-col a{
  color: #b62b61;
  font-weight: 700;
  text-decoration:none;
}
.footer-col a:hover{ text-decoration: underline; }
.footer-brand-title{
  font-weight: 1000;
  font-size: 18px;
  color: var(--ink);
  margin-bottom: 6px;
}
.footer-brand-tagline{
  color: var(--muted);
  font-weight: 800;
  margin-bottom: 12px;
}
.footer-meta{
  color: var(--muted);
  font-weight: 700;
  display:flex;
  flex-direction:column;
  gap: 6px;
}
.footer-bottom{
  text-align:center;
  color: var(--muted);
  margin-top: 14px;
}
@media (max-width: 900px){
  .footer-grid{ grid-template-columns: 1fr; }
}


/* Global layout: category menu left on all pages */
.site-layout{
  display:grid;
  grid-template-columns: 260px 1fr;
  gap: 18px;
  align-items:start;
  margin-top: 18px;
}
.content-wrap{
  background: rgba(255,255,255,.65);
  border: 1px solid rgba(255,255,255,.75);
  border-radius: calc(var(--radius) + 6px);
  box-shadow: var(--shadow);
  padding: 16px;
  overflow:hidden;
}
@media (max-width: 900px){
  .site-layout{ grid-template-columns: 1fr; }
}


/* Hero image tweaks (Customizer) */
.hero{
  position: relative;
}
.hero-inner{
  position: relative;
}
.hero-art{
  position: relative;
  justify-self:end;
  width:min(460px, 100%);
  aspect-ratio: 4/3;
  border-radius: 26px;
  /* Default fallback if no image is set */
  background:
    radial-gradient(140px 140px at 30% 30%, rgba(255,111,166,.35), transparent 60%),
    radial-gradient(140px 140px at 70% 50%, rgba(110,198,255,.35), transparent 60%),
    rgba(255,255,255,.70);
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(255,255,255,.85);
  box-shadow: 0 22px 55px rgba(40,20,30,.16);
  transform: translateY(10px); /* subtle overlap */
  overflow: hidden;
}
.hero-art[style*="background-image"]{
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}
.hero-art::before{
  content:"";
  position:absolute;
  inset:-18px;
  border-radius: 34px;
  background:
    radial-gradient(220px 180px at 25% 30%, rgba(255,111,166,.28), transparent 65%),
    radial-gradient(240px 200px at 70% 55%, rgba(110,198,255,.26), transparent 65%);
  filter: blur(6px);
  z-index:-1;
}
.hero-art--sparkles::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius: 26px;
  pointer-events:none;
  background:
    radial-gradient(2px 2px at 18% 22%, rgba(255,255,255,.95), transparent 60%),
    radial-gradient(2px 2px at 30% 48%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(2px 2px at 62% 18%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(2px 2px at 78% 36%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(2px 2px at 70% 72%, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(2px 2px at 40% 78%, rgba(255,255,255,.85), transparent 60%);
  opacity: .9;
  mix-blend-mode: screen;
}
@media (max-width: 900px){
  .hero-art{ transform: none; width:min(520px, 100%); }
}


/* Fix: WooCommerce adds ::before/::after clearing elements that become empty grid items */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after{
  content: none !important;
  display: none !important;
}


/* WooCommerce ordering dropdown + result count (kawaii style) */
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering{
  margin: 0 0 14px 0 !important;
  float: none !important;
}
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count{
  float: none !important;
  margin: 0 0 10px 0 !important;
  color: var(--muted);
  font-weight: 700;
}
.woocommerce .woocommerce-ordering select,
.woocommerce-page .woocommerce-ordering select{
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border-radius: 999px;
  padding: 12px 44px 12px 16px;
  border: 1px solid rgba(255,111,166,.22);
  background:
    radial-gradient(14px 14px at 18px 50%, rgba(255,111,166,.14), transparent 60%),
    radial-gradient(14px 14px at 34px 50%, rgba(110,198,255,.14), transparent 60%),
    rgba(255,255,255,.92);
  box-shadow: 0 10px 26px rgba(40,20,30,.08);
  font-weight: 800;
  color: #b62b61;
  cursor: pointer;
  outline: none;
}
.woocommerce .woocommerce-ordering{
  position: relative;
  display: inline-block;
}
.woocommerce .woocommerce-ordering::after{
  content: "▾";
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: #b62b61;
  font-weight: 900;
  pointer-events: none;
}

/* Notices / messages (info, success, error) */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error,
.woocommerce .woocommerce-notice{
  border: 0 !important;
  border-radius: 22px !important;
  padding: 14px 16px !important;
  margin: 0 0 14px 0 !important;
  box-shadow: 0 12px 30px rgba(40,20,30,.10);
  background: rgba(255,255,255,.92) !important;
  color: var(--ink) !important;
  font-weight: 700;
}
/* left accent bar */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error{
  position: relative;
  overflow: hidden;
}
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width: 10px;
  background: linear-gradient(180deg, rgba(255,111,166,.95), rgba(110,198,255,.75));
}

/* specific tones */
.woocommerce .woocommerce-message{ }
.woocommerce .woocommerce-info{ }
.woocommerce .woocommerce-error{
  background: rgba(255,240,245,.96) !important;
}

/* "no products found" / archive notice text */
.woocommerce .woocommerce-info.woocommerce-no-products-found,
.woocommerce .woocommerce-info.no-products-found{
  background: rgba(255,255,255,.92) !important;
}

/* Make notice links look like buttons when Woo outputs a.button inside notices */
.woocommerce .woocommerce-message a.button,
.woocommerce .woocommerce-info a.button{
  margin-left: 10px;
  box-shadow: 0 10px 24px rgba(40,20,30,.10) !important;
}


/* Hero: less boring, subtle kawaii decor (not too busy) */
.hero-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.85);
  border: 1px solid rgba(255,111,166,.20);
  color: #b62b61;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(40,20,30,.08);
  margin-bottom: 10px;
  width: fit-content;
}

.hero--decor .hero-inner > div:first-child{
  position: relative;
  padding: 6px 6px 6px 0;
}
.hero--decor .hero-inner > div:first-child::before{
  content:"";
  position:absolute;
  left:-18px;
  top:-18px;
  width: 190px;
  height: 140px;
  background:
    radial-gradient(90px 70px at 40% 45%, rgba(255,111,166,.18), transparent 70%),
    radial-gradient(110px 80px at 70% 55%, rgba(110,198,255,.16), transparent 72%);
  filter: blur(2px);
  border-radius: 40px;
  transform: rotate(-6deg);
  pointer-events:none;
}
.hero--decor .hero-inner > div:first-child::after{
  content:"";
  position:absolute;
  right: 10px;
  top: 10px;
  width: 120px;
  height: 120px;
  background:
    radial-gradient(2px 2px at 20% 25%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(2px 2px at 55% 20%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(2px 2px at 78% 45%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(2px 2px at 40% 70%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(2px 2px at 65% 78%, rgba(255,255,255,.9), transparent 60%);
  opacity: .7;
  pointer-events:none;
}

.trust-ico{
  width: 34px;
  height: 34px;
  display:grid;
  place-items:center;
  border-radius: 14px;
  background: rgba(255,111,166,.10);
  border: 1px solid rgba(255,111,166,.16);
  box-shadow: 0 10px 22px rgba(40,20,30,.06);
  font-size: 18px;
}

/* Footer menus */
.footer-menu{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.footer-menu a{
  color: #b62b61;
  font-weight: 700;
  text-decoration:none;
}
.footer-menu a:hover{ text-decoration: underline; }


/* Contact page layout + form styling */
.contact-layout{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 16px;
  align-items:start;
}
.contact-card{
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(0,0,0,.05);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 10px 28px rgba(40,20,30,.08);
}
.contact-card--text h2, .contact-card--text h3{ margin-top: 0; }

/* Nice inputs (works for many form plugins) */
.content-wrap form input[type="text"],
.content-wrap form input[type="email"],
.content-wrap form input[type="tel"],
.content-wrap form input[type="url"],
.content-wrap form input[type="number"],
.content-wrap form input[type="search"],
.content-wrap form input[type="password"],
.content-wrap form select,
.content-wrap form textarea{
  width: 100%;
  max-width: 100%;
  border-radius: 18px;
  border: 1px solid rgba(255,111,166,.22);
  background: rgba(255,255,255,.95);
  padding: 12px 14px;
  font-weight: 700;
  outline: none;
  box-shadow: 0 10px 22px rgba(40,20,30,.06);
}
.content-wrap form textarea{ min-height: 140px; resize: vertical; }

.content-wrap form input:focus,
.content-wrap form select:focus,
.content-wrap form textarea:focus{
  border-color: rgba(255,111,166,.45);
  box-shadow: 0 12px 26px rgba(255,111,166,.12);
}

.content-wrap form label{
  font-weight: 900;
  color: #b62b61;
  display:block;
  margin: 10px 0 8px 0;
}

/* Submit buttons */
.content-wrap form input[type="submit"],
.content-wrap form button[type="submit"],
.content-wrap form button,
.wpcf7-submit{
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--pink), #ff9ac1) !important;
  color: #fff !important;
  font-weight: 1000 !important;
  border: 0 !important;
  padding: 12px 18px !important;
  cursor: pointer;
  box-shadow: 0 14px 34px rgba(40,20,30,.12);
}
.content-wrap form input[type="submit"]:hover,
.content-wrap form button[type="submit"]:hover,
.wpcf7-submit:hover{
  filter: brightness(1.02);
  transform: translateY(-1px);
}

/* Contact Form 7 messages */
.wpcf7 form .wpcf7-response-output{
  border: 0;
  border-radius: 18px;
  padding: 12px 14px;
  margin: 14px 0 0 0;
  background: rgba(255,255,255,.92);
  box-shadow: 0 10px 24px rgba(40,20,30,.08);
  font-weight: 700;
}
.wpcf7-not-valid-tip{ color: #b62b61; font-weight: 800; }

@media (max-width: 900px){
  .contact-layout{ grid-template-columns: 1fr; }
}
/* Fix: aantallen veld breder maken */
.woocommerce .quantity .qty{
  width: 90px !important;   /* was te smal */
  min-width: 90px;
  height: 46px;
  padding: 10px 16px;
  font-size: 16px;
  line-height: 1;
  text-align: center;
  border-radius: 999px;
  border: 1px solid rgba(255,111,166,.35);
  background: rgba(255,255,255,.95);
  color: #222;
  font-weight: 800;
  box-sizing: border-box;
}
/* Sidebar promo boxes under category menu */
.sidebar-promo{
  margin-top: 14px;
  padding: 14px;
  border-radius: 22px;
  background: rgba(255,255,255,.92);
  border: 1px solid rgba(0,0,0,.05);
  box-shadow: 0 10px 28px rgba(40,20,30,.08);
}
.sidebar-promo h3{
  margin: 4px 0 10px 0;
  font-size: 14px;
  color: #b62b61;
}

/* Force 1 product per box */
.sidebar-promo .woocommerce ul.products{
  grid-template-columns: 1fr !important;
  gap: 10px !important;
}
.sidebar-promo .woocommerce ul.products li.product{
  padding: 10px !important;
}