/* ========================================================================== 
   v1.1 — READABLE FLAT DARK / SOFT SPACE
   Dark counterpart of the rounded, light SPACE Page V2 visual language.
   ========================================================================== */

:root{
  --cm-bg:#0b0e12;
  --cm-surface:#11161c;
  --cm-surface-2:#171d24;
  --cm-card:#141a20;
  --cm-line:rgba(255,255,255,.075);
  --cm-line-strong:rgba(255,255,255,.115);
  --cm-text:#f4f7f9;
  --cm-soft:#c1c9d0;
  --cm-muted:#8e99a4;
  --cm-muted-2:#6f7a84;
  --cm-cyan:#22c7e5;
  --cm-blue:#638cff;
  --cm-orange:#fb923c;
  --cm-green:#7fd787;
  --cm-lime:#a8e95d;
  --cm-lime-soft:rgba(168,233,93,.08);
  --cm-danger:#ff9b9b;
  --cm-radius-xl:30px;
  --cm-radius-lg:24px;
  --cm-radius-md:18px;
  --cm-pill:999px;
  --cm-shadow:0 18px 48px rgba(0,0,0,.20);
  --cm-shadow-strong:0 28px 70px rgba(0,0,0,.30);
  --cm-ease:cubic-bezier(.22,1,.36,1);
}

html{background:var(--cm-bg)}
body.space-collapsible{
  font-size:16px;
  color:var(--cm-text);
  background:
    radial-gradient(circle at 8% 0%,rgba(34,199,229,.07),transparent 30rem),
    radial-gradient(circle at 96% 16%,rgba(251,146,60,.05),transparent 24rem),
    linear-gradient(180deg,#0d1116,#0b0e12 44%,#090c10);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

/* HERO: flatter, more contained, with readable identity */
.cm-hero{
  width:min(720px,calc(100% - 32px));
  min-height:340px;
  margin:18px auto 12px;
  border:1px solid var(--cm-line);
  border-radius:var(--cm-radius-xl);
  box-shadow:var(--cm-shadow);
  background:#13181e;
}
.cm-hero-media{transform:scale(1.01);animation:none;filter:saturate(.96) contrast(1.01)}
.cm-hero-shade{
  background:
    linear-gradient(180deg,rgba(8,11,14,.08),rgba(8,11,14,.12) 34%,rgba(8,11,14,.72) 72%,rgba(8,11,14,.96)),
    linear-gradient(90deg,rgba(8,11,14,.25),transparent 68%);
}
.cm-hero:after{height:110px;background:linear-gradient(180deg,transparent,rgba(11,14,18,.92))}
.cm-hero-top,.cm-hero-brand,.cm-hero-meta{width:calc(100% - 40px)}
.cm-hero-top{position:absolute;z-index:3;top:16px;left:20px;padding:0;justify-content:flex-end}
.cm-lang{
  min-height:44px;
  border-color:rgba(255,255,255,.10);
  background:rgba(14,18,23,.72);
  box-shadow:0 8px 24px rgba(0,0,0,.10);
}
.cm-lang select{min-height:42px;padding-left:15px;color:#f5f7f9;font-size:.82rem;font-weight:800}
.cm-lang svg{right:13px;width:17px;height:17px}
.cm-hero-brand{
  left:20px;
  bottom:60px;
  transform:none;
  align-items:flex-end;
  gap:16px;
}
.cm-logo{
  width:96px;
  height:96px;
  padding:6px;
  border-color:rgba(255,255,255,.10);
  border-radius:26px;
  background:rgba(17,22,28,.90);
  box-shadow:0 18px 46px rgba(0,0,0,.24);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.cm-logo img{border-radius:20px}
.cm-brand-copy{padding-bottom:2px}
.cm-kicker{
  margin-bottom:8px;
  color:var(--cm-cyan);
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.11em;
}
.cm-brand-copy h1{
  font-family:Inter,system-ui,sans-serif;
  font-size:clamp(2rem,5vw,2.8rem);
  font-weight:900;
  line-height:.98;
  letter-spacing:-.05em;
}
.cm-brand-copy p{
  max-width:46ch;
  margin-top:10px;
  color:rgba(244,247,249,.72);
  font-size:.92rem;
  font-weight:500;
  line-height:1.5;
}
.cm-hero-meta{
  left:20px;
  bottom:22px;
  transform:none;
  gap:9px;
  color:rgba(244,247,249,.68);
  font-size:.78rem;
  font-weight:650;
}
.cm-dot{width:4px;height:4px;background:var(--cm-cyan);box-shadow:none}

/* CONTENT WIDTH / TOOLBAR */
.cm-shell{width:min(720px,calc(100% - 32px));padding:10px 0 max(42px,env(safe-area-inset-bottom))}
.cm-toolbar{
  margin:0 0 14px;
  padding:10px 0 12px;
  gap:10px;
  background:linear-gradient(180deg,rgba(11,14,18,.96) 70%,rgba(11,14,18,0));
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.cm-search{
  height:54px;
  border-color:var(--cm-line);
  border-radius:var(--cm-radius-md);
  background:rgba(255,255,255,.035);
  box-shadow:none;
}
.cm-search:focus-within{
  border-color:rgba(34,199,229,.22);
  background:rgba(34,199,229,.045);
  box-shadow:0 0 0 4px rgba(34,199,229,.035);
}
.cm-search>svg{width:20px;height:20px;margin-left:16px;color:#87929d}
.cm-search input{padding:0 13px;color:#f4f7f9;font-size:.95rem;font-weight:550}
.cm-search input::placeholder{color:#76818b}
.cm-search>button{width:40px;height:40px;margin-right:6px;color:#9aa4ad;font-size:1.3rem}
.cm-all-toggle{
  height:54px;
  padding:0 17px;
  border-color:var(--cm-line);
  border-radius:var(--cm-radius-md);
  background:rgba(255,255,255,.035);
  color:#dfe5e9;
  font-size:.78rem;
  font-weight:800;
}
.cm-all-toggle:hover{background:rgba(255,255,255,.055);border-color:var(--cm-line-strong)}
.cm-search-empty{padding:36px 24px;border-radius:var(--cm-radius-lg);background:rgba(255,255,255,.025)}
.cm-search-empty span{font-family:Inter,system-ui,sans-serif;font-size:1.08rem;font-weight:800}
.cm-search-empty p{margin-top:8px;font-size:.84rem;line-height:1.5}

/* CATEGORY CARDS */
.cm-sections{gap:12px}
.cm-section{
  border-color:var(--cm-line);
  border-radius:var(--cm-radius-lg);
  background:rgba(255,255,255,.032);
  box-shadow:none;
}
.cm-section:hover{border-color:var(--cm-line-strong)}
.cm-section.is-open{
  border-color:rgba(34,199,229,.13);
  background:linear-gradient(180deg,rgba(34,199,229,.035),rgba(255,255,255,.028) 88px);
  box-shadow:0 14px 38px rgba(0,0,0,.10);
}
.cm-section-head{min-height:78px;padding:17px 17px 17px 20px;gap:16px}
.cm-section-copy{gap:5px}
.cm-section-copy strong{
  font-family:Inter,system-ui,sans-serif;
  font-size:1.04rem;
  font-weight:800;
  line-height:1.18;
  letter-spacing:-.025em;
}
.cm-section-copy small{
  color:var(--cm-muted);
  font-size:.78rem;
  font-weight:550;
  line-height:1.42;
}
.cm-chevron{
  width:36px;
  height:36px;
  border-color:rgba(255,255,255,.10);
  background:rgba(255,255,255,.025);
  color:#dce3e7;
}
.cm-chevron svg{width:17px;height:17px}
.cm-section.is-open .cm-chevron{background:rgba(34,199,229,.07);color:var(--cm-cyan)}
.cm-items{margin:0 14px 13px;padding:4px 3px 3px;border-top-color:rgba(255,255,255,.055)}

/* PRODUCTS: standard reading sizes */
.cm-item{min-height:88px;border-bottom-color:rgba(255,255,255,.052)}
.cm-item-main{
  min-height:88px;
  padding:15px 48px 15px 4px;
  gap:14px;
  border-radius:16px;
}
.cm-item-main:hover{background:rgba(255,255,255,.025)}
.cm-item-thumb{width:64px;height:64px;border-radius:16px;background:#1b2229}
.cm-item-copy{gap:7px}
.cm-item-title-row{gap:9px}
.cm-item-title-row strong{
  color:#f5f7f9;
  font-size:.96rem;
  font-weight:800;
  line-height:1.28;
  letter-spacing:-.015em;
}
.cm-item-title-row em{padding:4px 8px;font-size:.62rem}
.cm-item-desc{
  color:#9aa5ae;
  font-size:.82rem;
  font-weight:450;
  line-height:1.48;
}
.cm-item-tags{gap:6px}
.cm-tag{
  padding:5px 8px;
  border-color:rgba(255,255,255,.06);
  background:rgba(255,255,255,.026);
  color:#aeb7bf;
  font-size:.66rem;
  font-weight:700;
}
.cm-tag--allergen{color:#ffc28f;border-color:rgba(251,146,60,.11);background:rgba(251,146,60,.055)}
.cm-tag--diet{color:#a8eeb0;border-color:rgba(127,215,135,.11);background:rgba(127,215,135,.055)}
.cm-tag--spice{color:#ffaaa0;border-color:rgba(255,120,105,.11);background:rgba(255,120,105,.05)}
.cm-tag--info{color:#9deaf7;border-color:rgba(34,199,229,.11);background:rgba(34,199,229,.05)}
.cm-item-side{min-width:72px;gap:10px}
.cm-favorite{font-size:1rem}
.cm-item-price{font-size:.92rem;font-weight:850;letter-spacing:-.01em}
.cm-heart{right:2px;width:42px;height:42px;font-size:1.02rem}

/* QUICK ACTIONS */
.cm-action-grid{margin-top:16px;gap:12px}
.cm-action-card{
  min-height:142px;
  padding:18px;
  grid-template-columns:46px minmax(0,1fr) auto;
  gap:14px;
  border-color:var(--cm-line);
  border-radius:var(--cm-radius-lg);
  background:rgba(255,255,255,.032);
  box-shadow:none;
}
.cm-action-card:hover{border-color:rgba(34,199,229,.12);background:rgba(34,199,229,.035)}
.cm-action-icon{
  width:46px;
  height:46px;
  border-color:rgba(34,199,229,.10);
  border-radius:15px;
  background:rgba(34,199,229,.055);
  color:var(--cm-cyan);
}
.cm-action-icon svg{width:22px;height:22px}
.cm-action-card>span:nth-child(2){gap:6px}
.cm-action-card small{color:var(--cm-cyan);font-size:.62rem;letter-spacing:.09em}
.cm-action-card strong{font-family:Inter,system-ui,sans-serif;font-size:1rem;font-weight:800;line-height:1.16}
.cm-action-card em{color:#97a2ab;font-size:.78rem;line-height:1.5}
.cm-action-card>b{font-size:.68rem}

/* LEGAL / FOOTER */
.cm-legal{margin-top:24px}
.cm-legal-block summary{min-height:62px;font-size:.9rem}
.cm-legal-block summary svg{width:18px;height:18px}
.cm-legal-content{padding-bottom:20px}
.cm-legal-content p,.cm-legal-copy{color:#8f9aa4;font-size:.78rem;line-height:1.65}
.cm-allergen-grid{margin-top:14px;gap:8px}
.cm-allergen-grid span{min-height:42px;padding:10px 12px;border-radius:13px;font-size:.75rem}
.cm-allergen-grid b{min-width:30px;font-size:.68rem;color:var(--cm-orange)}
.cm-service-note{margin-top:16px;padding:16px;border-color:rgba(34,199,229,.10);border-radius:17px;background:rgba(34,199,229,.035)}
.cm-service-note>span{color:var(--cm-cyan);font-size:.64rem}
.cm-service-note strong{font-size:.84rem}
.cm-service-note small{font-size:.72rem;line-height:1.45}
.cm-legal-copy{margin-top:16px}
.cm-footer{margin-top:30px;padding-top:24px;gap:14px}
.cm-footer-brand img{width:34px;height:34px}
.cm-footer-brand strong{font-size:.76rem}
.cm-footer-brand small,.cm-footer>small{font-size:.66rem}
.cm-footer-orbit i{background:var(--cm-cyan);box-shadow:0 0 8px rgba(34,199,229,.28)}

/* PRODUCT / 3D / AI PANELS */
.cm-product-sheet,.cm-model-panel,.cm-ai-panel{
  border-color:rgba(255,255,255,.09);
  border-radius:var(--cm-radius-xl);
  background:#11161c;
  box-shadow:var(--cm-shadow-strong);
}
.cm-product-head,.cm-model-panel>header,.cm-ai-panel>header{min-height:86px;padding:19px 21px}
.cm-product-head small,.cm-model-panel>header small,.cm-ai-panel>header small{color:var(--cm-cyan);font-size:.66rem}
.cm-product-head h2,.cm-model-panel>header h2,.cm-ai-panel>header h2{
  font-family:Inter,system-ui,sans-serif;
  margin-top:5px;
  font-size:1.35rem;
  font-weight:850;
}
.cm-close{width:42px;height:42px;font-size:1.45rem}
.cm-product-body{padding:22px 21px 26px}
.cm-product-summary{gap:16px}
.cm-product-summary p{color:#a8b1b9;font-size:.92rem;line-height:1.62}
.cm-product-summary strong{font-size:1rem;font-weight:850}
.cm-product-tags{margin-top:16px;gap:7px}
.cm-product-tags .cm-tag{font-size:.7rem;padding:6px 9px}
.cm-product-options{margin-top:20px;gap:11px}
.cm-option-block{padding:15px;border-radius:18px;background:rgba(255,255,255,.027)}
.cm-option-block h3{font-family:Inter,system-ui,sans-serif;font-size:.94rem;font-weight:800}
.cm-option-block header span{color:var(--cm-cyan);font-size:.66rem}
.cm-option-block>p{font-size:.76rem;line-height:1.5}
.cm-option-list{margin-top:11px;gap:7px}
.cm-option-list div{min-height:42px;padding:10px 11px;font-size:.82rem}
.cm-3d-cta{margin-top:14px;padding:16px 17px;border-color:rgba(99,140,255,.13);background:rgba(99,140,255,.045)}
.cm-3d-cta b{color:#9bb3ff;font-size:.7rem}.cm-3d-cta small{font-size:.76rem}.cm-3d-cta svg{color:#9bb3ff}
.cm-product-foot{padding:14px 20px max(14px,env(safe-area-inset-bottom))}
.cm-primary-action{min-height:54px;border-radius:17px;background:var(--cm-cyan);color:#071217;font-size:.9rem;font-weight:900}
.cm-model-panel>footer{min-height:54px;font-size:.74rem}

.cm-ai-fab{
  min-height:60px;
  padding:8px 16px 8px 8px;
  border-color:rgba(34,199,229,.14);
  background:rgba(15,20,25,.92);
  box-shadow:0 16px 40px rgba(0,0,0,.26);
}
.cm-ai-fab b{color:var(--cm-cyan);font-size:.7rem}
.cm-ai-fab small{font-size:.66rem}
.cm-ai-orb{width:44px;height:44px;background:radial-gradient(circle at 35% 30%,#b7f3ff,var(--cm-cyan) 28%,#126274 76%);box-shadow:none}
.cm-ai-orb i{border-color:rgba(34,199,229,.28);border-right-color:transparent}
.cm-ai-body{padding:18px;gap:10px}
.cm-ai-msg{max-width:86%;padding:12px 14px;border-radius:17px;font-size:.84rem;line-height:1.55}
.cm-ai-msg.is-user{background:var(--cm-cyan);color:#071217}
.cm-ai-product-suggestions button{padding:11px 13px;border-color:rgba(34,199,229,.12);background:rgba(34,199,229,.05);color:#c7f6ff;font-size:.74rem}
.cm-ai-quick{padding:0 16px 12px;gap:7px}
.cm-ai-quick button{min-height:36px;padding:0 12px;font-size:.7rem}
.cm-ai-form{padding:12px 14px max(12px,env(safe-area-inset-bottom));grid-template-columns:minmax(0,1fr) 48px;gap:9px}
.cm-ai-form textarea{min-height:48px;padding:13px 14px;border-radius:15px;font-size:.84rem}
.cm-ai-form button{width:48px;height:48px;border-radius:15px;background:var(--cm-cyan)}

/* MOBILE: keep the same visual language without shrinking the text */
@media(max-width:640px){
  body.space-collapsible{font-size:16px}
  .cm-hero{width:calc(100% - 24px);min-height:318px;margin:12px auto 8px;border-radius:28px}
  .cm-hero-top,.cm-hero-brand,.cm-hero-meta{width:calc(100% - 32px)}
  .cm-hero-top{top:14px;left:16px}
  .cm-hero-brand{left:16px;bottom:60px;gap:13px}
  .cm-logo{width:84px;height:84px;border-radius:23px}.cm-logo img{border-radius:18px}
  .cm-kicker{font-size:.66rem;margin-bottom:7px}
  .cm-brand-copy h1{font-size:clamp(1.85rem,8vw,2.35rem)}
  .cm-brand-copy p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:8px;font-size:.82rem;line-height:1.42}
  .cm-hero-meta{left:16px;bottom:20px;font-size:.7rem}
  .cm-shell{width:calc(100% - 20px);padding-top:7px}
  .cm-toolbar{gap:8px;padding-top:9px}
  .cm-search{height:52px}.cm-search input{font-size:.93rem}
  .cm-all-toggle{width:52px;height:52px;padding:0}
  .cm-section{border-radius:21px}
  .cm-section-head{min-height:74px;padding:16px 14px 16px 17px}
  .cm-section-copy strong{font-size:1rem}.cm-section-copy small{max-width:68vw;font-size:.75rem}
  .cm-chevron{width:34px;height:34px}
  .cm-items{margin-inline:11px}
  .cm-item{min-height:82px}
  .cm-item-main{min-height:82px;padding:14px 46px 14px 2px;gap:11px}
  .cm-item-thumb{width:58px;height:58px;border-radius:15px}
  .cm-item-title-row strong{font-size:.93rem}
  .cm-item-desc{font-size:.79rem;line-height:1.44}
  .cm-item-side{min-width:66px}.cm-item-price{font-size:.88rem}
  .cm-tag{font-size:.63rem}
  .cm-action-grid{grid-template-columns:1fr;gap:10px}
  .cm-action-card{min-height:118px;padding:16px;grid-template-columns:42px minmax(0,1fr);gap:12px}.cm-action-icon{width:42px;height:42px}
  .cm-action-card small{font-size:.6rem}.cm-action-card strong{font-size:.95rem}.cm-action-card em{font-size:.76rem}
  .cm-product-sheet,.cm-model-panel,.cm-ai-panel{border-radius:28px 28px 0 0}
  .cm-product-head,.cm-model-panel>header,.cm-ai-panel>header{min-height:80px;padding:17px 18px}
  .cm-product-head h2,.cm-model-panel>header h2,.cm-ai-panel>header h2{font-size:1.22rem}
  .cm-product-body{padding:19px 18px 23px}
  .cm-product-summary p{font-size:.88rem}.cm-product-summary strong{font-size:.96rem}
  .cm-option-list div{font-size:.8rem}
  .cm-ai-fab{right:12px;bottom:max(12px,env(safe-area-inset-bottom))}
}

@media(max-width:380px){
  .cm-hero{width:calc(100% - 18px)}
  .cm-shell{width:calc(100% - 16px)}
  .cm-logo{width:78px;height:78px}
  .cm-brand-copy h1{font-size:1.78rem}
  .cm-item-title-row strong{font-size:.9rem}
  .cm-item-desc{font-size:.76rem}
}


/* v1.1.1 — layout fixes */

/* Full-bleed hero, keeping the readable v1.1 content scale */
.cm-hero{
  width:100%;
  min-height:clamp(300px,42vw,430px);
  margin:0;
  border:0;
  border-radius:0;
  box-shadow:none;
}
.cm-hero-top,
.cm-hero-brand,
.cm-hero-meta{
  left:50%;
  width:min(720px,calc(100% - 32px));
  margin:0;
  transform:translateX(-50%);
}
.cm-hero-top{top:16px}
.cm-hero-brand{bottom:60px}
.cm-hero-meta{bottom:22px}

/* One favorite only. Price and favorite are pinned to the same coordinates
   whether the product has an image or not. */
.cm-item-main{
  position:relative;
  display:flex;
  align-items:center;
  grid-template-columns:none;
  padding-right:142px;
}
.cm-item-thumb{flex:0 0 64px}
.cm-item-copy{flex:1 1 auto;min-width:0}
.cm-item-side{
  position:absolute;
  top:50%;
  right:50px;
  width:84px;
  min-width:84px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0;
  transform:translateY(-50%);
  pointer-events:none;
}
.cm-item-price{
  width:100%;
  overflow:hidden;
  text-align:right;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.cm-heart{
  top:50%;
  right:3px;
  transform:translateY(-50%);
}
.cm-heart:active{transform:translateY(-50%) scale(.9)}

/* Product sheet paint order and horizontal overflow protection */
.cm-product-sheet{
  isolation:isolate;
  overflow:hidden;
}
.cm-product-head{
  position:relative;
  z-index:30;
  flex:0 0 auto;
  background:rgba(17,22,28,.985);
  box-shadow:0 1px 0 rgba(255,255,255,.055);
}
.cm-product-head .cm-close{position:relative;z-index:2}
.cm-product-scroll{
  position:relative;
  z-index:1;
  min-width:0;
  max-width:100%;
  overflow-x:hidden;
  overscroll-behavior:contain;
}
.cm-product-cover{
  z-index:0;
  max-width:100%;
  overflow:hidden;
}
.cm-product-cover img{position:relative;z-index:0;max-width:100%}
.cm-product-body,
.cm-product-summary,
.cm-product-tags,
.cm-product-options,
.cm-option-block,
.cm-option-list{
  min-width:0;
  max-width:100%;
}
.cm-product-body{overflow-x:hidden}
.cm-product-summary p{
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.cm-product-tags{
  width:100%;
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  overflow:hidden;
}
.cm-product-tags .cm-tag{
  flex:0 1 auto;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.cm-product-allergens{
  flex:1 0 100%;
  width:100%;
  min-width:0;
  margin-top:2px;
  padding:12px 13px;
  border:1px solid rgba(251,146,60,.10);
  border-radius:15px;
  background:rgba(251,146,60,.045);
}
.cm-product-allergens__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.cm-product-allergens__head strong{
  color:#ffc28f;
  font-size:.76rem;
  font-weight:850;
}
.cm-product-allergens__head span{
  flex:0 0 auto;
  min-width:24px;
  height:24px;
  display:grid;
  place-items:center;
  padding:0 7px;
  border-radius:999px;
  background:rgba(251,146,60,.09);
  color:#ffd5b2;
  font-size:.68rem;
  font-weight:850;
}
.cm-product-allergens p{
  width:100%;
  min-width:0;
  margin:7px 0 0;
  color:#b6bec5;
  font-size:.76rem;
  line-height:1.5;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}

@media(max-width:640px){
  .cm-hero{
    width:100%;
    min-height:318px;
    margin:0;
    border-radius:0;
  }
  .cm-hero-top,
  .cm-hero-brand,
  .cm-hero-meta{
    left:50%;
    width:calc(100% - 32px);
    transform:translateX(-50%);
  }
  .cm-hero-top{top:14px}
  .cm-hero-brand{bottom:60px}
  .cm-hero-meta{bottom:20px}

  .cm-item-main{padding-right:132px}
  .cm-item-thumb{flex-basis:58px}
  .cm-item-side{right:47px;width:78px;min-width:78px}
  .cm-heart{right:1px}

  .cm-product-tags{gap:6px}
  .cm-product-allergens{padding:11px 12px;border-radius:14px}
  .cm-product-allergens p{font-size:.74rem}
}

@media(max-width:380px){
  .cm-hero{width:100%}
  .cm-item-main{padding-right:124px}
  .cm-item-side{right:44px;width:73px;min-width:73px}
}


/* v1.1.2 — flat category rail */

/* General surface language: separation by tone, not outlines */
body.space-collapsible{
  --cm-bg:#202320;
  --cm-surface:#292d2a;
  --cm-surface-2:#303431;
  --cm-card:#2d312e;
  --cm-line:transparent;
  --cm-line-strong:transparent;
  background:#202320;
}

/* Search / utility controls follow the same flat language */
.cm-search,
.cm-all-toggle{
  border:0;
  background:#2a2e2b;
  box-shadow:none;
}
.cm-search:focus-within{
  border:0;
  background:#303531;
  box-shadow:none;
}
.cm-all-toggle:hover{border:0;background:#303531}

/* Categories are the only visible rounded cards */
.cm-sections{gap:8px}
.cm-section{
  overflow:visible;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.cm-section:hover,
.cm-section.is-open{
  border:0;
  background:transparent;
  box-shadow:none;
}
.cm-section-head{
  min-height:66px;
  padding:15px 15px 15px 17px;
  border:0;
  border-radius:15px;
  background:#2f3230;
  box-shadow:none;
  transition:
    background .22s ease,
    transform .18s var(--cm-ease);
}
.cm-section-head:hover{background:#343836}
.cm-section-head:active{transform:scale(.995)}
.cm-section.is-open .cm-section-head{background:#323633}
.cm-section-copy strong{font-size:1rem}
.cm-section-copy small{color:#adb4ae;font-size:.74rem}
.cm-chevron{
  width:34px;
  height:34px;
  border:0;
  background:transparent;
  color:#f1f3f0;
}
.cm-section.is-open .cm-chevron{
  background:transparent;
  color:#f1f3f0;
}

/* Expanded product list sits directly on page background */
.cm-section-panel{
  border:0;
  background:transparent;
}
.cm-section-panel-inner{
  background:transparent;
}
.cm-items{
  margin:6px 0 2px;
  padding:0 2px;
  border:0;
  background:transparent;
}
.cm-item{
  min-height:68px;
  border:0;
  background:transparent;
}
.cm-item + .cm-item{border:0}
.cm-item-main{
  min-height:68px;
  padding-top:11px;
  padding-bottom:11px;
  border:0;
  border-radius:12px;
  background:transparent;
}
.cm-item-main:hover{background:rgba(255,255,255,.025)}
.cm-item-main:active{background:rgba(255,255,255,.035)}
.cm-item-copy{gap:4px}
.cm-item-title-row strong{
  font-size:.92rem;
  line-height:1.26;
}
.cm-item-desc{
  color:#a2aaa4;
  font-size:.76rem;
  line-height:1.42;
}
.cm-item-price{
  color:#fff;
  font-size:.88rem;
}
.cm-heart{color:#c7cdc8}
.cm-heart.is-saved{color:#f5d24d}

/* Product thumbnails stay optional without creating a fake card */
.cm-item-thumb{
  width:54px;
  height:54px;
  border-radius:12px;
  background:#2a2e2b;
  box-shadow:none;
}

/* Tags remain soft, with no visible outline */
.cm-tag,
.cm-tag--allergen,
.cm-tag--diet,
.cm-tag--spice,
.cm-tag--info{
  border:0;
}

/* Secondary cards also use tonal separation only */
.cm-action-card,
.cm-option-block,
.cm-service-note,
.cm-product-allergens{
  border:0;
  box-shadow:none;
}
.cm-action-card{background:#2b2f2c}
.cm-action-card:hover{border:0;background:#313632}
.cm-option-block{background:#1b201d}
.cm-service-note{background:#292e2a}
.cm-product-allergens{background:#292724}

/* Modals: no outline, just layers and shadows */
.cm-product-sheet,
.cm-model-panel,
.cm-ai-panel{
  border:0;
}
.cm-product-head,
.cm-model-panel>header,
.cm-ai-panel>header,
.cm-product-foot{
  border:0;
}
.cm-product-head{
  box-shadow:0 1px 0 rgba(255,255,255,.035);
}

/* Legal blocks use spacing and tone rather than rules */
.cm-legal-block{
  border:0;
  background:#292d2a;
  border-radius:16px;
  padding:0 14px;
}
.cm-footer{border-top:0}

/* Full-bleed hero remains untouched */
.cm-hero{
  background:#202320;
}

@media(max-width:640px){
  .cm-shell{width:calc(100% - 16px)}
  .cm-sections{gap:8px}
  .cm-section-head{
    min-height:62px;
    padding:14px 13px 14px 15px;
    border-radius:14px;
  }
  .cm-items{margin-top:5px}
  .cm-item{min-height:64px}
  .cm-item-main{
    min-height:64px;
    padding-top:10px;
    padding-bottom:10px;
  }
  .cm-item-thumb{
    width:50px;
    height:50px;
    border-radius:11px;
  }
  .cm-item-title-row strong{font-size:.9rem}
  .cm-item-desc{font-size:.74rem}
}


/* v1.1.3 — unified modal system */

/* Toolbar must visually disappear into the page */
.cm-toolbar{
  background:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

/* Hero fade now resolves exactly into the current page background */
.cm-hero:after{
  height:110px;
  background:linear-gradient(180deg,transparent,rgb(32 35 32));
}
.cm-hero-shade{
  background:
    linear-gradient(180deg,rgba(8,11,10,.06),rgba(8,11,10,.10) 34%,rgba(20,23,20,.56) 72%,rgb(32 35 32) 100%),
    linear-gradient(90deg,rgba(8,11,10,.22),transparent 68%);
}

/* --------------------------------------------------------------------------
   One modal language for Product / SPACE 3D / SPACE AI
   -------------------------------------------------------------------------- */
.cm-backdrop{
  background:rgba(0,0,0,.68);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}

.cm-product-sheet,
.cm-model-panel,
.cm-ai-panel{
  width:min(720px,calc(100% - 36px));
  border:0;
  border-radius:26px;
  background:#171a18;
  box-shadow:0 28px 80px rgba(0,0,0,.42);
}

/* Shared header */
.cm-modal-head,
.cm-product-head,
.cm-model-panel>header,
.cm-ai-panel>header{
  position:relative;
  z-index:2;
  min-width:0;
  min-height:82px;
  padding:17px 18px 17px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  border:0;
  background:#171a18;
  box-shadow:none;
}

.cm-modal-head__copy,
.cm-product-head>div,
.cm-model-panel>header>div,
.cm-ai-panel>header>div{
  min-width:0;
  flex:1 1 auto;
}

.cm-modal-head small,
.cm-product-head small,
.cm-model-panel>header small,
.cm-ai-panel>header small{
  display:block;
  margin:0 0 5px;
  color:var(--cm-cyan);
  font-size:.66rem;
  font-weight:850;
  line-height:1;
  letter-spacing:.10em;
}

.cm-modal-head h2,
.cm-product-head h2,
.cm-model-panel>header h2,
.cm-ai-panel>header h2{
  max-width:100%;
  margin:0;
  color:#f5f7f5;
  font-family:Inter,system-ui,sans-serif;
  font-size:1.28rem;
  font-weight:850;
  line-height:1.08;
  letter-spacing:-.035em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Exact visual centering of the close control on desktop and mobile */
.cm-close{
  flex:0 0 42px;
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  margin:0;
  padding:0;
  display:grid;
  place-items:center;
  align-self:center;
  border:0;
  border-radius:50%;
  background:#252a27;
  color:#f4f6f4;
  line-height:0;
  cursor:pointer;
  box-shadow:none;
}
.cm-close:hover{background:#2d322f}
.cm-close:active{transform:scale(.94)}
.cm-close svg{
  width:19px;
  height:19px;
  margin:0;
  stroke-width:2;
}

/* Product modal: media owns its own area, header starts AFTER it */
.cm-product-sheet{
  max-height:min(90dvh,860px);
  grid-template-rows:auto minmax(0,1fr) auto;
}
.cm-product-scroll{
  position:relative;
  z-index:1;
  width:100%;
  min-width:0;
  max-width:100%;
  overflow-x:hidden;
  overflow-y:auto;
  background:#171a18;
  overscroll-behavior:contain;
}
.cm-product-cover{
  position:relative;
  z-index:1;
  width:100%;
  max-width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#202420;
}
.cm-product-cover img{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:cover;
}
.cm-product-cover:after{
  z-index:2;
  background:linear-gradient(180deg,transparent 58%,rgba(23,26,24,.58));
}
.cm-product-heart{
  z-index:3;
  right:16px;
  bottom:16px;
  width:44px;
  height:44px;
  border:0;
  background:rgba(23,26,24,.82);
  box-shadow:none;
}
.cm-product-head{
  position:relative;
  z-index:2;
  background:#171a18;
}
.cm-product-body{
  position:relative;
  z-index:1;
  padding:2px 20px 26px;
  background:#171a18;
}
.cm-product-summary{
  padding-top:0;
}
.cm-product-foot{
  position:relative;
  z-index:5;
  padding:14px 20px max(14px,env(safe-area-inset-bottom));
  border:0;
  background:#141714;
  box-shadow:0 -10px 28px rgba(0,0,0,.12);
}

/* 3D modal */
.cm-model-panel{
  height:min(86dvh,780px);
  grid-template-rows:auto minmax(0,1fr) auto;
}
.cm-model-stage{
  background:
    radial-gradient(circle at 50% 42%,rgba(34,199,229,.055),transparent 34%),
    #202420;
}
.cm-model-panel>footer{
  min-height:52px;
  border:0;
  background:#141714;
  color:#9da59f;
}

/* AI modal */
.cm-ai-panel{
  height:min(82dvh,720px);
  grid-template-rows:auto minmax(0,1fr) auto auto;
}
.cm-ai-body{background:#171a18}
.cm-ai-msg.is-ai{
  border:0;
  background:#242925;
}
.cm-ai-quick{background:#171a18}
.cm-ai-quick button{
  border:0;
  background:#252a27;
}
.cm-ai-form{
  border:0;
  background:#141714;
}
.cm-ai-form textarea{
  border:0;
  background:#252a27;
}
.cm-ai-form textarea:focus{
  border:0;
  box-shadow:0 0 0 3px rgba(34,199,229,.05);
}

/* Keep all modal internals aligned to the same radius language */
.cm-product-allergens,
.cm-option-block,
.cm-3d-cta,
.cm-ai-msg,
.cm-ai-quick button,
.cm-ai-form textarea,
.cm-primary-action{
  border-radius:15px;
}

@media(max-width:640px){
  .cm-product-sheet,
  .cm-model-panel,
  .cm-ai-panel{
    width:100%;
    max-width:100%;
    border-radius:26px 26px 0 0;
  }

  .cm-modal-head,
  .cm-product-head,
  .cm-model-panel>header,
  .cm-ai-panel>header{
    min-height:78px;
    padding:15px 16px 15px 18px;
  }

  .cm-modal-head h2,
  .cm-product-head h2,
  .cm-model-panel>header h2,
  .cm-ai-panel>header h2{
    font-size:1.18rem;
  }

  .cm-close{
    flex-basis:40px;
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
  }
  .cm-close svg{width:18px;height:18px}

  .cm-product-cover{aspect-ratio:16/10}
  .cm-product-body{padding:2px 18px 23px}
  .cm-product-foot{padding-inline:18px}

  .cm-ai-panel{height:88dvh}
  .cm-model-panel{height:92dvh}
}


/* v1.1.4 — footer and WhatsApp */

/* Correct filled WhatsApp glyph */
.cm-action-icon--whatsapp{
  color:#25d366;
}
.cm-action-icon--whatsapp .space-sidebar__whatsappSvg{
  width:24px;
  height:24px;
  fill:currentColor;
  stroke:none;
}

/* Footer: larger SPACE mark on the left, product copy on the right */
.cm-footer{
  width:100%;
  margin-top:30px;
  padding:24px 2px 10px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:12px;
  border:0;
  text-align:left;
  color:#8f9790;
}
.cm-footer-brand{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
}
.cm-footer-brand img{
  flex:0 0 auto;
  width:58px;
  height:58px;
  object-fit:contain;
}
.cm-footer-brand__copy{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  text-align:left;
}
.cm-footer-brand__copy strong{
  color:#f3f5f3;
  font-size:.94rem;
  font-weight:850;
  line-height:1.1;
  letter-spacing:-.02em;
}
.cm-footer-brand__copy small{
  color:#9aa29c;
  font-size:.76rem;
  font-weight:600;
  line-height:1.2;
}
.cm-footer-powered{
  display:block;
  padding-left:72px;
  color:#6f7771;
  font-size:.66rem;
  line-height:1.4;
}

@media(max-width:640px){
  .cm-action-icon--whatsapp .space-sidebar__whatsappSvg{
    width:22px;
    height:22px;
  }

  .cm-footer{
    margin-top:26px;
    padding:22px 4px 8px;
    gap:10px;
  }
  .cm-footer-brand{gap:12px}
  .cm-footer-brand img{
    width:52px;
    height:52px;
  }
  .cm-footer-brand__copy strong{font-size:.9rem}
  .cm-footer-brand__copy small{font-size:.73rem}
  .cm-footer-powered{
    padding-left:64px;
    font-size:.63rem;
  }
}


/* v1.1.5 — search clear control */

/* Keep only SPACE's custom clear button.
   Chromium/Edge/Safari otherwise render their own native X for type="search". */
.cm-search input[type="search"]{
  appearance:none;
  -webkit-appearance:none;
}
.cm-search input[type="search"]::-webkit-search-cancel-button,
.cm-search input[type="search"]::-webkit-search-decoration,
.cm-search input[type="search"]::-webkit-search-results-button,
.cm-search input[type="search"]::-webkit-search-results-decoration{
  display:none;
  -webkit-appearance:none;
}


/* v1.1.6 — icon metadata legend */

/* Product metadata is intentionally icon-only.
   Meanings are explained once in the animated legend below the categories. */
.cm-item-tags,
.cm-product-tags{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
}
.cm-item-tags{margin-top:2px}
.cm-product-tags{
  width:100%;
  margin-top:16px;
  overflow:visible;
}

.cm-tag-icon-only{
  --space-tag-icon-color:currentColor;
  width:24px;
  height:24px;
  flex:0 0 24px;
  display:inline-grid;
  place-items:center;
  padding:0;
  margin:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#b7bdb8;
  line-height:0;
  vertical-align:middle;
}
.cm-tag-icon-only .cm-tag-icon,
.cm-tag-icon-only svg.cm-tag-icon{
  width:21px !important;
  height:21px !important;
  max-width:none !important;
  max-height:none !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
}
.cm-tag-icon-only .space-tag-icon-use{
  transform-box:view-box;
  transform-origin:center;
}
.cm-tag-icon-only--allergen{color:#f2ad76}
.cm-tag-icon-only--diet{color:#95d99a}
.cm-tag-icon-only--spice{color:#ef8e84}
.cm-tag-icon-only--info{color:#77cedd}

.cm-product-tags .cm-tag-icon-only{
  width:28px;
  height:28px;
  flex-basis:28px;
}
.cm-product-tags .cm-tag-icon-only .cm-tag-icon,
.cm-product-tags .cm-tag-icon-only svg.cm-tag-icon{
  width:24px !important;
  height:24px !important;
}

/* Reintroduced legend. It is a real collapsible section and therefore uses
   the same transition system as menu categories. */
.cm-legal.cm-section{
  margin-top:8px;
}
.cm-legend-content{
  padding:8px 4px 10px;
  display:grid;
  gap:18px;
}
.cm-legend-group{
  min-width:0;
  padding:0 12px;
}
.cm-legend-group>header{
  margin-bottom:10px;
  display:grid;
  gap:3px;
}
.cm-legend-group>header strong{
  color:#f4f6f4;
  font-size:.86rem;
  font-weight:850;
  line-height:1.2;
  letter-spacing:-.015em;
}
.cm-legend-group>header small{
  color:#909991;
  font-size:.72rem;
  line-height:1.42;
}
.cm-legend-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px 10px;
}
.cm-legend-item{
  min-width:0;
  min-height:42px;
  padding:7px 9px;
  display:flex;
  align-items:center;
  gap:9px;
  border:0;
  border-radius:12px;
  background:#282c29;
  color:#d9ddd9;
}
.cm-legend-item>.cm-tag-icon-only{
  width:27px;
  height:27px;
  flex-basis:27px;
}
.cm-legend-item>.cm-tag-icon-only .cm-tag-icon,
.cm-legend-item>.cm-tag-icon-only svg.cm-tag-icon{
  width:23px !important;
  height:23px !important;
}
.cm-legend-item>span:last-child{
  min-width:0;
  font-size:.78rem;
  font-weight:650;
  line-height:1.3;
  overflow-wrap:anywhere;
}
.cm-legend-service{
  margin:0 12px;
  padding:12px 13px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:4px 12px;
  border-radius:13px;
  background:#282c29;
}
.cm-legend-service>span{
  color:#aab2ac;
  font-size:.72rem;
  font-weight:700;
}
.cm-legend-service>strong{
  color:#fff;
  font-size:.8rem;
  font-weight:850;
}
.cm-legend-service>small{
  grid-column:1/-1;
  color:#858e87;
  font-size:.68rem;
  line-height:1.4;
}
.cm-legend-note{
  margin:0 12px;
  color:#858e87;
  font-size:.7rem;
  line-height:1.55;
}

/* Old textual tag/allergen blocks are no longer used by collapsible v1.1.6. */
.cm-product-allergens{display:none}

@media(max-width:640px){
  .cm-item-tags{gap:6px}
  .cm-tag-icon-only{
    width:23px;
    height:23px;
    flex-basis:23px;
  }
  .cm-tag-icon-only .cm-tag-icon,
  .cm-tag-icon-only svg.cm-tag-icon{
    width:20px !important;
    height:20px !important;
  }
  .cm-product-tags .cm-tag-icon-only{
    width:27px;
    height:27px;
    flex-basis:27px;
  }
  .cm-legend-content{gap:16px;padding-top:7px}
  .cm-legend-group{padding-inline:10px}
  .cm-legend-grid{grid-template-columns:1fr;gap:6px}
  .cm-legend-item{min-height:40px;padding:7px 8px}
  .cm-legend-service,
  .cm-legend-note{margin-inline:10px}
}


/* v1.1.7 — price-unit labels */

/* Price-unit labels such as “€ 3,50 / 100 g” need a slightly wider rail.
   Keep heart and price aligned while preserving the flat list rhythm. */
.cm-item-main{padding-right:166px}
.cm-item-side{
  right:50px;
  width:112px;
  min-width:112px;
}
.cm-item-price{
  overflow:visible;
  text-overflow:clip;
  font-size:.84rem;
  letter-spacing:-.015em;
  white-space:nowrap;
}

@media(max-width:640px){
  .cm-item-main{padding-right:154px}
  .cm-item-side{
    right:47px;
    width:102px;
    min-width:102px;
  }
  .cm-item-price{font-size:.80rem}
}

@media(max-width:380px){
  .cm-item-main{padding-right:146px}
  .cm-item-side{
    right:44px;
    width:96px;
    min-width:96px;
  }
  .cm-item-price{font-size:.77rem}
}


/* v1.1.8 — flat tag icon strokes */
.cm-tag-icon-only .cm-tag-icon,
.cm-tag-icon-only svg.cm-tag-icon,
.cm-tag-icon-only .cm-tag-icon *,
.cm-tag-icon-only svg.cm-tag-icon *{
  stroke-width:0 !important;
}


/* v1.1.10 — shared AI waiter compatibility */

/* The shared AI waiter is also used by SPACE Classic. Collapsible has no
   fixed menu appbar, so remove that reserved clearance without restyling AI. */
body.space-collapsible{
  --space-menu-appbar-clearance:0px;
  --space-menu-ai-fab-gap:18px;
}

/* ai_waiter.php normally inherits this close control from the Classic menu
   stylesheet. Collapsible supplies only the missing structural rule. */
.space-collapsible .aiWaiterCloseBtn{
  position:absolute;
  top:14px;
  right:16px;
  z-index:5;
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  margin:0;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#f8fafc;
  font:400 26px/1 Inter,system-ui,sans-serif;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.space-collapsible .aiWaiterCloseBtn:hover{
  background:rgba(255,255,255,.13);
}
.space-collapsible .aiWaiterCloseBtn:active{
  transform:scale(.94);
}

@media(max-width:520px){
  .space-collapsible .aiWaiterCloseBtn{
    top:13px;
    right:14px;
    width:40px;
    height:40px;
    min-width:40px;
    min-height:40px;
  }
}


/* v1.1.11 — category description handoff */

/* Closed category: keep the one-line description compact.
   Open category: the description drops out, the item count takes its place,
   then the full description unfolds above the product list. */
.cm-section-meta{
  position:relative;
  min-width:0;
  height:1.15em;
  display:block;
  overflow:hidden;
}

.cm-section-summary,
.cm-section-count{
  display:block;
  min-width:0;
  color:#adb4ae;
  font-size:.74rem;
  font-weight:600;
  line-height:1.15;
}

.cm-section-summary{
  max-width:62ch;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  opacity:1;
  transform:translateY(0);
  transition:
    opacity .20s ease,
    transform .34s var(--cm-ease);
}

.cm-section-meta .cm-section-count{
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  opacity:0;
  transform:translateY(-7px);
  transition:
    opacity .20s ease,
    transform .34s var(--cm-ease);
}

.cm-section-count--static{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.cm-section.is-open .cm-section-summary{
  opacity:0;
  transform:translateY(8px);
}

.cm-section.is-open .cm-section-meta .cm-section-count{
  opacity:1;
  transform:translateY(0);
  transition-delay:.06s;
}

.cm-section-description{
  min-width:0;
  margin:0 16px;
  padding:0 1px;
  opacity:0;
  transform:translateY(-9px);
  transition:
    opacity .26s ease .08s,
    transform .42s var(--cm-ease) .05s;
}

.cm-section-description p{
  margin:0;
  padding:10px 0 7px;
  color:#a5ada7;
  font-size:.78rem;
  font-weight:500;
  line-height:1.55;
  overflow-wrap:anywhere;
}

.cm-section.is-open .cm-section-description{
  opacity:1;
  transform:translateY(0);
}

/* Give the full description its own breathing room without turning it into a card. */
.cm-section-description + .cm-items{
  margin-top:0;
}

@media(max-width:640px){
  .cm-section-summary,
  .cm-section-count{
    font-size:.72rem;
  }

  .cm-section-description{
    margin-inline:14px;
  }

  .cm-section-description p{
    padding-top:9px;
    padding-bottom:6px;
    font-size:.75rem;
    line-height:1.52;
  }
}

@media(prefers-reduced-motion:reduce){
  .cm-section-summary,
  .cm-section-meta .cm-section-count,
  .cm-section-description{
    transition:none!important;
  }
}


/* v1.1.13 — full product descriptions */
.cm-item-desc{
  display:block;
  -webkit-line-clamp:unset;
  -webkit-box-orient:initial;
  overflow:visible;
  white-space:normal;
  text-overflow:clip;
}


/* v1.1.14 — top-aligned thumbnails and favorites modal */

/* Product thumbnail starts with the title instead of centering against long copy. */
.cm-item-main{
  align-items:flex-start;
}
.cm-item-thumb{
  width:58px;
  height:58px;
  flex:0 0 58px;
  align-self:flex-start;
  margin-top:1px;
  border-radius:13px;
}

/* Search + likes + expand/collapse. */
.cm-toolbar{
  grid-template-columns:minmax(0,1fr) auto auto;
}
.cm-favorites-toggle{
  position:relative;
  width:54px;
  height:54px;
  min-width:54px;
  padding:0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:var(--cm-radius-md,16px);
  background:#2a2e2b;
  color:#c7cdc8;
  cursor:pointer;
  box-shadow:none;
  transition:background .2s ease,color .2s ease,transform .18s var(--cm-ease);
}
.cm-favorites-toggle:hover{
  background:#303531;
}
.cm-favorites-toggle:active{
  transform:scale(.97);
}
.cm-favorites-toggle.has-items{
  color:#f5d24d;
}
.cm-favorites-toggle>svg{
  width:20px;
  height:20px;
}
.cm-favorites-badge{
  position:absolute;
  top:6px;
  right:6px;
  min-width:17px;
  height:17px;
  padding:0 4px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#f5d24d;
  color:#202320;
  font-size:.60rem;
  font-weight:900;
  line-height:1;
}

/* Favorites uses the same modal language as product and 3D sheets. */
.cm-favorites-panel{
  position:relative;
  z-index:2;
  width:min(620px,calc(100% - 36px));
  max-height:min(82dvh,760px);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  border:0;
  border-radius:26px;
  background:#171a18;
  box-shadow:0 28px 80px rgba(0,0,0,.42);
  transform:translateY(24px) scale(.985);
  transition:transform .42s var(--cm-ease);
}
.cm-layer.is-open .cm-favorites-panel{
  transform:translateY(0) scale(1);
}
.cm-favorites-panel>.cm-modal-head{
  border:0;
  box-shadow:none;
}
.cm-favorites-body{
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:2px 16px 18px;
}
.cm-favorite-item{
  position:relative;
  min-width:0;
  display:flex;
  align-items:stretch;
  gap:8px;
  border-bottom:1px solid rgba(255,255,255,.045);
}
.cm-favorite-item:last-child{
  border-bottom:0;
}
.cm-favorite-item__main{
  min-width:0;
  flex:1 1 auto;
  padding:11px 2px;
  display:grid;
  grid-template-columns:62px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.cm-favorite-item__main:hover{
  background:rgba(255,255,255,.022);
}
.cm-favorite-item__image{
  width:62px;
  height:62px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#292e2a;
  color:#6f7771;
}
.cm-favorite-item__image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.cm-favorite-item__copy{
  min-width:0;
  display:grid;
  gap:3px;
}
.cm-favorite-item__copy small{
  color:#7f8982;
  font-size:.64rem;
  font-weight:750;
  text-transform:uppercase;
  letter-spacing:.055em;
}
.cm-favorite-item__copy strong{
  color:#f4f6f4;
  font-size:.90rem;
  font-weight:850;
  line-height:1.22;
}
.cm-favorite-item__copy>span{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  color:#9da59f;
  font-size:.74rem;
  line-height:1.4;
}
.cm-favorite-item__main>b{
  padding-left:8px;
  color:#fff;
  font-size:.82rem;
  font-weight:850;
  white-space:nowrap;
}
.cm-favorite-item__remove{
  flex:0 0 42px;
  width:42px;
  height:42px;
  margin:auto 0;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#f5d24d;
  font-size:1rem;
  cursor:pointer;
}
.cm-favorite-item__remove:hover{
  background:rgba(245,210,77,.07);
}
.cm-favorite-item__remove:active{
  transform:scale(.92);
}
.cm-favorites-empty{
  min-height:280px;
  padding:34px 24px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:8px;
  text-align:center;
}
.cm-favorites-empty__heart{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#282c29;
  color:#c8cec9;
  font-size:1.7rem;
}
.cm-favorites-empty strong{
  margin-top:3px;
  color:#f4f6f4;
  font-size:1rem;
  font-weight:850;
}
.cm-favorites-empty p{
  max-width:300px;
  margin:0;
  color:#8f9790;
  font-size:.78rem;
  line-height:1.5;
}

@media(max-width:640px){
  .cm-favorites-toggle{
    width:52px;
    height:52px;
    min-width:52px;
  }

  .cm-item-thumb{
    width:56px;
    height:56px;
    flex-basis:56px;
    border-radius:13px;
  }

  .cm-favorites-panel{
    width:100%;
    max-width:100%;
    max-height:88dvh;
    border-radius:26px 26px 0 0;
    transform:translateY(100%);
  }

  .cm-favorites-body{
    padding:0 13px max(18px,env(safe-area-inset-bottom));
  }

  .cm-favorite-item__main{
    grid-template-columns:58px minmax(0,1fr) auto;
    gap:10px;
    padding-block:10px;
  }

  .cm-favorite-item__image{
    width:58px;
    height:58px;
    border-radius:13px;
  }

  .cm-favorite-item__copy strong{
    font-size:.86rem;
  }

  .cm-favorite-item__copy>span{
    font-size:.71rem;
  }

  .cm-favorite-item__main>b{
    font-size:.78rem;
  }

  .cm-favorite-item__remove{
    flex-basis:38px;
    width:38px;
    height:38px;
  }
}

@media(max-width:390px){
  .cm-favorite-item__main{
    grid-template-columns:54px minmax(0,1fr);
  }
  .cm-favorite-item__image{
    width:54px;
    height:54px;
  }
  .cm-favorite-item__main>b{
    grid-column:2;
    padding-left:0;
  }
}


/* v1.1.15 — top price/heart + shorter hero */

/* Keep the whole product identity on one top axis: image, title, price and like. */
.cm-item-side{
  top:11px;
  transform:none;
  align-items:flex-start;
}
.cm-heart{
  top:11px;
  transform:none;
}
.cm-heart:active{
  transform:scale(.9);
}

/* Slightly more compact hero while preserving logo, copy and service metadata. */
.cm-hero{
  min-height:clamp(286px,38vw,395px);
}

@media(max-width:640px){
  .cm-hero{
    min-height:296px;
  }

  .cm-item-side{
    top:10px;
  }

  .cm-heart{
    top:10px;
  }
}


/* v1.1.16 — breathable product copy */

/* Title + price share only the top row. The description and tag row then
   reclaim the full text width to the right of the thumbnail. */
.cm-item-main{
  padding-right:4px;
  align-items:flex-start;
}

.cm-item-copy{
  flex:1 1 auto;
  min-width:0;
  display:grid;
  gap:7px;
}

.cm-item-topline{
  min-width:0;
  min-height:42px;
  display:flex;
  align-items:stretch;
  gap:10px;
}

.cm-item-title-row{
  flex:1 1 auto;
  min-width:0;
  min-height:42px;
  align-items:center;
}

.cm-item-side{
  position:static;
  top:auto;
  right:auto;
  width:auto;
  min-width:0;
  flex:0 0 auto;
  min-height:42px;
  padding-right:44px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:0;
  transform:none;
  pointer-events:none;
}

.cm-item-price{
  width:auto;
  max-width:none;
  overflow:visible;
  text-align:right;
  text-overflow:clip;
  white-space:nowrap;
}

.cm-item-desc,
.cm-item-tags{
  width:100%;
  max-width:none;
  padding-right:0;
}

.cm-heart{
  top:11px;
  right:2px;
  transform:none;
}
.cm-heart:active{
  transform:scale(.9);
}

@media(max-width:640px){
  .cm-item-main{
    padding-right:2px;
  }

  .cm-item-topline,
  .cm-item-title-row,
  .cm-item-side{
    min-height:42px;
  }

  .cm-item-side{
    padding-right:42px;
  }

  .cm-heart{
    top:10px;
    right:0;
  }
}

@media(max-width:380px){
  .cm-item-topline{
    gap:8px;
  }

  .cm-item-side{
    padding-right:40px;
  }
}

/* v1.1.17 — venue info lives in the hero and uses the clean modal language */

.cm-hero-top{
  gap:8px;
}

.cm-info-trigger{
  min-height:44px;
  padding:0 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  border-radius:999px;
  background:rgba(14,18,23,.72);
  color:#f4f7f9;
  box-shadow:0 8px 24px rgba(0,0,0,.10);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:background .18s ease,transform .18s ease;
}

.cm-info-trigger:hover{
  background:rgba(27,33,31,.90);
}

.cm-info-trigger:active{
  transform:scale(.96);
}

.cm-info-trigger svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.cm-info-trigger span{
  font-size:.78rem;
  font-weight:850;
  line-height:1;
}

.cm-info-panel{
  position:relative;
  z-index:2;
  width:min(620px,calc(100% - 36px));
  max-height:min(84dvh,780px);
  overflow:hidden;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  border:0;
  border-radius:26px;
  background:#171a18;
  box-shadow:0 28px 80px rgba(0,0,0,.42);
  transform:translateY(24px) scale(.985);
  transition:transform .42s var(--cm-ease);
}

.cm-layer.is-open .cm-info-panel{
  transform:translateY(0) scale(1);
}

.cm-info-panel>.cm-modal-head{
  border:0;
  box-shadow:none;
}

.cm-info-body{
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:2px 16px 18px;
  display:grid;
  gap:9px;
}

.cm-info-card{
  min-width:0;
  padding:14px 15px;
  display:grid;
  gap:8px;
  border:0;
  border-radius:17px;
  background:#202522;
  box-shadow:none;
}

.cm-info-card--muted{
  background:#1d211e;
}

.cm-info-label{
  color:#7f8982;
  font-size:.64rem;
  font-weight:850;
  letter-spacing:.09em;
  line-height:1.2;
  text-transform:uppercase;
}

.cm-info-card>strong,
.cm-info-wifi-row>strong{
  min-width:0;
  color:#f3f6f3;
  font-size:.92rem;
  font-weight:760;
  line-height:1.4;
  overflow-wrap:anywhere;
}

.cm-info-note{
  color:#929c95;
  font-size:.75rem;
  line-height:1.4;
}

.cm-info-actions{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.cm-info-action{
  min-height:39px;
  padding:0 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:12px;
  background:#2b312d;
  color:#eafcff;
  font-size:.73rem;
  font-weight:800;
  text-decoration:none;
  transition:background .16s ease,transform .16s ease;
}

.cm-info-action:hover{
  background:#333a35;
}

.cm-info-action:active{
  transform:scale(.97);
}

.cm-info-wifi-row{
  display:grid;
  gap:5px;
}

.cm-info-wifi-row>span{
  color:#77827b;
  font-size:.62rem;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.cm-info-copy{
  width:100%;
  min-width:0;
  min-height:43px;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:0;
  border-radius:13px;
  background:#2b312d;
  color:#fff;
  cursor:pointer;
  text-align:left;
}

.cm-info-copy:hover{
  background:#333a35;
}

.cm-info-copy code{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  color:inherit;
  font:750 .9rem/1.2 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}

.cm-info-copy span{
  flex:0 0 auto;
  color:var(--cm-cyan);
  font-size:.68rem;
  font-weight:850;
}

.cm-info-open-network{
  color:#aeb7b0 !important;
  font-size:.78rem !important;
  font-weight:650 !important;
}

.cm-info-socials{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.cm-info-social{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:#2b312d;
  color:#eef3ef;
  text-decoration:none;
  transition:background .16s ease,transform .16s ease;
}

.cm-info-social:hover{
  background:#333a35;
  transform:translateY(-1px);
}

.cm-info-social svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

@media(max-width:640px){
  .cm-info-trigger{
    min-height:42px;
    padding:0 12px;
  }

  .cm-info-trigger span{
    font-size:.74rem;
  }

  .cm-info-panel{
    width:calc(100% - 20px);
    max-height:88dvh;
    align-self:flex-end;
    border-radius:24px 24px 0 0;
  }

  .cm-info-body{
    padding:2px 12px max(18px,env(safe-area-inset-bottom));
  }
}

/* v1.1.18 — flatter info content + robust mobile sheet positioning */

.cm-info-card,
.cm-info-card--muted{
  padding:13px 2px 16px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.cm-info-body{
  gap:0;
}

@media(max-width:640px){
  .cm-info-layer{
    align-items:flex-end;
    justify-content:center;
    padding:max(8px,env(safe-area-inset-top)) 10px 0;
  }

  .cm-info-panel{
    width:100%;
    max-height:calc(100dvh - max(8px,env(safe-area-inset-top)));
    margin:0;
    align-self:auto;
    border-radius:24px 24px 0 0;
    transform:translateY(28px);
  }

  .cm-layer.is-open .cm-info-panel{
    transform:translateY(0);
  }

  .cm-info-panel>.cm-modal-head{
    flex:0 0 auto;
  }

  .cm-info-body{
    min-height:0;
    padding:0 16px max(18px,env(safe-area-inset-bottom));
  }
}

