/* ============================================================
   GLOWNEST — design tokens
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500;9..144,600&family=Work+Sans:wght@300;400;500;600&display=swap');

:root{
  --forest-dark:   #1f3324;
  --forest-mid:    #3a5940;
  --forest-pale:   #dbe4d6;
  --cream:         #f6f1e6;
  --stone:         #e9e0ca;
  --ink:           #221e16;
  --ink-soft:      #55503f;
  --gold:          #a9793a;
  --gold-soft:     #c9a26a;
  --line:          rgba(34,30,22,0.14);

  --serif: 'Fraunces', Georgia, serif;
  --sans: 'Work Sans', -apple-system, sans-serif;

  --max: 1180px;
  --radius: 2px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
ul{ list-style:none; margin:0; padding:0; }

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:500;
  margin:0;
  color:var(--ink);
  letter-spacing:-0.01em;
}

.wrap{ max-width:var(--max); margin:0 auto; padding:0 32px; }
@media (max-width:640px){ .wrap{ padding:0 20px; } }

:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:14px 28px;
  font-size:14px;
  letter-spacing:0.02em;
  border:1px solid transparent;
  border-radius:var(--radius);
  transition:transform .25s ease, background .25s ease, color .25s ease;
}
.btn-gold{
  background:var(--gold);
  color:var(--cream);
}
.btn-gold:hover{ background:#8f6530; }
.btn-line{
  border-color:var(--forest-dark);
  color:var(--forest-dark);
}
.btn-line:hover{ background:var(--forest-dark); color:var(--cream); }
.btn-cream{
  border-color:rgba(246,241,230,0.55);
  color:var(--cream);
}
.btn-cream:hover{ background:var(--cream); color:var(--forest-dark); }

/* ---------- nav ---------- */
.site-nav{
  position:sticky; top:0; z-index:40;
  background:rgba(246,241,230,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-nav .wrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:78px;
}
.logo{
  font-family:var(--serif);
  font-size:24px;
  letter-spacing:0.01em;
  color:var(--forest-dark);
}
.nav-links{ display:flex; gap:36px; font-size:14.5px; }
.nav-links a{ position:relative; color:var(--ink-soft); }
.nav-links a.active,
.nav-links a:hover{ color:var(--forest-dark); }
.nav-links a.active::after{
  content:'';
  position:absolute; left:0; right:0; bottom:-22px;
  height:2px; background:var(--gold);
}
.nav-right{ display:flex; align-items:center; gap:22px; }
.icon-btn{
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  color:var(--forest-dark);
  position:relative;
}
.cart-count{
  position:absolute; top:-2px; right:-2px;
  background:var(--gold); color:var(--cream);
  font-size:10px; width:16px; height:16px;
  border-radius:50%; display:flex; align-items:center; justify-content:center;
}
.nav-toggle{ display:none; background:none; border:0; }

@media (max-width:860px){
  .nav-links{ display:none; }
  .nav-toggle{ display:block; }
}

/* ---------- footer ---------- */
.site-footer{
  background:var(--forest-dark);
  color:var(--forest-pale);
  padding:64px 0 28px;
  margin-top:120px;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1.1fr;
  gap:40px;
  padding-bottom:44px;
  border-bottom:1px solid rgba(246,241,230,0.14);
}
.footer-grid h4{ color:var(--cream); font-size:14px; letter-spacing:0.03em; margin-bottom:16px; font-family:var(--sans); font-weight:500; }
.footer-grid p{ color:rgba(246,241,230,0.65); font-size:14.5px; max-width:34ch; }
.footer-grid a{ color:rgba(246,241,230,0.75); font-size:14.5px; display:block; margin-bottom:10px; }
.footer-grid a:hover{ color:var(--gold-soft); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:22px; font-size:12.5px; color:rgba(246,241,230,0.45);
  flex-wrap:wrap; gap:10px;
}
@media (max-width:760px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
}

/* ============================================================
   HOME
   ============================================================ */
.hero{
  background:var(--forest-dark);
  color:var(--cream);
  position:relative;
  overflow:hidden;
  padding:96px 0 120px;
}
.hero .wrap{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:40px;
  align-items:center;
}
.hero-eyebrow{
  color:var(--gold-soft);
  font-size:14px;
  margin-bottom:22px;
  font-family:var(--serif);
  font-style:italic;
}
.hero h1{
  font-size:clamp(38px,5.4vw,62px);
  line-height:1.08;
  color:var(--cream);
  max-width:12ch;
}
.hero p.lede{
  margin-top:26px;
  max-width:42ch;
  color:rgba(246,241,230,0.78);
  font-size:17px;
}
.hero-actions{ margin-top:38px; display:flex; gap:16px; flex-wrap:wrap; }
.hero-art{ position:relative; }
.hero-art svg{ width:100%; height:auto; }

@media (max-width:860px){
  .hero .wrap{ grid-template-columns:1fr; }
  .hero-art{ order:-1; max-width:260px; margin:0 auto 16px; }
}

/* section headers */
.section-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  margin-bottom:44px; gap:20px; flex-wrap:wrap;
}
.section-head h2{ font-size:clamp(26px,3.4vw,38px); max-width:14ch; }
.section-kicker{
  font-family:var(--serif); font-style:italic; color:var(--gold);
  font-size:15px; margin-bottom:10px; display:block;
}
.section-head p{ color:var(--ink-soft); max-width:38ch; font-size:15px; }

section.pad{ padding:110px 0; }
section.pad.tight{ padding:80px 0; }

/* featured collage */
.collage{
  display:grid;
  grid-template-columns:repeat(6, minmax(0, 1fr));
  grid-auto-rows:150px;
  gap:14px;
}
.collage .card{
  position:relative;
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--stone);
  display:flex; flex-direction:column; justify-content:flex-end;
}
.collage .c1{ grid-column:1/4; grid-row:1/4; }
.collage .c2{ grid-column:4/7; grid-row:1/3; }
.collage .c3{ grid-column:4/6; grid-row:3/5; }
.collage .c4{ grid-column:6/7; grid-row:3/5; }
.collage .c5{ grid-column:1/3; grid-row:4/6; }
.collage .c6{ grid-column:3/4; grid-row:4/6; }

/* adaptive collage fallback when active catalog has fewer than 6 candles */
.collage[data-count="0"]{
  grid-template-columns:1fr;
  grid-auto-rows:auto;
}
.collage[data-count="1"]{
  grid-template-columns:minmax(0, 420px);
  grid-auto-rows:420px;
  justify-content:center;
}
.collage[data-count="2"],
.collage[data-count="4"]{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  grid-auto-rows:320px;
}
.collage[data-count="3"]{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  grid-auto-rows:320px;
}
.collage[data-count="5"]{
  grid-template-columns:repeat(6, minmax(0, 1fr));
  grid-auto-rows:220px;
}
.collage[data-count="1"] .card,
.collage[data-count="2"] .card,
.collage[data-count="3"] .card,
.collage[data-count="4"] .card{
  grid-column:auto;
  grid-row:auto;
}
.collage[data-count="5"] .c1,
.collage[data-count="5"] .c2{
  grid-column:span 3;
  grid-row:auto;
}
.collage[data-count="5"] .c3,
.collage[data-count="5"] .c4,
.collage[data-count="5"] .c5{
  grid-column:span 2;
  grid-row:auto;
}

.card-fill{ position:absolute; inset:0; }
.card-fill svg.candle-illo{ width:100%; height:100%; display:block; }
.card-info{
  position:relative; z-index:2;
  padding:18px 20px;
  background:linear-gradient(to top, rgba(31,51,36,0.82), rgba(31,51,36,0));
  color:var(--cream);
}
.card-info .p-name{ font-family:var(--serif); font-size:17px; }
.card-info .p-price{ font-size:13px; color:var(--gold-soft); margin-top:3px; }

@media (max-width:760px){
  .collage,
  .collage[data-count="2"],
  .collage[data-count="3"],
  .collage[data-count="4"],
  .collage[data-count="5"]{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    grid-auto-rows:210px;
  }
  .collage[data-count="1"]{
    grid-template-columns:minmax(0, 380px);
    grid-auto-rows:320px;
  }
  .collage .c1,.collage .c2,.collage .c3,.collage .c4,.collage .c5,.collage .c6,
  .collage[data-count="5"] .c1,.collage[data-count="5"] .c2,
  .collage[data-count="5"] .c3,.collage[data-count="5"] .c4,.collage[data-count="5"] .c5{
    grid-column:auto; grid-row:auto;
  }
}
@media (max-width:480px){
  .collage,
  .collage[data-count="1"],
  .collage[data-count="2"],
  .collage[data-count="3"],
  .collage[data-count="4"],
  .collage[data-count="5"]{
    grid-template-columns:minmax(0, 1fr);
    grid-auto-rows:260px;
  }
}

/* categories */
.cat-row{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:20px;
}
.cat-tile{
  position:relative;
  height:320px;
  border-radius:var(--radius);
  overflow:hidden;
  display:flex; align-items:flex-end;
  padding:26px;
}
.cat-tile h3{ color:var(--cream); font-size:24px; position:relative; z-index:2; }
.cat-tile span{
  position:relative; z-index:2;
  color:rgba(246,241,230,0.8); font-size:13px; margin-top:6px; display:block;
}
.cat-tile::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(20,30,22,0.85), rgba(20,30,22,0.12));
  z-index:1;
}
@media (max-width:960px){ .cat-row{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:520px){ .cat-row{ grid-template-columns:minmax(0, 1fr); } }

/* about / founder */
.about-split{
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:64px;
  align-items:center;
}
.about-portrait{
  background:var(--forest-pale);
  border-radius:var(--radius);
  aspect-ratio:4/5;
  position:relative;
  overflow:hidden;
}
.about-copy .section-kicker{ margin-bottom:14px; }
.about-copy h2{ font-size:clamp(26px,3.6vw,36px); margin-bottom:22px; }
.about-copy p{ color:var(--ink-soft); font-size:15.5px; margin-bottom:16px; max-width:52ch; }
blockquote{
  font-family:var(--serif); font-style:italic; font-size:20px;
  color:var(--forest-dark); border-left:2px solid var(--gold);
  padding-left:20px; margin:28px 0;
}
.signature{ font-family:var(--serif); font-style:italic; font-size:17px; color:var(--gold); }
@media (max-width:860px){ .about-split{ grid-template-columns:1fr; gap:32px; } }

/* insta-style gallery */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.gallery-grid .g-tall{ grid-row:span 2; }
.g-tile{
  border-radius:var(--radius);
  overflow:hidden;
  position:relative;
  background:var(--stone);
  aspect-ratio:1/1;
}
.g-tall .g-tile{ aspect-ratio:1/2.05; }
@media (max-width:760px){ .gallery-grid{ grid-template-columns:repeat(2,1fr); } }

/* testimonials */
.testi-row{
  display:grid; grid-template-columns:repeat(3,1fr); gap:28px;
}
.testi{
  background:var(--stone); padding:34px 30px; border-radius:var(--radius);
}
.testi p{ font-size:15px; color:var(--ink-soft); margin-bottom:18px; }
.testi .who{ font-family:var(--serif); font-style:italic; color:var(--forest-dark); font-size:15px; }
@media (max-width:860px){ .testi-row{ grid-template-columns:1fr; } }

/* cta band */
.cta-band{
  background:var(--forest-dark);
  color:var(--cream);
  padding:88px 0;
  text-align:center;
}
.cta-band h2{ color:var(--cream); font-size:clamp(28px,4vw,42px); max-width:16ch; margin:0 auto 26px; }

/* ============================================================
   SVG candle illustration helpers
   ============================================================ */
.candle-illo .jar{ fill:var(--stone); }
.candle-illo .wax{ fill:var(--cream); }
.candle-illo .flame{ fill:var(--gold-soft); }
.candle-illo .leaf{ fill:none; stroke:var(--gold-soft); stroke-width:1.2; }

/* ============================================================
   CATALOGUE
   ============================================================ */
.page-head{
  background:var(--forest-dark); color:var(--cream);
  padding:64px 0 52px;
}
.page-head .section-kicker{ color:var(--gold-soft); }
.page-head h1{ color:var(--cream); font-size:clamp(30px,4.2vw,44px); }
.page-head p{ color:rgba(246,241,230,0.75); margin-top:12px; max-width:50ch; font-size:15px; }

.filter-bar{
  display:flex; align-items:center; justify-content:space-between;
  gap:20px; flex-wrap:wrap;
  padding:26px 0; border-bottom:1px solid var(--line);
  margin-bottom:40px;
}
.filter-pills{ display:flex; gap:10px; flex-wrap:wrap; }
.catalogue-controls{
  display:flex; align-items:center; gap:16px; flex-wrap:wrap;
}
.catalogue-count{
  font-size:13px; color:var(--ink-soft); white-space:nowrap;
}
.pill{
  padding:9px 18px; font-size:13.5px; border-radius:999px;
  border:1px solid var(--line); color:var(--ink-soft);
  background:transparent; transition:all .2s ease;
}
.pill.active, .pill:hover{ background:var(--forest-dark); color:var(--cream); border-color:var(--forest-dark); }
.sort-select{
  padding:9px 14px; border-radius:var(--radius); border:1px solid var(--line);
  background:var(--cream); font-size:13.5px; color:var(--ink-soft);
}

.catalogue-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:24px;
  align-items:stretch;
  width:100%;
}
.catalogue-grid[data-count="0"]{
  grid-template-columns:1fr;
}
.catalogue-grid[data-count="1"]{
  grid-template-columns:minmax(0, 400px);
  justify-content:center;
}
.catalogue-grid[data-count="2"],
.catalogue-grid[data-count="4"]{
  grid-template-columns:repeat(2, minmax(0, 1fr));
  max-width:780px;
  margin-left:auto;
  margin-right:auto;
}
.catalogue-grid .empty-note{
  grid-column:1 / -1;
}

.p-card{
  margin-bottom:0;
  background:var(--stone);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  height:100%;
  transition:transform .3s ease, box-shadow .3s ease;
}
.p-card:hover{ transform:translateY(-4px); box-shadow:0 18px 30px -18px rgba(31,51,36,0.35); }
.p-card .p-media{
  position:relative;
  aspect-ratio:4/5;
  width:100%;
  overflow:hidden;
  background:var(--stone);
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.p-card .p-media svg.candle-illo{
  width:100%;
  height:100%;
  display:block;
}
.p-tag{
  position:absolute; top:12px; left:12px;
  background:var(--gold); color:var(--cream);
  font-size:11px; padding:4px 10px; border-radius:999px; z-index:2;
}
.p-body{
  padding:16px 18px 20px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.p-body .p-cat{ font-size:12px; color:var(--ink-soft); text-transform:capitalize; }
.p-body .p-name{ font-family:var(--serif); font-size:18px; margin-top:4px; color:var(--ink); }
.p-body .p-price{ margin-top:auto; padding-top:10px; color:var(--forest-dark); font-weight:500; }
@media (max-width:860px){
  .catalogue-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
  .catalogue-grid[data-count="2"],
  .catalogue-grid[data-count="4"]{ max-width:none; }
}
@media (max-width:520px){
  .catalogue-grid,
  .catalogue-grid[data-count="1"],
  .catalogue-grid[data-count="2"],
  .catalogue-grid[data-count="4"]{
    grid-template-columns:minmax(0, 1fr);
    max-width:none;
    gap:18px;
  }
}

/* ============================================================
   PRODUCT PAGE
   ============================================================ */
.product-main{
  display:grid; grid-template-columns:1fr 1fr; gap:64px;
  padding:70px 0 100px;
  align-items:flex-start;
}
.product-gallery .g-main{
  aspect-ratio:1/1; background:var(--stone); border-radius:var(--radius); overflow:hidden;
}
.breadcrumb{ font-size:13px; color:var(--ink-soft); margin-bottom:18px; }
.breadcrumb a:hover{ color:var(--forest-dark); }
.product-info .p-cat{ color:var(--gold); font-family:var(--serif); font-style:italic; font-size:15px; }
.product-info h1{ font-size:clamp(28px,3.4vw,38px); margin:10px 0 14px; }
.product-info .price{ font-size:22px; color:var(--forest-dark); margin-bottom:22px; }
.product-info .desc{ color:var(--ink-soft); font-size:15.5px; margin-bottom:26px; }
.meta-row{
  display:flex; gap:28px; padding:20px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin-bottom:28px;
}
.meta-item .label{ font-size:12px; color:var(--ink-soft); margin-bottom:4px; }
.meta-item .val{ font-family:var(--serif); font-size:15px; color:var(--ink); }
.qty-row{ display:flex; align-items:center; gap:18px; margin-bottom:24px; }
.qty-control{ display:flex; align-items:center; border:1px solid var(--line); border-radius:var(--radius); }
.qty-control button{ width:38px; height:40px; background:none; border:0; font-size:16px; color:var(--forest-dark); }
.qty-control span{ width:32px; text-align:center; font-size:14px; }
.add-msg{ font-size:13px; color:var(--forest-mid); margin-top:10px; min-height:16px; }

.related-row{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:20px; align-items:stretch; }
@media (max-width:860px){
  .product-main{ grid-template-columns:1fr; gap:34px; }
  .related-row{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:520px){
  .related-row{ grid-template-columns:minmax(0, 1fr); }
}

/* ============================================================
   ADMIN
   ============================================================ */
.admin-shell{ min-height:70vh; }
.admin-login{
  max-width:380px; margin:110px auto; padding:44px 38px;
  background:var(--stone); border-radius:var(--radius);
}
.admin-login h1{ font-size:24px; margin-bottom:8px; }
.admin-login p{ color:var(--ink-soft); font-size:13.5px; margin-bottom:26px; }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:12.5px; color:var(--ink-soft); margin-bottom:6px; }
.field input, .field select, .field textarea{
  width:100%; padding:11px 14px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--cream); font-family:var(--sans); font-size:14px; color:var(--ink);
}
.field textarea{ resize:vertical; min-height:80px; }
.hint{ font-size:12px; color:var(--ink-soft); margin-top:14px; }
.error-msg{ color:#a3433a; font-size:13px; margin-top:10px; min-height:16px; }
.status-msg{ color:var(--ink-soft); font-size:13px; margin-top:10px; min-height:16px; }

.admin-bar{
  background:var(--forest-dark); color:var(--cream);
  padding:22px 0;
}
.admin-bar .wrap{ display:flex; justify-content:space-between; align-items:center; }
.admin-bar .logo{ color:var(--cream); }

.admin-body{ padding:44px 0 100px; }
.admin-toolbar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; flex-wrap:wrap; gap:14px; }
.admin-toolbar h1{ font-size:24px; }

table.admin-table{ width:100%; border-collapse:collapse; background:var(--stone); border-radius:var(--radius); overflow:hidden; }
table.admin-table th, table.admin-table td{ text-align:left; padding:14px 18px; font-size:14px; border-bottom:1px solid var(--line); }
table.admin-table th{ font-weight:500; color:var(--ink-soft); font-size:12.5px; text-transform:uppercase; letter-spacing:0.03em; }
table.admin-table tr:last-child td{ border-bottom:0; }
.row-actions{ display:flex; gap:10px; }
.row-actions button{ background:none; border:0; font-size:13px; color:var(--forest-dark); }
.row-actions button.del{ color:#a3433a; }
.row-actions button:hover{ text-decoration:underline; }

.modal-backdrop{
  position:fixed; inset:0; background:rgba(31,51,36,0.45);
  display:none; align-items:center; justify-content:center; z-index:100; padding:20px;
}
.modal-backdrop.open{ display:flex; }
.modal{
  background:var(--cream); border-radius:var(--radius); padding:34px; width:100%; max-width:480px;
  max-height:88vh; overflow-y:auto;
}
.modal h2{ font-size:20px; margin-bottom:20px; }
.modal-actions{ display:flex; gap:12px; margin-top:22px; justify-content:flex-end; }

.form-row-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }

.btn:disabled{ opacity:0.5; cursor:not-allowed; pointer-events:none; }
.p-tag.sold{ background:var(--forest-dark); }
.empty-note{ color:var(--ink-soft); font-size:15px; max-width:48ch; }
.empty-note a{ text-decoration:underline; color:var(--forest-dark); }
.text-btn{ background:none; border:0; font-size:13px; color:#a3433a; padding:0; }
.text-btn:hover{ text-decoration:underline; }

.cart-layout, .checkout-layout{
  display:grid;
  grid-template-columns:1.4fr 0.8fr;
  gap:40px;
  align-items:start;
}
@media (max-width:860px){
  .cart-layout, .checkout-layout{ grid-template-columns:1fr; }
}
.cart-list{ display:flex; flex-direction:column; gap:16px; }
.cart-line{
  display:grid;
  grid-template-columns:88px 1fr auto auto auto;
  gap:16px;
  align-items:center;
  background:var(--stone);
  padding:14px 16px;
  border-radius:var(--radius);
}
.cart-thumb{ width:88px; height:88px; overflow:hidden; }
.cart-line-total{ font-weight:500; min-width:4.5ch; text-align:right; }
@media (max-width:640px){
  .cart-line{ grid-template-columns:72px 1fr auto; }
  .cart-line-total, .cart-line .text-btn{ grid-column:2 / -1; }
}

.cart-summary{
  background:var(--stone);
  padding:28px 24px;
  border-radius:var(--radius);
}
.sum-row{
  display:flex; justify-content:space-between; gap:16px;
  font-size:14.5px; margin-bottom:10px;
}
.sum-row.total{ border-top:1px solid var(--line); padding-top:12px; margin-top:8px; font-size:16px; }
.cart-summary .btn{ margin-top:18px; width:100%; justify-content:center; }
.checkout-form{ background:var(--stone); padding:32px 28px; border-radius:var(--radius); }
.checkout-form .btn{ margin-top:8px; }

.order-card{
  max-width:560px;
  background:var(--stone);
  padding:40px 36px;
  border-radius:var(--radius);
}
.order-card h1{ font-size:clamp(26px,3.2vw,34px); margin:8px 0 16px; }
.order-card .btn{ margin-top:22px; }

.field input[type="checkbox"]{ width:auto; margin-right:8px; }

/* ============================================================
   AUTH & CUSTOMER ACCOUNT
   ============================================================ */
.nav-auth-link{
  font-size:13.5px;
  color:var(--forest-dark);
  padding:6px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  white-space:nowrap;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.nav-auth-link:hover{
  background:var(--forest-dark);
  color:var(--cream);
  border-color:var(--forest-dark);
}
@media (max-width:480px){
  .nav-right{ gap:12px; }
  .nav-auth-link{ padding:5px 10px; font-size:12.5px; }
}

.auth-wrap{ max-width:460px; margin:0 auto; }
.auth-card{
  background:var(--stone);
  padding:34px 32px;
  border-radius:var(--radius);
}
.auth-card h2{ font-size:24px; margin-bottom:8px; }
.auth-card-sub{ color:var(--ink-soft); font-size:14px; margin:0 0 24px; }
.btn-google{
  width:100%;
  justify-content:center;
  gap:12px;
  background:#ffffff;
  color:var(--ink);
  border:1px solid rgba(34,30,22,0.22);
  font-weight:500;
  padding:14px 20px;
}
.btn-google:hover{
  background:var(--cream);
  border-color:var(--forest-dark);
  box-shadow:0 8px 20px -14px rgba(31,51,36,0.45);
}
.auth-note{
  font-size:12.5px;
  color:var(--ink-soft);
  text-align:center;
  margin:14px 0 0;
}
.auth-alert{
  background:#f2dcd9;
  color:#7e2c24;
  border:1px solid rgba(163,67,58,0.28);
  border-radius:var(--radius);
  padding:12px 14px;
  font-size:13px;
  margin-bottom:18px;
}
.auth-footer-link{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
  text-align:center;
  font-size:13px;
  color:var(--ink-soft);
}
.auth-footer-link a{ color:var(--forest-dark); text-decoration:underline; }
.auth-links{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:16px;
  font-size:13px;
  color:var(--ink-soft);
  flex-wrap:wrap;
}
.auth-links .link-btn,
.link-btn{
  background:none;
  border:0;
  padding:0;
  color:var(--forest-dark);
  font-size:inherit;
  text-decoration:underline;
}
.success-msg{ color:var(--forest-mid); font-size:13.5px; margin-top:12px; }

.checkout-user-bar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  background:var(--cream);
  border:1px solid var(--line);
  padding:12px 14px;
  border-radius:var(--radius);
  margin-bottom:20px;
  font-size:13.5px;
  color:var(--ink-soft);
}
.checkout-user-bar strong{ color:var(--ink); font-weight:500; }

.account-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:28px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.account-layout{
  display:grid;
  grid-template-columns:0.95fr 1.15fr;
  gap:36px;
  align-items:start;
}
@media (max-width:860px){
  .account-layout{ grid-template-columns:1fr; }
}
.account-panel{
  background:var(--stone);
  padding:30px 28px;
  border-radius:var(--radius);
}
.account-panel h2{ font-size:22px; margin-bottom:18px; }
.order-list{ display:flex; flex-direction:column; gap:16px; }
.order-item-card{
  background:var(--cream);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:18px 20px;
}
.order-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.order-date{ font-size:13px; color:var(--ink-soft); }
.status-pill{
  font-size:11.5px;
  padding:3px 10px;
  border-radius:999px;
  background:var(--stone);
  color:var(--forest-dark);
  font-weight:500;
}
.status-pill.paid{ background:var(--forest-pale); color:var(--forest-dark); }
.status-pill.pending_payment{ background:#efe1c4; color:#7a5527; }
.status-pill.failed,
.status-pill.cancelled{ background:#f2dcd9; color:#a3433a; }
.order-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--line);
  font-size:13px;
}
.order-actions a{ color:var(--forest-dark); text-decoration:underline; }

/* ============================================================
   PRODUCT PHOTOS & STUDIO OWNER PORTAL
   ============================================================ */
.candle-photo{ width:100%; height:100%; object-fit:cover; display:block; }
.p-card .p-media .candle-photo{ width:100%; height:100%; }
.card-fill .candle-photo{ position:absolute; inset:0; width:100%; height:100%; }
.product-gallery .g-main .candle-photo{ width:100%; height:100%; }
.cart-thumb .candle-photo{ width:100%; height:100%; border-radius:var(--radius); }

.admin-login{ max-width:440px; margin:72px auto; padding:38px 34px; }
.admin-login-divider{
  display:flex; align-items:center; gap:12px; margin:20px 0;
  color:var(--ink-soft); font-size:12px;
}
.admin-login-divider::before,
.admin-login-divider::after{
  content:''; flex:1; height:1px; background:var(--line);
}
.admin-bar .wrap{ gap:16px; flex-wrap:wrap; }
.admin-bar-actions{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.admin-shop-link{ font-size:13px; color:rgba(246,241,230,0.85); text-decoration:underline; }
.admin-shop-link:hover{ color:var(--gold-soft); }

.admin-tabs{
  display:flex; gap:10px; flex-wrap:wrap;
  padding-bottom:18px; border-bottom:1px solid var(--line); margin-bottom:24px;
}
.admin-tab{
  display:inline-flex; align-items:center; gap:8px;
  padding:9px 18px; border:1px solid var(--line); border-radius:999px;
  background:transparent; color:var(--ink-soft); font-size:14px; font-weight:500;
}
.admin-tab.active, .admin-tab:hover{
  background:var(--forest-dark); color:var(--cream); border-color:var(--forest-dark);
}
.tab-badge{
  background:var(--gold); color:var(--cream); font-size:11px;
  padding:1px 7px; border-radius:999px; line-height:1.4;
}
.admin-tab.active .tab-badge{ background:var(--gold-soft); color:var(--forest-dark); }

.admin-stats{
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:14px;
  margin-bottom:28px;
}
@media (max-width:860px){ .admin-stats{ grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width:480px){ .admin-stats{ grid-template-columns:1fr; } }
.stat-card{
  background:var(--stone); border-radius:var(--radius); padding:18px 20px;
}
.stat-label{ font-size:12px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.04em; }
.stat-val{ font-family:var(--serif); font-size:26px; color:var(--forest-dark); margin:4px 0 2px; }
.stat-sub{ font-size:12.5px; color:var(--ink-soft); }

.admin-filters{
  display:flex; justify-content:space-between; align-items:center; gap:14px;
  flex-wrap:wrap; margin-bottom:20px;
}
.admin-search{
  padding:9px 14px; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--cream); font-family:var(--sans); font-size:13.5px; color:var(--ink);
  min-width:240px;
}
@media (max-width:640px){ .admin-search{ width:100%; min-width:0; } }

.table-wrap{ width:100%; overflow-x:auto; border-radius:var(--radius); background:var(--stone); }
.admin-candle-cell{ display:flex; align-items:center; gap:12px; min-width:200px; }
.admin-thumb{
  width:46px; height:54px; flex-shrink:0; border-radius:var(--radius);
  overflow:hidden; background:var(--cream); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
}
.admin-thumb img, .admin-thumb svg{ width:100%; height:100%; object-fit:cover; }
.admin-candle-name{ font-weight:500; color:var(--ink); display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.admin-slug{ font-size:12px; color:var(--ink-soft); margin-top:2px; }
.mini-tag{
  font-size:11px; padding:2px 8px; border-radius:999px;
  background:var(--gold); color:var(--cream);
}

.stock-stepper{
  display:inline-flex; align-items:center; gap:6px;
  background:var(--cream); border:1px solid var(--line); border-radius:var(--radius); padding:2px 4px;
}
.stock-stepper button{
  width:24px; height:24px; border:0; background:transparent;
  color:var(--forest-dark); font-size:15px; line-height:1; border-radius:var(--radius);
}
.stock-stepper button:hover{ background:var(--stone); }
.stock-stepper span{ min-width:24px; text-align:center; font-size:13.5px; font-weight:500; }
.stock-stepper.low span{ color:#8f5818; }
.stock-stepper.zero span{ color:#a3433a; }

.vis-toggle{
  font-size:12px; padding:4px 11px; border-radius:999px; border:1px solid transparent; font-weight:500;
}
.vis-toggle.on{ background:var(--forest-pale); color:var(--forest-dark); }
.vis-toggle.off{ background:#efe1c4; color:#7a5527; }

.modal.modal-wide{ max-width:860px; }
.modal-grid{
  display:grid; grid-template-columns:1.25fr 0.85fr; gap:28px; align-items:start;
}
@media (max-width:780px){ .modal.modal-wide{ max-width:520px; } .modal-grid{ grid-template-columns:1fr; } }
.modal-preview-col{
  background:var(--stone); padding:20px; border-radius:var(--radius); position:sticky; top:0;
}
.modal-preview-col h3{ font-size:15px; margin-bottom:12px; color:var(--ink-soft); font-family:var(--sans); font-weight:500; }
.preview-card-wrap .p-card{ margin-bottom:0; pointer-events:none; background:var(--cream); }

.photo-upload-box{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:12px; border:1px dashed rgba(34,30,22,0.28); border-radius:var(--radius); background:var(--stone);
}
.photo-upload-box input[type="file"]{ width:auto; padding:0; border:0; background:none; font-size:13px; max-width:240px; }
.photo-status{ font-size:12px; color:var(--ink-soft); margin-top:6px; }

.wax-row{ display:flex; align-items:center; gap:10px; }
.wax-row input[type="color"]{
  width:46px; height:40px; padding:2px; border:1px solid var(--line);
  border-radius:var(--radius); background:var(--cream); cursor:pointer; flex-shrink:0;
}
.wax-swatches{ display:flex; gap:8px; margin-top:8px; flex-wrap:wrap; }
.swatch-btn{
  width:22px; height:22px; border-radius:50%; border:1px solid rgba(34,30,22,0.25); padding:0;
}
.tag-presets{ display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
.tag-chip{
  font-size:11.5px; padding:3px 10px; border-radius:999px;
  border:1px solid var(--line); background:var(--cream); color:var(--ink-soft);
}
.tag-chip:hover{ border-color:var(--forest-dark); color:var(--forest-dark); }

.admin-orders-list{ display:flex; flex-direction:column; gap:16px; }
.admin-order-card{
  background:var(--stone); border-radius:var(--radius); padding:22px 24px;
}
.admin-order-top{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  flex-wrap:wrap; padding-bottom:12px; border-bottom:1px solid var(--line); margin-bottom:14px;
}
.admin-order-grid{
  display:grid; grid-template-columns:1.25fr 0.95fr; gap:24px; align-items:start;
}
@media (max-width:780px){ .admin-order-grid{ grid-template-columns:1fr; } }
.admin-order-meta{ font-size:13.5px; color:var(--ink-soft); line-height:1.6; }
.admin-order-meta strong{ color:var(--ink); font-weight:500; }
.fulfill-box{
  background:var(--cream); border:1px solid var(--line); border-radius:var(--radius); padding:16px;
}
.fulfill-box .field{ margin-bottom:12px; }
.fulfill-box-actions{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.fulfill-msg{ font-size:12.5px; color:var(--forest-mid); }
