/*
Theme Name: 2026 TOUR - PATCHWORK DESIGN
Description: WordPressの大枠制限を強制突破し、全画面でMacBook13インチと同じ比率を維持
Version: 5.9.1
*/

/* --- 0. カラーパレット --- */
:root {
  --bg-dark: #231917; 
  --color-cream: #f7e7ce;
  --color-yellow: #f5a623;
  --color-red: #e63e2a;
  --color-green: #009688;
}

/* --- 1. フォントの定義 --- */
@font-face {
  font-family: "RockOne";
  src: url("font/RocknRollOne-Regular.ttf") format("truetype");
}

/* --- 2. 基本ルールと背景 --- */
html, body, .main-container, .page-wrapper, .site-outer, .row-container, .uneditable-container {
  background-color: var(--bg-dark) !important; 
  color: var(--color-cream) !important;           
  margin: 0;
  padding: 0;
  overflow-x: hidden !important; 
}

html, body {
  -webkit-text-size-adjust: 100% !important;
}

*, *::before, *::after {
  box-sizing: border-box !important;
}

.pc-br { display: block !important; } 
.ib { display: inline-block !important; } 

/* --- 3. サイトトップ：ツアーロゴエリア --- */
.tour-logo-area {
  text-align: center !important;
  padding: 6vw 2vw 2vw 2vw !important;
  width: 100% !important;
}

/* ロゴも上限を外し、常に画面の50%の大きさを維持 */
.tour-logo-area img {
  width: 50vw !important;
  max-width: none !important; 
  height: auto !important;
  filter: drop-shadow(10px 10px 0px rgba(0,0,0,0.5));
}

/* --- 4. 説明文専用：イントロ枠（三重点線デザイン） --- */
.secbox.intro {
  background-color: var(--bg-dark) !important; 
  color: var(--color-cream) !important;
  border: 3px dashed var(--color-green) !important; 
  border-radius: 2vw !important;
  margin-top: 2vw !important;
  position: relative !important;
  padding: 6vw 12% !important; 
  box-shadow: none !important;
}

.secbox.intro::before {
  content: "" !important;
  position: absolute !important;
  top: 5px !important; left: 5px !important; right: 5px !important; bottom: 5px !important;
  border: 3px dashed var(--color-yellow) !important;
  border-radius: 12px !important; 
  pointer-events: none !important;
}

.secbox.intro::after {
  content: "" !important;
  position: absolute !important;
  top: 13px !important; left: 13px !important; right: 13px !important; bottom: 13px !important;
  border: 3px dashed var(--color-red) !important;
  border-radius: 4px !important; 
  pointer-events: none !important;
}

/* ★修正：ABOUT THE TOURの改行を絶対に防ぐ */
.secbox.intro h2 {
  background-color: var(--bg-dark) !important; 
  color: var(--color-cream) !important;           
  border: 3px solid var(--color-cream) !important; 
  text-shadow: none !important;
  transform: rotate(1deg) !important;
  position: relative !important;
  z-index: 5 !important;
  text-align: center !important;
  white-space: nowrap !important;
}

/* 文字サイズ制限解除（常に13インチと同じ比率に拡大） */
.secbox.intro h3 {
  color: var(--color-yellow) !important;
  font-family: "RockOne", sans-serif !important;
  font-size: 1.6vw !important;
  text-align: left !important;
  margin: 0 0 25px 0 !important;
  padding: 0 !important;
  position: relative !important;
  z-index: 5 !important;
  font-weight: normal !important;
  line-height: 1.8 !important;
}

.secbox.intro p {
  font-size: 1.3vw !important;
  line-height: 2.2 !important;
  text-align: left !important;
  padding: 0 !important; 
  margin-bottom: 30px !important;
  position: relative !important;
  z-index: 5 !important;
}

/* PC版のみ中央揃えにするためのクラス */
@media screen and (min-width: 600px) {
  .secbox.intro p.pc-center {
    text-align: center !important;
  }
}

.secbox.intro p a {
  color: var(--color-yellow) !important;
  text-decoration: none !important;
  font-weight: bold !important;
  border-bottom: 2px dashed var(--color-yellow) !important;
  padding-bottom: 2px !important;
  transition: 0.2s ease-in-out !important;
}

.secbox.intro p a:hover {
  color: var(--color-red) !important;
  border-bottom-color: var(--color-red) !important;
}

/* --- 5. 枠の外のタイトルとボタン --- */
/* ★修正：大枠バリアを突破し、画面に対して中央に配置 */
.schedule-top {
  text-align: center;
  margin-top: 8vw;
  margin-bottom: 2vw;
  width: 85vw !important;
  max-width: none !important;
  margin-left: calc(50% - 42.5vw) !important;
  margin-right: calc(50% - 42.5vw) !important;
}

/* ★修正：スケジュールの改行を絶対に防ぐ */
.schedule-top .title {
  font-family: "RockOne", sans-serif !important;
  font-size: 9vw !important;
  color: var(--color-yellow) !important;
  text-shadow: 6px 6px 0px var(--color-red) !important;
  margin-bottom: 40px !important;
  white-space: nowrap !important;
}

.bbb {
  display: flex !important;
  justify-content: center !important;
  gap: 15px !important;
  margin-bottom: 60px !important;
  width: 100% !important;
}

.inb {
  width: 30% !important;
  border: 3px solid var(--color-cream) !important;
  border-radius: 8px !important;
  text-align: center !important;
  box-shadow: 6px 6px 0px rgba(0,0,0,0.5) !important;
  padding: 0 !important; 
  transition: 0.2s !important;
}

.inb:hover {
  transform: translateY(-3px) !important;
  box-shadow: 8px 8px 0px rgba(0,0,0,0.6) !important;
}

.inb.btn-red    { background-color: var(--color-red) !important; }
.inb.btn-yellow { background-color: var(--color-yellow) !important; }
.inb.btn-green  { background-color: var(--color-green) !important; }

.inb a {
  display: block !important;
  padding: 15px 0 !important; 
  font-family: "RockOne", sans-serif !important;
  font-size: 1.8vw !important;
  color: var(--color-cream) !important; 
  text-shadow: 2px 2px 0px var(--bg-dark) !important; 
  text-decoration: none !important;
  font-weight: bold;
}

/* --- 6. 公演セクション（個別の箱デザイン） --- */
/* ★修正：大枠バリアを突破し、画面幅の85%の比率を無限に維持する */
.secbox {
  background-color: var(--color-cream) !important; 
  color: var(--bg-dark) !important;           
  
  width: 85vw !important;
  max-width: none !important;
  margin-left: calc(50% - 42.5vw) !important;
  margin-right: calc(50% - 42.5vw) !important;
  margin-bottom: 100px !important;
  
  padding: 6vw 3vw !important;
  border: 5px solid var(--bg-dark) !important; 
  border-radius: 30px !important;
  position: relative !important;
  z-index: 1 !important;
}

.secbox.red    { box-shadow: 20px 20px 0px var(--color-red) !important; }
.secbox.yellow { box-shadow: 20px 20px 0px var(--color-yellow) !important; }
.secbox.green  { box-shadow: 20px 20px 0px var(--color-green) !important; }

.secbox.dark    { 
  background-color: var(--bg-dark) !important; 
  color: var(--color-cream) !important; 
  border-color: var(--color-cream) !important; 
  box-shadow: 3px 3px 0px var(--bg-dark), 20px 20px 0px var(--color-yellow) !important; 
}

/* ★修正：見出しの改行を絶対に防ぐ */
.secbox h2 {
  font-family: "RockOne", sans-serif !important;
  font-size: 3.5vw !important;
  color: var(--color-cream) !important; 
  text-shadow: 3px 3px 0px var(--bg-dark) !important; 
  display: block !important;        
  width: fit-content !important;   
  margin: 0 auto 40px auto !important; 
  padding: 1vw 3vw !important;
  transform: rotate(-1.5deg);
  border: 3px solid var(--bg-dark) !important;
  border-radius: 5px !important;
  white-space: nowrap !important;
}

.secbox.red h2    { background-color: var(--color-red) !important; }
.secbox.yellow h2 { background-color: var(--color-yellow) !important; } 
.secbox.green h2  { background-color: var(--color-green) !important; }

/* お知らせバナー */
.schedule-notice {
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif !important;
  color: var(--bg-dark) !important;
  text-align: center !important;
  font-size: 1.2vw !important;
  font-weight: bold !important;
  margin-bottom: 30px !important;
  padding: 15px !important;
  border: 2px dashed var(--bg-dark) !important;
  border-radius: 10px !important;
  background-color: rgba(255, 255, 255, 0.4) !important;
}

/* --- 7. カミングスーン表記の目立たせ --- */
.coming-soon {
  font-family: "RockOne", sans-serif !important;
  font-size: 2.5vw !important;
  color: var(--color-yellow) !important; 
  text-shadow: 3px 3px 0px var(--color-red) !important; 
  text-align: center !important;
  margin: 60px 0 !important;
  letter-spacing: 0.1em !important;
  display: block !important;
  white-space: nowrap !important;
}

/* --- 8. テーブルデザイン --- */
.sche table { width: 100% !important; border-collapse: collapse !important; }
.sche th, .sche td { 
  padding: 1.5vw 1vw !important; 
  border-bottom: 2px solid rgba(0, 0, 0, 0.1) !important; 
  font-size: 1.1vw !important; 
  text-align: center !important; 
}
.sche thead td { background-color: var(--bg-dark) !important; color: var(--color-cream) !important; }
.koumoku.sp { display: none !important; }

/* --- 9. ツアーファイナル特別デザイン（PC） --- */
.final-card {
  background-color: var(--bg-dark) !important; 
  color: var(--color-cream) !important;
  border: 4px solid var(--bg-dark) !important;
  border-radius: 20px !important;
  padding: 4vw 2vw !important;
  text-align: center !important;
  outline: 2px dashed var(--color-green) !important;
  outline-offset: -15px !important;
  box-shadow: inset 0 0 0 20px var(--bg-dark) !important; 
}
.final-date { font-family: "RockOne", sans-serif !important; font-size: 4vw !important; color: var(--color-yellow) !important; text-shadow: 2px 2px 0px var(--color-red) !important; }
.final-date span { font-size: 2vw !important; }
.final-place { font-size: 3vw !important; font-weight: bold !important; line-height: 1.5 !important; margin-bottom: 20px !important; }
.final-place .pref { display: inline-block !important; background-color: var(--color-green) !important; color: var(--color-cream) !important; padding: 4px 15px !important; border-radius: 5px !important; font-size: 2vw !important; margin-right: 15px !important; }
.final-info { font-size: 1.5vw !important; color: var(--color-cream) !important; opacity: 0.8 !important; }

/* --- 10. ヘッダー --- */
#masthead, #masthead .menu-wrapper, #masthead .menu-container, #masthead .navbar, .navbar-main, .menu-primary-inner {
    background-color: var(--bg-dark) !important; background: var(--bg-dark) !important; border-bottom: none !important;
}
.navbar-brand { font-size: 0 !important; width: 200px !important; height: 50px !important; display: inline-flex !important; position: relative !important; }
.navbar-brand * { display: none !important; }
.navbar-brand::before {
    content: "" !important; display: block !important; position: absolute !important; top: 0; left: 0; width: 100% !important; height: 100% !important;
    background-image: url("http://uchikubi.site/livehouse-hall-tour/wp-content/uploads/sites/22/2026/05/cropped-header_logo.png") !important;
    background-size: contain !important; background-repeat: no-repeat !important;
}

/* --- 11. レスポンシブ --- */
@media screen and (max-width: 599px) {
  .pc-br { display: none !important; }

  .tour-logo-area { padding-top: 40px !important; }
  
  .tour-logo-area img {
    width: 90vw !important; /* スマホでは大きめに */
  }

  .secbox { 
    width: auto !important; 
    margin-left: 15px !important; 
    margin-right: 15px !important; 
    padding: 30px 15px !important; 
    border-radius: 20px !important; 
    margin-bottom: 60px !important; 
  }
  
  .secbox.intro { 
    margin-left: -10px !important; 
    margin-right: -10px !important; 
    padding: 40px 15px !important; 
    box-shadow: none !important;
  } 
  
  .secbox.intro h2 { 
    font-size: 4.8vw !important; 
    padding: 8px 12px !important; 
    white-space: nowrap !important; 
    max-width: 100% !important;
    margin-bottom: 30px !important; 
  }
  
  .secbox.intro h3 { font-size: 4.4vw !important; padding: 0 5px !important; text-align: left !important; margin-bottom: 20px !important; }
  .secbox.intro p { font-size: 3.8vw !important; padding: 0 5px !important; line-height: 1.8 !important; text-align: left !important; }
  
  .schedule-top {
    width: auto !important;
    margin-left: 15px !important;
    margin-right: 15px !important;
  }

  .schedule-top .title { 
    font-size: 10vw !important; 
    white-space: nowrap !important; 
    max-width: 100% !important;
  }
  
  .secbox h2 { 
    font-size: 5vw !important; 
    padding: 4px 8px !important; 
    white-space: nowrap !important; 
    max-width: 100% !important;
    margin-bottom: 30px !important; 
  }

  .schedule-notice {
    font-size: 3.5vw !important;
    padding: 10px !important;
  }
  
  .bbb { flex-direction: column !important; align-items: center !important; padding: 0 15px !important; }
  .inb { width: 100% !important; }
  .inb a { font-size: 5.5vw !important; }
  
  .secbox.dark { box-shadow: 3px 3px 0px var(--bg-dark), 15px 15px 0px var(--color-yellow) !important; }
  
  .coming-soon { 
    font-size: 4vw !important; 
    margin: 30px 0 !important; 
    white-space: nowrap !important; 
    max-width: 100% !important;
    letter-spacing: 0.05em !important; 
  }

  .final-card {
    padding: 40px 10px !important;
    outline-offset: -10px !important;
    box-shadow: inset 0 0 0 15px var(--bg-dark) !important;
  }
  .final-date { font-size: 8vw !important; }
  .final-date span { font-size: 5vw !important; }
  .final-place { font-size: 6vw !important; margin-bottom: 15px !important; }
  .final-place .pref { font-size: 4vw !important; display: block !important; width: max-content !important; margin: 0 auto 10px auto !important; }
  .final-info { font-size: 4.5vw !important; opacity: 0.8 !important; }

  .sche table, .sche tbody, .sche th, .sche td, .sche tr { display: block !important; width: 100% !important; text-align: center !important; }
  .sche thead { display: none !important; }
  .sche tr { margin-bottom: 25px !important; border: 2px solid var(--bg-dark) !important; border-radius: 12px !important; background: rgba(255,255,255,0.4) !important; }
  .sche th { background: var(--bg-dark) !important; color: var(--color-yellow) !important; font-size: 5.5vw !important; }
  .sche td { font-size: 4.5vw !important; border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important; }
}