:root { --pink:#e79ab5; --pink-d:#c96a92; --ink:#2b2b2b; --bg:#fff8fb; --line:#f0dbe6; --wrap:1200px; }
* { box-sizing:border-box; }
body { margin:0; font-family:"Segoe UI",Helvetica,Arial,sans-serif; color:var(--ink); background:var(--bg); -webkit-text-size-adjust:100%; }
a { color:var(--pink-d); }
img { display:block; max-width:100%; }

/* announcement + nav */
.announce { background:var(--pink-d); color:#fff; text-align:center; font-size:.8rem; padding:.5rem .75rem; line-height:1.35; }
.nav { position:relative; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.5rem 1.25rem; max-width:var(--wrap); margin:0 auto; }
.nav .brand img { max-height:56px; width:auto; }
.nav .links { display:flex; gap:1.1rem; flex-wrap:wrap; }
.nav .links a { text-decoration:none; color:var(--ink); font-weight:600; font-size:.92rem; white-space:nowrap; }
.nav .links a:hover { color:var(--pink-d); }
/* hamburger (hidden on desktop) */
.nav-burger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:8px; }
.nav-burger span { width:26px; height:3px; background:var(--pink-d); border-radius:2px; transition:.2s; }

/* hero */
.hero { position:relative; min-height:56vh; display:flex; align-items:center; justify-content:center; text-align:center;
  background:linear-gradient(rgba(43,20,32,.45),rgba(43,20,32,.55)), var(--hero) center/cover no-repeat; color:#fff; padding:3rem 1.25rem; }
.hero-inner { max-width:640px; }
.hero h1 { font-size:clamp(1.9rem,7vw,3.4rem); margin:0 0 .5rem; text-shadow:0 2px 12px rgba(0,0,0,.4); }
.hero .lead { font-size:clamp(1rem,3.5vw,1.15rem); line-height:1.5; text-shadow:0 1px 8px rgba(0,0,0,.5); }
.btn { display:inline-block; margin-top:1.2rem; background:var(--pink); color:#fff; text-decoration:none; padding:.75rem 1.5rem; border-radius:999px; font-weight:700; }
.btn:hover { background:#fff; color:var(--pink-d); }

/* layout */
.container { max-width:1100px; margin:0 auto; padding:2.25rem 1.25rem; }
.container.wide { max-width:var(--wrap); }
.container.narrow { max-width:720px; }
.section-title { font-size:clamp(1.35rem,5vw,1.6rem); color:var(--pink-d); margin:0 0 1.2rem; }
.section-head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.more { text-decoration:none; font-weight:600; font-size:.9rem; }

/* category tiles */
.tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:1rem; }
.tile { position:relative; aspect-ratio:4/3; border-radius:12px; overflow:hidden; text-decoration:none; background:#f3dbe8; }
.tile img { width:100%; height:100%; object-fit:cover; transition:transform .25s; }
.tile:hover img { transform:scale(1.05); }
.tile-label { position:absolute; inset:auto 0 0 0; background:linear-gradient(transparent,rgba(0,0,0,.65)); color:#fff;
  padding:1.2rem .8rem .7rem; font-weight:700; text-transform:capitalize; display:flex; justify-content:space-between; }
.tile-label em { font-style:normal; opacity:.85; font-weight:500; }

/* product grid + cards */
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:1rem; }
.card { text-decoration:none; color:inherit; border:1px solid var(--line); border-radius:10px; overflow:hidden; background:#fff; transition:box-shadow .15s,transform .15s; }
.card:hover { box-shadow:0 6px 18px rgba(0,0,0,.09); transform:translateY(-2px); }
.thumb { position:relative; aspect-ratio:1/1; background:#faf3f7; }
.thumb img { width:100%; height:100%; object-fit:cover; }
.thumb.noimg { background:repeating-linear-gradient(45deg,#faf3f7,#faf3f7 10px,#f3e6ee 10px,#f3e6ee 20px); }
.badge { position:absolute; top:.5rem; left:.5rem; font-size:.7rem; padding:.15rem .5rem; border-radius:999px; color:#fff; }
.badge.sale { background:#d1477a; } .badge.out { background:#888; }
.meta { padding:.6rem .7rem; } .meta .name { font-size:.9rem; line-height:1.25; text-transform:capitalize; }
.meta .price { color:var(--pink-d); font-weight:bold; margin-top:.25rem; }

/* shop category chips */
.cats { display:flex; flex-wrap:wrap; gap:.4rem; font-size:.82rem; margin-bottom:1.5rem; }
.cats a { text-decoration:none; color:var(--pink-d); background:#fbeef4; padding:.32rem .7rem; border-radius:999px; text-transform:capitalize; }
.cats a.on { background:var(--pink); color:#fff; }
.empty { color:#999; }

/* product detail */
.crumbs { margin:0 0 1rem; } .crumbs a { text-decoration:none; }
.pdp { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:start; }
.gallery img { width:100%; border-radius:12px; margin-bottom:.75rem; }
.info h1 { text-transform:capitalize; margin-top:0; }
.price.big { font-size:1.7rem; color:var(--pink-d); font-weight:bold; margin:.5rem 0; }
.sku,.stock,.tags { color:#888; font-size:.85rem; }
.tags a { text-transform:capitalize; }
.desc { margin:1.2rem 0; line-height:1.65; }
.variants { padding-left:1.1rem; line-height:1.7; }

/* content pages */
.story { background:#fdeef5; }
.prose { line-height:1.7; } .prose p { margin:0 0 1rem; }
.info-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.25rem; margin:1.5rem 0; }
.info-card { border:1px solid var(--line); border-radius:12px; padding:1.25rem; background:#fff; }
.info-card h3 { margin:0 0 .5rem; color:var(--pink-d); }
.map-embed { position:relative; width:100%; aspect-ratio:16/9; border:0; border-radius:12px; overflow:hidden; margin-top:1rem; }
.map-embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }

/* forms */
.form { max-width:620px; }
.form label { display:block; font-weight:600; font-size:.9rem; margin:1rem 0 .35rem; }
.form input, .form select, .form textarea { width:100%; padding:.65rem .75rem; border:1px solid var(--line); border-radius:8px; font:inherit; background:#fff; }
.form textarea { min-height:130px; resize:vertical; }
.form .btn { border:0; cursor:pointer; margin-top:1.3rem; }
.notice { background:#e9f8ec; border:1px solid #b7e3c0; color:#256b34; padding:1rem 1.2rem; border-radius:10px; margin-bottom:1.25rem; }
.notice.err { background:#fdeaea; border-color:#f3b7b7; color:#a33; }

/* footer */
.site-footer { background:#2b1a22; color:#e9d6df; padding:2.5rem 1.5rem 1.5rem; margin-top:2rem; }
.foot-grid { max-width:1000px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:2rem; }
.site-footer h4 { color:#fff; margin:0 0 .6rem; }
.site-footer a { color:var(--pink); text-decoration:none; }
.hours { list-style:none; padding:0; margin:0; }
.hours li { display:flex; justify-content:space-between; gap:1rem; border-bottom:1px solid rgba(255,255,255,.08); padding:.25rem 0; font-size:.9rem; }
.fineprint { max-width:1000px; margin:1.5rem auto 0; font-size:.75rem; color:#a98ea0; text-align:center; }

/* ---------- mobile ---------- */
@media (max-width:760px){
  .nav-burger { display:flex; }
  .nav .links {
    position:absolute; top:100%; left:0; right:0; z-index:20;
    flex-direction:column; gap:0; background:#fff; border-top:1px solid var(--line);
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    max-height:0; overflow:hidden; transition:max-height .25s ease;
  }
  .nav-toggle:checked ~ .links { max-height:70vh; }
  .nav .links a { padding:.9rem 1.25rem; border-bottom:1px solid var(--line); width:100%; font-size:1rem; }
  .nav-toggle:checked ~ .nav-burger span:nth-child(1){ transform:translateY(8px) rotate(45deg); }
  .nav-toggle:checked ~ .nav-burger span:nth-child(2){ opacity:0; }
  .nav-toggle:checked ~ .nav-burger span:nth-child(3){ transform:translateY(-8px) rotate(-45deg); }
}
@media (max-width:640px){
  .pdp { grid-template-columns:1fr; gap:1.5rem; }
  .grid { grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:.75rem; }
  .container { padding:1.75rem 1rem; }
  .foot-grid { gap:1.5rem; }
}
@media (max-width:380px){
  .grid { grid-template-columns:1fr 1fr; }
}

/* breadcrumbs */
.breadcrumbs { font-size:.82rem; color:#a08; margin:0 0 1.2rem; display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; }
.breadcrumbs a { color:var(--pink-d); text-decoration:none; }
.breadcrumbs a:hover { text-decoration:underline; }
.breadcrumbs .sep { color:#c9a9b8; }
.breadcrumbs [aria-current="page"] { color:#8a7f86; }
/* product badges row + custom label chips */
.badges { display:flex; gap:.4rem; flex-wrap:wrap; margin:.25rem 0 .5rem; }
.cats a.sub { font-size:.75rem; opacity:.85; }
