/* ===== ReBoom Design System tokens ===== */
:root{
  --rb-main:#1b1f2b;       /* メインカラー（ダークチャコール＝バナーと統一） */
  --rb-main-dark:#0e1118;  /* ホバー用の濃色 */
  --rb-gold:#b08d57;       /* シャンパンゴールド（高級アクセント） */
  --rb-gold-dark:#8f6f3e;
  --rb-text:#22252e;       /* 本文テキスト */
  --rb-sub:#6a6a6a;        /* サブテキスト */
  --rb-navy:#11121a;       /* 濃紺/チャコール(フッター等) */
  --rb-bg:#ffffff;         /* 背景 */
  --rb-line:#ececec;
  --rb-grade:#efe6d6;      /* 中古グレード badge bg（ベージュ） */
  --rb-grade-tx:#8f6f3e;
  --rb-green:#5fa83c;      /* NEW */
  --rb-gray:#8a8a8a;       /* SOLD OUT */
  --rb-accent:linear-gradient(90deg,#b08d57,#e0c79a,#b08d57);
  --rb-radius:0;
  --rb-shadow:0 4px 16px rgba(0,0,0,0.06);
  --rb-shadow-card:0 6px 20px rgba(0,0,0,0.07);
  /* reboom.jp と同じく全体を Noto Sans JP に統一（--serif は強調・数値用の重めウェイト） */
  --serif:'Noto Sans JP',sans-serif;
  --sans:'Noto Sans JP',sans-serif;
  --maxw:1320px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--sans);
  color:var(--rb-text);
  background:#fff;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--rb-main);outline-offset:2px;}
.pcard:focus-visible{outline-offset:4px;}
img,svg{display:block;}
button{font-family:inherit;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

/* ===== Top accent strip ===== */
.top-accent{height:4px;background:var(--rb-accent);}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--rb-line);}
.header-inner{display:flex;align-items:center;gap:28px;height:72px;}
.logo{display:flex;align-items:center;gap:8px;cursor:pointer;flex:0 0 auto;}
.logo .name{font-family:var(--serif);font-weight:700;font-size:23px;color:var(--rb-main);letter-spacing:.4px;}
.logo-img{height:38px;width:auto;display:block;}
.main-nav{display:flex;align-items:center;gap:26px;flex:0 0 auto;}
.nav-link{font-size:14px;font-weight:500;color:var(--rb-text);cursor:pointer;padding:6px 0;position:relative;transition:.15s;}
.nav-link{letter-spacing:.08em;}
.nav-link:hover{color:var(--rb-gold);}
.nav-link.active{color:var(--rb-gold-dark);font-weight:700;}
.header-search{flex:1;max-width:380px;position:relative;}
.header-search input{width:100%;border:1px solid #e0e0e0;background:#f6f6f7;border-radius:0;padding:10px 16px 10px 40px;font-family:var(--sans);font-size:13.5px;color:var(--rb-text);outline:none;transition:.15s;}
.header-search input:focus{border-color:var(--rb-main);background:#fff;}
.header-search .s-ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--rb-sub);display:flex;pointer-events:none;}
.header-icons{display:flex;align-items:center;gap:6px;flex:0 0 auto;margin-left:auto;}
.icon-btn{position:relative;width:42px;height:42px;border:0;background:none;border-radius:99px;display:flex;align-items:center;justify-content:center;color:var(--rb-text);cursor:pointer;transition:.15s;}
.icon-btn:hover{background:#f4f4f5;color:var(--rb-main);}
.icon-btn .lbl{display:none;}
.cart-badge{position:absolute;top:5px;right:5px;min-width:17px;height:17px;padding:0 4px;background:var(--rb-main);color:#fff;border-radius:99px;font-family:var(--serif);font-weight:700;font-size:10px;display:flex;align-items:center;justify-content:center;border:1.5px solid #fff;}

/* sub category bar */
.subnav{background:#fafafa;border-bottom:1px solid var(--rb-line);}
.subnav-inner{display:flex;align-items:center;gap:24px;height:46px;font-size:13px;}
.subnav a{color:var(--rb-sub);cursor:pointer;transition:.15s;}
.subnav a{letter-spacing:.06em;}
.subnav a:hover{color:var(--rb-gold);}
.subnav .sep{color:#d8d8d8;}

/* ===== Hero カルーセル ===== */
.hero-carousel{position:relative;overflow:hidden;background:#fff;padding:14px 0;}
.hc-viewport{overflow:hidden;}
.hc-track{display:flex;}
.hc-slide{padding:0 8px;box-sizing:border-box;cursor:pointer;}
/* ステージ：CSSの濃紺グラデを背景に持つ枠。高さはaspect-ratioが決める。
   商品画像はscreen合成で背景に溶かし、テキストはHTMLで重ねる（WATCHNIAN方式） */
.hc-stage{position:relative;overflow:hidden;isolation:isolate;border-radius:22px;
  aspect-ratio:2.5/1;
  opacity:.45;transition:opacity .6s ease;}
.hc-slide.hc-active .hc-stage{opacity:1;}
/* グラデは要素にする（背景だと分離グループ内でscreen合成できないため） */
.hc-bg{position:absolute;inset:0;z-index:0;
  background:radial-gradient(95% 130% at 30% 50%, #2a2c34 0%, #16171d 58%, #0c0d11 100%);}
/* 商品画像はアルファキー済みPNG（明るい部分=不透明/暗い背景=透明）。
   通常合成でグラデに自然に溶ける＝ブレンドモード不要で確実 */
.hc-product{position:absolute;top:50%;right:2%;transform:translateY(-50%);
  width:46%;max-width:560px;max-height:88%;height:auto;
  object-fit:contain;object-position:center right;
  pointer-events:none;z-index:1;}
.hc-content{position:absolute;left:0;top:0;bottom:0;width:58%;
  display:flex;flex-direction:column;justify-content:center;
  padding:0 0 0 clamp(36px,4vw,72px);z-index:2;}
.hc-content::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg, rgba(12,13,17,.8) 0%, rgba(12,13,17,.2) 45%, rgba(12,13,17,0) 64%);}
.hc-center .hc-content{width:100%;align-items:center;text-align:center;padding:0 6%;}
.hc-center .hc-content::before{display:none;}
.hc-rule{display:block;width:48px;height:1px;background:#b08d57;opacity:.9;margin-bottom:20px;}
.hc-center .hc-rule{margin-left:auto;margin-right:auto;}
.hc-label{font-family:'Cormorant Garamond',serif;font-weight:600;
  font-size:clamp(13px,1vw,15px);letter-spacing:.42em;text-transform:uppercase;color:#b08d57;margin-bottom:18px;}
.hc-headline{margin:0;font-family:'Noto Serif JP','Noto Sans JP',serif;font-weight:600;
  font-size:clamp(30px,2.8vw,42px);line-height:1.34;letter-spacing:.005em;color:#fff;
  text-shadow:0 2px 16px rgba(0,0,0,.5);word-break:keep-all;}
.hc-line{display:block;}
.hc-line.accent{color:#c9a96a;}
.hc-sub{margin:18px 0 0;font-family:'Noto Sans JP',sans-serif;font-weight:400;
  font-size:clamp(15px,1.15vw,17px);line-height:1.85;letter-spacing:.02em;color:#cfd0d6;max-width:30em;}
.hc-center .hc-sub{max-width:none;}
.hc-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;background:rgba(0,0,0,.28);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s;opacity:0;z-index:2;}
.hero-carousel:hover .hc-arrow{opacity:1;}
.hc-arrow:hover{background:rgba(0,0,0,.5);}
.hc-arrow.l{left:16px;}
.hc-arrow.r{right:16px;}
/* aspect-ratio非対応の古い端末向けフォールバック */
@supports not (aspect-ratio:1/1){ .hc-stage{height:380px;} }
/* タブレット（621〜1199px） */
@media(min-width:621px) and (max-width:1199px){
  .hc-stage{aspect-ratio:1.7/1;}
  .hc-product{width:54%;right:-3%;max-height:90%;}
  .hc-content{width:58%;padding:0 4vw 0 6vw;}
  .hc-headline{font-size:clamp(30px,4.5vw,42px);}
}
@media(max-width:620px){
  @supports not (aspect-ratio:1/1){ .hc-stage{height:140vw;} }
}

/* ===== Buttons ===== */
.btn{font-family:var(--sans);font-weight:700;border-radius:var(--rb-radius);cursor:pointer;border:1.5px solid transparent;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.15s;padding:14px 24px;}
.btn-block{width:100%;}
.btn-primary{background:var(--rb-main);color:#fff;}
.btn-primary:hover{background:var(--rb-main-dark);}
.btn-secondary{background:#fff;color:var(--rb-main);border-color:var(--rb-main);}
.btn-secondary:hover{background:#faf7f1;}
.btn.is-disabled,.btn:disabled{background:#cfcfcf;border-color:#cfcfcf;color:#fff;cursor:not-allowed;pointer-events:none;opacity:1;}
.btn-pill{border-radius:0;}
.tlink{color:var(--rb-main);font-weight:700;font-size:14px;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-family:var(--sans);}
.tlink:hover{text-decoration:underline;}

/* ===== Badges ===== */
.badge{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:700;font-size:11.5px;border-radius:0;padding:3px 12px;line-height:1.4;letter-spacing:.3px;}
.badge.osusume{background:var(--rb-main);color:#fff;}
.badge.new{background:var(--rb-green);color:#fff;}
.badge.sold{background:var(--rb-gray);color:#fff;}
.badge.grade{background:var(--rb-grade);color:var(--rb-grade-tx);padding:2px 10px;font-size:11px;}

/* ===== Sections ===== */
.section{padding:54px 0;}
.section.alt{background:#fafafa;}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:26px;}
.section-head h2{font-family:var(--sans);font-weight:700;font-size:26px;margin:0;color:var(--rb-text);}
.section-head .sub{font-size:13px;color:var(--rb-sub);margin-top:6px;}

/* ===== Product grid + card ===== */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px 24px;}
.product-grid.cols-3{grid-template-columns:repeat(3,1fr);}
.pcard{display:flex;flex-direction:column;cursor:pointer;}
.pcard .imgbox{position:relative;background:#f4f4f5;border-radius:0;overflow:hidden;box-shadow:var(--rb-shadow);transition:.18s;}
.pcard:hover .imgbox{box-shadow:0 12px 30px rgba(0,0,0,.12);transform:translateY(-3px);}
.pcard .imgbox .pad{padding:18px;}
.pcard .fav{position:absolute;top:10px;right:10px;width:40px;height:40px;border:0;border-radius:0;background:rgba(255,255,255,.94);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--rb-text);box-shadow:0 2px 6px rgba(0,0,0,.1);transition:.15s;padding:0;}
.pcard .fav:hover{transform:scale(1.08);}
.pcard .fav.on{color:var(--rb-gold-dark);}
.pcard .cbadge{position:absolute;top:10px;left:10px;}
.pcard .brand-nm{font-family:var(--serif);font-weight:700;font-size:13px;letter-spacing:.4px;margin-top:13px;color:var(--rb-text);}
.pcard .item-nm{font-size:13.5px;color:var(--rb-text);margin-top:5px;line-height:1.45;}
.pcard .row-b{display:flex;align-items:center;justify-content:space-between;margin-top:9px;gap:8px;}
.pcard .price{font-family:var(--serif);font-weight:700;font-size:17px;color:var(--rb-text);}

/* ===== 統一セクション見出し（カテゴリー／おすすめ商品／新着商品 共通） ===== */
.sec-title{
  font-family:'Cormorant Garamond',serif;
  font-weight:500;font-size:40px;line-height:1;
  letter-spacing:.12em;text-align:center;color:var(--rb-text);
  margin:0 0 38px;
}
.see-all{text-align:center;margin-top:34px;}
.see-all .tlink{font-size:14px;}

/* ===== Category cards ===== */
/* container 内に収め、おすすめ商品/新着商品のグリッドと左右端を完全一致させる */
.cat-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:30px;
}
.cat-card{
  display:block;text-decoration:none;color:#2b2b2b;
  border:1px solid #dcdcdc;background:#fff;
  transition:box-shadow .3s ease;cursor:pointer;
}
.cat-card:hover{box-shadow:0 10px 30px rgba(0,0,0,.09);}
.cat-img{position:relative;aspect-ratio:1.46/1;overflow:hidden;background:#fff;}
.cat-img .cat-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:22px;transition:transform .5s ease;}
.cat-card:hover .cat-img .cat-photo{transform:scale(1.045);}
.cat-img .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;transition:transform .5s ease;}
.cat-card:hover .cat-img .ph{transform:scale(1.045);}
.cat-img .ph svg{width:46%;height:46%;opacity:.9;}
.cat-img .tag{
  position:absolute;bottom:12px;right:14px;
  font-family:'Cormorant Garamond',monospace;font-size:11px;letter-spacing:.18em;
  color:rgba(43,43,43,.45);text-transform:uppercase;
}
/* tonal luxe placeholder backgrounds (echo of original palette) */
.ph.watch  {background:linear-gradient(135deg,#e3e8ee 0%,#c5cdd8 100%);}
.ph.bag    {background:linear-gradient(135deg,#f3dbd7 0%,#e4b1ab 100%);}
.ph.jewel  {background:linear-gradient(135deg,#e6e1d6 0%,#cdc5b4 100%);}
.cat-label{
  border-top:1px solid #dcdcdc;
  text-align:center;
  font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:22px;letter-spacing:.2em;color:#2b2b2b;
  padding:13px 10px;
}
@media(max-width:1100px){
  .cat-grid{grid-template-columns:1fr;gap:24px;}
}
@media(max-width:620px){
  .sec-title{font-size:32px;}
}

/* ===== Breadcrumb ===== */
.crumbs{font-size:12.5px;color:var(--rb-sub);padding:22px 0 0;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.crumbs a{cursor:pointer;}
.crumbs a:hover{color:var(--rb-main);}
.crumbs .sep{color:#cfcfcf;}

/* ===== Page head ===== */
.page-head{padding:10px 0 22px;}
.page-head h1{font-family:var(--sans);font-weight:700;font-size:32px;margin:6px 0 6px;}
.page-head .count{font-size:13px;color:var(--rb-sub);}

/* ===== List layout (sidebar + grid) ===== */
.list-layout{display:grid;grid-template-columns:236px 1fr;gap:36px;padding-bottom:70px;align-items:start;}
.filter-side{position:sticky;top:96px;}
.filter-card{border:1px solid var(--rb-line);border-radius:0;padding:20px;}
.filter-card h4{margin:0 0 14px;font-size:14px;font-weight:700;display:flex;align-items:center;gap:8px;}
.filter-group{padding:16px 0;border-top:1px solid var(--rb-line);}
.filter-group:first-of-type{border-top:0;padding-top:4px;}
.filter-group .gt{font-size:13px;font-weight:700;margin-bottom:11px;}
.filter-opt{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--rb-text);padding:5px 0;cursor:pointer;}
.filter-opt input{accent-color:var(--rb-main);width:15px;height:15px;cursor:pointer;}
.filter-opt:hover{color:var(--rb-main);}
.brand-select{position:relative;}
.brand-select select{appearance:none;-webkit-appearance:none;width:100%;background:#fff;border:1px solid #d8d8d8;border-radius:var(--rb-radius);padding:10px 34px 10px 12px;font-size:13px;font-family:var(--sans);color:var(--rb-text);cursor:pointer;}
.brand-select select:focus{outline:none;border-color:var(--rb-main);}
.brand-select .chev{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--rb-sub);display:flex;}
.list-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:14px;}
.list-toolbar .res{font-size:13px;color:var(--rb-sub);}
.sort-select{position:relative;}
.sort-select select{appearance:none;-webkit-appearance:none;background:#fff;border:1px solid #d8d8d8;border-radius:var(--rb-radius);padding:10px 38px 10px 16px;font-size:13.5px;font-family:var(--sans);color:var(--rb-text);cursor:pointer;}
.sort-select .chev{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--rb-sub);display:flex;}

/* ===== Detail ===== */
.detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:54px;padding:30px 0 24px;align-items:start;}
.detail-gallery{position:sticky;top:96px;}
.main-img{position:relative;background:#f4f4f5;border-radius:0;overflow:hidden;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;}
.main-img .inner{width:72%;height:72%;}
.detail-info .brand{font-family:var(--serif);font-weight:700;font-size:15px;letter-spacing:.5px;color:var(--rb-sub);}
.detail-info h1{font-family:var(--sans);font-weight:700;font-size:28px;margin:8px 0 14px;line-height:1.4;}
.detail-info .dbadges{display:flex;gap:8px;margin-bottom:18px;}
.detail-info .price-lg{color:var(--rb-main);font-family:var(--serif);font-weight:700;font-size:34px;margin:0 0 4px;}
.detail-info .price-lg .tax{font-family:var(--sans);font-size:14px;color:var(--rb-text);font-weight:400;margin-left:6px;}
.sim-link{width:100%;display:flex;align-items:center;justify-content:space-between;background:#fff;border:1px solid #d8d8d8;border-radius:var(--rb-radius);padding:14px 16px;font-size:13.5px;font-family:var(--sans);color:var(--rb-text);cursor:pointer;margin:22px 0 0;transition:.15s;}
.sim-link:hover{border-color:var(--rb-main);color:var(--rb-main);}
.qty-row{display:flex;align-items:center;gap:14px;margin:22px 0 16px;}
.qty-row .ql{font-size:13.5px;color:var(--rb-sub);}
.stepper{display:inline-flex;align-items:center;border:1px solid #d8d8d8;border-radius:var(--rb-radius);overflow:hidden;}
.stepper button{width:40px;height:40px;background:#fff;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--rb-sub);}
.stepper button:hover{background:#f6f6f6;color:var(--rb-main);}
.stepper .v{width:44px;text-align:center;font-size:15px;font-family:var(--serif);font-weight:700;}
.detail-actions{display:flex;flex-direction:column;gap:12px;margin-top:6px;}
.detail-actions .btn{width:100%;padding:16px;}
.spec{margin-top:34px;}
.spec h3{font-size:17px;font-weight:700;margin:0 0 14px;}
.spec p{font-size:13.5px;line-height:1.95;color:var(--rb-text);margin:0 0 18px;}
.spec-table{width:100%;border-collapse:collapse;font-size:13px;}
.spec-table th,.spec-table td{text-align:left;padding:11px 14px;border:1px solid var(--rb-line);}
.spec-table th{background:#fafafa;color:var(--rb-sub);font-weight:700;width:34%;}

/* ===== Cart ===== */
.reserved-block{margin:8px 0 28px;padding-bottom:24px;border-bottom:1px solid var(--rb-line);}
.reserved-block .block-title{font-size:18px;font-weight:700;margin:0 0 14px;}
.cart-layout{display:grid;grid-template-columns:1fr 360px;gap:40px;padding:14px 0 70px;align-items:start;}
.cart-items{display:flex;flex-direction:column;gap:0;}
.cart-item{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--rb-line);}
.cart-item:first-child{border-top:1px solid var(--rb-line);}
.cart-item .ci-img{width:120px;height:120px;flex:0 0 auto;background:#f4f4f5;border-radius:0;overflow:hidden;padding:12px;}
.cart-item .ci-body{flex:1;min-width:0;}
.cart-item .ci-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.cart-item .ci-brand{font-family:var(--serif);font-weight:700;font-size:14px;letter-spacing:.3px;}
.cart-item .ci-name{font-size:14px;margin:5px 0 8px;}
.cart-item .ci-price{font-family:var(--serif);font-weight:700;font-size:18px;}
.cart-item .ci-foot{display:flex;align-items:center;justify-content:space-between;margin-top:14px;}
.cart-item .rm{background:none;border:0;color:var(--rb-sub);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.cart-item .rm:hover{color:var(--rb-main);}
.cart-fav{cursor:pointer;color:var(--rb-text);}
.cart-fav.on{color:var(--rb-main);}
.summary-box{border:1px solid var(--rb-line);border-radius:0;padding:24px;box-shadow:var(--rb-shadow);position:sticky;top:96px;}
.summary-box h3{margin:0 0 18px;font-size:17px;font-weight:700;}
.sum-row{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;font-size:15px;}
.sum-row .lbl{color:var(--rb-sub);font-size:15px;}
.sum-row .val{font-family:var(--serif);font-weight:700;font-size:17px;}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:6px;}
.sum-total .lbl{font-weight:700;font-size:17px;}
.sum-total .val{color:var(--rb-main);font-family:var(--serif);font-weight:700;font-size:26px;}
.sum-total .tax{font-family:var(--sans);font-size:12px;color:var(--rb-text);font-weight:400;margin-left:5px;}
.summary-box hr{border:0;border-top:1px solid var(--rb-line);margin:14px 0;}
.empty{padding:80px 20px;text-align:center;color:var(--rb-sub);font-size:15px;line-height:1.9;}
.empty-state{padding:70px 20px;text-align:center;}
.empty-state .empty-title{font-size:17px;font-weight:700;color:var(--rb-text);margin:0 0 8px;}
.empty-state .empty-sub{font-size:13.5px;color:var(--rb-sub);margin:0 0 22px;line-height:1.8;}
.clear-search{color:var(--rb-main);cursor:pointer;text-decoration:underline;font-weight:600;}

/* ===== Checkout ===== */
.checkout-layout{display:grid;grid-template-columns:1fr 360px;gap:40px;padding:8px 0 70px;align-items:start;}
.stepper-bar{display:flex;align-items:flex-start;max-width:560px;margin:18px 0 36px;}
.step{display:flex;flex-direction:column;align-items:center;gap:8px;flex:0 0 auto;}
.step .num{width:34px;height:34px;border-radius:99px;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:14px;background:#fff;color:#9a9a9a;border:1.5px solid #d3d3d3;}
.step.done .num,.step.cur .num{background:var(--rb-main);color:#fff;border:0;}
.step .lab{font-size:12px;color:var(--rb-sub);}
.step.cur .lab{color:var(--rb-text);font-weight:700;}
.step-line{flex:1;height:2px;background:#dcdcdc;margin-top:16px;}
.step-line.done{background:var(--rb-main);}
.form-section{margin-bottom:30px;}
.form-section h2{font-size:19px;font-weight:700;margin:0 0 6px;}
.form-section .hint{font-size:13px;color:var(--rb-sub);margin:0 0 14px;}
.radio-row{display:flex;align-items:center;gap:11px;cursor:pointer;padding:8px 0;}
.radio-dot{width:20px;height:20px;border-radius:99px;border:1.5px solid #c4c4c4;background:#fff;flex:0 0 auto;transition:.12s;}
.radio-row.on .radio-dot{border:6px solid var(--rb-main);}
.radio-row .rl{font-size:14.5px;}
.addr-box{border:1px solid #d8d8d8;border-radius:var(--rb-radius);padding:16px 18px;margin:10px 0 6px 31px;font-size:13.5px;line-height:1.8;}
.pay-list{border:1px solid var(--rb-line);border-radius:0;overflow:hidden;}
.pay-row{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--rb-line);}
.pay-row:last-child{border-bottom:0;}
.card-chips{display:flex;gap:6px;}
.card-chip{width:40px;height:25px;border-radius:0;background:#fff;border:1px solid #e2e2e2;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:9px;box-shadow:0 1px 2px rgba(0,0,0,.06);}
.mini-item{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--rb-line);}
.mini-item:last-of-type{border-bottom:0;}
.mini-item .mi-img{width:52px;height:52px;background:#f4f4f5;border-radius:0;overflow:hidden;padding:5px;flex:0 0 auto;}
.mini-item .mi-nm{font-size:12.5px;line-height:1.4;}
.mini-item .mi-pr{font-family:var(--serif);font-weight:700;font-size:13px;margin-left:auto;}

/* completion */
.complete{text-align:center;padding:70px 20px 90px;max-width:560px;margin:0 auto;}
.complete .chk{width:84px;height:84px;border-radius:99px;background:#eaf6e3;color:var(--rb-green);display:flex;align-items:center;justify-content:center;margin:0 auto 26px;}
.complete h1{font-size:26px;margin:0 0 14px;}
.complete p{color:var(--rb-sub);font-size:14px;line-height:1.9;margin:0 0 8px;}
.complete .obox{border:1px solid var(--rb-line);border-radius:0;padding:20px;margin:28px 0;text-align:left;font-size:13.5px;line-height:2;}

/* ===== MyPage ===== */
.order-card{border:1px solid var(--rb-line);border-radius:0;padding:20px;box-shadow:var(--rb-shadow);}
.order-card .oc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;}
.order-card .oc-meta{font-size:13px;line-height:2;color:var(--rb-text);}
.order-card .oc-meta b{color:var(--rb-sub);font-weight:700;}
.order-card .ostatus{background:#eaf6e3;color:#3f7e22;font-size:11.5px;font-weight:700;border-radius:0;padding:4px 12px;}
.order-card .oc-items{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap;}
.order-card .oc-items .oi{width:72px;height:72px;border-radius:0;overflow:hidden;background:#f4f4f5;border:1px solid var(--rb-line);padding:7px;}
.resv-actions{margin-top:18px;padding-top:16px;border-top:1px solid var(--rb-line);display:flex;justify-content:flex-end;}
.btn-cancel{border:1px solid #c4c4c4;background:#fff;color:var(--rb-sub);font-size:13px;font-weight:600;padding:9px 20px;border-radius:0;cursor:pointer;transition:.12s;}
.btn-cancel:hover{border-color:#c0392b;color:#c0392b;background:#fdf3f2;}

/* ===== Static document pages (FAQ / Contact / 特商法 / Privacy) ===== */
.doc{max-width:880px;margin:0 auto;padding:4px 0 84px;}
.lead{font-size:14.5px;line-height:1.95;color:var(--rb-sub);margin:0 0 28px;}
.doc h2{font-size:18px;font-weight:700;margin:34px 0 12px;padding-bottom:9px;border-bottom:1px solid var(--rb-line);}
.doc h2:first-of-type{margin-top:0;}
.doc p{font-size:14px;line-height:1.95;margin:0 0 14px;color:var(--rb-text);}
.doc ul{margin:0 0 16px;padding-left:1.4em;}
.doc li{font-size:14px;line-height:1.9;margin-bottom:6px;color:var(--rb-text);}
.doc .updated{font-size:12.5px;color:var(--rb-sub);margin-top:34px;text-align:right;}

/* info table (特商法表記) */
.info-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.info-table th,.info-table td{text-align:left;padding:15px 18px;border:1px solid var(--rb-line);vertical-align:top;line-height:1.85;}
.info-table th{background:#fafafa;color:var(--rb-text);font-weight:700;width:34%;vertical-align:middle;}

/* FAQ accordion */
.faq-list{display:flex;flex-direction:column;gap:12px;}
.faq-item{border:1px solid var(--rb-line);background:#fff;}
.faq-q{list-style:none;cursor:pointer;display:flex;align-items:center;gap:13px;padding:17px 18px;font-size:14.5px;font-weight:700;color:var(--rb-text);}
.faq-q::-webkit-details-marker{display:none;}
.faq-q .qmark{width:25px;height:25px;flex:0 0 auto;border-radius:99px;background:var(--rb-main);color:#fff;font-family:var(--serif);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;}
.faq-q .faq-qt{flex:1;}
.faq-q .faq-ico{flex:0 0 auto;color:var(--rb-sub);display:flex;transition:transform .2s ease;}
.faq-item[open] .faq-q .faq-ico{transform:rotate(180deg);}
.faq-a{padding:2px 18px 18px 56px;}
.faq-a p{font-size:13.5px;line-height:1.95;color:var(--rb-sub);margin:0;}

/* Contact form */
.contact-wrap{max-width:640px;margin:0 auto;padding-bottom:54px;}
.privacy-note{font-size:12.5px;color:var(--rb-sub);line-height:1.85;margin:4px 0 20px;}
.contact-layout{display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:start;padding-bottom:40px;}
.contact-form .field{margin-bottom:18px;}
.contact-form label{display:block;font-size:13px;font-weight:700;margin-bottom:7px;color:var(--rb-text);}
.contact-form label .req{display:inline-block;color:#fff;background:var(--rb-main);font-size:10px;font-weight:700;border-radius:0;padding:1px 6px;margin-left:8px;vertical-align:middle;}
.contact-form label .opt{display:inline-block;color:var(--rb-sub);background:#eee;font-size:10px;font-weight:700;border-radius:0;padding:1px 6px;margin-left:8px;vertical-align:middle;}

/* reservation-flow bits */
.store-note{font-size:13px;line-height:1.85;color:var(--rb-sub);background:#fafafa;border:1px solid var(--rb-line);border-radius:0;padding:13px 15px;margin:18px 0 4px;}
.store-note b{color:var(--rb-text);}
.ci-tax{font-family:var(--sans);font-size:11px;font-weight:400;color:var(--rb-sub);}
.resv-cap{font-size:12px;color:var(--rb-sub);line-height:1.75;margin:12px 0 0;}
.complete-items{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:0 0 24px;}
.complete-items .oi{width:74px;height:74px;border-radius:0;overflow:hidden;background:#f4f4f5;border:1px solid var(--rb-line);padding:7px;}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;border:1px solid #d8d8d8;border-radius:0;padding:11px 13px;font-family:var(--sans);font-size:14px;color:var(--rb-text);background:#fff;}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:none;border-color:var(--rb-main);}
.contact-form textarea{min-height:150px;resize:vertical;}
.contact-form .agree{display:flex;align-items:flex-start;gap:9px;font-size:13px;font-weight:400;margin:4px 0 18px;}
.contact-form .agree input{width:auto;margin-top:3px;accent-color:var(--rb-main);}
.contact-form .agree a{color:var(--rb-main);text-decoration:underline;cursor:pointer;}
.contact-note{font-size:12px;color:var(--rb-sub);line-height:1.75;margin-top:14px;}
.contact-aside{border:1px solid var(--rb-line);padding:22px;}
.contact-aside h3{font-size:15px;font-weight:700;margin:0 0 14px;}
.contact-aside .ci-row{font-size:13px;line-height:1.8;margin-bottom:11px;color:var(--rb-text);}
.contact-aside .ci-row b{color:var(--rb-sub);font-weight:700;}
.contact-success{border:1px solid var(--rb-line);padding:52px 30px;text-align:center;}
.contact-success .chk{width:74px;height:74px;border-radius:99px;background:#eaf6e3;display:flex;align-items:center;justify-content:center;margin:0 auto 22px;}
.contact-success h2{font-size:21px;margin:0 0 12px;}
.contact-success p{font-size:14px;color:var(--rb-sub);line-height:1.9;margin:0;}
@media(max-width:900px){.contact-layout{grid-template-columns:1fr;}}
@media(max-width:620px){
  .info-table th,.info-table td{display:block;width:100%;}
  .info-table th{border-bottom:0;}
  .faq-a{padding-left:18px;}
}

/* ===== Footer — 古物商許可表記（提供デザインを忠実に再現） ===== */
.footer{
  position:relative;
  background:#152741;
  color:#ffffff;
  padding:28px 24px 18px;
}
/* シャンパンゴールドのアクセントライン */
.footer::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--rb-accent);
}
.footer .inner{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;align-items:center;}

/* 1. license headline */
.footer .license-head{
  font-family:var(--sans);font-weight:500;font-size:19px;color:#ffffff;
  letter-spacing:.42em;text-indent:.42em;text-align:center;line-height:1.4;
  margin-bottom:16px;
}

/* 2. permit box — 中身にちょうど収まる小さめの四角 */
.footer .permit{
  display:inline-block;
  border:1px solid rgba(255,255,255,.28);border-radius:0;
  padding:11px 26px;text-align:center;
  margin-bottom:24px;
}
.footer .permit p{font-size:14px;line-height:1.7;color:#ffffff;letter-spacing:.03em;font-weight:400;}

/* 3. policy links */
.footer .policies{display:flex;align-items:center;justify-content:center;gap:36px;flex-wrap:wrap;margin-bottom:20px;}
.footer .policies a{font-family:var(--sans);font-weight:400;font-size:15px;color:rgba(255,255,255,.78);text-decoration:none;letter-spacing:.04em;transition:color .18s;cursor:pointer;}
.footer .policies a:hover{color:var(--rb-gold);}

/* 4. copyright */
.footer .copy{display:flex;align-items:center;justify-content:center;gap:16px;font-family:var(--serif);font-weight:600;font-size:15px;letter-spacing:.05em;color:#ffffff;margin-bottom:14px;white-space:nowrap;}

@media(max-width:680px){
  .footer{padding:52px 20px 24px;}
  .footer .license-head{font-size:16px;letter-spacing:.28em;text-indent:.28em;margin-bottom:36px;}
  .footer .permit{padding:10px 18px;margin-bottom:22px;}
  .footer .permit p{font-size:12.5px;line-height:1.7;}
  .footer .policies{gap:22px 26px;margin-bottom:44px;}
  .footer .policies a{font-size:14px;}
  .footer .copy{font-size:14px;gap:12px;}
}

/* product img placeholder block */
.pimg{position:relative;width:100%;height:100%;border-radius:inherit;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.pimg-photo{background:#fff;}
.pimg-photo img{width:100%;height:100%;object-fit:contain;display:block;padding:3%;}
.main-img .pimg-photo img{padding:2%;}

/* ===== Responsive ===== */
@media(max-width:1080px){
  .product-grid{grid-template-columns:repeat(3,1fr);}
  .detail-layout{grid-template-columns:1fr 1fr;gap:36px;}
  .cart-layout,.checkout-layout{grid-template-columns:1fr 320px;}
}
@media(max-width:900px){
  .main-nav{display:none;}
  .header-search{max-width:none;}
  .list-layout{grid-template-columns:1fr;}
  .filter-side{position:static;}
  .filter-card{margin-bottom:24px;}
  .detail-layout{grid-template-columns:1fr;}
  .detail-gallery{position:static;}
  .cart-layout,.checkout-layout{grid-template-columns:1fr;}
  .summary-box,.cart-layout .summary-box{position:static;}
  .footer-cols{grid-template-columns:1fr 1fr;}
}
@media(max-width:620px){
  .product-grid,.product-grid.cols-3{grid-template-columns:repeat(2,1fr);gap:20px 14px;}
  .cat-tiles{grid-template-columns:1fr;}
  .section{padding:40px 0;}
  .footer-cols{grid-template-columns:1fr;}
  .cart-item .ci-img{width:90px;height:90px;}
  /* コンテナ余白を詰める */
  .container{padding:0 16px;}
  /* ヒーロー：スマホは縦長(1:1.14)。商品ごとに大きさを個別調整して重なり/はみ出しを防ぐ */
  .hero-carousel{padding:0;}
  .hc-slide{padding:0;}
  .hc-stage{aspect-ratio:1/0.8;border-radius:0;}
  .hc-bg{background:radial-gradient(125% 110% at 72% 42%, #2a2c34 0%, #15161c 55%, #0c0d11 100%);}
  /* 既定（時計）：枠を満たしつつ文字と重ねない */
  .hc-product{width:56%;max-width:none;right:-10%;max-height:96%;}
  /* バッグ：少し小さく・はみ出さないよう右へのはみ出しを抑える */
  .hc-product.hc-p-bag{width:51%;right:-1%;max-height:92%;}
  .hc-content{width:56%;padding:0 4vw 0 6vw;}
  .hc-content::before{background:linear-gradient(100deg, rgba(12,13,17,.85) 0%, rgba(12,13,17,.42) 48%, rgba(12,13,17,0) 78%);}
  .hc-center .hc-content{width:100%;padding:0 8%;}
  .hc-rule{width:30px;margin-bottom:11px;}
  .hc-label{font-size:clamp(10px,2.8vw,12px);letter-spacing:.30em;margin-bottom:11px;}
  .hc-headline{font-size:clamp(19px,5.4vw,25px);line-height:1.42;}
  .hc-sub{font-size:clamp(11px,3.0vw,13px);line-height:1.7;margin-top:12px;max-width:16em;}
  .hc-center .hc-sub{max-width:none;}
  /* 商品カード：価格・名前の縮小と折返し、お気に入りのタップ領域 */
  .pcard .price{font-size:15px;}
  .pcard .item-nm{font-size:12.5px;}
  .pcard .brand-nm{font-size:12px;}
  .pcard .row-b{flex-wrap:wrap;gap:4px;}
  .pcard .fav{width:44px;height:44px;}
  /* セクション見出しの余白調整 */
  .sec-title{font-size:26px;margin-bottom:24px;}
  .section-head h2{font-size:22px;}
  /* サブナビのタップ高さ */
  .subnav-inner{gap:16px;height:48px;}
  .subnav a{padding:14px 0;}
  /* 絞り込みselectのタップ高さ */
  .brand-select select,.sort-select select{padding:13px 34px 13px 12px;}
  /* iOS Safari の自動ズーム防止：入力系は16px以上に */
  .contact-form input,.contact-form select,.contact-form textarea,
  .header-search input,.brand-select select,.sort-select select{font-size:16px;}
  /* サマリー余白 */
  .summary-box{padding:18px;}
  /* フッター：横はみ出し防止 */
  .footer .copy{white-space:normal;flex-wrap:wrap;text-align:center;font-size:12.5px;line-height:1.7;}
  .footer .license-head{font-size:14px;letter-spacing:.16em;text-indent:.16em;}
}
/* スマホ最小幅：ヘッダーを2段にして窮屈さを解消 */
@media(max-width:480px){
  .header-inner{flex-wrap:wrap;height:auto;padding:10px 0;gap:10px;}
  .logo-img{height:30px;}
  .header-search{order:3;flex:1 0 100%;max-width:none;}
  .header-icons{gap:2px;}
  .icon-btn{width:42px;height:42px;}
}
/* タッチ端末ではカルーセル矢印を常時表示（hoverが無いため） */
@media(hover:none){
  .hc-arrow{opacity:1;background:rgba(0,0,0,.4);}
}
/* 絞り込みトグル（PCは非表示、モバイルのみ表示して折りたたみ） */
.filter-toggle{display:none;}
@media(max-width:900px){
  .filter-toggle{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
    padding:13px;border:1px solid var(--rb-main);background:#fff;color:var(--rb-main);
    font-family:var(--sans);font-weight:700;font-size:14px;cursor:pointer;margin-bottom:14px;}
  .filter-card.mobile-collapsed{display:none;}
}
