/* ===== Lavior conversion trio (batch05: F12 / F13 / F14) =====
   Shipped as a separate same-origin stylesheet so it works under the site CSP
   (the main style.css lives on the server and is not in this working repo,
   so we must not inline <style> — CSP would block it). */

/* F13 — top announcement bar (site-wide, above the top utility bar) */
.annbar{
  background:#15203a;
  color:#ece7da;
  font-size:12.5px;
  letter-spacing:.2px;
  text-align:center;
  padding:7px 14px;
  line-height:1.45;
}
.annbar span{ display:inline-block; }
@media (max-width:560px){
  .annbar{ font-size:11px; padding:6px 10px; }
}

/* F12 — floating WhatsApp button (site-wide, bottom-right, fixed) */
.wa-float{
  position:fixed;
  right:22px;
  bottom:90px;            /* sits above the cookie consent bar */
  z-index:99999;
  width:54px;
  height:54px;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:26px;
  text-decoration:none;
  box-shadow:0 6px 18px rgba(0,0,0,.28);
  transition:transform .15s ease, box-shadow .15s ease;
}
.wa-float:hover{ transform:scale(1.07); box-shadow:0 8px 22px rgba(0,0,0,.34); }
.wa-float::after{
  content:attr(data-tip);
  position:absolute;
  right:64px;
  top:50%;
  transform:translateY(-50%);
  white-space:nowrap;
  background:#15203a;
  color:#fff;
  font-size:12px;
  padding:5px 9px;
  border-radius:6px;
  opacity:0;
  pointer-events:none;
  transition:opacity .15s ease;
}
.wa-float:hover::after{ opacity:1; }
@keyframes waPulse{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,.5); }
  70%{ box-shadow:0 0 0 12px rgba(37,211,102,0); }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); }
}
.wa-float{ animation:waPulse 2.4s infinite; }
@media (max-width:560px){
  .wa-float{ width:48px; height:48px; font-size:23px; right:14px; bottom:78px; }
}

/* F14 — trust strip (homepage, directly below the hero) */
.trust-strip{ background:#f6f7f9; border-bottom:1px solid #e7e3da; padding:22px 0; }
.trust-row{ display:flex; flex-wrap:wrap; gap:18px 30px; justify-content:center; align-items:center; }
.trust-item{ display:flex; align-items:center; gap:11px; min-width:0; }
.ti-ic{ font-size:24px; line-height:1; filter:drop-shadow(0 1px 1px rgba(0,0,0,.08)); }
.trust-item b{ display:block; font-size:14px; color:#15203a; font-family:var(--serif,Georgia,serif); letter-spacing:.2px; }
.trust-item small{ display:block; font-size:11.5px; color:#7a7468; margin-top:1px; }
@media (max-width:760px){
  .trust-row{ gap:14px 18px; }
  .trust-item small{ display:none; }
  .trust-item b{ font-size:13px; }
}

/* F15 (batch06) — B2B service commitment block (about.html) */
.commit-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:26px; }
.commit-card{ background:#fff; border:1px solid #e7e3da; border-radius:12px; padding:18px 18px 16px; }
.commit-card .cc-ic{ font-size:22px; line-height:1; }
.commit-card h3{ font-family:var(--serif,Georgia,serif); font-size:1.05rem; margin:8px 0 6px; color:#15203a; }
.commit-card p{ color:#5c574c; font-size:.92rem; line-height:1.6; margin:0; }
.commit-note{ margin-top:18px; font-size:.86rem; color:#7a7468; }
.commit-note a{ color:#15203a; text-decoration:underline; }
@media (max-width:860px){ .commit-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:540px){ .commit-grid{ grid-template-columns:1fr; } }

/* batch13 — commitments link folded into the trust row */
.trust-link{ display:flex; align-items:center; gap:10px; margin-left:4px; }
.trust-link .tl-sep{ display:block; width:1px; height:26px; background:#d9d3c6; }
.trust-link a{ color:#15203a; text-decoration:none; border-bottom:1px solid #b8893b; padding-bottom:1px; font-size:.88rem; white-space:nowrap; }
.trust-link a:hover{ color:#b8893b; }
@media (max-width:760px){ .trust-link .tl-sep{ display:none; } .trust-link a{ font-size:.8rem; } }

/* batch13 — site footer bottom: left copyright + right links */
.foot-bottom{ display:flex; flex-wrap:wrap; gap:8px 20px; align-items:center; justify-content:space-between; text-align:left; margin-top:34px; padding-top:20px; }
.foot-bottom .fb-copy{ font-size:.82rem; color:rgba(255,255,255,.45); }
.foot-bottom .fb-links{ display:flex; flex-wrap:wrap; gap:6px 16px; align-items:center; font-size:.82rem; }
.foot-bottom .fb-links a{ color:rgba(255,255,255,.6); text-decoration:none; border-bottom:1px solid rgba(255,255,255,.18); padding-bottom:1px; }
.foot-bottom .fb-links a:hover{ color:#d9be86; border-bottom-color:#b8893b; }
@media (max-width:640px){ .foot-bottom{ justify-content:flex-start; } }

/* batch14 — B2B commitments page (commitments.html) */
.flow-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:26px; }
.flow-step{ position:relative; background:#fff; border:1px solid #e7e3da; border-radius:12px; padding:20px 18px 18px; }
.flow-step .fs-n{ display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; border-radius:50%; background:#f3ecdd; color:#b8893b; font-family:var(--serif,Georgia,serif); font-size:.9rem; }
.flow-step h3{ font-family:var(--serif,Georgia,serif); font-size:1.02rem; margin:12px 0 6px; color:#15203a; }
.flow-step p{ color:#5c574c; font-size:.9rem; line-height:1.6; margin:0; }
.flow-step:after{ content:""; position:absolute; right:-12px; top:33px; width:16px; height:1px; background:#e0d9c9; }
.flow-step:last-child:after{ display:none; }
.cm-cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:30px; }
.story-more{ margin-top:16px; }
.story-more a{ color:#15203a; text-decoration:none; border-bottom:1px solid #b8893b; padding-bottom:1px; }
.story-more a:hover{ color:#b8893b; }
@media (max-width:860px){ .flow-grid{ grid-template-columns:repeat(2,1fr); } .flow-step:after{ display:none; } }
@media (max-width:540px){ .flow-grid{ grid-template-columns:1fr; } }

.prod-tools{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.prod-search{flex:1;min-width:200px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font-size:.95rem;font-family:inherit}
.prod-search:focus{outline:none;border-color:var(--gold)}
.prod-sel{padding:11px 14px;border:1px solid var(--line);border-radius:10px;font-size:.95rem;font-family:inherit;background:#fff}


/* ===== Quote cart (F17) ===== */

.qcart-launch{position:fixed;right:18px;bottom:18px;z-index:1200;width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;background:var(--gold,#c9a86a);color:#fff;box-shadow:0 6px 20px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;font-size:1.4rem}

.qcart-launch:hover{background:var(--gold-strong,#b89755)}

.qcart-badge{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--wine,#9a2b3a);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}

.qcart-panel{position:fixed;top:0;right:0;height:100%;width:340px;max-width:88vw;background:#fff;box-shadow:-8px 0 30px rgba(0,0,0,.16);z-index:1300;transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column}

.qcart-panel.open{transform:translateX(0)}

.qcart-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line,#e8e2d8);font-size:1.05rem;color:var(--navy,#2f3b4a)}

.qcart-x{background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;color:var(--muted,#8a8275)}

.qcart-list{flex:1;overflow-y:auto;padding:12px 14px}

.qcart-empty{color:var(--muted,#8a8275);text-align:center;padding:30px 0;font-size:.9rem}

.qcart-item{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line,#e8e2d8)}

.qcart-thumb{width:54px;height:54px;flex:0 0 auto;border-radius:8px;overflow:hidden;background:var(--cream,#f3f1ec);display:flex;align-items:center;justify-content:center}

.qcart-thumb img{width:100%;height:100%;object-fit:cover}

.qcart-noimg{font-size:1.4rem}

.qcart-info{flex:1;min-width:0}

.qcart-name{font-weight:600;font-size:.9rem;color:var(--navy,#2f3b4a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.qcart-sku{font-size:.74rem;color:var(--muted,#8a8275);margin:2px 0}

.qcart-row{display:flex;align-items:center;gap:8px;margin-top:6px}

.qcart-qty{width:64px;padding:6px 8px;border:1.5px solid var(--line,#e8e2d8);border-radius:8px;font-family:inherit;font-size:.85rem}

.qcart-rm{margin-left:auto;background:none;border:1px solid var(--line,#e8e2d8);border-radius:8px;width:28px;height:28px;cursor:pointer;color:var(--wine,#9a2b3a)}

.qcart-foot{display:flex;gap:10px;padding:14px 16px;border-top:1px solid var(--line,#e8e2d8)}

.qcart-btn-gold{flex:1;background:var(--gold,#c9a86a);color:#fff;border:none;border-radius:10px;padding:11px;font-weight:600;cursor:pointer;font-family:inherit}

.qcart-btn-gold:hover{background:var(--gold-strong,#b89755)}

.qcart-btn-ghost{flex:0 0 auto;background:#fff;border:1.5px solid var(--line,#e8e2d8);border-radius:10px;padding:11px 14px;cursor:pointer;font-family:inherit;color:var(--muted,#8a8275)}

.qcart-modal{position:fixed;inset:0;background:rgba(20,24,30,.5);z-index:1400;display:none;align-items:center;justify-content:center;padding:18px}

.qcart-modal.open{display:flex}

.qcart-modal-box{background:#fff;border-radius:14px;padding:20px;width:520px;max-width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3)}

.qcart-modal-head{display:flex;align-items:center;justify-content:space-between;font-size:1.1rem;color:var(--navy,#2f3b4a);margin-bottom:14px}

.qcart-err{background:#fff0f0;border:1px solid #e6b3b3;color:var(--wine,#9a2b3a);border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:.88rem}

.qcart-frow{display:flex;gap:12px;margin-bottom:12px}

.qcart-field{flex:1;margin-bottom:12px}

.qcart-field label{display:block;font-size:.82rem;font-weight:600;color:var(--navy,#2f3b4a);margin-bottom:5px}

.qcart-in{width:100%;padding:10px 12px;border:1.5px solid var(--line,#e8e2d8);border-radius:9px;font-family:inherit;font-size:.9rem;box-sizing:border-box}

.qcart-in:focus{outline:none;border-color:var(--gold,#c9a86a)}

.qcart-full{width:100%;margin-top:6px}

.qcart-toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(10px);background:var(--navy,#2f3b4a);color:#fff;padding:12px 20px;border-radius:30px;font-size:.9rem;z-index:1500;opacity:0;transition:opacity .25s,transform .25s;box-shadow:0 8px 24px rgba(0,0,0,.25)}

.qcart-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* batch08: recommendations / recently viewed / reviews / blog / coupon */
.pd-rec{margin:34px 0 10px;border-top:1px solid var(--line);padding-top:22px}
.rec-title{font-family:var(--serif);font-size:1.25rem;color:var(--wine);margin-bottom:14px}
.rec-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.rec-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;transition:.2s}
.rec-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px)}
.rec-card img{width:100%;height:150px;object-fit:cover;display:block;background:#f3eee7}
.rec-name{display:block;padding:10px 12px 2px;font-weight:600;font-size:.92rem}
.rec-price{display:block;padding:0 12px 12px;color:var(--gold);font-weight:700}
.recent-trail{margin:8px 0 26px}
.rt-title{font-family:var(--serif);font-size:1.05rem;color:var(--navy);margin-bottom:12px}
.rt-row{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px}
.rt-card{flex:0 0 auto;width:120px;text-align:center;text-decoration:none;color:inherit}
.rt-card img{width:120px;height:120px;object-fit:cover;border-radius:12px;display:block;background:#f3eee7;border:1px solid var(--line)}
.rt-card span{display:block;font-size:.8rem;margin-top:6px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.blog-list{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:18px 0}
.blog-card{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.2s}
.blog-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(-2px)}
.blog-card img{width:100%;height:170px;object-fit:cover;display:block;background:#f3eee7}
.blog-card-body{padding:14px 16px 18px}
.blog-card-body h3{font-family:var(--serif);color:var(--wine);margin:0 0 6px;font-size:1.05rem}
.blog-card-body p{color:var(--muted);font-size:.88rem;margin:0 0 8px}
.blog-date{font-size:.78rem;color:var(--gold)}
.post-detail img.post-cover{max-width:100%;border-radius:14px;margin-bottom:18px}
.post-excerpt{color:var(--muted);font-size:1.05rem}
.post-body{line-height:1.8;color:#3a2f2a}
.post-body img{max-width:100%}
.blog-back{display:inline-block;margin:6px 0 14px;color:var(--wine);text-decoration:none;font-weight:600}
.qcart-cp-msg{display:block;font-size:.82rem;color:var(--muted);padding-top:6px}
.qcart-cp-msg.ok{color:#2e7d32}
.qcart-cp-msg.bad{color:#c0392b}
.pd-reviews{margin:28px 0 10px;border-top:1px solid var(--line);padding-top:22px}
.pd-review-form{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;align-items:flex-start}
.pd-review-form input,.pd-review-form select,.pd-review-form textarea{padding:8px 10px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.pd-review-form input{flex:1;min-width:160px}
.pd-review-form textarea{flex-basis:100%;min-height:80px;resize:vertical}
.rv-item{border-bottom:1px solid var(--line);padding:12px 0}
.rv-item:last-child{border-bottom:none}
.rv-head{display:flex;gap:10px;align-items:center;margin-bottom:4px}
.rv-stars{color:var(--gold);letter-spacing:2px}
.rv-item p{margin:0;color:#3a2f2a;font-size:.92rem}

/* F16 / batch12 - wholesale catalog panel (moved from about.html to contact.html) */
#catalog{ padding:84px 0; }
.cat-panel{ max-width:640px; margin:0 auto; background:#fff; border:1px solid #e7e3da; border-radius:20px; padding:40px 42px 34px; box-shadow:0 20px 50px -30px rgba(59,9,18,.45); }
.cat-panel .eyebrow{ color:var(--gold,#C9A25E); }
.cat-panel h2{ font-size:clamp(1.6rem,2.6vw,2.05rem); line-height:1.25; margin:14px 0 0; color:#241511; }
.cat-panel .rule{ margin:16px 0 18px; }
.cat-panel>p{ color:#7d6c60; font-size:.96rem; line-height:1.7; margin:0 0 22px; }
.cat-form{ margin:0; display:grid; gap:12px; }
.cat-in{ width:100%; padding:13px 15px; border:1.5px solid rgba(36,21,17,.1); border-radius:12px; font-size:.95rem; font-family:inherit; background:var(--ivory,#FAF6EF); color:#241511; transition:.2s; }
.cat-in:focus{ outline:none; border-color:var(--gold,#C9A25E); background:#fff; box-shadow:0 0 0 4px rgba(201,162,94,.12); }
.cat-submit{ justify-self:center; min-width:230px; margin:4px 0 0; }
#catMsg{ min-height:20px; font-size:.88rem; font-weight:600; color:var(--wine,#5C0E1E); text-align:center; }
@media (max-width:600px){ #catalog{padding:64px 0} .cat-panel{padding:28px 22px 26px; border-radius:16px} .cat-submit{width:100%; min-width:0} }

/* generic gold ornament rule - previously defined only for .story-grid .txt / .inq-aside,
   so a bare .rule (e.g. about.html #commitment) rendered as an empty invisible div */
.rule{ width:64px; height:2px; background:linear-gradient(90deg,#C9A25E,transparent); margin:18px 0; }
