* { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    background-color: rgb(1,1,1);
    line-height: 1.6;
    font-size: 16px;
    overflow-x: hidden;
    width: 100%;
    padding-top: 60px; 
}

a { text-decoration: none; color: inherit; transition: 0.3s; }
a:hover { opacity: 0.8; }
img { max-width: 100%; height: auto; display: block; }

/* --- Header  --- */
.header{background-color:#111;position:fixed;top:0;left:0;width:100%;height:60px;z-index:1000;box-shadow:0 2px 5px rgba(0,0,0,.5)}.header-inner{max-width:1320px;width:100%;height:100%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 20px}.logo{font-family:Impact,Haettenschweiler,'Arial Narrow Bold',sans-serif;font-weight:600;font-size:1.4rem;color:#fff;white-space:nowrap}.header-actions{display:flex;align-items:center;height:100%;gap:15px}.instagram{height:36px;width:36px;display:block}.instagram img{height:100%;width:100%;object-fit:contain}.header-btn{background-color:transparent;color:#fff;font-size:1.8rem;padding:0;line-height:1;border:none;cursor:pointer;display:flex;align-items:center}.admission{width:70px;height:60px;text-align:center;background-color:#e80000;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-right:-20px;color:#fff}.admission img{width:24px;height:24px;margin-bottom:4px}.admission p{margin:0;font-size:10px;line-height:1;font-weight:700}.menu{background:#000;position:fixed;top:0;right:-250px;width:250px;height:100%;z-index:2000;transition:.3s;padding-top:60px;box-shadow:-2px 0 5px rgba(0,0,0,.5);overflow-y:auto}.menu a{display:flex;align-items:center;padding:15px 20px;font-size:16px;color:#fff;border-bottom:1px solid #333;transition:background .3s}.menu a:hover{background:#0b43dc}.overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1500;backdrop-filter:blur(2px)}

/* タイトル周り */
.section-title {text-align: center; font-size:1.5rem !important; font-weight: bold; letter-spacing: 0.1em;;color: white;
}
.jp-sub {display: block; font-size: 0.9rem; font-weight: normal; color: #888; margin: 5px auto 5px auto;
}
.flow{ margin-top: 50px; padding: 20px;
}
.step-list { display: flex; flex-direction: column; gap: 30px; margin-bottom: 50px;
}
@media (min-width: 768px) {
    .step-list {flex-direction: row; align-items: stretch; gap: 20px;
    }
}
.step-item {background: #222; border-radius: 10px; padding: 0;
    flex: 1; display: flex; flex-direction: column; position: relative; border: 1px solid #333;
}
.step-header {background: #333; padding: 15px; border-radius: 10px 10px 0 0; display: flex; align-items: center; gap: 10px;border-bottom: 2px solid white; 
}
.step-num {background:white; color: black; font-weight: bold;width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: 0.9rem;
}
.step-title {font-size: 1.1rem; font-weight: bold; margin: 0; color: white;
}
.step-body {padding: 20px; font-size: 0.9rem; color: #ccc; line-height: 1.6; flex-grow: 1; /* 下まで伸ばす */
}
.option-grid {display: flex; gap: 10px; margin-bottom: 10px;
}
.option-box {flex: 1; padding: 10px 5px; border-radius: 5px; text-align: center; border: 1px solid #444;transition: transform 0.5s;
}
.option-box:hover{
    transform: scale(1.1);
}
.option-box.required { border-color: #e63946; background: rgba(230,57,70,0.1); }
.option-box.free { border-color: #4cc9f0; background: rgba(76,201,240,0.1); }

.badge {display: inline-block; font-size: 0.7rem; padding: 2px 6px; border-radius: 3px; margin-bottom: 5px; color: #fff; font-weight: bold;
}
.badge.red { background: #e63946; }
.badge.blue { background: #4cc9f0; color: #000; }
.option-target { font-weight: bold; color: #fff; line-height: 1.2; margin-bottom: 5px; font-size: 0.85rem;}
.option-desc { font-size: 0.75rem; margin: 0; }
.step-note { font-size: 0.8rem; color: #888; margin-top: 10px; }
@media (min-width: 768px) {
    .step-item:not(:last-child)::after {content: '▶'; position: absolute; right: -18px; top: 50%; transform: translateY(-50%); color: #555; font-size: 1.2rem; z-index: 1;
    }
}
.flow-btn-area { text-align: center; margin-top: 30px; }
.btn-primary {display: inline-block; background-color: #e63946; color: #fff; padding: 15px 50px; border-radius: 50px; text-decoration: none; font-weight: bold; transition: 0.3s;
}
.btn-primary:hover { background-color: #d62828; transform: translateY(-3px); }

/* --------------------
Footer Styles (Mobile First Optimized)
-------------------- */
.footer{background-color:#111;color:#ccc;padding:50px 0 20px;margin-top:60px;font-size:.9rem;border-top:3px solid #222}.footer-inner{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px}.footer-col{flex:1;min-width:280px}.footer-title{color:#fff;font-size:1.1rem;font-weight:700;margin-bottom:20px;border-left:4px solid #e80000;padding-left:12px;letter-spacing:.05em}.footer-logo{font-family:Impact,sans-serif;color:#fff;font-size:1.8rem;margin-bottom:15px;line-height:1}.footer-desc{margin-bottom:20px;font-size:.85rem;color:#aaa}.footer-sns{display:flex;gap:15px}.footer-sns a{width:44px;height:44px;transition:opacity .3s}.footer-nav{list-style:none;padding:0;columns:2;column-gap:20px}.footer-nav li{margin-bottom:12px}.footer-nav a{color:#ccc;text-decoration:none;display:block;transition:color .3s;font-size:.9rem}.footer-nav a:hover{color:#e80000}.shop-details{margin-bottom:20px}.address{color:#fff;margin-bottom:15px;line-height:1.6}.hours-box{display:inline-block;background:#222;padding:8px 15px;border-radius:4px;margin-bottom:15px;border:1px solid #333}.hours-box .label{color:#e80000;font-weight:700;font-size:.8rem;margin-right:8px}.hours-box .time{color:#fff;font-weight:700}.tel-btn{display:flex;align-items:center;justify-content:center;background-color:#fff;color:#000;font-weight:700;text-decoration:none;padding:12px;border-radius:50px;margin-top:10px;max-width:260px;transition:background .3s;box-shadow:0 4px 6px rgba(0,0,0,.3)}.tel-btn:hover{background-color:#ddd;opacity:1}.tel-btn .icon{margin-right:10px;font-size:1.2rem}.map-container{width:100%;margin:20px 0;border-radius:8px;overflow:hidden;box-shadow:0 4px 10px rgba(0,0,0,.5);background:#222}.map-container iframe{vertical-align:bottom;filter:grayscale(20%) contrast(1.1)}.access-text{margin-top:15px;font-size:.85rem}.access-item{margin-bottom:12px;border-bottom:1px dashed #333;padding-bottom:12px}.access-item:last-child{border-bottom:none}.access-item strong{color:#fff;display:block;margin-bottom:4px}.access-item p{color:#aaa;margin:0;line-height:1.5}.footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid #222;text-align:center}.copyright{color:#555;font-size:.75rem;margin:0}@media(min-width:768px){.footer-col.info-col{flex:1.3}.footer-nav{columns:1}.tel-btn{display:inline-flex;width:auto;padding:10px 25px}}
