@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--ink:#1c2924;--muted:#737b74;--paper:#f8f7f2;--sand:#e8e2d7;--sage:#aebcae;--line:#deded6;--white:#fff;--danger:#9e3838}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}.skip-link{position:absolute;left:12px;top:-60px;background:var(--ink);color:#fff;padding:12px 16px;z-index:20}.skip-link:focus{top:12px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #426b50;outline-offset:3px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.site-header{height:78px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper)}.wordmark{font-size:15px;font-weight:700;letter-spacing:.13em}.wordmark span{font-family:"Playfair Display",serif;font-style:italic;font-weight:500}.site-header nav{display:flex;gap:28px;font-size:13px}.site-header nav a,.admin-header>a:last-child{color:#414a43}.site-header nav a:hover{text-decoration:underline;text-underline-offset:5px}.hero{min-height:530px;display:grid;grid-template-columns:1fr 1fr;padding:46px 6vw 62px;gap:6vw;align-items:center}.hero-copy{max-width:520px}.eyebrow{font-size:10px;letter-spacing:.19em;font-weight:700;color:#6b786e;margin:0 0 18px}.hero h1,.about-band h2,.section-heading h2,.contact h2,.admin-main h1{font-size:clamp(42px,6vw,76px);line-height:1.02;letter-spacing:-.055em;font-weight:500;margin:0 0 22px}.hero h1 em,.about-band h2 em{font-family:"Playfair Display",serif;font-weight:500}.hero-copy>p:not(.eyebrow){max-width:390px;color:#626a63;font-size:15px;margin:0 0 28px}.button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:22px;padding:14px 18px;min-height:48px;font-weight:600;font-size:12px;cursor:pointer;transition:opacity .2s}.button:hover{opacity:.82}.button-dark{background:var(--ink);color:white}.button-outline{background:transparent;border:1px solid #bfc4bb;color:var(--ink)}.hero-art{height:420px;position:relative;overflow:hidden;background:linear-gradient(145deg,transparent 0 20%,#d4c9b9 20% 46%,#b7c0b3 46% 72%,#e9e1d5 72%),#d9d0c4}.hero-art:before{content:"";position:absolute;width:48%;height:82%;left:27%;top:9%;background:linear-gradient(90deg,#2e3932,#526057 50%,#27342e);border-radius:46% 46% 8% 8%;transform:rotate(-4deg);box-shadow:70px 80px 0 -32px #d9bfa4}.hero-art:after{content:"";position:absolute;left:15%;bottom:-5%;width:72%;height:34%;background:#a9a08f;transform:rotate(-8deg);border-radius:50%}.hero-art-label{position:absolute;z-index:2;bottom:20px;left:20px;font-family:"Playfair Display",serif;font-style:italic;font-size:19px;color:#fff}.section-wrap{padding:80px 6vw}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.section-heading h2,.contact h2{font-size:clamp(32px,4vw,48px);margin:0}.section-note,.muted{color:#626b63;font-size:12px}.category-filters{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 20px}.category-filter{border:1px solid #aeb5ab;background:transparent;color:var(--ink);padding:10px 15px;min-height:44px;font-size:12px;cursor:pointer}.category-filter:hover,.category-filter.is-active{background:var(--ink);border-color:var(--ink);color:#fff}.product-category-label{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#58685b;margin:0 0 5px}.product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 18px}.product-card{min-width:0}.product-image-wrap{aspect-ratio:4/5;background:#e9e5dc;overflow:hidden}.product-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.product-card:hover .product-image{transform:scale(1.025)}.image-placeholder{height:100%;min-height:180px;display:grid;place-items:center;color:#9a9c91;letter-spacing:.15em;font-size:11px;background:linear-gradient(135deg,#e7e0d5,#d3d8cf)}.product-details{padding:14px 1px}.product-details h3{font-size:14px;font-weight:600;margin:0 0 4px}.product-price{font-size:13px;margin:0 0 9px}.product-description,.product-meta{font-size:12px;color:#70786f;margin:7px 0}.product-cta{margin-top:9px;width:100%;padding:12px}.stock-label,.published-label,.draft-label{font-size:10px;letter-spacing:.04em;display:inline-block;margin-top:10px;padding:5px 8px;background:#e8e2d7}.about-band{padding:78px 10vw;text-align:center;background:#e7e4db}.about-band h2{font-size:clamp(34px,5vw,56px);margin-bottom:18px}.about-band>p:last-child{max-width:540px;margin:0 auto;color:#606b62;font-size:14px}.contact{display:flex;align-items:center;justify-content:space-between;gap:25px}.contact p:not(.eyebrow){color:var(--muted);font-size:13px}footer{padding:28px 6vw;display:flex;align-items:center;gap:24px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}footer p{margin-right:auto}footer small{font-size:10px}.status{font-size:12px;color:var(--muted);margin:12px 0}.admin-body{min-height:100vh}.admin-main{max-width:1200px;padding:48px 5vw 80px;margin:auto}.admin-main h1{font-size:44px;margin-bottom:10px}.admin-header{height:68px}.panel{background:#fff;border:1px solid var(--line);padding:24px}.login-panel{max-width:440px;margin:35px auto}.panel h2{font-size:18px;margin:0 0 20px}.login-panel>p:not(.eyebrow){font-size:13px;color:var(--muted)}form{display:grid;gap:15px}label{display:grid;gap:6px;font-size:12px;font-weight:600}input:not([type=checkbox]):not([type=file]),textarea{width:100%;border:1px solid #d7dad2;background:#fff;padding:11px 12px;border-radius:0;outline:none;font-size:13px;color:var(--ink)}input:focus,textarea:focus{border-color:#596c5d}input[type=file]{font-size:12px;max-width:100%}.field-hint{font-size:10px;color:var(--muted);margin:-8px 0 0}.check-label{display:flex;align-items:center;gap:9px;font-weight:400}.check-label input{accent-color:var(--ink)}.form-actions{display:flex;gap:9px;flex-wrap:wrap}.error-text{color:var(--danger)}.admin-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.admin-title-row h1{margin:0}.admin-title-row .eyebrow{margin-bottom:8px}.admin-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.list-heading{display:flex;justify-content:space-between;align-items:center}.text-button{background:none;border:0;color:#5e6b60;font-size:12px;cursor:pointer}.admin-products{display:grid;gap:12px}.admin-product{display:flex;gap:12px;border-top:1px solid var(--line);padding-top:12px}.admin-product-thumb{width:70px;height:84px;object-fit:cover;background:var(--sand)}.admin-product-info{display:grid;gap:5px;align-content:start;min-width:0}.admin-product-info strong{font-size:13px}.admin-product-info>span{font-size:11px}.published-label{background:#e0e9df;color:#36513c;width:max-content}.draft-label{background:#f0e5d7;color:#785b35;width:max-content}.admin-product-actions{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.small-button{font-size:10px;background:white;border:1px solid var(--line);padding:6px 8px;cursor:pointer}.danger-button{color:var(--danger)}.admin-footer{justify-content:space-between}.admin-footer a{color:var(--ink)}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:760px){.site-header{padding:0 5vw;height:68px}.site-header nav{gap:13px;font-size:11px;flex-wrap:wrap;justify-content:flex-end}.wordmark{font-size:12px}.hero{grid-template-columns:1fr;padding:45px 5vw 40px;gap:30px}.hero-art{height:310px}.hero h1{font-size:57px}.section-wrap{padding:55px 5vw}.section-heading{align-items:start;gap:12px;flex-direction:column}.section-note{margin:0}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 12px}.product-details h3{font-size:12px}.product-description,.product-meta{font-size:11px}.product-cta{font-size:10px;gap:5px}.about-band{padding:55px 7vw}.contact{align-items:start;flex-direction:column}.contact .button{width:100%}footer{padding:22px 5vw;flex-wrap:wrap;gap:12px}footer p{margin-right:0}.admin-columns{grid-template-columns:1fr}.admin-main{padding:30px 4vw 55px}.panel{padding:18px}.admin-title-row h1{font-size:36px}.admin-footer{align-items:start;flex-direction:column}.two-fields{gap:8px}}

/* Luuna additions: accessible favourite controls and recommendation section */
:root { --rose: #a65e52; --blush: #f8e9e7; }
.favourite-button { position:absolute; top:.7rem; right:.7rem; z-index:2; width:2.75rem; height:2.75rem; border:1px solid rgba(130,70,65,.25); border-radius:50%; background:rgba(255,250,249,.94); color:#8e4c50; font-size:1.65rem; line-height:1; cursor:pointer; display:grid; place-items:center; box-shadow:0 2px 10px rgba(60,30,30,.08); }
.favourite-button.is-liked { background:#a65e52; color:#fff; }
.favourite-button:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline:3px solid #9d5b50; outline-offset:3px; }
.recommendations { margin-top:clamp(2.5rem,6vw,5rem); }
[hidden] { display:none !important; }
.product-image-wrap { position:relative; }
img { max-width:100%; }
@media (max-width: 760px) {
  .site-header { gap:1rem; flex-wrap:wrap; }
  .site-header nav { width:100%; display:flex; gap:.75rem; overflow-x:auto; padding:.35rem 0 .5rem; -webkit-overflow-scrolling:touch; }
  .site-header nav a { white-space:nowrap; }
  .hero { grid-template-columns:1fr; }
  .hero-copy { padding:2rem 1.25rem; }
  .hero-art { min-height:260px; }
  .section-wrap { padding-left:1rem; padding-right:1rem; }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem .7rem; }
  .product-details { padding:.8rem .2rem; }
  .product-cta { width:100%; text-align:center; }
  .admin-columns { grid-template-columns:1fr; }
  .admin-title-row { align-items:flex-start; gap:1rem; }
}
@media (max-width: 380px) {
  .product-grid { grid-template-columns:1fr; }
  .site-header nav { font-size:.9rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* Luuna visual refresh */
:root {
  --ink: #382824;
  --muted: #806c65;
  --paper: #fffaf7;
  --sand: #f2e4df;
  --sage: #c98473;
  --line: #eadbd5;
  --white: #fff;
  --danger: #a33d42;
  --rose: #a65e52;
  --blush: #f8e9e7;
  --shadow: 0 18px 50px rgba(89, 50, 42, .08);
}

html { scroll-padding-top: 92px; }
body { background: var(--paper); color: var(--ink); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline-color: var(--rose);
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  height: 76px;
  padding-inline: max(6vw, calc((100vw - 1320px) / 2));
  border-bottom-color: rgba(234, 219, 213, .8);
  background: rgba(255, 250, 247, .92);
  backdrop-filter: blur(18px);
}
.wordmark {
  color: var(--rose);
  font-size: 16px;
  letter-spacing: .2em;
}
.site-header nav { align-items: center; gap: clamp(18px, 3vw, 38px); }
.site-header nav a, .admin-header>a:last-child {
  color: var(--ink);
  transition: color .2s ease;
}
.site-header nav a:hover, .admin-header>a:last-child:hover { color: var(--rose); text-decoration: none; }
.hero {
  width: min(100%, 1540px);
  min-height: 610px;
  margin: 0 auto;
  padding: 64px 7vw 76px;
  gap: 8vw;
}
.hero-copy { max-width: 570px; }
.eyebrow { color: var(--rose); font-size: 10px; letter-spacing: .22em; }
.hero h1 {
  max-width: 600px;
  margin-bottom: 25px;
  font-size: clamp(48px, 6.5vw, 86px);
  line-height: .99;
  letter-spacing: -.065em;
}
.hero h1 em, .about-band h2 em {
  color: var(--rose);
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 500;
}
.hero-copy>p:not(.eyebrow) {
  max-width: 410px;
  margin-bottom: 32px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
}
.button {
  min-height: 50px;
  border-radius: 999px;
  padding: 14px 22px;
  gap: 18px;
  font-size: 12px;
  transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.button:hover { opacity: 1; transform: translateY(-2px); }
.button-dark { background: var(--rose); color: var(--white); }
.button-dark:hover { background: #87483f; box-shadow: 0 8px 20px rgba(166, 94, 82, .2); }
.button-whatsapp {
  background: #25d366;
  color: #fff;
  gap: 9px;
}
.button-whatsapp:hover {
  background: #128c53;
  box-shadow: 0 8px 20px rgba(37, 211, 102, .2);
}
.button-whatsapp svg { flex: 0 0 20px; }
.button-outline { border-color: var(--line); color: var(--rose); }
.hero-art {
  height: clamp(360px, 43vw, 540px);
  border-radius: 220px 220px 16px 16px;
  background:
    radial-gradient(ellipse at 50% 46%, rgba(255,255,255,.68) 0 17%, transparent 17.5%),
    radial-gradient(ellipse at 50% 48%, transparent 0 27%, rgba(166,94,82,.88) 27.4% 28.5%, transparent 29%),
    radial-gradient(ellipse at 50% 48%, transparent 0 35%, rgba(201,132,115,.8) 35.4% 36%, transparent 36.5%),
    radial-gradient(ellipse at 50% 50%, #fff8f4 0 30%, transparent 67%),
    linear-gradient(145deg, #f1dcd6, #f8e9e7 54%, #e9c8bf);
  box-shadow: var(--shadow);
}
.hero-art:before {
  width: 39%;
  height: 39%;
  left: 31%;
  top: 29%;
  border: 10px solid #a65e52;
  border-radius: 50%;
  background: radial-gradient(circle at 33% 27%, #fffdfb 0 5%, #e8b8a9 40%, #c98473 100%);
  transform: rotate(-16deg);
  box-shadow: 28px 48px 0 -14px #f8e9e7, 29px 49px 0 -5px #c98473, 0 18px 45px rgba(89,50,42,.14);
}
.hero-art:after {
  left: 17%;
  bottom: 16%;
  width: 66%;
  height: 1px;
  border-radius: 0;
  background: rgba(166, 94, 82, .35);
  transform: rotate(-32deg);
}
.hero-art-label {
  right: 18px;
  bottom: 18px;
  left: auto;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 999px;
  padding: 10px 15px;
  background: rgba(255,250,247,.78);
  color: var(--rose);
  font-size: 14px;
  backdrop-filter: blur(10px);
}
.hero-art {
  display: grid;
  place-items: center;
  border-radius: 220px 220px 18px 18px;
  background:
    radial-gradient(ellipse at 50% 49%, rgba(255,255,255,.72) 0 25%, transparent 25.5%),
    radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.35), transparent 57%),
    linear-gradient(145deg, #f3ded8, #faeeea 53%, #ebccc3);
}
.hero-art:before, .hero-art:after { content: none; }
.perfume-bottle {
  position: relative;
  z-index: 2;
  width: clamp(150px, 20vw, 235px);
  height: clamp(250px, 31vw, 350px);
  margin-top: 24px;
  filter: drop-shadow(0 24px 20px rgba(102, 57, 49, .2));
}
.illustrated-necklace {
  position: absolute;
  z-index: 1;
  left: 12%;
  bottom: 12%;
  width: 76%;
  height: 61%;
  border: 1.5px solid transparent;
  border-bottom-color: #b78a55;
  border-radius: 50%;
  transform: rotate(-5deg);
  filter: drop-shadow(0 1px 1px rgba(255,255,255,.7));
}
.necklace-pendant {
  position: absolute;
  right: 50%;
  bottom: -8px;
  width: 13px;
  height: 17px;
  border: 1px solid #a87844;
  border-radius: 50% 50% 55% 55%;
  background: radial-gradient(circle at 35% 30%, #fff8dc, #d9b36e 60%, #a87844);
  transform: translateX(50%);
  box-shadow: 0 2px 5px rgba(102,57,49,.16);
}
.illustrated-earring {
  position: absolute;
  z-index: 1;
  width: 30px;
  height: 35px;
  border: 2px solid #b78a55;
  border-top-color: transparent;
  border-radius: 50%;
  filter: drop-shadow(0 2px 2px rgba(102,57,49,.12));
}
.illustrated-earring:before {
  position: absolute;
  top: -5px;
  left: 9px;
  width: 9px;
  height: 9px;
  border: 1px solid rgba(166,94,82,.28);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff, #f5e6de 65%, #d5b5a9);
  content: "";
}
.illustrated-earring:after {
  position: absolute;
  right: 7px;
  bottom: 1px;
  width: 8px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff7dc, #d9b36e 70%, #a87844);
  content: "";
}
.earring-left { top: 39%; left: 20%; transform: rotate(12deg); }
.earring-right { top: 49%; right: 19%; transform: rotate(-12deg) scale(.82); }
.bottle-cap {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 32%;
  width: 36%;
  height: 17%;
  border: 1px solid rgba(129, 74, 59, .28);
  border-radius: 7px 7px 3px 3px;
  background: linear-gradient(90deg, #a65e52, #ca8d7c 22%, #d5a18f 50%, #ad695b 100%);
  box-shadow: inset 0 5px 8px rgba(255,255,255,.22);
}
.bottle-neck {
  position: absolute;
  top: 15%;
  left: 40%;
  width: 20%;
  height: 12%;
  border: 1px solid rgba(166, 94, 82, .3);
  border-bottom: 0;
  background: linear-gradient(90deg, #e1b7a9, #fff5ef 45%, #d6a091);
}
.bottle-body {
  position: absolute;
  top: 24%;
  left: 4%;
  width: 92%;
  height: 72%;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,.86);
  border-radius: 29px 29px 37px 37px;
  background:
    linear-gradient(90deg, rgba(255,255,255,.65), transparent 16% 78%, rgba(255,255,255,.35)),
    linear-gradient(180deg, rgba(255,248,244,.88), rgba(226,165,146,.84) 67%, rgba(201,132,115,.94));
  box-shadow: inset 0 0 0 5px rgba(201,132,115,.18), inset 0 -25px 30px rgba(166,94,82,.12);
}
.bottle-shine {
  position: absolute;
  top: 9%;
  left: 10%;
  width: 8%;
  height: 56%;
  border-radius: 99px;
  background: rgba(255,255,255,.65);
  filter: blur(3px);
}
.bottle-label {
  position: absolute;
  top: 37%;
  left: 15%;
  display: flex;
  width: 70%;
  min-height: 30%;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  border: 1px solid rgba(166,94,82,.22);
  background: rgba(255,250,247,.84);
  color: var(--rose);
  box-shadow: 0 4px 14px rgba(102,57,49,.06);
}
.bottle-brand {
  font-size: clamp(15px, 2vw, 22px);
  font-weight: 600;
  letter-spacing: .2em;
}
.bottle-type { margin-top: 4px; font-size: 7px; letter-spacing: .19em; }
.art-sparkle {
  position: absolute;
  width: 11px;
  height: 11px;
  background: #fffaf7;
  clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
  filter: drop-shadow(0 1px 3px rgba(166,94,82,.2));
}
.art-sparkle-one { top: 28%; left: 24%; }
.art-sparkle-two { top: 49%; right: 21%; width: 8px; height: 8px; }
.section-wrap { width: min(100%, 1540px); margin-inline: auto; padding: 88px 7vw; }
.collection { padding-top: 56px; }
.section-heading { margin-bottom: 28px; }
.section-heading h2, .contact h2 {
  color: var(--ink);
  font-size: clamp(34px, 4vw, 54px);
  letter-spacing: -.05em;
}
.section-note, .muted { color: var(--muted); font-size: 13px; }
.category-filters { gap: 8px; margin-bottom: 27px; }
.category-filter {
  border-color: var(--line);
  border-radius: 999px;
  padding: 10px 18px;
  color: var(--muted);
  transition: color .2s ease, background .2s ease, border-color .2s ease;
}
.category-filter:hover, .category-filter.is-active {
  border-color: var(--rose);
  background: var(--rose);
  color: var(--white);
}
.status { color: var(--muted); }
.product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 22px; }
.product-card {
  overflow: hidden;
  border: 1px solid rgba(234,219,213,.75);
  border-radius: 15px;
  background: var(--white);
  box-shadow: 0 5px 22px rgba(89,50,42,.035);
  transition: transform .25s ease, box-shadow .25s ease;
}
.product-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.product-image-wrap { position: relative; aspect-ratio: 4 / 4.6; background: var(--blush); }
.product-image { transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.product-card:hover .product-image { transform: scale(1.045); }
.image-placeholder {
  color: var(--rose);
  background:
    radial-gradient(circle at 50% 45%, rgba(255,255,255,.7), transparent 43%),
    linear-gradient(145deg, #f8e9e7, #efd6cf);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 16px;
  letter-spacing: .18em;
}
.favourite-button {
  position: absolute;
  top: 13px;
  right: 13px;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid rgba(234,219,213,.8);
  border-radius: 50%;
  background: rgba(255,250,247,.9);
  color: var(--rose);
  font-size: 21px;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: transform .2s ease, background .2s ease;
}
.favourite-button:hover { transform: scale(1.08); }
.favourite-button.is-liked { background: var(--rose); color: white; }
.product-details { padding: 18px 18px 20px; }
.product-category-label { color: var(--rose); font-size: 9px; letter-spacing: .16em; }
.product-details h3 { margin-bottom: 5px; font-size: 15px; }
.product-title-link:hover { color: var(--rose); }
.product-view-link { width: 100%; margin-top: 10px; }
.product-price { color: var(--rose); font-size: 14px; font-weight: 600; }
.product-description, .product-meta { color: var(--muted); font-size: 12px; line-height: 1.7; }
.product-cta { width: 100%; margin-top: 10px; }
.product-page { min-height: calc(100vh - 150px); }
.back-to-collection {
  display: inline-block;
  margin-bottom: 28px;
  color: var(--rose);
  font-size: 13px;
}
.back-to-collection:hover { text-decoration: underline; text-underline-offset: 4px; }
.product-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  align-items: center;
  gap: clamp(36px, 7vw, 100px);
  padding-block: 8px 34px;
}
.product-detail-gallery {
  min-width: 0;
}
.product-gallery-stage {
  position: relative;
  display: grid;
  min-height: 360px;
  max-height: 680px;
  aspect-ratio: 4 / 4.6;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--blush);
}
.product-detail-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.product-detail-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; font-size: 22px; }
.gallery-arrow {
  position: absolute;
  top: 50%;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  transform: translateY(-50%);
  border: 1px solid rgba(234,219,213,.8);
  border-radius: 50%;
  background: rgba(255,250,247,.88);
  color: var(--ink);
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  backdrop-filter: blur(8px);
}
.gallery-arrow:hover { background: #fff; }
.gallery-arrow-previous { left: 16px; }
.gallery-arrow-next { right: 16px; }
.product-detail-favourite { top: 16px; right: 16px; }
.product-gallery-thumbnails {
  display: flex;
  justify-content: center;
  gap: 10px;
  overflow-x: auto;
  padding: 14px 4px 4px;
}
.product-gallery-thumbnail {
  flex: 0 0 64px;
  width: 64px;
  height: 74px;
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--blush);
  cursor: pointer;
}
.product-gallery-thumbnail.is-active,
.product-gallery-thumbnail[aria-current="true"] { border: 2px solid var(--rose); }
.product-gallery-thumbnail img { display: block; width: 100%; height: 100%; object-fit: cover; }
.product-detail-copy { max-width: 540px; }
.product-detail-copy h1 {
  margin: 8px 0 12px;
  font-size: clamp(38px, 5vw, 60px);
  line-height: 1.05;
  letter-spacing: -.055em;
  font-weight: 500;
}
.product-detail-price { margin: 0 0 14px; color: var(--rose); font-size: 21px; font-weight: 600; }
.product-detail-stock { margin: 0 0 22px; color: #34734c; font-size: 13px; font-weight: 600; }
.product-detail-stock.is-unavailable { color: var(--muted); }
.product-detail-description { color: var(--muted); font-size: 15px; line-height: 1.85; white-space: pre-line; }
.product-facts { margin: 28px 0; border-top: 1px solid var(--line); }
.product-facts>div {
  display: grid;
  grid-template-columns: minmax(85px, .35fr) 1fr;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.product-facts dt { color: var(--muted); }
.product-facts dd { margin: 0; color: var(--ink); font-weight: 600; }
.product-detail-cta { min-width: min(100%, 260px); }
.product-recommendations {
  padding-top: clamp(42px, 6vw, 76px);
}
.product-recommendations + .product-recommendations {
  margin-top: clamp(18px, 3vw, 36px);
  border-top: 1px solid var(--line);
}
.product-recommendations .section-heading { margin-bottom: 24px; }
.product-recommendations .section-heading h2 {
  margin: 0;
  color: var(--ink);
  font-size: clamp(30px, 3.5vw, 44px);
  letter-spacing: -.05em;
}
.product-recommendations .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.product-recommendations .product-image-wrap { display: block; }
.product-recommendations .image-placeholder { display: grid; width: 100%; height: 100%; min-height: 180px; place-items: center; }
.stock-label, .published-label, .draft-label {
  border-radius: 999px;
  background: var(--blush);
  color: var(--rose);
}
.about-band {
  padding: clamp(72px, 9vw, 120px) 10vw;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.8), transparent 60%),
    var(--blush);
}
.about-band h2 { margin-bottom: 20px; font-size: clamp(38px, 5vw, 64px); }
.about-band>p:last-child { color: var(--muted); font-size: 15px; line-height: 1.8; }
.contact { gap: 30px; }
.contact p:not(.eyebrow) { color: var(--muted); font-size: 14px; }
footer {
  padding: 30px max(6vw, calc((100vw - 1320px) / 2));
  border-top-color: var(--line);
  color: var(--muted);
}
footer .wordmark { color: var(--rose); }

.admin-body { background: #fff8f5; }
.admin-header { height: 70px; }
.admin-main { max-width: 1280px; padding-top: 55px; }
.admin-main h1 { color: var(--ink); font-size: clamp(38px, 5vw, 54px); letter-spacing: -.05em; }
.admin-title-row { margin-bottom: 30px; }
.admin-columns { gap: 24px; }
.panel {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: clamp(20px, 3vw, 30px);
  background: var(--white);
  box-shadow: var(--shadow);
}
.panel h2 { color: var(--ink); }
.login-panel { margin-top: 48px; }
input:not([type=checkbox]):not([type=file]), textarea, select {
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fffdfc;
}
input:focus, textarea:focus, select:focus { border-color: var(--rose); }
.check-label input { accent-color: var(--rose); }
.text-button { color: var(--rose); }
.admin-product { border-top-color: var(--line); }
.admin-product-thumb { border-radius: 8px; background: var(--blush); }
.activity-panel { margin-top:24px; }
.activity-list { display:grid; gap:0; }
.activity-item { padding:14px 0; border-top:1px solid var(--line); }
.activity-heading { display:flex; justify-content:space-between; align-items:baseline; gap:14px; }
.activity-heading strong { font-size:13px; }
.activity-heading time,.activity-actor { font-size:11px; }
.activity-actor { margin:4px 0 0; color:var(--muted); }
.activity-item details { margin-top:8px; font-size:11px; }
.activity-item summary { width:max-content; color:var(--rose); cursor:pointer; }
.activity-item ul { display:grid; gap:5px; margin:8px 0 0; padding-left:18px; overflow-wrap:anywhere; }
.image-preview {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 10px;
}
.image-preview-item {
  display: grid;
  justify-items: center;
  gap: 6px;
}
.image-preview-thumb {
  width: 64px;
  height: 72px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--blush);
  object-fit: cover;
}
.image-selection-note { flex-basis: 100%; margin: 0; }
.published-label { background: #f0e4df; color: var(--rose); }
.draft-label { background: #fbf0df; color: #855c2f; }
.small-button { border-color: var(--line); border-radius: 7px; }
.small-button:hover { border-color: var(--rose); color: var(--rose); }
.admin-footer { background: var(--paper); }
[hidden] { display: none !important; }

@media (max-width: 760px) {
  .site-header { height: 68px; padding-inline: 5vw; }
  .hero { min-height: 0; padding: 54px 6vw 55px; gap: 34px; }
  .hero h1 { font-size: clamp(48px, 10vw, 68px); }
  .hero-art { height: clamp(300px, 76vw, 430px); }
  .section-wrap { padding: 65px 6vw; }
  .collection { padding-top: 30px; }
  .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 14px; }
  .product-details { padding: 15px 14px 17px; }
  .product-details h3 { font-size: 14px; }
  .about-band { padding-inline: 8vw; }
  .admin-main { padding: 38px 5vw 65px; }
  .product-detail-layout { grid-template-columns: 1fr; gap: 30px; }
  .product-gallery-stage { min-height: 0; max-height: none; }
  .product-detail-copy { max-width: none; }
  .product-recommendations .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  html { scroll-padding-top: 112px; }
  .site-header {
    height: auto;
    min-height: 68px;
    padding: 12px 5vw 10px;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
  }
  .site-header nav {
    width: 100%;
    justify-content: space-between;
    gap: 8px;
    font-size: 11px;
  }
  .wordmark { font-size: 14px; }
  .hero { padding: 43px 6vw 44px; gap: 28px; }
  .hero h1 { font-size: clamp(45px, 12vw, 59px); }
  .hero-copy>p:not(.eyebrow) { font-size: 14px; }
  .hero-art { height: 300px; border-radius: 160px 160px 13px 13px; }
  .perfume-bottle { width: 145px; height: 230px; margin-top: 14px; }
  .bottle-brand { font-size: 15px; }
  .section-wrap { padding: 54px 5vw; }
  .section-heading h2, .contact h2 { font-size: 36px; }
  .product-grid { grid-template-columns: 1fr; gap: 14px; }
  .product-card { display: grid; grid-template-columns: minmax(112px, .78fr) minmax(0, 1fr); align-items: stretch; }
  .product-image-wrap { min-height: 100%; aspect-ratio: auto; }
  .product-details { min-width: 0; padding: 14px 12px; }
  .product-details h3 { font-size: 13px; }
  .product-price { font-size: 13px; }
  .product-description, .product-meta { font-size: 11px; line-height: 1.5; }
  .product-description { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
  .product-view-link, .product-cta { min-height: 42px; padding: 9px 8px; font-size: 10px; }
  .product-cta { gap: 7px; }
  .favourite-button { top: 9px; right: 9px; width: 35px; height: 35px; }
  .contact { align-items: flex-start; flex-direction: column; }
  footer { align-items: flex-start; flex-wrap: wrap; gap: 12px 18px; padding: 24px 6vw; }
  footer p { width: 100%; margin: 0; }
  footer small { width: 100%; }
  .admin-main { padding: 30px 4vw 50px; }
  .admin-title-row { align-items: flex-start; gap: 12px; }
  .admin-title-row .button { padding-inline: 14px; }
  .admin-columns { grid-template-columns: 1fr; }
  .two-fields { gap: 10px; }
  .product-page { padding-top: 38px; }
  .product-detail-layout { gap: 24px; }
  .product-detail-copy h1 { font-size: 42px; }
  .product-detail-description { font-size: 14px; }
  .product-facts { margin-block: 22px; }
  .product-recommendations .section-heading { flex-direction: column; }
  .product-recommendations .product-grid { gap: 14px; }
}
@media (max-width: 350px) {
  .product-card { display: block; }
  .product-image-wrap { width: 100%; min-width: 0; min-height: 0; aspect-ratio: 1 / 1.15; }
  .product-details { padding: 13px 11px 14px; }
  .product-grid { grid-template-columns: 1fr; }
  .site-header nav { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
