/* Embedded in Japan Post clone — festival shop + checkout overlays */
.wa-jp-festival{margin:0;padding:0 0 8px;border-bottom:#f2f2f2 5px solid;background:#fff}
.wa-jp-festival .jp-fest-banner{background:linear-gradient(135deg,#b80000,#e60012);color:#fff;padding:16px 16px 18px;text-align:center}
.wa-jp-festival .jp-fest-banner h2{margin:0;font-size:18px;font-weight:900}
.wa-jp-festival .jp-fest-banner p{margin:8px 0 0;font-size:12px;line-height:1.6;opacity:.95}
.wa-jp-festival .jp-fest-badge{display:inline-block;margin-top:10px;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.2);font-size:11px;font-weight:700}
.wa-jp-festival ul.goods_p_ .price_ s{margin-right:4px;color:#999;font-weight:400;text-decoration:line-through}
#gallery .sp_detail_slide{height:auto!important}
#gallery .bx-viewport{height:auto!important;overflow:hidden;touch-action:pan-y}
#gallery .my-gallery{left:0!important;display:flex;transition:transform .35s ease}
#gallery .my-gallery figure{float:none!important;flex:0 0 auto;margin:0}
#gallery .my-gallery figure.bx-clone{display:none!important}
#gallery .my-gallery img{width:100%;height:auto;display:block}
#gallery .bx-pager-link{border:0;padding:0;font-size:0;line-height:0;color:transparent;display:block;cursor:pointer}
.wa-jp-festival .jp-feat-block{padding:20px 16px 10px;border-bottom:#f2f2f2 1px solid}
.wa-jp-festival .jp-feat-block h3{margin:0 0 12px;font-size:16px;font-weight:800;padding-left:10px;border-left:4px solid #c00}
.jp-featured-inject{display:flex;flex-direction:column;gap:14px}
.jp-feat-card{background:#fff;border:1px solid #ddd;border-radius:4px;overflow:hidden;box-shadow:0 0 10px rgba(0,0,0,.08)}
.jp-feat-card img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}
.jp-feat-card .jp-feat-in{padding:12px 12px 14px}
.jp-feat-card h4{margin:0;font-size:14px;font-weight:800;line-height:1.45;color:#333}
.jp-feat-card .jp-feat-detail{margin:6px 0 0;font-size:12px;color:#555;line-height:1.6}
.jp-prices{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-top:10px}
.jp-price-old{color:#999;text-decoration:line-through;font-size:13px}
.jp-price-new{font-size:20px;font-weight:900;color:#c00}
.jp-price-new small{font-size:11px;font-weight:700}
.jp-price-note{width:100%;font-size:10px;color:#666;line-height:1.5}
.jp-btn-buy{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:44px;margin-top:12px;border:0;border-radius:4px;background:#c00;color:#fff;font-size:14px;font-weight:800;cursor:pointer;text-decoration:none}
.jp-feat-card h4 a,.jp-cat-card h4 a{color:inherit;text-decoration:none}
.jp-feat-card .jp-card-teaser{margin:6px 0 0;font-size:12px;color:#666;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jp-detail-body{padding:0 0 12px}
.jp-detail-hero{margin:0 -16px 14px;background:#fff;border-bottom:1px solid #eee}
.jp-detail-hero img{width:100%;display:block;max-height:min(52vh,420px);object-fit:contain;background:#fafafa}
.jp-detail-body h1{margin:0;font-size:17px;font-weight:900;line-height:1.45;color:#222}
.jp-detail-rich{margin:14px 0 0;font-size:13px;line-height:1.75;color:#444}
.jp-detail-rich ul,.jp-detail-rich ol{margin:.5em 0;padding-left:1.3em}
.jp-detail-rich p{margin:.6em 0}
.jp-detail-prices{margin-top:16px;padding:12px;background:#fff;border:1px solid #e8e8e8;border-radius:4px}
.jp-detail-note{margin:10px 0 0;font-size:11px;color:#666;line-height:1.55}
.jp-detail-fallback{margin:0;font-size:13px;line-height:1.7;color:#555}
.jp-catalog-inject{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0}
.jp-catalog-inject .jp-cat-card{width:calc((100% - 15px)/2);margin:0 0 15px;background:#fff;border:#ddd 1px solid;border-radius:0;overflow:hidden}
.jp-catalog-inject .jp-cat-card img{width:100%;display:block;aspect-ratio:1;object-fit:cover}
.jp-catalog-inject .jp-cat-in{padding:8px 8px 12px}
.jp-catalog-inject h4{margin:0;font-size:11px;font-weight:700;line-height:1.35;color:#333}
.jp-catalog-inject .jp-price-new{font-size:16px}
.jp-catalog-inject .jp-btn-buy{height:36px;margin-top:8px;font-size:12px}
.jp-overlay{position:fixed;inset:0;z-index:10050;background:#f2f2f2;overflow:auto;display:none;-webkit-overflow-scrolling:touch;font-family:"Noto Sans JP","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,sans-serif;color:#333}
.jp-overlay.is-on{display:block}
.jp-detail-page.is-on.is-enter{animation:jpDetailIn .38s ease}
@keyframes jpDetailIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.jp-route-overlay{position:fixed;inset:0;z-index:10060;display:none;place-items:center;background:#fff;padding:24px}
.jp-route-overlay.is-on{display:grid}
.jp-route-card{text-align:center;width:min(100%,320px)}
.jp-route-card img{display:block;margin:0 auto 20px}
.jp-route-card p{margin:0;font-size:13px;color:#555;line-height:1.6}
.jp-route-bar{height:4px;margin-top:18px;border-radius:4px;background:#eee;overflow:hidden}
.jp-route-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#c00,#e60012);transition:width .12s linear}
.jp-overlay-inner{max-width:640px;margin:0 auto;padding:12px 16px 100px}
.jp-overlay h2{margin:0 0 8px;font-size:17px;font-weight:800}
.jp-overlay-title{margin:0 0 12px;font-size:15px;font-weight:800;color:#666}
.jp-hint{margin:0 0 12px;font-size:12px;color:#666;line-height:1.55}
.jp-field{margin-top:12px}
.jp-field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:#333}
.jp-field input,.jp-field select{width:100%;height:46px;border:1px solid #ccc;border-radius:3px;padding:0 12px;font-size:16px;font-family:inherit;background:#fff;color:#333}
.jp-field select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='none' stroke='%23666' stroke-width='1.6' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:36px}
.jp-row{display:flex;gap:10px}
.jp-row .jp-field{flex:1;min-width:0}
.jp-postal{display:flex;align-items:center;height:46px;border:1px solid #ccc;border-radius:3px;padding:0 12px;background:#fff}
.jp-postal span{font-weight:700}
.jp-postal input{border:0;flex:1;height:44px;padding-left:8px;font-size:16px}
.jp-field input.is-error,.jp-field select.is-error,.jp-postal.is-error{border-color:#c00;background:#fff8f8}
.jp-err{margin:8px 0 0;font-size:12px;color:#c00;font-weight:700}
.jp-product-mini{display:flex;gap:10px;padding:10px;background:#fff;border:1px solid #e0e0e0;margin-bottom:14px}
.jp-product-mini img{width:64px;height:64px;object-fit:cover;flex:0 0 auto}
.jp-product-mini strong{font-size:13px;line-height:1.4;display:block}
.jp-pay-opt{display:flex;flex-direction:column;gap:10px;margin:12px 16px 0}
.jp-pay-btn{display:flex;align-items:flex-start;gap:12px;text-align:left;padding:16px;border:1px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;font-family:inherit;width:100%}
.jp-pay-btn strong{display:block;font-size:15px;font-weight:700;color:#222}
.jp-pay-copy{min-width:0}
.jp-pay-copy span{display:block;margin-top:4px;font-size:12px;color:#666;line-height:1.55;font-weight:400}
.jp-pay-radio{flex:0 0 auto;width:20px;height:20px;margin-top:2px;border:2px solid #ccc;border-radius:50%;box-sizing:border-box}
.jp-pay-btn--special{border:2px solid #cc0000}
.jp-pay-btn--special .jp-pay-radio{border-color:#cc0000;background:#cc0000;box-shadow:inset 0 0 0 4px #fff}
.jp-pay-tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:3px;background:#cc0000;color:#fff;font-size:10px;font-weight:700;line-height:1.4;vertical-align:1px}
.jp-pay .jp-overlay-inner{padding:0 0 24px}
.jp-pay .jp-product-mini{margin:12px 16px 0;padding:12px;border:0;background:#fff}
.jp-pay .jp-product-mini img{width:72px;height:72px}
.jp-pay .jp-product-mini strong{font-size:14px;font-weight:500}
.jp-ol-back{margin:0 0 10px;padding:0;border:0;background:0;color:#1d3994;font-size:13px;font-weight:700;cursor:pointer}
.jp-ol-dock{position:fixed;left:0;right:0;bottom:0;z-index:10051;background:rgba(242,242,242,.94);border-top:0;padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:none}
.jp-addr .jp-postal:has(input.is-error){border-color:#c00;background:#fff8f8}
.jp-ol-dock.is-on{display:block}
.jp-ol-dock .jp-btn-buy{margin-top:0;height:52px;border-radius:52px;background:#cc0000;font-size:16px;font-weight:700;letter-spacing:.02em}
.jp-addr-bar{position:sticky;top:0;z-index:2;height:52px;display:flex;align-items:center;justify-content:center;background:#fff;border-bottom:1px solid #e6e6e6}
.jp-addr-bar h2{margin:0;font-size:16px;font-weight:700}
.jp-addr-bar .jp-ol-back{position:absolute;left:8px;margin:0;padding:8px;font-weight:500}
.jp-addr .jp-overlay-inner{padding:0 0 108px}
.jp-addr-lead{margin:0;padding:14px 16px 0;font-size:13px;line-height:1.6;color:#666}
.jp-addr-card{margin:12px 0 0;padding:4px 16px 16px;background:#fff}
.jp-addr-card h3{margin:12px 0 0;padding-bottom:10px;border-bottom:1px solid #eee;font-size:15px;font-weight:700}
.jp-addr .jp-field{margin-top:14px}
.jp-addr .jp-field label{font-size:13px;font-weight:500}
.jp-addr .jp-field label em{margin-left:6px;color:#cc0000;font-style:normal;font-size:11px;font-weight:700}
.jp-addr .jp-field input,.jp-addr .jp-field select{height:48px;border:1px solid #ccc;border-radius:4px}
.jp-addr .jp-field input:focus,.jp-addr .jp-field select:focus{outline:none;border-color:#cc0000}
.jp-addr .jp-postal{height:48px;border-radius:4px;border-color:#ccc}
.jp-addr .jp-postal span{color:#333}
.jp-addr .jp-product-mini{margin:12px 16px 0;padding:12px;border:0;border-radius:0;background:#fff}
.jp-addr .jp-product-mini img{width:72px;height:72px}
.jp-addr .jp-product-mini strong{font-size:14px;font-weight:500}
.jp-modal{position:fixed;inset:0;z-index:10060;display:none;align-items:center;justify-content:center;padding:24px 16px;background:rgba(0,0,0,.45)}
.jp-modal.is-open{display:flex}
.jp-modal-card{width:min(100%,420px);background:#fff;border-radius:12px;padding:24px 20px 12px;max-height:88vh;overflow-y:auto;box-shadow:0 12px 40px rgba(0,0,0,.18)}
.jp-modal-card h3{margin:0;font-size:18px;font-weight:700;color:#222;text-align:center}
.jp-modal-card p{margin:14px 0 0;font-size:14px;line-height:1.75;color:#444}
.jp-modal-dl{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:20px 0 0;width:100%;height:48px;padding:0 16px;border:0;border-radius:4px;background:#cc0000;color:#fff;font-size:15px;font-weight:700;letter-spacing:.04em;line-height:1;text-decoration:none;cursor:pointer;white-space:nowrap}
.jp-modal-dl:active{background:#a30000}
.jp-modal-close{margin-top:6px;width:100%;height:40px;border:0;border-radius:0;background:transparent;color:#666;font-size:13px;cursor:pointer}
.jp-wait{position:fixed;inset:0;z-index:10070;display:none;place-items:center;background:rgba(255,255,255,.88)}
.jp-wait.is-open{display:grid}
body.jp-ol-lock{overflow:hidden}
