.gifturl{margin-top: 6px;display: flex;gap: 5px;}
.gifturl input{width: calc(100% - 125px);padding: 6px;border: 1px solid #ccc;border-radius: 4px;margin: 0;}
.gifturl button{width: 120px;padding: .5em 1em; border: none; background-color: #007bff;color: white; border-radius: 4px; cursor: pointer;}

.modal_overlay{display: none;position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.8);z-index: 998;}
.modal_overlay .modal_close{color:  #ffffff;position: absolute;right: 1em;top: 1em;letter-spacing: .2em;}
.modal_overlay .modal_close i{margin-left: 1em;}

.stamp_wrap{width: 100%;max-width: 500px;margin:auto;background: #64C8C3;padding-top: 10px;box-shadow: 0 0 5px rgba(0,0,0,.3);border: 1px solid #ccc;}
.stamp_wrap.off{position: relative;background: linear-gradient(135deg, #dcdcdc, #a9a9a9);}
.stamp_header{background: #F5FF41;padding: 10px;display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: 10px;}
.stamp_header img{width: 180px;}
.stamp_header p{width: calc(100% - 190px);font-size: 1.5em;font-weight: bold;color: #000000;letter-spacing: .1em;}
.stamp_body{padding: 10px;}
.stamp_body ul{display: flex;flex-wrap: wrap;justify-content: center;gap: 10px;}
.stamp_body ul li{display: flex;align-items: center;justify-content: center;position: relative;background: #ffffff;width: 87px;height: 87px;text-align: center;border: 6px solid #F5FF41;border-radius: 10px;}
.stamp_body ul li .num{font-size: 3.5em;font-weight: bold;color: #B9E1E1;}
.stamp_body ul li .stamp_icon{position: absolute;z-index: 2;width: 120%;}
.stamp_body ul li .stamp_icon div{position: relative;z-index: 100;width: 100%;margin: auto;transform: translate(0, 0) scale(1);}
.stamp_body ul li .stamp_icon div.animated_stamp{position: fixed;top: 0;bottom: 0;left: 0;right: 0;animation: bounceIn 1s ease forwards;width: 90vw;height: 90vw;max-width: 400px;max-height: 400px;}
@keyframes bounceIn {0% {transform: translate(0, 0) scale(0.3);opacity: 0;}50% {transform: translate(0, 0) scale(1.2);opacity: 1;}70% {transform: translate(0, 0) scale(0.9);}100% {transform: translate(0, 0) scale(1);}}

.stamp_body ul li .stamp_icon img{opacity: .8;}
.stamp_body ul li .stamp_icon span{color: #D40707;font-weight: bold;position: absolute;top: 50%;left: 50%;z-index: 2;transform: translate(-50%, -50%);width: 100%;font-size: .8em;line-height: 1.2em;  text-shadow:-1px -1px 0 white,1px -1px 0 white,-1px  1px 0 white,1px  1px 0 white,-2px  0px 0 white,2px  0px 0 white,0px -2px 0 white,0px  2px 0 white;}
.stamp_body ul li .stamp_icon.stamp_icon1 span{color: #01a6ff;}
.stamp_body ul li .stamp_icon.stamp_icon2 span{color: #fd8a01;}
.stamp_body ul li .stamp_icon.stamp_icon3 span{color: #ff54a2;}
.stamp_body ul li .stamp_icon.stamp_icon4 span{color: #9283be;}
.stamp_body ul li .stamp_icon.stamp_icon5 span{color: #5DB6A9;}
.stamp_body ul li .stamp_icon.stamp_icon6 span{color: #35a494;}
.stamp_body ul li .stamp_icon .animated_stamp span{font-size: 1.5em;}
.stamp_footer{display: flex;gap: 10px;padding: 10px;justify-content: center;text-align: center;}
.stamp_footer .stamp_camerabtn{width: 100%;}
.stamp_footer .stamp_camerabtn button,.stamp_footer .stamp_camerabtn div{width: 100%;background: #EB1437;font-weight: bold;color: #fff;padding: .3em;border-radius: 8px;box-shadow: 1px 1px 2px rgba(0,0,0,.2);}
.stamp_footer .stamp_camerabtn button{border: none;-webkit-appearance: none;appearance: none;background: #EB1437;font-size: 1.4em;}
.stamp_footer .stamp_camerabtn button span{display: block;font-size: .6em;font-weight: normal;}
.stamp_footer .giftreq_btn{display: flex;align-items: center;justify-content: center;position: relative;cursor: pointer;width: calc(50% - 10px);border-radius: 8px;color: #ffffff;font-weight: bold;background: #EB1437;font-size: 1.2em;padding: .7em .3em;box-shadow: 1px 1px 2px rgba(0,0,0,.2);}
.stamp_footer .giftreq_btn.orange{background: #F58C00;}
.stamp_footer .giftreq_btn.gray{background: #eee;color: #666;box-shadow: none;}
.stamp_footer .giftreq_btn .triangle{position: absolute;left: 1em;font-size: 14px;}
.stamp_footer .giftreq_btn .label {margin: 0 auto;}

.giftreq_list{max-width:100%;margin:0 10px;display:flex;flex-direction:column;gap:10px;}
.giftreq_list .giftreq_box{padding:12px 14px;border:none;border-radius:12px;box-shadow:0 2px 10px rgba(0,0,0,.08);background:#fff;}
.giftreq_list .giftreq_box .date{padding-top:8px;margin-top:8px;text-align:right;font-size:max(12px,.82em);color:#999;border-top:1px dashed #eee;}
.giftreq_list .giftreq_box .date p{margin:0;}
.giftreq_list .status_ico{display:inline-flex;align-items:center;gap:.3em;padding:.25em .7em;border-radius:20px;color:#fff;font-size:max(12px,.82em);font-weight:bold;background:#F49200;margin-bottom:.4em;}
.giftreq_list .status_ico1{background:#00C9B1;}
.giftreq_list .status_ico2{background:#2196F3;}
.giftreq_list .status_ico3{background:#D80600;}

.modal_content{display: none;position: fixed;top: 50%;left: 50%;z-index: 999;transform: translate(-50%, -50%);width: 90%;max-width: 450px;background: #fff;border-radius: 10px;background: #ffffff;}
.modal_content .modal_header{font-size: 1.2em;padding: 10px 10px 6px;font-weight: bold;color: #FF00A1;text-align:center;}
.modal_content .modal_body{padding: 20px 10px;text-align: center;}
.modal_content .modal_body p{color: #ffffff;font-weight: bold;font-size: 1.3em;}
.modal_content .modal_body p:first-child{margin-bottom: 10px;}
.modal_content .modal_body .thumbimg{width: 100%;max-width: 200px;margin: auto;}
.modal_content.modal_annai .modal_body .thumbimg{width: 100%;max-width: 258px;margin: auto;}
.modal_content .modal_body .thumbimg img{display: block;width: 100%;}
.modal_content.modal_amazon .modal_body{background: #FA9B23;}
.modal_content.modal_annai .modal_body{background: #78A5E6;}

.modal_content .modal_footer{padding: 20px;}
.modal_content .modal_footer button{display: block;appearance: none;-webkit-appearance: none;-webkit-tap-highlight-color: transparent;background: #EB1437;color: #ffffff;font-weight: bold;font-size: 1.3em;text-align: center;margin: 0 auto 20px;padding: .4em .3em;width: 100%;border: none;max-width: 300px;border-radius: 10px;box-shadow: 1px 1px 2px rgba(0,0,0,.2);}
.modal_content .modal_footer a{color: #4FB4F1;}
.modal_content .modal_footer .modal_map{text-align: right;margin-top: 1em;}
.modal_content .modal_footer .modal_map a{display: inline-block;color: #ffffff;background: #96876E;padding: .5em 1em;box-shadow: 1px 1px rgba(0,0,0,.1);}
#reader{width: 90vw;height: 80vh;background: #000;}
#reader.active{position: fixed !important;top: 5vh;left: 5vw;z-index: 9999;}
#reader video {object-fit: cover;width: 100%;height: 100%;}

@media screen and (max-width:520px) {
.stamp_header img{width: 35%;}
.stamp_header p{width: calc(65% - 10px);font-size: 1.2em;}
.stamp_body ul{gap: 8px;}
.stamp_body ul li{width: calc(17vw - 1px);height: calc(17vw - 1px);border-width: 4px;}
.stamp_body ul li .num{font-size: 8vw;}
.stamp_footer{padding-top: 0;}
}

@media screen and (max-width:330px) {
.stamp_header p{font-size: 1em;}
.stamp_body,.stamp_footer{padding: 5px;}
.stamp_footer .stamp_txt{font-size: .9em;}
.stamp_footer .giftreq_btn{font-size: 1em;}
}

/* 特典リスト */
.cr_centerlist{display:flex;flex-wrap:wrap;gap:10px;}
.cr_centerwrap{width:calc(50% - 5px);padding:10px;border-bottom:1px solid #ddd;background:#ffffff;color:#000;}
.cr_centerwrap:nth-child(even){border-left:1px solid #ddd;}
.cr_centerwrap .thumb{width:180px;text-align:center;}
.cr_centerwrap .thumb img{width:auto;max-height:100px;margin:auto;max-width:100%;}
.cr_centerwrap .info{width:calc(100% - 180px);padding-left:10px;}
.cr_centerwrap .info .name{text-align:center;margin-bottom:1em;}
.cr_centerwrap .info .title{font-weight:bold;color:#FF00A1;font-size:1.1em;margin-bottom:.5em;}
@media screen and (max-width:767px){
  .cr_stamprewardlist{display:block;}
  .cr_centerwrap{width:100%;}
  .cr_centerwrap:nth-child(even){border-left:none;}
  .cr_centerwrap .thumb{width:120px;flex-shrink:0;}
  .cr_centerwrap .thumb img{max-height:90px;}
  .cr_centerwrap .info{width:calc(100% - 130px);}
}

/* 店舗スタンプカード スタンプ数表示 */
.sc_stampcount_box{text-align:center;padding:1.5em 1em;}
.sc_stampcount_label{font-size:1em;color:#666;margin-bottom:.3em;}
.sc_stampcount_num{font-size:2.5em;font-weight:bold;color:#7b2d8b;}
.sc_stampcount_num span{font-size:.5em;}
.sc_stampcount_note{font-size:.85em;color:#999;}
.sc_card_header_img{width:100%;max-height:200px;object-fit:cover;display:block;}

/* 店舗スタンプカード スタンプ表示エリア */
.sc_shopwrap{background:none !important;padding-top:0 !important;}
.sc_shopwrap .stamp_body ul li .stamp_icon{width:100% !important;}

/* 店舗スタンプカード 特典・履歴 */
.sc_rewardlist .cr_centerwrap{border-radius:10px !important;box-shadow:0 3px 10px rgba(0,0,0,.15) !important;}
.sc_history_title{margin-bottom:10px;}
.sc_use_title{margin-top:.3em;font-weight:bold;}
.sc_use_stamps{font-size:.85em;color:#666;}

/* 店舗スタンプカード SVGアイコン */
.stamp_icon_shop svg{display:block;width:85% !important;height:85% !important;opacity:.8;margin:auto;}
.stamp_icon_shop svg path,
.stamp_icon_shop svg polygon,
.stamp_icon_shop svg circle,
.stamp_icon_shop svg ellipse,
.stamp_icon_shop svg rect{fill:var(--stamp-color) !important;}

/* 必要スタンプ数 */
.sc_required_stamps{color:#333;font-weight:bold;margin:.3em 0;}
.sc_required_num{color:#e00;font-size:1.3em;}

/* 店舗スタンプカード 一覧カード */
.sc_grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:1em .75em;}
/* home横スライド（background・box-shadow なし） */
.sc_shopstampscroll{align-items:stretch;margin:.5em 0 1em 0;padding:1em;}
.sc_imgcard{display:block;border-radius:12px;overflow:hidden;box-shadow:0 3px 10px rgba(0,0,0,.18);text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s;background:#fff;}
.sc_imgcard:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.25);}
.sc_imgcard_img{position:relative;width:100%;padding-top:50%;overflow:hidden;}
.sc_imgcard_img img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;}
.sc_imgcard_badge{position:absolute;bottom:8px;right:8px;background:rgba(0,0,0,.55);color:#fff;border-radius:20px;padding:3px 10px;font-size:.8em;font-weight:bold;backdrop-filter:blur(2px);}
.sc_imgcard_body{padding:.6em .8em;}
.sc_imgcard_name{font-weight:bold;font-size:.9em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}

/* 店舗情報 */
.sc_shopinfoblock{display:flex;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:12px;gap:12px;text-decoration:none;color:#333 !important;}
.sc_shopinfoblock_thumb{width:88px;flex-shrink:0;}
.sc_shopinfoblock_thumb img{width:88px;height:88px;object-fit:cover;border-radius:6px;}
.sc_shopinfoblock_detail{flex:1;min-width:0;font-size:max(12px,.88em);}
.sc_shopinfoblock_detail p{margin-bottom:.3em;line-height:1.5;}
.sc_shopinfoblock_name{font-weight:bold;font-size:max(12px,1em);color:#333 !important;}
.sc_shopinfoblock_sec{display:inline-block;padding:.1em .55em;border-radius:3px;font-size:max(12px,.82em);}
.sc_shopinfoblock_tit{display:inline-block;padding:.1em .55em;background:#fff;color:#E3007F;border:1px solid #E3007F;border-radius:.4em;font-size:max(12px,.82em);}
.sc_shopinfoblock_memo{color:#999;font-size:max(12px,.82em);}
.sc_shopinfoblock_link{color:#E3007F;font-size:max(12px,.82em);margin-top:.4em !important;}

/* 交換可能バッジ・プログレスバー */
.sc_canuse_badge{display:inline-flex;align-items:center;gap:.3em;background:linear-gradient(135deg,#FF8000,#FF5500);color:#fff;font-size:max(12px,.8em);font-weight:bold;padding:.2em .7em;border-radius:20px;margin-bottom:.4em;}
.sc_reward_remain{margin-top:.8em;}
.sc_reward_remain_bar{height:8px;background:#eee;border-radius:4px;overflow:hidden;margin-bottom:.4em;}
.sc_reward_remain_fill{height:100%;background:linear-gradient(90deg,#E3007F,#FF8000);border-radius:4px;}
.sc_reward_remain_txt{font-size:max(12px,.85em);color:#555;margin:0;text-align:center;}
.sc_reward_remain_txt b{color:#E3007F;font-size:1.1em;}

/* スタンプ特典ボタン */
.sc_reward_btns{display:flex;gap:8px;margin-top:.8em;}
.sc_reward_btn{display:flex;align-items:center;justify-content:center;gap:5px;flex:1;min-height:44px;border-radius:25px;font-size:.88em;font-weight:bold;cursor:pointer;user-select:none;transition:opacity .15s,transform .1s;text-decoration:none;}
.sc_reward_btn:active{opacity:.75;transform:scale(.97);}
.sc_reward_locked{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:.8em;padding:9px 12px;background:#f5f5f5;border-radius:10px;font-size:.82em;color:#999;}

/* 店舗スタンプカード QRスキャナーボタン */
.sc_camerabtn_wrap{text-align:center;padding:1.2em 10px .6em;}
.sc_camerabtn{display:inline-flex;flex-direction:column;align-items:center;gap:.25em;background:linear-gradient(135deg,#E3007F,#A8005E);color:#fff;border:none;border-radius:50px;padding:.85em 2.2em;width:100%;max-width:320px;cursor:pointer;box-shadow:0 4px 14px rgba(227,0,127,.4);transition:opacity .15s,transform .1s;margin-bottom:1em;}
.sc_camerabtn:active{opacity:.8;transform:scale(.97);}
.sc_camerabtn i{font-size:1.6em;}
.sc_camerabtn_main{font-size:max(12px,1em);font-weight:bold;letter-spacing:.04em;}
.sc_camerabtn_sub{font-size:max(12px,.78em);opacity:.9;font-weight:normal;}
.sc_camerabtn_none{display:inline-flex;flex-direction:column;align-items:center;gap:.35em;background:#f0f0f0;color:#999;border:2px solid #ccc;border-radius:50px;padding:.85em 2.2em;width:100%;max-width:320px;margin:.4em 0 0;}
.sc_camerabtn_none i{font-size:1.6em;}
.sc_camerabtn_none span{font-size:max(12px,.82em);}
.sc_camerabtn_note{font-size:max(12px,.78em);color:#888;margin:.5em 0 0;line-height:1.5;}
