@charset "UTF-8";

/* ─────────────────────────────────────────────────────────────────────────────
   1. Core Reset & Base
   ───────────────────────────────────────────────────────────────────────────── */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, dl, dt, dd, ol, ul, li {
    margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline;
    background: transparent; box-sizing: border-box; letter-spacing: 0.02em; color: var(--color_text);
}
body {
    line-height: 1.6; font-family: 'Noto Sans JP', sans-serif; font-weight: normal;
    padding-top: 100px; background-color: var(--color_bg); color: var(--color_text);
}
ul { list-style: none; }
a { text-decoration: none; transition: 0.3s; color: #fff; }
a:hover { opacity: 0.7; }
img { max-width: 100%; height: auto; vertical-align: middle; }

.eng { font-family: "Castoro Titling", serif; }
.min02 { font-family: "Noto Serif JP", serif; }
.oz_tc { text-align: center; }

/* ─────────────────────────────────────────────────────────────────────────────
   2. Layout Components
   ───────────────────────────────────────────────────────────────────────────── */
.oz_content { width: 90%; max-width: 1100px; margin: auto; }

/* Header */
.oz_head {
    position: fixed; top: 0; left: 0; width: 100%; z-index: 1000;
    background: var(--color_bg); border-bottom: 1px solid rgba(255,255,255,0.1);
}
.oz_header_wrap {
    height: 80px; display: flex; justify-content: space-between; align-items: center;
    width: 90%; max-width: 1200px; margin: auto;
}
.oz_logo .oz_h1span { font-size: 24px; font-weight: bold; }
.oz_headText { display: flex; align-items: center; gap: 20px; }
.oz_headText_pt02 { font-size: 20px; font-weight: bold; }

/* Navigation */
.oz_menuBox { display: flex; gap: 25px; margin: 20px auto; justify-content: center; }
.oz_headlink_text01 { font-size: 11px; color: var(--color_sub); display: block; }
.oz_headlink_text02 { font-size: 16px; font-weight: 500; }

/* Footer */
.oz_foot { padding: 80px 0 40px; background: var(--color_footer); text-align: center; border-top: 1px solid rgba(255,255,255,0.1); }
.foot_logo { margin-bottom: 20px; font-size: 28px; font-weight: bold; }
.foot_tel__text01 { font-size: 24px; margin-bottom: 5px; }
.foot_tel__text02 { font-size: 13px; color: var(--color_sub); }
.oz_foot__cont02__ListWrap { display: flex; justify-content: center; gap: 20px; margin: 40px 0; flex-wrap: wrap; }
.oz_foot__cont02__copy { font-size: 12px; opacity: 0.6; }

/* ─────────────────────────────────────────────────────────────────────────────
   3. Common UI Elements
   ───────────────────────────────────────────────────────────────────────────── */
.oz_Title { font-size: 32px; margin-bottom: 60px; font-weight: 400; text-align: center; }
.oz_Title .eng { display: block; font-size: 14px; color: var(--color_sub); margin-bottom: 10px; letter-spacing: 0.2em; }

.btn-outline-gold {
    display: inline-block; padding: 12px 40px; border: 1px solid var(--color_sub);
    color: var(--color_sub); text-align: center; border-radius: 2px; font-size: 14px;
}
.btn-outline-gold:hover { background: var(--color_sub); color: #000; }

/* System Boxes (Price Tables) */
.oz_systemBox { margin-bottom: 60px; padding: 40px 0; background: transparent; }
.oz_systemBox h2 {
    display: inline-block; font-size: 22px; margin-bottom: 30px; padding-bottom: 10px;
    border-bottom: 1px solid var(--color_sub);
}
.oz_systemBox table { width: 100%; max-width: 800px; margin: 0 auto 20px; }
.oz_systemBox tr { display: flex; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,0.1); }
.oz_systemBox td { padding: 15px 10px; font-size: 16px; }
.oz_systemBox td:first-child { width: 60%; text-align: left; }
.oz_systemBox td + td { width: 40%; text-align: right; font-weight: bold; font-size: 18px; }
.oz_systemBox p { max-width: 800px; margin: auto; font-size: 13px; opacity: 0.7; }

/* Shop Info Block */
.oz_TopSecShopinfo { padding: 100px 0; background: rgba(255,255,255,0.03); border-top: 1px solid rgba(255,255,255,0.05); }
.info-wrap { display: flex; gap: 40px; justify-content: space-between; flex-wrap: wrap; }
.info-card { flex: 1; min-width: 300px; }
.info-card h3 { font-size: 20px; margin-bottom: 25px; border-left: 3px solid var(--color_sub); padding-left: 15px; }
.info-table { width: 100%; }
.info-table th { text-align: left; padding: 12px 0; width: 100px; border-bottom: 1px solid rgba(255,255,255,0.1); font-weight: normal; color: var(--color_sub); }
.info-table td { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,0.1); }

/* ─────────────────────────────────────────────────────────────────────────────
   4. Page Specific Styles
   ───────────────────────────────────────────────────────────────────────────── */

/* Home: Slider & Concept */
.oz-slider, .oz-slider02 { width: 100%; height: auto; margin-bottom: 80px; }
.oz-image_img, .oz-image03_img { width: 100%; height: auto; object-fit: cover; }

.oz_TopSec_concept { padding: 120px 0; }
.oz_TopSec_conceptBox { background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.05); padding: 80px 40px; border-radius: 4px; }

/* Home: Pickup Cast */
.oz_TopSec03 { padding: 100px 0; background: rgba(255,255,255,0.02); }
.oz_TopSec03Cont { display: flex; align-items: center; gap: 50px; }
.oz_TopSec03Cont_box01 { flex: 1; }
.oz_TopSec03Cont_box02 { flex: 1.2; }
.oz_profText01 { font-size: 28px; margin-bottom: 20px; }
.oz_profText03 { font-size: 15px; color: rgba(255,255,255,0.7); margin-bottom: 30px; }
.oz_profBtn { display: inline-block; padding: 10px 30px; background: var(--color_sub); color: #000; border-radius: 2px; }

/* Cast: Profiles */
.oz_profileSec01_cont01 { display: flex; gap: 60px; margin-bottom: 80px; }
.oz_profileSec01_box01 { flex: 1; max-width: 450px; }
.oz_profileSec01_box02 { flex: 1.2; }
.oz_profileSec01_box01_img { width: 100%; border-radius: 4px; }
.oz_profileTable { width: 100%; border-top: 1px solid rgba(255,255,255,0.1); }
.oz_profileTable th { text-align: left; padding: 15px 0; color: var(--color_sub); border-bottom: 1px solid rgba(255,255,255,0.1); width: 120px; }
.oz_profileTable td { padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,0.1); }

/* Recruit */
.oz_recruitSec01 { padding: 80px 0; }
.oz_recruitSec01--table { width: 100%; border-top: 1px solid var(--color_sub); }
.oz_recruitSec01--th { text-align: left; padding: 25px 15px; background: rgba(255,255,255,0.02); border-bottom: 1px solid rgba(255,255,255,0.1); width: 150px; }
.oz_recruitSec01--td { padding: 25px 15px; border-bottom: 1px solid rgba(255,255,255,0.1); }

/* ─────────────────────────────────────────────────────────────────────────────
   5. Age Gate Overlay (Premium Vanilla)
   ───────────────────────────────────────────────────────────────────────────── */
.oz_overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: radial-gradient(circle at center, #1a1a1a 0%, #000 100%);
    z-index: 10000; display: flex; flex-direction: column;
    justify-content: center; align-items: center; text-align: center;
    padding: 20px;
}
.oz_entryLogo { margin-bottom: 50px; }
.oz_entryLogo img { max-width: 280px; filter: drop-shadow(0 0 20px rgba(255,255,255,0.1)); }

.oz_entry_wrap { display: flex; gap: 30px; margin-bottom: 50px; max-width: 600px; width: 100%; }
.oz_entry {
    flex: 1; padding: 40px 20px; background: rgba(255,255,255,0.03); 
    border: 1px solid rgba(255,255,255,0.1); color: #fff;
    cursor: pointer; transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
    border-radius: 4px; display: flex; flex-direction: column; align-items: center;
}
.oz_entry:hover { 
    background: rgba(255,255,255,0.08); 
    border-color: var(--color_sub);
    transform: translateY(-5px);
}
.oz_entry.oz_pt02 { 
    background: var(--color_sub); color: #000; border: none;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
}
.oz_entry_text01 { font-size: 28px; font-weight: bold; margin-bottom: 8px; letter-spacing: 0.1em; }
.oz_entry_text02 { font-size: 13px; opacity: 0.7; font-weight: 500; }
.oz_entry.oz_pt02 .oz_entry_text02 { color: #000; opacity: 0.8; }

.oz_entry_text { font-size: 14px; line-height: 2; opacity: 0.6; max-width: 500px; }

/* ─────────────────────────────────────────────────────────────────────────────
   6. Footer Banners (Ad / Reciprocal Links)
   ───────────────────────────────────────────────────────────────────────────── */
.oz_footer_banners { margin-bottom: 80px; padding-bottom: 60px; border-bottom: 1px solid rgba(255,255,255,0.05); }
.oz_banner_list { 
    display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); 
    gap: 15px; justify-items: center; align-items: center;
}
.oz_banner_list li { list-style: none; transition: 0.3s; }
.oz_banner_list li:hover { opacity: 0.8; transform: scale(1.02); }
.oz_banner_list img { display: block; width: 100%; height: auto; border-radius: 2px; }
