.header {
    background: url(../images/header.jpg) no-repeat center top;
    background-size: 100%;
    aspect-ratio: 128 / 85;
}
.top_bg {
    background: url(../images/main_bg.jpg) repeat-y;
    background-size: 100% auto;
}

/* ----------------------
 * CATCH SECTION
 *---------------------- */
.catch-section {
  text-align: center;
}
.catch-sub {
  font-size: 16px;
  color: #fff;
  line-height: 1.9;
  margin-bottom: 10px;
}
.catch-sub img{
    width: 100%;
    height: auto;
}
.catch-mid {
  font-size: 18px;
  color: #fff;
  font-weight: bold;
  margin-bottom: 4px;
}
.catch-red {
  font-size: 20px;
  color: #ff3333;
  font-weight: bold;
  margin-bottom: 6px;
}
.catch-main {
  font-size: 32px;
  font-weight: 900;
  color: #fff;
  letter-spacing: 0.05em;
  margin-bottom: 8px;
  text-shadow: 0 0 20px rgba(100,150,255,0.5);
}
.catch-en {
  font-size: 13px;
  color: #aac4ff;
  letter-spacing: 0.2em;
  margin-bottom: 4px;
}
.catch-scroll {
  font-size: 15px;
  color: #fff;
  margin-bottom: 24px;
}

/* ----------------------
 * NAV BUTTONS
 *---------------------- */
.nav-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 10px;
  max-width: 640px;
  margin: 0 auto;
  padding: 10px;
}
.nav-btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 14px;
  border: 1.5px solid #3a5a9a;
  border-radius: 4px;
  background: rgba(10,20,60,0.8);
  color: #e0e8ff;
  font-size: 13px;
  font-weight: bold;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
}
.nav-btn:hover {
  background: rgba(30,60,140,0.8);
  border-color: #6a9aff;
}
.nav-btn .arrow { color: #6a9aff; font-size: 16px; }

/* ----------------------
 * WHAT IS SECTION
 *---------------------- */
.whatis-section {
  background: #fff;
  color: #222;
  padding: 28px 20px;
  max-width: 680px;
  margin: 0 auto;
}
.whatis-title {
  color: #c00;
  font-size: 25px;
  font-weight: bold;
  font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
  margin-bottom: 10px;
}
.whatis-text {
  font-size: 13px;
  line-height: 1.85;
  color: #333;
}

/* ----------------------
 * WORLD WISDOM BANNER
 *---------------------- */
.wisdom-section {}
.wisdom-line1 {
  font-size: 22px;
  font-weight: 900;
  color: #fff;
  line-height: 1.5;
}
.wisdom-line2 {
  font-size: 18px;
  color: #ffdd44;
  font-weight: bold;
  margin-top: 8px;
}
.wisdom-line3 {
  font-size: 16px;
  color: #fff;
  margin-top: 6px;
}
.wisdom-line4 {
  font-size: 20px;
  color: #fff;
  font-weight: bold;
  margin-top: 4px;
}

/* ----------------------
 * FORTUNE SECTIONS
 *---------------------- */
.fortune-section {
  background: #0d1628;
  border-top: 4px solid #1a3a6a;
  padding: 0 0 0 0;
}
.fortune-inner {
  max-width: 640px;
  margin: 0 auto;
  padding: 28px 16px;
}
.fortune-name {
font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
  font-size: 32px;
  font-weight: 900;
  color: #e0e8ff;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid #2a4a8a;
}

.origin-box {
  border-left: 3px solid #3a6aaa;
  background: rgba(20,40,100,0.5);
  padding: 14px 16px;
  margin-bottom: 22px;
  border-radius: 0 4px 4px 0;
}
.origin-label {
  color: #ffcc44;
  font-size: 12px;
  font-weight: bold;
  margin-bottom: 8px;
    font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
}
.origin-desc {
  font-size: 13px;
  color: #c8d8f8;
  line-height: 1.85;
}

.supervisor-row {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}
.supervisor-photo {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #3a6aaa;
  flex-shrink: 0;
}
.supervisor-name {
    font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
  font-size: 18px;
  font-weight: bold;
  color: #e0e8ff;
}
.supervisor-profile {
  font-size: 13px;
  color: #a0b8d8;
  line-height: 1.85;
  margin-bottom: 22px;
}

/* ----------------------
 * FREE MENU
 *---------------------- */
.free-menu-label img{
    width: 100%;
    height: auto;
    margin: 0;
}
.free-menu-box {
  background: rgba(10,20,50,0.8);
  border: 1px solid #2a4a8a;
  border-radius: 4px;
  padding: 18px 16px;
  margin-bottom: 20px;
}
.free-menu-title {
  font-size: 20px;
font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
  font-weight: bold;
  margin-bottom: 10px;
  line-height: 1.6;
}
.free-menu-desc {
  font-size: 13px;
  color: #c0d0f0;
  line-height: 1.85;
  margin-bottom: 20px;
}

.menutitle{
    width: 100%;
    margin: 10px auto 15px;
    color: #fff;
    font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
    font-size: 180%;
}
/* ----------------------
 * FORM
 *---------------------- */
.form-block { display: flex; flex-direction: column; gap: 14px; }
.form-group { display: flex; flex-direction: column; gap: 6px; }
.form-label { font-size: 12px; color: #7ab0ff; font-weight: bold; }
.form-input {
  background: rgba(255,255,255,0.08);
  border: 1px solid #3a5a9a;
  border-radius: 3px;
  padding: 10px 12px;
  color: #ccc;
  font-size: 13px;
  width: 100%;
}
.form-input::placeholder { color: #666; }
.form-select {
  background: rgba(255,255,255,0.08);
  border: 1px solid #3a5a9a;
  border-radius: 3px;
  padding: 10px 8px;
  color: #fff !important;
  font-size: 13px;
}
.form-select optgroup,
.form-select option { color: black; }
.form-select-full { width: 100%; }
.year-sel { min-width: 90px; }
.birthday-row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.date-unit { color: #c0d0f0; font-size: 13px; }
.name-row { display: flex; gap: 8px; align-items: center; }
.name-row .form-input { flex: 1; }
.gender-row { display: flex; gap: 24px; }
.radio-label { display: flex; align-items: center; gap: 6px; color: #c0d0f0; cursor: pointer; }
.form-btn {
  width: 100%;
  padding: 14px;
  border: none;
  border-radius: 3px;
  color: #fff;
  font-size: 15px;
  font-weight: bold;
  cursor: pointer;
  letter-spacing: 0.1em;
  margin-top: 6px;
}

/* ------s----------------
 * PREMIUM BOX
 *---------------------- */
.premium-box {
}
.premium-badge-row {
  display: flex;
  align-items: stretch;
  background: rgba(15,25,70,0.9);
  border-bottom: 1px solid #2a4a8a;
  margin-bottom: 14px;
}
.premium-badge-row img{width: 100%;}
.premium-badge {
  background: linear-gradient(135deg, #8e44ad, #5b2c8a);
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  padding: 10px 10px;
  text-align: center;
  line-height: 1.4;
  min-width: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.premium-title {
  font-size: 13px;
  font-weight: bold;
  color: #e0e8ff;
  padding: 12px 14px;
  line-height: 1.5;
  display: flex;
  align-items: center;
}
.premium-menu-row {
  display: flex;
  align-items: center;
  gap: 0;
  margin: 0 14px 8px;
  border: 1px solid #3a5a9a;
}
.premium-catego {
  background: rgba(30,50,120,0.6);
  color: #aac4ff;
  font-size: 11px;
  padding: 8px 10px;
  border-right: 1px solid #3a5a9a;
  white-space: nowrap;
}
.premium-menu-name {
  padding: 8px 12px;
  color: #c0d0f0;
  font-size: 13px;
  flex: 1;
}
.premium-catch {
  margin: 0 14px 16px;
  padding: 8px 12px;
  border: 1px solid #3a5a9a;
  color: #c0d0f0;
  font-size: 13px;
}
.premium-cta-row,
.premium-cookie-row {
  text-align: center;
}
.premium-cta-row {
  margin: 0 14px 12px;
}
.premium-cta-row a img{
    width: 100%;
    height: auto;
}
.premium-cta-row a img:hover{
    filter: brightness(120%);
}
.cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 32px;
  border: none;
  border-radius: 4px;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  min-width: 220px;
  justify-content: center;
}
.cta-btn strong { font-size: 18px; }
.cta-arrow {
  color: #ffcc00;
  font-size: 20px;
}
.price-row {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 0 14px;
}
.price-normal, .price-member {
  font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;

    font-size: 120%;

}

/* ----------------------
 * WORLD SELECTION
 *---------------------- */
.world-section {
  background: linear-gradient(180deg, #0d2a6e 0%, #0a1a5a 100%);
  padding: 32px 16px;
  text-align: center;
}
.world-title {
  font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
  font-size: 20px;
  font-weight: 900;
  color: #fff;
  margin-bottom: 6px;
}
.world-subtitle {
  font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
  font-size: 16px;
  color: #ffdd44;
  font-weight: bold;
  margin-bottom: 24px;
}
.world-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  max-width: 640px;
  margin: 0 auto;
}
.world-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 13px 10px;
  border: 1.5px solid;
  border-radius: 4px;
  background: rgba(5,10,30,0.7);
  color: #e0e8ff;
  font-size: 13px;
  font-weight: bold;
  text-decoration: none;
  transition: background 0.2s;
}
.world-btn:hover { background: rgba(20,40,100,0.8); }
.world-btn-bar {
  width: 3px;
  height: 18px;
  border-radius: 2px;
  flex-shrink: 0;
}
.world-btn-arrow { margin-left: auto; color: #aaa; }

.world-sel{
    background:linear-gradient(180deg,#0e2b6e,#091844);
    padding:28px 14px;
    text-align:center;
}
.world-ttl{
    font-size:19px;
    font-weight:900;
    color:#fff;
    margin-bottom:4px;
    line-height:1.5;
}
.world-sub{
    font-size:15px;
    color:#ffdd44;
    font-weight:bold;
    margin-bottom:20px;
}
.world-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:7px;
}
.wnav-btn{
    display:flex;
    align-items:center;
    gap:6px;
    padding:12px 8px;
    border:1.5px solid;
    border-radius:4px;
    background:rgba(4,10,30,.75);
    color:#d8e4ff;
    font-size:12px;
    font-weight:bold;
    text-decoration:none;
}
.wnav-bar{
    width:3px;
    height:16px;
    border-radius:2px;
    flex-shrink:0;
}
.wnav-arr{
    margin-left:auto;
    color:#888;
    font-size:14px;
}

/* ----------------------
 * WORLD DETAIL
 *---------------------- */
.wd-section{
    background:#0b1524;
    border-top:2px solid #1a3464;
    padding:22px 16px;
}
.wd-name{
    font-size:22px;
    font-weight:bold;
    color:#fff;
    margin-bottom:10px;
  font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;box-sizing: border-box;
    padding-left: 10px;
}
.wd-section.type0 .wd-name,
.wd-section.type3 .wd-name,
.wd-section.type7 .wd-name,
.wd-section.type12 .wd-name{border-left:5px solid #00bcd4;}
.wd-section.type14 .wd-name,
.wd-section.type1 .wd-name{border-left:5px solid #e91e63;}

.wd-section.type2 .wd-name,
.wd-section.type10 .wd-name,
.wd-section.type11 .wd-name{border-left:5px solid #ff9800;}

.wd-section.type8 .wd-name,
.wd-section.type9 .wd-name,
.wd-section.type4 .wd-name{border-left:5px solid #9c27b0;}

.wd-section.type6 .wd-name,
.wd-section.type5 .wd-name{border-left:5px solid #ffc107;}


.wd-section.type13 .wd-name{border-left:5px solid #4caf50;}


.form_title{
    font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
    font-size: 15px;
    color: #7ab0ff;
    font-weight: bold;
    box-sizing: border-box;
    border-top: 1px solid #7ab0ff; 
    border-bottom: 1px solid #7ab0ff; 
    padding: 5px 0;
    text-align: center;
    margin-top: 30px;
}
.free-menu-box .form_title{display: none;}
#seiyou .free-menu-box .form_title{display: block;}


.wd-desc{
    font-size:13px;
    color:#fff;
    line-height:1.9;
    margin-bottom:14px;
}
.wd-contents{
    display:flex;
    align-items:center;
    gap:10px;
    background:rgba(10,20,60,.7);
    border:1px solid #1e3a70;
    border-radius:3px;
    padding:8px 12px;
    margin-bottom:7px;
}
[class^="s-icon"] {
    width:40px;
    height:40px;
    object-fit:contain;
    flex-shrink:0;
    background-repeat: no-repeat;
    background-size: 100% 100%;
}
[class^="m-icon"] {
    width:38px;
    height:38px;
    object-fit:contain;
    flex-shrink:0;
    background-repeat: no-repeat;
    background-size: 100% 100%;
}
.s-icon0 {    background-image: url(../images/image_8.png);}
.s-icon1 {    background-image: url(../images/uranaeru_90_90_ougiyama.gif);}
.s-icon2 {    background-image: url(../images/uranaeru_90_90_indovsyu.gif);}
.s-icon3 {    background-image: url(../images/uranaeru_90_90_sabihaya.gif);}
.s-icon4 {    background-image: url(../images/uranaeru_90_90_kimonarn.gif);}
.s-icon5 {    background-image: url(../images/uranaeru_90_90_kurarara.gif);}
.s-icon6 {    background-image: url(../images/uranaeru_90_90_jonokyus.gif);}
.s-icon7 {    background-image: url(../images/uranaeru_90_90_lumikoka.gif);}
.s-icon8 {    background-image: url(../images/uranaeru_90_90_mimikota.gif);}
.s-icon9 {    background-image: url(../images/uranaeru_90_90_sakurash.gif);}
.s-icon10 {    background-image: url(../images/uranaeru_90_90_yuyukasi.gif);}
.s-icon11 {    background-image: url(../images/uranaeru_90_90_rinsyuse.gif);}
.s-icon12 {    background-image: url(../images/uranaeru_90_90_itoyumim.gif);}
.s-icon13 {    background-image: url(../images/uranaeru_90_90_comumimi.gif);}
.s-icon14 {    background-image: url(../images/uranaeru_90_90_tkkkruno.gif);}

.m-icon1 {    background-image: url(../images/icon01.png);}
.m-icon2 {    background-image: url(../images/icon02.png);}

.wd-contents-lbl{
    display:block;
    color:#6a9aff;
    font-size:10px;
    font-weight:bold;
    white-space:nowrap;
}
.wd-contents-txt a{
  font-family: "Yu Mincho Medium", "YuMincho Medium", "Hiragino Mincho ProN", serif;
    font-size:13px;
    color:#aac4e8;
}
.wd-free{
    display:flex;
    align-items:center;
    gap:10px;
    background:rgba(6,14,44,.7);
    border:1px solid #1e3a70;
    border-radius:3px;
    padding:8px 12px;
    margin-bottom:5px;
    font-size:13px;
    color:#aac4e8;
}
.wd-free1,.wd-free2{
    display:flex;
    margin-bottom: 10px;
}
@media (max-width: 480px) {
  .catch-main { font-size: 26px; }
  .nav-btn { font-size: 12px; padding: 12px 8px; }
  .world-grid { grid-template-columns: 1fr 1fr; }
  .nav-grid { grid-template-columns: 1fr 1fr; }
}