/* ===== 共通ベース ===== */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Hiragino Kaku Gothic ProN','Noto Sans JP',Meiryo,sans-serif;color:#1f2937;background:#fff;line-height:1.85;font-size:18px}
a{color:#b91c1c;text-decoration:none}
a:hover{text-decoration:underline}
.container{max-width:860px;margin:0 auto;padding:0 16px}
.pr-label{display:inline-block;background:#6b7280;color:#fff;font-size:13px;padding:2px 8px;margin:12px 0 4px}

/* ===== ヒーロー ===== */
.hero{background:#fff;border:none;border-radius:0;padding:0;margin:12px 0 18px;text-align:center}
.hero img{display:block;width:100%;max-width:593px;height:auto;margin:0 auto;border-radius:6px}
.hero .brand{font-size:32px;font-weight:900;color:#991b1b;letter-spacing:.02em}
.hero .lead{font-size:17px;color:#57534e;margin-top:6px}

/* ===== 見出し ===== */
h1{font-size:27px;font-weight:900;color:#111827;line-height:1.45;border-left:5px solid #0095d9;padding-left:12px;margin:18px 0}
h2{font-size:23px;font-weight:800;color:#0095d9;background:#eaf4fc;padding:10px 16px;border-radius:6px;margin:30px 0 16px}
h3{font-size:20px;font-weight:800;color:#0095d9;border-bottom:2px solid #eaf4fc;padding-bottom:6px;margin:24px 0 12px}

/* ===== キャンペーンボックス ===== */
.campaign-box{background:#fff7ed;border:2px solid #dc2626;border-radius:8px;padding:18px 20px;margin:16px 0}
.campaign-title{font-weight:900;color:#991b1b;margin-bottom:10px}
.campaign-box ul{list-style:none;margin:0 0 12px;padding:0}
.campaign-box li{position:relative;padding:6px 0 6px 26px;font-weight:700;font-size:16px;border-bottom:1px dashed #fecaca}
.campaign-box li:last-child{border-bottom:none}
.campaign-box li:before{content:'✓';position:absolute;left:2px;top:7px;width:17px;height:17px;border-radius:50%;background:#dc2626;color:#fff;font-size:11px;line-height:17px;text-align:center}
.note{font-size:14px;color:#6b7280}

/* ===== CTAボタン ===== */
.cta-btn{display:block;max-width:420px;margin:18px auto;background:linear-gradient(135deg,#b91c1c,#ef4444);color:#fff!important;text-align:center;font-weight:900;font-size:18px;padding:16px 20px;border-radius:999px;box-shadow:0 4px 12px rgba(185,28,28,.25);text-decoration:none!important}
.cta-sub{text-align:center;font-size:14px;color:#6b7280;margin-top:-8px}

/* ===== infoグリッド ===== */
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}
.info-item{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden;text-align:center}
.info-label{display:block;background:#1f2937;color:#fff;font-size:14px;font-weight:800;padding:6px 4px}
.info-value{display:block;background:#fff;font-size:15px;font-weight:800;color:#111827;padding:9px 5px;min-height:44px}

/* ===== フロー ===== */
.flow-list{list-style:none;counter-reset:flow;margin:16px 0}
.flow-step{counter-increment:flow;position:relative;border:1px solid #fecaca;border-radius:8px;padding:14px 14px 14px 58px;margin-bottom:10px;background:#fff}
.flow-step:before{content:counter(flow);position:absolute;left:14px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;background:#C9A227;color:#fff;text-align:center;line-height:32px;font-weight:900;font-size:16px}
.flow-title{font-weight:900;color:#991b1b;margin-bottom:4px;font-size:18px}
.flow-desc{font-size:17px;color:#4b5563}

/* ===== ファイナルボックス ===== */
.final-box{background:#fff7ed;border:2px solid #f59e0b;border-radius:10px;padding:22px 18px;margin:28px 0;text-align:center}
.final-title{font-size:21px;font-weight:900;color:#991b1b;margin-bottom:8px}
.disclaimer{font-size:14px;color:#6b7280;border-top:1px solid #e5e7eb;padding-top:12px;margin:24px 0}

/* ===== フッター ===== */
.site-footer{background:#1C2340;color:#ccc;text-align:center;padding:20px 16px;font-size:14px;margin-top:40px}
.site-footer a{color:#fff}
.site-footer nav{margin-bottom:8px;display:flex;justify-content:center;gap:20px}

/* ===== ファーストビューボタン ===== */
.hero-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.hero-btn-web,.hero-btn-tel{display:block;text-align:center;font-weight:900;font-size:17px;padding:16px 8px;border-radius:8px;text-decoration:none!important;line-height:1.35}
.hero-btn-web{background:#f5c400;color:#222!important;box-shadow:0 3px 8px rgba(200,160,0,.3)}
.hero-btn-web:hover{background:#e0b200;text-decoration:none!important}
.hero-btn-tel{background:#2e7d32;color:#fff!important;box-shadow:0 3px 8px rgba(46,125,50,.3)}
.hero-btn-tel:hover{background:#1b5e20;text-decoration:none!important}

/* ===== キャンペーン見出し（all.html） ===== */
.campaign-heading{position:relative;padding:6px;margin:24px 0 0;text-align:center;border-radius:2px;background-image:linear-gradient(-45deg,#3498db 25%,rgba(52,152,219,.1) 25%,rgba(52,152,219,.1) 50%,#3498db 50%,#3498db 75%,rgba(52,152,219,.1) 75%);background-size:10px 10px}
.campaign-heading-inner{background:#fff;padding:10px}
.campaign-heading-sub{font-size:.95em;font-weight:700;color:#3498db;margin:5px 0}
.campaign-heading-main{font-size:1.5em;font-weight:700;color:#3498db;margin:5px 0;line-height:1.25}

/* ===== アピールテキスト（all.html） ===== */
.appeal-box{margin:12px 0;font-size:18px;line-height:1.85}
.appeal-box p{margin:0 0 10px}
.appeal-box p:last-child{margin:0}
.appeal-box .highlight{color:#b91c1c;font-size:19px}

/* ===== 地図（all.html） ===== */
#rintosullmap{width:100%;height:520px;background:#f3f4f6}
.map_custmomize{font-size:15px;line-height:1.6}
.map_custmomize a{color:#b91c1c;font-weight:700}

/* ===== アコーディオン（all.html） ===== */
.store-accordion{margin:8px 0 24px}
.store-accordion details{border-bottom:1px solid #f3f4f6}
.store-accordion details > summary{
  list-style:none;cursor:pointer;padding:12px 12px 12px 30px;position:relative;
  font-weight:700;font-size:16px;color:#374151;background:#fafafa;
  user-select:none;
}
.store-accordion details > summary::-webkit-details-marker{display:none}
.store-accordion details > summary::before{
  content:'▶';position:absolute;left:8px;top:50%;transform:translateY(-50%);
  font-size:11px;color:#991b1b;transition:transform .2s;
}
.store-accordion details[open] > summary::before{transform:translateY(-50%) rotate(90deg)}
.store-accordion details details > summary{padding-left:46px;font-size:15px;background:#fff;font-weight:600}
.store-accordion details details > summary::before{left:24px}
.store-accordion details details details > summary{padding-left:62px;font-size:14px;font-weight:500;color:#4b5563}
.store-accordion details details details > summary::before{left:40px}
.store-list{list-style:none;padding:4px 0 4px 64px;margin:0}
.store-list li{border-bottom:1px solid #f9fafb}
.store-list li a{display:block;padding:9px 8px;font-size:15px;color:#374151}
.store-list li a:hover{background:#fff7ed;color:#b91c1c;text-decoration:none}
.store-accordion h3{font-size:17px;font-weight:800;color:#991b1b;border-bottom:2px solid #fecaca;padding-bottom:6px;margin:12px 0 8px}
.accordion-intro{font-size:15px;color:#6b7280;margin:0 0 10px}
#accordion-loading{text-align:center;padding:20px;color:#9ca3af;font-size:16px}

/* ===== 金額ハイライトアニメーション（all.html） ===== */
@keyframes highlight-sweep{from{background-size:0% 40%}to{background-size:100% 40%}}
#gold-price{
  background-image:linear-gradient(transparent 62%, rgba(255,220,0,0.7) 62%);
  background-repeat:no-repeat;
  background-size:0% 40%;
  background-position:left bottom;
  display:inline-block;
}
#gold-price.is-highlighted{
  animation:highlight-sweep 0.9s cubic-bezier(0.4,0,0.2,1) forwards;
}

/* ===== showcase ===== */
.showcase{border:2px solid #e0e0e0;border-radius:10px;padding:16px;margin:20px 0}
.showcase.no1{border-color:#C9A227;background:#FFFDE7}
.no1-badge{display:inline-block;background:#C9A227;color:#fff;font-size:13px;font-weight:700;padding:3px 10px;border-radius:20px;margin-bottom:8px}
.showcase-top{display:flex;gap:20px;align-items:flex-start;margin-bottom:14px}
.showcase-img-large{width:45%;flex-shrink:0;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:14px;display:flex;align-items:center;justify-content:center;min-height:110px}
.showcase.no1 .showcase-img-large{border-color:#C9A227}
.showcase-img-large img{width:100%;height:auto;max-height:110px;object-fit:contain}
.showcase-right{flex:1;min-width:0}
.showcase-rating{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.rating-label{font-size:13px;color:#888;font-weight:700}
.showcase-right h3{margin:0 0 6px;border:none;padding:0;font-size:17px}
.showcase-right p{font-size:18px;margin:0 0 8px}
.star-rating{color:#FFD700;font-size:22px;letter-spacing:2px;line-height:1}
.feature-list{list-style:none;padding:0;margin:8px 0}
.feature-list li{font-size:18px;padding:3px 0;padding-left:1.2em;position:relative}
.feature-list li::before{content:'✓';color:#C9A227;font-weight:700;position:absolute;left:0}
.spec-grid{display:flex;flex-wrap:wrap;gap:6px;padding-top:12px;border-top:1px solid #ddd;margin-top:4px}
.showcase.no1 .spec-grid{border-top-color:#C9A227}
.spec-item{flex:1;min-width:calc(33.3% - 6px);border-radius:6px;overflow:hidden;border:1px solid #ddd;text-align:center}
.spec-label{background:#1C2340;color:#fff;font-size:14px;font-weight:700;padding:6px 4px;display:block}
.spec-value{font-size:14px;font-weight:700;color:#1C2340;padding:8px 4px;display:block;line-height:1.4;background:#fff}
.ota-swiper-outer{display:flex;align-items:center;gap:10px;margin:12px 0 0}
.ota-nav{flex-shrink:0;width:40px;height:40px;border-radius:50%;border:2px solid #1C2340;background:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;padding:0}
.ota-nav:hover{background:#1C2340}
.ota-nav:hover svg{stroke:#fff}
.ota-nav svg{width:16px;height:16px;stroke:#1C2340;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round;display:block;transition:stroke .2s}
.ota-swiper-outer .swiper{flex:1;border-radius:8px;overflow:hidden;min-width:0}
.ota-pagination{display:flex;justify-content:center;gap:6px;margin:10px 0 16px}
.ota-dot{width:8px;height:8px;border-radius:50%;background:#ddd;cursor:pointer;border:none;padding:0;transition:all .25s}
.ota-dot.is-active{background:#C9A227;width:22px;border-radius:4px}
.review-block{background:#fff7cc;border:3px solid #C9A227;border-radius:8px;padding:16px;margin:14px 0}
.review-block h4{color:#8B6914;font-size:17px;margin-bottom:8px;font-weight:800}
.review-item{display:flex;gap:10px;align-items:flex-start;margin:8px 0}
.review-item img{width:48px;height:48px;border-radius:0;object-fit:cover;flex-shrink:0}
.review-text{font-size:17px;background:#fff;border-radius:6px;padding:10px 12px;flex:1}
.reviewer{font-size:13px;color:#888;margin-top:4px}
.review-hl{background:linear-gradient(transparent 55%, rgba(255,235,0,0.75) 55%);font-weight:700}
.bold-red{color:#c0392b;font-weight:700}

/* ===== 口コミ（kuchikomi、アバターなしタイトル型） ===== */
.kuchikomi{background:#fff7cc;border:2px solid #C9A227;border-radius:8px;padding:14px 16px;margin:12px 0}
.kuchikomi-title{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-weight:800;color:#8B6914;font-size:16px}
.kuchikomi-title img{width:22px;height:22px;flex-shrink:0}
.kuchikomi-contents p{font-size:16px;margin:0 0 6px;color:#333}
.kuchikomi-note{font-size:10px;color:gray;text-align:right;margin-top:4px}

/* ===== 店舗詳細ページ固有（detail.html） ===== */
.back-link{display:inline-block;margin:12px 0;font-size:13px;color:#374151}
.back-link:before{content:'← '}
.store-card{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff;margin:16px 0}
.map-wrap{position:relative;width:100%;aspect-ratio:4/3;background:#f3f4f6}
.map-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.store-table{width:100%;border-collapse:collapse;font-size:14px}
.store-table th,.store-table td{border-bottom:1px solid #e5e7eb;padding:11px 14px;text-align:left;vertical-align:top}
.store-table th{width:30%;background:#fff7ed;color:#991b1b;font-weight:800;white-space:nowrap}
.store-table tr:last-child th,.store-table tr:last-child td{border-bottom:none}

/* ===== レスポンシブ ===== */
@media(max-width:600px){
  h1{font-size:23px}
  h2{font-size:20px}
  .hero .brand{font-size:28px}
  .store-table th{width:36%;font-size:13px}
  .store-table td{font-size:13px}
  .info-grid{grid-template-columns:repeat(2,1fr)}
  #rintosullmap{height:70vw;min-height:280px}
  .showcase-top{flex-direction:column}
  .showcase-img-large{width:100%;min-height:80px}
  .spec-item{min-width:calc(50% - 6px)}
}
