:root {
  --bg-color: #121212;
  --card-bg: #1c1c1c;
  --text-color: #fff;
  --accent-gray: #333;
  --accent-red: #e50914;
  --font-en: "Anton", sans-serif;
  --font-jp: "Noto Sans JP", sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
body{
  background-color:var(--bg-color);
  color:var(--text-color);
  font-family:var(--font-jp);
  line-height:1.8;
  overflow-x:hidden;
  letter-spacing:.05em;
}
h1,h2,h3,h4{font-family:var(--font-en);text-transform:uppercase;letter-spacing:.15em;font-weight:normal}
a{text-decoration:none;color:inherit;transition:.3s}
ul{list-style:none}
img{width:100%;height:auto;display:block;}


/* Loader */
#loader{position:fixed;top:0;left:0;width:100%;height:100vh;background:#000;z-index:9999;display:flex;justify-content:center;align-items:center;transition:.8s}
#loader img{width:200px;animation:pulse 1.3s infinite}
@keyframes pulse{0%{opacity:.4}50%{opacity:1}100%{opacity:.4}}
.loaded{opacity:0;visibility:hidden}

/* Header */
header{
  position:fixed;top:0;width:100%;
  padding:15px 5%;
  display:flex;justify-content:space-between;align-items:center;
  z-index:1000;
  background:linear-gradient(to bottom,rgba(0,0,0,.9),transparent);
  transition:.3s;
}
header.scrolled{background:rgba(18,18,18,.95);border-bottom:1px solid #333}
.logo img{width:180px;position:relative;z-index:1002}
nav ul{display:flex;gap:20px}
nav a{font-family:var(--font-en);font-size:1rem;letter-spacing:.1em;position:relative}
nav a::after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:1px;background:#fff;transition:.3s}
nav a:hover::after{width:100%}
.btn-header{border:1px solid #fff;padding:8px 25px;font-family:var(--font-jp);font-weight:bold;font-size:.8rem}
.btn-header:hover{background:#fff;color:#000}

/* Hero */
.hero{height:100vh;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:#222;z-index:-1}
.hero-content{z-index:2;padding:0 20px}
.hero h1{font-size:4rem;margin-bottom:20px;text-shadow:0 0 30px rgba(0,0,0,.5)}
.hero p{font-size:1.2rem;color:#ddd;margin-bottom:40px}
.campaign-badge-hero{display:inline-block;background:var(--accent-red);color:#fff;padding:5px 15px;font-weight:bold;margin-bottom:15px;font-size:.9rem;letter-spacing:.1em}
.btn-main{background:#fff;color:#000;padding:18px 60px;font-size:1.1rem;font-weight:bold;display:inline-block;transition:.3s;cursor:pointer}
.btn-main:hover{background:#ccc;transform:scale(1.02)}
@media (max-width: 768px){
  .hero-bg,
  .hero-bg img{
    width: 100%;
    height: 100vh;
  }
  .hero-bg img{
    object-fit: cover;
    object-position: center;
  }
}

/* Common */
.section-padding{padding:100px 5%}
.section-title{text-align:center;font-size:3rem;margin-bottom:60px}
.section-title span{display:block;font-size:1rem;font-family:var(--font-jp);color:#888;margin-top:10px;letter-spacing:.05em}
.grid-layout{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;max-width:1200px;margin:0 auto}
.text-content h3{font-size:2.2rem;margin-bottom:25px;line-height:1.3}
.text-content p{margin-bottom:20px;color:#ccc}
/* =========================
   Mobile spacing tune
   ========================= */
@media (max-width: 768px){
  .section-padding{ padding: 70px 6%; } /* 100px→70px程度に */
  .section-title{ margin-bottom: 36px; }
}

/* Cards / grids */
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;max-width:1200px;margin:0 auto}
.card-base{background:var(--card-bg);border:1px solid #333}
.card-img-area{height:250px;width:100%}
.card-content{padding:30px}
.card-content h3{margin-bottom:15px;font-size:1.4rem}
.card-content p{font-size:.9rem;color:#bbb}

/* News */
.news-list{max-width:800px;margin:0 auto}
.news-item{display:flex;align-items:center;padding:20px 0;border-bottom:1px solid #222;flex-wrap:wrap;gap:15px}
.news-date{font-family:var(--font-en);color:#888;font-size:1rem}
.news-cat{background:#333;color:#fff;padding:2px 10px;font-size:.7rem;font-weight:bold;font-family:var(--font-en)}
.news-cat.campaign{background:var(--accent-red)}
.news-title{flex:1;color:#fff;text-decoration:underline;text-underline-offset:4px}

/* Swiper program */
.swiper{padding-bottom:50px;max-width:1200px;margin:0 auto}
.swiper-slide{background:var(--card-bg);border:1px solid #333;padding:40px;text-align:center;height:auto;display:flex;flex-direction:column;justify-content:center}
.swiper-slide h3{font-size:1.5rem}

/* Price */
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;max-width:1000px;margin:0 auto}
.price-card{background:var(--card-bg);border:1px solid #333;padding:40px 30px;text-align:center;position:relative;transition:.3s}
.price-card:hover{border-color:#666;transform:translateY(-5px)}
.price-card.featured{border:1px solid #fff}
.price-card.featured::before{content:"RECOMMENDED";position:absolute;top:0;left:50%;transform:translate(-50%,-50%);background:#fff;color:#000;padding:5px 15px;font-size:.8rem;font-family:var(--font-en)}
.price-card h3{font-size:1.4rem;margin-bottom:15px;color:#ddd}
.price-amount{font-size:2.8rem;font-family:var(--font-en);margin-bottom:10px;color:#fff;letter-spacing:.05em}
.price-tax{font-size:1rem;font-family:var(--font-jp);color:#888}
.price-desc{font-size:.9rem;color:#888;border-top:1px solid #333;padding-top:15px;margin-top:15px}
.admission-box{text-align:center;margin-bottom:50px;background:var(--card-bg);padding:30px;border:1px solid #333;max-width:600px;margin-left:auto;margin-right:auto;position:relative;overflow:hidden}
.admission-box h3{font-size:1.2rem;color:#ddd;margin-bottom:10px}
.admission-ribbon{position:absolute;top:15px;right:-30px;transform:rotate(45deg);background:var(--accent-red);color:#fff;width:120px;font-size:.8rem;font-weight:bold}
.old-price{text-decoration:line-through;color:#777;font-size:1.2rem;margin-right:15px}
.new-price{color:var(--accent-red);font-size:2.5rem;font-family:var(--font-en)}

/* Column */
.column-card{background:#0a0a0a;border:1px solid #333;transition:.3s}
.column-card:hover{border-color:#666;transform:translateY(-5px)}
.column-date{display:block;font-family:var(--font-en);color:#666;font-size:.9rem;margin-bottom:10px}
.column-card h3{font-size:1.2rem;line-height:1.6;margin-bottom:0;font-family:var(--font-jp);text-transform:none;letter-spacing:.02em}
/* TOP COLUMN: 比率で揃える（推奨） */
#column .card-img-area{
  aspect-ratio: 16 / 9; /* ←横長バナーにしたいなら 3/1 か 16/9 */
  height: auto;
  overflow: hidden;
}

#column .card-img-area img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (min-width: 1024px){
  #column .grid-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  #column .column-card{
    max-width: none;
  }
}

/* Access/CTA */
.access-container{display:flex;flex-wrap:wrap;gap:40px;max-width:1200px;margin:0 auto}
.access-info{flex:1;min-width:300px}
.access-map{flex:1;min-width:300px;height:400px;background:#222}
.cta-section{background:#111;text-align:center}

/* Footer */
footer{background:#080808;padding:80px 5% 30px;border-top:1px solid #222;color:#aaa;font-size:.9rem}
.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:50px;max-width:1200px;margin:0 auto 60px}
.footer-logo img{width:150px;margin-bottom:20px}
.footer-title{font-family:var(--font-en);font-size:1.2rem;color:#fff;margin-bottom:25px;letter-spacing:.1em}
.footer-links li{margin-bottom:15px}
.footer-links a{position:relative}
.footer-links a::before{content:"\f054";font-family:"Font Awesome 6 Free";font-weight:900;font-size:.7rem;margin-right:10px;color:#555;transition:.3s}
.footer-links a:hover{color:#fff}
.footer-links a:hover::before{color:#fff;margin-right:5px}
.footer-contact p{margin-bottom:15px}
.footer-contact i{width:20px;text-align:center;margin-right:10px;color:#fff}
.footer-sns{display:flex;gap:15px;margin-top:25px}
.footer-sns a{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #333;color:#fff;border-radius:50%;transition:.3s}
.footer-sns a:hover{background:#fff;color:#000;border-color:#fff}
.copyright{text-align:center;border-top:1px solid #222;padding-top:30px;font-size:.8rem}

/* Instagram */
.ascend-ig-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;max-width:1000px;margin:0 auto}
.ascend-ig-item{display:block;border:1px solid #222;overflow:hidden;background:#111}
.ascend-ig-item img{width:100%;height:240px;object-fit:cover;transition:transform .3s ease}
.ascend-ig-item:hover img{transform:scale(1.03)}
.ascend-ig-empty{grid-column:1/-1;text-align:center;color:#888;padding:20px;border:1px dashed #333}

/* Contact */
.ascend-contact-form .ascend-form-row{margin-bottom:16px}
.ascend-contact-form label{display:block;margin-bottom:6px;font-weight:bold;color:#ddd}
.ascend-contact-form .req{color:var(--accent-red)}
.ascend-contact-form input,
.ascend-contact-form textarea{
  width:100%;
  padding:12px 14px;
  background:#0d0d0d;
  border:1px solid #333;
  color:#fff;
  border-radius:8px;
  outline:none;
}
.ascend-contact-form input:focus,
.ascend-contact-form textarea:focus{border-color:#777}

/* Mobile nav */
.hamburger{display:none;font-size:1.8rem;cursor:pointer;position:relative;z-index:1002}
@media (max-width:768px){
  .hero h1{font-size:2.5rem}
  .grid-layout{grid-template-columns:1fr}
  .btn-header{display:none}
  .news-item{flex-direction:column;align-items:flex-start;gap:5px}
  .footer-grid{gap:30px}
  .hamburger{display:block;color:#fff}
  nav{
    position:fixed;top:0;left:0;width:100%;height:100vh;background:rgba(0,0,0,.95);
    display:flex;justify-content:center;align-items:center;
    opacity:0;pointer-events:none;transition:opacity .3s ease-in-out;z-index:1001
  }
  nav.active{opacity:1;pointer-events:auto}
  nav ul{flex-direction:column;gap:40px;text-align:center}
  nav a{font-size:1.8rem}
}
/* --- EFFECTS --- */
.effects-container {
  display: flex;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: 0 auto;
  border: 1px solid #333;
}
.effect-item {
  flex: 1;
  min-width: 300px;
  padding: 50px;
  text-align: center;
  border-right: 1px solid #333;
  border-bottom: 1px solid #333;
}
.effect-item:last-child {
  border-right: none;
}
.effect-icon {
  font-size: 3rem;
  margin-bottom: 20px;
  color: #fff;
}
.effect-item h3 {
  font-size: 1.5rem;
  letter-spacing: 0.15em;
}
/* =========================
   OWNER SECTION: デザイン統一FIX
   ========================= */

/* OWNERの見出しは日本語用に戻す（Anton/uppercase/広すぎる字間を無効化） */
#owner h3 {
  font-family: var(--font-jp);
  text-transform: none;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 2.1rem;
  line-height: 1.45;
}

/* OWNER本文の読みやすさ（字間・行間・色） */
#owner .text-content p {
  font-family: var(--font-jp);
  letter-spacing: 0.02em;
  line-height: 2.0;
  color: #cfcfcf;
}

/* 署名ブロックの見た目を締める */
#owner .owner-sign {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid #2a2a2a;
  font-family: var(--font-en);
  letter-spacing: 0.08em;
}
#owner .owner-sign span {
  font-family: var(--font-jp);
  letter-spacing: 0.04em;
  color: #bdbdbd;
}

/* 画像側を“カードっぽく”統一（MISSION等と揃える） */
#owner .owner-visual .card-img-area {
  height: 520px;
  border: 1px solid #222;
  background: #111;
  overflow: hidden;
}
#owner .owner-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02); /* 少しだけ迫力を出す */
}

/* OWNER全体の余白・バランス調整 */
#owner.section-padding {
  padding-top: 120px;
  padding-bottom: 120px;
}
#owner .grid-layout {
  gap: 60px;
}

/* モバイル調整 */
@media (max-width: 768px) {
  #owner h3 {
    font-size: 1.6rem;
    line-height: 1.6;
  }
  #owner .owner-visual .card-img-area {
    height: 360px;
  }
  #owner.section-padding {
    padding-top: 90px;
    padding-bottom: 90px;
  }
}

/* =========================
   Single Post (投稿詳細) readability
   ========================= */

/* 投稿本文のラッパー（テーマ側で .p-body-text を使っている前提）
   もし違う場合は .p-body-text を .entry-content に置き換えてOK */
.p-body-text{
  max-width: 820px;
  margin: 0 auto;
  font-size: 1.02rem;
  line-height: 2.05;
  letter-spacing: 0.02em;
  color: #e6e6e6;
}

/* 見出し（本文内 h2/h3 など） */
.p-body-text h2,
.p-body-text h3,
.p-body-text h4{
  font-family: var(--font-jp);
  text-transform: none;
  letter-spacing: 0.02em;
  font-weight: 700;
  line-height: 1.5;
  margin: 2.0em 0 0.8em;
}

.p-body-text h2{
  font-size: 1.55rem;
  padding-bottom: .5em;
  border-bottom: 1px solid #2a2a2a;
}
.p-body-text h3{ font-size: 1.25rem; }
.p-body-text h4{ font-size: 1.1rem; opacity: .95; }

/* 段落・リンク */
.p-body-text p{ margin: 0 0 1.2em; }
.p-body-text a{
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 4px;
  text-decoration-thickness: 1px;
  opacity: .95;
}
.p-body-text a:hover{ opacity: 1; }

/* ✅ 箇条書きを復活（全体 ul{list-style:none} を上書き） */
.p-body-text ul,
.p-body-text ol{
  margin: 0 0 1.2em 1.3em;
  padding-left: 1.0em;
  list-style-position: outside;
}
.p-body-text ul{ list-style: disc; }   /* ・を出す */
.p-body-text ol{ list-style: decimal; }

.p-body-text li{
  margin: .5em 0;
  color: #d8d8d8;
}

/* ネストも見やすく */
.p-body-text ul ul{ list-style: circle; margin-top: .6em; }
.p-body-text ol ol{ margin-top: .6em; }

/* 引用・区切り */
.p-body-text blockquote{
  border-left: 3px solid #444;
  padding: 0.8em 1em;
  margin: 1.4em 0;
  color: #cfcfcf;
  background: #0c0c0c;
}
.p-body-text hr{
  border: none;
  border-top: 1px solid #2a2a2a;
  margin: 2em 0;
}

/* 画像の余白 */
.p-body-text img{
  border: 1px solid #222;
  border-radius: 12px;
  margin: 1.2em 0;
}

/* コード */
.p-body-text code{
  background: #0d0d0d;
  border: 1px solid #222;
  padding: .15em .35em;
  border-radius: 6px;
  font-size: .95em;
}
.p-body-text pre{
  background: #0d0d0d;
  border: 1px solid #222;
  padding: 1em;
  border-radius: 14px;
  overflow: auto;
  margin: 1.4em 0;
}

/* モバイル */
@media (max-width: 768px){
  .p-body-text{
    font-size: 1rem;
    line-height: 2.0;
    padding: 0 2%;
  }
}
/* --- NEWS category color --- */
.news-cat.event {
  background: #444;
}

.news-cat.info {
  background: #333;
}

.news-cat.campaign {
  background: var(--accent-red);
}
/* --- Pagination --- */
.page-numbers {
  display: inline-block;
  margin: 0 6px;
  padding: 8px 14px;
  border: 1px solid #333;
  color: #ccc;
  transition: .3s;
}

.page-numbers:hover {
  border-color: #fff;
  color: #fff;
}

.page-numbers.current {
  background: #fff;
  color: #000;
  border-color: #fff;
}
/* --- News Single Content --- */
.news-content {
  font-family: var(--font-jp);
  line-height: 2.0;
  letter-spacing: .04em;
  color: #dcdcdc;
}

.news-content h2,
.news-content h3 {
  margin-top: 50px;
  margin-bottom: 20px;
  font-family: var(--font-jp);
  text-transform: none;
  letter-spacing: .05em;
}

.news-content p {
  margin-bottom: 20px;
}

.news-content ul,
.news-content ol {
  margin: 20px 0 20px 20px;
}

.news-content li {
  margin-bottom: 8px;
  list-style: disc;
}

.news-content img {
  max-width: 100%;
  height: auto;
  margin: 40px 0;
}
/* =========================
   SINGLE NEWS / POST READABILITY FIX
   ========================= */
.news-single,
.post-single {
  padding-top: 140px; /* header固定分 */
}

/* コンテンツ幅を整える */
.news-single .single-wrap,
.post-single .single-wrap{
  max-width: 920px;
  margin: 0 auto;
}

/* タイトル周り（Antonの悪影響を止める） */
.news-single .single-title,
.post-single .single-title{
  font-family: var(--font-jp);
  text-transform: none;
  letter-spacing: 0.04em;
  font-weight: 800;
  line-height: 1.35;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  margin: 10px 0 18px;
}

/* メタ情報（日時・バッジ等） */
.single-meta{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom: 24px;
  color:#aaa;
  font-size: .95rem;
}
.single-badge{
  display:inline-block;
  border:1px solid #333;
  background:#111;
  padding:4px 10px;
  font-family: var(--font-en);
  letter-spacing:.12em;
  font-size:.75rem;
}
.single-badge.info{ border-color:#333; }
.single-badge.event{ border-color:#666; }
.single-badge.campaign{ border-color: var(--accent-red); }

/* アイキャッチ */
.single-thumb{
  margin: 20px 0 34px;
  border:1px solid #222;
  background:#0d0d0d;
  overflow:hidden;
}
.single-thumb img{
  width:100%;
  height:auto;
  display:block;
}

/* 本文（可読性の核） */
.entry-content{
  color:#ddd;
  letter-spacing: .02em;
  line-height: 2.05;
  font-size: 1rem;
}
.entry-content p{
  margin: 0 0 18px;
}

/* 見出し：Anton/uppercaseを止めて和文に最適化 */
.entry-content h2,
.entry-content h3,
.entry-content h4{
  font-family: var(--font-jp);
  text-transform: none;
  letter-spacing: 0.04em;
  font-weight: 800;
  line-height: 1.5;
  margin: 34px 0 14px;
  color:#fff;
}
.entry-content h2{ font-size: 1.35rem; border-left: 3px solid var(--accent-red); padding-left: 12px; }
.entry-content h3{ font-size: 1.2rem; }
.entry-content h4{ font-size: 1.05rem; opacity:.95; }

/* これが「liの・が効かない」直し（グローバルul{list-style:none}を本文だけ上書き） */
.entry-content ul{
  list-style: disc;
  padding-left: 1.4em;
  margin: 0 0 18px;
}
.entry-content ol{
  list-style: decimal;
  padding-left: 1.6em;
  margin: 0 0 18px;
}
.entry-content li{
  margin: 8px 0;
  color:#d5d5d5;
}
.entry-content ul ul{ list-style: circle; margin-top: 8px; }
.entry-content ol ol{ list-style: lower-alpha; margin-top: 8px; }

/* 引用・区切り */
.entry-content blockquote{
  margin: 22px 0;
  padding: 18px 18px 18px 16px;
  border-left: 3px solid #444;
  background:#0d0d0d;
  color:#ccc;
}
.entry-content hr{
  border:0;
  height:1px;
  background:#222;
  margin: 30px 0;
}

/* リンク */
.entry-content a{
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* 下部ナビ */
.single-nav{
  margin-top: 46px;
  padding-top: 22px;
  border-top:1px solid #222;
  display:flex;
  justify-content:space-between;
  gap:16px;
}
.single-nav a{
  border:1px solid #333;
  padding:12px 16px;
  background:#111;
}
.single-nav a:hover{ border-color:#666; }

/* SP */
@media (max-width: 768px){
  .news-single, .post-single { padding-top: 110px; }
  .news-single .single-wrap, .post-single .single-wrap { padding: 0 2.5%; }
}
/* 固定ページ/投稿本文だけ 箇条書きを復活 */
.p-body-text ul { list-style: disc; padding-left: 1.2em; margin: 1em 0; }
.p-body-text ol { list-style: decimal; padding-left: 1.2em; margin: 1em 0; }
.p-body-text li { margin: .4em 0; }
.p-body-text li::marker { color: #bdbdbd; }
/* =========================
   Post/Page Content Typo (Readability + Lists)
   ========================= */
.entry-content,
.p-body-text,
.wp-block-post-content {
  max-width: 900px;
  margin: 0 auto;
  line-height: 2.0;
  letter-spacing: 0.02em;
  color: #ddd;
}

/* 見出し（固定ページ本文用） */
.entry-content h2,
.p-body-text h2,
.wp-block-post-content h2{
  font-family: var(--font-jp);
  text-transform: none;
  letter-spacing: 0.04em;
  font-weight: 700;
  font-size: 1.5rem;
  margin: 2.2em 0 0.8em;
}
.entry-content h3,
.p-body-text h3,
.wp-block-post-content h3{
  font-family: var(--font-jp);
  text-transform: none;
  letter-spacing: 0.03em;
  font-weight: 700;
  font-size: 1.15rem;
  margin: 1.6em 0 0.7em;
}

/* ✅ ここが重要：ul/ol の list-style を本文だけ復活 */
.entry-content ul,
.p-body-text ul,
.wp-block-post-content ul{
  list-style: disc;
  margin: 0.8em 0 1.2em 1.2em;
  padding-left: 1.2em;
}
.entry-content ol,
.p-body-text ol,
.wp-block-post-content ol{
  list-style: decimal;
  margin: 0.8em 0 1.2em 1.2em;
  padding-left: 1.2em;
}
.entry-content li,
.p-body-text li,
.wp-block-post-content li{
  margin: 0.35em 0;
}
.entry-content a,
.p-body-text a,
.wp-block-post-content a{
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* 引用や区切り */
.entry-content blockquote,
.p-body-text blockquote,
.wp-block-post-content blockquote{
  border-left: 3px solid #444;
  padding: 0.8em 1em;
  margin: 1.2em 0;
  color: #cfcfcf;
  background: #0f0f0f;
}
.entry-content hr,
.p-body-text hr,
.wp-block-post-content hr{
  border: 0;
  border-top: 1px solid #222;
  margin: 2em 0;
}
.entry-content ul{ list-style: disc; margin: 0.8em 0 1.2em 1.2em; padding-left: 1.2em; }
.entry-content ol{ list-style: decimal; margin: 0.8em 0 1.2em 1.2em; padding-left: 1.2em; }
.entry-content li{ margin: 0.35em 0; }
.mission-hero{ overflow:hidden; }
.mission-hero > img{ width:100%; height:100%; object-fit:cover; object-position:center; display:block; }

@media (max-width:768px){
  .mission-hero{ height:260px !important; } /* style指定を上書き */
}
