/* ===== J Marché 共通スタイル（サブページ用） ===== */
:root{
  --paper:#ffffff; --ivory:#f6f2ec; --ink:#23211e; --ink2:#4d4843;
  --gray:#9a928a; --line:#e7e0d7; --wine:#7a2e3b; --wine-l:#a8616c; --gold:#b1925d;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:"Hiragino Kaku Gothic ProN","ヒラギノ角ゴ ProN W3","Meiryo",sans-serif;color:var(--ink);background:#fff;line-height:1.9;font-size:14px;letter-spacing:.02em;-webkit-font-smoothing:antialiased;}
.serif{font-family:"Hiragino Mincho ProN","YuMincho","游明朝",serif;font-weight:400;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

/* ヘッダー */
header.gh{border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,255,255,.97);backdrop-filter:blur(6px);z-index:90;}
.gh .wrap{display:flex;align-items:center;justify-content:space-between;height:62px;}
.logo{font-size:21px;letter-spacing:.2em;color:var(--ink);}
nav.main{display:flex;gap:28px;font-size:12.5px;letter-spacing:.08em;color:var(--ink2);}
nav.main a{position:relative;padding:20px 0;transition:.2s;}
nav.main a:hover{color:var(--wine);}
.gh .icons{display:flex;gap:18px;font-size:11px;letter-spacing:.08em;color:var(--gray);}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.burger span{width:22px;height:1.5px;background:var(--ink);transition:.3s;}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mmenu{display:flex;flex-direction:column;background:#fff;border-bottom:1px solid var(--line);overflow:hidden;max-height:0;transition:max-height .35s ease;}
.mmenu.open{max-height:560px;}
.mmenu a{padding:15px 24px;border-top:1px solid var(--line);font-size:13px;letter-spacing:.08em;color:var(--ink2);}
.mmenu a:first-child{border-top:none;}

/* ページ見出し */
.pagehead{text-align:center;padding:70px 24px 10px;}
.pagehead .en{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--wine);margin-bottom:14px;}
.pagehead h1{font-size:32px;font-weight:400;letter-spacing:.1em;color:var(--ink);}
.pagehead .crumb{font-size:11px;color:var(--gray);margin-top:16px;letter-spacing:.04em;}
.pagehead .crumb a:hover{color:var(--wine);}

section{padding:60px 0;}

/* About（J Marché とは） */
.about .wrap{max-width:920px;}
.about .lead2{text-align:center;font-size:16px;line-height:2.3;color:var(--ink2);font-weight:300;}
.about .pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;margin-top:54px;}
.about .pil{text-align:center;padding:0 6px;}
.about .pil .no{font-family:"Hiragino Mincho ProN",serif;font-size:12px;letter-spacing:.24em;color:var(--gold);}
.about .pil h3{font-size:17px;font-weight:400;margin:12px 0 10px;letter-spacing:.04em;}
.about .pil p{font-size:13px;color:var(--gray);line-height:1.95;}

/* さっちゃん */
.sachi .inner2{max-width:1040px;margin:0 auto;display:grid;grid-template-columns:1fr 1.25fr;gap:56px;align-items:center;}
.sachi .pic{aspect-ratio:4/5;overflow:hidden;background:linear-gradient(135deg,#efe7dd,#e3d6c8);position:relative;}
.sachi .pic img{width:100%;height:100%;object-fit:cover;}
.sachi .pic .ph-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;letter-spacing:.1em;opacity:.85;}
.sachi .txt .en{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--wine);margin-bottom:14px;}
.sachi .txt h2{font-size:28px;font-weight:400;letter-spacing:.06em;margin-bottom:20px;}
.sachi .txt p{font-size:14px;line-height:2.05;color:var(--ink2);font-weight:300;margin-bottom:16px;}

/* 法務・テキストページ */
.legal{max-width:800px;margin:0 auto;padding:10px 0 30px;}
.legal h2{font-size:18px;font-weight:500;letter-spacing:.04em;margin:32px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line);}
.legal h2:first-child{margin-top:0;}
.legal p{font-size:13.5px;line-height:2;color:var(--ink2);margin-bottom:12px;}
.legal ol,.legal ul{margin:0 0 14px 1.4em;}
.legal li{font-size:13.5px;line-height:2;color:var(--ink2);margin-bottom:4px;}
.legal dl{display:flex;border-bottom:1px solid var(--line);}
.legal dt{width:200px;flex:none;padding:12px 0;font-size:13px;color:var(--gray);}
.legal dd{padding:12px 0;font-size:13.5px;color:var(--ink2);}
.legal .note{background:var(--ivory);border-left:3px solid var(--gold);padding:14px 18px;font-size:13px;color:var(--ink2);margin:18px 0;}

/* 準備中バッジ */
.soon{display:inline-block;font-size:11px;letter-spacing:.14em;color:var(--gold);border:1px solid var(--gold);border-radius:20px;padding:4px 14px;}

/* 商品一覧（カテゴリページ） */
.subnav{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 auto 6px;}
.subnav a{font-size:12.5px;letter-spacing:.06em;color:var(--ink2);padding:8px 18px;border:1px solid var(--line);border-radius:30px;transition:.2s;}
.subnav a:hover{border-color:var(--wine);color:var(--wine);}
.subnav a.on{background:var(--ink);color:#fff;border-color:var(--ink);}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;align-items:start;}
.card{display:flex;flex-direction:column;height:100%;}
.card .ph{position:relative;aspect-ratio:3/4;margin-bottom:16px;overflow:hidden;background:linear-gradient(135deg,#efe7dd,#e3d6c8);}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s;}
.card:hover .ph img{transform:scale(1.04);}
.route{align-self:flex-start;font-size:10px;letter-spacing:.1em;padding:3px 9px;border:1px solid #e6c7ce;background:#faf3f4;color:var(--wine);border-radius:2px;margin-bottom:10px;}
.card .name{font-size:14px;line-height:1.6;min-height:44px;margin-bottom:5px;display:flex;align-items:flex-end;}
.card .price{font-size:16px;color:var(--ink);margin-bottom:14px;letter-spacing:.04em;}
.card .price small{font-size:11px;color:var(--gray);}
.card .btn{margin-top:auto;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--ink);color:#fff;padding:14px 10px;font-size:11.5px;letter-spacing:.1em;transition:.22s;line-height:1;}
.card .btn:hover{background:var(--wine);}
.card .btn .arrow{font-size:13px;}
/* ===== 在庫・セール表示 ===== */
.cbadge{position:absolute;top:10px;left:10px;font-size:12px;font-weight:500;letter-spacing:.1em;padding:6px 12px;border-radius:3px;color:#fff;z-index:2;}
.badge-sale{background:#c0392b;}
.badge-soldout{background:#6b6b6b;}
.card-soldout .ph img{filter:grayscale(.5);opacity:.72;}
.card .price.sale{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;}
.card .price .price-old{color:var(--gray);text-decoration:line-through;font-size:13px;font-weight:400;}
.card .price .price-now{color:#c0392b;font-weight:600;font-size:18px;}
.card .stockleft{margin:-4px 0 13px;}
.card .stockleft .gbar{height:5px;border-radius:3px;background:#eee3df;overflow:hidden;margin-bottom:5px;}
.card .stockleft .gbar i{display:block;height:100%;background:#c0392b;border-radius:3px;}
.card .stockleft .gtxt{font-size:12px;font-weight:500;color:#c0392b;letter-spacing:.03em;}
.card .btn.is-soldout{margin-top:auto;display:flex;align-items:center;justify-content:center;background:#cfcac3;color:#fff;padding:14px 10px;font-size:11.5px;letter-spacing:.1em;line-height:1;cursor:not-allowed;pointer-events:none;}
.emptynote{text-align:center;color:var(--gray);font-size:13px;padding:50px 0;}

/* フォーム（会員登録・ログイン・マイページ） */
.authwrap{max-width:520px;margin:0 auto;}
.form-row{margin-bottom:18px;}
.form-row label{display:block;font-size:12.5px;color:var(--ink2);margin-bottom:7px;letter-spacing:.04em;}
.form-row label .req{color:var(--wine);font-size:11px;margin-left:6px;}
.form-row input,.form-row select{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:4px;font-size:14px;font-family:inherit;color:var(--ink);background:#fff;}
.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--wine);}
.form-row .two{display:flex;gap:12px;}
.form-note{font-size:12px;color:var(--gray);margin-top:5px;}
.agree{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--ink2);margin:8px 0 22px;line-height:1.7;}
.agree input{margin-top:4px;}
.agree a{color:var(--wine);text-decoration:underline;}
.btn-primary{width:100%;background:var(--ink);color:#fff;border:none;padding:16px;font-size:13px;letter-spacing:.1em;cursor:pointer;transition:.2s;}
.btn-primary:hover{background:var(--wine);}
.btn-primary:disabled{opacity:.5;cursor:not-allowed;}
.btn-ghost{width:100%;background:#fff;color:var(--ink);border:1px solid var(--ink);padding:14px;font-size:12.5px;letter-spacing:.08em;cursor:pointer;transition:.2s;margin-top:10px;}
.btn-ghost:hover{background:var(--ivory);}
.auth-alt{text-align:center;font-size:13px;color:var(--ink2);margin-top:22px;}
.auth-alt a{color:var(--wine);}
.msg{padding:12px 16px;border-radius:4px;font-size:13px;margin-bottom:16px;display:none;line-height:1.6;}
.msg.err{background:#fbeaea;color:#a32d2d;display:block;}
.msg.ok{background:#eef5ec;color:#3b6d11;display:block;}
.setup-note{background:#fff8ec;border:1px solid #ecdcbf;border-radius:6px;padding:13px 16px;font-size:12px;color:#7a5b1e;margin-bottom:22px;line-height:1.7;}
/* 生年月日 3プルダウン */
.date-row{display:flex;gap:10px;align-items:center;}
.date-row select{flex:1;}
.date-row .unit{font-size:13px;color:var(--ink2);flex:none;}
/* マイページ ダッシュボード */
.welcome{font-size:20px;font-weight:400;letter-spacing:.04em;margin-bottom:6px;}
.perks-card{background:var(--ivory);border-radius:8px;padding:22px 24px;margin-bottom:28px;}
.perks-card .pt{font-size:12px;letter-spacing:.18em;color:var(--wine);margin-bottom:9px;text-transform:uppercase;}
.perks-card p{font-size:13px;color:var(--ink2);line-height:1.95;}
.section-label{font-size:12px;letter-spacing:.2em;color:var(--wine);text-transform:uppercase;margin:0 0 14px;}
.info-card{border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-bottom:22px;background:#fff;}
.info-card .irow{display:flex;padding:14px 20px;border-top:1px solid var(--line);font-size:13.5px;}
.info-card .irow:first-child{border-top:none;}
.info-card .ik{width:150px;flex:none;color:var(--gray);letter-spacing:.04em;}
.info-card .iv{color:var(--ink);word-break:break-all;}
@media(max-width:880px){ .info-card .ik{width:104px;} }

/* フッター */
footer{background:var(--ink);color:#e9e3da;padding:60px 0 30px;}
footer .cols{display:flex;justify-content:space-between;flex-wrap:wrap;gap:36px;margin-bottom:42px;}
footer .logo{color:#fff;font-size:22px;letter-spacing:.2em;margin-bottom:16px;}
footer .lead{font-size:12px;opacity:.7;max-width:360px;line-height:2;font-weight:300;}
footer ul{list-style:none;}
footer .ti{font-size:11px;letter-spacing:.2em;text-transform:uppercase;opacity:.6;margin-bottom:14px;}
footer li a{font-size:12.5px;opacity:.82;line-height:2.3;font-weight:300;}
footer li a:hover{opacity:1;}
footer .copy{text-align:center;font-size:10.5px;opacity:.5;border-top:1px solid rgba(255,255,255,.12);padding-top:26px;letter-spacing:.12em;}

@media(max-width:880px){
  .wrap{padding:0 22px;}
  nav.main,.gh .icons{display:none;}
  .burger{display:flex;position:absolute;left:14px;}
  .gh .wrap{height:54px;justify-content:center;position:relative;}
  .logo{font-size:18px;letter-spacing:.16em;}
  .about .pillars{grid-template-columns:1fr;gap:28px;}
  .sachi .inner2{grid-template-columns:1fr;gap:26px;}
  .legal dl{flex-direction:column;} .legal dt{width:auto;padding-bottom:0;}
  footer .wrap{padding:0 10px;}
  footer .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 6px;}
  footer .brand{grid-column:1 / -1;padding:0 12px;}
  footer .ti{font-size:10px;}
  footer li a{font-size:clamp(8px,2.5vw,11px);line-height:1.95;white-space:nowrap;}
  section{padding:48px 0;}
  .pgrid{grid-template-columns:repeat(2,1fr);gap:18px 16px;}
  .card .name{font-size:12.5px;min-height:40px;}
  .card .btn{font-size:10px;padding:12px 6px;letter-spacing:.04em;}
}

/* ライブ配信ページ Zoom情報 */
.zoominfo{width:100%;max-width:520px;margin:0 auto;text-align:left;}
.zrow{display:block;padding:16px 18px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:12px;}
.zrow .zlabel{display:block;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--wine);margin-bottom:7px;}
.zrow .zval{display:block;font-size:15px;color:var(--ink);word-break:break-all;line-height:1.6;margin-bottom:12px;font-variant-numeric:tabular-nums;}
.zrow .zlink{color:var(--wine);text-decoration:underline;}
.zrow .zcopy{display:inline-block;background:var(--ink);color:#fff;border:none;padding:9px 22px;font-size:12px;letter-spacing:.08em;cursor:pointer;border-radius:5px;transition:.2s;}
.zrow .zcopy:hover{background:var(--wine);}

/* 配信スケジュール（テキスト・ライブ配信ページ用） */
.sch2{max-width:760px;margin:0 auto;}
.sch2-row{display:flex;gap:26px;padding:18px 6px;border-top:1px solid var(--line);align-items:baseline;}
.sch2-row:last-child{border-bottom:1px solid var(--line);}
.sch2-date{flex:none;width:174px;font-size:16px;color:var(--wine);letter-spacing:.02em;}
.sch2-theme{font-size:14px;color:var(--ink2);line-height:1.7;}
@media(max-width:640px){
  .sch2-row{flex-direction:column;gap:4px;}
  .sch2-date{width:auto;font-size:15px;}
}
