@charset "UTF-8";

html{
	font-size:30px;
}

body{
	font-family: "UD デジタル 教科書体 N-R","Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-size:30px;
	line-height:1.5;
	background-color:#1eb9ef;
	background-image:url("../img/common/bg.jpg");
	background-position:center center;
	background-attachment:fixed;
	background-size:cover;
	background-repeat:no-repeat;
	height:100%;
	text-align:center;
	color:#fff;
}

h1,h2,h3,h4,h5,h6{
	margin:0;
	padding:0;
	line-height:1.5;
}
.left{
	text-align:left;
}

#top_title{
	margin-top:200px;
	margin-bottom:50px;
}

#top_title h1{
	font-size:50px;
	text-shadow:0 0 10px rgba(0,0,0,0.2);
}
#top_title h1 span{
	font-size:100px;
}

a.active_btn{
	background:#FFF700;
	color:#222;
	font-weight:bold;
	text-shadow:5px 2px 0px #fff;
	text-decoration:none;
	display:inline-block;
	min-width:10%;
	padding:20px 100px;
	margin:20px;
	border:solid 5px #fff;
	border-radius:100px;
	box-shadow:0 0 10px rgba(0,0,0,0.5);
}
a.active_btn:hover{
	box-shadow:none;
	background:#FF9900;
}
.quest_type{
	display:none;
}

header{
	text-align:left;
	padding:20px;
}
header a{
	color:#fff;
	text-decoration:none;
}
header a span{
	margin-left:10px;
	margin-top:10px;
	margin-bottom:10px;
}

#main{
	background:#fff;
	padding:50px 20px;
	width:90%;
	margin-left:auto;
	margin-right:auto;
	color:#333;
	position:relative;
}
#main h1{
	font-size:1rem;
	margin-bottom:50px;
}
#main .input{
	position:relative;
}
#main input{
	font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-size:1.2rem;
	letter-spacing:0.2rem;
	padding:20px;
	border:none;
	margin:0;
	text-align:center;
	color:#fff;
	position:absolute;
	top:0;
	left:calc(50% - 370px);
	z-index:1;
	max-width:700px;
	width:90%;
	min-height:1.2rem;
	display:block;
	outline: none;
}
#main input:focus {
    outline: none;
}
#main .img img{
	max-height:100%;
	max-width:100%;
}
#main .img{
	height:230px;
	display:flex;
	justify-content:center;
	align-items:center;
}
#main .txt{	
	margin-top:20px;
}

#main #kana{
	font-size:2rem;
	line-height:1.2;
}
#main #alphabet{
	font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-size:1.2rem;
	letter-spacing:0.2rem;
	line-height:1.2;
}
#main #char_typing{
	font-family: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	font-size:1.2rem;
	letter-spacing:0.2rem;
	padding:20px;
	margin:20px auto;
	text-align:center;
	border:1px solid #999;
	max-width:700px;
	display:block;
	min-height:1.2rem;
	position:relative;
	z-index:100;
	width:90%;
	word-break: break-all;
}
#main #char_typing .miss{
	color:#f00;
}
#main #correct{
	position:absolute;
	color:#f00;
	font-size:20rem;
	top:calc(50% - 10rem);
	left:calc(50% - 10rem);
	z-index:500;
}
#main #times_block{
	background:#00B9FF;
	color:#fff;
	position:absolute;
	top:0;
	right:0;
	min-width:5rem;
	text-align:center;
	padding:20px;
	border:3px solid #fff;
}
#main #times_block #times{
	font-size:2rem;
	margin-right:0.3rem;
}

/* result */

.title img{
	max-width:60px;
	vertical-align:middle;
}
#main .title h1{
	margin-bottom:20px;
}
#resultBlock{
	background:#00CBFF;
	color:#fff;
	max-width:700px;
	text-align:center;
	padding:1rem;
	margin-left:auto;
	margin-right:auto;
	border-radius:10px;
}
#resultBlock #resultTime{
	font-size:3rem;
	display:block;
	margin-left:1rem;
}
#resultBlock #questSum{
	font-size:1.2rem;
}
#resultBlock #tps{
	font-size:0.8rem;
}
#resultBlock>div{
	display:flex;
	flex-grow:1;
	justify-content:center;
	align-items:center;
}
#lebel{
	padding:50px 20px;
	max-width:700px;
	margin-left:auto;
	margin-right:auto;
	font-size:0.8rem;
}
#lebel p{
	margin:0;
	padding:0;
}
#lebel #lebel_txt{
	font-size:2rem;
}
#lebel img{
	max-width:100%;
	margin-top:20px;
}
.retry_btn{
	padding:20px 100px;
	border:solid 3px #999;
	border-radius:100px;
	min-width:10%;
	text-decoration:none;
	display:inline-block;
	color:#333;
	margin-top:50px;
}
.retry_btn:hover{
	background:#eee;
}

#modal_bg{
	background:rgba(0,0,0,0.5);
	width:100%;
	height:100%;
	position:fixed;
	z-index:1000;
	top:0;
	left:0;
}
#modal{
	background:#fff;
	position:fixed;
	z-index:1500;
	padding:50px;
	top:50%;
	margin-top:-200px;
	left:50%;
	margin-left:-200px;
	width:300px;
	height:300px;
	border-radius:50%;
	font-size:7rem;
	text-align:center;
	color:#300;
}

.currentC{
	color:#00B9FF;
}
.checked{
	color:#999;
}


/*amazon*/
.product-card {
            background-color: #ffffff;
            border-radius: 12px;
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            overflow: hidden;
            max-width: 320px; /* カードの最大幅 */
            width: 100%;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        .product-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
        }

        /* * 商品画像のコンテナ
         */
        .product-image-container {
            width: 100%;
            padding-top: 100%; /* 1:1の正方形を維持 */
            position: relative;
            background-color: #f9f9f9;
        }

        /* * 商品画像
         * object-fit: contain で画像がコンテナ内に収まるようにします。
         */
        .product-image {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            object-fit: contain; /* または 'cover' */
            padding: 16px; /* 画像の周りに余白を追加 */
            box-sizing: border-box;
        }

        /* * 商品情報エリア
         */
        .product-info {
            padding: 20px;
        }

        /* * 商品タイトル
         */
        .product-title {
            font-size: 18px;
            font-weight: 600;
            color: #111;
            margin: 0 0 8px 0;
            /* 長いタイトルを省略する設定 */
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            text-overflow: ellipsis;
            min-height: 44px; /* 2行分の高さを確保 */
        }

        /* * 商品説明
         */
        .product-description {
            font-size: 14px;
            color: #555;
            line-height: 1.6;
            margin: 0 0 16px 0;
            /* 長い説明を省略する設定 */
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
            text-overflow: ellipsis;
            min-height: 66px; /* 3行分の高さを確保 */
        }

        /* * Amazonへのリンクボタン
         */
        .amazon-button {
            display: block;
            width: 100%;
            padding: 12px;
            background: linear-gradient(to bottom, #f7dfa5, #f0c14b);
            border: 1px solid;
            border-color: #a88734 #9c7e31 #846a29;
            border-radius: 8px;
            color: #111;
            text-align: center;
            text-decoration: none;
            font-size: 16px;
            font-weight: 500;
            cursor: pointer;
            transition: background 0.2s ease;
            box-sizing: border-box; /* 【修正箇所】はみ出しを防止 */
        }

        .amazon-button:hover {
            background: linear-gradient(to bottom, #f5d78e, #eeb933);
        }