@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,400;6..96,500;6..96,600&family=Cormorant+Garamond:wght@400;500;600&family=DM+Serif+Display&family=LXGW+WenKai+TC:wght@300;400;700&family=Noto+Sans+TC:wght@300;400;500;600;700&family=Noto+Serif+TC:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600&family=Zen+Maru+Gothic:wght@300;400;500;700&display=swap');

:root{
  --bg:#f7f4ef;--paper:#fff;--ink:#282521;--muted:#7b746c;--line:#e7dfd6;
  --soft:#eee8df;--accent:#282521;--danger:#9d3f3f;--ok:#42694e;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}button{cursor:pointer}
a{color:inherit;text-decoration:none}
header{position:sticky;top:0;z-index:30;background:#fffdfbf0;backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{max-width:1180px;margin:auto;padding:15px 22px;display:flex;align-items:center;gap:18px}
.brand{font-size:21px;font-weight:850;letter-spacing:2.2px}.nav-actions{margin-left:auto;display:flex;gap:7px}
.icon-btn{border:0;background:transparent;padding:9px 12px;border-radius:20px}.icon-btn:hover{background:var(--soft)}
.badge{display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;border-radius:20px;background:var(--ink);color:#fff;font-size:11px;margin-left:3px}
.hero{max-width:1180px;margin:28px auto 0;padding:92px 30px;border-radius:28px;background:linear-gradient(135deg,#dfd2c1,#f5efe7 52%,#e6ddd1);text-align:center}
.hero small{letter-spacing:3px;color:#6e675e}.hero h1{font-size:48px;line-height:1.1;margin:13px 0}.hero p{color:#6c655d;line-height:1.8}
.btn{border:0;border-radius:12px;padding:11px 16px}.btn-dark{background:var(--accent);color:#fff}.btn-light{background:var(--soft)}.btn-danger{background:#f6e9e8;color:var(--danger)}
.hero .btn{border-radius:25px;padding:13px 22px;margin-top:10px}
.wrap{max-width:1180px;margin:46px auto;padding:0 22px}.heading-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.heading-row h2{margin:0}
.search{margin-left:auto;width:250px;border:1px solid var(--line);background:#fff;border-radius:23px;padding:10px 15px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 28px}.filters button{border:0;background:#fff;padding:9px 14px;border-radius:22px}.filters button.active{background:var(--ink);color:#fff}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.18s}.card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #3d302016}
.product-img{aspect-ratio:1;background:#eee9e1;overflow:hidden;display:flex;align-items:center;justify-content:center}.product-img img{width:100%;height:100%;object-fit:cover}
.placeholder{font-size:52px;color:#b9b0a6}.card-body{padding:15px}.category{font-size:12px;color:var(--muted);margin-bottom:6px}.price{font-size:17px;font-weight:800;margin-top:9px}.stock{font-size:12px;color:var(--muted);margin-top:4px}
.full{width:100%;margin-top:13px}.empty{text-align:center;color:#969089;padding:65px 15px}.loading{text-align:center;padding:70px;color:#888}
.overlay{display:none;position:fixed;inset:0;background:#15110db3;z-index:70;padding:24px;overflow:auto}.overlay.show{display:block}
.modal{max-width:760px;margin:3vh auto;background:#fff;border-radius:22px;padding:25px;box-shadow:0 30px 80px #0004}.close{float:right;width:34px;height:34px;border:0;border-radius:50%;background:#eee}
.detail{display:grid;grid-template-columns:1fr 1fr;gap:26px}.detail .product-img{border-radius:15px}.desc{white-space:pre-wrap;line-height:1.8;color:#665f58}
.cart-row{display:flex;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #eee}.thumb{width:64px;height:64px;border-radius:9px;object-fit:cover;background:#eee}.grow{flex:1}.qty{display:flex;gap:8px;align-items:center}.qty button{border:0;background:#eee;border-radius:8px;padding:5px 10px}.total{font-weight:850;font-size:20px;text-align:right;margin:18px 0}
.notice{padding:12px 14px;background:#f3efe8;border-radius:11px;color:#625c55;font-size:13px;line-height:1.6}.success{background:#eaf4ed;color:#356044}.error{background:#f8e9e8;color:#8a3939}
label{display:block;font-size:13px;color:#6e675f;margin:13px 0 6px}
input,select,textarea{width:100%;border:1px solid #ddd5cb;border-radius:10px;padding:11px;background:#fff}textarea{min-height:95px;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:18px}
.summary{background:#faf8f4;border:1px solid var(--line);border-radius:14px;padding:15px;margin-top:16px}.summary-line{display:flex;justify-content:space-between;padding:5px 0}
footer{margin-top:80px;padding:35px 20px;text-align:center;border-top:1px solid var(--line);color:#918a82;font-size:13px}

/* admin */
.admin-shell{max-width:1120px;margin:36px auto;padding:0 22px}.admin-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.admin-top .right{margin-left:auto}.tabs{display:flex;gap:8px;margin-bottom:20px}.tabs button{border:0;border-radius:11px;padding:10px 15px;background:#fff}.tabs button.active{background:var(--ink);color:#fff}
.panel{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px}.admin-item{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid #eee}.admin-item:last-child{border-bottom:0}.admin-thumb{width:62px;height:62px;object-fit:cover;border-radius:9px;background:#eee}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:11px;border-bottom:1px solid #eee;font-size:14px}th{color:#777}
.status{display:inline-block;padding:4px 9px;border-radius:20px;background:#eee;font-size:12px}.status-new{background:#fff0ce}.status-paid{background:#dff0e2}.status-shipped{background:#e3edf8}.status-cancelled{background:#f5dfdf}
.login-card{max-width:430px;margin:10vh auto;background:#fff;border:1px solid var(--line);border-radius:20px;padding:27px}
@media(max-width:850px){.grid{grid-template-columns:repeat(2,1fr)}.detail{grid-template-columns:1fr}.hero h1{font-size:37px}.row{grid-template-columns:1fr}}
@media(max-width:540px){.nav{padding:12px}.brand{font-size:18px}.nav-actions .shop-label{display:none}.hero{margin:13px 12px;padding:60px 19px}.hero h1{font-size:31px}.wrap{padding:0 12px;margin-top:35px}.grid{gap:10px}.search{width:100%;margin-left:0}.card-body{padding:12px}.overlay{padding:9px}.modal{padding:19px;margin:2vh auto}.admin-shell{padding:0 12px}}


/* CANNI V2.2 多圖商品 */
.gallery-main{border-radius:15px}
.gallery-thumbs{display:flex;gap:9px;overflow-x:auto;padding:10px 2px 2px}
.gallery-thumb{width:72px;height:72px;min-width:72px;border:2px solid transparent;border-radius:10px;padding:0;background:#f0ece6;overflow:hidden}
.gallery-thumb.selected{border-color:var(--ink)}
.gallery-thumb img{width:100%;height:100%;object-fit:cover}
.admin-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.admin-gallery-item{display:grid;grid-template-columns:78px 1fr;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:9px;background:#faf8f5}
.admin-gallery-item img{width:78px;height:78px;object-fit:cover;border-radius:9px;background:#eee}
.admin-gallery-meta{display:flex;flex-direction:column;gap:4px;font-size:13px}
.admin-gallery-meta span{color:#888;font-size:12px}
.admin-gallery-actions{grid-column:1/-1;display:flex;gap:6px}
.admin-gallery-actions .btn{padding:7px 10px}
@media(max-width:560px){
 .gallery-thumb{width:62px;height:62px;min-width:62px}
 .admin-gallery{grid-template-columns:1fr}
}

/* V2.3 */
.toast-wrap{position:fixed;right:18px;bottom:18px;z-index:120}.toast{background:#24211e;color:#fff;padding:12px 15px;border-radius:12px;margin-top:8px}
.product-badge{position:absolute;left:10px;top:10px;background:white;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700}.card .product-img{position:relative}
.low-stock{color:#a65b2f;font-weight:700}.sold-out{color:#9b3d3d;font-weight:700}
.shop-controls{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.sort-select{width:auto;min-width:150px;border-radius:22px}
.section-title{margin:38px 0 16px}.gallery-stage{position:relative}.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:50%;background:#ffffffdd}.gallery-arrow.prev{left:10px}.gallery-arrow.next{right:10px}
.cart-remove{border:0;background:transparent;color:#9b3d3d;padding:4px 0}.continue-link{background:#eee;color:#333}
.admin-order-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px}.admin-order-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px;font-size:13px;color:#666}
.img-preview-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}.img-preview-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}
@media(max-width:700px){.shop-controls{width:100%;margin-left:0}.admin-order-grid{grid-template-columns:1fr}.img-preview-grid{grid-template-columns:repeat(3,1fr)}}

/* V3 member */
.member-card{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px;background:#fff}
.auth-tabs{display:flex;gap:8px;margin-bottom:14px}.auth-tabs button{flex:1;border:0;border-radius:10px;padding:10px;background:#eee}.auth-tabs button.active{background:var(--ink);color:#fff}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.member-small{font-size:12px;color:#888}
.member-order-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.member-order-items{margin-top:10px;border-top:1px solid #eee;padding-top:8px}
@media(max-width:650px){.profile-grid{grid-template-columns:1fr}}


/* ===== V3.1 分類列優化 ===== */
.filters{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
  margin:22px 0 28px;
}
.filter-row{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.filter-row-special{
  padding-bottom:10px;
  border-bottom:1px solid var(--line);
}
.filter-title{
  min-width:44px;
  color:var(--muted);
  font-size:12px;
  font-weight:700;
  letter-spacing:.08em;
}
.filter-row-special button{
  background:#f1ece5;
  font-weight:700;
}
.filter-row-special button.active{
  background:var(--ink);
  color:#fff;
}
.filter-row-category button{
  background:#fff;
}
.filter-row-category button.active{
  background:var(--ink);
  color:#fff;
}
@media(max-width:540px){
  .filter-title{
    width:100%;
    min-width:0;
    margin-bottom:2px;
  }
  .filter-row{
    gap:7px;
  }
  .filter-row button{
    padding:8px 12px;
  }
}

/* V3.2 hero background */
.hero{background-size:cover;background-position:center;background-repeat:no-repeat}
.hero.hero-has-image{position:relative;overflow:hidden}
.hero.hero-has-image h1,.hero.hero-has-image p,.hero.hero-has-image .eyebrow,.hero.hero-has-image .btn{position:relative;z-index:1}
.hero-admin-preview{display:block;width:min(100%,620px);max-height:280px;object-fit:cover;border-radius:14px;margin:10px 0}

/* V3.2.3 商城設定實際套用修正 */
.hero.hero-has-image{
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
.hero.hero-has-image h1,
.hero.hero-has-image p,
.hero.hero-has-image small,
.hero.hero-has-image .btn{
  text-shadow:0 1px 12px rgba(255,255,255,.55);
}


/* ===== V3.2.4 多圖上傳視窗防爆版 ===== */

/* 整個遮罩可以捲動，避免內容比螢幕高時卡死 */
.overlay{
  overflow-y:auto !important;
  overflow-x:hidden !important;
}

/* 彈窗永遠不要超出畫面，內容改在彈窗內捲動 */
.modal{
  position:relative;
  width:min(760px, calc(100vw - 20px));
  max-height:calc(100vh - 24px);
  overflow-y:auto;
  overflow-x:hidden;
  margin:12px auto !important;
  padding-top:18px;
}

/* 關閉叉叉固定在彈窗右上，不會被長內容推走 */
.modal .close{
  position:sticky;
  top:0;
  z-index:50;
  float:right;
  margin-left:auto;
  margin-bottom:-34px;
  box-shadow:0 4px 14px rgba(0,0,0,.12);
}

/* 剛選取、尚未儲存的照片預覽不要無限變大 */
.img-preview-grid{
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  max-height:230px;
  overflow-y:auto;
  padding:8px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#faf8f5;
}
.img-preview-grid:empty{
  display:none;
}
.img-preview-grid img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  max-height:110px;
}

/* 已上傳商品圖片管理區同樣限制高度 */
.admin-gallery{
  max-height:360px;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:4px;
}
.admin-gallery-item{
  min-width:0;
}
.admin-gallery-item img{
  max-width:78px;
}

/* 避免很長檔名、網址或文字把視窗往左右撐爆 */
.modal,
.modal *{
  min-width:0;
  overflow-wrap:anywhere;
}

/* 手機 */
@media(max-width:700px){
  .overlay{
    padding:6px !important;
  }
  .modal{
    width:100%;
    max-height:calc(100vh - 12px);
    margin:6px auto !important;
    border-radius:16px;
  }
  .img-preview-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    max-height:260px;
  }
  .admin-gallery{
    max-height:420px;
  }
}

/* ===== CANNI V4 BRAND STORE ===== */
.v4-header{background:rgba(255,255,255,.94);backdrop-filter:blur(12px);position:sticky;top:0;z-index:70;border-bottom:1px solid rgba(0,0,0,.06)}
.v4-nav{max-width:1280px;margin:auto;height:72px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 28px}
.v4-brand{font-family:Georgia,serif;font-size:25px;letter-spacing:.14em;text-transform:none}
.v4-nav .nav-actions{justify-self:end}.hamburger{width:42px;height:42px;border:0;background:transparent;padding:10px;display:flex;flex-direction:column;justify-content:center;gap:5px;cursor:pointer}
.hamburger span{display:block;width:21px;height:1px;background:#222}.menu-shade{position:fixed;inset:0;background:#0006;z-index:88;opacity:0;visibility:hidden;transition:.25s}.menu-shade.show{opacity:1;visibility:visible}
.side-menu{position:fixed;z-index:90;left:0;top:0;bottom:0;width:min(390px,88vw);background:#fff;transform:translateX(-102%);transition:.3s ease;padding:26px 30px;overflow:auto}.side-menu.open{transform:none}.menu-open{overflow:hidden}
.side-menu-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:26px;border-bottom:1px solid #eee;font-family:Georgia,serif;font-size:24px}.side-menu-head button{border:0;background:none;font-size:30px;font-weight:200}
.side-menu nav{display:flex;flex-direction:column;padding-top:18px}.side-menu nav>a,.side-menu nav>button{border:0;background:none;text-align:left;color:#222;text-decoration:none;font-size:17px;padding:13px 0;cursor:pointer}.menu-label{font-size:10px;letter-spacing:.18em;color:#999;margin:22px 0 5px}
.v4-hero{min-height:calc(100vh - 72px);display:flex;align-items:center;padding:8vw;background-color:#eee7df;background-size:cover!important;background-position:center!important}.hero-copy{max-width:620px}.v4-hero small,.home-heading small,.editorial-banner small{letter-spacing:.2em;font-size:10px}.v4-hero h1{font-family:Georgia,serif;font-size:clamp(44px,6vw,82px);line-height:1.05;font-weight:400;margin:18px 0}.v4-hero p{font-size:15px;letter-spacing:.08em;margin-bottom:30px}
.v4-home{max-width:1280px;margin:auto;padding:80px 28px}.home-section{margin-bottom:110px}.home-heading{text-align:center;margin-bottom:34px}.home-heading h2{font-family:Georgia,serif;font-weight:400;font-size:36px;margin:9px 0}.row-heading{display:flex;justify-content:space-between;text-align:left;align-items:end}.row-heading button{border:0;background:none;text-decoration:underline}
.collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.collection-card{min-height:430px;border:0;background:#eee8e0;display:flex;flex-direction:column;justify-content:end;align-items:flex-start;padding:25px;text-align:left;cursor:pointer;background-size:cover;background-position:center;position:relative;overflow:hidden}.collection-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,#0008)}.collection-card span,.collection-card b{position:relative;z-index:1;color:#fff}.collection-card span{font-size:10px;letter-spacing:.2em}.collection-card b{font-family:Georgia,serif;font-size:25px;margin-top:7px}
.collection-card.crystal{background-image:linear-gradient(135deg,#d8cec2,#9d8b7b)}.collection-card.silver{background-image:linear-gradient(135deg,#dedede,#858585)}.collection-card.charm{background-image:linear-gradient(135deg,#d6c3b8,#a87e68)}.collection-card.rabbit{background-image:linear-gradient(135deg,#eadfd4,#b9a18e)}
.home-products{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.home-product{cursor:pointer}.home-product-img{aspect-ratio:4/5;background:#f4f1ed;overflow:hidden}.home-product-img img{width:100%;height:100%;object-fit:cover;transition:.4s}.home-product:hover img{transform:scale(1.025)}.home-product-meta{display:flex;flex-direction:column;gap:5px;padding-top:13px}.home-product-meta small{font-size:10px;color:#888;letter-spacing:.08em}.home-product-meta b{font-weight:500}.home-product-meta span{font-size:13px}
.editorial-banner{min-height:520px;background:#2d2a27;color:#fff;margin:0 calc((1280px - 100vw)/2) 110px;padding:90px max(28px,calc((100vw - 1224px)/2));display:flex;align-items:center}.editorial-banner h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(38px,5vw,66px);line-height:1.08}.v4-shop{padding-top:55px;padding-bottom:80px}.shop-breadcrumb{font-size:12px;color:#888;margin-bottom:25px}.shop-breadcrumb button{border:0;background:none;padding:0;color:#888}.v4-shop .heading-row h1{font-family:Georgia,serif;font-size:44px;font-weight:400}
[hidden]{display:none!important}
@media(max-width:850px){.collection-grid,.home-products{grid-template-columns:repeat(2,1fr)}.collection-card{min-height:330px}.account-icon{display:none}.v4-home{padding-top:55px}.home-section{margin-bottom:75px}.editorial-banner{margin-bottom:75px}.v4-nav{padding:0 12px}}
@media(max-width:520px){.v4-nav{height:62px}.v4-brand{font-size:21px}.v4-hero{min-height:72vh;padding:28px}.v4-hero h1{font-size:45px}.v4-home{padding:45px 14px}.collection-grid{gap:7px}.collection-card{min-height:250px;padding:15px}.collection-card b{font-size:19px}.home-products{gap:9px}.home-heading h2{font-size:30px}.row-heading{align-items:center}.editorial-banner{min-height:390px;padding:50px 24px}.v4-shop{padding:35px 14px}.v4-shop .heading-row h1{font-size:35px}}

/* ===== V4.1 hero text alignment ===== */
.v4-hero{
  justify-content:flex-start !important;
}
.hero-copy{
  max-width:720px !important;
  margin-left:6vw;
  text-align:left !important;
}
.v4-hero h1{
  display:block;
  margin-left:0 !important;
  text-align:left !important;
}
.v4-hero h1 span{
  display:inline;
}
.v4-hero h1 br{
  display:block;
  content:"";
}
.v4-hero p,
.v4-hero small,
.v4-hero .btn{
  margin-left:0 !important;
}
@media(max-width:700px){
  .hero-copy{
    margin-left:0;
    max-width:100% !important;
  }
  .v4-hero h1{
    font-size:clamp(40px,12vw,54px);
    line-height:1.08;
  }
}

/* ===== V4.2 商城設定分類 ===== */
.settings-head{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:16px}
.settings-head p{margin:5px 0 0;color:#888;font-size:13px}
.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;position:sticky;top:0;z-index:8;background:#f7f3ee;padding:8px 0}
.settings-tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 14px;cursor:pointer}
.settings-tabs button.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.settings-section{display:none}
.settings-section.active{display:block}
.settings-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;margin-bottom:14px}
.settings-card h3{margin:0 0 14px}
.setting-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.setting-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.settings-card input[type="color"]{height:48px;padding:5px}
.settings-savebar{position:sticky;bottom:0;background:linear-gradient(transparent,#f7f3ee 28%);padding:24px 0 6px;display:flex;justify-content:flex-end}
@media(max-width:700px){
  .setting-grid-2,.setting-grid-3{grid-template-columns:1fr}
  .settings-tabs{overflow-x:auto;flex-wrap:nowrap}
  .settings-tabs button{white-space:nowrap}
}

/* ===== V4.3 首頁圖片設定 ===== */
.settings-help{margin:-4px 0 14px;color:#888;font-size:13px}
.home-image-setting-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.home-image-setting-card{
  border:1px solid var(--line);
  border-radius:13px;
  padding:12px;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
}
.home-setting-thumb{
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
  border-radius:10px;
  background:#eee;
}
.home-setting-thumb.preview{
  margin-top:8px;
}
.home-setting-empty{
  aspect-ratio:16/10;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#f4f1ed;
  color:#999;
  font-size:12px;
}
.collection-card.custom-home-image{
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
.editorial-banner.custom-editorial-image{
  background-size:cover !important;
  background-position:center !important;
  background-repeat:no-repeat !important;
}
@media(max-width:700px){
  .home-image-setting-grid{grid-template-columns:1fr}
}

/* ===== V4.4 大分類與分類頁形象圖 ===== */
.category-hero-banner{
  min-height:340px;
  border-radius:24px;
  margin:0 0 42px;
  padding:48px;
  display:flex;
  align-items:flex-end;
  background:#e9e0d5;
  background-size:cover;
  background-position:center;
  overflow:hidden;
}
.category-hero-banner[hidden]{display:none!important}
.category-hero-copy{max-width:680px}
.category-hero-copy span{font-size:11px;letter-spacing:.24em;color:#766a5f}
.category-hero-copy h1{font-family:Georgia,serif;font-size:52px;margin:10px 0 8px;line-height:1.05}
.category-hero-copy p{margin:0;font-size:17px;color:#62584f}
.category-hero-banner.has-image .category-hero-copy span,
.category-hero-banner.has-image .category-hero-copy h1,
.category-hero-banner.has-image .category-hero-copy p{color:#fff;text-shadow:0 1px 16px #0005}
.dynamic-collection-card{appearance:none;width:100%;font:inherit}
.dynamic-main-category-menu{margin-top:22px;padding-top:18px;border-top:1px solid #ddd}
.dynamic-main-category-menu button{display:block;width:100%;text-align:left;border:0;background:none;padding:11px 0;cursor:pointer;font:inherit}
.dynamic-menu-title{font-size:11px;letter-spacing:.16em;color:#999;margin-bottom:6px}
.admin-section-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}
.main-category-image-editor{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0}
@media(max-width:700px){
  .category-hero-banner{min-height:245px;border-radius:16px;padding:26px;margin-bottom:28px}
  .category-hero-copy h1{font-size:38px}
  .category-hero-copy p{font-size:14px}
  .main-category-image-editor{grid-template-columns:1fr}
  .admin-section-head{flex-direction:column}
}

/* ===== V4.4.2 細分類整合進大分類 ===== */
.main-category-admin-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  padding:16px;
  margin-bottom:16px;
}
.main-category-admin-head{
  display:flex;
  align-items:center;
  gap:12px;
}
.main-category-name{font-size:18px}
.main-category-meta{font-size:13px;color:#888;margin-top:4px}
.subcategory-admin{
  margin-top:16px;
  padding:14px;
  border-radius:14px;
  background:#f7f3ee;
}
.subcategory-admin-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  margin-bottom:9px;
}
.subcategory-row{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 0;
  border-top:1px solid rgba(0,0,0,.07);
}
.subcategory-row .grow{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.subcategory-row span{font-size:12px;color:#888}
.subcategory-empty{font-size:13px;color:#999;padding:8px 0}
@media(max-width:700px){
  .main-category-admin-head{flex-wrap:wrap}
  .main-category-admin-head .grow{min-width:calc(100% - 100px)}
  .subcategory-row{flex-wrap:wrap}
  .subcategory-row .grow{width:100%}
}

/* ===== V4.4.3 側邊選單：大分類展開細分類 ===== */
.side-category-tree{
  display:flex;
  flex-direction:column;
}
.side-category-group{
  border-bottom:1px solid rgba(0,0,0,.055);
}
.side-category-main{
  display:grid;
  grid-template-columns:1fr 44px;
  align-items:center;
}
.side-category-main .side-category-link{
  border:0;
  background:none;
  text-align:left;
  padding:13px 0;
  font-size:17px;
  cursor:pointer;
}
.side-category-toggle{
  width:38px;
  height:38px;
  justify-self:end;
  border:0;
  background:none;
  font-size:22px;
  font-weight:300;
  cursor:pointer;
  transition:transform .2s ease;
}
.side-category-group.open .side-category-toggle{
  transform:rotate(45deg);
}
.side-subcategories{
  max-height:0;
  opacity:0;
  overflow:hidden;
  padding-left:14px;
  transition:max-height .28s ease,opacity .2s ease,padding .28s ease;
}
.side-category-group.open .side-subcategories{
  max-height:480px;
  opacity:1;
  padding-bottom:12px;
}
.side-subcategories button{
  display:block;
  width:100%;
  border:0;
  background:none;
  text-align:left;
  padding:9px 0 9px 12px;
  font-size:14px;
  color:#665f58;
  cursor:pointer;
  border-left:1px solid #ddd5cc;
}
.side-subcategories button:hover{
  color:#111;
}
.side-subcategory-all{
  font-weight:600;
}
.dynamic-main-category-menu{
  display:none !important;
}


/* ===========================================================
   CANNI V5
   =========================================================== */
.favorite-btn{position:absolute;right:12px;top:12px;z-index:5;width:38px;height:38px;border:0;border-radius:50%;background:#fffddd;color:#29241f;font-size:22px;cursor:pointer;box-shadow:0 2px 12px #0001}
.favorite-btn.active{color:#b24141}
.v5-card-image{position:relative}
.v5-card-image .secondary-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s}
.v5-product-card:hover .secondary-img{opacity:1}
.quick-add{position:absolute;left:12px;right:12px;bottom:12px;z-index:6;border:0;background:#201d1a;color:#fff;border-radius:999px;padding:11px;opacity:0;transform:translateY(8px);transition:.2s;cursor:pointer}
.v5-product-card:hover .quick-add{opacity:1;transform:none}
.quick-add:disabled{opacity:.5}
.v5-title-row{display:flex;align-items:flex-start;gap:12px}
.v5-title-row h2{flex:1}
.detail-favorite{position:static;flex:0 0 auto}
.product-info-box{border-top:1px solid var(--line);padding:14px 0}
.product-info-box summary{cursor:pointer;font-weight:600}
.product-info-box p{color:#6f675f;line-height:1.7}
.v5-similar{margin-top:36px;border-top:1px solid var(--line);padding-top:26px}
.v5-similar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.v5-similar-grid button{border:0;background:none;text-align:left;cursor:pointer}
.v5-similar-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}
.v5-similar-grid span,.v5-similar-grid b{display:block;margin-top:5px}

.cart-shade{position:fixed;inset:0;background:#0006;z-index:120;opacity:0;visibility:hidden;transition:.25s}
.cart-shade.show{opacity:1;visibility:visible}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,94vw);z-index:121;background:#fff;transform:translateX(102%);transition:.3s;display:flex;flex-direction:column;box-shadow:-20px 0 50px #0002}
.cart-drawer.open{transform:none}
.cart-drawer-head{height:72px;border-bottom:1px solid #eee;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font-size:20px}
.cart-drawer-head button{border:0;background:none;font-size:30px}
#cartDrawerBody{display:flex;flex-direction:column;min-height:0;flex:1}
.cart-drawer-lines{overflow:auto;flex:1;padding:12px 20px}
.cart-drawer-summary{border-top:1px solid #eee;padding:18px 20px}
.free-ship{padding:14px 20px;background:#f7f3ee;font-size:13px}
.progress{height:5px;border-radius:999px;background:#ded7ce;margin-top:9px;overflow:hidden}
.progress i{display:block;height:100%;background:#29241f;border-radius:999px}
.cart-open{overflow:hidden}

.checkout-steps{display:flex;gap:5px;margin:0 0 22px}
.checkout-steps span{flex:1;padding:9px;text-align:center;background:#f1ece6;border-radius:8px;font-size:12px}
.checkout-steps .active{background:#29241f;color:#fff}
.payment-options{display:grid;gap:8px;margin-bottom:14px}
.payment-options label{border:1px solid var(--line);border-radius:10px;padding:12px;margin:0}
.payment-options input{width:auto}
.payment-options .disabled{opacity:.45}

.member-menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.member-menu-grid button{border:1px solid var(--line);background:#fff;border-radius:14px;padding:18px;text-align:left;font:inherit;cursor:pointer}
.member-menu-grid small{color:#888}
.favorite-list{display:grid;gap:8px;margin-bottom:16px}
.favorite-list button{display:grid;grid-template-columns:70px 1fr 20px;align-items:center;gap:12px;border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px;text-align:left}
.favorite-list img{width:70px;height:70px;object-fit:cover;border-radius:8px}
.favorite-list span>*{display:block}

.v5-slider{padding:0!important;position:relative;overflow:hidden;background:#eee!important}
.hero-slide-stage{width:100%;min-height:calc(100vh - 72px);display:flex;align-items:center;padding:8vw;background-size:cover;background-position:center}
.hero-slide-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:46px;height:46px;border-radius:50%;border:1px solid #fff8;background:#fff9;font-size:28px}
.hero-slide-arrow.prev{left:22px}.hero-slide-arrow.next{right:22px}
.hero-dots{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:7px}
.hero-dots button{width:8px;height:8px;border-radius:50%;border:0;background:#fff8;padding:0}
.hero-dots button.active{background:#222}

.category-highlights{margin:0 0 28px}
.category-highlight-head{display:flex;justify-content:space-between;margin-bottom:10px}
.category-highlight-head span{color:#888;font-size:12px}
.category-highlight-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.category-highlight-grid button{border:0;background:#fff;text-align:left;padding:0;cursor:pointer}
.category-highlight-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.category-highlight-grid span{display:block;padding:7px 2px}

.v5-admin-dashboard{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.admin-stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px}
.admin-stat small,.admin-stat span{display:block;color:#888}
.admin-stat b{display:block;font-size:34px;margin:6px 0}
.layout-order-row{display:grid;grid-template-columns:1fr 100px;align-items:center;gap:10px;margin:8px 0}
.v5-product-extra{margin-top:14px}

@media(max-width:800px){
  .quick-add{opacity:1;transform:none;font-size:12px}
  .v5-similar-grid,.category-highlight-grid{grid-template-columns:repeat(2,1fr)}
  .v5-admin-dashboard{grid-template-columns:1fr 1fr}
  .hero-slide-stage{min-height:72vh;padding:28px}
  .hero-slide-arrow{width:38px;height:38px}
}
@media(max-width:520px){
  .member-menu-grid{grid-template-columns:1fr}
  .v5-admin-dashboard{grid-template-columns:1fr}
}

/* V5.1 後台設定整理 */
.home-order-row{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:11px 0;border-top:1px solid rgba(0,0,0,.07)}
.home-order-row:first-child{border-top:0}
.home-order-number{width:28px;height:28px;border-radius:50%;background:#f1ece6;display:grid;place-items:center;font-size:12px}
.home-order-actions{display:flex;gap:6px}
.home-order-actions .btn{min-width:42px;padding:7px 10px}
#v51BannerManager{margin-top:18px}

/* CANNI V6 */
.skeleton-grid{display:grid!important}.skeleton-card{min-height:390px;border-radius:12px;background:linear-gradient(90deg,#eee8e1 25%,#f8f5f1 37%,#eee8e1 63%);background-size:400% 100%;animation:skeletonV6 1.3s infinite}@keyframes skeletonV6{0%{background-position:100% 0}100%{background-position:0 0}}
.card-quick-actions{position:absolute;left:10px;right:10px;bottom:10px;z-index:7;display:grid;grid-template-columns:1fr 1fr;gap:6px;opacity:0;transform:translateY(8px);transition:.2s}.card-quick-actions button{border:0;border-radius:999px;padding:10px 5px;background:#fff;color:#222;box-shadow:0 2px 12px #0002}.card-quick-actions button:last-child{background:#24211e;color:#fff}.v5-product-card:hover .card-quick-actions{opacity:1;transform:none}
.low-stock{color:#a14a33!important;font-weight:600}.product-breadcrumb{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:12px;color:#888;margin-bottom:18px}.product-breadcrumb button{border:0;background:none;padding:0;color:#777}.product-breadcrumb b{color:#333}
.cart-variant{display:block;color:#888;margin:3px 0}.favorite-v6-row{display:grid;grid-template-columns:72px 1fr auto auto;gap:9px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:8px}.favorite-v6-row img{width:72px;height:72px;object-fit:cover;border-radius:8px}.favorite-v6-row small{display:block;color:#777;margin-top:5px}
.member-order-v6{width:100%;display:flex;justify-content:space-between;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:13px;margin:8px 0}.member-order-v6 div{display:flex;flex-direction:column;gap:4px}.member-order-v6 div:last-child{text-align:right}.member-order-v6 small{color:#888}
.site-logo{display:block;max-height:38px;max-width:180px;object-fit:contain}.v6-footer{padding:55px max(24px,calc((100vw - 1220px)/2)) 20px;background:#282522;color:#eee}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer-grid>div{display:flex;flex-direction:column;gap:10px}.footer-grid button,.footer-grid a{border:0;background:none;color:#d7d0ca;text-align:left;padding:0;text-decoration:none}.footer-brand{font-family:Georgia,serif;font-size:24px}.footer-bottom{margin-top:40px;padding-top:16px;border-top:1px solid #ffffff22;color:#aaa;font-size:12px}.policy-body{line-height:1.9;color:#554e48}.not-found{text-align:center;padding:30px}.not-found>b{font-size:72px;font-family:Georgia,serif;color:#c8bdb1}
.admin-toolbar-v6{display:grid;grid-template-columns:1fr 180px;gap:10px;margin-bottom:14px;position:sticky;top:0;z-index:5;background:#f7f3ee;padding:8px 0}.variants-admin-v6 textarea{font-family:monospace}.brand-logo-preview{max-width:230px;max-height:90px;object-fit:contain;display:block;margin:8px 0 14px;padding:8px;background:#f4f1ed;border-radius:8px}.banner-live-preview-v6{min-height:300px;margin:-4px 0 18px;padding:38px;border-radius:16px;background:#eee7df center/cover;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden}.banner-live-preview-v6 h2{margin:8px 0;line-height:1.05}.banner-live-preview-v6 p{margin:5px 0 14px}.banner-live-preview-v6 button{border:0;padding:10px 18px;border-radius:5px}
@media(max-width:800px){.card-quick-actions{opacity:1;transform:none}.footer-grid{grid-template-columns:1fr}.favorite-v6-row{grid-template-columns:62px 1fr}.favorite-v6-row img{width:62px;height:62px}.favorite-v6-row .btn{font-size:11px;padding:7px}.admin-toolbar-v6{grid-template-columns:1fr}.banner-live-preview-v6{min-height:220px;padding:22px}}

/* ===== V6.1 admin + Banner layouts ===== */
.member-search-count-v61{display:flex;align-items:center;justify-content:center;color:#746b63;font-size:13px}
.logo-current-v61{display:flex;align-items:center;gap:12px;margin:8px 0 14px;padding:12px;border:1px solid #e5ddd4;border-radius:12px;background:#fff}
.logo-current-v61 .brand-logo-preview{margin:0;padding:0;background:transparent;border-radius:0;max-width:180px;max-height:64px}
.hero-slide-stage{display:flex}
.hero-slide-stage .hero-copy{margin-left:6vw;text-align:left;align-items:flex-start}
.hero-slide-stage[data-layout="center"]{justify-content:center;text-align:center}
.hero-slide-stage[data-layout="center"] .hero-copy{margin-left:0;text-align:center;align-items:center}
.hero-slide-stage[data-layout="right"]{justify-content:flex-end}
.hero-slide-stage[data-layout="right"] .hero-copy{margin-left:0;margin-right:6vw;text-align:right;align-items:flex-end}
.hero-slide-stage[data-layout="bottom-left"]{align-items:flex-end}
.hero-slide-stage[data-layout="bottom-left"] .hero-copy{margin:0 0 5vw 6vw;text-align:left;align-items:flex-start}
.hero-slide-stage[data-layout="bottom-center"]{align-items:flex-end;justify-content:center}
.hero-slide-stage[data-layout="bottom-center"] .hero-copy{margin:0 0 5vw;text-align:center;align-items:center}
.banner-live-preview-v6[data-layout="center"]{align-items:center;text-align:center}
.banner-live-preview-v6[data-layout="right"]{align-items:flex-end;text-align:right}
.banner-live-preview-v6[data-layout="bottom-left"]{justify-content:flex-end;align-items:flex-start;text-align:left}
.banner-live-preview-v6[data-layout="bottom-center"]{justify-content:flex-end;align-items:center;text-align:center}
@media(max-width:700px){
 .hero-slide-stage .hero-copy,.hero-slide-stage[data-layout="right"] .hero-copy,.hero-slide-stage[data-layout="bottom-left"] .hero-copy{margin-left:0;margin-right:0}
 .hero-slide-stage[data-layout="right"] .hero-copy{padding-left:20%}
}

/* V6.2 font library */
.font-picker-v62{font-size:15px}

/* V6.3 中文輸入查詢修正 */
.admin-toolbar-v6 input{ime-mode:auto}

/* V6.5 商品頁範本 / SEO */
.v65-template-list{display:grid;gap:10px;margin-top:14px}
.v65-template-item{align-items:center}
.v65-template-item .member-small{max-width:760px;white-space:normal;line-height:1.55}

/* CANNI V6.6 */
.sale-badge{position:absolute;left:12px;top:12px;z-index:8;background:#9f2f2f;color:#fff;padding:6px 10px;border-radius:999px;font-size:10px;letter-spacing:.12em}
.v66-price{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sale-price{color:#a13535;font-weight:700}.v66-price del{color:#999;font-size:.82em;font-weight:400}
.coupon-entry-v66{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:14px}.coupon-entry-v66 input{margin:0}.coupon-entry-v66 button,.coupon-applied-v66 button{border:0;background:#29241f;color:#fff;border-radius:8px;padding:0 14px}.coupon-applied-v66{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#f2eee8;border-radius:10px;padding:10px 12px;margin-bottom:14px}.coupon-applied-v66 button{padding:7px 10px}.discount-line-v66{color:#9f2f2f}
@media(max-width:700px){
  /* 修正首頁熱銷 / 新品等區塊之間過大的桌機留白 */
  .v4-home{padding:42px 16px!important}
  .home-section{margin-bottom:52px!important}
  .home-section[hidden],.editorial-banner[hidden]{display:none!important;margin:0!important;padding:0!important}
  .editorial-banner{margin:18px 0 52px!important;min-height:330px}
  .home-heading{margin-bottom:20px!important}
  .row-heading{align-items:center}
  .collection-grid{gap:8px}
}


/* ==========================================================
   CANNI V6.7 - MOBILE STOREFRONT VISUAL REFINEMENT
   ========================================================== */

/* Desktop: cleaner cards as well */
.v67-product-card{
  border:0;
  border-radius:14px;
  background:transparent;
  overflow:visible;
  box-shadow:none;
}
.v67-product-card:hover{
  transform:translateY(-2px);
  box-shadow:none;
}
.v67-card-image{
  border-radius:14px;
  overflow:hidden;
  background:#f1ede7;
}
.v67-card-body{
  padding:13px 2px 4px;
}
.v67-product-name{
  display:block;
  font-size:15px;
  font-weight:600;
  line-height:1.4;
}
.v67-card-cart{
  width:100%;
  margin-top:11px;
  padding:10px 12px;
  border:1px solid #2b2723;
  border-radius:999px;
  background:transparent;
  color:#2b2723;
  font:inherit;
  font-size:12px;
  cursor:pointer;
  transition:.18s;
}
.v67-card-cart:hover{
  background:#2b2723;
  color:#fff;
}
.v67-card-cart:disabled{
  border-color:#d8d2cb;
  color:#aaa;
  cursor:not-allowed;
}
.v67-favorite{
  width:36px;
  height:36px;
  background:rgba(255,255,255,.9);
  box-shadow:0 3px 12px rgba(0,0,0,.08);
}

/* Old image-covering controls no longer participate */
.v67-product-card .card-quick-actions,
.v67-product-card .quick-add{
  display:none!important;
}

.v67-highlight-card{
  overflow:hidden;
  border-radius:12px!important;
  background:transparent!important;
}
.v67-highlight-image{
  overflow:hidden;
  border-radius:12px;
  background:#f1ede8;
}
.v67-highlight-image img{
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  display:block;
}
.v67-highlight-card span{
  padding:8px 1px 2px!important;
  color:#292521!important;
  font-size:13px;
  font-weight:600;
}
.v67-highlight-card small{
  display:block;
  padding:0 1px 8px;
  color:#6f675f;
  text-align:left;
}
.v67-highlight-card small del{
  color:#aaa;
}

/* Mobile should look designed, not a shrunken desktop */
@media(max-width:700px){
  body{
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
  }

  .v4-nav{
    height:64px;
    padding:0 18px!important;
    border-bottom:1px solid rgba(70,60,50,.08);
  }
  .v4-brand{
    font-size:23px!important;
    letter-spacing:.15em;
  }

  .v4-shop{
    padding:28px 16px 54px!important;
  }
  .v4-shop .heading-row{
    display:grid;
    grid-template-columns:1fr;
    gap:18px;
  }
  .v4-shop .heading-row h1{
    font-size:32px!important;
    line-height:1.12;
  }

  /* Search / sort: no giant controls */
  .shop-tools,
  .heading-row .right{
    width:100%;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto;
    gap:8px;
  }
  .search,
  .heading-row select{
    min-width:0;
    height:44px;
    font-size:14px;
  }

  /* Featured category block becomes an elegant horizontal rail */
  .category-highlights{
    margin:4px 0 28px!important;
  }
  .category-highlight-head{
    align-items:flex-end;
    margin-bottom:12px;
  }
  .category-highlight-head b{
    font-size:20px;
  }
  .category-highlight-head span{
    font-size:11px;
  }
  .v67-highlight-grid{
    display:flex!important;
    gap:10px!important;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding:0 1px 8px;
    scrollbar-width:none;
  }
  .v67-highlight-grid::-webkit-scrollbar{display:none}
  .v67-highlight-card{
    flex:0 0 42%;
    scroll-snap-align:start;
  }

  /* Filters: compact horizontal scrolling instead of oversized wrapped pills */
  #filters{
    margin:12px 0 24px;
  }
  .filter-row{
    display:flex!important;
    align-items:center;
    flex-wrap:nowrap!important;
    gap:8px!important;
    overflow-x:auto;
    padding:8px 0!important;
    scrollbar-width:none;
  }
  .filter-row::-webkit-scrollbar{display:none}
  .filter-title{
    min-width:max-content;
    margin-right:4px;
    font-size:11px!important;
  }
  .filter-row button{
    flex:0 0 auto;
    min-height:38px;
    padding:8px 14px!important;
    font-size:13px!important;
    white-space:nowrap;
  }

  /* Product grid */
  .grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    column-gap:12px!important;
    row-gap:30px!important;
  }
  .v67-product-card{
    min-width:0;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
  }
  .v67-card-image{
    border-radius:12px!important;
    aspect-ratio:4/5;
  }
  .v67-card-body{
    padding:10px 1px 0!important;
  }
  .v67-card-body .category{
    font-size:10px!important;
    margin-bottom:5px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .v67-product-name{
    font-size:14px;
    line-height:1.35;
    min-height:38px;
  }
  .v67-card-body .price{
    font-size:15px!important;
    margin-top:6px;
  }
  .v67-card-body .stock{
    font-size:10px!important;
    margin-top:3px;
  }
  .v67-card-cart{
    margin-top:8px;
    padding:8px 5px;
    font-size:11px;
    background:#fff;
  }
  .v67-favorite{
    right:8px!important;
    top:8px!important;
    width:32px!important;
    height:32px!important;
    font-size:18px!important;
  }
  .product-badge,.sale-badge{
    left:8px!important;
    top:8px!important;
    padding:5px 7px!important;
    font-size:9px!important;
  }

  /* Remove desktop-ish white framing */
  .card,
  .category-highlight-grid button{
    box-shadow:none!important;
  }

  /* Product detail modal on phone */
  .overlay{
    padding:0!important;
    background:#fff!important;
  }
  .modal{
    width:100%;
    max-width:none;
    min-height:100dvh;
    margin:0!important;
    border-radius:0!important;
    padding:18px 16px 32px!important;
    box-shadow:none!important;
  }
  .detail{
    grid-template-columns:1fr!important;
    gap:18px!important;
  }
  .gallery-main{
    border-radius:12px!important;
  }
}

/* Very narrow iPhones */
@media(max-width:390px){
  .v4-shop{padding-left:12px!important;padding-right:12px!important}
  .grid{column-gap:9px!important}
  .v67-product-name{font-size:13px}
  .v67-card-cart{font-size:10px}
  .v67-highlight-card{flex-basis:48%}
}


/* ==========================================================
   CANNI V6.8 - iOS COLORS / TWO-LEVEL FILTERS / ROUNDED COLLECTIONS
   ========================================================== */

/* Homepage major-category cards: softer premium corners */
.collection-grid .collection-card,
.collection-grid .dynamic-collection-card{
  border-radius:20px!important;
  overflow:hidden!important;
  background-clip:padding-box;
}
.collection-grid .dynamic-collection-card::before,
.collection-grid .dynamic-collection-card::after{
  border-radius:inherit;
}

/* Explicit colors stop iPhone/Safari from applying system-link blue */
button,
input[type="button"],
input[type="submit"],
select{
  -webkit-appearance:none;
  appearance:none;
}
.v4-nav button,
.v4-nav a,
.side-menu button,
.side-menu a,
#sideMenu button,
#sideMenu a,
.side-category-link,
.side-category-toggle,
.side-subcategories button,
.filter-row button,
.category-highlight-grid button,
.v67-highlight-card,
.collection-card{
  color:#26221f!important;
  -webkit-text-fill-color:#26221f!important;
}
#sideMenu .menu-label,
.filter-title{
  color:#8a8179!important;
  -webkit-text-fill-color:#8a8179!important;
}
#sideMenu .side-category-toggle{
  font-family:Arial,sans-serif!important;
}
.filter-row button.active{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  background:#26221f!important;
  border-color:#26221f!important;
}
.v4-nav .cart-link,
.v4-nav .cart-button,
#cartButton,
#cartBtn{
  color:#26221f!important;
  -webkit-text-fill-color:#26221f!important;
}

/* Two-level category rows */
.filter-row-main-v68{
  border-bottom:1px solid rgba(80,68,58,.10);
}
.filter-row-sub-v68{
  padding-top:10px!important;
}
.filter-row-sub-v68 button:not(.active){
  background:#fff!important;
  border:1px solid #eee7df!important;
}
.filter-row-main-v68 button:not(.active){
  background:#f4f0ea!important;
}

/* Mobile collection cards + filters */
@media(max-width:700px){
  .collection-grid .collection-card,
  .collection-grid .dynamic-collection-card{
    border-radius:18px!important;
  }

  #filters{
    display:grid;
    gap:0;
  }
  .filter-row-main-v68,
  .filter-row-sub-v68{
    margin:0!important;
  }
  .filter-row-sub-v68{
    margin-top:2px!important;
  }

  /* iOS sometimes paints native button text blue even after inherited colors */
  .filter-row button,
  #sideMenu button,
  #sideMenu a,
  .v4-nav button,
  .v4-nav a{
    color:#26221f!important;
    -webkit-text-fill-color:#26221f!important;
    text-decoration:none!important;
  }
  .filter-row button.active{
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
  }
}


/* ==========================================================
   CANNI V6.9 - comprehensive iOS text color reset
   ========================================================== */
a,
a:link,
a:visited,
button,
button:link,
button:visited{
  color:inherit;
  -webkit-text-fill-color:currentColor;
  text-decoration:none;
}

/* "查看全部" / homepage section links */
.home-section a,
.home-section button,
.row-heading a,
.row-heading button,
.home-heading a,
.home-heading button,
.section-link,
.view-all,
.view-all-link,
.home-view-all{
  color:#6f675f!important;
  -webkit-text-fill-color:#6f675f!important;
  text-decoration:none!important;
}
.home-section a:hover,
.row-heading a:hover,
.home-heading a:hover{
  color:#26221f!important;
  -webkit-text-fill-color:#26221f!important;
}

/* Navigation and shop filters stay brand-colored, never Safari blue */
#sideMenu a,
#sideMenu button,
.v4-nav a,
.v4-nav button,
.filter-row button,
.collection-card,
.category-highlight-grid button{
  color:#26221f!important;
  -webkit-text-fill-color:#26221f!important;
}
.filter-row button.active{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Important: category cards use inline custom colors from admin.
   Do not overwrite their child span/b values. */
.collection-card > span,
.collection-card > b{
  -webkit-text-fill-color:currentColor;
}

/* category editor preview-ish inputs */
#mcVisualSettingsV69 h4{margin:22px 0 10px;font-size:14px}
#mcVisualSettingsV69 select{width:100%}

@media(max-width:700px){
  .home-section a,
  .home-section button,
  .row-heading a,
  .row-heading button,
  .home-heading a,
  .home-heading button,
  .section-link,
  .view-all,
  .view-all-link,
  .home-view-all{
    color:#6f675f!important;
    -webkit-text-fill-color:#6f675f!important;
  }
}

/* ==========================================================
   CANNI V7.0 - MEMBER COUPON CENTER
   ========================================================== */
.coupon-wallet-head-v70 h2{margin-bottom:4px}
.coupon-wallet-head-v70 p{margin:0 0 18px;color:#756d65;font-size:13px}
.claim-coupon-v70{display:grid;grid-template-columns:1fr auto;gap:8px;margin:0 0 10px}
.claim-coupon-v70 input{margin:0}
.claim-coupon-v70 button{border:0;border-radius:10px;background:#28231f;color:#fff;padding:0 22px;font:inherit}
.coupon-wallet-section-v70{display:flex;align-items:center;gap:8px;margin:25px 0 12px;font-size:15px}
.coupon-wallet-section-v70 span{font-size:11px;background:#28231f;color:#fff;border-radius:999px;padding:3px 8px}
.coupon-wallet-section-v70.muted{color:#8d857e}
.coupon-wallet-grid-v70{display:grid;gap:12px}
.member-coupon-v70{position:relative;display:grid;grid-template-columns:1fr 106px;min-height:150px;border:1px solid #e5ddd4;border-radius:16px;background:#fff;overflow:hidden}
.member-coupon-v70.disabled{opacity:.58;filter:grayscale(.15)}
.coupon-ticket-main-v70{padding:18px 18px 16px}
.coupon-ticket-main-v70>small{display:block;color:#776d64;margin-bottom:5px}
.coupon-ticket-main-v70>b{display:block;font-family:Georgia,"Noto Serif TC",serif;font-size:25px;margin-bottom:6px}
.coupon-ticket-main-v70>p{min-height:18px;margin:0 0 12px;color:#70675f;font-size:12px}
.coupon-meta-v70{display:flex;gap:8px;flex-wrap:wrap;font-size:10px;color:#887f77;margin-bottom:10px}
.coupon-ticket-main-v70 code{font-family:monospace;font-size:11px;letter-spacing:.08em;background:#f4f0eb;padding:5px 7px;border-radius:6px}
.coupon-ticket-action-v70{border-left:1px dashed #d8cec4;display:grid;place-items:center;padding:12px;background:#faf7f3}
.coupon-ticket-action-v70 button{border:0;border-radius:999px;background:#28231f;color:#fff;padding:9px 13px;font:inherit;font-size:12px}
.coupon-ticket-action-v70 span{color:#8a8179;font-size:12px}
.coupon-admin-section-v70{padding:16px;border:1px solid #e6ded5;border-radius:14px;margin:0 0 14px}
.coupon-admin-section-v70 h3{margin:0 0 14px}
.coupon-member-list-v70{max-height:260px;overflow:auto;border:1px solid #e7dfd6;border-radius:12px;padding:7px}
.coupon-member-option-v70{display:flex;align-items:center;gap:9px;padding:9px;border-bottom:1px solid #f0ebe6}
.coupon-member-option-v70:last-child{border-bottom:0}
.coupon-member-option-v70 input{width:auto;margin:0}
.coupon-member-option-v70 span{display:flex;flex-direction:column}
.coupon-member-option-v70 small{color:#8b8279;margin-top:2px}
@media(max-width:600px){
 .member-coupon-v70{grid-template-columns:1fr 82px}
 .coupon-ticket-main-v70{padding:14px}
 .coupon-ticket-main-v70>b{font-size:21px}
 .coupon-ticket-action-v70{padding:8px}
 .coupon-ticket-action-v70 button{font-size:10px;padding:8px 9px}
}


/* ==========================================================
   CANNI V7.1 — mobile QA / inventory / order / coupons
   ========================================================== */

/* Coupon wallet: replace the broken tall ticket layout */
.member-coupon-v71{
  display:flex;
  flex-direction:column;
  gap:0;
  border:1px solid #ded5cb;
  border-radius:18px;
  background:#fff;
  overflow:hidden;
  min-height:0;
}
.member-coupon-v71.disabled{opacity:.58}
.coupon-top-v71{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  padding:18px 18px 12px;
}
.coupon-copy-v71{min-width:0}
.coupon-copy-v71 small{
  display:block;
  color:#766d65;
  font-size:12px;
  margin-bottom:5px;
}
.coupon-copy-v71 b{
  display:block;
  font-family:"Noto Serif TC",Georgia,serif;
  font-size:28px;
  line-height:1.05;
  color:#28231f;
}
.coupon-copy-v71 p{
  margin:8px 0 0;
  color:#756c64;
  font-size:12px;
  line-height:1.55;
}
.coupon-code-v71{
  flex:0 0 auto;
  font-family:monospace;
  font-size:11px;
  letter-spacing:.07em;
  padding:7px 9px;
  border-radius:8px;
  background:#f3eee8;
  color:#4c453f;
}
.coupon-details-v71{
  display:flex;
  flex-wrap:wrap;
  gap:6px 12px;
  padding:0 18px 15px;
  color:#80766e;
  font-size:10px;
  line-height:1.5;
}
.coupon-action-v71{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  padding:12px 18px;
  border-top:1px dashed #ded5cb;
  background:#faf7f3;
}
.coupon-action-v71 button{
  border:0;
  border-radius:999px;
  padding:9px 16px;
  background:#28231f;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font:inherit;
  font-size:12px;
}
.coupon-action-v71 span{color:#887f77;font-size:12px}

/* Inventory center */
.inventory-stats-v71{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  margin-bottom:14px;
}
.inventory-stats-v71>div{
  padding:14px;
  border:1px solid #e5ddd4;
  border-radius:12px;
  background:#fff;
}
.inventory-stats-v71 small{display:block;color:#837a72;font-size:11px}
.inventory-stats-v71 b{display:block;font-size:25px;margin-top:3px}
.inventory-low-v71{color:#a05b2d;font-weight:700}
.inventory-sold-v71{color:#a33636;font-weight:700}
.inventory-ok-v71{color:#52745c;font-weight:700}
.inventory-row-v71{min-height:72px}

/* Order workflow */
.order-admin-grid-v71{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.order-progress-v71{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:4px;
  margin:12px 0 18px;
}
.order-progress-v71>div{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  color:#aaa;
  font-size:9px;
  text-align:center;
}
.order-progress-v71>div:not(:last-child)::after{
  content:"";
  position:absolute;
  top:11px;
  left:62%;
  width:76%;
  height:1px;
  background:#ddd5cd;
}
.order-progress-v71 i{
  position:relative;
  z-index:1;
  width:23px;
  height:23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#eee9e3;
  font-style:normal;
  color:#8b8178;
  font-size:10px;
}
.order-progress-v71 .done{color:#2b2723}
.order-progress-v71 .done i{background:#2b2723;color:#fff}
.order-progress-v71 .done:not(:last-child)::after{background:#2b2723}
.order-progress-v71.cancelled{opacity:.4}
.shipping-card-v71{
  display:grid;
  gap:7px;
  margin:15px 0;
  padding:14px;
  border:1px solid #e4dcd3;
  border-radius:12px;
  background:#faf7f3;
}
.shipping-card-v71 code{
  width:max-content;
  max-width:100%;
  padding:5px 8px;
  border-radius:7px;
  background:#fff;
  overflow-wrap:anywhere;
}

/* Advanced coupons */
.coupon-scope-list-v71{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:8px 0 12px;
}
.coupon-scope-list-v71 label,
.coupon-product-option-v71{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0;
  padding:8px 9px;
  border:1px solid #ebe3db;
  border-radius:9px;
}
.coupon-scope-list-v71 input,
.coupon-product-option-v71 input{width:auto;margin:0}
.coupon-product-list-v71{
  max-height:300px;
  overflow:auto;
  display:grid;
  gap:6px;
  margin-top:8px;
}
.coupon-product-option-v71 span{display:flex;flex-direction:column}
.coupon-product-option-v71 small{color:#8b8279;margin-top:2px}

/* Whole-site phone QA */
@media(max-width:700px){
  html,body{max-width:100%;overflow-x:hidden}
  img{max-width:100%}

  /* modal/dialogs: predictable phone layout */
  .overlay{
    align-items:flex-start!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
  }
  .modal{
    width:100%!important;
    max-width:none!important;
    min-height:100dvh;
    border-radius:0!important;
    padding:24px 16px 38px!important;
  }
  .modal>.close{
    position:sticky!important;
    top:8px;
    margin-left:auto;
    z-index:20;
  }
  #modalBody h2{
    font-size:26px!important;
    line-height:1.15;
    overflow-wrap:anywhere;
  }
  #modalBody input,
  #modalBody textarea,
  #modalBody select{
    font-size:16px!important; /* prevents iPhone auto zoom */
    max-width:100%;
  }
  #modalBody .row,
  .order-admin-grid-v71{
    grid-template-columns:1fr!important;
  }

  /* Coupon wallet */
  .coupon-wallet-head-v70 p{font-size:12px;line-height:1.55}
  .claim-coupon-v70{
    grid-template-columns:minmax(0,1fr) auto!important;
  }
  .claim-coupon-v70 button{padding:0 15px}
  .coupon-top-v71{padding:15px 14px 10px}
  .coupon-copy-v71 b{font-size:24px}
  .coupon-code-v71{font-size:10px}
  .coupon-details-v71{padding:0 14px 12px}
  .coupon-action-v71{padding:10px 14px}
  /* Disable the old V7.0 ticket geometry if cached styles still exist */
  .member-coupon-v70{
    display:none!important;
  }

  /* Member center */
  .member-menu-grid{
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }
  .member-menu-grid button{
    min-height:96px;
    padding:14px 11px!important;
    font-size:14px;
  }

  /* Cart drawer */
  .cart-drawer{
    width:min(94vw,420px)!important;
  }
  .cart-row{
    grid-template-columns:58px minmax(0,1fr) auto!important;
    gap:8px!important;
  }
  .cart-row .thumb{width:58px!important;height:68px!important}
  .qty button{width:28px!important;height:28px!important}

  /* Orders */
  .member-order-v6{
    gap:10px;
    padding:12px!important;
  }
  .member-order-v6 b{font-size:12px}
  .order-progress-v71>div span{font-size:8px}
  .order-progress-v71>div:not(:last-child)::after{left:64%;width:72%}

  /* Admin mobile */
  .admin-item{
    align-items:flex-start!important;
    flex-wrap:wrap;
    gap:8px!important;
  }
  .admin-item .grow{
    min-width:calc(100% - 86px);
  }
  .admin-item>.btn{
    flex:1 1 auto;
  }
  .inventory-stats-v71{grid-template-columns:repeat(3,1fr)}
  .inventory-stats-v71>div{padding:10px}
  .inventory-stats-v71 b{font-size:20px}
  .coupon-scope-list-v71{grid-template-columns:1fr}
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  table{min-width:760px}
}

/* Very narrow phones */
@media(max-width:380px){
  .member-menu-grid{grid-template-columns:1fr!important}
  .claim-coupon-v70{grid-template-columns:1fr!important}
  .claim-coupon-v70 button{min-height:44px}
  .coupon-top-v71{flex-direction:column}
  .coupon-code-v71{align-self:flex-start}
  .inventory-stats-v71{grid-template-columns:1fr}
}

/* CANNI V7.2 PWA */
html.pwa-standalone,html.pwa-standalone body{min-height:100dvh}
html.pwa-standalone body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
#canniOfflineBar{position:fixed;z-index:99999;left:12px;right:12px;top:calc(10px + env(safe-area-inset-top));display:none;gap:4px;flex-direction:column;padding:11px 14px;border-radius:14px;background:#2a2622;color:#fff;box-shadow:0 8px 30px rgba(0,0,0,.18);font-size:12px}
#canniOfflineBar.show{display:flex}
#canniOfflineBar span{opacity:.78;font-size:10px;line-height:1.45}
#canniPwaSplash{position:fixed;z-index:100000;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f6f1eb;color:#2a2622;transition:opacity .42s ease,visibility .42s ease}
#canniPwaSplash.hide{opacity:0;visibility:hidden}
.canni-splash-mark{width:82px;height:82px;display:grid;place-items:center;border:1px solid currentColor;border-radius:22px;font:44px/1 Georgia,serif;margin-bottom:18px}
#canniPwaSplash strong{font:600 20px/1.2 Georgia,"Noto Serif TC",serif;letter-spacing:.08em}
#canniPwaSplash small{margin-top:7px;font-size:9px;letter-spacing:.2em;opacity:.55}
@media(display-mode:standalone){body{-webkit-user-select:none;-webkit-tap-highlight-color:transparent}input,textarea{ -webkit-user-select:text}}

/* V7.2.1 category hierarchical back */
.category-back-v721{
  display:inline-flex;align-items:center;gap:7px;
  margin:14px 0 18px;padding:8px 12px;
  border:1px solid #ded5cb;border-radius:999px;
  background:rgba(255,255,255,.88);color:#2a2622!important;
  -webkit-text-fill-color:#2a2622!important;
  font:500 12px/1.2 "Noto Sans TC",sans-serif;
  cursor:pointer;backdrop-filter:blur(8px)
}
.category-back-v721 span:first-child{font-size:17px;line-height:1}
.category-back-v721:hover{background:#f4eee8}
@media(max-width:700px){
 .category-back-v721{
   margin:calc(8px + env(safe-area-inset-top)) 0 13px;
   min-height:38px;padding:8px 12px;font-size:12px
 }
}

/* V7.2.2 force-visible category back button */
#shopView>#categoryBackV722{
 display:inline-flex!important;
 position:relative!important;
 z-index:20!important;
 margin:16px max(16px,calc((100% - 1180px)/2)) 14px!important;
 width:max-content!important;
}
@media(max-width:700px){
 #shopView>#categoryBackV722{
   margin:12px 16px 10px!important;
   min-height:40px!important;
 }
}


/* ==========================================================
   CANNI V7.2.3 — 後台分頁列手機橫向滑動
   ========================================================== */
@media(max-width:700px){
  .tabs,
  .admin-tabs,
  .settings-tabs{
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:8px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    overscroll-behavior-x:contain;
    padding:2px 0 10px!important;
    width:100%!important;
    max-width:100%!important;
  }

  .tabs::-webkit-scrollbar,
  .admin-tabs::-webkit-scrollbar,
  .settings-tabs::-webkit-scrollbar{
    display:none;
  }

  .tabs > button,
  .admin-tabs > button,
  .settings-tabs > button{
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    white-space:nowrap!important;
    writing-mode:horizontal-tb!important;
    text-orientation:mixed!important;
    scroll-snap-align:start;
    padding:11px 16px!important;
    min-height:44px!important;
    border-radius:14px!important;
    line-height:1.2!important;
  }

  /* 讓目前選中的頁籤盡量自動滑到可見位置 */
  .tabs > button.active,
  .admin-tabs > button.active,
  .settings-tabs > button.active{
    scroll-margin-inline:16px;
  }
}

/* V7.2.4 — iPhone 後台分頁真正可拖曳 */
@media(max-width:700px){
  .admin-shell{
    overflow:visible!important;
    max-width:100vw!important;
  }
  .tabs{
    position:relative!important;
    display:flex!important;
    flex-flow:row nowrap!important;
    width:calc(100vw - 24px)!important;
    max-width:calc(100vw - 24px)!important;
    min-width:0!important;
    overflow-x:scroll!important;
    overflow-y:hidden!important;
    touch-action:pan-x!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:auto!important;
    scroll-behavior:smooth;
    scrollbar-width:none;
    padding:2px 44px 10px 0!important;
    margin-right:0!important;
  }
  .tabs::-webkit-scrollbar{display:none!important}
  .tabs>button{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 auto!important;
    width:auto!important;
    min-width:max-content!important;
    max-width:none!important;
    height:46px!important;
    writing-mode:horizontal-tb!important;
    white-space:nowrap!important;
    padding:0 17px!important;
  }

  /* 永遠有左右箭頭可按，即使 iOS Web App 不吃手勢也能移動 */
  .admin-tab-scroll-controls-v724{
    position:relative;
    display:flex!important;
    justify-content:flex-end;
    gap:6px;
    margin:-66px 0 18px auto;
    width:max-content;
    z-index:30;
    pointer-events:none;
  }
  .admin-tab-scroll-controls-v724 button{
    pointer-events:auto;
    width:36px!important;
    height:36px!important;
    padding:0!important;
    border:1px solid #ded5cb!important;
    border-radius:50%!important;
    background:rgba(246,241,235,.96)!important;
    color:#2a2622!important;
    -webkit-text-fill-color:#2a2622!important;
    box-shadow:0 2px 10px rgba(42,38,34,.08);
    font-size:18px!important;
  }
}

/* ==========================================================
   CANNI V7.2.5 — mobile admin navigation (no horizontal page shift)
   ========================================================== */
.admin-mobile-nav-v725{display:none}

@media(max-width:700px){
  html,body,#root,.admin-shell{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-x:hidden!important;
  }
  .admin-shell{
    box-sizing:border-box!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }

  /* Previous horizontal tabs are hidden only on phone.
     Desktop still keeps the normal button tabs. */
  .admin-shell>.tabs{
    display:none!important;
  }
  .admin-tab-scroll-controls-v724{
    display:none!important;
  }

  .admin-mobile-nav-v725{
    display:block!important;
    width:100%;
    margin:14px 0 18px;
  }
  .admin-mobile-nav-v725>label{
    display:block;
    margin:0 0 7px;
    color:#837a72;
    font-size:11px;
    font-weight:600;
    letter-spacing:.06em;
  }
  .admin-mobile-select-wrap-v725{
    position:relative;
    width:100%;
  }
  .admin-mobile-select-wrap-v725 select{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    height:50px!important;
    margin:0!important;
    padding:0 46px 0 16px!important;
    border:1px solid #ded5cb!important;
    border-radius:14px!important;
    background:#fff!important;
    color:#2a2622!important;
    -webkit-text-fill-color:#2a2622!important;
    -webkit-appearance:none!important;
    appearance:none!important;
    font:600 15px/1 "Noto Sans TC",sans-serif!important;
    box-shadow:none!important;
  }
  .admin-mobile-select-wrap-v725>span{
    position:absolute;
    right:16px;
    top:50%;
    transform:translateY(-53%);
    pointer-events:none;
    color:#2a2622;
    font-size:19px;
  }

  /* keep all admin content inside viewport */
  .panel,.settings-card,.admin-item,.admin-toolbar-v6,
  .inventory-stats-v71,.table-wrap{
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
}

/* ==========================================================
   CANNI V7.2.6 — iPhone safe area / cart close / member button
   ========================================================== */

/* All image badges must be anchored to their own image/card, never viewport */
.product-img,
.home-product-img,
.v67-card-image,
.v5-card-image,
.home-product,
.card{
  position:relative;
}
.sale-badge,
.product-badge{
  position:absolute!important;
}

/* Installed iPhone PWA header sits below the status bar */
@media(max-width:700px){
  html.pwa-standalone body{
    padding-top:0!important;
  }

  .v4-header{
    position:relative;
    z-index:50;
    padding-top:env(safe-area-inset-top)!important;
    background:#fff;
  }
  .v4-nav{
    height:64px!important;
    min-height:64px!important;
    grid-template-columns:44px minmax(0,1fr) auto!important;
    padding:0 14px!important;
    gap:8px!important;
  }
  .v4-brand{
    justify-self:center;
    min-width:0;
  }
  .nav-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:2px!important;
    min-width:0!important;
    margin:0!important;
  }

  /* Restore the member entry that earlier mobile CSS hid */
  .account-icon,
  #accountBtn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:40px!important;
    height:40px!important;
    min-width:40px!important;
    padding:0!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    font-size:0!important;
    border-radius:50%!important;
  }
  #accountBtn::before{
    content:"♙";
    display:block;
    font-family:Arial,sans-serif;
    font-size:23px;
    line-height:1;
    color:#26221f;
    -webkit-text-fill-color:#26221f;
  }
  .nav-actions>.icon-btn:last-child{
    padding:8px 4px!important;
    white-space:nowrap;
    font-size:14px!important;
  }

  /* Cart drawer must begin below the iPhone status bar and keep the close button tappable */
  .cart-drawer{
    top:0!important;
    height:100dvh!important;
    max-height:100dvh!important;
    padding-top:env(safe-area-inset-top)!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
  }
  .cart-drawer-head{
    flex:0 0 64px!important;
    height:64px!important;
    min-height:64px!important;
    padding:0 16px!important;
    background:#fff!important;
    position:relative!important;
    z-index:5!important;
  }
  .cart-drawer-head button{
    position:relative!important;
    z-index:10!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    display:grid!important;
    place-items:center!important;
    padding:0!important;
    margin:0!important;
    border-radius:50%!important;
    background:#f6f1eb!important;
    color:#26221f!important;
    -webkit-text-fill-color:#26221f!important;
    font-size:28px!important;
    line-height:1!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  #cartDrawerBody{
    min-height:0!important;
    overflow:hidden!important;
  }
  .cart-drawer-lines{
    min-height:0!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
  }

  /* Side menu gets the same safe-area treatment */
  .side-menu{
    padding-top:calc(20px + env(safe-area-inset-top))!important;
    padding-bottom:calc(20px + env(safe-area-inset-bottom))!important;
  }
}

/* ==========================================================
   CANNI V7.2.7 — final iPhone standalone safe area
   ========================================================== */
@media(max-width:700px){
  /* Give installed iPhone PWA a guaranteed status-bar reserve.
     env() can report 0 in some already-installed WebKit PWAs, so 52px is the fallback. */
  html.pwa-standalone{
    --canni-safe-top:max(env(safe-area-inset-top),52px);
    --canni-safe-bottom:max(env(safe-area-inset-bottom),10px);
  }

  html.pwa-standalone body{
    padding-top:0!important;
    padding-bottom:var(--canni-safe-bottom)!important;
  }

  html.pwa-standalone .v4-header{
    padding-top:var(--canni-safe-top)!important;
    top:0!important;
    background:#fff!important;
  }

  html.pwa-standalone .side-menu{
    top:0!important;
    padding-top:calc(var(--canni-safe-top) + 14px)!important;
    padding-bottom:calc(var(--canni-safe-bottom) + 18px)!important;
  }

  html.pwa-standalone .cart-drawer{
    top:0!important;
    bottom:0!important;
    height:100dvh!important;
    max-height:100dvh!important;
    padding-top:var(--canni-safe-top)!important;
    padding-bottom:var(--canni-safe-bottom)!important;
  }

  /* Cart header must stay below status bar and close button must remain the top clickable layer. */
  .cart-drawer-head{
    position:relative!important;
    flex:0 0 66px!important;
    min-height:66px!important;
    z-index:1000!important;
    padding:0 18px!important;
    background:#fff!important;
  }
  .cart-drawer-head>b{
    display:block!important;
    font-size:19px!important;
    line-height:1!important;
  }
  .cart-drawer-head>button{
    position:absolute!important;
    right:12px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    z-index:1001!important;
    width:46px!important;
    height:46px!important;
    display:grid!important;
    place-items:center!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }

  /* Side menu close button also gets a dedicated hit area. */
  .side-menu-head{
    position:relative!important;
    min-height:58px!important;
  }
  .side-menu-head>button{
    position:absolute!important;
    right:0!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:46px!important;
    height:46px!important;
    display:grid!important;
    place-items:center!important;
    z-index:10!important;
  }

  /* Member entry: visible icon between brand/cart constraints. */
  #accountBtn{
    display:inline-grid!important;
    place-items:center!important;
    width:38px!important;
    min-width:38px!important;
    height:38px!important;
    padding:0!important;
    font-size:0!important;
    overflow:visible!important;
  }
  #accountBtn::before{
    content:"◎"!important;
    font:22px/1 Arial,sans-serif!important;
    color:#26221f!important;
    -webkit-text-fill-color:#26221f!important;
  }

  .v4-nav{
    grid-template-columns:44px minmax(120px,1fr) auto!important;
  }
  .nav-actions{
    display:flex!important;
    gap:1px!important;
  }

  /* Never allow floating product controls outside their own cards. */
  .product-img,.home-product-img,.v67-card-image,.v5-card-image,.card,.home-product{
    position:relative!important;
    isolation:isolate;
  }
  .product-img>.sale-badge,
  .home-product-img>.sale-badge,
  .v67-card-image>.sale-badge,
  .v5-card-image>.sale-badge,
  .product-img>.product-badge,
  .home-product-img>.product-badge,
  .v67-card-image>.product-badge,
  .v5-card-image>.product-badge,
  .product-img>.favorite-btn,
  .home-product-img>.favorite-btn,
  .v67-card-image>.favorite-btn,
  .v5-card-image>.favorite-btn{
    position:absolute!important;
  }
}

/* ==========================================================
   CANNI V7.2.8 — member label / centered auth modal / reliable close
   ========================================================== */
@media(max-width:700px){
  /* Header: show icon + text at same visual height as cart */
  .v4-nav{
    grid-template-columns:42px minmax(105px,1fr) auto!important;
    gap:6px!important;
  }
  .nav-actions{
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    min-width:0!important;
  }
  #accountBtn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:auto!important;
    height:38px!important;
    padding:0 4px!important;
    border-radius:0!important;
    overflow:visible!important;
    white-space:nowrap!important;
    font-size:0!important;
    background:transparent!important;
  }
  #accountBtn::before{
    content:"◎"!important;
    display:inline-block!important;
    margin-right:5px!important;
    font:20px/1 Arial,sans-serif!important;
    color:#26221f!important;
    -webkit-text-fill-color:#26221f!important;
    vertical-align:middle!important;
  }
  #accountBtn::after{
    content:attr(data-mobile-label)!important;
    display:inline-block!important;
    font:600 13px/1 "Noto Sans TC",sans-serif!important;
    color:#26221f!important;
    -webkit-text-fill-color:#26221f!important;
    vertical-align:middle!important;
  }
  .nav-actions>.icon-btn:last-child{
    display:inline-flex!important;
    align-items:center!important;
    height:38px!important;
    padding:0 2px!important;
    font-size:13px!important;
    line-height:1!important;
  }
  .badge{
    min-width:18px!important;
    height:18px!important;
    font-size:10px!important;
  }

  /* Mobile modal is a centered card, not a full-height sheet */
  .overlay{
    display:none!important;
    position:fixed!important;
    inset:0!important;
    z-index:10000!important;
    padding:
      calc(max(env(safe-area-inset-top),44px) + 18px)
      14px
      calc(max(env(safe-area-inset-bottom),10px) + 18px)!important;
    background:rgba(20,17,14,.48)!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .overlay.show{
    display:flex!important;
  }
  .overlay .modal{
    position:relative!important;
    width:min(100%,430px)!important;
    max-width:430px!important;
    min-height:0!important;
    max-height:calc(100dvh - max(env(safe-area-inset-top),44px) - max(env(safe-area-inset-bottom),10px) - 36px)!important;
    margin:auto!important;
    padding:24px 20px 26px!important;
    border-radius:22px!important;
    background:#fff!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    box-shadow:0 24px 70px rgba(0,0,0,.22)!important;
  }
  .overlay .modal>.close{
    position:sticky!important;
    float:none!important;
    top:0!important;
    margin:0 0 -44px auto!important;
    transform:none!important;
    display:grid!important;
    place-items:center!important;
    width:44px!important;
    height:44px!important;
    min-width:44px!important;
    min-height:44px!important;
    border:0!important;
    border-radius:50%!important;
    background:#f3efe9!important;
    color:#26221f!important;
    -webkit-text-fill-color:#26221f!important;
    font-size:26px!important;
    line-height:1!important;
    z-index:10002!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }
  #modalBody{
    width:100%!important;
    max-width:100%!important;
    padding-top:6px!important;
  }
  #modalBody h2{
    margin:0 56px 18px 0!important;
    text-align:center!important;
    font-size:28px!important;
  }
  #modalBody .auth-tabs{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:8px!important;
  }
  #modalBody .auth-tabs button{
    min-height:46px!important;
  }
  #modalBody input,
  #modalBody textarea,
  #modalBody select,
  #modalBody .btn.full{
    min-height:48px!important;
  }
}
@media(max-width:380px){
  #accountBtn::after{font-size:11px!important}
  #accountBtn::before{font-size:18px!important;margin-right:3px!important}
  .nav-actions>.icon-btn:last-child{font-size:12px!important}
  .v4-brand{font-size:20px!important}
}

/* ==========================================================
   CANNI V7.2.9 — elegant back navigation
   ========================================================== */
#categoryBackV722,
#categoryBackV721{
  display:none!important;
}

.back-nav-v729{
  width:100%;
  margin:0 0 18px;
}
.back-nav-v729 button{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:42px;
  padding:0;
  border:0;
  background:transparent;
  color:#5f5750!important;
  -webkit-text-fill-color:#5f5750!important;
  font:500 13px/1.2 "Noto Sans TC",sans-serif;
  cursor:pointer;
}
.back-nav-v729 button:hover{
  color:#26221f!important;
  -webkit-text-fill-color:#26221f!important;
}
.back-arrow-v729{
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  border:1px solid #d9d0c7;
  border-radius:50%;
  background:#fff;
  color:#26221f;
  font-size:16px;
  line-height:1;
  box-shadow:0 2px 8px rgba(42,38,34,.04);
}

@media(max-width:700px){
  .back-nav-v729{
    margin:2px 0 14px!important;
  }
  .back-nav-v729 button{
    min-height:38px;
    font-size:12px;
  }
  .back-arrow-v729{
    width:30px;
    height:30px;
    font-size:15px;
  }
}

/* ==========================================================
   CANNI V7.3.0 — remove old back button for good
   ========================================================== */
#categoryBackV721,
#categoryBackV722,
.category-back-v721{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

/* ==========================================================
   CANNI V7.4.0 — storefront polish & feature styling
   ========================================================== */
:root{
  --canni-radius-sm:12px;
  --canni-radius-md:18px;
  --canni-radius-lg:26px;
  --canni-control-h:44px;
  --canni-gap-1:8px;
  --canni-gap-2:12px;
  --canni-gap-3:18px;
  --canni-section:64px;
}
.btn,input,select,textarea,.icon-btn,.filter-row button{box-sizing:border-box}
.btn{min-height:var(--canni-control-h);display:inline-flex;align-items:center;justify-content:center}
.settings-card,.member-card,.notice{border-radius:var(--canni-radius-sm)}
.home-section{margin-bottom:var(--canni-section)}
.v4-shop .heading-row{align-items:center}

/* Announcement */
.announcement-v740{display:flex;align-items:center;justify-content:center;gap:10px;padding:9px 14px;background:#2a2622;color:#fff;position:relative;z-index:48}
.announcement-copy-v740{border:0;background:transparent;color:#fff!important;-webkit-text-fill-color:#fff!important;display:flex;align-items:center;gap:10px;font:inherit;cursor:pointer}
.announcement-copy-v740 b{font-size:12px;letter-spacing:.04em}.announcement-copy-v740 span{font-size:11px;opacity:.72}
.announcement-close-v740{position:absolute;right:10px;border:0;background:transparent;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:20px}

/* Extra shop filters */
.filter-extra-v740{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:12px 0 4px;border-top:1px solid rgba(80,68,58,.08)}
.filter-extra-v740 label{margin:0;display:grid;gap:5px;font-size:10px;color:#827970}
.filter-extra-v740 select,.filter-extra-v740 input{height:38px;min-width:112px;padding:7px 10px;border-radius:999px}
.clear-filter-v740{height:38px;border:1px solid #ddd5cb;background:#fff;border-radius:999px;padding:0 14px}

/* Image zoom */
.image-zoom-v740{position:fixed;inset:0;z-index:20000;background:rgba(15,13,11,.92);display:none;align-items:center;justify-content:center;padding:28px}
.image-zoom-v740.show{display:flex}
.image-zoom-v740 img{max-width:95vw;max-height:90dvh;object-fit:contain;touch-action:pinch-zoom}
.image-zoom-v740 button{position:fixed;top:calc(16px + env(safe-area-inset-top));right:16px;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:#222;font-size:28px}

/* Reviews */
.reviews-v740{margin:22px 0 0;padding:22px;border:1px solid #e5ddd4;border-radius:20px;background:#fff}
.reviews-head-v740{display:flex;justify-content:space-between;gap:16px;align-items:end;border-bottom:1px solid #eee7df;padding-bottom:14px}
.reviews-head-v740 small{letter-spacing:.16em;color:#8b827a}.reviews-head-v740 h3{margin:4px 0 0}
.reviews-head-v740>div:last-child{text-align:right}.reviews-head-v740>div:last-child b{font-size:24px;display:block}
.review-list-v740{display:grid;gap:10px;margin-top:14px}
.review-list-v740 article{padding:14px;background:#faf7f3;border-radius:14px}.review-list-v740 article>b{letter-spacing:.08em}.review-list-v740 p{margin:7px 0;line-height:1.65}
.review-image-v740{width:110px;height:110px;object-fit:cover;border-radius:10px;cursor:zoom-in;display:block;margin:8px 0}
.review-form-v740{margin-top:18px;padding-top:18px;border-top:1px solid #eee7df}.review-form-v740 h4{margin:0 0 10px}

/* Restock */
.restock-box-v740{margin-top:15px;padding:14px;background:#f5f0e9;border-radius:14px}.restock-box-v740 p{font-size:11px;color:#776e66;line-height:1.5}
.restock-box-v740>div{display:grid;grid-template-columns:1fr auto;gap:7px}.restock-box-v740 input{margin:0}.restock-box-v740 button{border:0;border-radius:10px;background:#29241f;color:#fff;padding:0 14px}.restock-box-v740>span{display:block;font-size:11px;margin-top:7px;color:#6c625b}

/* Favorites */
.favorite-grid-v740{display:grid;gap:12px;margin-bottom:16px}
.favorite-grid-v740 article{border:1px solid #e6ddd4;border-radius:16px;padding:10px;background:#fff}
.favorite-product-v740{width:100%;border:0;background:none;display:grid;grid-template-columns:78px 1fr;gap:12px;text-align:left;padding:0}
.favorite-product-v740 img{width:78px;height:78px;object-fit:cover;border-radius:10px}.favorite-product-v740 span>*{display:block}.favorite-product-v740 small{color:#8a8179}.favorite-product-v740 em{font-style:normal;margin-top:4px}
.favorite-actions-v740{display:flex;gap:7px;margin-top:9px}.favorite-actions-v740 button{flex:1;min-height:38px;border:0;border-radius:10px;background:#f1ebe4}.favorite-actions-v740 button:first-child{background:#29241f;color:#fff}

/* Cart recommendations */
.cart-reco-v740{padding:14px 18px;border-top:1px solid #eee}.cart-reco-v740>b{display:block;margin-bottom:9px}
.cart-reco-v740>div{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.cart-reco-v740 button{border:0;background:#faf7f3;border-radius:12px;padding:7px;text-align:left;min-width:0}.cart-reco-v740 img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.cart-reco-v740 span{display:block;font-size:10px;margin-top:5px;overflow:hidden}.cart-reco-v740 small{display:block;color:#716860;margin-top:2px}

/* Member summary */
.member-summary-head-v740 small{letter-spacing:.18em;color:#91877e}.member-summary-head-v740 h2{margin:4px 0}.member-summary-head-v740 p{margin:0;color:#8b8279;font-size:12px}
.member-summary-v740{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.member-summary-v740 button{border:1px solid #e5ddd4;border-radius:14px;background:#fff;padding:13px 7px}.member-summary-v740 b{display:block;font-size:22px}.member-summary-v740 span{display:block;font-size:9px;color:#81776f;margin-top:3px}
.member-notifications-v740{display:grid;gap:8px;margin-bottom:16px}.member-notifications-v740 button{border:1px solid #e5ddd4;border-radius:12px;background:#fff;padding:12px;text-align:left}.member-notifications-v740 button.unread{border-color:#2a2622}.member-notifications-v740 span,.member-notifications-v740 small{display:block;margin-top:4px}.member-notifications-v740 span{font-size:11px;color:#6f665f}.member-notifications-v740 small{font-size:9px;color:#989087}

/* Batch admin */
.batch-bar-v740{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 12px;margin:10px 0;background:#f7f2ec;border:1px solid #e6ddd4;border-radius:14px}
.batch-bar-v740 label{margin:0}.batch-bar-v740 input{width:auto}.batch-bar-v740 select{width:auto;min-width:150px}.batch-check-v740{margin:0!important}.batch-check-v740 input{width:20px;height:20px}
.admin-alert-badge-v740{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:5px;border-radius:999px;background:#a73636;color:#fff;font-size:9px;padding:0 5px}

/* Image center */
.image-center-section-v740{margin:18px 0 28px}.image-center-section-v740 h3{display:flex;gap:8px;align-items:center}.image-center-section-v740 h3 span{font-size:10px;background:#eee7df;border-radius:999px;padding:3px 7px}
.image-center-grid-v740{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.image-center-grid-v740 button{border:1px solid #e5ddd4;background:#fff;border-radius:14px;padding:8px;text-align:left;overflow:hidden}.image-center-grid-v740 img{width:100%;aspect-ratio:1.15;object-fit:cover;border-radius:9px;background:#eee}.image-center-grid-v740 b,.image-center-grid-v740 small{display:block;margin-top:6px}.image-center-grid-v740 small{color:#8a8179}

/* Admin notifications / reviews */
.notification-summary-v740{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 0}.notification-summary-v740 button{border:1px solid #e5ddd4;background:#fff;border-radius:14px;padding:14px}.notification-summary-v740 b{display:block;font-size:24px}.notification-summary-v740 span{font-size:10px;color:#82786f}
.review-admin-image-v740{width:90px;height:90px;object-fit:cover;border-radius:9px;margin-top:7px}

/* Mobile design consistency */
@media(max-width:700px){
  :root{--canni-section:48px}
  .announcement-v740{padding:8px 38px 8px 12px}.announcement-copy-v740{display:block;text-align:center}.announcement-copy-v740 span{display:none}
  .filter-extra-v740{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.filter-extra-v740 label:first-child{grid-column:1/-1}.filter-extra-v740 select,.filter-extra-v740 input{width:100%;min-width:0}
  .reviews-v740{padding:16px;margin-top:16px}.reviews-head-v740{align-items:flex-start}.reviews-head-v740>div:last-child{font-size:10px}
  .member-summary-v740{grid-template-columns:repeat(2,1fr)}
  .cart-reco-v740>div{grid-template-columns:repeat(3,minmax(0,1fr))}
  .notification-summary-v740{grid-template-columns:repeat(2,1fr)}
  .batch-bar-v740{align-items:stretch}.batch-bar-v740>*{max-width:100%}.batch-bar-v740 select{width:100%}
  .image-center-grid-v740{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* CANNI V7.4.1 */
.tabs button{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.admin-order-badge-v741{display:inline-flex;min-width:23px;height:23px;padding:0 7px;border-radius:999px;align-items:center;justify-content:center;background:#a93434;color:#fff;font-size:12px;font-weight:850;line-height:1;box-shadow:0 2px 7px rgba(169,52,52,.2)}
.admin-order-list-v741{display:grid;gap:8px;margin-top:16px}
.admin-order-row-v741{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:14px;padding:12px 13px;background:#fff}
.admin-order-actions-v741{display:flex;gap:6px}
.admin-order-actions-v741 button{width:42px;height:38px;border:1px solid var(--line);border-radius:10px;background:#f7f3ee;font-size:20px;cursor:pointer}
.admin-order-actions-v741 button:disabled{opacity:.28;cursor:default}
@media(max-width:700px){
  #arrangeAdminV741{width:100%;order:3}
  .admin-order-badge-v741{min-width:21px;height:21px;font-size:11px}
}

/* CANNI V7.4.2 admin click stability / announcement redesign */
.admin-order-index-v742{
  width:32px;height:32px;display:grid;place-items:center;flex:0 0 32px;
  border-radius:50%;background:#f1ebe4;color:#81776f;font-size:11px;font-weight:800
}
.admin-order-row-v741>b{margin-right:auto}
.admin-order-actions-v741 button{touch-action:manipulation;pointer-events:auto}

/* Replace the heavy black announcement strip with a lighter editorial notice */
.announcement-v740{
  display:flex!important;align-items:center!important;justify-content:center!important;
  min-height:46px!important;padding:9px 48px!important;
  background:#f3eee8!important;color:#2a2622!important;
  border-top:1px solid #e7ded5!important;border-bottom:1px solid #e7ded5!important;
  box-shadow:none!important
}
.announcement-copy-v740{
  color:#2a2622!important;-webkit-text-fill-color:#2a2622!important;
  gap:12px!important
}
.announcement-copy-v740 b{
  font-size:12px!important;letter-spacing:.08em!important;font-weight:800!important
}
.announcement-copy-v740 span{
  font-size:11px!important;color:#756b63!important;opacity:1!important
}
.announcement-close-v740{
  right:13px!important;width:34px!important;height:34px!important;display:grid!important;
  place-items:center!important;border-radius:50%!important;background:rgba(42,38,34,.06)!important;
  color:#514941!important;-webkit-text-fill-color:#514941!important;font-size:18px!important
}
@media(max-width:700px){
  .announcement-v740{min-height:43px!important;padding:8px 46px 8px 16px!important}
  .announcement-copy-v740 b{font-size:12px!important}
}

/* CANNI V7.4.3 — complete admin ordering + mobile horizontal function bar */
#adminMobileTabsV743{display:none}
@media(max-width:700px){
  .admin-shell>.tabs{display:none!important}
  .admin-mobile-nav-v725{display:none!important}

  #adminMobileTabsV743{
    display:flex!important;
    width:100%!important;
    max-width:100%!important;
    gap:9px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    scrollbar-width:none!important;
    padding:2px 2px 12px!important;
    margin:2px 0 14px!important;
    box-sizing:border-box!important;
    touch-action:pan-x!important;
  }
  #adminMobileTabsV743::-webkit-scrollbar{display:none!important}
  #adminMobileTabsV743 button{
    flex:0 0 76px!important;
    width:76px!important;
    min-width:76px!important;
    min-height:88px!important;
    padding:10px 7px!important;
    border:1px solid #e7ded5!important;
    border-radius:16px!important;
    background:#fff!important;
    color:#2a2622!important;
    -webkit-text-fill-color:#2a2622!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    font:750 14px/1.15 "Noto Sans TC",sans-serif!important;
    white-space:normal!important;
    text-align:center!important;
    box-shadow:none!important;
  }
  #adminMobileTabsV743 button.active{
    background:#2a2622!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    border-color:#2a2622!important;
  }
  #adminMobileTabsV743 button span{
    writing-mode:horizontal-tb!important;
    word-break:keep-all!important;
  }
  #adminMobileTabsV743 button em{
    display:grid!important;place-items:center!important;
    min-width:21px!important;height:21px!important;padding:0 6px!important;
    border-radius:999px!important;background:#a93434!important;color:#fff!important;
    font-style:normal!important;font-size:10px!important;line-height:1!important
  }
}

/* CANNI V7.4.5 — member identity alignment + favorite tap targets */
.member-summary-head-v740,
.member-summary-head-v740>div,
.member-summary-head-v740 h2,
.member-summary-head-v740 p,
.member-summary-head-v740 small{
  text-align:left!important;
}
.member-summary-head-v740 h2{
  margin-left:0!important;
  margin-right:0!important;
}
.favorite-actions-v740{
  position:relative!important;
  z-index:4!important;
  pointer-events:auto!important;
}
.favorite-actions-v740 button{
  position:relative!important;
  z-index:5!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
  cursor:pointer!important;
  min-height:44px!important;
}
.favorite-product-v740{
  position:relative!important;
  z-index:1!important;
  pointer-events:auto!important;
  touch-action:manipulation!important;
}
@media(max-width:700px){
  .member-summary-head-v740{
    padding-right:54px!important;
  }
  #modalBody .member-summary-head-v740 h2{
    text-align:left!important;
    margin:4px 0 0!important;
  }
  .favorite-actions-v740 button{
    min-height:50px!important;
    font-size:14px!important;
  }
}

/* CANNI V7.4.7 — cart quantity badge / login loading state */
#cartCount.badge{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:19px!important;
  height:19px!important;
  padding:0 5px!important;
  margin-left:4px!important;
  border-radius:999px!important;
  background:#292521!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font:800 10px/1 Arial,sans-serif!important;
  letter-spacing:0!important;
  vertical-align:middle!important;
}
#cartCount.badge.is-empty{
  background:#d8d1ca!important;
  color:#6f675f!important;
  -webkit-text-fill-color:#6f675f!important;
}
.member-loading-v747{padding:6px 0 16px}
.member-loading-v747>small{display:block;letter-spacing:.18em;color:#91877e;margin-bottom:13px}
.member-loading-line-v747{
  height:18px;width:42%;border-radius:999px;background:#eee8e1;margin:9px 0;
  animation:canniPulseV747 1.15s ease-in-out infinite alternate
}
.member-loading-line-v747.wide{height:34px;width:58%}
.member-loading-grid-v747{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.member-loading-grid-v747 i{
  display:block;height:105px;border-radius:16px;background:#f1ece6;
  animation:canniPulseV747 1.15s ease-in-out infinite alternate
}
@keyframes canniPulseV747{from{opacity:.55}to{opacity:1}}
@media(max-width:700px){
  #cartCount.badge{min-width:18px!important;height:18px!important;font-size:9px!important;padding:0 4px!important}
}

/* CANNI V7.4.9 — login stays visually stable until final member center is ready */
#modal.auth-transition-v749 #modalBody{
  opacity:.94;
  pointer-events:none;
}
#modal.auth-transition-v749 #modalBody button{
  transition:none!important;
}

/* CANNI V7.5.1 — actionable favorite toast */
.toast-action-v751{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding-right:7px!important;
}
.toast-action-v751 button{
  border:0!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  min-height:30px!important;
  padding:0 10px!important;
  font:700 11px/1 "Noto Sans TC",sans-serif!important;
  cursor:pointer!important;
  touch-action:manipulation!important;
}

/* CANNI V7.5.2 — cart controls should never trigger double-tap zoom */
#cartDrawer button,
#cartDrawer .qty,
#cartDrawer .cart-remove,
#cartDrawer .cart-drawer-summary,
#cartDrawer .cart-drawer-lines{
  touch-action:manipulation!important;
}
#cartDrawer button,
#cartDrawer .qty button,
#cartDrawer .cart-remove{
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-touch-callout:none!important;
}

/* CANNI V7.6.0 — COD */
.payment-options-v760{display:grid!important;gap:10px!important}
.payment-card-v760{
  display:grid!important;grid-template-columns:22px 1fr!important;align-items:center!important;gap:12px!important;
  padding:15px!important;border:1px solid #ddd4cb!important;border-radius:16px!important;background:#fff!important;
  cursor:pointer!important
}
.payment-card-v760.selected{border-color:#2a2622!important;box-shadow:0 0 0 1px #2a2622 inset!important}
.payment-card-v760 input{width:18px!important;height:18px!important;margin:0!important}
.payment-card-v760 span b,.payment-card-v760 span small{display:block!important}
.payment-card-v760 span small{margin-top:4px!important;color:#776e66!important;font-size:11px!important;line-height:1.5!important}
.cod-note-v760{margin:9px 0 18px;padding:11px 13px;border-radius:12px;background:#f6f1eb;color:#6d645c;font-size:11px;line-height:1.6}
.order-success-v760{text-align:center;padding:8px 0}.order-success-icon-v760{width:56px;height:56px;margin:0 auto 12px;border-radius:50%;display:grid;place-items:center;background:#2a2622;color:#fff;font-size:26px}
.order-success-v760>small{letter-spacing:.16em;color:#8a8179}.order-success-v760 h2{margin:6px 0 16px!important}.order-number-v760{margin:17px 0;padding:12px;border-radius:12px;background:#f6f1eb}
.cod-badge-v760{display:inline-block;padding:4px 8px;border-radius:999px;background:#eee6dd;color:#4a423b;font-size:10px}
.payment-method-admin-v760{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:12px 0;padding:12px;border-radius:12px;background:#f7f2ec}.payment-method-admin-v760>span{font-size:11px;color:#82786f}.payment-method-admin-v760>small{width:100%;color:#887f77}

/* CANNI V7.6.2 */
.coupon-min-items-v762{margin:12px 0;padding:13px;border:1px solid #e7ded5;border-radius:14px;background:#faf7f3}
#annCustomWrapV762{margin-top:10px}

/* =========================================================
   CANNI V7.6.3 — cart coupons + top-layer add feedback
   ========================================================= */
.cart-coupon-head-v763{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px
}
.cart-coupon-head-v763>div b,.cart-coupon-head-v763>div small{display:block}
.cart-coupon-head-v763>div small{margin-top:3px;color:#8b8279;font-size:10px}
.cart-coupon-head-v763>button{border:0;background:none;color:#7e746b;font-size:10px;padding:6px;cursor:pointer}
.cart-coupon-list-v763{display:grid;gap:7px;margin-bottom:10px}
.cart-coupon-option-v763{
  width:100%;display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:center;
  border:1px solid #e5ddd4;background:#fff;border-radius:12px;padding:11px 12px;text-align:left;
  cursor:pointer;touch-action:manipulation
}
.cart-coupon-option-v763.selected{border-color:#29241f;box-shadow:inset 0 0 0 1px #29241f;background:#fbf8f4}
.cart-coupon-radio-v763{
  width:17px;height:17px;border-radius:50%;border:1.5px solid #9b9188;position:relative
}
.cart-coupon-option-v763.selected .cart-coupon-radio-v763:after{
  content:"";position:absolute;inset:3px;border-radius:50%;background:#29241f
}
.cart-coupon-copy-v763 b,.cart-coupon-copy-v763 small,.cart-coupon-copy-v763 em{display:block}
.cart-coupon-copy-v763 b{font-size:12px}
.cart-coupon-copy-v763 small{margin-top:2px;color:#80766e;font-size:10px}
.cart-coupon-copy-v763 em{margin-top:5px;font-style:normal;font-size:10px;font-weight:800;color:#9b4a39}
.coupon-code-details-v763{border-top:1px solid #eee6de;padding-top:8px}
.coupon-code-details-v763 summary{cursor:pointer;font-size:10px;color:#756c64;padding:5px 0}
.coupon-code-details-v763 .coupon-entry-v66{margin-top:7px}

/* Must sit above product modal, cart drawer, menu, and every overlay. */
.cart-center-notice-v763{
  position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;
  pointer-events:none;padding:24px;
  opacity:0;transition:opacity .16s ease
}
.cart-center-notice-v763.show{opacity:1}
.cart-center-notice-v763.leave{opacity:0;transition:opacity .25s ease}
.cart-center-card-v763{
  min-width:min(310px,78vw);max-width:86vw;
  display:flex;align-items:center;justify-content:center;gap:12px;
  background:rgba(38,34,30,.95);color:#fff;border-radius:18px;
  padding:15px 20px;box-shadow:0 18px 55px rgba(0,0,0,.28);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  transform:translateY(18px) scale(.94);
  opacity:0;
  transition:transform .28s cubic-bezier(.2,.9,.25,1.15),opacity .2s ease
}
.cart-center-notice-v763.show .cart-center-card-v763{transform:translateY(0) scale(1);opacity:1}
.cart-center-notice-v763.leave .cart-center-card-v763{transform:translateY(-8px) scale(.98);opacity:0}
.cart-center-check-v763{
  width:32px;height:32px;flex:0 0 32px;border-radius:50%;display:grid;place-items:center;
  background:#fff;color:#29241f;font-weight:900;font-size:17px
}
.cart-center-card-v763 b,.cart-center-card-v763 small{display:block}
.cart-center-card-v763 b{font-size:14px;letter-spacing:.02em}
.cart-center-card-v763 small{margin-top:3px;color:#d8d1ca;font-size:10px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.cart-add-press-v763{
  transform:scale(.96)!important;
  filter:brightness(.88)!important;
  transition:transform .08s ease,filter .08s ease!important
}
@media(max-width:700px){
  .cart-coupon-option-v763{padding:10px}
  .cart-center-card-v763{min-width:min(290px,82vw);padding:14px 17px}
}

/* CANNI V7.6.4 — cart scrolling / checkout upsell / coupon admin */
#cartDrawerBody{
  overflow-y:auto!important;
  overflow-x:hidden!important;
  display:block!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
}
#cartDrawerBody .cart-drawer-lines{
  overflow:visible!important;
  flex:none!important;
  min-height:0!important;
}
#cartDrawerBody .cart-drawer-summary{
  position:relative!important;
  flex:none!important;
}
#cartDrawerBody .cart-reco-v740{display:none!important}

.checkout-upsell-v764>small{display:block;letter-spacing:.18em;color:#8d837b;margin-bottom:6px}
.checkout-upsell-v764>h2{margin:0 0 6px!important}
.checkout-upsell-v764>p{margin:0 0 18px;color:#81776f;font-size:12px}
.checkout-upsell-grid-v764{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:18px}
.checkout-upsell-grid-v764 article{border:1px solid #e6ddd4;border-radius:14px;padding:7px;background:#fff}
.checkout-upsell-product-v764{border:0;background:none;padding:0;text-align:left;width:100%;cursor:pointer}
.checkout-upsell-product-v764 img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}
.checkout-upsell-product-v764 span>*{display:block}.checkout-upsell-product-v764 b{margin-top:6px;font-size:11px}.checkout-upsell-product-v764 small{margin-top:3px;color:#80766e;font-size:10px}
.checkout-upsell-add-v764{width:100%;min-height:35px;margin-top:7px;border:0;border-radius:9px;background:#2a2622;color:#fff;cursor:pointer}
.checkout-upsell-add-v764:disabled{background:#ded6cd;color:#756b63}

.coupon-per-user-v764{margin:12px 0;padding:12px;border:1px solid #e7ded5;border-radius:13px;background:#faf7f3}
.coupon-per-user-v764 label{margin-top:0}
@media(max-width:700px){
  .checkout-upsell-grid-v764{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* =========================================================
   CANNI V7.6.8 — image quality
   ========================================================= */
.collection-grid{
  align-items:stretch;
}
.collection-card.quality-card-v768{
  min-height:0!important;
  aspect-ratio:4/5!important;
  background:#eee9e3!important;
  isolation:isolate;
  transform:translateZ(0);
  border-radius:18px;
}
.collection-card-image-v768{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  z-index:0;
  image-rendering:auto;
  -ms-interpolation-mode:bicubic;
  transform:translateZ(0);
  backface-visibility:hidden;
}
.collection-card.quality-card-v768:after{
  z-index:1!important;
  background:linear-gradient(to bottom,rgba(15,13,11,0) 46%,rgba(15,13,11,.72) 100%)!important;
}
.collection-card.quality-card-v768>span,
.collection-card.quality-card-v768>b{
  z-index:2!important;
}
.collection-card.quality-card-v768:hover .collection-card-image-v768{
  transform:scale(1.012) translateZ(0);
  transition:transform .45s ease;
}
.home-product-img img,
.product-img img,
.card img,
.category-hero-banner{
  image-rendering:auto;
  -ms-interpolation-mode:bicubic;
}

/* Admin quality diagnostics */
.image-guide-v768{
  margin:12px 0 14px;
  padding:13px 15px;
  border:1px solid #e5dcd3;
  border-radius:14px;
  background:#faf7f3;
  display:grid;
  gap:4px;
}
.image-guide-v768 b{font-size:13px}
.image-guide-v768 span{font-size:12px;color:#645d56}
.image-guide-v768 small{font-size:11px;color:#8b8179;line-height:1.6;margin-top:3px}
.image-guide-v768.compact{margin:8px 0}
.image-quality-v768{display:grid;gap:6px;margin:7px 0 10px}
.image-quality-v768>div{
  padding:8px 10px;border-radius:10px;display:grid;gap:2px;font-size:11px
}
.image-quality-v768 b{font-size:11px}
.image-quality-v768 span{color:inherit}
.image-quality-v768 .good,.existing-image-quality-v768.good{background:#eaf4ed;color:#356044}
.image-quality-v768 .ok,.existing-image-quality-v768.ok{background:#f4efe7;color:#77684f}
.image-quality-v768 .low,.existing-image-quality-v768.low{background:#f8e9e8;color:#93453f}
.existing-image-quality-v768{
  margin:5px 0 8px;padding:6px 8px;border-radius:8px;font-size:10px;line-height:1.4
}
.low-quality-thumb-v768{outline:2px solid #b95f55!important;outline-offset:2px}
@media(max-width:700px){
  .collection-card.quality-card-v768{aspect-ratio:4/5!important;border-radius:15px}
}

/* =========================================================
   CANNI V8.0.0 — Product detail
   ========================================================= */
.product-modal-v8{max-width:1080px!important;padding:28px!important}
.product-page-v8{padding-top:4px}
.product-detail-v8{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(320px,.88fr);gap:38px;align-items:start}
.product-gallery-v8{min-width:0}
.product-gallery-stage-v8{position:relative;aspect-ratio:1/1;background:#f5f2ee;border-radius:22px;overflow:hidden}
.product-gallery-stage-v8>img{width:100%;height:100%;object-fit:contain;display:block;cursor:zoom-in}
.product-gallery-arrow-v8{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:1px solid #eee4dc;border-radius:50%;background:#fffdd;color:#292521;font-size:27px;display:grid;place-items:center;z-index:3}
.product-gallery-arrow-v8.prev{left:14px}.product-gallery-arrow-v8.next{right:14px}
.product-zoom-hint-v8{position:absolute;right:13px;bottom:13px;background:#fffdd;border-radius:999px;padding:7px 10px;font-size:10px;color:#6d655e}
.product-thumbs-v8{display:flex;gap:8px;overflow-x:auto;padding:10px 1px 2px;scrollbar-width:thin}
.product-thumbs-v8 button{flex:0 0 72px;width:72px;height:72px;border:1px solid transparent;border-radius:11px;padding:3px;background:#fff;cursor:pointer}
.product-thumbs-v8 button.selected{border-color:#292521}
.product-thumbs-v8 img{width:100%;height:100%;object-fit:cover;border-radius:8px}
.product-info-v8{position:sticky;top:20px}
.product-category-v8{font-size:11px;letter-spacing:.08em;color:#8b827a;margin:3px 0 12px}.product-category-v8 span{color:#c0b7af}
.product-title-row-v8{display:flex;align-items:flex-start;gap:14px}.product-title-row-v8 h1{font-family:Georgia,"Noto Serif TC",serif;font-weight:500;font-size:clamp(31px,3vw,45px);line-height:1.15;margin:0;flex:1}
.product-favorite-v8{flex:0 0 46px!important;width:46px!important;height:46px!important}
.product-price-row-v8{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0 18px}
.product-price-v8{font-size:23px;font-weight:800}.product-price-v8 .old-price{font-size:12px}
.product-stock-v8{border-radius:999px;padding:7px 10px;font-size:10px;font-weight:800}.product-stock-v8.available{background:#eeebe5;color:#5e574f}.product-stock-v8.low{background:#f9e9e2;color:#a14a33}.product-stock-v8.soldout{background:#eee;color:#888}
.product-option-v8 label{margin-top:0}.product-option-v8 select{border-radius:13px;min-height:48px}
.product-description-v8{white-space:pre-wrap;line-height:1.85;color:#5f5852;font-size:13px;padding:18px 0;border-bottom:1px solid #eee6df}
.product-benefits-v8{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:16px 0}
.product-benefits-v8>div{background:#f7f3ee;border-radius:12px;padding:11px}.product-benefits-v8 b,.product-benefits-v8 span{display:block}.product-benefits-v8 b{font-size:11px}.product-benefits-v8 span{font-size:9px;color:#8a8179;margin-top:3px;line-height:1.45}
.product-actions-v8{margin:8px 0 12px}
.product-info-box-v8{border-top:1px solid #ebe3dc;padding:14px 0}.product-info-box-v8:last-of-type{border-bottom:1px solid #ebe3dc}
.product-info-box-v8 summary{list-style:none;display:flex;justify-content:space-between;font-size:12px;font-weight:800;cursor:pointer}.product-info-box-v8 summary::-webkit-details-marker{display:none}.product-info-box-v8 p{font-size:12px;line-height:1.8;color:#736a63;margin:11px 0 0}
.product-recommend-v8{margin-top:42px;padding-top:30px;border-top:1px solid #eee5de}
.product-section-title-v8 small{font-size:9px;letter-spacing:.2em;color:#958b83}.product-section-title-v8 h3{font-size:22px;margin:5px 0 17px}
.product-recommend-grid-v8{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.product-recommend-grid-v8 button{border:0;background:none;text-align:left;padding:0;cursor:pointer}.product-recommend-grid-v8 img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:13px;background:#f5f2ee}.product-recommend-grid-v8 span,.product-recommend-grid-v8 b{display:block;margin-top:6px}.product-recommend-grid-v8 span{font-size:11px}.product-recommend-grid-v8 b{font-size:11px}
.product-viewer-v8{position:fixed;inset:0;z-index:2147483645;background:#111e;display:grid;place-items:center;padding:42px}
.product-viewer-v8 img{max-width:min(92vw,1200px);max-height:90vh;object-fit:contain}.viewer-close-v8,.viewer-prev-v8,.viewer-next-v8{position:fixed;border:0;border-radius:50%;background:#fff;color:#222;width:48px;height:48px;font-size:28px;z-index:2}.viewer-close-v8{top:max(18px,env(safe-area-inset-top));right:20px}.viewer-prev-v8{left:20px;top:50%}.viewer-next-v8{right:20px;top:50%}.viewer-count-v8{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#fff;color:#222;border-radius:999px;padding:7px 12px;font-size:11px}

/* =========================================================
   CANNI V8.0.0 — Member orders
   ========================================================= */
.member-page-head-v8>small{letter-spacing:.18em;color:#978d85;font-size:10px}.member-page-head-v8 h2{margin:5px 0!important}.member-page-head-v8 p{margin:0;color:#8b827b;font-size:11px}
.member-order-list-v8{display:grid;gap:9px;margin:20px 0}.member-order-list-v8>button{border:1px solid #e6ddd5;background:#fff;border-radius:15px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:12px;cursor:pointer}.member-order-list-v8>button>div{display:grid;gap:4px}.member-order-list-v8>button>div:last-child{text-align:right;justify-items:end}.member-order-list-v8 small,.member-order-list-v8 span{font-size:10px;color:#887f77}.member-order-list-v8 b{font-size:12px}.member-order-list-v8 strong{font-size:14px}.member-order-list-v8 i{font-style:normal;font-size:20px;color:#aaa}
.member-back-v8{border:0;background:none;padding:0 0 12px;color:#6e665f;cursor:pointer}
.order-progress-v8{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin:22px 0}.order-progress-v8>div{text-align:center;position:relative}.order-progress-v8 i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eee8e2;color:#948b83;margin:auto;font-style:normal;font-size:10px}.order-progress-v8 span{display:block;font-size:9px;margin-top:7px;color:#958b83}.order-progress-v8 .done i{background:#292521;color:#fff}.order-progress-v8 .done span{color:#292521;font-weight:800}.order-progress-v8.cancelled{opacity:.5}
.order-state-cards-v8{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.order-state-cards-v8>div{background:#f6f1ec;border-radius:12px;padding:12px}.order-state-cards-v8 span,.order-state-cards-v8 b{display:block}.order-state-cards-v8 span{font-size:9px;color:#8b827a}.order-state-cards-v8 b{font-size:11px;margin-top:4px}
.order-detail-card-v8{border:1px solid #e9e0d8;border-radius:15px;padding:14px;margin:10px 0}.order-detail-card-v8 h3{font-size:13px;margin:0 0 11px}.order-item-line-v8{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #f0eae4;font-size:11px}.order-item-line-v8 small{display:block;color:#91877f;margin-top:2px}.order-grand-total-v8{border-top:1px solid #dfd6cf;margin-top:7px;padding-top:10px}.order-logistics-v8{display:flex;justify-content:space-between;gap:8px;align-items:center}.order-logistics-v8 code{font-family:ui-monospace,monospace;background:#f3eee8;padding:6px 8px;border-radius:7px}

/* =========================================================
   CANNI V8.0.0 — Admin order management
   ========================================================= */
.order-dashboard-v8{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:14px}.order-dashboard-v8 button{border:1px solid #e3d9d0;background:#fff;border-radius:13px;padding:11px;text-align:left;cursor:pointer}.order-dashboard-v8 button.active{background:#292521;color:#fff;border-color:#292521}.order-dashboard-v8 span,.order-dashboard-v8 b{display:block}.order-dashboard-v8 span{font-size:10px}.order-dashboard-v8 b{font-size:22px;margin-top:5px}
.admin-toolbar-v8{display:grid;grid-template-columns:1fr 220px;gap:9px;margin:10px 0 14px}
.order-list-v8{display:grid;gap:9px}.order-list-v8 article{border:1px solid #e6ddd4;background:#fff;border-radius:15px;overflow:hidden}.order-list-v8 article.attention{border-left:4px solid #b0624c}.order-card-main-v8{display:block;width:100%;border:0;background:#fff;text-align:left;padding:14px;cursor:pointer}.order-card-top-v8,.order-card-body-v8{display:flex;justify-content:space-between;gap:12px}.order-card-top-v8{align-items:center;border-bottom:1px solid #f0e9e3;padding-bottom:9px}.order-card-top-v8>span:first-child{font-size:10px;color:#928980}.order-card-body-v8{padding-top:10px}.order-card-body-v8>div{display:grid;gap:3px}.order-card-body-v8>div:last-child{text-align:right}.order-card-body-v8 b{font-size:12px}.order-card-body-v8 strong{font-size:12px}.order-card-body-v8 span,.order-card-body-v8 small{font-size:10px;color:#827970}
.order-card-actions-v8{display:flex;justify-content:flex-end;gap:6px;padding:0 12px 11px}.order-card-actions-v8 button,.order-mini-actions-v8 button,.order-quick-state-v8 button{border:0;border-radius:9px;background:#f0e9e2;padding:8px 10px;font-size:10px;cursor:pointer}
.order-admin-head-v8{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.order-admin-head-v8 small{font-size:9px;letter-spacing:.16em;color:#928980}.order-admin-head-v8 h2{margin:4px 0!important}.order-admin-head-v8 p{font-size:10px;color:#91877f;margin:0}
.order-admin-summary-v8{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.order-admin-summary-v8>section{border:1px solid #e5dcd4;border-radius:14px;padding:14px}.order-admin-summary-v8 h3{font-size:12px;margin:0 0 10px}.order-contact-v8{display:grid;gap:3px}.order-contact-v8 span,.order-contact-v8 p{font-size:11px;color:#6f675f;margin:0}.order-mini-actions-v8{display:flex;gap:6px;margin-top:10px}.customer-note-v8{margin-top:10px;padding:9px;background:#f7f2ed;border-radius:10px}.customer-note-v8 span{font-size:9px;color:#8a8179}.customer-note-v8 p{font-size:11px;margin:4px 0 0}.order-payment-big-v8,.order-total-v8{display:flex;justify-content:space-between;gap:10px;padding:7px 0}.order-payment-big-v8 span,.order-total-v8 span{font-size:10px;color:#877d75}.order-payment-big-v8 b,.order-total-v8 b{font-size:12px}
.order-item-admin-v8{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid #eee7e1}.order-item-admin-v8:first-of-type{border-top:0}.order-item-admin-v8 span,.order-item-admin-v8 b{font-size:11px}.order-item-admin-v8 small{display:block;color:#8f857d;margin-top:2px}.order-admin-grid-v8{display:grid;grid-template-columns:1fr 1fr;gap:10px}.order-quick-state-v8{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.order-time-admin-v8>div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid #eee7e1}.order-time-admin-v8>div:first-of-type{border-top:0}.order-time-admin-v8 span,.order-time-admin-v8 b{font-size:10px}.order-time-admin-v8 span{color:#8b827a}

@media(max-width:850px){
  .product-modal-v8{max-width:760px!important}
  .product-detail-v8{grid-template-columns:1fr;gap:22px}
  .product-info-v8{position:static}
  .product-benefits-v8{grid-template-columns:1fr 1fr 1fr}
  .product-recommend-grid-v8{grid-template-columns:repeat(2,1fr)}
  .order-dashboard-v8{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:600px){
  .product-modal-v8{padding:18px!important;border-radius:22px 22px 0 0!important;margin:6vh 0 0!important}
  .product-gallery-stage-v8{border-radius:16px}
  .product-title-row-v8 h1{font-size:31px}
  .product-benefits-v8{grid-template-columns:1fr}
  .product-actions-v8{position:sticky;bottom:0;z-index:8;background:#fff;padding:8px 0 max(8px,env(safe-area-inset-bottom));box-shadow:0 -8px 20px #fff}
  .product-viewer-v8{padding:16px}
  .viewer-prev-v8,.viewer-next-v8{width:40px;height:40px}.viewer-prev-v8{left:8px}.viewer-next-v8{right:8px}
  .order-progress-v8 span{font-size:8px}
  .order-state-cards-v8{grid-template-columns:1fr}
  .order-dashboard-v8{grid-template-columns:repeat(2,1fr)}
  .admin-toolbar-v8{grid-template-columns:1fr}
  .order-admin-summary-v8,.order-admin-grid-v8{grid-template-columns:1fr}
  .order-card-body-v8{align-items:flex-end}
}


/* ===== CANNI V8.0.1 mobile hero sizing =====
   Keep the first banner premium without letting it consume the whole first screen. */
@media (max-width: 700px){
  .v4-hero{
    min-height:58svh;
  }
  .hero-slide-stage{
    min-height:58svh !important;
    height:58svh;
    max-height:620px;
    padding:24px 28px;
  }
  .hero-slide-stage .hero-copy{
    max-width:82%;
  }
  .hero-slide-stage .hero-copy h1{
    font-size:clamp(34px,10vw,44px);
    margin:12px 0;
  }
  .hero-slide-stage .hero-copy p{
    margin-bottom:18px;
  }
  .hero-dots{bottom:14px;}
}
@media (max-width: 430px) and (max-height: 760px){
  .v4-hero,.hero-slide-stage{min-height:54svh !important;height:54svh;}
}

/* CANNI V8.0.3 — active/past orders + reviews */
.member-order-tabs-v803{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:18px 0}
.member-order-tabs-v803 button{border:1px solid #e5dcd4;background:#f7f2ed;border-radius:12px;padding:11px 12px;font-size:11px;font-weight:800;cursor:pointer}
.member-order-tabs-v803 button.active{background:#292521;color:#fff;border-color:#292521}
.member-order-tabs-v803 b{margin-left:5px}
.order-item-review-line-v803{align-items:center}
.order-item-review-line-v803>div{text-align:right;display:grid;justify-items:end;gap:6px}
.order-review-btn-v803{border:0;background:#292521;color:#fff;border-radius:999px;padding:7px 10px;font-size:9px;font-weight:800;cursor:pointer}
.order-review-btn-v803.reviewed{background:#eee7df;color:#5f5750}
.order-review-callout-v803{margin:10px 0;padding:13px;border-radius:13px;background:#f8f1df;display:grid;gap:3px}
.order-review-callout-v803 b{font-size:11px}.order-review-callout-v803 span{font-size:9px;color:#81766d}
.order-review-product-v803{display:flex;gap:12px;align-items:center;margin:18px 0;padding:12px;border:1px solid #e8dfd7;border-radius:14px}
.order-review-product-v803 img{width:76px;height:76px;object-fit:cover;border-radius:10px;background:#f5f2ee}
.order-review-product-v803 div{display:grid;gap:4px}.order-review-product-v803 b{font-size:14px}.order-review-product-v803 span{font-size:10px;color:#8a8179}
.review-form-v803{display:grid;gap:8px}.review-form-v803 label{margin-top:5px}.review-form-v803 select,.review-form-v803 textarea{width:100%}
.review-form-v803 textarea{min-height:130px}
.existing-review-image-v803{display:flex;align-items:center;gap:10px;padding:9px;background:#f6f1ec;border-radius:11px}
.existing-review-image-v803 img{width:58px;height:58px;object-fit:cover;border-radius:8px}.existing-review-image-v803 span{font-size:9px;color:#827970}
.reviews-v803{margin-top:28px}
@media(max-width:600px){
  .member-order-tabs-v803{position:sticky;top:0;z-index:4;background:#fff;padding:4px 0}
  .order-review-btn-v803{font-size:10px}
}

/* CANNI V8.0.4 — order separation + product images */
.order-page-switch-v804{
  display:grid;grid-template-columns:1fr 1.25fr;gap:8px;margin:18px 0
}
.order-page-switch-v804 button{
  border:1px solid #e4dbd3;background:#f7f2ed;color:#292521;border-radius:13px;
  min-height:48px;padding:10px 12px;font-size:11px;font-weight:800;cursor:pointer
}
.order-page-switch-v804 button.active{background:#292521;color:#fff;border-color:#292521}
.order-page-switch-v804 b{margin-left:5px}
.member-order-list-v804{display:grid;gap:10px;margin:17px 0}
.member-order-card-v804{
  width:100%;border:1px solid #e6ddd5;background:#fff;border-radius:16px;
  padding:12px;display:grid;grid-template-columns:108px 1fr auto;gap:13px;
  align-items:center;text-align:left;cursor:pointer
}
.member-order-images-v804{
  display:flex;align-items:center;min-width:0;height:82px
}
.member-order-images-v804 img{
  width:58px;height:76px;object-fit:cover;border-radius:10px;border:2px solid #fff;
  background:#f4f1ed;box-shadow:0 1px 5px #0001
}
.member-order-images-v804 img+img{margin-left:-24px}
.member-order-image-empty-v804{
  width:78px;height:76px;border-radius:10px;background:#f3eee8;display:grid;place-items:center;
  font-family:Georgia,serif;font-size:12px;letter-spacing:.14em;color:#8e847c
}
.member-order-card-info-v804{display:grid;gap:4px;min-width:0}
.member-order-card-info-v804 small,.member-order-card-info-v804 span{font-size:9px;color:#8b8179}
.member-order-card-info-v804 b{
  font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%
}
.member-order-card-side-v804{
  display:grid;justify-items:end;gap:7px;text-align:right
}
.member-order-card-side-v804 strong{font-size:14px}
.member-order-card-side-v804 i{font-style:normal;font-size:20px;color:#aaa}
.past-review-summary-v804{
  display:flex;justify-content:space-between;align-items:center;gap:15px;
  background:#f8f1df;border-radius:14px;padding:13px 15px;margin:0 0 13px
}
.past-review-summary-v804>div{display:flex;align-items:center;gap:8px}
.past-review-summary-v804 b{font-size:24px}.past-review-summary-v804 span{font-size:10px;font-weight:800}
.past-review-summary-v804 small{font-size:9px;color:#81766d;text-align:right}
.order-item-rich-v804{align-items:center!important;gap:12px!important}
.order-item-product-v804{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.order-item-product-v804>img,.order-item-noimage-v804{
  width:66px;height:66px;border-radius:10px;flex:0 0 66px
}
.order-item-product-v804>img{object-fit:cover;background:#f4f1ed}
.order-item-noimage-v804{display:grid;place-items:center;background:#f2ede7;font-family:Georgia,serif;color:#8d837b}
.order-item-text-v804{display:grid;gap:3px;min-width:0}
.order-item-text-v804>b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.order-item-text-v804 small,.order-item-text-v804 span{font-size:9px;color:#887e76}
.order-item-price-v804{text-align:right;display:grid;gap:7px;justify-items:end}
@media(max-width:600px){
  .order-page-switch-v804{grid-template-columns:1fr 1.25fr}
  .member-order-card-v804{grid-template-columns:88px 1fr auto;gap:9px;padding:10px}
  .member-order-images-v804{height:70px}
  .member-order-images-v804 img{width:50px;height:66px}
  .member-order-images-v804 img+img{margin-left:-22px}
  .member-order-card-info-v804 b{font-size:11px;max-width:180px}
  .member-order-card-side-v804 strong{font-size:12px}
  .past-review-summary-v804{display:block}
  .past-review-summary-v804 small{display:block;text-align:left;margin-top:5px}
  .order-item-rich-v804{display:flex!important}
  .order-item-product-v804>img,.order-item-noimage-v804{width:58px;height:58px;flex-basis:58px}
}

/* =========================================================
   CANNI V8.0.5 — member entry + order product layout fixes
   ========================================================= */

/* Past orders/reviews is now a standalone member-center destination.
   Keep legacy switch styles harmless if old cached DOM appears. */
.order-page-switch-v804{display:none!important}

/* Product details should read like the cart: image at left, copy beside it,
   price/review controls at right. */
.order-products-card-v805 .order-item-rich-v804{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:14px!important;
  width:100%!important;
  padding:12px 0!important;
}
.order-products-card-v805 .order-item-product-v804{
  display:grid!important;
  grid-template-columns:72px minmax(0,1fr)!important;
  align-items:center!important;
  gap:12px!important;
  min-width:0!important;
  justify-self:stretch!important;
}
.order-products-card-v805 .order-item-product-v804>img,
.order-products-card-v805 .order-item-noimage-v804{
  width:72px!important;
  height:72px!important;
  border-radius:11px!important;
  margin:0!important;
  justify-self:start!important;
}
.order-products-card-v805 .order-item-text-v804{
  text-align:left!important;
  justify-items:start!important;
  align-content:center!important;
}
.order-products-card-v805 .order-item-text-v804>b{
  font-size:13px!important;
  max-width:100%!important;
}
.order-products-card-v805 .order-item-price-v804{
  min-width:118px!important;
  text-align:right!important;
  justify-items:end!important;
  align-content:center!important;
}
.order-products-card-v805 .order-item-price-v804>b{
  font-size:13px!important;
}

/* Order-list thumbnail stacks: never stretch or drift. */
.member-order-card-v804{
  overflow:hidden!important;
}
.member-order-images-v804{
  justify-content:flex-start!important;
  align-items:center!important;
  overflow:visible!important;
}
.member-order-images-v804 img{
  object-position:center!important;
}

/* Mobile cart-like layout */
@media(max-width:600px){
  .order-products-card-v805 .order-item-rich-v804{
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:9px!important;
  }
  .order-products-card-v805 .order-item-product-v804{
    grid-template-columns:58px minmax(0,1fr)!important;
    gap:9px!important;
  }
  .order-products-card-v805 .order-item-product-v804>img,
  .order-products-card-v805 .order-item-noimage-v804{
    width:58px!important;
    height:58px!important;
  }
  .order-products-card-v805 .order-item-price-v804{
    min-width:102px!important;
  }
  .order-products-card-v805 .order-review-btn-v803{
    white-space:nowrap!important;
    padding:7px 9px!important;
  }
}

/* CANNI V8.0.6 — member center & completed-order filter */
@media(min-width:1000px){
  .order-dashboard-v8{grid-template-columns:repeat(7,1fr)!important}
}


/* =====================================================================
   CANNI V8.1.0 — PRODUCT-FIRST STOREFRONT
   ===================================================================== */

/* ---------- cleaner product listing ---------- */
.v4-shop{
  max-width:1440px!important;
}
#products.grid{
  gap:34px 18px!important;
}
.product-card-v81{
  appearance:none;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
  min-width:0;
  cursor:pointer;
  overflow:visible;
}
.product-card-image-v81,
.home-product-image-v81{
  position:relative;
  overflow:hidden;
  background:#f2efeb;
  border-radius:18px;
  aspect-ratio:1/1;
}
.product-card-image-v81 .image-wrap-v81,
.home-product-image-v81 .image-wrap-v81{
  width:100%;height:100%;
}
.product-card-img-v81,
.home-product-img-v81{
  display:block;
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .45s cubic-bezier(.2,.7,.2,1);
}
.product-card-v81:hover .product-card-img-v81,
.home-product-v81:hover .home-product-img-v81{
  transform:scale(1.025);
}
.image-wrap-v81.fallback-v81,
.product-main-image-wrap-v81.fallback-v81{
  display:grid!important;
  place-items:center!important;
  background:linear-gradient(145deg,#f3eee7,#e6ddd3)!important;
}
.image-wrap-v81.fallback-v81:after,
.product-main-image-wrap-v81.fallback-v81:after{
  content:"CANNI";
  font:600 20px/1 Georgia,serif;
  letter-spacing:.24em;
  color:#91877e;
  margin-left:.24em;
}
.product-image-placeholder-v81{
  width:100%;height:100%;
  display:grid;place-items:center;
  background:linear-gradient(145deg,#f3eee7,#e6ddd3);
}
.product-image-placeholder-v81 span{
  font:600 20px/1 Georgia,serif;letter-spacing:.24em;color:#91877e;margin-left:.24em;
}
.product-card-badge-v81{
  position:absolute;z-index:2;top:12px;left:12px;
  border-radius:999px;background:#fff;color:#292521;
  padding:7px 10px;font-size:10px;font-weight:800;letter-spacing:.04em;
}
.product-card-badge-v81.sale{background:#a93330;color:#fff}
.product-card-favorite-v81{
  position:absolute!important;z-index:3!important;
  top:10px!important;right:10px!important;
  width:40px!important;height:40px!important;
  border-radius:50%!important;border:0!important;
  background:rgba(255,255,255,.92)!important;
  color:#292521!important;
  display:grid!important;place-items:center!important;
  font-size:22px!important;
  box-shadow:0 4px 18px rgba(31,27,24,.08)!important;
}
.product-card-copy-v81,
.home-product-copy-v81{
  padding:12px 3px 0;
  display:grid;gap:5px;
  text-align:left;
}
.product-card-copy-v81 small,
.home-product-copy-v81 small{
  color:#8a8179;font-size:10px;letter-spacing:.03em;
}
.product-card-name-row-v81{
  display:flex;align-items:flex-start;justify-content:space-between;gap:8px;
}
.product-card-name-row-v81 b,
.home-product-copy-v81 b{
  color:#292521;font-size:15px;line-height:1.35;
}
.product-card-name-row-v81 span{
  flex:0 0 auto;font-size:9px;font-weight:800;border-radius:999px;padding:4px 7px;background:#f0ece7;color:#8a8179;
}
.product-card-name-row-v81 span.low{background:#f6e8e1;color:#9c4f35}
.product-card-name-row-v81 span.sold{background:#eee;color:#777}
.product-card-price-v81,
.home-product-copy-v81>span{
  color:#292521;font-size:15px;font-weight:800;
}
.product-card-price-v81 del,
.home-product-copy-v81 del{color:#a29a93;font-size:11px;margin-left:6px}
.product-card-price-v81 .sale-price,
.home-product-copy-v81 .sale-price{color:#a23733}
.home-product-v81{
  min-width:0;cursor:pointer;
}

/* ---------- product page: REAL page ---------- */
.product-page-shell-v81{
  background:#faf8f5;
  min-height:100vh;
  width:100%;
  padding-bottom:90px;
}
body.product-page-open-v81{
  background:#faf8f5;
}
body.product-page-open-v81 .v4-header{
  position:sticky;
  top:0;
  z-index:80;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(18px);
}
.product-page-top-v81{
  max-width:1460px;
  margin:0 auto;
  padding:24px 32px 18px;
  display:flex;align-items:center;justify-content:space-between;
}
.product-back-v81{
  border:0;background:transparent;color:#6f665f;
  display:flex;align-items:center;gap:9px;
  font-size:13px;cursor:pointer;padding:8px 0;
}
.product-back-v81 span{font-size:24px;font-weight:300}
.product-back-v81 b{font-weight:700}
.product-page-tools-v81{display:flex;gap:8px}
.product-tool-v81{
  width:46px;height:46px;border-radius:50%;
  border:1px solid #e2dbd4;background:#fff;color:#292521;
  display:grid;place-items:center;font-size:23px;cursor:pointer;
}
.product-hero-layout-v81{
  max-width:1460px;
  margin:0 auto;
  padding:0 32px 70px;
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(380px,.78fr);
  gap:56px;
  align-items:start;
}
.product-gallery-v81{min-width:0}
.product-gallery-stage-v81{
  position:relative;
  width:100%;
  background:#f0eeeb;
  overflow:hidden;
  border-radius:24px;
  aspect-ratio:1/1.05;
}
.product-main-image-wrap-v81{
  width:100%;height:100%;
}
#productMainImageV81{
  width:100%;height:100%;
  display:block;object-fit:cover;
  cursor:zoom-in;
}
.product-gallery-nav-v81{
  position:absolute;top:50%;z-index:4;
  transform:translateY(-50%);
  width:52px;height:52px;border-radius:50%;
  border:1px solid rgba(255,255,255,.8);
  background:rgba(255,255,255,.88);
  color:#292521;font-size:32px;
  display:grid;place-items:center;
  cursor:pointer;
  backdrop-filter:blur(10px);
}
.product-gallery-nav-v81.prev{left:20px}
.product-gallery-nav-v81.next{right:20px}
.product-gallery-count-v81{
  position:absolute;right:18px;bottom:18px;
  background:rgba(32,29,26,.72);color:#fff;
  border-radius:999px;padding:7px 11px;
  font-size:10px;font-weight:800;
  backdrop-filter:blur(8px);
}
.product-gallery-dots-v81{
  display:none;
}
.product-gallery-thumbs-v81{
  margin-top:14px;
  display:flex;gap:10px;
  overflow-x:auto;padding-bottom:3px;
  scrollbar-width:none;
}
.product-gallery-thumbs-v81::-webkit-scrollbar{display:none}
.product-gallery-thumb-v81{
  flex:0 0 86px;width:86px;height:104px;
  padding:0;border:1px solid transparent;border-radius:12px;
  background:#efebe6;overflow:hidden;cursor:pointer;
  opacity:.63;transition:.18s ease;
}
.product-gallery-thumb-v81.active{
  opacity:1;border-color:#2d2925;
}
.product-gallery-thumb-v81 img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.product-buy-panel-v81{
  position:sticky;top:118px;
  padding:22px 4px 0;
}
.product-category-v81{
  color:#8d8279;font-size:11px;
  text-transform:uppercase;letter-spacing:.08em;
  margin-bottom:12px;
}
.product-name-actions-v81 h1{
  margin:0;
  color:#292521;
  font:500 clamp(34px,3.2vw,56px)/1.08 Georgia,"Noto Serif TC",serif;
  letter-spacing:-.025em;
}
.product-price-stock-v81{
  margin-top:22px;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
}
.product-page-price-v81{
  color:#292521;font-size:23px;font-weight:850;
}
.product-page-price-v81 .sale-price{color:#a53632}
.product-page-price-v81 del{font-size:13px;color:#aaa;margin-left:8px}
.stock-pill-v81{
  border-radius:999px;background:#eee9e3;color:#766c64;
  padding:7px 10px;font-size:10px;font-weight:800;white-space:nowrap;
}
.stock-pill-v81.low{background:#f6e6df;color:#a14d36}
.stock-pill-v81.sold{background:#ececec;color:#777}
.product-intro-v81{
  margin:22px 0 0;color:#6c645e;
  font-size:14px;line-height:1.9;white-space:pre-line;
}
.product-control-v81{
  margin-top:28px;display:grid;gap:9px;
}
.product-control-v81 label,
.product-qty-row-v81>span{
  font-size:11px;font-weight:800;color:#625a54;
}
.product-control-v81 select{
  appearance:none;
  width:100%;
  min-height:52px;
  border:1px solid #ded5cc;
  border-radius:13px;
  background:#fff;
  color:#292521;
  padding:0 44px 0 15px;
  font-size:13px;
}
.product-control-v81 small{color:#9a6d58;font-size:10px;min-height:12px}
.product-qty-row-v81{
  margin-top:20px;
  display:flex;align-items:center;justify-content:space-between;
}
.product-qty-v81{
  display:flex;align-items:center;
  border:1px solid #dfd7cf;border-radius:999px;
  background:#fff;overflow:hidden;
}
.product-qty-v81 button{
  width:42px;height:38px;border:0;background:transparent;font-size:19px;cursor:pointer;
}
.product-qty-v81 b{
  min-width:34px;text-align:center;font-size:12px;
}
.product-add-main-v81{
  margin-top:22px;width:100%;height:58px;
  border:0;border-radius:999px;
  background:#292521;color:#fff;
  font-size:14px;font-weight:800;
  cursor:pointer;transition:transform .14s ease,opacity .14s ease;
}
.product-add-main-v81:hover{transform:translateY(-1px)}
.product-add-main-v81.pressed{transform:scale(.985)}
.product-add-main-v81:disabled{background:#bbb;cursor:not-allowed}
.product-benefits-v81{
  margin-top:28px;
  border-top:1px solid #e5ddd6;
  border-bottom:1px solid #e5ddd6;
  display:grid;
}
.product-benefits-v81>div{
  min-height:68px;
  display:grid;
  grid-template-columns:34px 1fr;
  grid-template-rows:auto auto;
  column-gap:8px;
  align-content:center;
  border-bottom:1px solid #eee7e1;
}
.product-benefits-v81>div:last-child{border-bottom:0}
.product-benefits-v81 span{
  grid-row:1/3;color:#b0a69d;font-size:9px;letter-spacing:.12em;
}
.product-benefits-v81 b{font-size:12px;color:#292521}
.product-benefits-v81 small{font-size:10px;color:#8c837b;margin-top:2px}
.product-accordion-v81{margin-top:14px}
.product-accordion-v81 details{border-bottom:1px solid #e8e0d9}
.product-accordion-v81 summary{
  min-height:58px;display:flex;align-items:center;justify-content:space-between;
  list-style:none;cursor:pointer;font-size:12px;font-weight:800;color:#302c28;
}
.product-accordion-v81 summary::-webkit-details-marker{display:none}
.product-accordion-v81 summary b{font-size:18px;font-weight:400}
.product-accordion-v81 details[open] summary b{transform:rotate(45deg)}
.product-accordion-v81 details p{
  margin:-4px 0 20px;color:#736a63;font-size:12px;line-height:1.85;white-space:pre-line;
}
.product-restock-v81{
  margin-top:22px;padding:16px;border-radius:15px;background:#f1ece6;
}
.product-restock-v81>b{font-size:13px}
.product-restock-v81 p{font-size:10px;color:#81776f;margin:5px 0 10px}
.product-restock-v81>div{display:grid;grid-template-columns:1fr auto;gap:7px}
.product-restock-v81 input{
  border:1px solid #ddd4cc;border-radius:10px;background:#fff;padding:11px;
}
.product-restock-v81 button{
  border:0;border-radius:10px;background:#292521;color:#fff;padding:0 14px;font-weight:800;
}
.product-restock-v81 small{display:block;margin-top:7px;color:#906c5b}

/* ---------- reviews ---------- */
.product-reviews-section-v81,
.product-related-v81{
  max-width:1396px;
  margin:0 auto;
  padding:68px 32px;
  border-top:1px solid #e8e1da;
}
.product-review-loading-v81,
.product-review-empty-v81{
  padding:42px 0;color:#91877e;font-size:12px;
}
.product-review-head-v81{
  display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px;
}
.product-review-head-v81 small,
.product-section-head-v81 small{
  display:block;color:#8c8279;font-size:10px;letter-spacing:.24em;font-weight:700;
}
.product-review-head-v81 h2,
.product-section-head-v81 h2{
  margin:6px 0 0;color:#292521;
  font:500 34px/1.1 Georgia,"Noto Serif TC",serif;
}
.product-review-score-v81{text-align:right;display:grid;gap:4px}
.product-review-score-v81 b{font:500 40px/1 Georgia,serif}
.product-review-score-v81 span{font-size:10px;color:#8b8179}
.product-review-list-v81{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;
}
.product-review-list-v81 article{
  min-height:150px;border:1px solid #e7dfd8;border-radius:16px;background:#fff;padding:18px;
}
.review-stars-v81{font-size:13px;letter-spacing:.08em}
.product-review-list-v81 p{font-size:12px;line-height:1.75;color:#5f5852}
.product-review-list-v81 article>small{display:block;margin-top:12px;color:#a09790;font-size:9px}
.review-photo-v81{border:0;background:transparent;padding:0;margin-top:8px;cursor:pointer}
.review-photo-v81 img{width:88px;height:88px;border-radius:10px;object-fit:cover}

/* ---------- related ---------- */
.product-section-head-v81{margin-bottom:26px}
.product-related-grid-v81{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;
}
.product-recent-v81{padding-top:40px}

/* ---------- feedback ---------- */
.product-feedback-v81{
  position:fixed;left:50%;top:50%;z-index:2147483640;
  transform:translate(-50%,-44%) scale(.96);
  opacity:0;pointer-events:none;
  min-width:220px;max-width:min(82vw,340px);
  background:rgba(35,32,29,.93);color:#fff;
  border-radius:18px;padding:18px 22px;
  display:flex;align-items:center;justify-content:center;gap:10px;
  box-shadow:0 18px 60px rgba(0,0,0,.22);
  backdrop-filter:blur(12px);
  transition:.2s ease;
}
.product-feedback-v81.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.product-feedback-v81 span{
  width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#292521;
}
.product-feedback-v81 b{font-size:13px}

/* ---------- mobile sticky buy bar ---------- */
.product-mobile-buybar-v81{display:none}

@media(max-width:900px){
  /* full-width real product page, not a small modal/card */
  .product-page-shell-v81{padding-bottom:100px}
  body.product-page-open-v81 .v4-header{
    position:relative;
  }
  .product-page-top-v81{
    padding:14px 20px;
    background:#fff;
  }
  .product-page-tools-v81{gap:5px}
  .product-tool-v81{width:42px;height:42px}
  .product-hero-layout-v81{
    display:block;
    width:100%;
    padding:0;
    margin:0;
  }
  .product-gallery-stage-v81{
    width:100%;
    border-radius:0;
    aspect-ratio:1/1.08;
    background:#f1efec;
  }
  #productMainImageV81{
    object-fit:cover;
  }
  .product-gallery-nav-v81{
    width:44px;height:44px;font-size:27px;
    background:rgba(255,255,255,.82);
  }
  .product-gallery-nav-v81.prev{left:14px}
  .product-gallery-nav-v81.next{right:14px}
  .product-gallery-count-v81{bottom:15px;right:15px}
  .product-gallery-thumbs-v81{display:none}
  .product-gallery-dots-v81{
    display:flex;align-items:center;justify-content:center;gap:7px;
    height:34px;background:#faf8f5;
  }
  .product-gallery-dot-v81{
    width:7px;height:7px;border-radius:50%;border:0;background:#d9d2cb;padding:0;
  }
  .product-gallery-dot-v81.active{background:#2b2825}
  .product-buy-panel-v81{
    position:static;
    padding:28px 22px 10px;
  }
  .product-category-v81{font-size:10px}
  .product-name-actions-v81 h1{
    font-size:36px;line-height:1.1;
  }
  .product-price-stock-v81{margin-top:16px}
  .product-page-price-v81{font-size:21px}
  .product-intro-v81{font-size:13px;line-height:1.8}
  .product-add-main-v81{
    margin-top:20px;height:54px;
  }
  .product-benefits-v81{margin-top:26px}
  .product-reviews-section-v81,
  .product-related-v81{
    padding:52px 22px;
  }
  .product-review-head-v81 h2,
  .product-section-head-v81 h2{font-size:30px}
  .product-review-list-v81{grid-template-columns:1fr}
  .product-related-grid-v81{
    grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px;
  }

  .product-mobile-buybar-v81{
    position:fixed;z-index:110;
    left:0;right:0;bottom:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) 48px auto;
    gap:9px;align-items:center;
    padding:10px max(14px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
    background:rgba(255,255,255,.96);
    border-top:1px solid #e8e0d9;
    backdrop-filter:blur(18px);
  }
  .product-mobile-buybar-v81>div{display:grid;gap:1px;min-width:0}
  .product-mobile-buybar-v81 small{
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#8b8179;font-size:9px;
  }
  .product-mobile-buybar-v81 b{font-size:12px;color:#292521}
  .product-mobile-buybar-v81>.favorite-btn{
    position:static!important;width:46px!important;height:46px!important;
    border-radius:50%!important;border:1px solid #e4dcd5!important;background:#fff!important;
    font-size:21px!important;
  }
  .product-mobile-buybar-v81>button:last-child{
    height:46px;border:0;border-radius:999px;background:#292521;color:#fff;padding:0 22px;font-size:12px;font-weight:800;
  }

  /* listings become spacious 2-column boutique grid */
  #products.grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:30px 10px!important;
  }
  .product-card-image-v81,
  .home-product-image-v81{
    border-radius:14px;
  }
  .product-card-favorite-v81{
    width:37px!important;height:37px!important;top:8px!important;right:8px!important;font-size:20px!important;
  }
  .product-card-badge-v81{
    top:9px;left:9px;font-size:9px;padding:6px 8px;
  }
  .product-card-copy-v81,
  .home-product-copy-v81{padding-top:9px}
  .product-card-name-row-v81 b,
  .home-product-copy-v81 b{font-size:13px}
  .product-card-price-v81,
  .home-product-copy-v81>span{font-size:13px}
}

@media(max-width:560px){
  .product-page-top-v81{padding:10px 16px}
  .product-back-v81 b{font-size:11px}
  .product-name-actions-v81 h1{font-size:32px}
  .product-buy-panel-v81{padding-left:18px;padding-right:18px}
  .product-reviews-section-v81,
  .product-related-v81{padding-left:18px;padding-right:18px}
  .product-review-head-v81{align-items:flex-start}
  .product-review-score-v81 b{font-size:34px}
}

/* CANNI V8.1.1 */
.product-page-tools-v81{display:none!important}
.product-actions-v811{display:flex;gap:9px;margin-top:16px}
.product-action-v811{height:46px;border:1px solid #ddd4cc;border-radius:999px;background:#fff;color:#292521;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:12px;cursor:pointer}
.product-action-v811 span{font-size:22px;line-height:1}.product-action-v811 b{font-size:11px}.product-action-v811.active{background:#fff9dc;border-color:#eadf9f}.product-action-v811.share svg{width:19px;height:19px}
.product-mobile-buybar-v81{grid-template-columns:minmax(0,1fr) minmax(155px,42%)!important;gap:12px!important}
.product-mobile-price-v811{display:grid!important;min-width:0}.product-mobile-price-v811 small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-mobile-add-v811{width:100%!important;min-width:0!important;white-space:nowrap!important;height:48px!important;border:0!important;border-radius:999px!important;background:#292521!important;color:#fff!important;font-size:12px!important;font-weight:800!important;padding:0 18px!important}.product-mobile-add-v811:disabled{background:#aaa!important}
.special-brand-visual-v811{position:relative;overflow:hidden;width:100%;height:360px;border-radius:22px;margin:8px 0 30px;background:#eee9e3}.special-brand-visual-v811 picture,.special-brand-visual-v811 img{display:block;width:100%;height:100%}.special-brand-visual-v811 img{object-fit:cover}.special-brand-visual-v811:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,22,20,.52),rgba(25,22,20,.08) 62%,transparent)}.special-brand-overlay-v811{position:absolute;z-index:2;left:clamp(24px,5vw,70px);bottom:clamp(24px,5vw,58px);color:#fff;max-width:560px}.special-brand-overlay-v811 small{font-size:10px;letter-spacing:.26em;font-weight:800}.special-brand-overlay-v811 h1{margin:8px 0 0;font:500 clamp(38px,5vw,68px)/1.02 Georgia,"Noto Serif TC",serif}.special-brand-overlay-v811 p{margin:12px 0 0;font-size:13px;line-height:1.7;white-space:pre-line}
.canni-notice-v811{position:fixed;z-index:2147483647;left:50%;top:50%;transform:translate(-50%,-44%) scale(.97);opacity:0;pointer-events:none;transition:.18s ease}.canni-notice-v811.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.canni-notice-v811>div{min-width:230px;max-width:82vw;padding:16px 20px;border-radius:15px;background:rgba(39,35,32,.94);color:#fff;text-align:center;box-shadow:0 18px 55px #0003}.canni-notice-v811 b,.canni-notice-v811 small{display:block}.canni-notice-v811 small{margin-top:4px;opacity:.78;font-size:10px}
.special-visual-manager-v811{display:grid;gap:18px}.special-visual-admin-v811{border:1px solid #e5dcd3;border-radius:15px;padding:16px;background:#fff}.special-visual-admin-v811 h4{margin:0;font-size:17px}.special-visual-enable-v811{display:flex;align-items:center;gap:7px;white-space:nowrap}.special-visual-preview-v811{margin:10px 0;display:flex;align-items:center;gap:10px}.special-visual-preview-v811 img{width:180px;height:92px;object-fit:cover;border-radius:10px;border:1px solid #e6ddd5}.special-visual-preview-v811.mobile img{width:92px;height:120px}.special-visual-preview-v811 span{font-size:10px;color:#8a8179}
@media(max-width:900px){
  .product-main-image-wrap-v81{background:#f4f1ed!important}.product-main-image-wrap-v81 #productMainImageV81{object-fit:contain!important}
  .product-gallery-stage-v81{aspect-ratio:1/1!important}
  .product-actions-v811{margin-top:14px}.product-action-v811{flex:1}
  .special-brand-visual-v811{height:270px;border-radius:15px;margin:6px 0 22px}.special-brand-visual-v811:after{background:linear-gradient(0deg,rgba(25,22,20,.55),rgba(25,22,20,.04) 75%)}.special-brand-overlay-v811{left:22px;right:22px;bottom:24px}.special-brand-overlay-v811 h1{font-size:38px}.special-brand-overlay-v811 p{font-size:11px}
}
@media(max-width:560px){.product-mobile-buybar-v81{grid-template-columns:minmax(0,1fr) minmax(145px,44%)!important;padding-left:12px!important;padding-right:12px!important}.product-mobile-add-v811{padding:0 14px!important}.special-brand-visual-v811{height:235px}.special-brand-overlay-v811 h1{font-size:34px}}

/* ============================================================
   CANNI V8.1.2 — premium hero + integrated mastheads
   ============================================================ */

/* HERO SLIDER */
.hero-v812{
  position:relative!important;
  overflow:hidden!important;
  padding:0!important;
  border-radius:0!important;
  background:#eee8e1!important;
}
.hero-viewport-v812{overflow:hidden;width:100%}
.hero-track-v812{
  display:flex;
  width:100%;
  will-change:transform;
  transition:transform .72s cubic-bezier(.22,.7,.22,1);
}
.hero-track-v812.no-animate{transition:none!important}
.hero-slide-v812{
  min-width:100%;
  min-height:calc(100vh - 72px);
  display:flex;
  align-items:center;
  padding:8vw;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.hero-slide-v812 .hero-copy{
  max-width:620px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.hero-slide-v812[data-layout="center"]{justify-content:center;text-align:center}
.hero-slide-v812[data-layout="center"] .hero-copy{align-items:center}
.hero-slide-v812[data-layout="right"]{justify-content:flex-end;text-align:right}
.hero-slide-v812[data-layout="right"] .hero-copy{align-items:flex-end}
.hero-slide-v812[data-layout="bottom-left"]{align-items:flex-end}
.hero-slide-v812[data-layout="bottom-center"]{align-items:flex-end;justify-content:center;text-align:center}
.hero-slide-v812[data-layout="bottom-center"] .hero-copy{align-items:center}
.hero-link-v812{
  border:0;
  border-radius:999px;
  min-height:48px;
  padding:0 22px;
  margin-top:14px;
  cursor:pointer;
  box-shadow:none;
}
.hero-nav-v812{
  position:absolute;
  top:50%;
  z-index:8;
  transform:translateY(-50%);
  width:46px;
  height:72px;
  border:0;
  background:transparent;
  color:#24211e;
  cursor:pointer;
  opacity:.72;
  transition:opacity .18s ease,transform .18s ease;
}
.hero-nav-v812:hover{opacity:1;transform:translateY(-50%) scale(1.05)}
.hero-nav-v812.prev{left:18px}
.hero-nav-v812.next{right:18px}
.hero-nav-v812 span{
  display:block;
  font:300 48px/1 Georgia,serif;
  text-shadow:0 1px 14px rgba(255,255,255,.55);
}
.hero-progress-v812{
  position:absolute;
  z-index:9;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  display:flex;
  gap:7px;
}
.hero-progress-dot-v812{
  width:7px;height:7px;border:0;border-radius:50%;
  padding:0;background:rgba(255,255,255,.62);
  box-shadow:0 0 0 1px rgba(0,0,0,.08);
  cursor:pointer;
  transition:.2s ease;
}
.hero-progress-dot-v812.active{width:20px;border-radius:99px;background:#27231f}
.hero-filmstrip-v812{
  position:absolute;
  z-index:9;
  right:28px;
  bottom:24px;
  display:flex;
  gap:8px;
}
.hero-thumb-v812{
  width:58px;height:72px;
  border:1px solid rgba(255,255,255,.65);
  border-radius:7px;
  padding:2px;
  overflow:hidden;
  background:rgba(255,255,255,.4);
  opacity:.52;
  cursor:pointer;
  transition:.22s ease;
  backdrop-filter:blur(5px);
}
.hero-thumb-v812.active{
  opacity:1;
  border-color:#fff;
  transform:translateY(-3px);
  box-shadow:0 6px 20px rgba(0,0,0,.12);
}
.hero-thumb-v812 img{width:100%;height:100%;object-fit:cover;border-radius:4px;display:block}
.hero-thumb-v812 span{display:grid;place-items:center;width:100%;height:100%;font-size:10px}

/* INTEGRATED COLLECTION/SPECIAL VISUALS */
.v4-shop.shop-has-masthead-v812{
  max-width:none!important;
  padding-left:0!important;
  padding-right:0!important;
  padding-top:0!important;
}
.v4-shop.shop-has-masthead-v812>.shop-breadcrumb,
.v4-shop.shop-has-masthead-v812>#backNavV729,
.v4-shop.shop-has-masthead-v812>.heading-row,
.v4-shop.shop-has-masthead-v812>#filters,
.v4-shop.shop-has-masthead-v812>#products{
  max-width:1280px;
  margin-left:auto;
  margin-right:auto;
}
.v4-shop.shop-has-masthead-v812>.shop-breadcrumb{
  padding:28px 24px 0;
}
.v4-shop.shop-has-masthead-v812>#backNavV729{
  padding-left:24px;padding-right:24px;
}
.shop-masthead-v812,
.category-hero-banner.shop-masthead-v812{
  position:relative;
  width:100vw;
  max-width:none;
  min-height:430px;
  margin:20px calc(50% - 50vw) 50px!important;
  border-radius:0!important;
  padding:0!important;
  overflow:hidden;
  background:#ddd3c8;
  display:flex;
  align-items:flex-end;
}
.shop-masthead-media-v812{
  position:absolute;inset:0;width:100%;height:100%;
}
.shop-masthead-media-v812 img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.shop-masthead-shade-v812{
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(21,18,16,.62) 0%,rgba(21,18,16,.18) 48%,rgba(21,18,16,.04) 100%);
}
.shop-masthead-copy-v812,
.category-hero-banner.shop-masthead-v812 .category-hero-copy{
  position:relative;
  z-index:2;
  width:min(1280px,100%);
  max-width:none;
  margin:0 auto;
  padding:58px 34px;
  color:#fff;
}
.shop-masthead-copy-v812 small,
.category-hero-banner.shop-masthead-v812 .category-hero-copy span{
  color:#fff!important;
  font-size:10px;
  letter-spacing:.28em;
  text-shadow:0 1px 18px rgba(0,0,0,.25);
}
.shop-masthead-copy-v812 h1,
.category-hero-banner.shop-masthead-v812 .category-hero-copy h1{
  margin:9px 0 5px;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font:500 clamp(38px,5vw,66px)/1.02 Georgia,"Noto Serif TC",serif!important;
  text-shadow:0 2px 22px rgba(0,0,0,.28)!important;
}
.shop-masthead-copy-v812 p,
.category-hero-banner.shop-masthead-v812 .category-hero-copy p{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-size:14px!important;
  text-shadow:0 1px 16px rgba(0,0,0,.28)!important;
}
.category-hero-banner.shop-masthead-v812:after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(to top,rgba(21,18,16,.58),rgba(21,18,16,.08));
  pointer-events:none;
}
.category-hero-banner.shop-masthead-v812 .category-hero-copy{z-index:2}
.heading-under-masthead-v812{
  padding-left:24px;padding-right:24px;
}

/* Banner editor */
.banner-visibility-v812{margin:14px 0}
.banner-visibility-grid-v812{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.banner-visibility-grid-v812 label{
  display:flex!important;
  align-items:center;
  gap:8px;
  margin:0!important;
  padding:10px 12px;
  border:1px solid #e5ddd5;
  border-radius:10px;
  background:#fff;
}
.banner-visibility-grid-v812 input{width:auto!important;margin:0!important}

@media(max-width:800px){
  .hero-slide-v812{
    min-height:58svh;
    padding:28px 24px 96px;
    background-position:center;
  }
  .hero-slide-v812 .hero-copy{max-width:88%}
  .hero-slide-v812 .hero-copy h1{line-height:1.03}
  .hero-nav-v812{display:none}
  .hero-filmstrip-v812{
    left:16px;right:16px;bottom:17px;
    justify-content:center;
    gap:6px;
  }
  .hero-thumb-v812{
    width:46px;height:58px;border-radius:6px;
  }
  .hero-progress-v812{bottom:84px}
  .hero-link-v812{min-height:44px;padding:0 18px}

  .shop-masthead-v812,
  .category-hero-banner.shop-masthead-v812{
    min-height:330px;
    margin-top:14px!important;
    margin-bottom:30px!important;
  }
  .shop-masthead-copy-v812,
  .category-hero-banner.shop-masthead-v812 .category-hero-copy{
    padding:42px 22px;
  }
  .shop-masthead-copy-v812 h1,
  .category-hero-banner.shop-masthead-v812 .category-hero-copy h1{
    font-size:42px!important;
  }
  .banner-visibility-grid-v812{grid-template-columns:1fr}
}

/* ============================================================
   CANNI V8.1.3 — spacing / product gallery / variant editor
   ============================================================ */

/* 1. Restore breathing room on mobile shop pages */
@media(max-width:800px){
  .v4-shop,
  .v4-shop.shop-has-masthead-v812{
    padding-left:18px!important;
    padding-right:18px!important;
  }
  .v4-shop.shop-has-masthead-v812>.shop-breadcrumb,
  .v4-shop.shop-has-masthead-v812>#backNavV729,
  .v4-shop.shop-has-masthead-v812>.heading-row,
  .v4-shop.shop-has-masthead-v812>#filters,
  .v4-shop.shop-has-masthead-v812>#products{
    width:100%!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .shop-masthead-v812,
  .category-hero-banner.shop-masthead-v812{
    width:100%!important;
    margin:14px 0 30px!important;
    min-height:320px!important;
    border-radius:14px!important;
  }
}

/* 2. The masthead already says the category name — don't repeat it below. */
.shop-title-covered-v813 .heading-row h2{
  display:none!important;
}
.shop-title-covered-v813 .heading-row{
  margin-top:8px!important;
  min-height:0!important;
}

/* 3. Product gallery on mobile: swipe + dots + filmstrip */
@media(max-width:900px){
  .product-gallery-thumbs-v81{
    display:flex!important;
    gap:8px!important;
    overflow-x:auto!important;
    padding:4px 16px 13px!important;
    margin:0!important;
    background:#faf8f5!important;
    scrollbar-width:none;
    scroll-snap-type:x proximity;
  }
  .product-gallery-thumbs-v81::-webkit-scrollbar{display:none}
  .product-gallery-thumb-v81{
    display:block!important;
    flex:0 0 58px!important;
    width:58px!important;
    height:70px!important;
    border-radius:8px!important;
    scroll-snap-align:start;
    opacity:.55!important;
    border:1px solid transparent!important;
    background:#eee9e4!important;
  }
  .product-gallery-thumb-v81.active{
    opacity:1!important;
    border-color:#2b2825!important;
  }
  .product-gallery-thumb-v81 img{
    width:100%!important;height:100%!important;object-fit:cover!important;
  }
  .product-gallery-dots-v81{
    height:30px!important;
    padding-top:5px!important;
  }
  /* Mobile interaction is swipe-first. Hide bulky arrows. */
  .product-gallery-nav-v81{
    display:none!important;
  }
}

/* 4. Variant editor */
.variant-editor-head-v813{
  display:flex;align-items:flex-start;justify-content:space-between;gap:14px;
  margin-bottom:14px;
}
.variant-editor-head-v813 h3{margin:0 0 5px}
.variant-rows-v813{display:grid;gap:10px}
.variant-row-v813{
  display:grid;
  grid-template-columns:28px minmax(160px,1fr) 120px 120px 44px;
  gap:10px;
  align-items:end;
  padding:12px;
  border:1px solid #e4dbd2;
  border-radius:13px;
  background:#fff;
}
.variant-drag-v813{
  align-self:center;
  color:#b0a59b;
  letter-spacing:-4px;
  user-select:none;
}
.variant-field-v813{display:grid;gap:5px}
.variant-field-v813 label{font-size:11px;color:#756c64;margin:0!important}
.variant-field-v813 input{margin:0!important}
.variant-remove-v813{
  width:42px;height:42px;
  border:1px solid #eaded7;
  border-radius:10px;
  background:#f8f1ee;
  color:#9b4438;
  font-size:22px;
  cursor:pointer;
}
.variant-summary-v813{
  margin-top:12px;
  padding:11px 13px;
  border-radius:11px;
  background:#f1ece6;
  display:flex;justify-content:space-between;gap:14px;align-items:center;
}
.variant-summary-v813 b{font-size:13px}
.variant-summary-v813 span{font-size:11px;color:#81766e;text-align:right}

@media(max-width:800px){
  .variant-editor-head-v813{display:grid}
  .variant-editor-head-v813 .btn{width:100%}
  .variant-row-v813{
    grid-template-columns:1fr 1fr 44px;
  }
  .variant-drag-v813{display:none}
  .variant-field-v813.grow{grid-column:1/-1}
  .variant-summary-v813{display:grid}
  .variant-summary-v813 span{text-align:left}
}

/* CANNI V8.1.4 — exact category/title and gallery fixes */

/* The real element is #shopTitle = H1. */
#shopView.shop-title-covered-v814 #shopTitle,
#shopView .heading-row.title-hidden-v814 #shopTitle{
  display:none!important;
}
#shopView .heading-row.title-hidden-v814{
  grid-template-columns:1fr!important;
  min-height:0!important;
  margin-top:12px!important;
}

/* Prevent category banner image from tiling/repeating. */
#categoryHeroBanner.category-hero-banner,
#categoryHeroBanner.shop-masthead-v812{
  background-repeat:no-repeat!important;
  background-size:cover!important;
  background-position:center center!important;
}

/* Product thumbnails must be visible below dots on mobile. */
@media(max-width:900px){
  #productPageV81 .product-gallery-dots-v81{
    display:flex!important;
    justify-content:center!important;
    gap:7px!important;
  }
  #productPageV81 .product-gallery-thumbs-v81{
    display:flex!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    min-height:78px!important;
    box-sizing:border-box!important;
    overflow-x:auto!important;
    gap:8px!important;
    padding:6px 16px 12px!important;
    background:#faf8f5!important;
  }
  #productPageV81 .product-gallery-thumb-v81{
    display:block!important;
    flex:0 0 58px!important;
    width:58px!important;
    height:68px!important;
    opacity:.52!important;
    border:1px solid transparent!important;
    border-radius:8px!important;
    overflow:hidden!important;
    padding:0!important;
    background:#eee9e4!important;
  }
  #productPageV81 .product-gallery-thumb-v81.active{
    opacity:1!important;
    border-color:#2b2825!important;
  }
  #productPageV81 .product-gallery-thumb-v81 img{
    display:block!important;
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
  }
}

/* ===== CANNI V8.1.5 PRODUCT TYPOGRAPHY ===== */
#productPageV81 .product-buy-panel-v81{color:#4b4a48}
#productPageV81 .product-category-v81{font-size:13px;letter-spacing:.08em;color:#8a8782}
#productPageV81 .product-name-actions-v81 h1{
  font-family:"Noto Serif TC","Songti TC","PMingLiU",serif;
  font-size:clamp(30px,5.8vw,48px);line-height:1.28;font-weight:500;letter-spacing:.025em;color:#484846
}
#productPageV81 .product-page-price-v81{font-size:25px;font-weight:700;letter-spacing:.02em;color:#444}
#productPageV81 .product-intro-v81{font-size:16px;line-height:1.9;color:#68645f;letter-spacing:.02em}
#productPageV81 .product-control-v81 label,#productPageV81 .product-qty-row-v81>span{font-size:15px;font-weight:600;color:#55514d}
#productPageV81 .product-benefits-v81 b{font-size:15px;color:#4d4a46}
#productPageV81 .product-benefits-v81 small{font-size:13px;color:#8b8781}
#productPageV81 .product-accordion-v81 summary{font-size:16px;font-weight:600;color:#504d49}
#productPageV81 .product-accordion-v81 p{font-size:15px;line-height:1.9;color:#77716b}

/* Editorial modules inspired by the restrained hierarchy of the reference,
   but implemented as CANNI's own reusable system. */
.product-editorial-v815{max-width:1120px;margin:20px auto 70px;padding:0 28px}
.product-editorial-module-v815{padding:34px 0 26px}
.product-editorial-module-v815 h2{
  margin:0;font-family:"Noto Sans TC","PingFang TC",sans-serif;
  font-size:clamp(24px,4vw,34px);line-height:1.35;font-weight:650;letter-spacing:.025em;color:#4c4c4a
}
.product-editorial-rule-v815{width:42px;height:2px;background:#c8a553;margin:15px 0 22px}
.product-editorial-blocks-v815{display:flex;flex-direction:column;gap:20px}
.product-editorial-text-v815{font-size:16px;line-height:2;color:#595754;letter-spacing:.025em;white-space:normal}
.product-editorial-image-v815{margin:2px 0 8px}
.product-editorial-image-v815 img{display:block;width:100%;height:auto;border-radius:2px}
.product-editorial-image-v815 figcaption{font-size:12px;color:#96918b;margin-top:8px;line-height:1.6}
@media(max-width:700px){
 .product-editorial-v815{padding:0 26px;margin-top:8px}
 .product-editorial-module-v815{padding:28px 0 18px}
 .product-editorial-module-v815 h2{font-size:27px}
 .product-editorial-text-v815{font-size:15px;line-height:1.95}
}

/* Admin module builder */
.content-builder-wrap-v815{margin:24px 0;padding:20px;border:1px solid #ded6cd;border-radius:18px;background:#faf8f5}
.content-builder-title-v815{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
.content-builder-title-v815 small{letter-spacing:.18em;color:#9b9187}
.content-builder-title-v815 h3{font-size:24px;margin:4px 0}
.content-builder-title-v815 p{margin:0;color:#777;font-size:13px}
.content-builder-example-v815{display:flex;gap:7px;flex-wrap:wrap;margin:16px 0}
.content-builder-example-v815>*{padding:6px 10px;border-radius:999px;background:#eee8e1;font-size:12px}
.content-module-card-v815{background:white;border:1px solid #ded6cd;border-radius:14px;padding:14px;margin:12px 0}
.content-module-head-v815{display:grid;grid-template-columns:34px 1fr auto auto auto;gap:7px;align-items:center}
.content-module-index-v815{font-size:12px;color:#a49b91}
.content-module-head-v815 input{margin:0;font-size:17px;font-weight:700}
.content-block-v815{border-top:1px solid #eee7df;padding:12px 0}
.content-block-toolbar-v815{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;color:#777}
.content-block-toolbar-v815 button{border:0;background:none;font-size:22px;cursor:pointer}
.content-block-v815 textarea{min-height:110px}
.module-image-preview-v815{display:block;max-width:260px;max-height:200px;object-fit:cover;border-radius:10px;margin-bottom:8px}
.content-module-add-v815{display:flex;gap:8px;margin-top:8px}
@media(max-width:700px){
 .content-builder-title-v815{align-items:stretch;flex-direction:column}
 .content-module-head-v815{grid-template-columns:28px 1fr;align-items:center}
 .content-module-head-v815 .btn{margin-top:6px}
}

/* ===== CANNI V8.1.6 — Persistent top navigation =====
   Keep the CANNI / member / cart row visible while the page scrolls.
   Uses sticky instead of fixed so existing page spacing is preserved.
*/
header{
  position:-webkit-sticky !important;
  position:sticky !important;
  top:0 !important;
  z-index:10000 !important;
  background:rgba(255,255,255,.96) !important;
  -webkit-backdrop-filter:saturate(140%) blur(12px);
  backdrop-filter:saturate(140%) blur(12px);
}
header .header-inner{
  background:transparent !important;
}
/* The category/title bar is not pinned; only the main CANNI row stays. */
@media (max-width:700px){
  header{top:0 !important}
}

/* ============================================================
   CANNI V8.1.7 ADMIN — preview / drafts / unsaved guard
   ============================================================ */
.admin-quick-preview-v817{
  display:flex;align-items:center;gap:8px;
  margin:10px 0 18px;padding:10px 12px;
  border:1px solid #e4dbd2;border-radius:14px;background:#fff;
}
.admin-quick-preview-v817 b{margin-right:auto;font-size:13px}
.admin-quick-preview-v817 button{
  border:1px solid #e2d9d1;border-radius:999px;background:#f5f0ea;
  min-height:36px;padding:0 13px;font-weight:700;cursor:pointer;
}

.store-preview-overlay-v817{
  position:fixed;inset:0;z-index:2147483000;
  display:flex;flex-direction:column;background:#26221f;
}
.store-preview-toolbar-v817{
  min-height:64px;padding:8px 12px;
  display:flex;align-items:center;gap:10px;
  background:#fff;border-bottom:1px solid #e7dfd8;
}
.preview-back-v817,.preview-refresh-v817,.preview-close-v817{
  border:0;background:#f2ede7;color:#292521;border-radius:999px;cursor:pointer;
  min-height:42px;padding:0 14px;font-weight:800;
}
.preview-close-v817{width:42px;padding:0;font-size:22px}
.preview-refresh-v817{width:42px;padding:0;font-size:20px}
.preview-title-v817{display:grid;gap:1px;min-width:150px}
.preview-title-v817 b{font-size:14px}
.preview-title-v817 small{color:#8c827a;font-size:10px}
.preview-device-switch-v817{
  margin-left:auto;display:flex;gap:5px;padding:4px;border-radius:999px;background:#f4efe9;
}
.preview-device-switch-v817 button{
  border:0;border-radius:999px;background:transparent;min-height:36px;padding:0 13px;
  color:#70675f;font-weight:750;cursor:pointer;
}
.preview-device-switch-v817 button.active{background:#292521;color:#fff}
.store-preview-shell-v817{
  flex:1;min-height:0;overflow:auto;padding:14px;
  display:flex;align-items:stretch;justify-content:center;background:#2d2925;
}
.store-preview-shell-v817 iframe{
  width:100%;height:100%;min-height:680px;border:0;background:#fff;
  box-shadow:0 15px 50px rgba(0,0,0,.28);
  transition:width .22s ease;border-radius:8px;
}
.store-preview-shell-v817[data-device="mobile"] iframe{
  border-radius:24px;
}

.modal-draft-bar-v817{
  position:sticky;top:0;z-index:12;
  margin:-2px 0 14px;padding:9px 11px;
  display:flex;align-items:center;gap:10px;
  border:1px solid #e4ddd5;border-radius:12px;
  background:rgba(250,248,245,.96);backdrop-filter:blur(12px);
}
.modal-draft-bar-v817>div{margin-right:auto;font-size:11px;color:#81776f;display:flex;align-items:center;gap:6px}
.modal-draft-bar-v817>div span{width:7px;height:7px;border-radius:50%;background:#a9b8a5}
.modal-draft-bar-v817>div span.dirty{background:#d2a23e}
.modal-draft-bar-v817 button,.root-draft-bar-v817 button{
  border:0;border-radius:999px;background:#292521;color:#fff;padding:8px 12px;font-size:11px;font-weight:800;cursor:pointer;
}
.draft-restore-v817{
  display:flex;align-items:center;gap:8px;
  margin:0 0 14px;padding:11px 12px;border-radius:12px;
  background:#fff6dc;border:1px solid #ead8a6;
}
.draft-restore-v817>div{display:grid;gap:2px;margin-right:auto}
.draft-restore-v817 b{font-size:12px}
.draft-restore-v817 small{font-size:9px;color:#8c7d5c}
.draft-restore-v817 button{border:0;border-radius:999px;padding:7px 10px;background:#292521;color:#fff;font-weight:800;cursor:pointer}
.draft-restore-v817 button.subtle{background:transparent;color:#7c7164}

.root-draft-bar-v817{
  display:flex;align-items:center;gap:12px;
  margin:8px 0 16px;padding:10px 12px;border-radius:12px;
  background:#eee8e1;color:#6e655d;font-size:11px;
}
.root-draft-bar-v817 span{margin-right:auto}

.admin-unsaved-guard-v817{
  position:fixed;inset:0;z-index:2147483646;
  background:rgba(28,25,22,.58);display:grid;place-items:center;padding:20px;
  backdrop-filter:blur(5px);
}
.admin-unsaved-card-v817{
  width:min(520px,100%);border-radius:24px;background:#fff;padding:28px;
  box-shadow:0 28px 80px rgba(0,0,0,.25);
}
.admin-unsaved-card-v817>small{letter-spacing:.18em;color:#9b9188;font-size:10px}
.admin-unsaved-card-v817 h3{font-size:25px;margin:7px 0 8px}
.admin-unsaved-card-v817 p{font-size:13px;line-height:1.7;color:#777068}
.admin-unsaved-actions-v817{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}
.admin-unsaved-actions-v817 .btn-dark{grid-column:1/-1}

.admin-draft-toast-v817{
  position:fixed;z-index:2147483647;left:50%;bottom:34px;
  transform:translate(-50%,10px);opacity:0;
  background:#292521;color:#fff;border-radius:999px;padding:11px 17px;
  font-size:12px;font-weight:800;transition:.18s ease;pointer-events:none;
}
.admin-draft-toast-v817.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:720px){
  .store-preview-toolbar-v817{min-height:58px;gap:6px;padding:7px 8px}
  .preview-title-v817{display:none}
  .preview-back-v817 span{display:none}
  .preview-back-v817{width:42px;padding:0}
  .preview-device-switch-v817{margin-left:auto}
  .preview-device-switch-v817 button{padding:0 10px}
  .preview-device-switch-v817 button span{display:none}
  .store-preview-shell-v817{padding:8px}
  .store-preview-shell-v817 iframe{min-height:720px}
  .admin-quick-preview-v817{margin-left:0;margin-right:0}
  .root-draft-bar-v817{align-items:flex-start;flex-direction:column}
  .admin-unsaved-actions-v817{grid-template-columns:1fr}
  .admin-unsaved-actions-v817 .btn-dark{grid-column:auto}
}

/* V8.1.8 admin save/draft flow */
body.admin-page>header{
  position:relative!important;
  top:auto!important;
  z-index:20!important;
  background:#fff!important;
}
body.admin-page #modal.overlay{
  z-index:100000!important;
}
body.admin-page .admin-quick-preview-v817,
body.admin-page .preview-store-main-v817{
  display:none!important;
}

.root-draft-bar-v818{
  display:flex;align-items:center;gap:8px;
  margin:8px 0 16px;padding:11px 13px;
  border-radius:13px;background:#eee8e1;border:1px solid #e1d8ce;
}
.root-draft-bar-v818>div{
  margin-right:auto;display:grid;gap:2px;
}
.root-draft-bar-v818 b{font-size:12px}
.root-draft-bar-v818 small{font-size:10px;color:#81776e}

.modal-action-bar-v818{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;gap:8px;
  margin:0 0 16px;padding:10px 12px;
  border:1px solid #e3dad1;border-radius:13px;
  background:rgba(255,253,250,.98);
  box-shadow:0 7px 20px rgba(36,31,27,.07);
  backdrop-filter:blur(12px);
}
.modal-action-state-v818{
  margin-right:auto;display:grid;
  grid-template-columns:auto auto;column-gap:7px;align-items:center;
}
.modal-action-state-v818 span{
  width:7px;height:7px;border-radius:50%;background:#d1a03b;
}
.modal-action-state-v818 b{font-size:11px}
.modal-action-state-v818 small{
  grid-column:2;font-size:9px;color:#91877e;
}

body.admin-page #modalBody #saveBtn{
  min-height:52px!important;
  font-weight:800!important;
}

@media(max-width:720px){
  .root-draft-bar-v818{
    align-items:stretch;flex-direction:column;
  }
  .root-draft-bar-v818>div{margin-right:0}
  .modal-action-bar-v818{
    display:grid;grid-template-columns:1fr 1fr;
  }
  .modal-action-state-v818{grid-column:1/-1}
  .modal-action-bar-v818 .btn{width:100%}
}

/* ============================================================
   CANNI V8.1.9
   ============================================================ */

/* Stable modal top actions */
body.admin-page #modalActionBarV818,
body.admin-page #modalDraftBarV817{display:none!important}

.modal-action-bar-v819{
  position:sticky;top:0;z-index:80;
  display:flex;align-items:center;gap:9px;
  margin:0 0 16px;padding:11px 12px;
  border:1px solid #ddd4ca;border-radius:13px;
  background:rgba(255,253,250,.98);
  box-shadow:0 7px 22px rgba(35,30,25,.08);
  backdrop-filter:blur(12px);
}
.modal-save-copy-v819{display:flex;align-items:center;gap:9px;margin-right:auto}
.modal-save-copy-v819>span{width:8px;height:8px;border-radius:50%;background:#d19b31;flex:none}
.modal-save-copy-v819>div{display:grid;gap:2px}
.modal-save-copy-v819 b{font-size:12px}
.modal-save-copy-v819 small{font-size:9px;color:#847a72}

/* Clear, non-technical page draft status */
.root-draft-bar-v819{
  display:flex;align-items:center;gap:8px;
  margin:8px 0 16px;padding:12px 14px;
  border:1px solid #e0d7ce;border-radius:14px;background:#f1ece6;
}
.draft-copy-v819{margin-right:auto;display:flex;align-items:center;gap:10px}
.draft-copy-v819>div{display:grid;gap:2px}
.draft-copy-v819 b{font-size:12px}
.draft-copy-v819 small{font-size:10px;color:#80766e}
.draft-dot-v819{width:8px;height:8px;border-radius:50%;background:#d19b31}
.draft-dot-v819.saved{background:#9eb19a}

/* Product module typography editor */
.type-settings-v819{
  margin:10px 0 4px;border:1px solid #ebe3db;border-radius:11px;background:#faf7f3;
}
.type-settings-v819>summary{
  cursor:pointer;padding:9px 11px;font-size:11px;font-weight:800;color:#665e57;
  list-style:none;
}
.type-settings-v819>summary::-webkit-details-marker{display:none}
.type-settings-v819>summary:after{content:"＋";float:right;font-size:16px;font-weight:400}
.type-settings-v819[open]>summary:after{content:"−"}
.type-grid-v819{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;padding:0 11px 12px;
}
.type-grid-v819 label{display:grid;gap:5px;font-size:10px;color:#766d65;margin:0!important}
.type-grid-v819 input,.type-grid-v819 select{margin:0!important;min-height:40px!important}
.type-color-v819{display:flex;align-items:center;gap:7px}
.type-color-v819 input[type="color"]{width:48px!important;padding:3px!important}
.type-color-v819 code{font-size:10px;color:#81776e}

/* Keep storefront member/cart layers mutually clean visually */
body.cart-open #modal.show{pointer-events:none}

@media(max-width:720px){
  .modal-action-bar-v819{display:grid;grid-template-columns:1fr 1fr}
  .modal-save-copy-v819{grid-column:1/-1}
  .modal-action-bar-v819 .btn{width:100%}
  .root-draft-bar-v819{align-items:stretch;flex-direction:column}
  .draft-copy-v819{margin-right:0}
  .type-grid-v819{grid-template-columns:1fr 1fr}
}

/* ============================================================
   CANNI V8.2.0
   ============================================================ */

/* Store modal must sit ABOVE the sticky CANNI header.
   This prevents the account close X from being hidden underneath header. */
body:not(.admin-page) #modal.overlay{
  z-index:30000!important;
  padding-top:12px!important;
  padding-bottom:12px!important;
}
body:not(.admin-page) #modal .modal{
  max-height:calc(100dvh - 24px)!important;
}

/* Product editorial modules rendered below the main two-column product area */
#modal .product-page-v8>.product-editorial-v815{
  width:100%!important;
  max-width:none!important;
  margin:36px 0 52px!important;
  padding:0 clamp(22px,4vw,72px)!important;
  box-sizing:border-box!important;
}
#modal .product-page-v8>.product-editorial-v815 .product-editorial-module-v815{
  max-width:1180px;
  margin:0 auto;
}

/* Replace old confusing draft strip with explicit save semantics. */
body.admin-page #rootDraftBarV817,
body.admin-page #rootDraftBarV818,
body.admin-page #rootDraftBarV819{
  display:none!important;
}
.admin-save-status-v820{
  display:flex;align-items:center;gap:12px;
  margin:8px 0 16px;padding:12px 14px;
  border:1px solid #dfd6cc;border-radius:14px;background:#f1ece6;
}
.admin-save-status-v820>div{display:grid;gap:2px;margin-right:auto}
.admin-save-status-v820 b{font-size:12px}
.admin-save-status-v820 small{font-size:10px;color:#7d746c;line-height:1.55}

@media(max-width:720px){
  body:not(.admin-page) #modal.overlay{
    padding-top:8px!important;
    padding-bottom:8px!important;
  }
  body:not(.admin-page) #modal .modal{
    max-height:calc(100dvh - 16px)!important;
  }
  .admin-save-status-v820{align-items:stretch;flex-direction:column}
}

/* CANNI V8.2.1 — editorial module placement on standalone V8.1 product page */
#productPageV81>.product-editorial-v815{
  width:min(1180px,calc(100% - 48px))!important;
  margin:42px auto 64px!important;
  padding:0!important;
}
#productPageV81>.product-editorial-v815 + .product-reviews-section-v81{
  margin-top:0!important;
}
@media(max-width:700px){
  #productPageV81>.product-editorial-v815{
    width:calc(100% - 36px)!important;
    margin:26px auto 42px!important;
  }
}

/* ============================================================
   CANNI V8.2.2 — product editorial modules
   ============================================================ */
#productPageV81 .product-editorial-v822{
  width:min(1180px,calc(100% - 64px));
  margin:38px auto 66px;
  padding:0;
  box-sizing:border-box;
}
#productPageV81 .product-editorial-module-v822{
  padding:34px 0 30px;
  border-top:1px solid #ece5de;
}
#productPageV81 .product-editorial-module-v822:first-child{
  border-top:0;
}
#productPageV81 .product-editorial-module-v822 h2{
  margin:0;
  letter-spacing:.025em;
}
#productPageV81 .product-editorial-accent-v822{
  width:40px;
  height:2px;
  margin:15px 0 22px;
  background:#c7a14b;
}
#productPageV81 .product-editorial-blocks-v822{
  display:flex;
  flex-direction:column;
  gap:22px;
}
#productPageV81 .product-editorial-text-v822{
  white-space:normal;
  letter-spacing:.02em;
}
#productPageV81 .product-editorial-image-v822{
  margin:0;
}
#productPageV81 .product-editorial-image-v822 img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}
#productPageV81 .product-editorial-image-v822 figcaption{
  margin-top:8px;
  color:#918a83;
  font-size:12px;
  line-height:1.6;
}

@media(max-width:700px){
  #productPageV81 .product-editorial-v822{
    width:calc(100% - 40px);
    margin:24px auto 44px;
  }
  #productPageV81 .product-editorial-module-v822{
    padding:27px 0 23px;
  }
}

body.admin-page #modalDraftBarV817,
body.admin-page #modalActionBarV818,
body.admin-page #modalActionBarV819{display:none!important}

.product-save-bar-v823{
  position:sticky;top:0;z-index:120;
  display:grid;grid-template-columns:minmax(230px,1fr) auto auto;
  align-items:center;gap:9px;margin:0 0 16px;padding:11px 12px;
  border:1px solid #ddd4ca;border-radius:14px;
  background:rgba(255,253,250,.99);box-shadow:0 7px 22px rgba(35,30,25,.08);
  backdrop-filter:blur(12px)
}
.product-save-state-v823{display:flex;align-items:center;gap:9px;min-width:0}
.product-save-state-v823>span{width:8px;height:8px;border-radius:50%;background:#d29b2f;flex:none}
.product-save-state-v823>div{display:grid;gap:2px}
.product-save-state-v823 b{font-size:12px}
.product-save-state-v823 small{font-size:9px;color:#837a72;line-height:1.4}
.product-save-state-v823.saving>span{background:#4d86c6}
.product-save-state-v823.error>span{background:#b84a43}
.product-top-error-v823{grid-column:1/-1;padding:9px 10px;border-radius:10px;background:#fae8e6;color:#9f3c36;font-size:11px}
body.admin-page #modalBody #saveBtn{pointer-events:auto!important;opacity:1!important;position:relative!important;z-index:5!important}
@media(max-width:720px){
  .product-save-bar-v823{grid-template-columns:1fr 1fr}
  .product-save-state-v823{grid-column:1/-1}
  .product-save-bar-v823 .btn{width:100%}
}

/* CANNI V8.2.4 — product save ID lock */
body.admin-page #productSaveBarV823{display:none!important}

.product-save-bar-v824{
  position:sticky;top:0;z-index:140;
  display:grid;grid-template-columns:minmax(260px,1fr) auto auto;
  align-items:center;gap:9px;
  margin:0 0 16px;padding:11px 12px;
  border:1px solid #ddd4ca;border-radius:14px;
  background:rgba(255,253,250,.99);
  box-shadow:0 7px 22px rgba(35,30,25,.08);
  backdrop-filter:blur(12px)
}
.product-save-state-v824{display:flex;align-items:center;gap:9px;min-width:0}
.product-save-state-v824>span{width:8px;height:8px;border-radius:50%;background:#d29b2f;flex:none}
.product-save-state-v824>div{display:grid;gap:2px}
.product-save-state-v824 b{font-size:12px}
.product-save-state-v824 small{font-size:9px;color:#837a72;line-height:1.45}
.product-save-state-v824.saving>span{background:#4d86c6}
.product-save-state-v824.error>span{background:#b84a43}
.product-top-error-v824{
  grid-column:1/-1;padding:9px 10px;border-radius:10px;
  background:#fae8e6;color:#9f3c36;font-size:11px;line-height:1.5
}
@media(max-width:720px){
  .product-save-bar-v824{grid-template-columns:1fr 1fr}
  .product-save-state-v824{grid-column:1/-1}
  .product-save-bar-v824 .btn{width:100%}
}

/* CANNI V8.2.5 — typography settings clarity */
.type-settings-v819[open]{
  background:#fffdf9;
  border-color:#d9cec2;
}
.type-settings-v819 select,
.type-settings-v819 input[type="number"]{
  background:#fff!important;
}
.type-color-v819 code{
  min-width:62px;
  font-variant-numeric:tabular-nums;
}

/* V8.2.6 — do not impose typography on editorial module children.
   Saved inline CSSOM values are the source of truth. */
#productPageV81 .product-editorial-v822 h2,
#productPageV81 .product-editorial-v822 .product-editorial-text-v822{
  max-width:100%;
  box-sizing:border-box;
}

/* ============================================================
   CANNI V8.2.7 — product tabs / service / search
   ============================================================ */

/* Header search lives directly before member */
.header-search-v827{
  display:inline-flex!important;
  align-items:center;
  gap:7px;
}
.header-search-v827 svg{
  width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;
}
.header-search-v827 span{font-size:inherit}

/* Product description / reviews tab area */
.product-info-tabs-v827{
  width:min(1180px,calc(100% - 64px));
  margin:58px auto 70px;
  scroll-margin-top:96px;
}
.product-tab-nav-v827{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-bottom:1px solid #dedbd7;
  margin-bottom:0;
}
.product-tab-nav-v827 button{
  position:relative;
  border:0;
  background:transparent;
  padding:18px 12px 20px;
  font-size:clamp(20px,2vw,30px);
  font-weight:400;
  color:#817d78;
  letter-spacing:.025em;
  cursor:pointer;
}
.product-tab-nav-v827 button.active{
  color:#292724;
}
.product-tab-nav-v827 button.active::after{
  content:"";
  position:absolute;
  left:22%;right:22%;bottom:-1px;
  height:3px;
  background:#292724;
}
.product-tab-nav-v827 button[data-tab="reviews"]{
  color:#5b9b99;
}
.product-tab-nav-v827 button[data-tab="reviews"].active::after{
  background:#5b9b99;
}
.product-tab-panel-v827{
  display:none;
  padding:54px 0 24px;
}
.product-tab-panel-v827.active{display:block}

/* The user's content modules are the 商品描述 itself */
#productDescriptionPanelV827>.product-editorial-v822{
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
#productDescriptionPanelV827 .product-editorial-module-v822{
  max-width:100%;
}
.product-description-fallback-v827{
  max-width:880px;
  margin:0 auto;
  padding:20px 0 30px;
}
.product-description-fallback-v827 h2{
  margin:0 0 22px;
  text-align:center;
  font-size:30px;
  font-weight:500;
}
.product-description-fallback-v827 p{
  margin:0;
  font-size:16px;
  color:#6d6965;
  line-height:2;
}

/* Reviews now belong to the second tab */
#productReviewsPanelV827 .product-reviews-section-v81{
  width:100%!important;
  margin:0!important;
  padding:0!important;
}
.product-support-row-v827{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-top:36px;
  padding:22px 0 0;
  border-top:1px solid #e7e1da;
  color:#817a73;
}
.product-support-row-v827 button{
  border:0;background:none;padding:8px 0;
  font-weight:700;color:#2b2825;cursor:pointer;
}
.product-support-row-v827 i{font-style:normal;margin-left:5px}

/* Customer service menu entry */
.customer-service-menu-v827{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
}
.customer-service-menu-v827 i{font-style:normal;color:#aaa}

/* Customer service modal */
.customer-service-modal-v827>small,
.store-search-head-v827>small{
  display:block;
  margin-bottom:8px;
  letter-spacing:.24em;
  color:#9b8f84;
  font-size:11px;
}
.customer-service-modal-v827 h2,
.store-search-head-v827 h2{
  margin:0 0 12px;
  font-size:34px;
}
.customer-service-modal-v827>p{
  color:#7b746d;
  line-height:1.8;
  margin:0 0 24px;
}
.customer-service-list-v827{
  display:grid;
  gap:10px;
}
.customer-service-way-v827{
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-areas:"name icon" "sub icon";
  gap:3px 12px;
  padding:17px 18px;
  border:1px solid #ded5cc;
  border-radius:14px;
  color:#2a2724;
  text-decoration:none;
  background:#fffdfa;
}
.customer-service-way-v827.primary{background:#292622;color:white;border-color:#292622}
.customer-service-way-v827 b{grid-area:name}
.customer-service-way-v827 span{grid-area:sub;font-size:12px;opacity:.72}
.customer-service-way-v827 i{grid-area:icon;align-self:center;font-style:normal;font-size:20px}
.customer-service-empty-v827{
  padding:18px;border-radius:12px;background:#f4eee8;color:#756d66;line-height:1.7;
}

/* Search modal */
.store-search-modal-v827{min-height:420px}
.store-search-input-wrap-v827{
  display:flex;align-items:center;gap:10px;
  border:1px solid #dcd3ca;border-radius:999px;
  padding:0 17px;margin:22px 0 18px;
}
.store-search-input-wrap-v827 svg{
  width:20px;height:20px;fill:none;stroke:#5f5953;stroke-width:1.7;flex:none;
}
.store-search-input-wrap-v827 input{
  border:0!important;box-shadow:none!important;outline:0!important;
  margin:0!important;padding:15px 0!important;background:transparent!important;
}
.store-search-results-v827{
  display:grid;gap:0;
  max-height:min(56vh,560px);
  overflow:auto;
  overscroll-behavior:contain;
}
.store-search-result-v827{
  display:grid;
  grid-template-columns:64px minmax(0,1fr) auto auto;
  align-items:center;gap:13px;
  width:100%;padding:13px 3px;
  border:0;border-bottom:1px solid #eee7df;background:transparent;
  text-align:left;cursor:pointer;color:#292622;
}
.store-search-result-v827 img,.search-img-placeholder-v827{
  width:64px;height:64px;border-radius:10px;object-fit:cover;background:#f4f0eb;
}
.search-img-placeholder-v827{
  display:grid;place-items:center;font-family:serif;font-size:11px;letter-spacing:.12em;
}
.search-copy-v827{display:grid;gap:4px;min-width:0}
.search-copy-v827 small{color:#918981;font-size:11px}
.search-copy-v827 b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.store-search-result-v827 strong{white-space:nowrap;font-size:14px}
.store-search-result-v827 i{font-style:normal;color:#aaa;font-size:22px}
.store-search-empty-v827{
  padding:34px 10px;text-align:center;color:#928a83;
}

@media(max-width:720px){
  .header-search-v827 span{display:none}
  .header-search-v827{padding-inline:6px!important}
  .header-search-v827 svg{width:22px;height:22px}

  .product-info-tabs-v827{
    width:calc(100% - 36px);
    margin:40px auto 48px;
    scroll-margin-top:88px;
  }
  .product-tab-nav-v827 button{
    font-size:21px;
    padding:15px 8px 17px;
  }
  .product-tab-nav-v827 button.active::after{left:18%;right:18%}
  .product-tab-panel-v827{padding:36px 0 12px}

  .product-support-row-v827{
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
  }

  .store-search-result-v827{
    grid-template-columns:58px minmax(0,1fr) auto;
  }
  .store-search-result-v827 img,.search-img-placeholder-v827{width:58px;height:58px}
  .store-search-result-v827 strong{grid-column:2;justify-self:start}
  .store-search-result-v827 i{grid-column:3;grid-row:1/3}
}

/* ============================================================
   CANNI V8.2.8 — mobile fixed nav + hamburger toggle
   ============================================================ */

.customer-service-menu-v828{
  border-top:1px solid #eee!important;
  margin-top:6px!important;
  padding-top:18px!important;
}

/* Same hamburger morphs into X while menu is open. */
.hamburger span{
  transition:transform .22s ease,opacity .18s ease,width .22s ease;
  transform-origin:center;
}
.hamburger.is-open-v828 span:nth-child(1){
  transform:translateY(6px) rotate(45deg);
}
.hamburger.is-open-v828 span:nth-child(2){
  opacity:0;
}
.hamburger.is-open-v828 span:nth-child(3){
  transform:translateY(-6px) rotate(-45deg);
}

@media(max-width:700px){
  /*
    Header is fixed rather than sticky on phones.
    JS measures its real height (including iPhone PWA safe-area)
    and reserves exactly that amount of body space.
  */
  .v4-header{
    position:fixed!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    z-index:12000!important;
    background:rgba(255,255,255,.97)!important;
  }

  body{
    padding-top:var(--canni-header-height-v828,64px)!important;
  }

  html.pwa-standalone body{
    padding-top:var(--canni-header-height-v828,116px)!important;
  }

  /* Menu starts BELOW the fixed CANNI row, so hamburger always stays visible. */
  #sideMenu.side-menu{
    top:var(--canni-header-height-v828,64px)!important;
    height:calc(100dvh - var(--canni-header-height-v828,64px))!important;
    bottom:auto!important;
    z-index:11000!important;
    padding-top:18px!important;
    padding-bottom:calc(24px + env(safe-area-inset-bottom))!important;
  }

  html.pwa-standalone #sideMenu.side-menu{
    top:var(--canni-header-height-v828,116px)!important;
    height:calc(100dvh - var(--canni-header-height-v828,116px))!important;
    padding-top:18px!important;
  }

  #menuShade.menu-shade{
    top:var(--canni-header-height-v828,64px)!important;
    z-index:10900!important;
  }

  /* The old Canni + hidden X row is no longer needed on mobile. */
  #sideMenu .side-menu-head{
    display:none!important;
  }

  #sideMenu nav{
    padding-top:4px!important;
  }

  /* Header hamburger remains the close control and stays clickable above menu. */
  .v4-header .hamburger{
    position:relative!important;
    z-index:12002!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
  }

  .v4-header .v4-brand,
  .v4-header .nav-actions{
    position:relative;
    z-index:12001;
  }

  /* Avoid old product-page overrides lowering the header. */
  body.product-page-open-v81 .v4-header{
    position:fixed!important;
    top:0!important;
    z-index:12000!important;
  }
}


/* CANNI V8.2.9 — 聯絡客服選單文字固定靠左 */
#sideMenu nav #customerServiceMenuV828,
#sideMenu nav .customer-service-menu-v828,
#sideMenu nav #customerServiceMenuV827,
#sideMenu nav .customer-service-menu-v827 {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  text-align: left !important;
}

#sideMenu nav #customerServiceMenuV828 span,
#sideMenu nav .customer-service-menu-v828 span,
#sideMenu nav #customerServiceMenuV827 span,
#sideMenu nav .customer-service-menu-v827 span {
  flex: 1 1 auto !important;
  text-align: left !important;
  margin: 0 !important;
}

#sideMenu nav #customerServiceMenuV828 i,
#sideMenu nav .customer-service-menu-v828 i,
#sideMenu nav #customerServiceMenuV827 i,
#sideMenu nav .customer-service-menu-v827 i {
  margin-left: auto !important;
  flex: 0 0 auto !important;
}

/* CANNI V8.2.10 — 客服彈窗標題「聯絡客服」靠左 */
.customer-service-modal-v827 h2 {
  text-align: left !important;
  width: 100% !important;
}
