:root {
  --bg-color: #f7f7f4;
  --card-bg: #ffffff;
  --text-color: #1f2937;
  --accent-gray: #d1d5db;
  --accent-red: #e50914;
  --font-en: "Anton", sans-serif;
  --font-jp: "Noto Sans JP", sans-serif;
  --border-color: #e5e7eb;
  --muted-text: #6b7280;
  --soft-bg: #f3f4f6;
}

html{
  max-width:100%;
  overflow-x:hidden;
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  max-width:100%;
  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(17,17,17,.96);border-bottom:1px solid rgba(255,255,255,.08)}
.logo img{width:180px;position:relative;z-index:1002}
#nav-menu ul{display:flex;gap:20px}
#nav-menu a{font-family:var(--font-en);font-size:1rem;letter-spacing:.1em;position:relative;color:#fff}
#nav-menu a::after{content:"";position:absolute;bottom:-5px;left:0;width:0;height:1px;background:#fff;transition:.3s}
#nav-menu 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 10px}
.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: rgba(230, 0, 35, 0.45);;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;
  }
  .hero p{font-size:0.85rem}
}

/* 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:var(--muted-text);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 span{display:block;font-size:1rem;font-family:var(--font-jp);color:var(--muted-text);margin-top:10px;letter-spacing:.05em;margin-bottom: 36px;}
.text-content p{margin-bottom:20px;color:#374151}
@media (max-width: 768px){
  .text-content h3{text-align: center;}
  .text-content span{text-align: center; margin-bottom: 24px;}
}
/* =========================
   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 var(--border-color)}
.card-img-area{height:250px;width:100%}
.card-content{padding:30px}
.card-content h3{margin-bottom:15px;font-size:1.35rem}
.card-content p{font-size:.9rem;color:#4b5563}

/* News */
.news-list{max-width:800px;margin:0 auto}
.news-item{display:flex;align-items:center;padding:20px 0;border-bottom:1px solid var(--border-color);flex-wrap:wrap;gap:15px}
.news-date{font-family:var(--font-en);color:var(--muted-text);font-size:1rem}
.news-cat{background:#374151;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:#111827;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 var(--border-color);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 var(--border-color);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 #111827;box-shadow:0 12px 32px rgba(17,24,39,.08)}
.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:#111827}
.price-amount{font-size:2.8rem;font-family:var(--font-en);margin-bottom:10px;color:#111827;letter-spacing:.05em}
.price-tax{font-size:1rem;font-family:var(--font-jp);color:var(--muted-text)}
.price-desc{font-size:.9rem;color:var(--muted-text);border-top:1px solid var(--border-color);padding-top:15px;margin-top:15px}
.admission-box{text-align:center;margin-bottom:50px;background:var(--card-bg);padding:30px;border:1px solid var(--border-color);box-shadow:0 12px 32px rgba(17,24,39,.06);max-width:600px;margin-left:auto;margin-right:auto;position:relative;overflow:hidden}
.admission-box h3{font-size:1.2rem;color:#111827;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:var(--muted-text);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:#fff;border:1px solid var(--border-color);transition:.3s}
.column-card:hover{border-color:#666;transform:translateY(-5px)}
.column-date{display:block;font-family:var(--font-en);color:var(--muted-text);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:#e5e7eb}
.cta-section{background:#eef2f7;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 var(--border-color);overflow:hidden;background:#fff}
.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:var(--muted-text);padding:20px;border:1px dashed var(--border-color)}

/* =========================================
   Contact Form Redesign
   白基調 / 視認性改善 / 上質感アップ
========================================= */

/* 全体余白 */
.ascend-contact-form .ascend-form-row,
.cf7-dark-theme .wpcf7-form p {
  margin: 0 0 22px;
}

/* ラベル */
.ascend-contact-form label,
.cf7-dark-theme .wpcf7-form label {
  display: block;
  margin-bottom: 8px;
  font-weight: 700;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #111;
  letter-spacing: 0.02em;
}

/* 必須 */
.ascend-contact-form .req {
  color: var(--accent-red);
  margin-left: 4px;
}

/* 入力欄共通 */
.ascend-contact-form input,
.ascend-contact-form textarea,
.cf7-dark-theme input[type="text"],
.cf7-dark-theme input[type="email"],
.cf7-dark-theme input[type="tel"],
.cf7-dark-theme textarea,
.cf7-dark-theme select {
  width: 100%;
  padding: 15px 16px;
  background: #fff;
  border: 1px solid #d8dde3;
  color: #111;
  border-radius: 12px;
  outline: none;
  font-size: 1rem;
  line-height: 1.7;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
  transition: border-color 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
  -webkit-appearance: none;
  appearance: none;
}

/* textarea */
.ascend-contact-form textarea,
.cf7-dark-theme textarea {
  min-height: 180px;
  resize: vertical;
}

/* プレースホルダー */
.ascend-contact-form input::placeholder,
.ascend-contact-form textarea::placeholder,
.cf7-dark-theme input::placeholder,
.cf7-dark-theme textarea::placeholder {
  color: #8b95a1;
}

/* フォーカス */
.ascend-contact-form input:focus,
.ascend-contact-form textarea:focus,
.cf7-dark-theme input[type="text"]:focus,
.cf7-dark-theme input[type="email"]:focus,
.cf7-dark-theme input[type="tel"]:focus,
.cf7-dark-theme textarea:focus,
.cf7-dark-theme select:focus {
  border-color: rgba(10, 39, 74, 0.45);
  box-shadow: 0 0 0 4px rgba(10, 39, 74, 0.08);
  background: #fff;
}

/* フォームラップ */
.cf7-dark-theme .wpcf7-form-control-wrap {
  display: block;
  margin-top: 8px;
}

/* select の見た目 */
.cf7-dark-theme select {
  background-image:
    linear-gradient(45deg, transparent 50%, #666 50%),
    linear-gradient(135deg, #666 50%, transparent 50%);
  background-position:
    calc(100% - 20px) calc(50% - 2px),
    calc(100% - 14px) calc(50% - 2px);
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 42px;
}

/* チェックボックス・ラジオ */
.cf7-dark-theme .wpcf7-list-item {
  margin: 0 18px 10px 0;
}

.cf7-dark-theme .wpcf7-checkbox,
.cf7-dark-theme .wpcf7-radio {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
}

.cf7-dark-theme .wpcf7-acceptance label,
.cf7-dark-theme .wpcf7-checkbox label,
.cf7-dark-theme .wpcf7-radio label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-weight: 400;
  color: #222;
  line-height: 1.7;
}

.cf7-dark-theme input[type="checkbox"],
.cf7-dark-theme input[type="radio"] {
  width: auto;
  margin-top: 0.35em;
  accent-color: var(--accent-red);
}

/* 送信ボタン */
.cf7-dark-theme .wpcf7-submit {
  background: #0f1720;
  color: #fff;
  padding: 16px 44px;
  font-size: 1rem;
  font-weight: 700;
  display: inline-block;
  transition: 0.3s ease;
  cursor: pointer;
  border: 1px solid #0f1720;
  border-radius: 999px;
  width: auto;
  letter-spacing: 0.08em;
  box-shadow: 0 10px 24px rgba(15, 23, 32, 0.12);
}

.cf7-dark-theme .wpcf7-submit:hover {
  background: #fff;
  color: #0f1720;
  border-color: #0f1720;
  transform: translateY(-1px);
}

.cf7-dark-theme .wpcf7-spinner {
  vertical-align: middle;
}

/* エラー文 */
.cf7-dark-theme .wpcf7-not-valid-tip {
  color: #c62828;
  font-size: 0.88rem;
  margin-top: 8px;
  line-height: 1.6;
}

/* レスポンスメッセージ */
.cf7-dark-theme .wpcf7-response-output {
  margin: 24px 0 0 !important;
  padding: 15px 18px !important;
  border-radius: 12px;
  color: #111;
  background: #f6f8fa;
  border: 1px solid #d9e0e7;
  line-height: 1.7;
}

/* 送信成功 */
.cf7-dark-theme .wpcf7 form.sent .wpcf7-response-output {
  background: #f1f8f3;
  border-color: #8db79a;
  color: #183c22;
}

/* エラー */
.cf7-dark-theme .wpcf7 form.invalid .wpcf7-response-output,
.cf7-dark-theme .wpcf7 form.failed .wpcf7-response-output,
.cf7-dark-theme .wpcf7 form.aborted .wpcf7-response-output {
  background: #fff5f5;
  border-color: #d89a9a;
  color: #7a1f1f;
}

/* 入力エラー時の枠 */
.cf7-dark-theme .wpcf7-not-valid {
  border-color: #d45b5b !important;
  background: #fffdfd;
}

/* フォーム全体に薄い面を作る場合 */
.ascend-contact-form,
.cf7-dark-theme .wpcf7-form {
  color: #111;
}

/* モバイル微調整 */
@media screen and (max-width: 768px) {
  .ascend-contact-form .ascend-form-row,
  .cf7-dark-theme .wpcf7-form p {
    margin-bottom: 18px;
  }

  .ascend-contact-form input,
  .ascend-contact-form textarea,
  .cf7-dark-theme input[type="text"],
  .cf7-dark-theme input[type="email"],
  .cf7-dark-theme input[type="tel"],
  .cf7-dark-theme textarea,
  .cf7-dark-theme select {
    padding: 14px 14px;
    font-size: 16px;
  }

  .cf7-dark-theme .wpcf7-submit {
    width: 100%;
    justify-content: center;
    text-align: center;
    padding: 16px 20px;
  }
}
/* Mobile nav */
.hamburger{display:none;cursor:pointer;position:relative;z-index:1002;background:transparent;border:0;color:#fff;padding:0;font:inherit;line-height:1}
@media (max-width:768px){
  .hero h1{font-size:2rem}
  .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:grid;place-items:center;width:44px;height:44px;color:#fff;font-size:1.8rem;border-radius:10px;-webkit-tap-highlight-color:transparent}
  .hamburger:focus-visible{outline:2px solid #fff;outline-offset:2px}
  body.menu-open{overflow:hidden}
  #nav-menu{
    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-menu.active{opacity:1;pointer-events:auto}
  #nav-menu ul{flex-direction:column;gap:40px;text-align:center}
  #nav-menu 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: #111827;
}
.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: #374151;
}

/* 署名ブロックの見た目を締める */
#owner .owner-sign {
  margin-top: 28px;
  padding-top: 18px;
  border-top: 1px solid var(--border-color);
  font-family: var(--font-en);
  letter-spacing: 0.08em;
  color:#111827;
}
#owner .owner-sign span {
  font-family: var(--font-jp);
  letter-spacing: 0.04em;
  color: var(--muted-text);
}

/* 画像側を“カードっぽく”統一（MISSION等と揃える） */
#owner .owner-visual .card-img-area {
  height: 520px;
  border: 1px solid var(--border-color);
  background: #fff;
  overflow: hidden;
}
#owner .owner-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.02); /* 少しだけ迫力を出す */
}

/* OWNER全体の余白・バランス調整 */
#owner.section-padding {
  padding-top: 80px;
  padding-bottom: 80px;
}
#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: #2a2a2a;
}

/* 見出し（本文内 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;
  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:rgb(22, 22, 22);
  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:#1d1d1d;
}
.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:#4a4a4a;
}
.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:#eeeeee;
}
.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: #3c3c3c;
}

/* 見出し（固定ページ本文用） */
.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指定を上書き */
}
.card-article{ padding:34px; border:1px solid #333; }
@media (max-width:768px){ .card-article{ padding:10px; } }
/* COLUMN 画像 角丸削除 */
.column-card img,
#column .card-img-area img,
.post-single .single-thumb img{
  border-radius: 0 !important;
}
/* Contact Form 7 Select 修正 */
.asc-cf7__field select,
.asc-cf7 select,
.wpcf7-form select {
  width: 100%;
  height: 56px;
  padding: 0 48px 0 16px;
  border: 1px solid rgba(142, 142, 142, 0.24);
  border-radius: 12px;
  background: rgba(255,255,255,0.06);
  color: #2e2e2e;
  font-size: 16px;
  line-height: 1.4;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  box-sizing: border-box;
  outline: none;
  transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
  cursor: pointer;
}

/* IE対策 */
.asc-cf7__field select::-ms-expand,
.asc-cf7 select::-ms-expand,
.wpcf7-form select::-ms-expand {
  display: none;
}

/* option の文字色 */
.asc-cf7__field select option,
.asc-cf7 select option,
.wpcf7-form select option {
  color: #111;
  background: #fff;
}

/* focus */
.asc-cf7__field select:focus,
.asc-cf7 select:focus,
.wpcf7-form select:focus {
  border-color: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245,158,11,0.18);
  background: rgba(255,255,255,0.1);
}

/* 矢印を自作 */
.asc-cf7__field {
  position: relative;
}

.asc-cf7__field:has(select)::after {
  content: "";
  position: absolute;
  right: 16px;
  top: calc(50% + 12px);
  width: 10px;
  height: 10px;
  border-right: 2px solid rgba(255,255,255,0.75);
  border-bottom: 2px solid rgba(255,255,255,0.75);
  transform: translateY(-50%) rotate(45deg);
  pointer-events: none;
}

/* スマホ調整 */
@media (max-width: 768px) {
  .asc-cf7__field select,
  .asc-cf7 select,
  .wpcf7-form select {
    height: 52px;
    font-size: 16px;
  }

  .asc-cf7__field:has(select)::after {
    right: 14px;
  }
}
.access-map iframe {
  display: block;
  width: 100%;
  height: 560px;
  border: 0;
}

@media (max-width: 1024px) {
  .access-map iframe {
    height: 420px;
  }
}

.trial-campaign-box{
  max-width: 720px;
  margin: 22px auto 42px;
  padding: 22px 24px;
  border: 1px solid #2f2f2f;
  background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.015) 100%);
  text-align: center;
}

.trial-campaign-price{
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

.trial-label{
  font-size: 0.95rem;
  color: #8c8c8c;
  letter-spacing: 0.08em;
}

.trial-campaign-price strong{
  font-size: 2rem;
  line-height: 1;
  color: #1e1e1e;
  font-family: var(--font-en);
  letter-spacing: 0.04em;
}

.trial-campaign-text{
  margin-top: 10px;
  color: var(--accent-red);
  font-weight: 700;
  font-size: 0.98rem;
}

.price-info-wrap{
  max-width: 1000px;
  margin: 40px auto 0;
}

.price-info-box{
  background: rgba(24, 24, 24, 0.9);
  border: 1px solid #2e2e2e;
  padding: 28px 30px;
}

.price-subtitle{
  margin: 0 0 16px;
  font-size: 1.1rem;
  color: #fff;
  letter-spacing: 0.04em;
}

.price-info-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}

.price-info-list li{
  position: relative;
  padding-left: 1.2em;
  color: #d8d8d8;
  line-height: 1.8;
}

.price-info-list li::before{
  content: "・";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--accent-red);
}

.price-notes{
  margin-top: 18px;
  padding: 20px 4px 0;
  border-top: 1px solid #2a2a2a;
}

.price-notes p{
  margin: 0 0 10px;
  font-size: 0.9rem;
  line-height: 1.9;
  color: #8e8e8e;
}

.price-notes p:last-child{
  margin-bottom: 0;
}

@media (max-width: 768px){
  .trial-campaign-box{
    margin: 18px auto 34px;
    padding: 18px 16px;
  }

  .trial-campaign-price strong{
    font-size: 1.7rem;
  }

  .price-info-box{
    padding: 22px 18px;
  }

  .price-subtitle{
    font-size: 1rem;
  }

  .price-info-list li{
    font-size: 0.95rem;
    line-height: 1.75;
  }

  .price-notes p{
    font-size: 0.84rem;
    line-height: 1.8;
  }
}

/* ===== 2026 light content refresh ===== */
.section-padding{background:transparent;}
#mission,#why,#effects,#program,#price,#column,#news,#instagram,#access,#owner{background:#fff !important;color:#111827;}
#effects .effects-container{background:#fff;border:1px solid var(--border-color);}
#effects .effect-item{background:#fff;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);}
#effects .effect-item h3{color:#111827;}
#effects .effect-item p{color:#4b5563;}
#access .access-info,#access .access-info h3,#access .access-info p,#access .access-info strong,#access .section-title,#access .section-title span{color:#111827 !important;}
#access .access-info p{color:#374151 !important;}
#access .access-info > div{border-top:1px solid var(--border-color) !important;}
#owner{background:#fff !important;}
#owner h3{color:#111827;}
.cta-section .section-title,.cta-section .section-title span,.cta-section p{color:#111827 !important;}
.cta-section p{color:#374151 !important;}
@media (max-width:768px){
  #effects .effect-item:last-child{border-right:1px solid var(--border-color);}
}


/* ===== 2026 premium light refinement v1.1.2 ===== */
:root{
  --text-color:#18212f;
  --muted-text:#5b6472;
  --border-color:#d9dee6;
  --soft-bg:#f3f1ec;
}
body{color:var(--text-color);background:#f6f4ef;}
.hero h1{color:#fff !important;text-shadow:0 10px 30px rgba(0,0,0,.42),0 0 18px rgba(0,0,0,.28);}
.hero p{color:#f3f4f6;}
.section-title,.text-content h3,.card-content h3,.price-card h3,.effect-item h3,.access-info h3{color:#111827;}
.section-title span,.text-content span,.news-date,.price-notes p,.price-card p,.column-card p,.card-content p,.effect-item p,.access-info p,.cta-section p{color:#4b5563 !important;}
#mission{background:#ffffff !important;}
#why{background:#f8f6f1 !important;}
#owner{background:#ffffff !important;}
#effects{background:#f3f1ec !important;}
#program{background:#ffffff !important;}
#price{background:#f8f6f1 !important;}
#access{background:#ffffff !important;}
.cta-section{background:linear-gradient(180deg,#f3f1ec 0%,#ebe6dc 100%) !important;border-top:1px solid rgba(17,24,39,.06);border-bottom:1px solid rgba(17,24,39,.06);}
#column{background:#ffffff !important;}
#news{background:#f8f6f1 !important;}
#instagram{background:#ffffff !important;}
#mission,#why,#owner,#effects,#program,#price,#access,#column,#news,#instagram{position:relative;}
#mission::before,#why::before,#owner::before,#effects::before,#program::before,#price::before,#access::before,#column::before,#news::before,#instagram::before{content:"";position:absolute;left:5%;right:5%;top:0;border-top:1px solid rgba(17,24,39,.06);}
#mission::before{display:none;}
.effects-container{border-color:#d8dde5;box-shadow:0 12px 36px rgba(17,24,39,.04);}
.effect-item{border-color:#d8dde5;background:rgba(255,255,255,.78);}
.effect-icon{color:#111827 !important;}
.effect-item p{font-size:.95rem;line-height:1.9;}
#owner .text-content p{color:#334155;}
#access .access-info,#access .access-info h3,#access .access-info p,#access .access-info strong,#access .section-title,#access .section-title span{color:#111827 !important;}
#access .access-info p{color:#334155 !important;}
.btn-main{background:#111827;color:#fff;border:1px solid #111827;border-radius:999px;box-shadow:0 10px 25px rgba(17,24,39,.16);padding:16px 42px;letter-spacing:.08em;}
.btn-main:hover{background:#1f2937;color:#fff;transform:translateY(-2px);box-shadow:0 16px 32px rgba(17,24,39,.20);}
.hero .btn-main{background:#fff;color:#111827;border-color:#fff;box-shadow:0 14px 34px rgba(0,0,0,.24);}
.hero .btn-main:hover{background:#f3f4f6;color:#111827;}
.news-list + div .btn-main, .btn-viewall, a.btn-main[href*="ascend_news"]{background:#111827;color:#fff;border-color:#111827;}
header.scrolled #nav-menu a, header.scrolled .btn-header, header.scrolled .hamburger{color:#fff;}
header.scrolled .btn-header{border-color:rgba(255,255,255,.7);}
header.scrolled .btn-header:hover{background:#fff;color:#000;}
@media (max-width:768px){
  .hero h1{font-size:2rem;color:#fff !important;}
  .btn-main{padding:14px 28px;}
}
.hero {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
}

.hero img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ===== hero slider upgrade v1.1.3 ===== */
.hero.hero-slider{
  min-height:100svh;
  min-height:100vh;
  position:relative;
  isolation:isolate;
  background:#111;
}
.hero-media{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
}
.hero-slide,
.hero-overlay{
  position:absolute;
  inset:0;
}
.hero-slide{
  opacity:0;
  transition:opacity 1.4s ease, transform 6.5s ease;
  transform:scale(1.06);
  background-position:center center;
  background-repeat:no-repeat;
  background-size:cover;
  will-change:opacity, transform;
}
.hero-slide.is-active{
  opacity:1;
  transform:scale(1);
}
.hero-slide-1{ background-image:url('../img/hero.webp'); }
.hero-slide-2{ background-image:url('../img/hero02.webp'); }
.hero-overlay{
  z-index:1;
  background:linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.16) 38%, rgba(0,0,0,.34) 100%);
}
.hero-content{
  position:relative;
  z-index:2;
  width:min(100%, 980px);
  margin:0 auto; 
}
.hero-logo-wrap{
  width:min(250px, 48vw);
  margin:0 auto 24px;
}
.hero-logo-wrap img{
  width:100%;
  height:auto;
  display:block;
}
.hero h1{
  color:#fff !important;
  text-shadow:0 14px 34px rgba(0,0,0,.35),0 3px 12px rgba(0,0,0,.32);
}
.hero p{
  color:rgba(255,255,255,.96);
  text-shadow:0 2px 10px rgba(0,0,0,.22);
}
@media (max-width: 768px){
  .hero.hero-slider{
    min-height:92svh;
  }
  .hero-slide-1{ background-image:url('../img/hero-sp.webp'); background-position:center top; }
  .hero-slide-2{ background-image:url('../img/hero-sp02.webp'); background-position:center top; }
  .hero-logo-wrap{ width:min(210px, 54vw); margin-bottom:18px; }
  .campaign-badge-hero{ margin-bottom:12px; }
  .hero-content{
  margin:40% auto 0; 
}
}
/* ===== OWNER 画像 cover化 ===== */
#owner .owner-visual .card-img-area {
  width: 100%;
  height: 100%;
  overflow: hidden;
}

#owner .owner-visual .card-img-area img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
}

/* 高さが無い場合の保険（必要に応じて調整） */

#owner .owner-visual .card-img-area img {
  object-fit: cover !important;
}
@media screen and (max-width: 768px) {
  #owner .owner-visual {
    height: auto !important;
    min-height: auto !important;
  }

  #owner .owner-visual .card-img-area {
    height: auto !important;
  }

  #owner .owner-visual .card-img-area img {
    height: auto !important;
    min-height: 0 !important;
    object-fit: cover;
  }
}

/* ==================================================
   MOBILE BOTTOM CTA
================================================== */

.cv-sticky-btn {
  display: none;
}

/* スマートフォンのみ表示 */
@media screen and (max-width: 768px) {

  .cv-sticky-btn {
    position: fixed;
    left: 50%;
    right: auto;
    bottom: max(12px, env(safe-area-inset-bottom));
    z-index: 9999;

    width: calc(100% - 28px);
    max-width: 390px;
    min-height: 64px;

    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 11px;

    padding: 7px 8px 7px 7px;

    color: #fff;
    background:
      linear-gradient(
        135deg,
        rgba(16, 25, 42, 0.97) 0%,
        rgba(28, 39, 59, 0.96) 100%
      );

    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 18px;

    box-shadow:
      0 16px 38px rgba(0, 0, 0, 0.3),
      inset 0 1px 0 rgba(255, 255, 255, 0.12);

    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);

    text-decoration: none;
    transform: translateX(-50%);

    transition:
      opacity 0.28s ease,
      visibility 0.28s ease,
      transform 0.28s ease,
      box-shadow 0.28s ease;
  }

  /* 左の赤いアクセント */
  .cv-sticky-btn__accent {
    width: 48px;
    height: 48px;

    display: grid;
    place-items: center;

    color: #fff;
    background:
      linear-gradient(
        135deg,
        #ff756c 0%,
        #ff4b55 50%,
        #e62535 100%
      );

    border-radius: 13px;

    font-family: var(--font-en);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1;

    box-shadow:
      0 7px 17px rgba(230, 37, 53, 0.3),
      inset 0 1px 0 rgba(255, 255, 255, 0.35);
  }

  /* 中央テキスト */
  .cv-sticky-btn__text {
    min-width: 0;

    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    line-height: 1.25;
  }

  .cv-sticky-btn__text small {
    display: block;
    margin-bottom: 3px;

    color: rgba(255, 255, 255, 0.68);

    font-size: 9px;
    font-weight: 500;
    letter-spacing: 0.08em;
    white-space: nowrap;
  }

  .cv-sticky-btn__text strong {
    display: block;

    color: #fff;

    font-size: 14px;
    font-weight: 800;
    letter-spacing: 0.035em;
    white-space: nowrap;
  }

  /* 右側の矢印 */
  .cv-sticky-btn__arrow {
    width: 42px;
    height: 42px;

    display: grid;
    place-items: center;

    color: #ff4b55;
    background: #fff;

    border-radius: 50%;

    box-shadow:
      0 7px 17px rgba(0, 0, 0, 0.18);

    transition:
      color 0.25s ease,
      transform 0.25s ease;
  }

  .cv-sticky-btn__arrow svg {
    width: 20px;
    height: 20px;

    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .cv-sticky-btn:active {
    box-shadow:
      0 10px 25px rgba(0, 0, 0, 0.25),
      inset 0 1px 0 rgba(255, 255, 255, 0.12);

    transform:
      translateX(-50%)
      scale(0.98);
  }

  .cv-sticky-btn:active .cv-sticky-btn__arrow {
    transform: translateX(3px);
  }

  /* HERO・フッター付近では非表示 */
  .cv-sticky-btn.is-hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transform:
      translateX(-50%)
      translateY(14px);
  }
}





/* =========================================
   FAQ SECTION
========================================= */
.faq-section {
  position: relative;
  padding: 96px 0;
  background:
    linear-gradient(180deg, #fcfcfa 0%, #f7f5f0 100%);
  overflow: hidden;
}

.faq-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: -10%;
  width: 320px;
  height: 320px;
  background: radial-gradient(circle, rgba(0,0,0,0.035) 0%, rgba(0,0,0,0) 72%);
  pointer-events: none;
}

.faq-container {
  width: min(1080px, calc(100% - 40px));
  margin: 0 auto;
}

.faq-heading {
  max-width: 760px;
  margin: 0 auto 48px;
  text-align: center;
}

.faq-eyebrow {
  margin: 0 0 14px;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #8d1f24;
}

.faq-title {
  margin: 0;
  font-size: clamp(2rem, 3.4vw, 3rem);
  line-height: 1.2;
  color: #1c1c1c;
  letter-spacing: 0.04em;
}

.faq-lead {
  margin: 18px auto 0;
  font-size: 1rem;
  line-height: 1.9;
  color: #555;
}

.faq-list {
  display: grid;
  gap: 18px;
}

.faq-item {
  background: rgba(255,255,255,0.92);
  border: 1px solid #e7e2d8;
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(0,0,0,0.04);
  overflow: hidden;
  transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}

.faq-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 20px 48px rgba(0,0,0,0.06);
  border-color: #ddd4c6;
}

.faq-question {
  position: relative;
  width: 100%;
  padding: 28px 72px 28px 28px;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
  appearance: none;
}

.faq-q {
  display: block;
  font-size: 1.08rem;
  font-weight: 700;
  line-height: 1.7;
  color: #1c1c1c;
  letter-spacing: 0.01em;
}

.faq-icon {
  position: absolute;
  top: 50%;
  right: 26px;
  width: 18px;
  height: 18px;
  transform: translateY(-50%);
}

.faq-icon::before,
.faq-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: #1c1c1c;
  border-radius: 999px;
  transition: transform 0.28s ease, opacity 0.28s ease, background 0.28s ease;
}

.faq-icon::before {
  width: 18px;
  height: 2px;
  transform: translate(-50%, -50%);
}

.faq-icon::after {
  width: 2px;
  height: 18px;
  transform: translate(-50%, -50%);
}

.faq-item.is-open .faq-icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(90deg);
}

.faq-answer {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s ease;
}

.faq-item.is-open .faq-answer {
  grid-template-rows: 1fr;
}

.faq-answer-inner {
  overflow: hidden;
  padding: 0 28px;
}

.faq-item.is-open .faq-answer-inner {
  padding-bottom: 28px;
}

.faq-answer p,
.faq-answer li {
  font-size: 1rem;
  line-height: 1.95;
  color: #444;
}

.faq-answer p {
  margin: 0;
}

.faq-answer p + p {
  margin-top: 14px;
}

.faq-answer ul {
  margin: 14px 0;
  padding-left: 1.3em;
}

.faq-answer li + li {
  margin-top: 6px;
}

.faq-answer strong {
  color: #1c1c1c;
  font-weight: 700;
}

/* 白背景セクションとのつなぎを綺麗に */
#faq + section,
#faq + .cta,
#faq + .contact-cta {
  margin-top: 0;
}

/* =========================================
   TABLET
========================================= */
@media screen and (max-width: 1024px) {
  .faq-section {
    padding: 84px 0;
  }

  .faq-question {
    padding: 24px 64px 24px 24px;
  }

  .faq-answer-inner {
    padding: 0 24px;
  }

  .faq-item.is-open .faq-answer-inner {
    padding-bottom: 24px;
  }
}

/* =========================================
   MOBILE
========================================= */
@media screen and (max-width: 768px) {
  .faq-section {
    padding: 72px 0;
  }

  .faq-container {
    width: min(100%, calc(100% - 24px));
  }

  .faq-heading {
    margin-bottom: 34px;
  }

  .faq-eyebrow {
    margin-bottom: 10px;
    font-size: 0.74rem;
  }

  .faq-lead {
    font-size: 0.95rem;
    line-height: 1.8;
  }

  .faq-list {
    gap: 14px;
  }

  .faq-item {
    border-radius: 14px;
  }

  .faq-question {
    padding: 20px 52px 20px 18px;
  }

  .faq-q {
    font-size: 0.98rem;
    line-height: 1.65;
  }

  .faq-icon {
    right: 18px;
    width: 16px;
    height: 16px;
  }

  .faq-icon::before {
    width: 16px;
  }

  .faq-icon::after {
    height: 16px;
  }

  .faq-answer-inner {
    padding: 0 18px;
  }

  .faq-item.is-open .faq-answer-inner {
    padding-bottom: 20px;
  }

  .faq-answer p,
  .faq-answer li {
    font-size: 0.95rem;
    line-height: 1.85;
  }
}

.entry-content h2, .p-body-text h2, .wp-block-post-content h2 {
  /* color: #ffffff; */
}

/* =========================
   Column archive / pagination
   ========================= */
.archive-shell{max-width:1100px;margin:0 auto}
.archive-head{max-width:760px;margin:0 auto 42px;text-align:center}
.archive-lead{color:#4b5563;font-size:1rem;line-height:2;margin:18px 0 0}
.archive-link-wrap{margin-top:34px;text-align:center}
.btn-outline{background:transparent !important;color:#111827 !important;border:1px solid rgba(17,24,39,.16)}
.btn-outline:hover{border-color:#111827;background:#111827 !important;color:#fff !important}
.ascend-pagination{margin-top:46px;display:flex;justify-content:center}
.ascend-pagination .nav-links{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;list-style:none;padding:0;margin:0}
.ascend-pagination .page-numbers{min-width:44px;height:44px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(17,24,39,.12);background:#fff;color:#111827;text-decoration:none;font-family:var(--font-en);font-size:.95rem;transition:.25s}
.ascend-pagination .page-numbers.current,
.ascend-pagination .page-numbers:hover{background:#111827;color:#fff;border-color:#111827}
@media (max-width: 767px){
  .archive-head{margin-bottom:32px}
  .archive-lead{font-size:.94rem;line-height:1.9}
  .ascend-pagination .page-numbers{min-width:40px;height:40px;padding:0 12px}
}

/* COLUMN ARCHIVE: サムネイル高さ統一 */
.archive-shell .column-card .card-img-area{
  height:220px;
  overflow:hidden;
}
.archive-shell .column-card .card-img-area img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
@media (max-width:768px){
  .archive-shell .column-card .card-img-area{
    height:200px;
  }
}
/* =========================================
   PERSONAL SECTION
========================================= */
.personal-section{
  background:#fff;
}

.personal-section .section-title{
  margin-bottom: 26px;
}

.personal-section .section-title span{
  max-width: 720px;
  margin: 14px auto 0;
  line-height: 1.8;
}

.personal-intro{
  max-width: 1200px;
  margin: 0 auto;
}

.personal-main{
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr);
  gap: 56px;
  align-items: start;
  margin-top: 50px;
}

.personal-copy{
  min-width: 0;
}

.personal-lead{
  font-size: 1rem;
  line-height: 2;
  color: #374151;
  margin-bottom: 34px;
}

.personal-points{
  display: grid;
  gap: 26px;
}

.personal-point{
  display: grid;
  grid-template-columns: 58px 1fr;
  gap: 18px;
  align-items: start;
  padding-top: 22px;
  border-top: 1px solid var(--border-color);
}

.personal-point:first-child{
  padding-top: 0;
  border-top: 0;
}

.personal-point-no{
  font-family: var(--font-en);
  font-size: 1.5rem;
  line-height: 1;
  color: #c5cad1;
  letter-spacing: .05em;
}

.personal-point-body h3{
  font-size: 1.12rem;
  margin-bottom: 10px;
  color: #111827;
}

.personal-point-body p{
  margin: 0;
  font-size: .95rem;
  line-height: 1.9;
  color: #4b5563;
}

.personal-visual{
  min-width: 0;
}

.personal-image-box{
  height: 100%;
  min-height: 560px;
  border: 1px solid var(--border-color);
  overflow: hidden;
  background: #f3f4f6;
}

.personal-image-box img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.personal-bottom{
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 28px;
  align-items: center;
  margin-top: 48px;
  padding: 28px 32px;
  border-top: 1px solid var(--border-color);
  border-bottom: 1px solid var(--border-color);
  background: #fafaf8;
}

.personal-bottom-price{
  min-width: 180px;
}

.personal-bottom-label{
  display: block;
  font-family: var(--font-en);
  font-size: .82rem;
  letter-spacing: .14em;
  color: var(--muted-text);
  margin-bottom: 8px;
}

.personal-bottom-amount{
  font-family: var(--font-en);
  font-size: 2.4rem;
  line-height: 1;
  color: #111827;
  letter-spacing: .03em;
  white-space: nowrap;
}

.personal-bottom-amount span{
  font-family: var(--font-jp);
  font-size: 1rem;
  color: var(--muted-text);
  margin-left: 6px;
}

.personal-bottom-text p{
  margin: 0;
  font-size: .95rem;
  line-height: 1.9;
  color: #4b5563;
}

.personal-bottom-action{
  text-align: right;
}

.personal-btn{
  min-width: 280px;
  text-align: center;
}

@media (max-width: 1024px){
  .personal-main{
    grid-template-columns: 1fr;
    gap: 36px;
  }

  .personal-image-box{
    min-height: 460px;
  }

  .personal-bottom{
    grid-template-columns: 1fr;
    gap: 18px;
    text-align: center;
  }

  .personal-bottom-price{
    min-width: 0;
  }

  .personal-bottom-action{
    text-align: center;
  }
}

@media (max-width: 768px){
  .personal-section .section-title{
    margin-bottom: 20px;
  }

  .personal-main{
    margin-top: 34px;
    gap: 28px;
  }

  .personal-lead{
    font-size: .95rem;
    line-height: 1.9;
    margin-bottom: 28px;
  }

  .personal-point{
    grid-template-columns: 46px 1fr;
    gap: 12px;
    padding-top: 18px;
  }

  .personal-point-no{
    font-size: 1.2rem;
  }

  .personal-point-body h3{
    font-size: 1rem;
    line-height: 1.6;
  }

  .personal-point-body p{
    font-size: .92rem;
    line-height: 1.8;
  }

  .personal-image-box{
    min-height: 360px;
  }

  .personal-bottom{
    margin-top: 34px;
    padding: 22px 18px;
  }

  .personal-bottom-amount{
    font-size: 2rem;
  }

  .personal-btn{
    width: 100%;
    min-width: 0;
  }
}
/* プライバシーポリシー同意チェックボックス */
.asc-cf7__consent .wpcf7-list-item {
  margin: 0;
}

.asc-cf7__consent input[type="checkbox"] {
  appearance: auto;
  -webkit-appearance: checkbox;
  width: 18px;
  height: 18px;
  accent-color: #c8102e; /* ブランドカラー（赤） */
  cursor: pointer;
  vertical-align: middle;
  margin-right: 8px;
}

.asc-cf7__consent .wpcf7-list-item-label {
  font-size: 14px;
  color: #111;
  cursor: pointer;
}

/* チェックエリアの視認性向上 */
.asc-cf7__consent {
  margin-top: 20px;
  margin-bottom: 16px;
  padding: 12px 16px 8px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #f9f9f9;
}

/* チェック時の強調表示 */
.asc-cf7__consent input[type="checkbox"]:checked {
  accent-color: #c8102e;
}

.price-campaign-box {
  width: min(920px, calc(100% - 32px));
  margin: 44px auto 56px;
  padding: 42px 44px 36px;
  background: #fff;
  border: 1px solid rgba(229, 9, 20, 0.28);
  border-radius: 24px;
  text-align: center;
  box-shadow: 0 18px 50px rgba(9, 22, 50, 0.08);
}

.price-campaign-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 18px;
  border-radius: 999px;
  background: #e50914;
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
  margin-bottom: 20px;
}

.price-campaign-title {
  margin: 0 0 28px;
  color: #061a3a;
  font-size: clamp(22px, 3vw, 34px);
  line-height: 1.45;
  font-weight: 900;
  letter-spacing: 0.04em;
}

.price-campaign-items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  max-width: 680px;
  margin: 0 auto;
}

.price-campaign-item {
  padding: 24px 20px;
  background: #f8fafc;
  border-radius: 18px;
  border: 1px solid rgba(6, 26, 58, 0.08);
}

.campaign-item-label {
  display: block;
  color: #061a3a;
  font-size: 15px;
  font-weight: 800;
  margin-bottom: 10px;
}

.campaign-price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 14px;
}

.campaign-old {
  color: #a7b1c2;
  font-size: 18px;
  font-weight: 700;
  text-decoration: line-through;
}

.campaign-price strong {
  color: #e50914;
  font-size: clamp(38px, 5vw, 56px);
  font-weight: 950;
  line-height: 1;
}

.price-campaign-note {
  margin: 22px 0 0;
  color: #64748b;
  font-size: 13px;
  line-height: 1.8;
}

@media (max-width: 768px) {
  .price-campaign-box {
    width: min(920px, calc(100% - 0px));
    margin: 32px auto 42px;
    padding: 30px 20px 26px;
    border-radius: 20px;
  }

  .price-campaign-items {
    grid-template-columns: 1fr;
  }

  .price-campaign-title {
    font-size: 20px;
  }

  .price-campaign-title .sp-break {
    display: block;
  }
}
.campaign-badge-hero {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 10px 18px;
  margin-bottom: 18px;
  background: rgba(229, 9, 20, 0.95);
  color: #fff;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.3;
  box-shadow: 0 12px 30px rgba(229, 9, 20, 0.28);
}

.campaign-badge-hero span {
  font-size: 15px;
  letter-spacing: 0.04em;
}

@media (max-width: 768px) {
  .campaign-badge-hero {
    padding: 9px 15px;
    font-size: 11px;
    margin-bottom: 14px;
  }

  .campaign-badge-hero span {
    font-size: 13px;
  }
}

.reserve-price-box {
  margin: 0 auto 32px;
  padding: 28px;
  text-align: center;
  background: #fff;
  border: 1px solid rgba(229,9,20,0.25);
  border-radius: 18px;
}

.reserve-price-main {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 12px;
  margin: 10px 0;
}

.reserve-price-main .old {
  text-decoration: line-through;
  color: #999;
  font-weight: 700;
}

.reserve-price-main strong {
  font-size: 42px;
  color: #e50914;
  font-weight: 900;
}

.reserve-price-campaign {
  font-weight: 700;
  color: #e50914;
  margin-top: 8px;
}

.reserve-price-note {
  font-size: 12px;
  color: #777;
}
/* =========================
   FOUNDER CAREER SECTION
   現サイトの白基調・余白・赤アクセントに統一
   ========================= */
#founder-career{
  position:relative;
  overflow:hidden;
  background:#ffffff !important;
  color:#111827;
}

#founder-career::before{
  content:"";
  position:absolute;
  left:5%;
  right:5%;
  top:0;
  border-top:1px solid rgba(17,24,39,.06);
}

#founder-career .founder-career-container{
  max-width:1200px;
  margin:0 auto;
}

#founder-career .founder-career-heading{
  text-align:center;
  margin-bottom:58px;
}

#founder-career .founder-career-kicker{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin:0 0 8px;
  color:var(--accent-red);
  font-family:var(--font-en);
  font-size:.95rem;
  letter-spacing:.18em;
  line-height:1;
}

#founder-career .founder-career-kicker::before,
#founder-career .founder-career-kicker::after{
  content:"";
  width:34px;
  height:1px;
  background:rgba(229,9,20,.42);
}

#founder-career .section-title{
  margin-bottom:0;
}

#founder-career .founder-career-grid{
  display:grid;
  grid-template-columns:minmax(320px,.88fr) minmax(0,1.12fr);
  gap:clamp(40px, 6vw, 74px);
  align-items:center;
}

#founder-career .founder-career-photo-wrap{
  position:relative;
}

#founder-career .founder-career-photo{
  position:relative;
  height:520px;
  overflow:hidden;
  border:1px solid var(--border-color);
  background:#f7f7f4;
  box-shadow:0 16px 42px rgba(17,24,39,.08);
}

#founder-career .founder-career-photo::before{
  content:"";
  position:absolute;
  inset:14px;
  border:1px solid rgba(255,255,255,.72);
  z-index:2;
  pointer-events:none;
}

#founder-career .founder-career-photo::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:34%;
  background:linear-gradient(180deg, rgba(17,24,39,0), rgba(17,24,39,.58));
  z-index:1;
  pointer-events:none;
}

#founder-career .founder-career-photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.02);
}

#founder-career .founder-career-namecard{
  position:absolute;
  left:28px;
  right:28px;
  bottom:28px;
  z-index:3;
  padding:20px 22px;
  background:rgba(255,255,255,.94);
  border-left:4px solid var(--accent-red);
  box-shadow:0 14px 34px rgba(17,24,39,.13);
}

#founder-career .founder-career-namecard span{
  display:block;
  margin-bottom:6px;
  color:var(--muted-text);
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.08em;
}

#founder-career .founder-career-namecard strong{
  display:block;
  color:#111827;
  font-family:var(--font-jp);
  font-size:1.72rem;
  font-weight:900;
  letter-spacing:.12em;
  line-height:1.25;
}

#founder-career .founder-career-namecard em{
  display:block;
  margin-top:4px;
  color:var(--accent-red);
  font-family:var(--font-en);
  font-size:.9rem;
  font-style:normal;
  letter-spacing:.16em;
}

#founder-career .founder-career-content{
  position:relative;
}

#founder-career .founder-career-intro{
  padding:0 0 28px;
  border-bottom:1px solid var(--border-color);
}

#founder-career .founder-career-label{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  margin-bottom:18px;
  padding:5px 12px;
  border:1px solid rgba(229,9,20,.22);
  background:rgba(229,9,20,.045);
  color:var(--accent-red);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.08em;
}

#founder-career .founder-career-content h3{
  margin:0 0 22px;
  color:#111827;
  font-family:var(--font-jp);
  font-size:clamp(1.72rem, 3vw, 2.55rem);
  font-weight:800;
  line-height:1.48;
  letter-spacing:.04em;
  text-transform:none;
}

#founder-career .founder-career-content p{
  margin:0;
  color:#374151;
  font-size:.98rem;
  line-height:2.05;
  letter-spacing:.03em;
}

#founder-career .founder-career-points{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:28px 0 30px;
}

#founder-career .founder-career-points span{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:7px 13px;
  border:1px solid var(--border-color);
  background:#fff;
  color:#111827;
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.04em;
  box-shadow:0 8px 22px rgba(17,24,39,.045);
}

#founder-career .founder-career-points span::before{
  content:"";
  width:6px;
  height:6px;
  margin-right:8px;
  border-radius:50%;
  background:var(--accent-red);
}

#founder-career .founder-career-history{
  display:grid;
  gap:12px;
}

#founder-career .founder-career-history article{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:18px;
  padding:20px 0;
  border-bottom:1px solid var(--border-color);
}

#founder-career .founder-career-history article:first-child{
  border-top:1px solid var(--border-color);
}

#founder-career .founder-career-history article > span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border:1px solid #111827;
  color:#111827;
  font-family:var(--font-en);
  font-size:1rem;
  letter-spacing:.06em;
  line-height:1;
}

#founder-career .founder-career-history h4{
  margin:0 0 6px;
  color:#111827;
  font-family:var(--font-jp);
  font-size:1.04rem;
  font-weight:800;
  line-height:1.65;
  letter-spacing:.04em;
  text-transform:none;
}

#founder-career .founder-career-history p{
  color:#4b5563;
  font-size:.92rem;
  line-height:1.9;
}

@media (max-width: 960px){
  #founder-career .founder-career-grid{
    grid-template-columns:1fr;
  }

  #founder-career .founder-career-photo-wrap{
    max-width:560px;
    width:100%;
    margin:0 auto;
  }
}

@media (max-width: 768px){
  #founder-career .founder-career-heading{
    margin-bottom:36px;
  }

  #founder-career .founder-career-kicker{
    font-size:.82rem;
  }

  #founder-career .founder-career-kicker::before,
  #founder-career .founder-career-kicker::after{
    width:24px;
  }

  #founder-career .founder-career-photo{
    height:360px;
  }

  #founder-career .founder-career-photo::before{
    inset:10px;
  }

  #founder-career .founder-career-namecard{
    left:14px;
    right:14px;
    bottom:14px;
    padding:16px 18px;
  }

  #founder-career .founder-career-namecard strong{
    font-size:1.45rem;
  }

  #founder-career .founder-career-content h3{
    font-size:1.25rem;
    line-height:1.62;
  }

  #founder-career .founder-career-content p{
    font-size:.93rem;
    line-height:1.9;
  }

  #founder-career .founder-career-points{
    gap:8px;
  }

  #founder-career .founder-career-points span{
    min-height:34px;
    padding:7px 10px;
    font-size:.75rem;
  }

  #founder-career .founder-career-history article{
    grid-template-columns:44px 1fr;
    gap:14px;
    padding:18px 0;
  }

  #founder-career .founder-career-history article > span{
    width:36px;
    height:36px;
    font-size:.9rem;
  }

  #founder-career .founder-career-history h4{
    font-size:.96rem;
  }
}
/* HEROのテキスト一式を下へ移動 */
@media screen and (min-width: 769px) {
  .hero.hero-slider .hero-content {
    transform: translateY(clamp(100px, 11vh, 150px));
  }
}

/* ========================================
   HERO タイトル・キャンペーン
======================================== */

.hero.hero-slider h1 {
  margin-bottom: 8px;
  line-height: 1;
}

/* FITNESS × SPORTS */
.hero-subtitle {
  margin-bottom: 24px;
  color: #fff;
  font-family: var(--font-en);
  font-size: clamp(15px, 1vw, 15px);
  font-weight: 700;
  letter-spacing: 0.32em;
  line-height: 1;
  text-shadow:
    0 2px 8px rgba(0, 0, 0, 0.35),
    0 8px 22px rgba(0, 0, 0, 0.2);
}

.hero-subtitle span {
  display: inline-block;
  margin: 0 0.35em;
  color: #ff3945;
  font-size: 1.3em;
}

.hero-description {
  margin: 0 0 18px !important;
}

/* キャンペーンパネル */
.hero.hero-slider .campaign-badge-hero {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 14px;

  margin: 0 auto 24px;
  padding: 8px 16px 8px 8px;

  color: #fff;
  background: rgba(8, 15, 25, 0.74);
  border: 1px solid rgba(255, 255, 255, 0.38);
  border-radius: 14px;

  box-shadow:
    0 14px 36px rgba(0, 0, 0, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);

  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

/* 赤いアクセント部分 */
.hero.hero-slider .campaign-badge-hero__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 42px;
  padding: 7px 11px;

  color: #fff;
  background: #e50914;
  border-radius: 9px;

  font-family: var(--font-en);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.13em;
  line-height: 1.25;
  text-align: center;
}

/* 体験料・入会金 */
.hero.hero-slider .campaign-badge-hero__offer {
  display: flex;
  align-items: baseline;
  gap: 6px;

  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1;
  white-space: nowrap;
}

.hero.hero-slider .campaign-badge-hero__offer strong {
  color: #fff;
  font-size: 21px;
  font-weight: 900;
  letter-spacing: 0;
}

.hero.hero-slider .campaign-badge-hero__divider {
  display: block;
  width: 1px;
  height: 20px;
  margin: 0 4px;
  background: rgba(255, 255, 255, 0.38);
}

/* スマートフォン */
@media screen and (max-width: 768px) {
  .hero.hero-slider h1 {
    margin-bottom: 7px;
  }

  .hero-subtitle {
    margin-bottom: 17px;
    font-size: 15px;
    letter-spacing: 0.24em;
  }

  .hero-description {
    margin-bottom: 14px !important;
    line-height: 1.8;
  }

  .hero.hero-slider .campaign-badge-hero {
    gap: 9px;
    margin-bottom: 18px;
    padding: 7px 10px 7px 7px;
    border-radius: 12px;
  }

  .hero.hero-slider .campaign-badge-hero__label {
    min-height: 36px;
    padding: 6px 8px;
    font-size: 8px;
    border-radius: 7px;
  }

  .hero.hero-slider .campaign-badge-hero__offer {
    gap: 4px;
    font-size: 11px;
  }

  .hero.hero-slider .campaign-badge-hero__offer strong {
    font-size: 17px;
  }

  .hero.hero-slider .campaign-badge-hero__divider {
    height: 15px;
    margin: 0 2px;
  }
}

/* ==================================================
   HERO キャンペーン・CTA
================================================== */

.hero.hero-slider .hero-actions {
  width: 100%;
  display: grid;
  justify-items: center;
  gap: 16px;
  margin-top: 24px;
}

/* キャンペーンパネル */
.hero.hero-slider .hero-campaign {
  width: min(100%, 390px);
  min-height: 64px;
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: 7px;
  color: #fff;
  background: rgba(9, 17, 29, 0.84);
  border: 1px solid rgba(255, 255, 255, 0.48);
  border-radius: 15px;
  box-shadow:
    0 14px 34px rgba(0, 0, 0, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* SUMMER CAMPAIGN */
.hero.hero-slider .hero-campaign__label {
  width: 84px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  color: #fff;
  background: linear-gradient(135deg, #ff3948 0%, #e50914 100%);
  border-radius: 10px;
  font-family: var(--font-en);
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.07em;
  line-height: 1.15;
  text-align: center;
}

/* 体験料・入会金 */
.hero.hero-slider .hero-campaign__offers {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  padding: 0 14px;
}

.hero.hero-slider .hero-campaign__item {
  display: flex;
  align-items: baseline;
  gap: 7px;
  white-space: nowrap;
}

.hero.hero-slider .hero-campaign__item small {
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.hero.hero-slider .hero-campaign__item strong {
  color: #fff;
  font-size: 23px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: 0;
}

.hero.hero-slider .hero-campaign__divider {
  width: 1px;
  height: 24px;
  background: rgba(255, 255, 255, 0.42);
}

/* 体験申し込みボタン */
.hero.hero-slider .hero-cta {
  position: relative;
  width: min(100%, 320px);
  min-height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 11px 68px 11px 30px;
  overflow: hidden;
  color: #fff;
  background:
    linear-gradient(135deg, #ff3a49 0%, #e50914 52%, #bd000b 100%);
  border: 1px solid rgba(255, 255, 255, 0.38);
  border-radius: 999px;
  box-shadow:
    0 16px 36px rgba(229, 9, 20, 0.38),
    inset 0 1px 0 rgba(255, 255, 255, 0.3);
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    filter 0.25s ease;
}

/* ボタンの光沢 */
.hero.hero-slider .hero-cta::before {
  content: "";
  position: absolute;
  top: 0;
  left: -80%;
  width: 50%;
  height: 100%;
  background: linear-gradient(
    110deg,
    transparent,
    rgba(255, 255, 255, 0.24),
    transparent
  );
  transform: skewX(-20deg);
  transition: left 0.55s ease;
}

.hero.hero-slider .hero-cta__text {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.25;
}

.hero.hero-slider .hero-cta__text small {
  margin-bottom: 2px;
  color: rgba(255, 255, 255, 0.78);
  font-family: var(--font-en);
  font-size: 9px;
  letter-spacing: 0.18em;
}

.hero.hero-slider .hero-cta__text strong {
  color: #fff;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

/* 右側の矢印 */
.hero.hero-slider .hero-cta__arrow {
  position: absolute;
  top: 50%;
  right: 11px;
  width: 46px;
  height: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #e50914;
  background: #fff;
  border-radius: 50%;
  font-size: 22px;
  line-height: 1;
  transform: translateY(-50%);
  transition:
    transform 0.25s ease,
    background 0.25s ease;
}

.hero.hero-slider .hero-cta:hover {
  color: #fff;
  filter: brightness(1.06);
  transform: translateY(-3px);
  box-shadow:
    0 21px 44px rgba(229, 9, 20, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.hero.hero-slider .hero-cta:hover::before {
  left: 135%;
}

.hero.hero-slider .hero-cta:hover .hero-cta__arrow {
  transform: translateY(-50%) translateX(3px);
}

/* ==================================================
   ASCEND HERO CONVERSION
================================================== */

.hero.hero-slider .hero-content {
  width: min(100% - 40px, 980px);
}

/* FITNESS × SPORTS */
.hero.hero-slider .hero-subtitle {
  margin: -4px 0 24px;
  color: #fff;
  font-family: var(--font-en);
  font-size: clamp(14px, 0.95vw, 15px);
  font-weight: 700;
  letter-spacing: 0.3em;
  line-height: 1;
  text-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
}

.hero.hero-slider .hero-subtitle span {
  display: inline-block;
  margin: 0 0.35em;
  color: #ff4b55;
}

.hero.hero-slider .hero-description {
  margin-bottom: 25px;
}

/* キャンペーンとボタンを中央の同じ軸に置く */
.hero.hero-slider .hero-conversion {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
}

/* ========================================
   キャンペーンカード
======================================== */

.hero.hero-slider .hero-offer {
  width: min(100%, 490px);
  min-height: 72px;
  display: flex;
  align-items: stretch;
  overflow: hidden;

  color: #151c2b;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(255, 75, 85, 0.8);
  border-radius: 15px;

  box-shadow:
    0 14px 35px rgba(0, 0, 0, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);

  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

/* 左側のSUMMER CAMPAIGN */
.hero.hero-slider .hero-offer__label {
  width: 142px;
  flex: 0 0 142px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;

  margin-right: -18px;
  padding: 10px 27px 10px 12px;

  color: #fff;
  background: linear-gradient(
    135deg,
    #ff6b64 0%,
    #ff4b55 48%,
    #ed2534 100%
  );

  clip-path: polygon(0 0, 100% 0, 84% 100%, 0 100%);

  font-family: var(--font-en);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  line-height: 1.15;
  text-align: center;
}

.hero.hero-slider .hero-offer__details {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 17px;
  padding: 11px 18px 11px 21px;
}

.hero.hero-slider .hero-offer__item {
  display: flex;
  align-items: baseline;
  gap: 8px;
  white-space: nowrap;
}

.hero.hero-slider .hero-offer__name {
  color: #182033;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.hero.hero-slider .hero-offer__price {
  color: #ff4b55;
  font-size: 17px;
  font-weight: 900;
  line-height: 1;
}

.hero.hero-slider .hero-offer__price em {
  margin-right: 2px;
  font-family: var(--font-en);
  font-size: 38px;
  font-style: normal;
  font-weight: 800;
  letter-spacing: -0.04em;
}

.hero.hero-slider .hero-offer__divider {
  width: 1px;
  height: 31px;
  flex: 0 0 1px;
  background: rgba(255, 75, 85, 0.65);
}

/* ========================================
   体験申し込みボタン
======================================== */

.hero.hero-slider .hero-trial-btn {
  position: relative;
  width: min(100%, 285px);
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;

  padding: 9px 62px 9px 25px;

  color: #fff;
  background: linear-gradient(
    135deg,
    #ff756c 0%,
    #ff4b55 48%,
    #ed2534 100%
  );

  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 999px;

  box-shadow:
    0 14px 28px rgba(231, 37, 52, 0.34),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);

  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease,
    filter 0.25s ease;
}

/* ボタン上を走る光 */
.hero.hero-slider .hero-trial-btn::before {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  width: 45%;
  height: 100%;

  background: linear-gradient(
    110deg,
    transparent,
    rgba(255, 255, 255, 0.22),
    transparent
  );

  transform: skewX(-22deg);
  transition: left 0.55s ease;
}

.hero.hero-slider .hero-trial-btn__texts {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.2;
}

.hero.hero-slider .hero-trial-btn__texts small {
  margin-bottom: 3px;
  color: rgba(255, 255, 255, 0.86);
  font-family: var(--font-en);
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.19em;
}

.hero.hero-slider .hero-trial-btn__texts strong {
  color: #fff;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: 0.08em;
}

/* 白い丸矢印 */
.hero.hero-slider .hero-trial-btn__arrow {
  position: absolute;
  top: 50%;
  right: 9px;
  z-index: 1;

  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;

  color: #ff4b55;
  background: #fff;
  border-radius: 50%;

  transform: translateY(-50%);
  transition: transform 0.25s ease;
}

.hero.hero-slider .hero-trial-btn__arrow svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.hero.hero-slider .hero-trial-btn:hover {
  color: #fff;
  filter: brightness(1.04);
  transform: translateY(-3px);

  box-shadow:
    0 19px 38px rgba(231, 37, 52, 0.43),
    inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

.hero.hero-slider .hero-trial-btn:hover::before {
  left: 135%;
}

.hero.hero-slider .hero-trial-btn:hover .hero-trial-btn__arrow {
  transform: translateY(-50%) translateX(3px);
}

.hero.hero-slider .hero-trial-btn:focus-visible {
  outline: 3px solid rgba(255, 255, 255, 0.95);
  outline-offset: 4px;
}

/* ==================================================
   HEROキャンペーン：スマホ表示修正
================================================== */
@media screen and (max-width: 768px) {

  .hero.hero-slider .hero-offer {
    width: calc(100% - 28px);
    max-width: 360px;
    min-height: 62px;
    margin-inline: auto;
    box-sizing: border-box;
    overflow: hidden;
    border-radius: 13px;
  }

  /* 左側のキャンペーン部分 */
  .hero.hero-slider .hero-offer__label {
    width: 88px;
    flex: 0 0 88px;

    /* 文字へ重なっていた原因 */
    margin-right: 0;

    padding: 8px 15px 8px 7px;
    box-sizing: border-box;

    font-size: 8px;
    line-height: 1.15;
    letter-spacing: 0.06em;

    clip-path: polygon(
      0 0,
      100% 0,
      82% 100%,
      0 100%
    );
  }

  /* 料金全体 */
  .hero.hero-slider .hero-offer__details {
    min-width: 0;
    flex: 1;

    display: grid;
    grid-template-columns:
      minmax(0, 1fr)
      1px
      minmax(0, 1fr);

    align-items: center;
    gap: 7px;

    padding: 8px 9px 8px 4px;
    box-sizing: border-box;
  }

  /* 体験料・入会金 */
  .hero.hero-slider .hero-offer__item {
    min-width: 0;
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 3px;

    white-space: nowrap;
  }

  .hero.hero-slider .hero-offer__name {
    flex-shrink: 0;
    font-size: 10px;
    line-height: 1;
    letter-spacing: 0;
  }

  .hero.hero-slider .hero-offer__price {
    flex-shrink: 0;
    display: inline-flex;
    align-items: baseline;

    font-size: 11px;
    line-height: 1;
    white-space: nowrap;
  }

  .hero.hero-slider .hero-offer__price em {
    margin-right: 1px;
    font-size: 28px;
    line-height: 0.9;
  }

  .hero.hero-slider .hero-offer__divider {
    width: 1px;
    height: 26px;
    margin: 0;
  }
}

/* ==================================================
   v1.1.4 UI/UX refinement
   - Scope mobile global navigation to #nav-menu only
   - Responsive archive cards and accessible pagination
   - Improve column article readability on light background
================================================== */

.archive-main{
  padding-top:140px;
}

.archive-shell{
  width:min(1100px, 100%);
}

.archive-shell .grid-3{
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:26px;
}

.archive-shell .column-card{
  min-width:0;
  border-color:rgba(17,24,39,.10);
  box-shadow:0 8px 26px rgba(17,24,39,.045);
}

.archive-shell .column-card > a{
  display:block;
  height:100%;
}

.archive-shell .column-card > a:focus-visible{
  outline:3px solid rgba(229,9,20,.28);
  outline-offset:4px;
}

.archive-shell .column-card .card-img-area{
  height:auto;
  aspect-ratio:16 / 10;
  background:#eef0f3;
}

.archive-shell .column-card .card-content{
  padding:22px 22px 24px;
}

.archive-shell .column-card .column-date{
  margin-bottom:8px;
  font-size:.8rem;
  letter-spacing:.08em;
}

.archive-shell .column-card h2,
.archive-shell .column-card h3{
  margin:0;
  color:#111827;
  font-family:var(--font-jp);
  font-size:1.08rem;
  font-weight:700;
  line-height:1.72;
  letter-spacing:.025em;
  text-transform:none;
}

/* paginate_links(type=list) actually returns ul.page-numbers, not .nav-links */
.ascend-pagination{
  margin-top:48px;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:center;
}

.ascend-pagination > ul.page-numbers{
  width:auto;
  min-width:0;
  height:auto;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
  list-style:none;
}

.ascend-pagination > ul.page-numbers > li{
  margin:0;
  padding:0;
}

.ascend-pagination > ul.page-numbers > li > .page-numbers{
  width:auto;
  min-width:44px;
  height:44px;
  margin:0;
  padding:0 13px;
  border:1px solid rgba(17,24,39,.14);
  border-radius:999px;
  background:#fff;
  color:#111827;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-jp);
  font-size:.9rem;
  font-weight:700;
  line-height:1;
  letter-spacing:0;
  text-decoration:none;
  box-shadow:0 4px 14px rgba(17,24,39,.035);
}

.ascend-pagination > ul.page-numbers > li > a.page-numbers:hover,
.ascend-pagination > ul.page-numbers > li > a.page-numbers:focus-visible,
.ascend-pagination > ul.page-numbers > li > .page-numbers.current{
  border-color:#111827;
  background:#111827;
  color:#fff;
}

.ascend-pagination > ul.page-numbers > li > a.page-numbers:focus-visible{
  outline:3px solid rgba(229,9,20,.24);
  outline-offset:2px;
}

/* Generic WP archive pagination gets the same safe mobile behavior. */
.navigation.pagination{
  position:static;
  width:auto;
  height:auto;
  background:transparent;
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

/* Column single: old dark-theme remnants made links/list text too pale on white. */
.p-body-text li{
  color:#374151;
}

.p-body-text a{
  color:#9f1d29;
  opacity:1;
  text-decoration-thickness:1px;
}

.p-body-text a:hover{
  color:#6f121b;
}

.p-body-text blockquote{
  border-left-color:#9f1d29;
  background:#f6f4ef;
  color:#374151;
}

.p-body-text hr{
  border-top-color:#d9dee6;
}

.p-body-text img{
  border-color:#e5e7eb;
}

.p-body-text code,
.p-body-text pre{
  border-color:#d9dee6;
  background:#f7f7f4;
  color:#1f2937;
}

@media (max-width: 900px){
  .archive-shell .grid-3{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:20px;
  }
}

@media (max-width: 768px){
  .archive-main{
    padding-top:108px !important;
    padding-left:18px;
    padding-right:18px;
    padding-bottom:76px;
  }

  .archive-main .archive-head{
    margin-bottom:28px;
  }

  .archive-main .section-title{
    margin-bottom:0;
    font-size:clamp(2.05rem, 11vw, 2.65rem);
    line-height:1.05;
  }

  .archive-main .section-title span{
    margin-top:10px;
    font-size:.82rem;
    line-height:1.5;
  }

  .archive-main .archive-lead{
    max-width:33em;
    margin:16px auto 0;
    font-size:.9rem;
    line-height:1.85;
    text-align:left;
    letter-spacing:.025em;
  }

  .archive-shell .grid-3{
    grid-template-columns:minmax(0, 1fr);
    gap:18px;
  }

  .archive-shell .column-card:hover{
    transform:none;
  }

  .archive-shell .column-card .card-content{
    padding:18px 18px 20px;
  }

  .archive-shell .column-card h2,
  .archive-shell .column-card h3{
    font-size:1rem;
    line-height:1.7;
  }

  .ascend-pagination{
    margin-top:36px;
    padding:0 2px;
  }

  .ascend-pagination > ul.page-numbers{
    gap:6px;
  }

  .ascend-pagination > ul.page-numbers > li > .page-numbers{
    min-width:44px;
    height:44px;
    padding:0 11px;
    font-size:.86rem;
  }

  .card-article{
    padding:20px;
  }

  .p-body-text{
    padding:0;
    font-size:.98rem;
    line-height:1.95;
  }
}


/* ==================================================
   v1.1.5 UI/UX refinement
   - Pagination: one-row mobile layout / no sticky touch hover
   - Front page: preserve HERO, refine all following sections
================================================== */


/* Accessibility utility used by pagination labels. */
.screen-reader-text{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* ---------- Pagination: isolate WordPress list container ---------- */
.ascend-pagination,
.ascend-pagination > ul.page-numbers,
.ascend-pagination > ul.page-numbers > li{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

.ascend-pagination > ul.page-numbers{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center;
  justify-content:center;
  width:max-content !important;
  max-width:100%;
  margin-inline:auto !important;
  gap:6px;
  overflow:visible;
}

.ascend-pagination > ul.page-numbers > li{
  flex:0 0 auto;
  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}

.ascend-pagination > ul.page-numbers > li > .page-numbers{
  box-sizing:border-box;
  min-width:42px;
  width:42px;
  height:42px;
  padding:0 !important;
  margin:0 !important;
  border:1px solid rgba(17,24,39,.12) !important;
  border-radius:50%;
  background:#fff !important;
  color:#172033 !important;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  font-family:var(--font-jp);
  font-size:.84rem;
  font-weight:700;
  line-height:1;
  text-decoration:none;
  box-shadow:none !important;
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  user-select:none;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}

.ascend-pagination > ul.page-numbers > li > .page-numbers.current{
  border-color:#172033 !important;
  background:#172033 !important;
  color:#fff !important;
}

.ascend-pagination > ul.page-numbers > li > .page-numbers.dots{
  border-color:transparent !important;
  background:transparent !important;
  width:28px;
  min-width:28px;
  color:#64748b !important;
}

.ascend-pagination > ul.page-numbers > li > a.page-numbers:active{
  transform:scale(.94);
}

/* Hover effects only on devices that really support hover.
   Prevents a tapped page number remaining dark on mobile Safari/Chrome. */
@media (hover:hover) and (pointer:fine){
  .ascend-pagination > ul.page-numbers > li > a.page-numbers:not(.dots):hover{
    border-color:#172033 !important;
    background:#172033 !important;
    color:#fff !important;
  }
}

@media (hover:none), (pointer:coarse){
  .ascend-pagination > ul.page-numbers > li > a.page-numbers:hover{
    border-color:rgba(17,24,39,.12) !important;
    background:#fff !important;
    color:#172033 !important;
  }
}

@media (max-width:768px){
  .ascend-pagination{
    width:100%;
    margin-top:32px;
    padding:0;
    overflow:visible;
  }

  .ascend-pagination > ul.page-numbers{
    gap:4px;
  }

  .ascend-pagination > ul.page-numbers > li > .page-numbers{
    width:36px;
    min-width:36px;
    height:36px;
    font-size:.78rem;
  }

  .ascend-pagination > ul.page-numbers > li > .page-numbers.dots{
    width:22px;
    min-width:22px;
  }
}

@media (max-width:350px){
  .ascend-pagination > ul.page-numbers{
    gap:2px;
  }
  .ascend-pagination > ul.page-numbers > li > .page-numbers{
    width:34px;
    min-width:34px;
    height:34px;
    font-size:.75rem;
  }
  .ascend-pagination > ul.page-numbers > li > .page-numbers.dots{
    width:18px;
    min-width:18px;
  }
}

/* ---------- Front page design system (HERO deliberately excluded) ---------- */
.home{
  --asc-ink:#111827;
  --asc-sub:#586174;
  --asc-line:rgba(17,24,39,.09);
  --asc-red:#d80f22;
  --asc-paper:#ffffff;
  --asc-warm:#f6f5f1;
  --asc-soft:#f2f4f7;
  --asc-radius:22px;
  --asc-shadow:0 18px 55px rgba(17,24,39,.075);
}

.home .section-padding:not(.hero){
  padding-top:112px;
  padding-bottom:112px;
}

.home #mission,
.home #owner,
.home #program,
.home #personal,
.home #access,
.home #column,
.home #instagram{
  background:var(--asc-paper) !important;
}

.home #why,
.home #effects,
.home #price,
.home #news{
  background:var(--asc-warm) !important;
}

/* Softer section boundaries instead of long hard separator lines */
.home #mission::before,
.home #why::before,
.home #owner::before,
.home #effects::before,
.home #program::before,
.home #price::before,
.home #access::before,
.home #column::before,
.home #news::before,
.home #instagram::before{
  display:none !important;
}

.home .section-title{
  position:relative;
  width:min(1200px,100%);
  margin:0 auto 56px;
  padding-left:22px;
  text-align:left;
  color:var(--asc-ink);
  font-size:clamp(2.8rem,5vw,4.6rem);
  line-height:.98;
  letter-spacing:.07em;
}

.home .section-title::before{
  content:"";
  position:absolute;
  left:0;
  top:.05em;
  width:4px;
  height:.92em;
  border-radius:999px;
  background:var(--asc-red);
}

.home .section-title span{
  margin-top:12px;
  color:var(--asc-sub) !important;
  font-family:var(--font-jp);
  font-size:.9rem;
  font-weight:500;
  line-height:1.65;
  letter-spacing:.06em;
  text-transform:none;
}

/* Mission / Owner: editorial split layout */
.home #mission .grid-layout,
.home #owner .grid-layout{
  gap:clamp(42px,6vw,84px);
}

.home #mission .card-img-area,
.home #owner .card-img-area{
  position:relative;
  overflow:hidden;
  border:0;
  border-radius:var(--asc-radius);
  background:#e8eaed;
  box-shadow:var(--asc-shadow);
}

.home #mission .mission-hero{
  height:auto !important;
  aspect-ratio:4/3;
}

.home #owner .owner-visual .card-img-area{
  height:auto !important;
  aspect-ratio:4/5;
}

.home #mission .card-img-area img,
.home #owner .card-img-area img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s cubic-bezier(.2,.7,.2,1);
}

@media (hover:hover) and (pointer:fine){
  .home #mission .card-img-area:hover img,
  .home #owner .card-img-area:hover img{
    transform:scale(1.025);
  }
}

.home #mission .text-content,
.home #owner .text-content{
  position:relative;
}

.home #mission .text-content h3,
.home #owner .text-content h3{
  margin-bottom:16px;
  color:var(--asc-ink);
  font-family:var(--font-en);
  font-size:clamp(2.25rem,4vw,4rem);
  line-height:1.05;
  letter-spacing:.055em;
}

.home #owner .text-content h3{
  font-family:var(--font-jp);
  font-size:clamp(1.8rem,3vw,2.75rem);
  font-weight:700;
  line-height:1.5;
  letter-spacing:.04em;
  text-transform:none;
}

.home #mission .text-content > span{
  display:inline-flex;
  margin:0 0 28px;
  padding:6px 11px;
  border-radius:999px;
  background:rgba(216,15,34,.07);
  color:var(--asc-red) !important;
  font-size:.82rem;
  font-weight:700;
}

.home #mission .text-content p,
.home #owner .text-content p{
  color:#465064 !important;
  font-size:.97rem;
  line-height:2;
}

/* WHY: cleaner premium cards */
.home #why .grid-3{
  gap:22px;
}

.home #why .card-base{
  overflow:hidden;
  border:1px solid rgba(17,24,39,.07);
  border-radius:20px;
  background:#fff;
  box-shadow:0 10px 35px rgba(17,24,39,.045);
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}

.home #why .card-img-area{
  height:auto;
  aspect-ratio:16/10;
  overflow:hidden;
  background:#e9ebee;
}

.home #why .card-img-area img{
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}

.home #why .card-content{
  position:relative;
  padding:26px 26px 28px;
}

.home #why .card-content::before{
  content:"";
  display:block;
  width:38px;
  height:3px;
  margin-bottom:18px;
  border-radius:99px;
  background:var(--asc-red);
}

.home #why .card-content h3{
  margin:0 0 12px;
  color:var(--asc-ink);
  font-family:var(--font-jp);
  font-size:1.08rem;
  font-weight:700;
  line-height:1.65;
  letter-spacing:.025em;
  text-transform:none;
}

.home #why .card-content p{
  margin:0;
  color:var(--asc-sub) !important;
  font-size:.91rem;
  line-height:1.9;
}

@media (hover:hover) and (pointer:fine){
  .home #why .card-base:hover{
    transform:translateY(-6px);
    border-color:rgba(17,24,39,.12);
    box-shadow:0 22px 52px rgba(17,24,39,.09);
  }
  .home #why .card-base:hover img{
    transform:scale(1.035);
  }
}

/* EFFECTS: separate cards instead of one boxed table */
.home #effects .effects-container{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  max-width:1200px;
  margin:0 auto;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.home #effects .effect-item{
  min-width:0;
  padding:34px 30px 32px;
  border:1px solid rgba(17,24,39,.07) !important;
  border-radius:20px;
  background:rgba(255,255,255,.9) !important;
  box-shadow:0 10px 30px rgba(17,24,39,.04);
}

.home #effects .effect-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:52px;
  height:52px;
  margin-bottom:26px;
  border-radius:16px;
  background:rgba(216,15,34,.08);
  color:var(--asc-red);
  font-size:1.25rem;
}

.home #effects .effect-item h3{
  margin-bottom:14px;
  color:var(--asc-ink);
  font-size:1.45rem;
  letter-spacing:.06em;
}

.home #effects .effect-item p{
  margin:0;
  color:var(--asc-sub) !important;
  font-size:.92rem;
  line-height:1.9;
}

/* PROGRAM: image-led cards */
.home #program .swiper{
  padding:6px 4px 56px;
}

.home #program .swiper-slide{
  justify-content:flex-start;
  overflow:hidden;
  padding:14px 14px 26px;
  border:1px solid rgba(17,24,39,.07);
  border-radius:20px;
  background:#fff;
  text-align:left;
  box-shadow:0 12px 34px rgba(17,24,39,.05);
}

.home #program .program-img-box{
  height:auto !important;
  aspect-ratio:16/10;
  margin-bottom:22px !important;
  overflow:hidden;
  border-radius:14px;
}

.home #program .program-img-box img{
  height:100%;
  object-fit:cover;
}

.home #program .swiper-slide h3{
  margin:0 10px 8px;
  color:var(--asc-ink);
  font-size:1.4rem;
  line-height:1.25;
  letter-spacing:.06em;
}

.home #program .swiper-slide p{
  margin:4px 10px 0;
  color:var(--asc-sub) !important;
  font-size:.9rem;
  line-height:1.8;
}

.home #program .swiper-pagination-bullet-active{
  background:var(--asc-red);
}

/* PERSONAL: retain structure, refine surfaces */
.home #personal .personal-main{
  gap:clamp(34px,5vw,62px);
}

.home #personal .personal-point{
  padding:20px 18px;
  border:1px solid rgba(17,24,39,.07);
  border-radius:16px;
  background:#fff;
}

.home #personal .personal-point:first-child{
  padding-top:20px;
  border-top:1px solid rgba(17,24,39,.07);
}

.home #personal .personal-point-no{
  color:var(--asc-red);
}

.home #personal .personal-image-box{
  border:0;
  border-radius:22px;
  box-shadow:var(--asc-shadow);
}

.home #personal .personal-bottom{
  border:0;
  border-radius:20px;
  background:#172033;
  box-shadow:0 18px 44px rgba(17,24,39,.14);
}

.home #personal .personal-bottom-label,
.home #personal .personal-bottom-text p,
.home #personal .personal-bottom-amount span{
  color:rgba(255,255,255,.66) !important;
}

.home #personal .personal-bottom-amount{
  color:#fff;
}

.home #personal .personal-btn{
  border-color:#fff;
  background:#fff;
  color:#172033;
  box-shadow:none;
}

/* PRICE: simplified premium cards */
.home #price .price-grid{
  gap:20px;
}

.home #price .price-card{
  padding:38px 28px 34px;
  border:1px solid rgba(17,24,39,.08);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 34px rgba(17,24,39,.045);
}

.home #price .price-card.featured{
  border-color:#172033;
  box-shadow:0 18px 46px rgba(17,24,39,.09);
}

.home #price .price-card.featured::before{
  top:14px;
  left:14px;
  transform:none;
  border-radius:999px;
  background:#172033;
  color:#fff;
  padding:6px 11px;
  font-size:.65rem;
  letter-spacing:.09em;
}

.home #price .price-info-box{
  border-radius:18px;
}

/* FAQ: align visual language with other sections */
.home .faq-section{
  background:#fff;
}

.home .faq-item{
  border-radius:16px;
  overflow:hidden;
}

.home .faq-eyebrow{
  color:var(--asc-red);
}

/* ACCESS */
.home #access .access-container{
  gap:24px;
  align-items:stretch;
}

.home #access .access-info,
.home #access .access-map{
  min-width:0;
  border:1px solid rgba(17,24,39,.07);
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 38px rgba(17,24,39,.05);
  overflow:hidden;
}

.home #access .access-info{
  padding:34px;
}

.home #access .access-map{
  height:auto;
  min-height:500px;
}

/* CTA: stronger conversion block, still clean */
.home #cta{
  padding-top:88px;
  padding-bottom:88px;
  background:#172033 !important;
  color:#fff;
}

.home #cta .cta-inner{
  position:relative;
  max-width:920px !important;
  padding:58px 54px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:26px;
  background:linear-gradient(135deg,rgba(255,255,255,.055),rgba(255,255,255,.015));
  text-align:left;
}

.home #cta .section-title{
  width:auto;
  margin:0 0 24px !important;
  color:#fff !important;
}

.home #cta .section-title span,
.home #cta p{
  color:rgba(255,255,255,.72) !important;
}

.home #cta .btn-main{
  border-color:#fff;
  background:#fff;
  color:#172033;
  box-shadow:none;
}

/* COLUMN */
.home #column .grid-3{
  gap:22px;
}

.home #column .column-card{
  overflow:hidden;
  border:1px solid rgba(17,24,39,.07);
  border-radius:20px;
  background:#fff;
  box-shadow:0 10px 32px rgba(17,24,39,.045);
}

.home #column .column-card .card-content{
  padding:22px 22px 26px;
}

.home #column .column-date{
  color:#8991a0;
  font-size:.78rem;
  letter-spacing:.08em;
}

.home #column .column-card h3{
  color:var(--asc-ink);
  font-size:1rem;
  line-height:1.75;
}

/* NEWS */
.home #news .news-list{
  max-width:960px;
  overflow:hidden;
  border:1px solid rgba(17,24,39,.07);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 34px rgba(17,24,39,.04);
}

.home #news .news-item{
  position:relative;
  flex-wrap:nowrap;
  gap:18px;
  padding:22px 26px;
  border-bottom:1px solid rgba(17,24,39,.065);
  transition:background-color .2s ease;
}

.home #news .news-item:last-child{
  border-bottom:0;
}

.home #news .news-title{
  min-width:0;
  color:var(--asc-ink);
  text-decoration:none;
  line-height:1.7;
}

@media (hover:hover) and (pointer:fine){
  .home #news .news-item:hover{
    background:#fafafa;
  }
}

/* Instagram */
.home #instagram .ascend-ig-grid{
  gap:12px;
}

.home #instagram .ascend-ig-item{
  overflow:hidden;
  border:0;
  border-radius:16px;
  background:#f3f4f6;
}

.home #instagram .ascend-ig-item img{
  height:auto;
  aspect-ratio:1/1;
}

/* Common front-page buttons */
.home .btn-main{
  border-radius:999px;
  padding:15px 34px;
  font-size:.9rem;
  letter-spacing:.07em;
  box-shadow:none;
}

.home .archive-link-wrap{
  margin-top:38px;
  text-align:left;
  max-width:1200px;
  margin-left:auto;
  margin-right:auto;
}

/* ---------- Front page mobile ---------- */
@media (max-width:768px){
  .home .section-padding:not(.hero){
    padding:76px 18px;
  }

  .home .section-title{
    margin-bottom:34px;
    padding-left:15px;
    font-size:clamp(2.3rem,12vw,3.25rem);
    line-height:1;
  }

  .home .section-title::before{
    width:3px;
  }

  .home .section-title span{
    margin-top:8px;
    font-size:.78rem;
  }

  .home #mission .grid-layout,
  .home #owner .grid-layout{
    gap:30px;
  }

  .home #mission .text-content h3,
  .home #owner .text-content h3{
    text-align:left;
  }

  .home #mission .text-content h3{
    font-size:2.35rem;
  }

  .home #owner .text-content h3{
    font-size:1.55rem;
    line-height:1.55;
  }

  .home #mission .text-content p,
  .home #owner .text-content p{
    font-size:.93rem;
    line-height:1.95;
  }

  .home #why .grid-3{
    gap:16px;
  }

  .home #why .card-content{
    padding:22px 20px 24px;
  }

  .home #effects .effects-container{
    grid-template-columns:1fr;
    gap:14px;
  }

  .home #effects .effect-item{
    padding:26px 22px;
  }

  .home #effects .effect-icon{
    width:46px;
    height:46px;
    margin-bottom:20px;
    border-radius:14px;
  }

  .home #program .swiper-slide{
    padding:12px 12px 22px;
  }

  .home #personal .personal-point{
    grid-template-columns:38px minmax(0,1fr);
    padding:18px 16px;
  }

  .home #personal .personal-point:first-child{
    padding-top:18px;
  }

  .home #personal .personal-bottom{
    border-radius:18px;
  }

  .home #price .price-card{
    padding:32px 20px 28px;
  }

  .home #access .access-container{
    gap:16px;
  }

  .home #access .access-info{
    padding:24px 20px;
    border-radius:18px;
  }

  .home #access .access-map{
    min-height:360px;
    border-radius:18px;
  }

  .home #cta{
    padding:64px 18px;
  }

  .home #cta .cta-inner{
    padding:38px 24px;
    border-radius:20px;
  }

  .home #cta .section-title{
    font-size:2.4rem;
  }

  .home #cta .btn-main{
    width:100%;
    text-align:center;
  }

  .home #column .grid-3{
    gap:16px;
  }

  .home #news .news-list{
    border-radius:16px;
  }

  .home #news .news-item{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:6px 10px;
    padding:18px 18px;
  }

  .home #news .news-date{
    font-size:.78rem;
  }

  .home #news .news-cat{
    justify-self:start;
  }

  .home #news .news-title{
    grid-column:1/-1;
    margin-top:4px;
    font-size:.93rem;
  }

  .home .archive-link-wrap{
    margin-top:28px;
  }

  .home .archive-link-wrap .btn-main,
  .home #news .btn-main{
    width:100%;
    text-align:center;
  }
}

/* ==================================================
   v1.1.6 TOP PAGE ART DIRECTION
   - HERO is intentionally untouched
   - Stronger section hierarchy / reduced dead space
   - Editorial owner/founder treatment
   - Compact two-column FAQ on desktop
   - Better mobile rhythm and tap/readability
================================================== */

.home{
  --asc-v116-ink:#101827;
  --asc-v116-red:#e1142a;
  --asc-v116-muted:#657083;
  --asc-v116-warm:#f4f2ed;
  --asc-v116-card:#ffffff;
  --asc-v116-line:rgba(16,24,39,.09);
  --asc-v116-shadow:0 16px 44px rgba(16,24,39,.07);
}

/* Reduce the "long brochure" feeling while keeping breathing room. */
.home .section-padding:not(.hero),
.home #founder-career{
  padding-top:88px;
  padding-bottom:88px;
}

.home .section-title{
  margin-bottom:40px;
}

.home .section-title span{
  max-width:42rem;
}

/* --- CONCEPT: editorial, less empty, more intentional --- */
.home #mission .grid-layout{
  grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
  align-items:center;
}

.home #mission .mission-visual{
  position:relative;
}

.home #mission .mission-visual::after{
  content:"ASCEND / NAKANO";
  position:absolute;
  right:-10px;
  bottom:18px;
  z-index:2;
  padding:8px 12px;
  border-radius:999px;
  background:#fff;
  color:var(--asc-v116-ink);
  font-family:var(--font-en);
  font-size:.7rem;
  letter-spacing:.14em;
  box-shadow:0 8px 22px rgba(16,24,39,.12);
}

.home #mission .text-content{
  max-width:640px;
}

.home #mission .text-content p{
  margin-bottom:18px;
}

.home #mission .text-content p:last-child{
  margin-bottom:0;
}

/* --- WHY: clearer hierarchy --- */
.home #why{
  background:linear-gradient(180deg,#f7f6f2 0%,#f1efe9 100%) !important;
}

.home #why .card-base{
  border-radius:18px;
}

.home #why .card-content{
  min-height:210px;
}

.home #why .card-content h3{
  font-size:1.12rem;
}

/* --- OWNER MESSAGE: strong visual break / brand story --- */
.home #owner{
  position:relative;
  overflow:hidden;
  background:#111a2b !important;
  color:#fff;
}

.home #owner::after{
  content:"ASCEND";
  position:absolute;
  right:-.035em;
  bottom:-.18em;
  color:rgba(255,255,255,.028);
  font-family:var(--font-en);
  font-size:clamp(9rem,19vw,18rem);
  line-height:1;
  letter-spacing:.02em;
  pointer-events:none;
}

.home #owner .grid-layout{
  position:relative;
  z-index:1;
  grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);
}

.home #owner .text-content::before{
  content:"MESSAGE";
  display:block;
  margin-bottom:18px;
  color:#ff5363;
  font-family:var(--font-en);
  font-size:.82rem;
  letter-spacing:.19em;
}

.home #owner .text-content h3{
  color:#fff !important;
  font-size:clamp(1.85rem,3vw,2.7rem);
}

.home #owner .text-content p{
  color:rgba(255,255,255,.74) !important;
}

.home #owner .owner-visual .card-img-area{
  border-radius:18px;
  box-shadow:0 22px 70px rgba(0,0,0,.25);
}

.home #owner .owner-visual .card-img-area::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(17,26,43,0) 55%,rgba(17,26,43,.24));
  pointer-events:none;
}

/* --- FOUNDER: tighter and more editorial --- */
.home #founder-career{
  background:#fff !important;
}

.home #founder-career::before{
  display:none;
}

.home #founder-career .founder-career-heading{
  max-width:1200px;
  margin:0 auto 38px;
  text-align:left;
}

.home #founder-career .founder-career-kicker{
  justify-content:flex-start;
  margin-bottom:8px;
}

.home #founder-career .founder-career-kicker::before{
  width:24px;
}

.home #founder-career .founder-career-kicker::after{
  display:none;
}

.home #founder-career .section-title{
  width:auto;
  margin:0;
}

.home #founder-career .founder-career-grid{
  align-items:start;
  gap:clamp(42px,5vw,68px);
}

.home #founder-career .founder-career-photo{
  height:auto;
  aspect-ratio:4/5;
  border:0;
  border-radius:20px;
  box-shadow:var(--asc-v116-shadow);
}

.home #founder-career .founder-career-namecard{
  border-left:0;
  border-radius:12px;
  box-shadow:0 16px 36px rgba(16,24,39,.13);
}

.home #founder-career .founder-career-namecard::before{
  content:"";
  display:block;
  width:42px;
  height:3px;
  margin-bottom:12px;
  border-radius:999px;
  background:var(--asc-v116-red);
}

.home #founder-career .founder-career-content h3{
  font-size:clamp(1.55rem,2.45vw,2.25rem);
}

.home #founder-career .founder-career-history article{
  padding:16px 0;
}

/* --- EFFECTS: make three small cards feel designed rather than empty --- */
.home #effects{
  counter-reset:asc-effect;
}

.home #effects .effects-container{
  gap:16px;
}

.home #effects .effect-item{
  counter-increment:asc-effect;
  position:relative;
  min-height:270px;
  overflow:hidden;
  padding:32px 28px 30px;
  border-radius:18px;
}

.home #effects .effect-item::before{
  content:"0" counter(asc-effect);
  position:absolute;
  right:20px;
  top:16px;
  color:rgba(16,24,39,.055);
  font-family:var(--font-en);
  font-size:4.5rem;
  line-height:1;
  letter-spacing:.02em;
}

.home #effects .effect-icon{
  position:relative;
  z-index:1;
  margin-bottom:20px;
}

.home #effects .effect-item h3,
.home #effects .effect-item p{
  position:relative;
  z-index:1;
}

/* --- PROGRAMS: image-forward, stronger cards --- */
.home #program .swiper{
  max-width:1200px;
  margin-inline:auto;
}

.home #program .swiper-slide{
  border-radius:18px;
  box-shadow:0 14px 38px rgba(16,24,39,.055);
}

.home #program .program-img-box{
  aspect-ratio:16/9;
}

/* --- PERSONAL: slightly more premium and compact --- */
.home #personal{
  background:linear-gradient(180deg,#fff 0%,#fafafa 100%) !important;
}

.home #personal .personal-point{
  padding:17px 18px;
  border-radius:14px;
}

.home #personal .personal-image-box{
  overflow:hidden;
}

.home #personal .personal-image-box img{
  transition:transform .65s cubic-bezier(.2,.7,.2,1);
}

@media (hover:hover) and (pointer:fine){
  .home #personal .personal-image-box:hover img{
    transform:scale(1.025);
  }
}

/* --- PRICE: make campaign dominant, plan cards quieter --- */
.home #price{
  background:#f3f1ec !important;
}

.home #price .price-campaign-box{
  border-radius:22px;
  box-shadow:0 16px 42px rgba(16,24,39,.06);
}

.home #price .price-card{
  border-radius:16px;
}

/* --- FAQ: major UX improvement on desktop --- */
.home .faq-section{
  padding:88px 0;
  background:#fff;
}

.home .faq-container{
  width:min(1180px,calc(100% - 64px));
}

@media (min-width:961px){
  .home .faq-container{
    display:grid;
    grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr);
    gap:clamp(52px,7vw,96px);
    align-items:start;
  }

  .home .faq-heading{
    position:sticky;
    top:110px;
    max-width:330px;
    margin:0;
    text-align:left;
  }

  .home .faq-title{
    font-size:clamp(2.1rem,3vw,3.2rem);
  }

  .home .faq-lead{
    margin-left:0;
    font-size:.92rem;
  }

  .home .faq-list{
    gap:10px;
  }

  .home .faq-item{
    border-radius:12px;
    box-shadow:none;
  }

  .home .faq-question{
    padding:20px 58px 20px 22px;
  }

  .home .faq-q{
    font-size:.98rem;
  }

  .home .faq-answer-inner{
    padding-inline:22px;
  }

  .home .faq-item.is-open .faq-answer-inner{
    padding-bottom:22px;
  }
}

/* --- ACCESS + CTA: visually connect conversion flow --- */
.home #access{
  padding-bottom:72px;
}

.home #access .access-info,
.home #access .access-map{
  border-radius:18px;
}

.home #cta{
  padding-top:72px;
  padding-bottom:72px;
}

.home #cta .cta-inner{
  max-width:980px !important;
  padding:48px 50px;
  border-radius:20px;
}

/* --- COLUMN / NEWS / GALLERY: stronger ending, less afterthought --- */
.home #column .column-card{
  border-radius:16px;
}

.home #column .column-card .card-img-area{
  aspect-ratio:16/9;
  height:auto;
  overflow:hidden;
}

.home #column .column-card .card-img-area img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.home #column .column-card .card-content{
  min-height:132px;
}

.home #news{
  background:#f4f2ed !important;
}

.home #news .news-list{
  max-width:1000px;
  border-radius:14px;
  box-shadow:none;
}

.home #instagram .ascend-ig-grid{
  max-width:1200px;
  margin-inline:auto;
}

.home #instagram .ascend-ig-empty{
  grid-column:1/-1;
  padding:24px;
  border:1px dashed rgba(16,24,39,.16);
  border-radius:14px;
  background:#fafafa;
  color:#778195;
  text-align:center;
  font-size:.88rem;
}

/* --- Mobile tuning --- */
@media (max-width:960px){
  .home #owner .grid-layout{
    grid-template-columns:1fr;
  }
}

@media (max-width:768px){
  .home .section-padding:not(.hero),
  .home #founder-career{
    padding-top:62px;
    padding-bottom:62px;
  }

  .home .section-title{
    margin-bottom:28px;
    font-size:clamp(2.15rem,10.5vw,2.9rem);
  }

  .home #mission .grid-layout{
    grid-template-columns:1fr;
    gap:24px;
  }

  .home #mission .mission-visual::after{
    right:10px;
    bottom:10px;
    font-size:.62rem;
  }

  .home #mission .text-content > span{
    margin-bottom:18px;
  }

  .home #why .card-content{
    min-height:0;
  }

  .home #owner{
    padding-top:68px;
    padding-bottom:68px;
  }

  .home #owner .grid-layout{
    gap:30px;
  }

  .home #owner .text-content::before{
    margin-bottom:12px;
  }

  .home #owner .owner-visual{
    order:-1;
  }

  .home #owner .owner-visual .card-img-area{
    aspect-ratio:16/11;
  }

  .home #founder-career .founder-career-heading{
    margin-bottom:28px;
    text-align:left;
  }

  .home #founder-career .founder-career-grid{
    gap:28px;
  }

  .home #founder-career .founder-career-photo{
    aspect-ratio:4/4.6;
  }

  .home #founder-career .founder-career-namecard{
    left:12px;
    right:12px;
    bottom:12px;
  }

  .home #effects .effect-item{
    min-height:0;
    padding:24px 20px;
  }

  .home #effects .effect-item::before{
    right:14px;
    top:12px;
    font-size:3.8rem;
  }

  .home #program .swiper{
    padding-bottom:42px;
  }

  .home .faq-section{
    padding:62px 0;
  }

  .home .faq-container{
    width:min(100%,calc(100% - 32px));
  }

  .home .faq-heading{
    margin-bottom:28px;
    text-align:left;
  }

  .home .faq-title{
    font-size:2rem;
  }

  .home .faq-lead{
    margin-left:0;
  }

  .home .faq-list{
    gap:10px;
  }

  .home .faq-item{
    border-radius:12px;
  }

  .home .faq-question{
    min-height:58px;
    padding:17px 48px 17px 16px;
  }

  .home .faq-q{
    font-size:.92rem;
  }

  .home #access{
    padding-bottom:54px;
  }

  .home #cta{
    padding:54px 16px;
  }

  .home #cta .cta-inner{
    padding:32px 20px;
  }

  .home #column .column-card .card-content{
    min-height:0;
  }

  .home #news .news-item{
    padding:16px;
  }
}


/* =========================================================
   v1.1.7 ACCESS mobile map fix
   - Force the ACCESS area to one column on phones.
   - Keep Google Maps at a stable, touch-friendly aspect.
   - Scoped to .home #access so other layouts are untouched.
   ========================================================= */
@media (max-width: 768px) {
  .home #access .access-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }

  .home #access .access-info,
  .home #access .access-map {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    flex: none;
    box-sizing: border-box;
  }

  .home #access .access-info {
    padding: 22px 18px;
  }

  .home #access .access-map {
    position: relative;
    height: clamp(300px, 82vw, 380px);
    min-height: 0;
    overflow: hidden;
    border-radius: 18px;
  }

  .home #access .access-map iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100% !important;
    height: 100% !important;
    max-width: none;
    border: 0;
  }
}

@media (max-width: 380px) {
  .home #access .access-map {
    height: 300px;
  }
}

/* ==================================================
   ASCEND v1.1.8
   PRICE MOBILE SLIDER / REVIEWS / PC CV / RESERVE PAGE
================================================== */

/* Header conversion actions */
.header-actions{display:flex;gap:10px;align-items:center}
.btn-header--trial{background:#e50914;border-color:#e50914;color:#fff;box-shadow:0 10px 28px rgba(229,9,20,.2)}
.btn-header--trial:hover{background:#fff;border-color:#fff;color:#111}
.btn-header--contact{background:rgba(0,0,0,.12)}
@media (max-width:768px){.header-actions .btn-header{display:none}}
@media(max-width:1180px) and (min-width:769px){
  #nav-menu ul{gap:12px}
  #nav-menu a{font-size:.88rem}
  .btn-header--contact{display:none}
  .btn-header--trial{padding:8px 16px}
}


/* PC floating trial CTA: reuse the existing markup without duplicating DOM */
@media (min-width:769px){
  .cv-sticky-btn{
    position:fixed;right:24px;bottom:24px;z-index:9980;width:340px;min-height:72px;
    display:grid;grid-template-columns:54px minmax(0,1fr) 42px;align-items:center;gap:12px;
    padding:9px 10px 9px 9px;background:rgba(16,22,32,.96);color:#fff;border:1px solid rgba(255,255,255,.16);
    border-radius:18px;box-shadow:0 18px 45px rgba(0,0,0,.24);backdrop-filter:blur(14px);text-decoration:none;
    transition:opacity .25s ease,visibility .25s ease,transform .25s ease,box-shadow .25s ease;
  }
  .cv-sticky-btn__accent{width:54px;height:54px;display:grid;place-items:center;background:#e50914;border-radius:13px;color:#fff;font-family:var(--font-en);font-size:11px;letter-spacing:.08em}
  .cv-sticky-btn__text{display:flex;min-width:0;overflow:hidden;flex-direction:column;line-height:1.35}
  .cv-sticky-btn__text small{font-size:10px;color:rgba(255,255,255,.65);letter-spacing:.07em}
  .cv-sticky-btn__text strong{font-size:14px;color:#fff;white-space:nowrap}
  .cv-sticky-btn__arrow{width:38px;height:38px;display:grid;place-items:center;background:#fff;color:#e50914;border-radius:50%}
  .cv-sticky-btn__arrow svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
  .cv-sticky-btn:hover{transform:translateY(-3px);box-shadow:0 22px 52px rgba(0,0,0,.3)}
  .cv-sticky-btn.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px)}
}

/* PRICE slider: grid on desktop, horizontal swipe on mobile */
.price-slider{max-width:1040px;min-width:0;margin:0 auto;overflow:visible;padding:18px 20px 10px}
.price-slider .price-grid.swiper-wrapper{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:30px;max-width:1000px;margin:0 auto;box-sizing:border-box}
.price-slider .price-card.swiper-slide{width:auto;height:auto;margin:0}
.price-pagination{display:none}
.price-section-cta{max-width:1000px;margin:42px auto 58px;padding:28px 32px;display:flex;align-items:center;justify-content:space-between;gap:30px;background:#fff;border:1px solid var(--border-color);box-shadow:0 18px 45px rgba(17,24,39,.06)}
.price-section-cta p{margin:0;color:#4b5563;line-height:1.85}
.price-section-cta p strong{color:#111827}
.price-trial-btn{min-width:300px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 18px 17px 22px;background:#111827;color:#fff;text-decoration:none;transition:.25s ease}
.price-trial-btn span:first-child{display:flex;flex-direction:column;line-height:1.25}
.price-trial-btn small{font-family:var(--font-en);font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.55)}
.price-trial-btn strong{font-size:14px;color:#fff}
.price-trial-btn__arrow{width:36px;height:36px;display:grid!important;place-items:center;background:#e50914;border-radius:50%;font-size:18px}
.price-trial-btn:hover{background:#e50914;transform:translateY(-2px)}
.price-trial-btn:hover .price-trial-btn__arrow{background:#fff;color:#e50914}
@media(max-width:768px){
  .price-slider{width:100%;max-width:none;margin:0;padding:18px 0 48px;overflow:hidden}
  .price-slider .price-grid.swiper-wrapper{display:flex;gap:0;max-width:none;margin:0}
  .price-slider .price-card.swiper-slide{width:100%;min-height:230px;padding:34px 24px;display:flex;flex-direction:column;justify-content:center}
  .price-slider .price-card:hover{transform:none}
  .price-pagination{display:block;bottom:4px!important;text-align:left;padding-left:4px}
  .price-pagination .swiper-pagination-bullet{width:7px;height:7px;background:#9ca3af;opacity:.5}
  .price-pagination .swiper-pagination-bullet-active{width:22px;border-radius:999px;background:#e50914;opacity:1}
  .price-section-cta{margin:18px 0 45px;padding:24px 20px;display:block}
  .price-section-cta p{font-size:.9rem;margin-bottom:18px}
  .price-trial-btn{min-width:0;width:100%;padding:15px 16px 15px 18px}
}

/* Member reviews */
.reviews-section{background:#111827;color:#fff;overflow:hidden}
.reviews-container{max-width:1200px;margin:0 auto}
.reviews-heading{text-align:center;margin-bottom:48px}
.reviews-eyebrow{margin:0 0 10px;font-family:var(--font-en);font-size:.82rem;letter-spacing:.18em;color:#ff6b72}
.reviews-section .section-title{margin-bottom:0;color:#fff}
.reviews-section .section-title span{color:rgba(255,255,255,.55)}
.reviews-lead{margin:18px auto 0;color:rgba(255,255,255,.68);font-size:.95rem}
.reviews-slider{max-width:1200px;min-width:0;overflow:visible;padding:0}
.reviews-grid.swiper-wrapper{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.review-card.swiper-slide{width:auto;height:auto;min-width:0;display:grid;grid-template-columns:160px minmax(0,1fr);overflow:hidden;background:#fff;color:#111827;border:0;text-align:left;box-shadow:0 20px 50px rgba(0,0,0,.16)}
.review-card__photo{min-height:100%;background:#e5e7eb;overflow:hidden}
.review-card__photo img{width:100%;height:100%;min-height:100%;object-fit:cover}
.review-card__content{min-width:0;padding:28px;display:flex;flex-direction:column}
.review-card__content:only-child{grid-column:1/-1}
.review-label{align-self:flex-start;margin-bottom:16px;padding:5px 10px;border-radius:999px;background:#fff1f2;color:#c5162b;font-size:.7rem;font-weight:700;letter-spacing:.04em}
.review-text{flex:1;margin:0 0 24px;color:#374151;font-size:.94rem;line-height:1.9;letter-spacing:.02em}
.review-meta{padding-top:18px;border-top:1px solid #e5e7eb}
.review-meta strong{display:block;margin-bottom:8px;font-size:.95rem;color:#111827}
.review-profile{display:flex;flex-wrap:wrap;gap:6px 10px;color:#6b7280;font-size:.75rem;line-height:1.6}
.review-profile span+span{position:relative;padding-left:11px}
.review-profile span+span::before{content:"";position:absolute;left:0;top:.65em;width:3px;height:3px;border-radius:50%;background:#c7ccd4}
.reviews-pagination{display:none}
@media(max-width:980px) and (min-width:769px){
  .review-card.swiper-slide{grid-template-columns:130px minmax(0,1fr)}
  .review-card__content{padding:24px}
}
@media(max-width:768px){
  .reviews-heading{margin-bottom:32px}
  .reviews-slider{width:100%;margin:0;padding:0 0 46px;overflow:hidden}
  .reviews-grid.swiper-wrapper{display:flex;gap:0}
  .review-card.swiper-slide{width:100%;min-height:0;display:grid;grid-template-columns:1fr}
  .review-card__photo{width:100%;min-height:0;aspect-ratio:16/10}
  .review-card__photo img{min-height:0}
  .review-card__content{padding:24px}
  .reviews-pagination{display:block;bottom:4px!important;text-align:left}
  .reviews-pagination .swiper-pagination-bullet{background:#fff;opacity:.35}
  .reviews-pagination .swiper-pagination-bullet-active{width:22px;border-radius:999px;background:#ff5961;opacity:1}
}

/* Bottom CTA */
.cta-actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.btn-main--trial{background:#111827;color:#fff}
.btn-main--trial:hover{background:#e50914;color:#fff}
.btn-main--outline{background:transparent;color:#111827;border:1px solid #111827}
.btn-main--outline:hover{background:#111827;color:#fff}
@media(max-width:768px){.cta-actions{display:grid;grid-template-columns:1fr;width:100%}.cta-actions .btn-main{width:100%;padding:17px 20px}}

/* Reserve page redesign */
.reserve-page{background:#f6f4ef}
.reserve-hero{position:relative;min-height:520px;display:flex;align-items:flex-end;overflow:hidden;background:#111827;color:#fff}
.reserve-hero__media{position:absolute;inset:0;background:url('../img/hero02.webp') center 38%/cover no-repeat;transform:scale(1.01)}
.reserve-hero__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,9,16,.92) 0%,rgba(5,9,16,.72) 45%,rgba(5,9,16,.2) 100%),linear-gradient(0deg,rgba(5,9,16,.52) 0%,transparent 55%)}
.reserve-hero__inner{position:relative;z-index:2;width:min(1200px,90%);margin:0 auto;padding:160px 0 68px;text-align:left}
.reserve-hero__eyebrow{margin:0 0 15px;font-family:var(--font-en);font-size:.88rem;letter-spacing:.2em;color:#ff646c}
.reserve-hero h1{margin:0 0 18px;font-family:var(--font-jp);font-size:clamp(2.8rem,6vw,5rem);font-weight:900;letter-spacing:.04em;line-height:1.1;text-transform:none;color:#fff}
.reserve-hero__lead{margin:0 0 22px;color:rgba(255,255,255,.84);font-size:1.02rem;line-height:1.9}
.reserve-hero-offer{display:inline-flex;flex-direction:column;gap:3px;margin:0 0 22px;padding:11px 15px;background:#e50914;color:#fff;box-shadow:0 12px 30px rgba(229,9,20,.24)}
.reserve-hero-offer>span{font-size:.68rem;font-weight:800;letter-spacing:.08em}
.reserve-hero-offer>strong{display:flex;align-items:center;gap:8px;font-size:.82rem;color:#fff}
.reserve-hero-offer b{font-family:var(--font-en);font-size:1.3rem;font-weight:400;color:#fff}.reserve-hero-offer i{width:1px;height:16px;background:rgba(255,255,255,.42)}
.reserve-trust-list{display:flex;flex-wrap:wrap;gap:10px}
.reserve-trust-list span{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.22);backdrop-filter:blur(8px);font-size:.78rem;font-weight:700}
.reserve-trust-list b{color:#ff5961;font-family:var(--font-en);font-weight:400}
.reserve-intro{padding:84px 5% 30px;background:#fff}
.reserve-intro__inner{max-width:1200px;margin:0 auto}
.reserve-intro__heading{text-align:center;max-width:760px;margin:0 auto 42px}
.reserve-intro__heading>p{margin:0 0 8px;font-family:var(--font-en);font-size:.82rem;letter-spacing:.18em;color:#e50914}
.reserve-intro__heading h2{margin:0;font-family:var(--font-jp);font-size:clamp(1.7rem,3vw,2.5rem);letter-spacing:.03em;text-transform:none;color:#111827}
.reserve-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#e5e7eb;border:1px solid #e5e7eb}
.reserve-steps article{padding:30px;background:#fff}
.reserve-steps article>span{display:block;margin-bottom:12px;font-family:var(--font-en);font-size:.78rem;letter-spacing:.14em;color:#e50914}
.reserve-steps strong{display:block;margin-bottom:9px;color:#111827;font-size:1rem}
.reserve-steps p{margin:0;color:#6b7280;font-size:.84rem;line-height:1.8}
.reserve-booking-section{padding:70px 5% 110px;background:#fff}
.reserve-booking-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:34px;align-items:start}
.reserve-form-shell{min-width:0;padding:40px;background:#fff;border:1px solid #e5e7eb;box-shadow:0 22px 60px rgba(17,24,39,.07)}
.reserve-form-shell__head{margin-bottom:26px;padding-bottom:24px;border-bottom:1px solid #e5e7eb}
.reserve-form-shell__head>p{margin:0 0 7px;font-family:var(--font-en);font-size:.78rem;letter-spacing:.16em;color:#e50914}
.reserve-form-shell__head h2{margin:0 0 8px;font-family:var(--font-jp);font-size:1.65rem;text-transform:none;letter-spacing:.03em;color:#111827}
.reserve-form-shell__head span{color:#6b7280;font-size:.82rem}
.reserve-page__form-content h2,.reserve-page__form-content h3{font-family:var(--font-jp);text-transform:none;letter-spacing:.03em;color:#111827}
.reserve-page__form-content>h2:first-child{display:none}
.reserve-page__form-content>p{padding:12px 15px;margin:0 0 8px;background:#f8f8f8;color:#4b5563;font-size:.86rem;line-height:1.75;border-left:2px solid #d1d5db}
.reserve-page__form-content form{margin-top:28px}
.reserve-page__form-content input,.reserve-page__form-content select,.reserve-page__form-content textarea{max-width:100%}
.reserve-side{position:sticky;top:105px;display:grid;gap:18px}
.reserve-page__campaign-slot:empty{display:none}
.reserve-page__campaign-slot .reserve-price-box{margin:0;padding:28px;background:#fff;border:1px solid rgba(229,9,20,.25);box-shadow:0 18px 45px rgba(229,9,20,.08)}
.reserve-side-card{padding:28px;background:#f7f5f0;border:1px solid #e7e2d8}
.reserve-side-card__eyebrow{margin:0 0 10px;font-family:var(--font-en);font-size:.76rem;letter-spacing:.16em;color:#e50914}
.reserve-side-card h2{margin:0 0 18px;font-family:var(--font-jp);font-size:1.25rem;text-transform:none;letter-spacing:.03em;color:#111827}
.reserve-side-card ul{list-style:none;padding:0;margin:0;display:grid;gap:13px}
.reserve-side-card li{display:flex;gap:9px;color:#4b5563;font-size:.85rem;line-height:1.7}.reserve-side-card li span{color:#e50914;font-weight:900}
.reserve-side-card--dark{background:#111827;border-color:#111827;color:#fff}
.reserve-side-card--dark .reserve-side-card__eyebrow{color:#ff6870}.reserve-side-card--dark h2{color:#fff}.reserve-side-card--dark p{color:rgba(255,255,255,.65);font-size:.84rem;line-height:1.8}
.reserve-side-card--dark a{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:17px;border-top:1px solid rgba(255,255,255,.16);color:#fff;font-size:.86rem;font-weight:700}
@media(max-width:900px){
  .reserve-booking-grid{grid-template-columns:1fr}.reserve-side{position:static;grid-template-columns:1fr 1fr}.reserve-page__campaign-slot{grid-column:1/-1}
}
@media(max-width:768px){
  .reserve-hero{min-height:500px;align-items:flex-end}.reserve-hero__media{background-image:url('../img/hero-sp02.webp');background-position:center 25%}.reserve-hero__overlay{background:linear-gradient(0deg,rgba(5,9,16,.92) 0%,rgba(5,9,16,.58) 60%,rgba(5,9,16,.32) 100%)}
  .reserve-hero__inner{width:88%;padding:140px 0 46px}.reserve-hero h1{font-size:2.5rem}.reserve-hero__lead{font-size:.9rem;margin-bottom:16px}.reserve-hero-offer{margin-bottom:16px;padding:9px 11px}.reserve-hero-offer>strong{font-size:.74rem}.reserve-hero-offer b{font-size:1.15rem}.reserve-trust-list{gap:7px}.reserve-trust-list span{padding:7px 10px;font-size:.7rem}
  .reserve-intro{padding:60px 6% 20px}.reserve-intro__heading{margin-bottom:28px}.reserve-steps{grid-template-columns:1fr}.reserve-steps article{padding:22px 20px}
  .reserve-booking-section{padding:48px 6% 80px}.reserve-form-shell{padding:25px 18px;box-shadow:none}.reserve-form-shell__head h2{font-size:1.35rem}.reserve-side{grid-template-columns:1fr}.reserve-page__campaign-slot{grid-column:auto}.reserve-side-card{padding:24px 20px}
}


@media (min-width:769px){
  .price-slider .price-grid.swiper-wrapper,
  .reviews-grid.swiper-wrapper{transform:none!important;}
}


/* =========================
   RESERVE v1.1.9 - Mobile form width / typography
   予約機能は変更せず、スマホ表示だけを最適化
   ========================= */
@media (max-width: 768px) {
  .reserve-page {
    overflow-x: hidden;
  }

  .reserve-hero {
    min-height: 460px;
  }

  .reserve-hero__inner {
    width: calc(100% - 32px);
    padding: 126px 0 38px;
  }

  .reserve-hero h1 {
    font-size: clamp(2rem, 9vw, 2.35rem);
    line-height: 1.18;
    margin-bottom: 14px;
  }

  .reserve-hero__eyebrow {
    font-size: .72rem;
    letter-spacing: .16em;
    margin-bottom: 10px;
  }

  .reserve-hero__lead {
    font-size: .88rem;
    line-height: 1.75;
    margin-bottom: 15px;
  }

  .reserve-hero-offer {
    max-width: 100%;
    box-sizing: border-box;
  }

  .reserve-trust-list span {
    font-size: .72rem;
    line-height: 1.35;
  }

  .reserve-intro {
    padding: 52px 16px 18px;
  }

  .reserve-intro__heading {
    margin-bottom: 24px;
  }

  .reserve-intro__heading > p {
    font-size: .72rem;
  }

  .reserve-intro__heading h2 {
    font-size: clamp(1.45rem, 6.5vw, 1.7rem);
    line-height: 1.45;
  }

  .reserve-steps article {
    padding: 20px 18px;
  }

  .reserve-steps article > span {
    font-size: .72rem;
  }

  .reserve-steps strong {
    font-size: .95rem;
  }

  .reserve-steps p {
    font-size: .82rem;
    line-height: 1.75;
  }

  /* 外側の余白を縮め、フォームの実効幅を広げる */
  .reserve-booking-section {
    padding: 42px 10px 72px;
  }

  .reserve-booking-grid {
    width: 100%;
    max-width: none;
    gap: 24px;
  }

  .reserve-form-shell {
    width: 100%;
    min-width: 0;
    padding: 24px 14px 28px;
    margin: 0;
    box-sizing: border-box;
    border-left: 0;
    border-right: 0;
  }

  .reserve-form-shell__head {
    margin-bottom: 20px;
    padding-bottom: 18px;
  }

  .reserve-form-shell__head > p {
    font-size: .72rem;
  }

  .reserve-form-shell__head h2 {
    font-size: 1.42rem;
    line-height: 1.4;
  }

  .reserve-form-shell__head span {
    display: block;
    font-size: .82rem;
    line-height: 1.7;
  }

  .reserve-page__form-content {
    width: 100%;
    max-width: none !important;
    min-width: 0;
    box-sizing: border-box;
    font-size: 15px;
  }

  .reserve-page__form-content > p {
    padding: 11px 12px;
    font-size: .82rem;
    line-height: 1.7;
  }

  /* 予約プラグイン側に固定幅 / max-width があってもスマホでは全幅化 */
  .reserve-page__form-content form,
  .reserve-page__form-content fieldset,
  .reserve-page__form-content .form-group,
  .reserve-page__form-content .form-row,
  .reserve-page__form-content .field,
  .reserve-page__form-content .booking-field,
  .reserve-page__form-content .reservation-field,
  .reserve-page__form-content .wpcf7,
  .reserve-page__form-content .wpcf7-form,
  .reserve-page__form-content .wpcf7-form-control-wrap {
    display: block;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  .reserve-page__form-content form {
    margin-top: 22px;
  }

  /* 予約プラグインの未知の行ラッパーにも対応 */
  .reserve-page__form-content form > * {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  .reserve-page__form-content label {
    display: block;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    font-size: 15px;
    line-height: 1.55;
  }

  .reserve-page__form-content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .reserve-page__form-content select,
  .reserve-page__form-content textarea {
    display: block;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    font-size: 16px !important; /* iOSの入力時ズーム防止 */
    line-height: 1.4;
  }

  .reserve-page__form-content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .reserve-page__form-content select {
    min-height: 52px;
  }

  /* iOS Safariの日付入力だけが固有サイズへ拡大される挙動を抑制 */
  .reserve-page__form-content input[type="date"],
  .reserve-page__form-content input.wpcf7-date {
    display: block !important;
    inline-size: 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    block-size: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    max-height: 52px !important;
    box-sizing: border-box !important;
  }

  .reserve-page__form-content input[type="date"]::-webkit-date-and-time-value,
  .reserve-page__form-content input.wpcf7-date::-webkit-date-and-time-value {
    min-height: 0;
    text-align: left;
  }

  .reserve-page__form-content textarea {
    min-height: 120px;
  }

  .reserve-page__form-content button,
  .reserve-page__form-content input[type="submit"] {
    min-height: 52px;
    font-size: 15px;
  }

  .reserve-side-card {
    padding: 22px 18px;
  }

  .reserve-side-card__eyebrow {
    font-size: .7rem;
  }

  .reserve-side-card h2 {
    font-size: 1.16rem;
  }

  .reserve-side-card li,
  .reserve-side-card--dark p,
  .reserve-side-card--dark a {
    font-size: .82rem;
  }
}

@media (max-width: 390px) {
  .reserve-booking-section {
    padding-left: 6px;
    padding-right: 6px;
  }

  .reserve-form-shell {
    padding-left: 12px;
    padding-right: 12px;
  }
}


/* =========================
   v1.2.0 Campaign source-of-truth
   旧予約本文内のキャンペーン表示はテーマ管理へ一本化
   ========================= */
.reserve-page__form-content .reserve-price-box{display:none!important}
.reserve-price-box--theme h2{margin:0 0 10px;font-family:var(--font-jp);font-size:1.18rem;line-height:1.55;letter-spacing:.02em;text-transform:none;color:#111827}
.reserve-price-box--theme .reserve-side-card__eyebrow{margin-bottom:8px}
.reserve-price-box--theme .reserve-price-main{margin:12px 0 8px}
.reserve-price-box--theme .reserve-price-main strong{font-size:36px}
.reserve-price-box--theme .reserve-price-campaign{font-size:.84rem;line-height:1.75}
.reserve-price-box--theme .reserve-price-note{margin:11px 0 0;line-height:1.7}
@media(max-width:768px){
  .reserve-page__campaign-slot .reserve-price-box--theme{padding:22px 18px}
  .reserve-price-box--theme h2{font-size:1.05rem}
  .reserve-price-box--theme .reserve-price-main strong{font-size:32px}
  .reserve-price-box--theme .reserve-price-campaign{font-size:.8rem}
}
