
:root {
  --body-bg:#f1ece5;--header-bg:#f5f1ec;--text:#312525;--text-light:#f7f7f7;
  --text-sub:#706a6a;--gold:#a88b58;--primary:#892823;--dark:#3b2a1a;
  --footer-bg:#030201;--white:#ffffff;--border:#e0d5c8;
  --ff-en:'EB Garamond',serif;--ff-nav:'Montserrat',sans-serif;
  --ff-jp:'Noto Serif JP',serif;--ff-body:'Noto Sans JP',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--ff-body);color:var(--text);background-color:var(--body-bg);font-size:16px;font-weight:500;line-height:2;letter-spacing:.08em;overflow-x:clip}
/* style.css のテキスト色（薄すぎ問題）を全章で黒寄りに統一上書き
   --c-text/-soft/-muted は章コンテンツCSSで定義されている薄茶系。これを濃いトーンに置換 */
body{
  --c-text:#1a1208!important;
  --c-text-soft:#2a2018!important;
  --c-muted:#3a3128!important;
  --text-sub:#3a3128;
}
/* SP: 全章共通の改行・装飾数字対策（page-hero-kicker / section-kicker / bucket / stat / day等） */
@media(max-width:768px){
  /* 英字キッカー類（"EN · Letter from Japan"・"Roadmap"・"FAQ"等）を1行固定 */
  .page-hero-kicker,
  .section-kicker,
  .menu-card-kicker,
  .resource-kicker,
  .yoshio-cta-kicker,
  .news-meta,
  .post-meta,
  .crumb,
  .footer-col-en,
  .roadmap-step,
  .roadmap-hint{letter-spacing:.18em!important;font-size:.75rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .page-hero-kicker{font-size:.78rem!important;display:inline-block;text-align:center}

  /* 数字装飾「01」が「0/1」に縦割れする問題（全パターン網羅） */
  .bucket li::before,
  .num,
  .stat-num,
  .count,
  .t-day,
  [class*="number"],
  [class*="num-deco"],
  [class*="-num"],
  [class*="-step"]{white-space:nowrap!important;letter-spacing:0!important;word-break:keep-all!important}
  .bucket li::before{width:auto!important;min-width:36px}

  /* 日本語の不自然な分割を抑制（句読点で改行・半角英数の途中切断防止） */
  p,li,td,dt,dd{word-break:keep-all;line-break:strict;overflow-wrap:break-word}
  h1,h2,h3,h4,h5,h6{word-break:keep-all;line-break:strict;overflow-wrap:break-word}
}
/* style.css（章コンテンツ）の .site-header / .site-footer / .nav-* 定義を共通レイアウトで上書き保護 */
body .site-header{position:fixed!important;top:0!important;left:0!important;right:0!important;background-color:var(--header-bg)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;z-index:1000!important;border-bottom:1px solid var(--border)!important}
/* btn-ghost: 明背景でもテキストが読めるよう優先度高で上書き（章CTA等の明背景セクション内で白文字消失問題を解消） */
body .btn-ghost{color:var(--text)!important;border:1px solid var(--border)!important;background-color:transparent!important}
body .btn-ghost:hover{color:var(--gold)!important;border-color:var(--gold)!important;background-color:transparent!important}
/* ヒーロー（暗背景）内では従来通り白文字 */
.hero .btn-ghost,.page-hero .btn-ghost,.cta-dark .btn-ghost{color:#fff!important;border-color:rgba(255,255,255,.5)!important}
.hero .btn-ghost:hover,.page-hero .btn-ghost:hover,.cta-dark .btn-ghost:hover{color:#fff!important;border-color:#fff!important;background-color:rgba(255,255,255,.12)!important}
body .header-nav a{color:var(--text)!important}
body .site-logo{color:var(--text)!important}
body .site-logo span{color:var(--gold)!important}
body .site-footer{background-color:var(--footer-bg)!important;backdrop-filter:none!important}
/* Astra親 scroll-to-top 完全無効化（事故25） */
#ast-scroll-top,.ast-scroll-top-icon,.ast-scroll-to-top-right,.ast-scroll-to-top-left{display:none!important}
/* iOSフォーム拡大防止 */
input,select,textarea{font-size:16px}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}

/* HEADER */
.site-header{position:fixed;top:0;left:0;right:0;z-index:1000;background-color:var(--header-bg);padding:18px 0;border-bottom:1px solid var(--border)}
.header-inner{width:94%;margin:0 auto;display:flex;align-items:center;gap:32px;flex-wrap:nowrap}
.site-logo{font-family:var(--ff-jp);font-size:20px;color:var(--text);letter-spacing:.12em;font-weight:500;flex-shrink:0;line-height:1.25}
.site-logo span{display:block;font-family:var(--ff-en);font-size:9px;letter-spacing:.22em;color:var(--gold);text-transform:uppercase;margin-top:3px;font-weight:400}
.header-nav{display:flex;align-items:center;gap:2px 14px;flex-wrap:wrap;flex:1}
.header-nav a{font-family:var(--ff-jp);font-size:13px;font-weight:500;letter-spacing:.08em;color:var(--text);padding:4px 4px;line-height:1.6;position:relative;transition:color .3s;white-space:nowrap}
.header-nav a::after{content:'';position:absolute;bottom:0;left:4px;right:4px;height:1px;background-color:var(--gold);transform:scaleX(0);transition:transform .3s;transform-origin:left}
.header-nav a:hover{color:var(--gold)}
.header-nav a:hover::after{transform:scaleX(1)}
.header-right{display:none;align-items:center;gap:18px;margin-left:auto}
.header-menu-label{font-family:var(--ff-en);font-size:12px;letter-spacing:.25em;color:var(--text);text-transform:uppercase}

.hamburger{display:none;background:none;border:none;cursor:pointer;width:26px;height:18px;position:relative}
.hamburger span{display:block;width:100%;height:1px;background-color:var(--text);position:absolute;left:0;transition:all .3s}
.hamburger span:nth-child(1){top:0}.hamburger span:nth-child(2){top:8px}.hamburger span:nth-child(3){top:16px}
.hamburger.active span:nth-child(1){top:8px;transform:rotate(45deg)}
.hamburger.active span:nth-child(2){opacity:0}
.hamburger.active span:nth-child(3){top:8px;transform:rotate(-45deg)}
.drawer{display:none;position:fixed;top:0;right:0;bottom:0;width:640px;max-width:92vw;background-color:#1a1410;z-index:1100;padding:90px 56px 40px;overflow-y:auto}
.drawer.active{display:block}
.drawer-overlay{display:none;position:fixed;inset:0;background-color:rgba(0,0,0,.5);z-index:1050}
.drawer-overlay.active{display:block}
.drawer-close{position:absolute;top:32px;right:32px;background:none;border:1px solid rgba(255,255,255,.2);width:40px;height:40px;color:var(--text-light);font-size:18px;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s}
.drawer-close:hover{border-color:var(--gold);color:var(--gold)}
.drawer-en{font-family:var(--ff-en);font-size:11px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase;margin-bottom:8px}
.drawer-title{font-family:var(--ff-jp);font-size:16px;color:var(--text-light);letter-spacing:.15em;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.08)}
.drawer-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.drawer-list li{margin:0;padding:0}
.drawer-list a{display:flex;align-items:baseline;gap:14px;font-family:var(--ff-jp);font-size:14px;font-weight:400;letter-spacing:.08em;color:rgba(247,247,247,.85);padding:14px 0;border-bottom:1px solid rgba(255,255,255,.05);transition:color .3s,padding-left .3s}
.drawer-list a:hover{color:var(--gold);padding-left:8px}
.drawer-list a .num{font-family:var(--ff-en);font-size:11px;letter-spacing:.15em;color:var(--text-sub);min-width:24px}

/* HERO */
.hero{position:relative;height:100svh;min-height:700px;overflow:hidden;display:flex;align-items:center;justify-content:center}
.hero-bg{position:absolute;inset:0;background:url('../img/img-001-ba1854aae2.jpg') center/cover no-repeat}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(44,29,16,.25) 0%,rgba(44,29,16,.55) 100%)}
.hero-content{position:relative;z-index:2;text-align:center;color:var(--text-light);width:90%;max-width:980px}
.hero-en{font-family:var(--ff-en);font-size:16px;letter-spacing:.4em;color:var(--gold);margin-bottom:28px;opacity:0;animation:fadeUp 1s ease .2s forwards;text-transform:uppercase}
.hero-catch{font-family:var(--ff-jp);font-size:42px;font-weight:500;letter-spacing:.075em;line-height:1.55;color:var(--text-light);margin-bottom:32px;opacity:0;animation:fadeUp 1.2s ease .5s forwards}
.hero-catch .accent{color:var(--text-light);font-style:italic;font-family:var(--ff-en);font-size:72px;font-weight:600;letter-spacing:.04em;display:inline-block;position:relative;padding:.04em .25em;background-color:var(--gold);box-shadow:0 8px 32px rgba(168,139,88,.55),0 0 0 1px rgba(168,139,88,.7);text-shadow:0 2px 6px rgba(0,0,0,.45)}
.hero-catch .accent::after{content:'';position:absolute;left:50%;bottom:-.22em;transform:translateX(-50%);width:96px;height:3px;background-color:var(--gold);box-shadow:0 4px 16px rgba(168,139,88,.5)}
.hero-sub{font-family:var(--ff-body);font-size:14px;font-weight:400;letter-spacing:.08em;color:rgba(255,255,255,.85);line-height:2.2;margin:0 auto 36px;max-width:640px;text-align:center;opacity:0;animation:fadeUp 1s ease .9s forwards}
.hero-ctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;opacity:0;animation:fadeUp 1s ease 1.2s forwards}
.btn{display:inline-block;padding:14px 30px;font-family:var(--ff-jp);font-size:14px;font-weight:500;letter-spacing:.12em;transition:all .3s;border:1px solid transparent}
.btn-primary{background-color:var(--primary);color:var(--white);border-color:var(--primary)}
.btn-primary:hover{background-color:transparent;color:var(--white)}
.btn-ghost{background-color:transparent;color:var(--white);border:1px solid rgba(255,255,255,.5)}
.btn-ghost:hover{background-color:rgba(255,255,255,.1);border-color:var(--white)}
.btn-dark{background-color:var(--text);color:var(--white);border:1px solid var(--text)}
.btn-dark:hover{background-color:transparent;color:var(--text)}
.hero-scroll{position:absolute;bottom:40px;right:40px;z-index:2;font-family:var(--ff-nav);font-size:14px;font-weight:500;letter-spacing:.1em;writing-mode:vertical-rl;color:var(--text-light)}
.hero-scroll::after{content:'';display:block;width:1px;height:0;background-color:var(--text-light);margin:12px auto 0;animation:scrollLine 1s ease 1.8s forwards}

@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@keyframes scrollLine{from{height:0}to{height:50px}}

/* SECTION */
.section{padding:140px 0}
.section-inner{width:90%;margin:0 auto;max-width:1280px}
.section-header{text-align:center;margin-bottom:64px}
.section-en{font-family:var(--ff-en);font-size:64px;font-weight:400;letter-spacing:0;line-height:1.1;color:var(--text);margin-bottom:8px}
.section-jp{font-family:var(--ff-body);font-size:14px;letter-spacing:.075em;color:var(--text);margin-bottom:8px}
.section-line{width:72px;height:0;border-bottom:4px double var(--text-sub);margin:16px auto 0}
.section-lead{font-family:var(--ff-jp);font-size:15px;font-weight:300;color:var(--text-sub);line-height:2.4;text-align:center;max-width:780px;margin:0 auto 56px;letter-spacing:.075em}

/* NEWS（WP投稿サンプル・横5列） */
.news-section{background-color:var(--white)}
.news-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.news-card{display:block;background-color:transparent;text-decoration:none;color:inherit}
.news-thumb{width:100%;aspect-ratio:4/3;background-size:cover;background-position:center;background-color:var(--body-bg);margin-bottom:16px;transition:opacity .4s}
.news-card:hover .news-thumb{opacity:.85}
.news-body{padding:0 4px}
.news-meta{display:flex;align-items:center;gap:12px;font-family:var(--ff-en);font-size:11px;letter-spacing:.15em;color:var(--text-sub);margin-bottom:10px}
.news-meta time{color:var(--gold);font-weight:500}
.news-cat{padding:3px 10px;border:1px solid var(--border);border-radius:2px;font-size:10px;text-transform:uppercase;color:var(--text-sub)}
.news-title{font-family:var(--ff-jp);font-size:15px;font-weight:500;letter-spacing:.04em;line-height:1.6;color:var(--text);margin:0 0 10px;min-height:48px}
.news-excerpt{font-family:var(--ff-jp);font-size:12.5px;font-weight:300;color:var(--text-sub);line-height:1.85;letter-spacing:.04em;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:1100px){.news-grid{grid-template-columns:repeat(3,1fr)}}
/* SP: 横スワイプカルーセル化（はみ出し防止＋スライド体験） */
@media(max-width:768px){
  .news-grid{display:flex;grid-template-columns:none;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:8px 4px 24px;scrollbar-width:thin;scrollbar-color:#a88b58 transparent;margin-left:-4%;margin-right:-4%;padding-left:4%;padding-right:4%}
  .news-grid::-webkit-scrollbar{height:6px}
  .news-grid::-webkit-scrollbar-thumb{background:#a88b58;border-radius:4px}
  .news-card{flex:0 0 auto;width:78vw;max-width:300px;scroll-snap-align:start}
  .news-thumb{aspect-ratio:4/3}
  .news-title{min-height:auto}
}

/* RESOURCES (9 cards) */
.resources{background-color:var(--white)}
.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.resource-card{display:block;padding:32px 28px;background-color:var(--body-bg);transition:transform .4s,box-shadow .4s;position:relative}
.resource-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(49,37,37,.08)}
.rc-tag{display:inline-block;font-family:var(--ff-en);font-size:11px;letter-spacing:.2em;color:var(--gold);padding:4px 10px;border:1px solid var(--gold);margin-bottom:18px;text-transform:uppercase}
.resource-card h4{font-family:var(--ff-jp);font-size:17px;font-weight:500;letter-spacing:.05em;margin-bottom:14px;line-height:1.6;color:var(--text)}
.resource-card p{font-size:13px;font-weight:300;color:var(--text-sub);line-height:2;letter-spacing:.05em;margin-bottom:18px}
.resource-card p strong{color:var(--primary);font-weight:500}
.rc-go{display:inline-block;margin-top:4px;font-family:var(--ff-en);font-size:12px;color:var(--gold);letter-spacing:.08em;padding:10px 20px;border:1px solid var(--gold);border-radius:999px;transition:all .3s;background-color:transparent;text-transform:none}
.resource-card:hover .rc-go{background-color:var(--gold);color:var(--white);letter-spacing:.12em}
.resource-card-all:hover .rc-go{background-color:var(--gold);color:var(--dark)}
.resource-card-all{background-color:var(--dark);color:var(--text-light)}
.resource-card-all h4{color:var(--text-light)}
.resource-card-all p{color:rgba(255,255,255,.7)}
.resource-card-all .rc-tag{color:var(--gold);border-color:var(--gold)}

/* CONCEPT (Why this site) */
.concept{background-color:var(--body-bg)}
.concept-inner{width:90%;max-width:800px;margin:0 auto;text-align:center}
.concept-body{font-family:var(--ff-jp);font-size:16px;font-weight:300;color:var(--text);line-height:2.4;letter-spacing:.075em;margin-bottom:48px}
.concept-quote{font-family:var(--ff-jp);font-size:48px;font-weight:500;color:var(--primary);line-height:1.95;letter-spacing:.14em;padding:80px 32px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:0 auto;max-width:1080px;text-align:center;opacity:0;transform:translateY(60px);transition:opacity 1.4s ease,transform 1.4s cubic-bezier(.2,.8,.2,1)}
.concept-quote.visible{opacity:1;transform:translateY(0)}
@media(max-width:768px){.concept-quote{font-size:24px;padding:48px 12px;letter-spacing:.06em;line-height:2}}

/* STATS */
.stats{background-color:var(--dark);color:var(--text-light);padding:120px 0}
.stats .section-en{color:var(--text-light)}
.stats .section-jp{color:rgba(255,255,255,.6)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:48px}
.stat-item{text-align:center;padding:32px 16px;border-left:1px solid rgba(168,139,88,.25);border-bottom:1px solid rgba(168,139,88,.25)}
.stat-item:nth-child(4n+1){border-left:none}
.stat-item:nth-child(n+5){border-bottom:none}
.stats .stats-grid .stat-num{font-family:var(--ff-en);font-size:64px;font-weight:500;color:var(--text-light);line-height:1;letter-spacing:.02em;text-shadow:0 0 24px rgba(168,139,88,.3),0 4px 16px rgba(0,0,0,.3)}
.stats .stats-grid .stat-num small{font-size:.42em;color:var(--gold);font-style:italic;margin-left:.15em;font-weight:400}
.stats .stats-grid .stat-label{color:rgba(255,255,255,.7);font-family:var(--ff-jp);font-size:13px;letter-spacing:.15em;margin-top:14px;display:block}
.stat-label{font-family:var(--ff-jp);font-size:12px;color:rgba(255,255,255,.7);letter-spacing:.15em;margin-top:14px}

/* MENU GRID (12 navigation cards) */
.menu-section{background-color:var(--white)}
.menu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.menu-card{display:block;background-color:var(--body-bg);overflow:hidden;transition:transform .4s,box-shadow .4s;padding:36px 28px;position:relative}
.menu-card:hover{transform:translateY(-6px);box-shadow:0 16px 40px rgba(49,37,37,.08)}
.menu-card-kicker{font-family:var(--ff-en);font-size:12px;letter-spacing:.2em;color:var(--gold);margin-bottom:14px;text-transform:uppercase;font-style:italic}
.menu-card{position:relative}
.menu-card::before{content:attr(data-num);position:absolute;top:24px;right:24px;font-family:var(--ff-en);font-size:42px;font-style:italic;color:var(--gold);opacity:.18;line-height:1;pointer-events:none;font-weight:400;letter-spacing:.02em}
.menu-card h3{font-family:var(--ff-jp);font-size:17px;font-weight:500;letter-spacing:.05em;line-height:1.7;margin-bottom:14px;color:var(--text)}
.menu-card p{font-size:13px;font-weight:300;color:var(--text-sub);line-height:2;letter-spacing:.05em}

/* GALLERY */
.gallery{background-color:var(--body-bg)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery-fig{margin:0;position:relative}
.gallery-fig img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.gallery-fig figcaption{font-family:var(--ff-jp);font-size:12px;font-weight:300;color:var(--text-sub);line-height:1.8;letter-spacing:.05em;margin-top:12px;padding:0 4px}
.gallery-note{text-align:center;margin-top:32px;font-size:11px;color:var(--text-sub);letter-spacing:.05em}

/* PHILOSOPHY (alt) */
.philosophy{background-color:var(--white);position:relative}
.philosophy-inner{width:90%;max-width:760px;margin:0 auto}
.philosophy-body p{font-family:var(--ff-jp);font-size:15px;font-weight:300;color:var(--text);line-height:2.5;letter-spacing:.075em;margin-bottom:24px}
.philosophy-tail{font-family:var(--ff-jp);font-size:18px;font-weight:500;color:var(--primary);text-align:center;margin:32px 0 40px;letter-spacing:.1em}
.philosophy-cta{text-align:center}

/* CTA (final) */
.cta{background:url('../img/img-007-0a8ae195f2.jpg') center/cover no-repeat;position:relative;padding:140px 0;text-align:center;color:var(--text-light)}
.cta::before{content:'';position:absolute;inset:0;background-color:rgba(44,29,16,.78)}
.cta>.section-inner{position:relative;z-index:1}
.cta-en{font-family:var(--ff-en);font-size:18px;letter-spacing:.4em;color:var(--gold);margin-bottom:24px;text-transform:uppercase}
.cta-heading{font-family:var(--ff-jp);font-size:38px;font-weight:500;letter-spacing:.1em;line-height:1.7;color:var(--text-light);margin-bottom:32px}
.cta-text{font-family:var(--ff-jp);font-size:15px;font-weight:300;color:rgba(255,255,255,.85);line-height:2.4;max-width:680px;margin:0 auto 40px;letter-spacing:.075em}
.cta-buttons{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}

/* SIDE CTA */
.side-cta{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:9999;display:flex;flex-direction:column;gap:2px}
.side-cta a{writing-mode:vertical-rl;font-family:var(--ff-jp);font-size:15px;letter-spacing:.1em;color:var(--white);padding:32px 16px;width:64px;transition:opacity .3s}
.side-cta a:first-child{background-color:var(--primary)}
.side-cta a:last-child{background-color:var(--text)}
.side-cta a:hover{opacity:.85}

/* FOOTER */
.site-footer{background-color:var(--footer-bg);color:var(--text-light);padding:72px 0 0}
.footer-inner{width:90%;max-width:1280px;margin:0 auto}
.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.06);flex-wrap:wrap;gap:32px}
.footer-logo{font-family:var(--ff-jp);font-size:22px;letter-spacing:.15em;font-weight:500}
.footer-logo-sub{font-family:var(--ff-en);font-size:10px;letter-spacing:.25em;color:var(--gold);text-transform:uppercase;margin-top:4px;font-weight:400}
.footer-cta-area{display:flex;gap:14px}
.footer-cta{font-family:var(--ff-jp);font-size:15px;font-weight:500;letter-spacing:.12em;padding:16px 32px;text-align:center;transition:all .3s}
.footer-cta-tel{border:1px solid var(--gold);color:var(--gold)}
.footer-cta-tel:hover{background-color:var(--gold);color:var(--white)}
.footer-cta-contact{background-color:var(--primary);color:var(--text-light);border:1px solid var(--primary)}
.footer-cta-contact:hover{opacity:.85}
.footer-nav-area{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding:48px 0}
.footer-col-en{font-family:var(--ff-en);font-size:13px;font-style:italic;color:var(--gold);margin-bottom:4px;letter-spacing:.1em}
.footer-col-jp{font-size:11px;color:var(--text-sub);letter-spacing:.15em;margin-bottom:14px;font-family:var(--ff-jp)}
.footer-col a{display:block;font-size:13px;color:rgba(247,247,247,.85);padding:4px 0;transition:color .3s;letter-spacing:.05em;font-family:var(--ff-jp);font-weight:300}
.footer-col a:hover{color:var(--gold)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.04);padding:24px 16px;text-align:center}
.footer-copy{font-size:12px;color:var(--text-sub);letter-spacing:.1em;line-height:1.9}
.footer-copy .seg{white-space:nowrap;display:inline-block}
.footer-copy .seg-en{font-family:var(--ff-en);letter-spacing:.2em;margin:0 .4em}
.footer-sns{display:flex;justify-content:center;gap:14px;margin-bottom:18px}
.footer-sns a{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border:1px solid rgba(168,139,88,.4);border-radius:999px;color:rgba(247,247,247,.85);font-family:var(--ff-en);font-size:11px;letter-spacing:.2em;text-transform:uppercase;transition:all .3s}
.footer-sns a:hover{border-color:var(--gold);color:var(--gold);background-color:rgba(168,139,88,.08)}
.footer-sns a svg{width:14px;height:14px;fill:currentColor}

/* MOBILE FAB (left) */
.mobile-bar{display:none;position:fixed;bottom:20px;left:20px;z-index:999;background-color:var(--primary);padding:14px 22px;border-radius:999px;box-shadow:0 8px 24px rgba(137,40,35,.4)}
.mobile-bar a{color:var(--white);font-size:13px;font-weight:500;letter-spacing:.1em;font-family:var(--ff-jp);display:inline-flex;align-items:center;gap:8px}

/* FADE */
.fade-in{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.fade-in.visible{opacity:1;transform:translateY(0)}
.fd1{transition-delay:.1s}.fd2{transition-delay:.2s}.fd3{transition-delay:.3s}.fd4{transition-delay:.4s}

/* RESPONSIVE */
@media(max-width:900px){
  .header-nav{display:none}
  .header-right{display:flex}
  .hamburger{display:block}
  .site-header{padding:0;height:60px;border-bottom:none}
  .header-inner{height:100%;align-items:center}
}
@media(max-width:768px){
  .site-header{height:60px}
  .header-menu-label{display:none}
  .site-logo{font-size:17px}
  .drawer{padding:80px 24px 40px;width:92vw;max-width:none}
  .drawer-list{gap:0 12px}
  .drawer-list a{font-size:12.5px;padding:12px 0;letter-spacing:.04em;gap:6px}
  .drawer-list a .num{font-size:10px;min-width:20px}
  .hero{min-height:560px;height:90vh}
  .hero-en{font-size:12px;letter-spacing:.3em;margin-bottom:18px}
  .hero-catch{font-size:26px;line-height:1.65}
  .hero-catch .accent{font-size:36px;padding:0 .1em}
  .hero-catch .accent::after{width:48px;height:1.5px}
  .hero-sub{font-size:13px;line-height:2}
  .hero-ctas{flex-direction:column;align-items:center;gap:10px}
  .hero-ctas .btn{width:280px;text-align:center}
  .hero-scroll{bottom:24px;right:20px;font-size:11px}
  .section{padding:80px 0}
  .section-en{font-size:36px}
  .resource-grid{grid-template-columns:1fr;gap:14px}
  .stats{padding:72px 0}
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat-item{padding:24px 6px;border-left:none;border-bottom:1px solid rgba(168,139,88,.2)!important;overflow:hidden;min-width:0}
  .stat-item:nth-child(2n){border-left:1px solid rgba(168,139,88,.2)}
  /* SP: stat-num を1行固定・コンテナはみ出し防止・狭幅で自動縮小 */
  .stat-num{font-size:32px!important;white-space:nowrap!important;letter-spacing:0!important;display:block;line-height:1.1}
  .stat-num .count{display:inline-block}
  .stats .stats-grid .stat-num{font-size:32px!important;text-shadow:none!important}
  /* SP共通レイアウト（iPhone Pro Max 430px までカバー） */
  .menu-grid{grid-template-columns:1fr;gap:14px}
  .menu-card{padding:24px}
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .cta-heading{font-size:24px}
  .side-cta{display:none}
  .footer-top{flex-direction:column;text-align:center}
  .footer-cta-area{flex-direction:column;align-items:stretch;width:100%;max-width:320px;margin:0 auto}
  .footer-cta{width:100%}
  .footer-nav-area{grid-template-columns:repeat(2,1fr);gap:24px}
  .footer-copy{font-size:10px;letter-spacing:.06em}
  .footer-copy .seg-en{margin:0 .25em}
  .mobile-bar{display:block}
  body{padding-bottom:52px}
}
/* 極狭幅(380px以下): さらに縮小 */
@media(max-width:380px){
  .stat-num,.stats .stats-grid .stat-num{font-size:26px!important}
}



/* 静的個別ページ：page-section の表示と上端余白 */
.spa-pages{display:block}
.spa-pages > .page-section{padding-top:97px}
.spa-pages > .page-section[id="page-index"]{padding-top:0}
@media(max-width:900px){
  .spa-pages > .page-section{padding-top:60px}
}

/* 日本語：語中改行を防ぐ */
.spa-pages > .page-section,
.spa-pages > .page-section *{
  word-break:auto-phrase;
  line-break:strict;
}
@supports not (word-break:auto-phrase){
  .spa-pages > .page-section,
  .spa-pages > .page-section *{
    word-break:keep-all;
    overflow-wrap:anywhere;
  }
}

/* 全章ページの最大幅を広げる（原本780/1100の細さを廃止） */
.spa-pages > .page-section:not(#page-index) .container{max-width:1280px;width:90%}
.spa-pages > .page-section:not(#page-index) .container-narrow{max-width:1080px;width:90%}

/* 全章ページ画像をセンター寄せ（block画像でもtext-alignが効かないので margin:auto を強制） */
.spa-pages > .page-section:not(#page-index) img{
  margin-left:auto;margin-right:auto;
}

/* 章ページの page-hero：上部黒帯 + 画像部を暗めに */
.spa-pages > .page-section:not(#page-index) .page-hero{
  position:relative;padding:0 0 80px;
  display:flex;flex-direction:column;align-items:stretch;
  min-height:520px;text-align:center;overflow:hidden;
  background:var(--footer-bg);
}
.spa-pages > .page-section:not(#page-index) .ph-bg{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0;display:block;max-width:none;margin:0;
}
.spa-pages > .page-section:not(#page-index) .page-hero::after{
  content:'';position:absolute;left:0;right:0;top:0;bottom:0;
  background:
    radial-gradient(ellipse 75% 60% at center,rgba(0,0,0,.45) 0%,rgba(0,0,0,.15) 70%,transparent 100%),
    linear-gradient(180deg,rgba(20,15,10,.6) 0%,rgba(20,15,10,.85) 100%);
  z-index:1;pointer-events:none;
}
.spa-pages > .page-section:not(#page-index) .page-hero-inner{
  position:relative;z-index:3;width:100%;max-width:none;margin:0;padding:0;
  display:flex;flex-direction:column;align-items:center;flex:1;
}
.spa-pages > .page-section:not(#page-index) .page-hero-kicker{
  display:flex;align-items:center;justify-content:center;
  width:100%;height:96px;flex:0 0 96px;
  background:linear-gradient(180deg,#0a0805 0%,#1a1410 100%);
  border-bottom:1px solid rgba(168,139,88,.3);
  margin:0 0 64px;color:var(--gold);
  font-family:'EB Garamond',serif;font-style:italic;font-weight:400;
  font-size:24px;letter-spacing:.4em;text-transform:none;
  position:relative;z-index:4;
}
.spa-pages > .page-section:not(#page-index) .page-hero h1{
  color:var(--text-light);font-weight:300;
  font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.7;
  letter-spacing:.08em;margin:0 0 28px;
  text-shadow:0 4px 20px rgba(0,0,0,.7);
}
.spa-pages > .page-section:not(#page-index) .page-hero-lead{
  color:rgba(255,255,255,.92);font-size:15px;font-weight:300;
  line-height:2.2;letter-spacing:.05em;margin:0 auto;max-width:760px;
  text-shadow:0 2px 12px rgba(0,0,0,.65);
}

/* タイムライン（エントリーから帰国まで）をカッコよく */
.spa-pages > .page-section:not(#page-index) .timeline{
  position:relative;padding-left:40px;margin-top:48px;
}
.spa-pages > .page-section:not(#page-index) .timeline::before{
  content:'';position:absolute;left:8px;top:0;bottom:0;width:1px;
  background:linear-gradient(180deg,transparent 0%,var(--gold) 8%,var(--gold) 92%,transparent 100%);
}
.spa-pages > .page-section:not(#page-index) .t-item{
  position:relative;padding:0 0 56px 32px;
}
.spa-pages > .page-section:not(#page-index) .t-item:last-child{padding-bottom:0}
.spa-pages > .page-section:not(#page-index) .t-item::before{
  content:'';position:absolute;left:-39px;top:8px;
  width:18px;height:18px;border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 0 4px var(--dark),0 0 0 5px var(--gold),0 0 24px rgba(168,139,88,.5);
  transition:transform .4s ease;
}
.spa-pages > .page-section:not(#page-index) .t-item:hover::before{
  transform:scale(1.2);
}
.spa-pages > .page-section:not(#page-index) .t-day{
  display:inline-block;font-family:'EB Garamond',serif;font-style:italic;
  font-size:24px;font-weight:400;color:var(--gold);
  letter-spacing:.04em;margin:0 0 8px;line-height:1;
}
.spa-pages > .page-section:not(#page-index) .t-title{
  font-family:'Noto Serif JP',serif;font-weight:500;
  font-size:1.25rem;color:var(--gold);
  letter-spacing:.08em;line-height:1.5;margin:0 0 14px;
  padding-bottom:14px;border-bottom:1px solid rgba(168,139,88,.25);
}
.spa-pages > .page-section:not(#page-index) section.dark .t-title{color:var(--gold)}
.spa-pages > .page-section:not(#page-index) .t-body{
  font-family:'Noto Sans JP',sans-serif;
}
.spa-pages > .page-section:not(#page-index) .t-body p{
  font-weight:300;font-size:.92rem;line-height:2;letter-spacing:.04em;
  color:var(--text);margin:0;
}
.spa-pages > .page-section:not(#page-index) section.dark .t-body p{
  color:rgba(255,255,255,.85);
}
/* 壊れた photo-band（imgなし）を非表示 */
.spa-pages > .page-section:not(#page-index) figure.photo-band:not(:has(img)){display:none}

/* === about.html だけ：案A（テキスト/画像分離） === */
.spa-pages > .page-section:not(#page-index) .page-hero{
  background:var(--body-bg);min-height:0;padding:0;
  display:flex;flex-direction:column;align-items:stretch;
  text-align:center;overflow:hidden;
}
.spa-pages > .page-section:not(#page-index) .page-hero::after{display:none}
.spa-pages > .page-section:not(#page-index) .page-hero-inner{display:contents}
.spa-pages > .page-section:not(#page-index) .page-hero-kicker{
  order:1;width:100%;height:96px;flex:0 0 96px;
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#0a0805 0%,#1a1410 100%);
  border-bottom:1px solid rgba(168,139,88,.3);
  margin:0;color:var(--gold);
  font-family:'EB Garamond',serif;font-style:italic;font-weight:400;
  font-size:24px;letter-spacing:.4em;
  position:static;
}
.spa-pages > .page-section:not(#page-index) .page-hero h1{
  order:2;background:var(--body-bg);
  padding:96px 24px 28px;margin:0;
  font-family:'Noto Serif JP',serif;font-weight:300;
  font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.7;
  letter-spacing:.08em;color:var(--text);text-shadow:none;
}
.spa-pages > .page-section:not(#page-index) .page-hero-lead{
  order:3;background:var(--body-bg);
  padding:0 24px 56px;margin:0 auto;
  max-width:760px;font-family:'Noto Serif JP',serif;font-weight:300;
  font-size:16px;color:var(--text-sub);line-height:2.4;
  letter-spacing:.05em;text-shadow:none;
}
.spa-pages > .page-section:not(#page-index) .ph-bg{
  order:4;position:relative;width:280px;height:280px;z-index:2;
  object-fit:cover;display:block;
  margin:0 auto 64px;border-radius:50%;border:6px solid var(--white);
  box-shadow:0 24px 60px rgba(49,37,37,.18),0 0 0 1px var(--border);
}
/* スクロール矢印（画像下に表示・コンパクト） */
.spa-pages > .page-section:not(#page-index) .page-hero{padding-bottom:0}
.spa-pages > .page-section:not(#page-index) .page-hero-arrow{
  order:5;display:flex;flex-direction:column;align-items:center;gap:10px;
  margin:0 auto 24px;color:var(--gold);font-family:'EB Garamond',serif;
  font-size:11px;letter-spacing:.4em;text-transform:uppercase;font-style:italic;
  position:relative;z-index:2;
}
.spa-pages > .page-section:not(#page-index) .page-hero-arrow::after{
  content:'';width:1px;height:28px;
  background:linear-gradient(180deg,var(--gold) 0%,transparent 100%);
  animation:scrollPulse 1.8s ease-in-out infinite;
}
@keyframes scrollPulse{
  0%,100%{transform:scaleY(1);transform-origin:top;opacity:.7}
  50%{transform:scaleY(1.3);opacity:1}
}
.spa-pages > .page-section:not(#page-index) .page-hero{
  position:relative;
}
.spa-pages > .page-section:not(#page-index) .page-hero::before{
  content:'';position:absolute;inset:96px 0 0 0;
  background:var(--ph-bg) center/cover no-repeat;
  opacity:.07;filter:sepia(.4) saturate(.8);
  z-index:0;pointer-events:none;display:block;
}
.spa-pages > .page-section:not(#page-index) .page-hero::after{
  content:'';position:absolute;left:50%;top:auto;bottom:160px;transform:translateX(-50%);
  width:520px;height:520px;border-radius:50%;
  background:radial-gradient(circle,rgba(168,139,88,.14) 0%,rgba(168,139,88,0) 65%);
  z-index:0;pointer-events:none;display:block;
}
/* （古い padding-bottom:128px を撤去 → 上で 0 に設定済） */

/* YouTube embed (wisdom) */
.yt-embed{position:relative;width:100%;aspect-ratio:16/9;background-color:#000;overflow:hidden}
.yt-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}

/* Yoshio Chat CTA（TOP右下・チャットボットを開く） */
.yoshio-chat-cta{
  position:fixed;right:24px;bottom:96px;z-index:9989;
  width:320px;border:0;padding:0;background:transparent;cursor:pointer;
  border-radius:12px;overflow:hidden;
  box-shadow:0 14px 40px rgba(49,37,37,.32);
  transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s ease;
}
.yoshio-chat-cta img{width:100%;height:auto;display:block}
.yoshio-chat-cta:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 22px 56px rgba(49,37,37,.42)}
.yoshio-chat-cta-label{display:none}
@media(max-width:768px){
  .yoshio-chat-cta{display:none}
}

/* Yoshio Instagram バナー（TOPページ左下・固定） */
.yoshio-banner{
  position:fixed;left:24px;bottom:24px;z-index:9990;
  display:block;width:280px;aspect-ratio:16/9;
  border:1px solid var(--gold);border-radius:8px;
  box-shadow:0 12px 40px rgba(49,37,37,.28);
  overflow:hidden;text-decoration:none;color:#fff;
  transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s ease;
}
.yoshio-banner:hover{transform:translateY(-6px) scale(1.03);box-shadow:0 18px 52px rgba(49,37,37,.4)}
.yoshio-banner img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block;transition:transform .8s ease;
}
.yoshio-banner:hover img{transform:scale(1.06)}
.yoshio-banner-overlay{
  position:absolute;inset:0;
  background:linear-gradient(135deg,rgba(20,15,10,.78) 0%,rgba(20,15,10,.35) 100%);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:14px 16px;
}
.yoshio-banner-kicker{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:11px;letter-spacing:.3em;color:var(--gold);
  text-transform:uppercase;margin-bottom:4px;
}
.yoshio-banner-title{
  font-family:'Noto Serif JP',serif;font-weight:500;
  font-size:15px;color:#fff;letter-spacing:.06em;line-height:1.5;
  margin-bottom:6px;
}
.yoshio-banner-handle{
  font-family:'EB Garamond',serif;font-size:11px;
  color:var(--gold);letter-spacing:.1em;
}
@media(max-width:768px){
  /* SP: 左下「一緒にサハラへ行く」mobile-barの上に小型固定 */
  .yoshio-banner{left:20px;right:auto;bottom:80px;width:140px;border-radius:6px}
  .yoshio-banner-overlay{padding:8px 10px}
  .yoshio-banner-title{font-size:10px;line-height:1.35;margin-bottom:3px}
  .yoshio-banner-kicker{font-size:8px;letter-spacing:.22em;margin-bottom:2px}
  .yoshio-banner-handle{font-size:9px}
}
@media(max-width:480px){
  .yoshio-banner{width:120px;bottom:76px}
  .yoshio-banner-title{font-size:9.5px}
}

/* English Letter Page */
.spa-pages > .page-section#page-english .letter-intro{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:clamp(1.4rem,2.4vw,2rem);font-weight:400;
  color:var(--gold);letter-spacing:.02em;line-height:1.55;
  margin:80px auto 14px;max-width:880px;padding:0 24px;
  text-align:center;
}
.spa-pages > .page-section#page-english h1{
  font-family:'EB Garamond','Noto Serif JP',serif;
  font-size:clamp(1.05rem,1.5vw,1.25rem);font-weight:400;
  letter-spacing:.02em;line-height:1.55;color:var(--text);
  margin:0 auto 6px;max-width:880px;padding:0 24px;
  text-align:center;
}
.spa-pages > .page-section#page-english .page-hero-lead{
  font-family:'EB Garamond','Noto Serif JP',serif;
  font-style:italic;font-size:13px;font-weight:400;
  color:var(--text-sub);letter-spacing:.04em;line-height:1.7;
  margin:0 auto 0;padding:0 24px;max-width:760px;
  text-align:center;
}
/* 上下の余白をタイトに */
.spa-pages > .page-section#page-english > section.english-letter,
.spa-pages > .page-section#page-english > section.page-hero{padding:0 0 32px!important;min-height:0!important}
.spa-pages > .page-section#page-english > section.alt{padding-top:0!important;padding-bottom:64px}
.spa-pages > .page-section#page-english .letter-paper{
  background:#fff;padding:80px 80px 64px;
  border:1px solid var(--border);
  box-shadow:0 24px 64px rgba(49,37,37,.08);
  font-family:'EB Garamond','Noto Serif JP',serif;
  color:#2a1f17;line-height:2.05;letter-spacing:.01em;
  margin:0 auto;max-width:820px;
}
.spa-pages > .page-section#page-english .letter-paper p{
  font-family:'EB Garamond','Noto Serif JP',serif;
  font-size:17px;font-weight:400;color:#2a1f17;
  line-height:2.05;letter-spacing:.01em;margin:0 0 1.4em;
}
.spa-pages > .page-section#page-english .letter-paper .letter-date{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:13px;color:var(--gold);letter-spacing:.2em;
  text-transform:uppercase;margin:0 0 32px;text-align:right;
}
.spa-pages > .page-section#page-english .letter-paper .letter-open{
  font-style:italic;font-size:19px;color:var(--text);
  margin:0 0 28px;letter-spacing:.02em;
}
.spa-pages > .page-section#page-english .letter-paper p strong{
  font-weight:600;color:var(--text);font-style:normal;
}
.spa-pages > .page-section#page-english .letter-paper .letter-quote{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:22px;color:var(--gold);text-align:center;
  padding:28px 24px;margin:36px 0;
  border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  letter-spacing:.04em;line-height:1.7;
}
.spa-pages > .page-section#page-english .letter-paper .letter-close{
  margin-top:48px;font-style:italic;color:var(--text-sub);
}
.spa-pages > .page-section#page-english .letter-paper .letter-signature{
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:36px;font-weight:400;color:var(--primary);
  margin:8px 0 18px;letter-spacing:.04em;line-height:1;
}
.spa-pages > .page-section#page-english .letter-paper .letter-handle{
  font-family:'EB Garamond',serif;font-size:12px;
  color:var(--text-sub);letter-spacing:.2em;
  text-transform:uppercase;margin:0;
}
@media(max-width:720px){
  .spa-pages > .page-section#page-english .letter-paper{padding:48px 28px 36px}
  .spa-pages > .page-section#page-english .letter-paper p{font-size:15.5px;line-height:1.95}
  .spa-pages > .page-section#page-english .letter-paper .letter-quote{font-size:18px;padding:20px 12px}
  .spa-pages > .page-section#page-english .letter-paper .letter-signature{font-size:30px}
}

/* バケットリスト（やりたい100）を高級感あるデザインに */
.spa-pages > .page-section:not(#page-index) .bucket{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  counter-reset:bucket;list-style:none;padding:0;
  margin:48px 0 0;border-top:1px solid var(--border);border-left:1px solid var(--border);
}
@media(max-width:900px){.spa-pages > .page-section:not(#page-index) .bucket{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.spa-pages > .page-section:not(#page-index) .bucket{grid-template-columns:1fr}}
.spa-pages > .page-section:not(#page-index) .bucket li{
  counter-increment:bucket;
  position:relative;
  padding:24px 24px 24px 76px;
  background-color:var(--white);
  border-right:1px solid var(--border);border-bottom:1px solid var(--border);
  font-family:'Noto Serif JP',serif;font-weight:500;
  font-size:14.5px;color:#1f1410;line-height:1.85;letter-spacing:.04em;
  transition:background-color .4s,padding-left .4s;
  border-radius:0;
}
.spa-pages > .page-section:not(#page-index) .bucket li::before{
  content:counter(bucket,decimal-leading-zero);
  position:absolute;left:20px;top:22px;
  font-family:'EB Garamond',serif;font-style:italic;
  font-size:32px;font-weight:400;color:var(--gold);
  line-height:1;letter-spacing:.02em;
  transition:transform .4s ease,color .4s;
}
.spa-pages > .page-section:not(#page-index) .bucket li:hover{
  background-color:rgba(168,139,88,.06);
  padding-left:84px;
}
.spa-pages > .page-section:not(#page-index) .bucket li:hover::before{
  transform:translateX(4px);color:var(--primary);
}
.spa-pages > .page-section:not(#page-index) .bucket li.done{
  background-color:rgba(168,139,88,.08);
}
.spa-pages > .page-section:not(#page-index) .bucket li.done::after{
  content:'DONE';position:absolute;right:18px;top:22px;
  font-family:'EB Garamond',serif;font-size:10px;letter-spacing:.25em;
  color:var(--gold);padding:3px 10px;border:1px solid var(--gold);
  border-radius:999px;
}

/* 4枚目だけ余ったカードをセンター寄せ */
.spa-pages > .page-section:not(#page-index) .grid.grid-2 > .card:nth-child(4):last-child{
  grid-column:2;
}
@media(max-width:720px){
  .spa-pages > .page-section:not(#page-index) .grid.grid-2 > .card:nth-child(4):last-child{
    grid-column:auto;
  }
}

/* Yoshio 紹介CTA（LINE + Instagram + 富士企画HP） */
.yoshio-cta{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:0 auto;
  max-width:1080px;
}
/* CTAだけのセクションは余白を圧縮 */
.spa-pages > .page-section:not(#page-index) section:has(> .container > .yoshio-cta){
  padding:32px 0!important;
}
@media(max-width:960px){.yoshio-cta{grid-template-columns:repeat(2,1fr);max-width:780px}}
@media(max-width:720px){.yoshio-cta{grid-template-columns:1fr}}
/* LINEカード：アイコン背景をLINE公式グリーンに */
.yoshio-cta-card.yoshio-cta-line .yoshio-cta-icon{
  background:linear-gradient(135deg,#06C755 0%,#04a346 100%);
  box-shadow:0 8px 20px rgba(6,199,85,.35);
}
/* LINE 固定スティッキー（front-page.php 用・yoshio-banner の上に重ねるバナー画像版） */
.yoshio-line-sticky{
  position:fixed;left:24px;bottom:194px;z-index:9991;
  display:block;width:280px;aspect-ratio:16/9;
  border:1px solid #06C755;border-radius:8px;
  box-shadow:0 12px 40px rgba(6,199,85,.32);
  overflow:hidden;text-decoration:none;
  transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s ease;
}
.yoshio-line-sticky:hover{transform:translateY(-6px) scale(1.03);box-shadow:0 18px 52px rgba(6,199,85,.45)}
.yoshio-line-sticky img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease}
.yoshio-line-sticky:hover img{transform:scale(1.06)}
@media(max-width:768px){
  .yoshio-line-sticky{left:20px;bottom:168px;width:140px;border-radius:6px}
}
@media(max-width:480px){
  .yoshio-line-sticky{bottom:152px;width:120px}
}
/* footer-sns 内 LINE リンク色味は既存pillで継承される */
.yoshio-cta-card{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;
  padding:32px 32px 28px;border:1px solid var(--gold);
  background:linear-gradient(135deg,rgba(168,139,88,.06) 0%,transparent 60%);
  text-decoration:none;color:var(--text);overflow:hidden;
  transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s,background .5s;
}
.yoshio-cta-card::before{
  content:'';position:absolute;left:0;top:0;width:3px;height:0;
  background:linear-gradient(180deg,var(--gold) 0%,var(--primary) 100%);
  transition:height .5s ease;
}
.yoshio-cta-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 56px rgba(49,37,37,.14);
  background:linear-gradient(135deg,rgba(168,139,88,.14) 0%,rgba(168,139,88,.02) 60%);
}
.yoshio-cta-card:hover::before{height:100%}
.yoshio-cta-icon{
  display:inline-flex;align-items:center;justify-content:center;
  width:48px;height:48px;border-radius:50%;
  background:linear-gradient(135deg,var(--gold) 0%,#c9a368 100%);
  color:var(--white);margin-bottom:18px;
  box-shadow:0 8px 20px rgba(168,139,88,.35);
  transition:transform .5s cubic-bezier(.2,.8,.2,1);
}
.yoshio-cta-icon svg{width:22px;height:22px;fill:currentColor}
.yoshio-cta-card:hover .yoshio-cta-icon{transform:rotate(-6deg) scale(1.08)}
.yoshio-cta-kicker{
  font-family:'EB Garamond',serif;font-style:italic;font-size:13px;
  color:var(--gold);letter-spacing:.3em;text-transform:uppercase;margin-bottom:14px;
}
.yoshio-cta-title{
  font-family:'Noto Serif JP',serif;font-size:1.2rem;font-weight:500;
  color:var(--text);line-height:1.6;letter-spacing:.06em;margin-bottom:18px;
}
.yoshio-cta-handle{
  font-family:'EB Garamond',serif;font-size:14px;color:var(--text-sub);
  letter-spacing:.05em;margin-bottom:0;font-style:italic;
}
.yoshio-cta-arrow{
  position:absolute;right:28px;bottom:24px;font-family:'EB Garamond',serif;
  font-size:28px;color:var(--gold);transition:transform .4s ease;
  line-height:1;
}
.yoshio-cta-card:hover .yoshio-cta-arrow{transform:translateX(8px)}

/* 章ページのカードを高級感ある見た目に */
.spa-pages > .page-section:not(#page-index) .card{
  position:relative;background:var(--white);border:1px solid var(--border);
  border-radius:0;padding:36px 32px;
  box-shadow:none;overflow:hidden;
  transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s,border-color .5s;
}
.spa-pages > .page-section:not(#page-index) .card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--gold) 0%,var(--primary) 100%);
  transform:scaleY(0);transform-origin:top;transition:transform .5s ease;
}
.spa-pages > .page-section:not(#page-index) .card:hover{
  transform:translateY(-8px);
  box-shadow:0 24px 48px rgba(49,37,37,.12);
  border-color:var(--gold);
}
.spa-pages > .page-section:not(#page-index) .card:hover::before{transform:scaleY(1)}
.spa-pages > .page-section:not(#page-index) .card .num{
  display:block;font-family:'EB Garamond',serif;font-style:italic;
  font-size:56px;font-weight:400;color:var(--gold);line-height:1;
  letter-spacing:.02em;margin:0 0 18px;opacity:.95;
  transition:transform .5s ease,opacity .5s;
}
.spa-pages > .page-section:not(#page-index) .card:hover .num{
  transform:translateX(4px);opacity:1;
}
.spa-pages > .page-section:not(#page-index) .card h3{
  font-family:'Noto Serif JP',serif;font-weight:500;font-size:1.05rem;
  letter-spacing:.06em;line-height:1.7;color:var(--text);margin:0 0 14px;
  padding-bottom:14px;border-bottom:1px solid var(--border);
}
.spa-pages > .page-section:not(#page-index) .card p{
  font-family:'Noto Sans JP',sans-serif;font-weight:300;font-size:.85rem;
  color:var(--text-sub);line-height:2;letter-spacing:.04em;margin:0;
}

/* 章ページの太い見出しをやめる（原本h1=700/heavy → 軽い明朝に） */
.spa-pages > .page-section:not(#page-index) h1,
.spa-pages > .page-section:not(#page-index) h2,
.spa-pages > .page-section:not(#page-index) h3,
.spa-pages > .page-section:not(#page-index) h4{
  font-family:'Noto Serif JP',serif;font-weight:400;letter-spacing:.06em;
}
.spa-pages > .page-section:not(#page-index) .page-hero h1{
  font-weight:300;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.7;
  letter-spacing:.08em;
}
.spa-pages > .page-section:not(#page-index) h2{font-weight:400;font-size:clamp(1.3rem,2.2vw,1.8rem)}
.spa-pages > .page-section:not(#page-index) h3{font-weight:500;font-size:clamp(1.05rem,1.6vw,1.2rem)}
.spa-pages > .page-section:not(#page-index) h4{font-weight:500;font-size:1rem}
/* 画像が大きすぎる対策：style="width:100%" 単独指定の画像に max-width を追加 */
.spa-pages > .page-section:not(#page-index) img[style*="width:100%"]:not([style*="max-width"]){
  max-width:520px;
}

/* === 全ページ防御パッチ（スマホ崩れ対策・グローバル）2026-05-26 === */

/* 1. flex/gridの子要素が長文で突き抜けるバグ防止 */
*{min-width:0}

/* 2. 本文系の折返し制御（見出し・ボタンには適用しない） */
p,li,dt,dd,td,th,blockquote,figcaption{
  overflow-wrap:anywhere;
  word-break:normal;
  line-break:strict;
}
a,code,pre{overflow-wrap:anywhere}
pre,code{white-space:pre-wrap}

/* 3. メディアの最大幅徹底 */
img,video,iframe,svg,canvas,embed,object{
  max-width:100%;
  height:auto;
}

/* 4. テーブル横スクロール（記事内table自動対応） */
.entry-content table,.page-section table{
  display:block;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

/* 5. フッターセグメントの強制1行を解除（スマホ） */
@media(max-width:768px){
  .footer-copy .seg{white-space:normal}
}

/* 6. page-hero 円形gradient をビューポート連動に */
@media(max-width:768px){
  .spa-pages > .page-section:not(#page-index) .page-hero::after{
    width:min(520px,90vw);
    height:min(520px,90vw);
    bottom:80px;
  }
}

/* 7. pre/code/長URLのスマホフォント縮小 */
@media(max-width:768px){
  pre,code,kbd,samp{font-size:13px}
}

/* === 2027 ENTRY OPEN 告知バナー（Newsセクション上）2026-06-01 === */
.entry-notice{
  position:relative;
  background:linear-gradient(135deg,var(--primary) 0%,var(--dark) 100%);
  padding:72px 24px;
  overflow:hidden;
}
.entry-notice::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 30% 50%,rgba(168,139,88,.18) 0%,transparent 60%);
  pointer-events:none;
}
.entry-notice-inner{
  position:relative;z-index:1;
  width:94%;max-width:880px;margin:0 auto;text-align:center;color:#fff;
}
.entry-notice-kicker{
  font-family:var(--ff-en);font-size:13px;letter-spacing:.4em;
  color:var(--gold);margin-bottom:18px;text-transform:uppercase;font-weight:500;
}
.entry-notice-title{
  font-family:var(--ff-jp);font-size:40px;font-weight:500;color:#fff;
  line-height:1.5;letter-spacing:.06em;margin:0 0 24px;
}
.entry-notice-date{
  color:var(--gold);font-size:1.1em;display:inline-block;padding:0 .1em;
  border-bottom:3px solid var(--gold);
}
.entry-notice-desc{
  font-family:var(--ff-body);font-size:15px;line-height:2;
  color:rgba(255,255,255,.92);max-width:680px;margin:0 auto 32px;letter-spacing:.05em;
}
.entry-notice-desc a{
  color:var(--gold);text-decoration:underline;font-weight:500;
}
.entry-notice-cta{
  display:flex;justify-content:center;gap:16px;flex-wrap:wrap;
}
.entry-notice-btn{
  display:inline-block;padding:16px 32px;
  background:var(--gold);color:var(--dark);
  font-family:var(--ff-jp);font-weight:500;font-size:15px;letter-spacing:.05em;
  border-radius:4px;text-decoration:none;
  transition:transform .3s,box-shadow .3s;
  box-shadow:0 8px 24px rgba(0,0,0,.32);
}
.entry-notice-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 12px 32px rgba(0,0,0,.42);
  background:var(--primary);
  color:#fff;
}
.entry-notice-btn-ghost{
  background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45);
  box-shadow:none;
}
.entry-notice-btn-ghost:hover{
  background:rgba(255,255,255,.08);
}
@media(max-width:768px){
  .entry-notice{padding:48px 20px}
  .entry-notice-title{font-size:24px;letter-spacing:.04em}
  .entry-notice-desc{font-size:14px;line-height:1.9}
  .entry-notice-btn{padding:14px 24px;font-size:14px;width:100%;max-width:300px;text-align:center}
  .entry-notice-cta{flex-direction:column;align-items:center}
}

/* === Mobile audit fixes: 2026-06-02 === */

@media (max-width: 768px) {
  .spa-pages > .page-section:not(#page-index) .timeline .t-day {
    display: block;
    max-width: 100%;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    letter-spacing: .02em;
    line-height: 1.25;
  }

  .drawer-close {
    width: 44px;
    height: 44px;
  }

  .site-logo {
    min-height: 44px;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .footer-col a {
    min-height: 44px;
    display: flex;
    align-items: center;
    padding: 8px 0;
  }

  .footer-sns a {
    min-height: 44px;
  }

  .spa-pages > .page-section:not(#page-index) .card h3 {
    max-width: 100%;
    overflow-wrap: break-word;
    word-break: normal;
    line-break: strict;
  }
}

@media (max-width: 900px) {
  .hamburger {
    width: 44px;
    height: 44px;
  }

  .hamburger span {
    width: 26px;
    left: 9px;
  }

  .hamburger span:nth-child(1) { top: 13px; }
  .hamburger span:nth-child(2) { top: 21px; }
  .hamburger span:nth-child(3) { top: 29px; }

  .hamburger.active span:nth-child(1),
  .hamburger.active span:nth-child(3) {
    top: 21px;
  }
}

@media (max-width: 480px) {
  .entry-notice-kicker {
    letter-spacing: .24em;
  }
}

@media (orientation: landscape) and (max-height: 520px) {
  .side-cta {
    display: none;
  }

  #mds-chat-fab {
    right: 20px;
    bottom: 20px;
  }
}
