
/* ==========================================================================
    RESET & VARIABLES
    ========================================================================== */
:root {
    --primary-color: #e80000;
    --primary-hover: #ff1a1a;
    --bg-dark: #050505;
    --bg-card: #111111;
    --bg-light-dark: #1a1a1a;
    --text-main: #ffffff;
    --text-muted: #aaaaaa;
    --font-main: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
    --font-impact: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif;
}

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

body {
    font-family: var(--font-main);
    background-color: var(--bg-dark);
    color: var(--text-main);
    line-height: 1.6;
    font-size: 16px;
    overflow-x: hidden;
    width: 100%;
    padding-top: 60px; 
    -webkit-font-smoothing: antialiased;
}

html { scroll-padding-top: 60px; scroll-behavior: smooth; }
a { text-decoration: none; color: inherit; transition: 0.3s ease; }
a:hover { opacity: 0.8; }
img { max-width: 100%; height: auto; display: block; }

/* ==========================================================================
    UTILITY CLASSES
    ========================================================================== */
.container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
.section-padding { padding: 80px 0 120px; }

.section-header { position: relative; text-align: center; margin-bottom: 60px; }
.section-en {
    font-family: var(--font-impact); font-size: 4rem; color: rgba(255, 255, 255, 0.05);
    letter-spacing: 0.1em; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 100%; pointer-events: none; z-index: 0;
}
.section-jp { font-size: 1.5rem; font-weight: bold; color: var(--text-main); position: relative; z-index: 1; letter-spacing: 0.05em; }
.section-jp::after { content: ''; display: block; width: 50px; height: 3px; background-color: var(--primary-color); margin: 15px auto 0; }

@media (min-width: 768px) {
    .section-en { font-size: 6rem; }
    .section-jp { font-size: 2rem; }
}

/* ==========================================================================
    HEADER & FOOTER (EXISTING)
    ========================================================================== */
.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)}

.footer{background-color:#111;color:#ccc;padding:50px 0 20px;margin-top:0;font-size:.9rem;border-top:3px solid #e80000}.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}}

/* ==========================================================================
    FORM STYLES (NEW DESIGN)
    ========================================================================== */
.contact-container {
    max-width: 800px;
    margin: 0 auto;
    background: var(--bg-card);
    padding: 40px 30px;
    border-radius: 12px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.6);
    border: 1px solid rgba(255,255,255,0.05);
}

@media (min-width: 768px) {
    .contact-container { padding: 60px; }
}

/* 料金案内のボックス */
.notice-box {
    background: linear-gradient(135deg, rgba(232, 0, 0, 0.1) 0%, rgba(232, 0, 0, 0.02) 100%);
    border-left: 4px solid var(--primary-color);
    padding: 24px;
    margin-bottom: 40px;
    border-radius: 4px;
}
.notice-box h4 {
    color: var(--primary-color);
    margin-bottom: 12px;
    font-size: 1.15rem;
    display: flex;
    align-items: center;
}
.notice-box h4::before {
    content: '!';
    display: inline-flex; justify-content: center; align-items: center;
    width: 20px; height: 20px; border-radius: 50%;
    background: var(--primary-color); color: #fff;
    font-size: 0.8rem; font-weight: bold; margin-right: 10px; font-family: sans-serif;
}
.notice-box p {
    color: #ddd;
    font-size: 0.95rem;
    line-height: 1.7;
    margin: 0;
}
.notice-box strong { color: #fff; font-size: 1.05rem; }

/* 入力フォーム群 */
.form-group { margin-bottom: 30px; }

.form-group > label {
    display: block;
    margin-bottom: 10px;
    color: #eee;
    font-weight: bold;
    font-size: 0.95rem;
}

.required-tag {
    background: var(--primary-color);
    color: #fff;
    font-size: 0.7rem;
    padding: 3px 8px;
    border-radius: 3px;
    margin-left: 8px;
    vertical-align: middle;
    font-weight: normal;
}

.form-control {
    width: 100%;
    padding: 16px;
    background: var(--bg-light-dark);
    border: 1px solid #333;
    border-radius: 6px;
    color: #fff;
    font-size: 1rem;
    transition: all 0.3s ease;
    font-family: inherit;
}

.form-control::placeholder { color: #666; }

.form-control:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(232,0,0,0.2);
    background: #222;
}

/* カレンダーアイコンなどを白く反転 (ダークモード対応) */
::-webkit-calendar-picker-indicator { filter: invert(1); opacity: 0.6; cursor: pointer; }
::-webkit-calendar-picker-indicator:hover { opacity: 1; }

select.form-control {
    appearance: none;
    background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23aaaaaa%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
    background-repeat: no-repeat;
    background-position: right 15px top 50%;
    background-size: 12px auto;
}

/* 日時グループのレイアウト */
.datetime-group {
    display: flex; gap: 15px; align-items: center;
}
.datetime-group .date-input { flex: 3; }
.datetime-group .time-input { flex: 2; }

@media (max-width: 576px) {
    .datetime-group { flex-direction: column; gap: 15px; }
    .datetime-group .date-input, .datetime-group .time-input { width: 100%; }
}

textarea.form-control { resize: vertical; min-height: 120px; }

/* プライバシーポリシーの同意欄 */
.privacy-consent {
    background: rgba(255,255,255,0.03);
    padding: 25px;
    border-radius: 8px;
    margin: 40px 0 30px;
    border: 1px solid #333;
    text-align: center;
}
.privacy-consent p { font-size: 0.9rem; color: #aaa; margin-bottom: 20px; line-height: 1.6; }
.privacy-consent a { color: var(--primary-color); text-decoration: underline; transition: 0.3s; }
.privacy-consent a:hover { color: #fff; }

.checkbox-container {
    display: inline-flex; align-items: center; cursor: pointer; color: #fff; font-weight: bold; font-size: 1.05rem;
}
.checkbox-container input {
    width: 22px; height: 22px; margin-right: 12px; accent-color: var(--primary-color); cursor: pointer;
}

/* 送信ボタン */
.submit-btn {
    width: 100%;
    padding: 20px;
    background: var(--primary-color);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 1.2rem;
    font-weight: bold;
    letter-spacing: 0.1em;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    justify-content: center;
    align-items: center;
}
.submit-btn:hover:not(:disabled) {
    background: var(--primary-hover);
    transform: translateY(-3px);
    box-shadow: 0 8px 25px rgba(232,0,0,0.5);
}
.submit-btn:disabled {
    background: #2a2a2a;
    color: #666;
    cursor: not-allowed;
    border: 1px solid #444;
}

