@charset "shift_jis";
@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p:wght@100;300;400;500;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@200;300;400;500;600;700&display=swap');

/* ============================================================
   common.css - kyotsu / zen tai
   reset, font, color, utility class
============================================================ */

/* --------------------------
    all
-------------------------- */

ul, li {list-style: none;}
#contents {
	width: 100%;
	max-width: 100%;
}

/* font */
#contents .noto100, #contents .noto200, #contents .noto300, #contents .noto400, #contents .noto500, #contents .noto600, #contents .noto700, #contents .noto800, #contents .noto900 {font-family: 'Noto Sans Japanese', serif !important; letter-spacing: -0.05em !important;}
.noto100 {font-weight:100;}
.noto200 {font-weight:200;}
.noto300 {font-weight:300;}
.noto400 {font-weight:400;}
.noto500 {font-weight:500;}
.noto600 {font-weight:600;}
.noto700 {font-weight:700;}
.noto800 {font-weight:800;}
.noto900 {font-weight:900;}

@media screen and (min-width:768px) {
#col_center {
    margin: 0 0 0 195px;
}
}
#contents {
	padding: 0;
	color: #000;
	background-color: #fff;
	font-family: Meiryo,"Hiragino Kaku Gothic ProN",Osaka,sans-serif,sans-serif;
	text-align:center;
	letter-spacing: -.40em;
	font-size: 1.2em;
	word-break: break-all;
	word-wrap: break-word;
	box-sizing:border-box;
}
#contents * {
	box-sizing:border-box;
	letter-spacing: normal;
}
.slick-slide .itempr {width: 90%;}
.slick-slide .itemre img {display: inline-block;}

section {
color: #333;
}
#contents .bg-box{
max-width: 1200px;
margin: 0 auto;
}
h3.third-ttl, h2.sub-ttl {border-left: none;}

/* --------------------------
    contents
-------------------------- */
@media only screen and (max-width: 1200px) {
#contents .bg-box{max-width: 100%; width: 100%;}
}

/* --------------------------
    color
-------------------------- */

.bg-st {background-color: #ffd908;}

/* moji iro (text color) */
.col-y { color: #ffeb30 !important; }
.col-y2 { color: #fff7af !important; }
.col-p { color: #fb81e6 !important; }
.col-p2 { color: #ffbef4 !important; }
.col-r { color: #ff5373 !important; }
.col-r2 { color: #ffafbe !important; }
.col-o { color: #ff6d3c !important; }
.col-o2 { color: #ffae93 !important; }
.col-sp { color: #3bbfff !important; }
.col-sp2 { color: #a1e0ff !important; }
.col-b { color: #3451b7 !important; }
.col-b2 { color: #a3b3ec !important; }
.col-v { color: #ae54da !important; }
.col-v2 { color: #daaef0 !important; }
.col-g { color: #78cd8a !important; }
.col-g2 { color: #c3eecc !important; }
.col-bk1 { color: #111 !important; }
.col-bk2 { color: #333 !important; }
.col-bk3 { color: #666 !important; }
.col-bk4 { color: #999 !important; }
.col-w { color: #fff !important; }
.col-ygrad { background: linear-gradient(180deg,  #fef98c 0%,#fece45 50%,#bc7a15 100%); display: inline-block; background: -webkit-linear-gradient(270deg,  #fef98c 0%,#fece45 50%,#bc7a15 100%); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent;}


/* haikei iro (background color) */
.bg-y { background-color: #ffeb30 !important; }
.bg-y2 { background-color: #fff7af !important; }
.bg-p { background-color: #fb81e6 !important; }
.bg-p2 { background-color: #ffbef4 !important; }
.bg-r { background-color: #ff5373 !important; }
.bg-r2 { background-color: #ffafbe !important; }
.bg-o { background-color: #ff6d3c !important; }
.bg-o2 { background-color: #ffae93 !important; }
.bg-sb { background-color: #3bbfff !important; }
.bg-sb2 { background-color: #a1e0ff !important; }
.bg-b { background-color: #3451b7 !important; }
.bg-b2 { background-color: #a3b3ec !important; }
.bg-v { background-color: #ae54da !important; }
.bg-v2 { background-color: #daaef0 !important; }
.bg-g { background-color: #06c755!important; }
.bg-g2 { background-color: #c3eecc !important; }
.bg-bk { background-color: #000 !important; }
.bg-bk1 { background-color: #111 !important; }
.bg-bk2 { background-color: #333 !important; }
.bg-bk3 { background-color: #666 !important; }
.bg-bk4 { background-color: #999 !important; }
.bg-w { background-color: #fff !important; }
.bg-x { background-color: #4a98ea !important; }

/* botan iro (button color) */
.btn-y a span { background-color: #ffdf01 !important; }
.btn-p a span { background-color: #ff1b7d !important; color: #fff !important; }
.btn-r a span { background-color: #fe3c3d !important; color: #fff !important; }
.btn-o a span { background-color: #ff6d3c !important; color: #fff !important; }

#contents .btn-r .link-btn .btn-inner,#contents .btn-p .link-btn .btn-inner,#contents .btn-sp .link-btn .btn-inner,#contents .btn-v .link-btn .btn-inner,#contents .btn-b .link-btn .btn-inner,#contents .btn-o .link-btn .btn-inner,#contents .btn-g .link-btn .btn-inner{
color: #ffffff !important; 
}

#contents .btn-r .csdf-right-dtl-txt-greater.icon-greater-right-b::before,#contents .btn-p .csdf-right-dtl-txt-greater.icon-greater-right-b::before,#contents .btn-sp .csdf-right-dtl-txt-greater.icon-greater-right-b::before,#contents .btn-v .csdf-right-dtl-txt-greater.icon-greater-right-b::before,#contents .btn-b .csdf-right-dtl-txt-greater.icon-greater-right-b::before,#contents .btn-o .csdf-right-dtl-txt-greater.icon-greater-right-b::before,#contents .btn-g .csdf-right-dtl-txt-greater.icon-greater-right-b::before{
color: #ffffff !important; 
}

#contents .contents-area.bg-g .sub-ttl {
    color: #ffffff;
}

/*--------------------------------------------------
    general class
--------------------------------------------------*/
/* margin, padding */
.m0a { margin:0 auto !important; }

.m0 { margin:0 !important; }
.m1 { margin:1em !important; }
.m2 { margin:2em !important; }
.m3 { margin:3em !important; }
 
.mt0 { margin-top:0 !important; }
.mt1 { margin-top:1em !important; }
.mt2 { margin-top:2em !important; }
.mt3 { margin-top:3em !important; }
 
.mb0 { margin-bottom:0 !important; }
.mb1 { margin-bottom:1em !important; }
.mb2 { margin-bottom:2em !important; }
.mb3 { margin-bottom:3em !important; }
 
.p0 { padding:0 !important; }
.p1 { padding:1em !important; }
.p2 { padding:2em !important; }
.p3 { padding:3em !important; }
 
.pt0 { padding-top:0 !important; }
.pt1 { padding-top:1em !important; }
.pt2 { padding-top:2em !important; }
.pt3 { padding-top:3em !important; }
 
.pb0 { padding-bottom:0 !important; }
.pb1 { padding-bottom:1em !important; }
.pb2 { padding-bottom:2em !important; }
.pb3 { padding-bottom:3em !important; }
 
.m10 { margin:10px !important; }
.m20 { margin:20px !important; }
.m30 { margin:30px !important; }
 
.mt10 { margin-top:10px !important; }
.mt20 { margin-top:20px !important; }
.mt30 { margin-top:30px !important; }
 
.mb10 { margin-bottom:10px !important; }
.mb20 { margin-bottom:20px !important; }
.mb30 { margin-bottom:30px !important; }
 
.p10 { padding:10px !important; }
.p20 { padding:20px !important; }
.p30 { padding:30px !important; }
 
.pt10 { padding-top:10px !important; }
.pt20 { padding-top:20px !important; }
.pt30 { padding-top:30px !important; }
 
.pb10 { padding-bottom:10px !important; }
.pb20 { padding-bottom:20px !important; }
.pb30 { padding-bottom:30px !important; }

.mla { margin-left: auto !important; }
.mra { margin-right: auto !important; }
	
/* width */
.wid100 { width:100%; }
.wid95 { width:95%; }
.wid90 { width:90%; }
.wid85 { width:85%; }
.wid80 { width:80%; }
.wid75 { width:75%; }
.wid70 { width:70%; }
.wid65 { width:65%; }
.wid60 { width:60%; }
.wid55 { width:55%; }
.wid50 { width:50%; }
.wid45 { width:45%; }
.wid40 { width:40%; }
.wid35 { width:35%; }
.wid30 { width:30%; }
.wid25 { width:25%; }
.wid20 { width:20%; }
.wid15 { width:15%; }
.wid10 { width:10%; }
.wid5 { width:5%; }

/* bg-box same as bg-box width */
.max1000 {max-width: 1000px !important;}
.max850 {max-width: 850px !important;}
.max600 {max-width: 600px !important;}

 
/* text-align */
.txtAL { text-align:left !important; }
.txtAC { text-align:center !important; }
.txtAR { text-align:right !important; }
 
/* font-size */
.fsLLL { font-size:1.8em !important; }
.fsLL { font-size:1.5em !important; }
.fsL { font-size:1.2em !important; }
.fsS { font-size:0.8em !important; }
.fsSS { font-size:0.5em !important; }


@media screen and (max-width: 779px) {
.spno { display: none !important;}
.widsp100 { width:100% !important; }
.widsp95 { width:95% !important; }
.widsp90 { width:90% !important; }
.widsp85 { width:85% !important; }
.widsp80 { width:80% !important; }
.widsp75 { width:75% !important; }
.widsp70 { width:70% !important; }
.widsp65 { width:65% !important; }
.widsp60 { width:60% !important; }
.widsp55 { width:55% !important; }
.widsp50 { width:50% !important; }
.widsp45 { width:45% !important; }
.widsp40 { width:40% !important; }
.widsp35 { width:35% !important; }
.widsp30 { width:30% !important; }
.widsp25 { width:25% !important; }
.widsp20 { width:20% !important; }
.widsp15 { width:15% !important; }
.widsp10 { width:10% !important; }
.widsp5 { width:5% !important; }
}
@media screen and (min-width: 780px) {
.pcno { display: none !important;}
}


/* ============================================================
   style.css - main content (#contents, fes-area, more-link etc)
============================================================ */

/* pack-area non-display */
#contents .pack-area{
display: none !important;
}

/* zen tai layout, background, title */
#contents {
  margin: 0 !important;
  position: relative;
  width: 100%;
  height: auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  background-color: #d71b1c; 
  padding: 0 0 5em;
}


#contents h2.sub-ttl {
        font-weight: 900;
	}

/* fes-area waku */
#contents .fes-area-ctr .contents-area{
    display: block;
    max-width: 1200px;
    width: 90%;
    margin: 8em auto;
    background-color: #ffffff;
    box-shadow: 15px 15px 0 #fff;
    padding: 0 1em 4em;
    position: relative;
}
/* scroll-fade image (top-right, appears on scroll) */
#contents .contents-area .contents-area-scroll-img {
    position: absolute;
    top: -95px;
    right: -55px;
    z-index: 1;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 0.6s ease, transform 0.6s ease;
    pointer-events: none;
}
#contents .contents-area .contents-area-scroll-img img {
    display: block;
    max-width: 300px;
    height: auto;
}
#contents .contents-area .contents-area-scroll-img.is-visible {
    opacity: 1;
    transform: translateY(0);
}
#contents .fes-area-ctr .contents-area.scrollin{
    opacity: 1 !important;
    transform: translate(0, 0) !important;
}
/* title (bg color: 1=f5bf5b, 2=4e88ae, 3=e8e2bb, loop by .cam-area order in .fes-area-ctr) */
#contents .fes-area-ctr .contents-area .sub-ttl{
    background-color: #f5bf5b;
    position: relative;
    height: auto;
    padding: 1em 0;
    text-align: center;
    margin: 60px 0 0;
    color: #01304A;
    font-size: 3rem;
  }

#contents .fes-area-ctr .cam-area:nth-of-type(3n+1) .contents-area .sub-ttl {
    background-color: #4e88ae;
    color: #fff;
}
#contents .fes-area-ctr .cam-area:nth-of-type(3n+2) .contents-area .sub-ttl {
    background-color: #f5bf5b;
}
#contents .fes-area-ctr .cam-area:nth-of-type(3n+3) .contents-area .sub-ttl {
    background-color: #e8e2bb;
}
/* .contents-area bg same as sub-ttl (3-color loop) */
#contents .fes-area-ctr .cam-area:nth-of-type(3n+1) .contents-area {
    background-color: #4e88ae;
}
#contents .fes-area-ctr .cam-area:nth-of-type(3n+2) .contents-area {
    background-color: #f5bf5b;
}
#contents .fes-area-ctr .cam-area:nth-of-type(3n+3) .contents-area {
    background-color: #e8e2bb;
}



/* even contents-box border blue */
#contents .fes-area-ctr .contents-area:nth-of-type(even) .contents-box {
  border: 7px solid #2968b2;
}

#contents .contents-area .contents-box {

    border-radius: 0 0 20px 20px;
    padding: 3em 0;
}

#contents .contents-area h3 {
    font-size: 2em;
}

/* fes-area kyotsu */
#contents .contents-area .contents-box{
    padding: 0 3em 2em;
}

/* more-link button */
#contents .more-link-box .link-btn .icon-greater-right-b::before {
    color: #fff000;
}

#contents .more-link-box {
	display: block;
	max-width: 800px;
	width: 90%;
	margin: 1em auto;
	text-align: center;
	font-size: 1.2em;
	border: none;
}
#contents .more-link-box .link-btn {
	transition: all 0.3s;
	width: 100%;
	display: block;
	border-radius: 100px;
}

#contents .coupon-link-card-body .more-link-box .link-btn .btn-inner {
	padding: .8em 0;
    font-size: .9em;
}

#contents .more-link-box .link-btn .btn-inner {
	width: 100%;
	display: block;
	color: #fff;
	background-color: #f05a00;
	padding: 1.2em 0;
	font-size: 1.2em;
	border-radius: 8px;
	font-weight: bold;
}
#contents .more-link-box .link-btn .icon-greater-right-b {
	display: inline-block;
	padding: 0 0 0 10px;
}

/* swiper pagination bottom */
.swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: var(--swiper-pagination-bottom, 0px) !important;
}


/* --------------------------
    PC
-------------------------- */

@media screen and (min-width: 500px) {
	#contents h1 {
		font-family: 'M PLUS 1p', sans-serif;
	}
	#contents h2.sub-ttl, #contents .coupon-link-ttl {
		font-family: 'M PLUS 1p', sans-serif;
	}
}
/* layout */
@media screen and (min-width: 500px) {
	#m_col_center_wrap {
		margin-left: 0;
	}
	#clsd_contents .contents-center-area {
		max-width: 100%;
		margin: 0 auto;
	}
	#col_center {
		margin: 0 0 0 0 !important;
	}
	#clsd_contents {
		max-width: 100%;
		margin: 0 auto;
		padding: 0;
	}
}

@media screen and (min-width: 481px) {
	.fes-area-ctr {
		width: 100%;
		margin: 0 auto;
	}
}


/* ============================================================
   main-visual.css - main visual (#main-visual)
   curtain, title, date, confetti etc
============================================================ */

#main-visual{
width: 100%;
}
#main-visual .main-visual-area {
    position: relative;
    width: 100%;
    height: 600px;
    background-image: radial-gradient(#f9f9d9 20%, transparent 20%), radial-gradient(#f9f9d9 20%, transparent 20%);
    background-size: 20px 20px;
    background-position: 0 0, 10px 10px;
    overflow: hidden;
}

/* ---------- FV 2026 design (red bg, 5 category nav) ---------- */
#main-visual .main-visual-area.fv-2026 {
    height: auto;
    min-height: 600px;
    background-image: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 20px 0 0;
    box-sizing: border-box;
    /* distance from page center for left/right promo (change to adjust) */
    --fv-promo-distance: 380px;
}
#main-visual .fv-title-block {
    text-align: center;
    width: 100%;
    max-width: 1045px;
    position: relative;
    z-index: 5;
}

#main-visual .fv-main-ttl {
    margin: 0;
    padding: 0;
}
#main-visual .fv-title-img {
    height: auto;
    display: block;
    margin: 0 auto;
}
#main-visual .fv-title-img-day {
    display: block;
}
#main-visual .fv-title-img-night {
    display: none;
}
#main-visual .fv-promo-left,
#main-visual .fv-promo-right {
    position: absolute;
    top: 47%;
    transform: translateY(-50%);
    z-index: 3;
}
/* left: right edge of block at (center - distance) */
#main-visual .fv-promo-left {
    left: calc(50% - var(--fv-promo-distance, 380px));
    transform: translateY(-50%) translateX(-100%);
}
/* right: left edge of block at (center + distance) */
#main-visual .fv-promo-right {
    left: calc(52% + var(--fv-promo-distance, 380px));
    top: 37%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0px;
}
#main-visual .fv-icon-ranking {
  max-width: 265px;
  height: auto;
  display: block;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
}
#main-visual .fv-icon-point5 {
    max-width: 395px;
    height: auto;
    display: block;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
}
#main-visual .fv-icon-review {
    max-width: 265px;
    height: auto;
    display: block;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
}
#main-visual .fv-icon-delivery {
    max-width: 265px;
    height: auto;
    display: none;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
}
#main-visual .fv-nav {
    width: 100%;
    max-width: 1400px;
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: -40px;
    padding: 0 10px 20px;
    flex-wrap: wrap;
    position: relative;
    z-index: 10;
    filter: drop-shadow(0 8px 16px rgba(0,0,0,0.25)) drop-shadow(0 4px 8px rgba(0,0,0,0.15));
}
#main-visual .fv-nav-item {
    flex: 1;
    min-width: 100px;
    max-width: 250px;
    text-decoration: none;
    display: block;
    transition: transform 0.2s, opacity 0.2s;
}
#main-visual .fv-nav-item:hover {
    transform: translateY(-2px);
    opacity: 0.9;
}
#main-visual .fv-nav-img {
    width: 100%;
    height: auto;
    display: block;
}

/* curtain - top */
#main-visual .curtain-top {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    z-index: 10;
    text-align: center;
}

#main-visual .curtain-top-img {
    width: 100%;
    height: 100px;
    display: block;
}

/* curtain - left right */
#main-visual .curtain-left, 
#main-visual .curtain-right {
    position: absolute;
    height: auto;
    z-index: 20;
}

#main-visual .curtain-left {
    left: 0;
}

#main-visual .curtain-right {
    right: 0;
}

#main-visual .curtain-side-img {
    height: 100%;
    width: auto;
    display: block;
}

/* content area */
#main-visual .content-area {
    position: relative;
    max-width: 1045px;
    min-width: 800px;
    top: 100px;
    height: 100%;
    margin: 0 auto;
    z-index: 25;
    display: flex;
    flex-direction: column;
}

/* subtitle */
#main-visual .subtitle {
    text-align: center;
    padding: 0 0 0 2em;
}

#main-visual .subtitle-img {
    max-width: 100%;
    height: auto;
}

/* main title */
#main-visual .main-title {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 20px;
    z-index: 1;
}

#main-visual .title-char {
    width: 25%;
    margin: 0 10px;
    opacity: 0; 
}

#main-visual .title-char:hover {
    transform: translateY(-10px);
}

/* date area */
#main-visual .date-area {
    position: absolute;
    top: 325px;
    left: 520px;
    width: 55%;
    z-index: 0;
}

#main-visual .date-img {
    max-width: 100%;
    height: auto;
}

/* yellow circle deco */
#main-visual .yellow-circle {
    position: absolute;
    left: -20%;
    top: -2%;
    width: 250px;
    height: auto;
    z-index: 0;
}

#main-visual .circle-img {
    width: 100%;
    height: auto;
}

/* ========== 紙吹雪 #kamihubuki（dream_lottery 同様） ========== */
#kamihubuki {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
	z-index: 5;
	overflow: hidden;
}
#kamihubuki .naka {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}
#kamihubuki .naka.floating {
	position: fixed;
	top: 0;
	bottom: auto;
}
#kamihubuki .naka.pinned-bottom {
	position: fixed;
	top: auto;
	bottom: 0;
}
#kamihubuki [class^="flake"] {
	position: absolute;
	width: 8px;
	height: 8px;
	top: -5%;
	background: linear-gradient(135deg, #FFF8DC, #FFE4B5);
	border-radius: 1px;
	opacity: 0.9;
}
#kamihubuki .flake1 { left: 2%; animation: kamihubuki-fall 12s 0s linear infinite; }
#kamihubuki .flake2 { left: 8%; animation: kamihubuki-fall 14s 1s linear infinite; }
#kamihubuki .flake3 { left: 14%; animation: kamihubuki-fall 10s 2s linear infinite; }
#kamihubuki .flake4 { left: 20%; animation: kamihubuki-fall 16s 0.5s linear infinite; }
#kamihubuki .flake5 { left: 26%; animation: kamihubuki-fall 11s 3s linear infinite; }
#kamihubuki .flake6 { left: 32%; animation: kamihubuki-fall 13s 1.5s linear infinite; }
#kamihubuki .flake7 { left: 38%; animation: kamihubuki-fall 15s 2.5s linear infinite; }
#kamihubuki .flake8 { left: 44%; animation: kamihubuki-fall 9s 0.2s linear infinite; }
#kamihubuki .flake9 { left: 50%; animation: kamihubuki-fall 12s 1.8s linear infinite; }
#kamihubuki .flake10 { left: 56%; animation: kamihubuki-fall 14s 2.2s linear infinite; }
#kamihubuki .flake11 { left: 62%; animation: kamihubuki-fall 10s 3.5s linear infinite; }
#kamihubuki .flake12 { left: 68%; animation: kamihubuki-fall 16s 0.8s linear infinite; }
#kamihubuki .flake13 { left: 74%; animation: kamihubuki-fall 11s 1.2s linear infinite; }
#kamihubuki .flake14 { left: 80%; animation: kamihubuki-fall 13s 2.8s linear infinite; }
#kamihubuki .flake15 { left: 86%; animation: kamihubuki-fall 15s 0.4s linear infinite; }
#kamihubuki .flake16 { left: 92%; animation: kamihubuki-fall 9s 1.6s linear infinite; }
#kamihubuki .flake17 { left: 6%; animation: kamihubuki-fall 14s 2.4s linear infinite; }
#kamihubuki .flake18 { left: 18%; animation: kamihubuki-fall 10s 0.6s linear infinite; }
#kamihubuki .flake19 { left: 30%; animation: kamihubuki-fall 12s 3s linear infinite; }
#kamihubuki .flake20 { left: 42%; animation: kamihubuki-fall 16s 1.4s linear infinite; }
#kamihubuki .flake21 { left: 54%; animation: kamihubuki-fall 11s 0.9s linear infinite; }
#kamihubuki .flake22 { left: 66%; animation: kamihubuki-fall 13s 2.1s linear infinite; }
#kamihubuki .flake23 { left: 78%; animation: kamihubuki-fall 15s 1.7s linear infinite; }
#kamihubuki .flake24 { left: 90%; animation: kamihubuki-fall 9s 2.9s linear infinite; }
#kamihubuki .flake25 { left: 96%; animation: kamihubuki-fall 12s 0.3s linear infinite; }
#kamihubuki [class^="flake"]:nth-child(5n+1) { background: #FFF8DC; }
#kamihubuki [class^="flake"]:nth-child(5n+2) { background: #FFEBCD; }
#kamihubuki [class^="flake"]:nth-child(5n+3) { background: #F5DEB3; }
#kamihubuki [class^="flake"]:nth-child(5n+4) { background: #FFE4B5; }
#kamihubuki [class^="flake"]:nth-child(5n+5) { background: #FFEFD5; }
@keyframes kamihubuki-fall {
	0% { top: -5%; transform: translateX(0) rotate(0deg); }
	100% { top: 110%; transform: translateX(30px) rotate(360deg); }
}

/* ========== dream_lottery ページ専用 ========== */
#contents.dream_lottery {
	background-color: #ffea4f;
}
#contents.dream_lottery #main-visual.contents-area {
	background-image: url(/contents/campaign/sanwaday/img/2026/bk.png);
	background-repeat: no-repeat;
	background-position: center;
	background-size: auto;
}

#contents.dream_lottery .fes-area-ctr .cam-area .contents-area {
  background-color: #fff;
  box-shadow: 15px 15px 0 #d80000;
  max-width: 1045px;
  padding: 5em 1em;
  margin: 1em auto 8em;
}
#contents.dream_lottery .fes-area-ctr .cam-area .contents-area .sub-ttl {
  background-color: #fff;
  color: #000;
}

#contents #dream .more-link-box .link-btn .btn-inner {
  width: 75%;
  display: block;
  color: #fff;
  background-color: #f05a00;
  padding: .8em 0;
  font-size: 1.5rem;
  border-radius: 8px;
  font-weight: bold;
  margin: 0 auto;
}

#contents #dream .more-link-box {
  display: block;
  max-width: 800px;
  width: 90%;
  margin: 0 auto;
  text-align: center;
  font-size: 1.2em;
  border: none;
}

#contents.dream_lottery .dream-list {
	margin: 0.5em 0 1em 1.5em;
	padding: 0;
	list-style: disc;
	line-height: 1.7;
}
#contents.dream_lottery #dream .contents-box .dream-list {
	margin-left: auto;
	margin-right: auto;
	display: inline-block;
	text-align: left;
}
#contents.dream_lottery .dream-list li {
	margin-bottom: 0.4em;
}
/* 賞品内容・画像のバランス */
#contents.dream_lottery #dream .contents-box {
	padding: 1.5em 2em 4em;
  font-size: 1.5rem;
  line-height: 1.7;
}

#contents.dream_lottery .dream-catch-wrap {
  max-width: 1200px;
  margin: 0 auto 0;
  padding: 5em 1em 0;
}
#contents.dream_lottery .dream-catch-wrap .contents-box {
	background: none;
	padding: 1.5em 2em 1em;
	box-shadow: none;
}
#contents.dream_lottery #dream .contents-box:has(.dream-list) {
	text-align: center;
}
#contents.dream_lottery #dream .contents-box .imgbanner {
	text-align: center;
}
#contents.dream_lottery #dream .contents-box .imgbanner img {
	max-width: 85%;
	width: auto;
	height: auto;
	display: inline-block;
}
#contents.dream_lottery #dream .sub-ttl {
  border-bottom: 7px solid #d80000;
  margin: 0 auto;
  display: inline-block;
  padding: 0 1em;
  font-size: 2.5rem;
}
#contents.dream_lottery #dream .contents-box .dream-list {
	margin-top: 0.8em;
}
#contents.dream_lottery #dream .comment.ttl {
	margin-bottom: 0.4em;
}
#contents.dream_lottery #dream .comment.sub-text {
	margin-bottom: 0;
}
#contents.dream_lottery p.comment {
	padding: 0;
}
#contents.dream_lottery .dream-catch-balloon {
  background-color: #d80000;
  color: #fff;
  padding: 1.2em 2.5em;
  border-radius: 6px;
  position: relative;
  overflow: visible;
  margin-bottom: 18px;
  font-size: 1.6rem;
}
#contents.dream_lottery .dream-catch-balloon::after {
	content: "";
	position: absolute;
	bottom: -13px;
	left: 50%;
	margin-left: -14px;
	width: 0;
	height: 0;
	border: 14px solid transparent;
	border-top-color: #d80000;
	border-bottom: none;
	display: block;
}
#contents.dream_lottery #dream .contents-box:has(.dream-catch-balloon) {
	overflow: visible;
}
#contents.dream_lottery .dream-catch-balloon .comment.ttl,
#contents.dream_lottery .dream-catch-balloon .comment.sub-text {
	color: #fff;
	margin: 0 0 0.4em 0;
	font-weight: bold;
}
#contents.dream_lottery .dream-catch-balloon .comment.sub-text:last-child {
	margin-bottom: 0;
}
#contents.dream_lottery .dream-catch-balloon .comment.ttl {
	font-size: 1.3em;
	font-weight: 800;
}
#contents.dream_lottery .dream-schedule-table {
	width: 100%;
	max-width: 450px;
	margin: 1em auto;
	border-collapse: separate;
	border-spacing: 0;
}
#contents.dream_lottery .dream-schedule-table td {
	padding: 0.6em 1em;
	vertical-align: middle;
}
#contents.dream_lottery .dream-schedule-table .dream-schedule-label {
	background-color: #dddddd;
	color: #333;
	font-weight: bold;
	width: 40%;
}
#contents.dream_lottery .dream-schedule-table .dream-schedule-value {
	background-color: #fff;
	border: 1px solid #dddddd;
	border-left: none;
  font-weight: bold;
	color: #333;
}

@media screen and (max-width: 1500px) and (min-width: 500px) {
    #main-visual .yellow-circle {
    left: 4%;
    top: -15%;
    width: 212px;    }

}

@media screen and (max-width: 480px) {
  #menu.menu-area {
    top: 240px;
  }
  
  #menu .menu-list {
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
  }
  
  #menu .menu-list li {
    width: 30%;
    -ms-flex-preferred-size: 30%;
    flex-basis: 30%;
    padding: 0;
  }
  
  #menu.menu-area .menu-list img {
    max-width: 95%;
    margin: 0 3px;
  }
}

@media screen and (min-width: 500px) {
    #main-visual .curtain-left .curtain-side-img,
    #main-visual .curtain-right .curtain-side-img {
        width: 200px;
        height: 100%;
    }
    
    #top #menu .fixed-menu {
    position: fixed;
    right: 20px;
    margin-bottom: 70px;
    width: 210px;
    z-index: 99;
  }
  
  #menu .fixed-menu ul {
    border: 5px solid #FF4D83;
    border-radius: 10px;
    text-align: left;
    margin: .5em 0;
    border-right: 10px solid #FF4D83;
    border-bottom: 13px solid #FF4D83;
  }
  
  #menu .sanwaday-fixed-menu.menu-area li {
    width: 100%;
    flex-basis: 100%;
    padding: 1em 0.5em;
    font-size: 1.5em;
    flex-direction: row;
    background-color: #ffffff !important;
    color: #fff;
    position: relative;
  }
  
  #menu .sanwaday-fixed-menu.menu-area li:not(:first-child) {
    border-top: 1px dashed;
  }
}


/* ============================================================
   menu.css - menu (#menu)
   jelly button, fixed menu, night coupon banner
============================================================ */

.menu-area {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  padding: .5em 0;
  width: 100%;
}
.jelly-button-link {
  text-decoration: none;
  display: inline-block;
  margin: 0 8px;
}
.jelly-button {
  position: relative;
  display: inline-block;
}
.jelly-button .jelly-background {
  cursor: pointer;
}
.jelly-button svg {
  width: 200px;
  height: 200px;
  display: block;
}
.jelly-text {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: bold;
  font-size: 2em;
  pointer-events: none;
}
.menu-area .jelly-button-link:nth-child(odd) .jelly-background svg path {
  fill: #d71b1c;
}
.menu-area .jelly-button-link:nth-child(even) .jelly-background svg path {
  fill: #2968b2;
}
@keyframes jelly {
  0% {
    transform: scale(1);
  }
  30% {
    transform: scale(1.15, 0.85);
  }
  40% {
    transform: scale(0.95, 1.05);
  }
  50% {
    transform: scale(1.05, 0.95);
  }
  65% {
    transform: scale(0.98, 1.02);
  }
  75% {
    transform: scale(1.02, 0.98);
  }
  100% {
    transform: scale(1);
  }
}
.jelly-background.animate {
  animation: jelly 0.6s ease;
  transform-origin: center;
}

.timer-area{
display: none;
}
.night-coupon-banner {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  border-radius: 15px;
  padding: 20px 30px;
  position: relative;
  overflow: hidden;
  max-width: 1045px;
  width: 100%;
  cursor: pointer;
  margin: 0 auto 3em;
}
.night-coupon-banner .banner-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 2;
}
.night-coupon-banner .left-content {
  display: flex;
  align-items: center;
}
.night-coupon-banner .moon-icon {
  font-size: 2.5rem;
  margin-right: 15px;
  color: #ffd700;
  animation: float 3s ease-in-out infinite;
}
.night-coupon-banner .text-content {
  flex: 1;
}
.night-coupon-banner .time-limit {
  color: #ffd700;
  font-size: 0.9rem;
  font-weight: bold;
  margin-bottom: 5px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.night-coupon-banner .main-text {
  font-size: 2.2rem;
  font-weight: 900;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  line-height: 1.1;
}
.night-coupon-banner .discount {
  color: #ffd700;
  font-size: 1.2em;
  margin-right: 8px;
}
.night-coupon-banner .night-coupon-text {
  color: #ffffff;
}
.night-coupon-banner .detail-button {
  background: linear-gradient(135deg, #ffd700, #ffed4e);
  color: #1a1a2e;
  font-weight: bold;
  padding: 12px 24px;
  border: none;
  border-radius: 25px;
  cursor: pointer;
  font-size: 1rem;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(255, 215, 0, 0.3);
  white-space: nowrap;
}
.night-coupon-banner .detail-button:hover {
  background: linear-gradient(135deg, #ffed4e, #ffd700);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 215, 0, 0.4);
}
.night-coupon-banner .stars {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
}
.night-coupon-banner .star {
  position: absolute;
  color: #ffd700;
  animation: twinkle 2s infinite;
}
.night-coupon-banner .star:nth-child(1) {
  top: 10%;
  left: 5%;
  animation-delay: 0s;
}
.night-coupon-banner .star:nth-child(2) {
  top: 15%;
  right: 5%;
  animation-delay: 0.5s;
}
.night-coupon-banner .star:nth-child(3) {
  bottom: 10%;
  left: 8%;
  animation-delay: 1s;
}
.night-coupon-banner .star:nth-child(4) {
  bottom: 15%;
  right: 8%;
  animation-delay: 1.5s;
}
.night-coupon-banner .star:nth-child(5) {
  top: 8%;
  left: 35%;
  animation-delay: 0.3s;
}
.night-coupon-banner .star:nth-child(6) {
  top: 12%;
  right: 35%;
  animation-delay: 0.8s;
}
.night-coupon-banner .star:nth-child(7) {
  bottom: 8%;
  left: 45%;
  animation-delay: 1.3s;
}
.night-coupon-banner .star:nth-child(8) {
  bottom: 12%;
  right: 25%;
  animation-delay: 1.8s;
}
@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-10px);
  }
}
@keyframes twinkle {
  0%, 100% {
    opacity: 0.3;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.2);
  }
}
.night-coupon-banner .glow {
  position: absolute;
  top: -50%;
  left: -50%;
  right: -50%;
  bottom: -50%;
  background: radial-gradient(circle, rgba(255, 215, 0, 0.1) 0%, transparent 70%);
  animation: pulse 4s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% {
    opacity: 0.5;
  }
  50% {
    opacity: 0.8;
  }
}

/* fixed menu detail */
#menu .fixed-menu .menu-name {
  font-size: 1em;
  margin: auto auto auto 0;
  padding: 0.5em 0 0;
  font-weight: bold;
  color: #d71b1c;
}

#menu .fixed-menu a {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1;
  height: 100%;
}

@media screen and (min-width: 500px) {
#top #menu .fixed-menu {
    position: fixed;
    right: 20px;
    margin-bottom: 70px;
    width: 210px;
    z-index: 99;
  }
  
  #menu .fixed-menu ul {
    border: 5px solid #d71b1c;
    border-radius: 10px;
    text-align: left;
    margin: .5em 0;
    border-right: 10px solid #d71b1c;
    border-bottom: 13px solid #d71b1c;
  }
  
  #menu .fixed-menu li {
    width: 100%;
    flex-basis: 100%;
    padding: 1em 0.5em;
    font-size: 1.5em;
    flex-direction: row;
    background-color: #ffffff !important;
    color: #d71b1c;
    position: relative;
  }
  
  #menu .fixed-menu li:not(:first-child) {
    border-top: 1px dashed;
  }


}


/* --------------------------
    セール
-------------------------- */

/* ===== Heading ===== */
#contents #sale.contents-area h3 {
  font-size: 2em;
  padding: .5em;
  background-color: #4586AE;
  margin: 3em 2em 0;
  color: #fff;
  border-radius: 5px;
}
#sale h3:nth-of-type(n+2){
  margin: 3em auto .5em;
}
h3.bk-r{
  background-color: #DB070A !important;
}

/* ===== Items area (Grid) ===== */
#sale .sale-item-area{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2em .5em;
  justify-items: center;
  align-items: start;
  max-width: 1800px;
  margin: 0 auto;
  padding: 1em 0;
  width: 90%;
}
#sale .sale-item-area.item6{
  grid-template-columns: repeat(6, 1fr);
}

/* ===== Item card ===== */
#sale .item{
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  overflow: hidden;
  position: relative;
  transition: transform 0.2s, box-shadow 0.2s;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}
#sale .item:hover{
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
  cursor: pointer;
}

#sale .item-group{
  padding: 16px;
  text-align: center;
  flex: 1;
  display: flex;
  flex-direction: column;
  position: relative;
}
#sale .sale-txt{
  padding: 0 .5em .5em;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-height: 135px;
}

/* 数量限定セール：2026/3/12 10:00 以降表示 */
#sale .sale-tsl-timer-hidden {
  display: none !important;
}

/* 数量限定セール：〇〇個限定 */
#sale .sale-limit {
  position: absolute;
  left: 7px;
  top: 7px;
  z-index: 2;
  display: inline-block;
  padding: 0.5em 0.55em 0.4em;
  background: #d71b1c;
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 4px;
  line-height: 1.3;
}
#sale .sale-limit .limit-num {
  font-size: 1.3rem;
}

#sale .item-img img{
  width: 100%;
  height: auto;
  border-radius: 8px;
}

/* visually hidden */
#sale .sale-item-area .item .itemst{
  color: #fff;
  position: absolute;
  left: -9999px;
  top: -9999px;
}

/* ===== Text ===== */
#sale .name{
  font-size: .8rem;
  font-weight: 500;
  margin: 12px 0 4px;
  color: #333;
  text-align: left;
}
#sale .review{
  font-size: 1.2em;
  color: #666;
  gap: 4px;
  margin-bottom: 3px;
  text-align: left;
  height: 25px;
}
#sale .price{
  font-family: Arial, sans-serif;
  font-size: 2em;
  color: #000;
  text-align: left;
}
#sale .original-price{
  font-size: .8em;
  color: #999;
  text-decoration: line-through;
  margin-bottom: 4px;
  text-align: left;
}
#sale .discount-rate{
  color: #cc0c39;
  font-weight: 100;
  font-size: 0.9em;
  padding: 0 5px 0 0;
}
#sale .percent{
  font-weight: 700;
  font-size: .8em;
}
#sale .yen{
  color: #000;
  font-size: .7em;
  padding: 0 3px 0 0;
}

/* ===== Button / Link ===== */
#sale .sale-btn{
  background: #fb7b20;
  color: #fff;
  font-weight: 600;
  padding: 12px 0;
  border-radius: 9999px;
  cursor: pointer;
  transition: background 0.2s;
}
#sale .sale-in{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
#sale .csdf-right-dtl-txt-greater{
  margin-left: 6px;
}
#sale .itemlink{
  position: absolute;
  inset: 0;
  z-index: 1;
}

/* ===== Scroll (Carousel) ===== */
#sale .sale-item-area.scroll{
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  gap: .5em;
  -webkit-overflow-scrolling: touch;
  padding: 1em 0;
  max-width: 1800px;
  margin: 0 auto 1em;
}
#sale .sale-item-area.scroll .item{
  flex: 0 0 calc((100% - 5.5em) / 5.5);
  scroll-snap-align: start;
}

/* Carousel controls */
#sale .carousel-wrapper{
  position: relative;
  max-width: 1800px;
  margin: 0 auto;
  width: 90%;
}
#sale .carousel-btn{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 60px;
  height: 135px;
  background: rgba(255, 255, 255, 0.9);
  border: 3px solid #ccc;
  border-radius: 7px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.5em;
  color: #555;
  cursor: pointer;
  user-select: none;
  padding: 0;
  transition: background 0.3s, box-shadow 0.3s;
}
#sale .carousel-btn.left{ left: 5px; }
#sale .carousel-btn.right{ right: 5px; }
#sale .carousel-btn:hover{
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

/* ===== Grid (別レイアウト) ===== */
#sale .grid-container{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 33px 20px;
  max-width: 1500px;
  margin: 0 auto 1em;
  width: 90%;
}

/* ===== Item & Image (grid) ===== */
#sale .grid-item{
  position: relative;
  display: block;
}
#sale .grid-item img{
  width: 100%;
  height: auto;
  display: block;
  border-radius: 7px;
}

/* ===== Badge ===== */
#sale .badge{
  position: absolute;
  top: -21px;
  right: 5px;
  padding: .6em 1em;
  background: #D71C1C;
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  line-height: 1;
  border-radius: 5px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .18);
  z-index: 99;
  animation: floaty 3.6s ease-in-out infinite;
}
#sale .badge .num{
  font-size: 1.3em;
  margin: 0 2px;
}
#sale .badge::after{
  content: "";
  position: absolute;
  right: 25px;
  bottom: -17px;
  border-width: 9px;
  border-style: solid;
  border-color: #D71C1C transparent transparent transparent;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,.12));
}

.cate-sale #sale .sale-item-area {
  grid-template-columns: repeat(5, 1fr);
  padding: 0 3em;
  width: 100%;
  gap: 1em;
}

#contents.cate-sale .fes-area-ctr .contents-area {
max-width: 1600px;
}

#contents.cate-sale .fes-area-ctr .cam-area .contents-area {
  background-color: #f5bf5b;
}

  #contents.cate-sale .fes-area-ctr .cam-area .contents-area .sub-ttl {
  background-color: #f5bf5b;
  color: #fff;
}

.cate-sale #sale .grid-container {
  margin: 0 auto 3em;
  width: 80%;
}

#contents.cate-sale .more-link-box {
  display: block;
  max-width: 900px;
  width: 100%;
  margin: 3em auto;
  text-align: center;
  font-size: 1.5rem;
  border: none;
}

@keyframes floaty{
  0%   { transform: translateY(0) rotate(0deg); }
  50%  { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
.grid-item:nth-child(2n) .badge{ animation-delay: .6s; }
.grid-item:nth-child(3n) .badge{ animation-delay: 1.2s; }

@media (prefers-reduced-motion: reduce){
  .badge{ animation: none; }
}

/* ===== Mini title ===== */
#sale .mini-ttl{
  font-size: 2.5em;
  font-weight: bold;
  color: #333333;
  text-align: center;
  font-family: 'M PLUS 1p', sans-serif;
  margin: 2em auto 1em;
  background-color: #FAF9D9;
  padding: .3em 0;
}

/* ===== Responsive ===== */

@media (max-width: 1600px){
  #sale .sale-item-area.scroll .item{
    flex: 0 0 calc((100% - 4.5em) / 4.5);
  }
}

@media screen and (min-width: 500px) and (max-width: 1500px){

  #sale .price {
    font-size: 1.5em;
}

}



@media screen and (min-width: 1599px) and (max-width: 1840px){
  #sale .sale-txt{ min-height: 150px; }
}

@media screen and (min-width: 500px) and (max-width: 1600px){
  #sale .item6 .discount-rate{ display: block; }
  #sale .sale-txt{ min-height: 147px; }
  #sale .item6 .sale-txt{ min-height: 186px; }
}

/* スマホ */
@media (max-width: 499px){
  #sale .grid-container,.cate-sale #sale .grid-container
  { grid-template-columns: repeat(2, 1fr);
    width: 100%;
    gap: 25px 10px;
    margin: 1em auto;
  }

  #contents #sale.contents-area h3 {
    font-size: 1.2em;
    margin: 2em auto 0;
    padding: .8em;
}

  #sale .sale-item-area,.cate-sale #sale .sale-item-area{
    width: 100%;
    gap: 1em .5em;
    grid-template-columns: repeat(2, 1fr);
    padding: .5em 0;
  }

  #sale .item-group{ padding: 6px; }

  #sale .sale-txt{
    padding: 0 .4em .5em;
    font-size: .7em;
    min-height: 90px;
  }

  #sale .review {
    height: 15px;
}

  #sale .original-price{ font-size: 1em; }

  #contents.cate-sale .fes-area-ctr .contents-area .sub-ttl{ font-size: 1.8em; padding: 1em 0 .5em;}

  #sale .sale-item-area.scroll .item{
    flex: 0 0 calc((100% - 2.5em) / 2.5);
  }
  #sale .sale-item-area.scroll .price{ font-size: 1.7em; }

  #sale .carousel-btn{ display: none; }

  #sale .prime-menu-item{ font-size: 0.7em; }
  #sale .prime-menu{ padding: .5em; }

  #sale .mini-ttl{
    font-size: 2em;
    margin: 1em auto .5em;
  }

  #sale .price{ font-size: 1.4rem; }

  #sale h3:nth-of-type(n+2){ margin: 2em auto .5em; }
  #sale h3{ border-radius: 0; }

  #sale .sale-btn{ padding: 2px 0; }

  #contents #sale .more-link-box .link-btn .btn-inner{
    padding: 1em .5em;
    font-size: .9em;
    margin: 0 auto;
  }

  #sale .sale-item-area .item .discount-rate{ width: 60%; }

  #sale .sale-item-area .item .sale-in{
    padding: .6em 0;
    font-size: .9em;
  }

  #sale .contents-box .button-grid{
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: .5rem;
  }
  #sale .contents-box .container{ padding: 2rem; }
  #sale .contents-box h1{ font-size: 2rem; }

  #sale .contents-box .btn-animated-outline{
    padding: 1em .5em;
    min-height: 50px;
    font-size: 0.9rem;
    flex-direction: column;
    gap: 0.5rem;
    text-align: center;
  }

  #sale .contents-box .btn-icon{
    width: 28px;
    height: 28px;
    font-size: 1.1rem;
  }

  #sale .sale-item-area .item{ padding: 0;border-radius: 5px; }
  #sale .sale-item-area .item .name{ font-size: .7rem; }


  #sale .badge{
    top: -15px;
    right: -5px;
    font-size: 9px;
    line-height: 1;
    padding: .8em 1em;
  }

  #sale .carousel-wrapper .discount-rate{ display: block; }
}


/* ============================================================
   sns.css - SNS, quiz (#sns, #quiz)
============================================================ */

#sns .checkpoint-ttl {
  padding: .5em .8em;
  font-size: 1.5em;
  margin: 1rem auto .8rem;
  border: none;
  text-align: left;
  line-height: 1.5;
  background-color: #2868B2;
  color: #ffffff !important;
}
#contents #sns strong {
  background: linear-gradient(transparent 70%, #ffee5e 70%);
  font-size: 1.3em;
}

#quiz .wid40 {
  width: 100% !important;
  flex-basis: 100% !important;
}

 #quiz .wid60 {
    width: 96% !important;
    flex-basis: 96% !important;
    margin: 0 auto;
}


#quiz .comment{
font-size: 1.2em;

}
#quiz .question-card figure {
  text-align: center;
}

#quiz .question-card figure img {
  display: inline-block;
}
#quiz .sub-title{
font-size: 1.5em;
    font-weight: bold;
    margin: 3em auto 0.5em;

}


#quiz .container {
  max-width: 1200px;
  margin: 0 auto;
}
#quiz .quiz-grid {
  display: grid;
grid-template-columns: 1fr;
  gap: 30px;
}
#quiz .question-card {
  background: #faf9f7;
  border-radius: 12px;
  padding: 30px;
  text-align: center;

}
#quiz .question-title {
  background: #2868B2;
    color: #ffffff;
    padding: 8px 15px;
    border-radius: 5px;
    font-size: 1.2em;
    font-weight: 600;
    margin-bottom: 20px;
    display: inline-block;
}
#quiz .question-text {
  font-size: 1.1em;
  margin-bottom: 20px;
  color: #2c3e50;
  font-weight: bold;
}
#quiz .options {
  list-style: none;
}
#quiz .option {
  margin-bottom: 8px;
  padding: 8px 0;
  font-size: 1.3em;
  color: #333;
}

@media screen and (min-width: 500px) {

#quiz .img-box{
width: 45%;
}

#quiz .comment-box{
width: 50%;
}
}


/* ============================================================
   campaign.css - campaign (#campaign)
============================================================ */

#campaign .checkpoint-ttl {
    padding: .5em .8em;
    font-size: 1.5em;
    margin: 1rem auto .8rem;
    border: none;
    text-align: left;
    line-height: 1.5;
    background-color: #2868B2;
    color: #ffffff !important;
}

#contents #campaign strong {
    background: linear-gradient(transparent 70%, #ffee5e 70%);
    font-size: 1.3em;
}

/* campaign card list - 3 columns (horizontal card: label + visual left / body right) */
#campaign .campaign-card-list,
#sns .campaign-card-list {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 1.5rem;
    max-width: 1200px;
    margin: 0 auto;
}
#campaign .campaign-card,
#sns .campaign-card {
    display: block;
    position: relative;
    background-color: #fff;
    overflow: visible;
    padding: 1.2rem 1rem 1rem;
    line-height: 1.5;
    text-decoration: none;
    color: inherit;
    border: 1px solid rgba(0,0,0,0.06);
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.2s ease;
}


#campaign .campaign-card-label {
    position: absolute;
    top: -8px;
    left: -8px;
    z-index: 2;
    background-color: #4e88ae;
    color: #fff;
    font-size: 0.75em;
    font-weight: bold;
    letter-spacing: 0.08em;
    padding: 6px 14px;
    border-radius: 0 0 10px 0;
    text-transform: uppercase;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
#campaign .campaign-card-inner,
#sns .campaign-card-inner {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 0;
    min-height: 120px;
}
#sns .campaign-card-label {
  position: absolute;
  top: -31px;
  left: -17px;
  z-index: 2;
  background-color: #5e613b;
  color: #fff;
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 0.08em;
  padding: 8px 14px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

#sns .campaign-card-label.in-cam {
    background-color: #ba53a3;
}
#sns .campaign-card-label.x-cam {
    background-color: #000000;
}
#sns .campaign-card-label.bs-cam {
    background-color: #026AFF;
}
  #sns .campaign-card-label.th-cam {
      background-color: #000000;
  }


#campaign .campaign-card-visual,
#sns .campaign-card-visual {
    max-width: 300px;
    aspect-ratio: 1;
    background-color: #f0f0f0;
    overflow: hidden;
    flex-shrink: 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
#campaign .campaign-card-visual img,
#sns .campaign-card-visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
#campaign .campaign-card:hover .campaign-card-visual img,
#sns .campaign-card:hover .campaign-card-visual img {
    transform: scale(1.03);
}
#campaign .campaign-card-visual.is-noimg,
#sns .campaign-card-visual.is-noimg {
    background-color: #f7f699;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #888;
    font-size: 0.75em;
}
#campaign .campaign-card-visual.is-noimg::after,
#sns .campaign-card-visual.is-noimg::after {
    content: "img";
}
/* SNS only: landscape images - show full image, no gap below, image larger than text */
#sns .campaign-card-inner {
    align-items: flex-start;
}
#sns .campaign-card-visual {
    flex: 1 1 40%;
    max-width: 40%;
    aspect-ratio: auto;
    height: auto;
}
#sns .campaign-card-body {
    flex: 1 1 60%;
    min-width: 0;
    align-self: stretch;
}
#sns .campaign-card-visual img {
    width: 100%;
    height: auto;
    object-fit: fill;
    display: block;
}
#sns .campaign-card-visual.is-portrait {
    aspect-ratio: 16/9;
    min-height: 0;
}
#sns .campaign-card-visual.is-portrait img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* 上寄せ。微調整: 50% 8% で少し下も見える / 50% -5% でさらに上を強調 */
    object-position: 50% 6%;
}
/* SNS: platform icons row between text and button (multiple allowed) */
#sns .campaign-card-platforms {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.5em;
    margin: 0.6em 0 0.4em;
    width: 100%;
}
#sns .campaign-card-platform {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;
    padding: 0.35em 0.75em;
    font-size: 0.85rem;
    font-weight: bold;
    color: #333;
    border: 2px solid #333;
    border-radius: 6px;
    line-height: 1.2;
}
#sns .campaign-card-platform.platform-x {
    border-color: #000;
    color: #000;
}
#sns .campaign-card-platform.platform-x::before {
    content: "\1D54F";
    font-size: 1.15em;
    line-height: 1;
}
#sns .campaign-card-platform.platform-bs {
    border-color: #0085ff;
    color: #0085ff;
}
#sns .campaign-card-platform.platform-bs::before {
    content: "\1F98B";
    font-size: 1em;
    line-height: 1;
}
#sns .campaign-card-platform.platform-th {
    border-color: #000;
    color: #000;
}
#sns .campaign-card-platform.platform-th::before {
    content: "@";
    font-size: 1.05em;
    font-weight: 900;
}
#campaign .campaign-card-body,
#sns .campaign-card-body {
    flex: 1;
    padding: 0 0 0 1rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    text-align: center;
    min-width: 0;
}
#campaign .campaign-card-ttl,
#sns .campaign-card-ttl {
    margin: 0 0 0.2em;
    font-size: 1.8rem;
    font-weight: bold;
    line-height: 1.35;
    color: #002F48;
    letter-spacing: 0.02em;
}
#campaign .campaign-card-date,
#sns .campaign-card-date {
    margin: 0 0 0.3em;
    font-size: 1.2rem;
    line-height: 1.5;
    text-align: left;
}
#campaign .campaign-card-btn,
#sns .campaign-card-btn {
    display: inline-block;
    margin-top: 0.5em;
    padding: 1em;
    text-align: center;
    font-size: 1.2rem;
    font-weight: bold;
    width: 55%;
    min-width: 140px;
    color: #fff;
    background-color: #d71b1c;
    border-radius: 8px;
    text-decoration: none;
}
#campaign .campaign-card:hover .campaign-card-btn,
#sns .campaign-card:hover .campaign-card-btn {
    background-color: #e82a2b;
}
@media screen and (max-width: 768px) {
    #campaign .campaign-card,
    #sns .campaign-card {
        padding: 1.3rem;
    }
    #campaign .campaign-card-list,
    #sns .campaign-card-list {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
    #campaign .campaign-card-inner,
    #sns .campaign-card-inner {
        min-height: auto;
        flex-direction: column;
        gap: 0.8rem;
    }
    #campaign .campaign-card-visual,
    #sns .campaign-card-visual {
        width: 100%;
        max-width: 100%;
        min-width: auto;
        aspect-ratio: 1;
    }
    #sns .campaign-card-visual {
        aspect-ratio: 16/9;
    }
    #campaign .campaign-card-body,
    #sns .campaign-card-body {
        padding: 0;
        align-items: flex-start;
        text-align: left;
    }
    #campaign .campaign-card-ttl,
    #sns .campaign-card-ttl {
        font-size: 1.1rem;
        margin-bottom: 0.3rem;
    }
    #campaign .campaign-card-date,
    #sns .campaign-card-date {
        font-size: 0.9rem;
    }
    #campaign .campaign-card-btn,
    #sns .campaign-card-btn {
        width: 100%;
        font-size: 1rem;
        padding: 0.8em;
    }
    #campaign .campaign-card-label,
    #sns .campaign-card-label {
        font-size: 0.9rem;
        padding: 4px 10px;
        top: -24px;
    left: -21px;
    }
}


/* ============================================================
   coupon.css - coupon (#coupon)
============================================================ */

#coupon .hidden {
    display: none;
}

#coupon .timer-area{
display: none;
}

#coupon .contents-box{
position: relative;
}

/* 画像・タイトル・説明・もっと見る（横2並び） */
#coupon .coupon-link-ttl {
	margin: 0 0 0.8em;
	font-size: 1.5rem;
	font-weight: bold;
	text-align: center;
	color: #fff;
}
#coupon .coupon-link-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1.5rem;
	max-width: 1100px;
	margin: 0 auto;
	padding: 0 0 2em;
}
#coupon .coupon-link-grid:has(.coupon-link-card:only-child) {
	justify-items: center;
}
#coupon .coupon-link-grid .coupon-link-card:only-child {
	grid-column: 1 / -1;
	justify-self: center;
	width: 100%;
	max-width: 550px;
}
#coupon .coupon-link-card {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	background: #fff;
	overflow: hidden;
	border: 1px solid rgba(0,0,0,0.08);
	box-shadow: 0 2px 10px rgba(0,0,0,0.06);
	text-decoration: none;
	color: inherit;
	transition: box-shadow 0.25s ease, border-color 0.2s ease;
}
#coupon .coupon-link-card:hover {
	box-shadow: 0 8px 24px rgba(0,0,0,0.12);
	border-color: rgba(0,0,0,0.12);
}
#coupon .coupon-link-card-img {
	width: 220px;
	min-width: 220px;
	aspect-ratio: 1;
	overflow: hidden;
	background: #f0f0f0;
	flex-shrink: 0;
}
#coupon .coupon-link-card-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}
#coupon .coupon-link-card:hover .coupon-link-card-img img {
	transform: scale(1.03);
}
#coupon .coupon-link-card-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 1rem;
  align-items: flex-start;
}
#coupon .coupon-link-card-body .coupon-link-card-ttl {
	margin: 0 0 0.3rem;
	font-size: 1.25rem;
	font-weight: bold;
	line-height: 1.3;
	color: #002F48;
}
#coupon .coupon-link-card-desc {
	margin: 0 0 0.6rem;
	font-size: 0.95rem;
	line-height: 1.5;
	color: #333;
  text-align: left;
}
#coupon .coupon-link-card .more-link-box {
	margin: 0;
}
@media screen and (max-width: 768px) {
	#coupon .coupon-link-ttl {
		font-size: 1.2rem;
		margin-bottom: 0.6em;
	}
	#coupon .coupon-link-grid {
		grid-template-columns: 1fr;
		gap: 1rem;
		padding: 0 0 1em;
	}

	#coupon .coupon-link-card-img {
		width: 100%;
		min-width: auto;
		aspect-ratio: 1;
	}
	#coupon .coupon-link-card-body {
		padding: 0.8rem;
		align-items: flex-start;
	}
	#coupon .coupon-link-card-ttl {
		font-size: 1.1rem;
	}
	#coupon .coupon-link-card-desc {
		font-size: 0.65rem;
    margin: 0;
	}
	#coupon .coupon-link-card .more-link-box {
		width: 100%;
	}
	#coupon .coupon-link-card .more-link-box .link-btn {
		width: 100%;
	}
}

#coupon .image-container {
    position: relative;
    width: 100%;
    max-width: 850px;
    margin: 0 auto;
    cursor: pointer;
}
#coupon .image-container img {
    width: 100%;
    height: auto;
}
#coupon .overlay-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    
}

#coupon .coupon-1,.coupon-2,.coupon-3{
position: absolute;
    top: 150px;
    left: 148px;
    width: 75%;
}

#coupon .bg-box{
position: relative;
}

#coupon .coupon-number-copy-area .coupon-dtl-box {
    font-size: 1.5em;
}

#coupon .coupon-number-copy-area .discount {
    font-size: 2em;
}

#coupon .comment-box{
text-align: center;
}

#coupon .contents-box > .comment-box .comment.txtAC {
	background-color: #2f5d7b;
	width: 77%;
	border-radius: 5px;
	padding: 1em;
	margin: 0 auto;
	color: #fff !important;
	font-size: 1.15rem;
}
#coupon .contents-box > .comment-box .comment.txtAC span,
#coupon .contents-box > .comment-box .comment.txtAC a {
	color: #fff !important;
}
#coupon .contents-box > .comment-box .comment.txtAC a:hover {
	opacity: 0.9;
}

#coupon .comment{
background-color: transparent;
}
@media screen and (min-width: 500px) {
    #coupon .coupon-number-copy-area.coupon-1 .coupon-box {
        flex-basis: 87%;
        margin: 0 auto;
    }
    #coupon .coupon-number-copy-area.coupon-1 .coupon-box {
        padding: .5em 1em 1.5em;
    }
}


/* ============================================================
   day-sale.css - day sale (#day-sale)
============================================================ */

/* SP/PC media query (empty) */


/* ============================================================
   footer.css - footer
============================================================ */
/* フッター 12アイコン：PC 4×3 / SP 3×4 */
#footer .footer-icon-grid {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}
#footer .footer-icon-grid .inner {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
  padding: 0 3em;
}
#footer .footer-icon-grid .img-box {
	display: block;
	aspect-ratio: 1;
	overflow: hidden;
	background: #f0f0f0;
}
#footer .footer-icon-grid .img-box img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

@media screen and (max-width: 499px) {
	#footer .footer-icon-grid .inner {
		grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    padding: 0;
	}

  #footer .footer-icon-grid .img-box {
    margin: 0;
  }
}

/* ============================================================
   recommend.css - recommend (#recommend), Swiper
============================================================ */

#recommend h2{
    text-align: center;
    font-size: 3em;
    margin: 0 auto;
    color: #fff;


}

#recommend a{
  color: #fff;
}
.swiper {
    width: 100%;
    height: auto;
}

.swiper-slide {
    transition-property: transform;
}

.swiper-button-next,
.swiper-button-prev {
    color: #2976C6;
    font-weight: bold; 
}
.swiper-wrapper {
  transition-timing-function: linear !important;
}

.swiper-slide {
  opacity: 0.5;
  transform: scale(0.9) !important;
  transition: all 0.3s ease;
}

.swiper-slide-active {
  opacity: 1;
  transform: scale(1.05) !important;
}


/* ============================================================
   other.css - other (magazin-area etc)
============================================================ */

.magazin-area .right-dtl-article-list {
    width: 33%;
    }
    
.magazin-area .right-dtl-article-link {
    border: none;
}

.magazin-area .right-article-ttl {
    font-size: 1.5em;
    height: auto;
    margin: 0 auto;
}
.magazin-area .right-article-cap{
height: auto;

}
.magazin-area .right-article-ttl:first-letter {
color: #d71b1c;
}

.magazin-area .right-dtl-menu{

padding: 0 .5rem;
}

/* ============================================================
   entry.css - entry (entry-end-area, more-link-box)
============================================================ */

.entry-end-area {
    position: relative;
    width: 100%;
    height: 600px;
    background-color: #fff;
    background-image: radial-gradient(#f9f9d9 20%, transparent 20%), radial-gradient(#f9f9d9 20%, transparent 20%);
    background-size: 20px 20px;
    background-position: 0 0, 10px 10px;
    overflow: hidden;
}

.main-ttl {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 20px;
    z-index: 1;
}

/* ============================================================
   before_2026 - top menu icons (3×2 grid, hover change)
============================================================ */
.before #main-visual .main-visual-area.fv-2026 {
  height: auto;
  min-height: 400px;
}
.before-countdown-wrap {
  margin: 0 auto 4em;
  text-align: center;
}
.before-countdown {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5em;
  color: #fff;
}
.before-countdown-label {
  position: relative;
  display: inline-block;
  padding: 0.4em 1.2em;
  background-color: #fff;
  color: #d71b1c;
  font-size: 2.2rem;
  font-weight: 700;
  border-radius: 3px;
}
.before-countdown-label::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -8px;
  border-width: 8px 10px 0 10px;
  border-style: solid;
  border-color: #fff transparent transparent transparent;
}
.before-countdown-time {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 0.8em;
  padding: 2em 0 0;
  font-family: "Century Gothic", "Franklin Gothic Medium", "Arial Black", "Avenir Next", Arial, sans-serif;
}
.before-countdown-num {
  display: inline-block;
  min-width: 3em;
  padding: 0.3em 0.7em;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.35);
  font-size: 3rem;
  font-weight: 700;
  line-height: 1.2;
}
.before-countdown-unit {
  font-size: 1.6rem;
  margin-left: 0.1em;
  margin-bottom: 0.1em;
}
.before-2026-menu {
  margin: 0 auto 5em;
  max-width: 2000px;
  padding: 0 3em;
}
.before .sub-ttl {
  font-size: 3rem;
  text-align: center;
  color: #ffffff;
  margin: 1em auto 0;
}
.before-2026-lead {
  color: #fff;
  font-size: 1.8rem;
  text-align: center;
  margin: 0.3em 0 1em;
}

.before-movie {
  max-width: 1000px;
  margin: 0 auto 3em;
}
.before-movie-inner {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
}
.before-movie-inner iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

@media screen and (max-width: 499px) {
  .before #main-visual .main-visual-area.fv-2026 {
    min-height: 190px;
}

#contents.before .sub-ttl {
  font-size: 1.9em;
}

.before-2026-menu {
  margin: 0 auto 1em;
}

  .before-countdown-wrap {
    margin: 0 auto 3em;
    padding: 0 1em;
  }
  .before-countdown-time {
    flex-wrap: wrap;
        gap: 0.2em;
        padding: 1.2em 0 0;
  }
  .before-countdown-label {
    font-size: 1.3rem;
  }
  .before-2026-menu {
    padding: 0 1em;
}
  .before-countdown-num {
    font-size: 1.9rem;
        min-width: 1em;
        padding: .3em;
  }
  .before-countdown-unit {
    font-size: 1rem;
  }
}
.before-2026-menu-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 0;
  margin: 0 auto;
  list-style: none;
}
.before-2026-menu-item {
  width: 16.6666%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 0 1rem;
}
.before-2026-menu-img-wrap {
  position: relative;
  display: inline-block;
}
.before-2026-img {
  display: block;
  width: 100%;
  height: auto;
}
.before-2026-img-color {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
}
.before-2026-menu-item:hover .before-2026-img-color {
  opacity: 1;
}

@media screen and (max-width: 2000px) {
  .before-2026-menu {
    max-width: 1500px;

  }
  .before-2026-menu-item {
    width: 33.3333%;
  }
}

@media screen and (max-width: 499px) {
  .before-2026-menu-item {
    width: 50%;
  }
}


/* ============================================================
   fuku.css - fuku (#fuku) fukubukuro
============================================================ */

#fuku .block-column-area {
  max-width: 1200px;
  margin: 0 auto;
  position: relative; /* 追加：オーバーレイの基準 */
  padding: 0 1em;
}

#fuku .block-column-right.wid60 {
  background-color: #fff;
  padding: 2em;
}

#fuku .comment-box{
  color: #333;
  font-size: 1.5rem;
}

#fuku .img-box img{
  border: 2px solid #fff;
  border-radius: 5px;
}

#fuku .img-block.change-img .img-box {
  margin: 0;
}

#fuku .comment.ttl{
  font-size: 2.5rem;
  font-weight: 800;
  padding: 0;
}

#fuku .comment.sub-text{
  font-size: 1.2rem;
  padding: 0;
  line-height: 1.5;
  color: #000;
}

#fuku .item-data-box{
font-family: "Century Gothic", "Franklin Gothic Medium", "Arial Black", "Avenir Next", Arial;
display: block;
font-size: 1.2rem;
}
#fuku .item-data-box .main-price .yen,
#fuku .item-data-box .main-price .itempr,
#fuku .item-data-box .main-price .bold,
#fuku .item-data-box .yen,
#fuku .item-data-box .bold{
vertical-align: baseline !important;
}



#fuku .item-data-box .bold{
font-weight: 900;
font-size: 1.5rem;
padding: 0 .1em 0 0;
color: #d80000;
}

#fuku .item-data-box .main-price{
font-size: 2.5rem;
padding: 0 .5em 0 0;
display: block;

}

#fuku .yen {
  font-weight: 900;
}

#fuku .item-data-box .main-price .bold
{
font-size: 3.5rem;
padding: 0 .1em 0 0;

}

#fuku .icon-stock{
  padding: 0 0 .4em;
    color: #2976C6;
    border-bottom: 1px solid #fff;
    margin: 0;
    font-size: 1.2rem;

}

#contents .more-link-box.item-link .link-btn .btn-inner {
padding: .8em;
background-color: #333 !important;
font-weight: 400;
color: #fff;
}

#contents #fuku .more-link-box{
margin: 0 0;

}
/* 完売 */
/* soldoutオーバーレイ本体（存在すれば常に表示） */
#fuku .block-column-area .soldout-overlay {
  display: flex;
  position: absolute;
  inset: 0; /* top, right, bottom, left: 0 */
  background: rgba(51, 51, 51, 0.9); /* 半透明グレー */
  align-items: center;
  justify-content: center;
  z-index: 5;
}

/* 中身のレイアウト（縦並びで中央） */
#fuku .soldout-overlay-inner {
  text-align: center;
}

/* 「完売しました」テキスト */
#fuku .soldout-text {
  color: #fff;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  margin: 0 0 1rem;
}


#fuku .item-ranking .item-list .box-1 {
  text-align: center;
}

.item-img.item1 {
  width: 90%;
  max-width: 600px;
  margin: 0 auto;
}

#fuku .item-ranking .item-list .item .item-img {
  display: inline-block;
  vertical-align: middle;
  border-radius: 10px;
}


@media screen and (max-width:480px) {
    
  #fuku .fuku-box {
      display: block;
  }
  #fuku .soldout-text {
      font-size: 1.5rem;
}
#fuku .icon-stock{
    font-size: 1rem;

}
}

@media screen and (min-width:768px) {
  #fuku .item-ranking .item-list .item .item-img {
      overflow: hidden;
      position: relative;
  }
      
  #fuku .item-ranking .item-list.box-1 .item {
      max-width: 650px;
  }
  
  #fuku .item-ranking .item-list.box-1 .item .item-img {
      max-width: 650px;
      display: block;
      margin: 0 auto;
  }    
  
  #fuku .fuku-area .item-list {
      width: 100%;
  }    
}


/* ============================================================
   tencho.css - tencho (#tencho)
============================================================ */

/* ============================================================
   fixed-nav - 右下追従メニュー（サンワの日ビジュアルに合わせた装飾）
============================================================ */
.fixed-nav {
	position: fixed;
	bottom: 1.5rem;
	right: 1rem;
	z-index: 1000;
	background: rgba(255,255,255,0.98);
	box-shadow: 0 4px 20px rgba(0,0,0,0.12);
	padding: 0.6rem 0.4rem;
	min-width: 240px;
	backdrop-filter: blur(10px);
}
.fixed-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
}
.fixed-nav-link {
	display: block;
    position: relative;
    padding: 1rem 1rem;
    margin: 0 0 0.25rem;
    font-size: 1.3rem;
    font-weight: 600;
    color: #1A3256;
    text-decoration: none;
    transition: all 0.25s ease;
}
.fixed-nav-link:last-child {
	margin-bottom: 0;
}
.fixed-nav-link:hover {
	background: rgba(244,205,0,0.15);
	color: #E3242B;
}
.fixed-nav-link.is-active {
	background: linear-gradient(135deg, #E3242B 0%, #c61e26 100%);
	color: #fff;
	font-weight: 700;
	box-shadow: 0 2px 8px rgba(227,36,43,0.3);
}
.fixed-nav-link.is-active::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 10px;
  height: 100%;
	background: #F4CD00;
	border-radius: 0 2px 2px 0;
}

/* 右下追従 TOPボタン */
.fixed-top-button {
	position: fixed;
	bottom: 4.5rem;
	right: 0;
	z-index: 1001;
	display: block;
	line-height: 0;
	border-radius: 4px;
	transition: opacity 0.2s ease;
}
.fixed-top-button:hover {
	opacity: 0.9;
}
.fixed-top-button img {
	display: block;
	width: auto;
	max-width: 185px;
	object-fit: contain;
	vertical-align: bottom;

}

.swiper-wrapper .yen,.swiper-wrapper .itempr{
  color: #ffffff;
}

.swiper-wrapper .rt_item .rt-name {
  text-align: left;
  display: inline-block;
  max-height: 3em;
  line-height: 1.5em;
  overflow: hidden;
}
@media screen and (max-width: 1300px) {
	.fixed-nav {
		bottom: 0;
		left: 0;
		right: 0;
		border-radius: 0;
		padding: 0;
		min-width: auto;
		width: 100%;
		max-width: 100%;
		box-shadow: 0 -2px 20px rgba(0,0,0,0.15);
	}
	.fixed-top-button {
		bottom: 7rem;
    right: -1rem;
	}
	.fixed-top-button img {
		max-width: 125px;
	}
	.fixed-nav-list {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 0.3rem;
	}
	.fixed-nav-link {
		padding: 1rem 0.7rem;
    font-size: 0.85rem;
		margin-bottom: 0;
		flex: 0 1 auto;
		min-width: calc(33.333% - 0.2rem);
		text-align: center;
		border-radius: 0;
	}
	.fixed-nav-link.is-active::before {
		width: 100%;
		height: 3px;
		top: auto;
		bottom: 0;
		left: 0;
		transform: none;
		border-radius: 0;
	}
}

/* ============================================================
   スマホ対応：499px以下 まとめ
============================================================ */
@media screen and (max-width: 499px) {
	/* contents / fes-area */
	#contents .fes-area-ctr {
		width: 100%;
	}
	#contents .fes-area-ctr .contents-area {
		width: 100%;
		margin: 0 auto;
		box-shadow: none;
		padding: 0 1.8em 2em;
	}
	#contents .fes-area-ctr .contents-area:nth-of-type(odd) .contents-box,
	#contents .fes-area-ctr .contents-area:nth-of-type(even) .contents-box {
		border: none;
	}
	#contents .fes-area-ctr .contents-area .sub-ttl,
	#contents .sub-ttl {
		font-size: 2.5em;
		padding: .5em .5em .3em;
		font-weight: 900;
	}
	#contents .fes-area-ctr .contents-area .sub-ttl {
		border-radius: 0;
		margin: 0;
	}
	#contents .contents-area .contents-box {
		border-radius: 0 0 10px 10px;
		padding: .5em 0 1em;
	}
	#contents .contents-area h3 {
		font-size: 1.6em;
        margin: 1em 0 .5em;
	}
	#contents .contents-area .contents-area-scroll-img {
		display: none;
	}
	#contents .contents-area .contents-area-scroll-img img {
		max-width: 80px;
	}
	#contents .more-link-box,#contents.cate-sale .more-link-box {
		width: 100%;
		margin: 0 auto 1em;
	}
  #contents #fuku .more-link-box {
    padding-top: 0;
}

	#contents .more-link-box .link-btn .btn-inner {
		padding: .8em 0;
    font-size: 1.1rem;
	}
  #contents .more-link-box.item-link .link-btn .btn-inner {
    padding: .6em;
  }
	#sns .img-box,
	#campaign .img-box {
		margin: 0;
	}

	/* main-visual */
	#main-visual .main-visual-area.fv-2026 {
		min-height: auto;
		padding: 1em 0;
	}
	#main-visual .fv-title-wave {
		padding: 12px 24px 16px;
	}
	#main-visual .fv-promo-left {
    position: absolute;
    top: 44%;
    left: 0%;
    transform: translateY(-50%);
    z-index: 5;
	}

	#main-visual .fv-promo-right {
		position: absolute;
        top: 8%;
        left: auto;
        right: 0%;
        transform: translateY(-50%);
        z-index: 5;
	}

  #main-visual .fv-icon-ranking{
    display: none;
  }
	#main-visual .fv-icon-point5,
	#main-visual .fv-icon-ranking,
	#main-visual .fv-icon-review,
	#main-visual .fv-icon-delivery {
		max-width: 75px;
		margin: 0 auto;
    z-index: 5;
	}
	#main-visual .fv-nav {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 8px;
		margin-top: -15px;
		padding: 0 16px 20px;
	}
	#main-visual .fv-nav-item {
		flex: 0 0 calc(33.333% - 6px);
		max-width: calc(33.333% - 6px);
		min-width: 0;
	}
	#main-visual .fv-nav-img {
		max-width: 100%;
	}
	#main-visual .main-visual-area {
		height: 250px;
	}
	#main-visual .curtain-top-img {
		width: 100%;
		height: auto;
		display: block;
	}
	#main-visual .content-area {
		min-width: unset;
		top: 45px;
	}
	#main-visual .subtitle-img {
		width: 70%;
	}
	#main-visual .main-title {
		width: 95%;
		margin: 0 auto;
	}
	#main-visual .title-char {
		margin: 0 2px;
	}
	#main-visual .yellow-circle {
		width: 20%;
		left: 3%;
		top: -12%;
	}
	#main-visual .date-area {
		top: 52%;
		left: 43%;
	}
	#main-visual .curtain-left .curtain-side-img,
	#main-visual .curtain-right .curtain-side-img {
		display: none;
	}
	#menu .spno {
		display: none;
	}
	#menu .fixed-menu {
		position: fixed;
		right: 0;
		left: 0;
		bottom: 0;
		width: 100%;
		z-index: 99;
		border-top: 1px #fff solid;
		border-right: 1px #fff solid;
		border-left: 1px #fff solid;
	}
	#menu .fixed-menu ul {
		display: flex;
	}
	#menu .sp-fixed-menu.menu-area li {
		margin: 0;
		width: 34%;
		flex-basis: 34%;
		padding: .8em 0;
		font-size: 1em;
		flex-direction: row;
		border: 1px solid #fff;
		background-color: #ffffff !important;
		color: #fff;
		border-radius: 0;
		position: relative;
	}
	#menu .sp-fixed-menu.menu-area .menu-p {
		background-color: #e6006a !important;
		color: #fff !important;
	}
	#menu .sp-fixed-menu.menu-area .menu-r {
		background-color: #d5051b !important;
		color: #fff !important;
	}
	#menu .sp-fixed-menu.menu-area .menu-o {
		background-color: #e99a00 !important;
		color: #fff !important;
	}
	#menu .sp-fixed-menu.menu-area .menu-sp {
		background-color: #ec5c5b !important;
		color: #fff !important;
	}
	#menu .sp-fixed-menu.menu-area .menu-v {
		background-color: #6b2b82 !important;
		color: #fff !important;
	}
	#menu .sp-fixed-menu.menu-area .menu-icon {
		display: none;
	}
	#menu .menu-list li {
		width: 25%;
		flex-basis: 25%;
		padding: 0;
	}
	#menu .menu-area .menu-list img {
		display: block;
		font-size: 1.2em;
		max-width: 150px;
		font-weight: 900;
		line-height: 1.5;
		filter: drop-shadow(0px 10px 2px rgba(0, 0, 0, 0.1));
		margin: 0 3px;
	}

	/* 福袋 #fuku */
	#fuku .block-column-area {
		display: flex;
		flex-direction: column;
		box-sizing: border-box;
		padding: 0;
	}
	#fuku .block-column-left,
	#fuku .block-column-right {
		width: 100% !important;
		box-sizing: border-box;
	}

	#fuku .block-column-right.wid60 {
		padding: 1em;
		margin-top: 1em;
	}
	#fuku .img-block {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}
	#fuku .img-block .img-box img {
		max-width: 100%;
		height: auto;
		display: block;
	}
	#fuku .comment.ttl {
		font-size: 1.5rem;
	}
	#fuku .comment.sub-text {
		font-size: 1rem;
    padding: 0 0 .5em;
	}
	#fuku .item-data-box {
		font-size: 1rem;
		letter-spacing: -0.03em;
	}
	#fuku .item-data-box .main-price,
	#fuku .item-data-box .main-price .bold,
	#fuku .item-data-box .yen,
	#fuku .item-data-box .bold {
		letter-spacing: -0.04em;
	}
	#fuku .item-data-box .main-price {
		font-size: 2rem;
		line-height: 1;
	}
	#fuku .item-data-box .main-price .bold {
		font-size: 2.5rem;
		font-weight: 600;
	}
  #fuku .yen {
    font-weight: 600;
}
#fuku .item-data-box .bold {
  font-weight: 600;
}
	#fuku .comment-box {
		font-size: 1.2rem;
	}
	#fuku .img-block:not(.change-img) .img-box {
		width: 100%;
		max-width: 100%;
	}
	#fuku .img-box {
		margin: 0 0 .5em;
	}
	#fuku .img-block.change-img {
		display: flex;
		flex-wrap: wrap;
		gap: 0.2rem;
		justify-content: center;
	}
	/* 5列：幅100%になるよう計算 (5*幅 + 4*gap = 100% → 幅 = (100% - 0.8rem)/5) */
	#fuku .img-block.change-img .img-box {
		width: calc(20% - 0.25rem);
	}

	/* クーポン */
	#coupon .coupon-link-card-img {
		width: 135px;
		min-width: 135px;
		height: auto;
		aspect-ratio: auto;
	}
	#coupon .coupon-link-card-img img {
		width: 100%;
		height: auto;
		display: block;
		object-fit: contain;
	}
	#coupon .coupon-link-card-body .coupon-link-card-ttl {
		font-size: 1rem;
	}
	#coupon .contents-box > .comment-box .comment.txtAC {
		width: 100%;
		font-size: .8rem;
		padding: 0.8em;
	}
	#contents #coupon .more-link-box {
		margin: 0 auto;
	}

  #contents #coupon .coupon-link-grid .more-link-box {
		padding-bottom: 0;
	}
  #contents .coupon-link-card-body .more-link-box .link-btn .btn-inner {
    font-size: .65em;
}
	#coupon .coupon-1,
	#coupon .coupon-2,
	#coupon .coupon-3 {
		top: 14px;
        left: 29px;
        width: 85%;
	}
	#coupon .coupon-number-copy-area .coupon-box {
		padding: 0 1em .5em;
	}
	#coupon .coupon-copy-btn-area {
		margin: 0 auto .5em;
	}
	#coupon .btn-copy {
		padding: .3em 1.5em;
	}
	#coupon .coupon-number-copy-area .coupon-dtl-box {
		padding: 0;
	}
	#coupon .comment-box {
		margin: 0 auto;
	}
	#coupon .comment {
		margin: 0 auto;
	}

	/* recommend */
	#recommend .sub-ttl {
		font-size: 1.5em;
	}

	/* menu-area jelly / night-coupon */
	.menu-area {
		gap: 0;
		margin: 0 auto;
		width: 96%;
	}
	.jelly-button svg {
		width: 100%;
		height: 100%;
		display: block;
	}
	.jelly-button-link {
		margin: 0 3px;
		display: block;
		width: 31%;
	}
	.jelly-text {
		font-size: 1.2em;
	}
	.night-coupon-banner {
		padding: 15px 20px;
		margin: 0 10px;
	}
	.main-text {
		font-size: 1.7rem;
	}
	.moon-icon {
		font-size: 2rem;
		margin-right: 10px;
	}
	.detail-button {
		padding: 10px 18px;
		font-size: 0.9rem;
	}
	.night-coupon-banner .banner-content {
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
	}
	.night-coupon-banner .main-text {
		font-size: 1.6em;
	}
	.night-coupon-banner .detail-button {
		padding: 5px 24px;
		margin: .8em 0 0;
	}
	#menu .fixed-menu li {
		margin: 0;
		width: 25%;
		flex-basis: 25%;
		padding: .8em 0;
		font-size: 1em;
		flex-direction: row;
		border: 1px solid #fff;
		background-color: #d71b1c !important;
		color: #fff;
		border-radius: 0;
		position: relative;
	}
	#menu .fixed-menu .menu-name {
		color: #ffffff;
	}
	#menu .menu-list li {
		width: 25%;
		flex-basis: 25%;
		padding: 0;
	}

	
	/* quiz */
	#quiz .wid60 {
		width: 100% !important;
		flex-basis: 100% !important;
		margin: 0 auto;
	}
	#quiz .quiz-grid {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	#quiz .question-card {
		padding: 20px;
		width: 100%;
	}
	#quiz .question-title {
		font-size: 1.1em;
	}
	#quiz .question-text {
		font-size: 1.2em;
	}
	#quiz .option {
		padding: 6px 0;
		font-size: 1.1em;
	}
	#quiz .sub-title {
		margin: 1em auto .5em;
	}

	/* dream_lottery スマホ */
  #contents.dream_lottery .dream-catch-wrap {
    max-width: 1200px;
    padding: 1em 0 0;
    width: 80%;
    
}

	#contents.dream_lottery #main-visual.contents-area {
		background-size: 143%;
	}
	#contents.dream_lottery .dream-catch-wrap .contents-box {
		font-size: 1rem;
    padding: 1em 0 0;
	}
	#contents.dream_lottery .dream-catch-balloon {
		padding: 1em;
		font-size: 1em;
	}

  #contents.dream_lottery #dream .contents-box {
    padding: 1em 0;
    font-size: .9rem;
    text-align: left;
}

	#contents.dream_lottery #dream .sub-ttl {
		border-bottom: 4px solid #d80000;
		margin: 0 auto;
		display: inline-block;
		padding: 1em 1em 0;
		font-size: 1.3rem;
	}
	#contents.dream_lottery #dream .contents-box .imgbanner img {
		max-width: 100%;
	}
	#contents #dream .more-link-box .link-btn .btn-inner {
		width: 100%;
		display: block;
		font-size: 1rem;
	}
	#contents.dream_lottery .fes-area-ctr .cam-area .contents-area {
		box-shadow: none;
    padding: 1em;
	}

	/* footer */
	.img-2 .img-box,
	.img-2 .inner {
		width: 100%;
	}

	/* magazin */
	.magazin-area .right-dtl-article-list {
		width: 100%;
	}

	/* tencho */
	#tencho .img3 .img-box:first-of-type {
		width: 100%;
		margin: 0 auto .5em;
	}
	#tencho .img3 .img-box:not(:first-of-type) {
		width: 50%;
	}

	body {
		padding-bottom: 80px;
	}

  #sale .sale-limit {
    left: 2px;
    top: 2px;
    padding: 0.3em 0.55em 0.1em;
    font-size: .8rem;
    }
    
    #sale .sale-limit .limit-num {
        font-size: 1.1rem;
    }
    #end-message .fsLL {
      font-size: 1em !important;
  }
}