:root{
    --bg: #fcfaf7;
    --card: #ffffff;
    --text: #1f2937;
    --muted: #6b7280;
    --accent: #ef4444;
    --shadow: 0 2px 10px rgba(0,0,0,.06);
    --radius: 14px;
  }
  
  .img{
    max-width: 100%;
    height: auto;
  }

  /* base */
  .page{
    font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    background: var(--bg);
    color: var(--text);
  }
  
  .page.is-rtl{
    font-family: "Noto Sans Arabic", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    direction: rtl;
  }
  
  .header{
    background: rgba(255,255,255,.9);
    backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(0,0,0,.06);
  }
  
  .lang-tabs{
    display:flex;
    justify-content:center;
    gap: 10px;
  }
  
  .lang-tabs__btn{
    font-size: 0.875rem;
    font-weight: 600;
    padding: 6px 14px;
    border-radius: 9999px;
    color: #9ca3af;
    border: 1px solid rgba(0,0,0,.08);
    background: white;
  }
  
  .lang-tabs__btn.is-active{
    color: var(--accent);
    border-color: rgba(239, 68, 68, .35);
    box-shadow: 0 1px 0 rgba(239,68,68,.12);
  }
  
  .section{
    margin-bottom: 28px;
  }
  
  .section__title{
    display:flex;
    align-items:center;
    gap: 8px;
    font-size: 1.05rem;
    font-weight: 700;
    padding-left: 10px;
    border-left: 4px solid var(--accent);
    margin-bottom: 14px;
  }
  .page.is-rtl .section__title{
    padding-left: 0;
    padding-right: 10px;
    border-left: none;
    border-right: 4px solid var(--accent);
  }
  
  /* grid */
  .grid{
    display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  
  /* card as button for accessibility */
  .card{
    display:flex;
    flex-direction:column;
    background: var(--card);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    overflow:hidden;
    text-align: right;
    border: 1px solid rgba(0,0,0,.04);
    transition: transform .08s ease, box-shadow .08s ease;
  }
  .card:hover{ transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.08); }
  .card:active{ transform: translateY(0px); }
  
  .card__img{
    width:100%;
    height: 122px;
    object-fit: cover;
    background: #eee;
    display:block;
  }
  
  .card__body{
    padding: 10px 12px 12px;
    display:flex;
    flex-direction:column;
    gap: 8px;
    min-height: 98px;
  }
  
  .card__name{
    font-weight: 700;
    font-size: .92rem;
    line-height: 1.15;
    color: var(--text);
  }
  
  .card__desc{
    font-size: .70rem;
    color: var(--muted);
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  
  .card__foot{
    margin-top:auto;
    display:flex;
    justify-content:flex-end;
  }
  .page.is-rtl .card__foot{ justify-content:flex-start; }
  
  .price{
    display:inline-block;
    background: var(--accent);
    color: white;
    padding: 2px 10px;
    border-radius: 9999px;
    font-weight: 800;
    font-size: .70rem;
  }
  
  .footer-note{
    background: #f3f4f6;
    padding: 12px 12px;
    border-radius: 12px;
    font-size: 11px;
    color: #6b7280;
    text-align:center;
    line-height: 1.5;
  }
  
  /* modal */
  .modal-overlay{
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.35);
    z-index: 40;
  }
  
  .modal{
    width: min(420px, calc(100vw - 24px));
    border: none;
    border-radius: 18px;
    padding: 0;
    overflow: hidden;
    box-shadow: 0 24px 80px rgba(0,0,0,.22);
    z-index: 50;
  }
  .modal::backdrop{ background: transparent; }
  
  .modal__frame{
    margin:0;
    padding:0;
  }
  
  .modal__close{
    position:absolute;
    top: 10px;
    right: 10px;
    width: 38px;
    height: 38px;
    border-radius: 9999px;
    border: 1px solid rgba(255,255,255,.35);
    background: rgba(0,0,0,.35);
    color: white;
    font-size: 22px;
    line-height: 1;
  }
  .page.is-rtl .modal__close{ right:auto; left:10px; }
  
  .modal__media img{
    width: 100%;
    height: 210px;
    object-fit: cover;
    background: #eee;
    display:block;
  }
  
  .modal__body{
    padding: 14px 14px 16px;
  }
  
  .modal__head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap: 10px;
  }
  .modal__title{
    font-weight: 800;
    font-size: 1.05rem;
    line-height: 1.2;
  }
  .modal__price{
    white-space: nowrap;
    margin-top: 2px;
  }
  .modal__desc{
    margin-top: 8px;
    font-size: .85rem;
    color: #4b5563;
    line-height: 1.5;
  }
  
  .modal__meta{
    margin-top: 10px;
    font-size: .78rem;
    color: #6b7280;
    display:flex;
    flex-wrap:wrap;
    gap: 6px;
  }
  .meta-pill{
    border: 1px solid rgba(0,0,0,.08);
    background: rgba(255,255,255,.9);
    padding: 4px 8px;
    border-radius: 9999px;
  }
  
  .modal__actions{
    margin-top: 14px;
    display:flex;
    justify-content:flex-end;
    padding:0;
  }
  .modal__btn{
    border: 1px solid rgba(0,0,0,.12);
    background: white;
    padding: 10px 14px;
    border-radius: 12px;
    font-weight: 700;
  }
  
  /* Coming Soon */
.card__media{
  position: relative;
}

.card.is-coming-soon .card__img{
  filter: brightness(.55);
}

.card__flag{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
  padding: 10px;
}

.card__flag span{
  color: #ef4444;
  font-weight: 900;
  font-size: 1.05rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.05;
  text-shadow: 0 2px 10px rgba(0,0,0,.45);
}

/* RTLでも中央配置なので追加不要だが、念のため */
.page.is-rtl .card__flag span{
  letter-spacing: 0;
}

.site-footer{
  border-top: 1px solid rgba(0,0,0,.08);
  /* padding-top: 14px; */
  text-align: center;
}

.footer-links{
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 10px;
  margin-top: 10px;
}

.footer-link{
  font-size: 14px;
  text-decoration: none;
  border-bottom: 1px solid rgba(0,0,0,.25);
  padding-bottom: 2px;
}

.footer-address{
  font-size: 12px;
  opacity: .75;
  margin-bottom: 10px;
}

/* RTL時の見た目調整（任意） */
.is-rtl .footer-links{
  flex-direction: row-reverse;
}

.footer-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  text-decoration: none;
  border: 1px solid rgba(0,0,0,.12);
}

.footer-icon svg{
  display: block;
}
