/* =========================================================
   トップ短縮版（front-page.php 用）
   モック正本: https://claude.ai/code/artifact/199c11c2-db75-4e17-bb90-013630b8b6cc
   すべて .ts 配下に限定し、main.css / top.css と衝突させない。
   ヒーローは本番のもの（top.css）をそのまま使う。
   ========================================================= */
.ts{ --h1:#666; --em:#385078; --sans:'Noto Sans JP',"Hiragino Kaku Gothic ProN",sans-serif; --serif:'Shippori Mincho',"Hiragino Mincho ProN",serif; --en:'EB Garamond',Georgia,serif; font-family:var(--sans); font-size:16px; line-height:1.9; color:var(--text) }
.ts *{box-sizing:border-box}
.ts a{color:inherit}
.ts ul{list-style:none;margin:0;padding:0}
.ts h2,.ts p{margin:0}
.ts section{padding:88px 0}
.ts .inner{max-width:1100px;margin:0 auto;padding:0 40px;position:relative}
/* 本番CSS（top.css の .worries 等）が中央揃えにするのを打ち消す */
.ts,.ts section,.ts .inner{text-align:left}
/* 薄ティール地の上では英字の飾りが消えるので少し濃く */
.ts .voice .en{color:rgba(130,216,208,.35)}
/* 文節単位で折り返す（「す。」だけの行を作らない） */
.ts .u{display:inline-block}
/* ノビシロのバナーは全幅だと大きすぎるので半分程度（最大520px・中央） */
.ts .signs-banner{display:block;max-width:520px;margin:8px auto 0}
.ts .signs-banner img{width:100%;height:auto;display:block;border-radius:12px;filter:drop-shadow(0 4px 14px rgba(0,0,0,.3))}
.ts .inner{max-width:1100px;margin:0 auto;padding:0 40px;position:relative}
.ts section{padding:88px 0}
.ts .en{font-family:var(--en);font-size:clamp(56px,7vw,96px);line-height:1;color:var(--teal-pale);font-weight:500;letter-spacing:.02em;margin:0 0 -22px -4px;user-select:none}
.ts .worries .en, .ts .finale .en{color:rgba(130,216,208,.16)}
.ts .lab{font-size:16px;letter-spacing:.18em;color:var(--teal-dark);display:flex;align-items:center;gap:10px;margin:0 0 10px;font-weight:500}
.ts .lab::before{content:'';width:8px;height:8px;border-radius:50%;background:var(--teal-dark);flex:none}
.ts h2{font-family:var(--serif);font-size:clamp(26px,2.6vw,36px);line-height:1.5;margin:0 0 18px;color:var(--navy);font-weight:700}
.ts .lead{color:var(--text-light);margin:0 0 28px;max-width:700px}
.ts .more{display:inline-flex;align-items:center;gap:10px;margin:28px auto 0;padding:13px 20px 13px 26px;border-radius:100px;font-size:15px;font-weight:700;color:var(--navy);text-decoration:none;border:2px solid var(--navy);background:#fff;transition:transform .25s ease,box-shadow .25s ease}
.ts .more i{width:26px;height:26px;border-radius:50%;background:var(--teal-pale);display:grid;place-items:center;font-style:normal;font-size:14px;line-height:1;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ts .more:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(26,39,68,.18)}
.ts .more:hover i{transform:rotate(360deg)}
.ts .more-wrap{display:flex;justify-content:center}
.ts .worries{background:var(--navy);color:#fff;padding:120px 0 110px;clip-path:polygon(0 56px,100% 0,100% calc(100% - 56px),0 100%);margin:8px 0 -20px}
.ts .worries .lab{color:var(--teal)}
.ts .worries .lab::before{background:var(--teal)}
.ts .worries h2{color:#fff}
.ts .wlist{display:grid;grid-template-columns:1fr 1fr;gap:10px 40px;list-style:none;margin:0 0 30px;padding:0;max-width:960px}
.ts .wlist li{position:relative;padding:14px 0 14px 66px;min-height:64px;display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.14);font-size:16px}
.ts .wico{position:absolute;left:0;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.ts .wico svg{width:34px;height:34px;display:block}
.ts .wcatch{font-family:var(--serif);font-size:24px;color:#fff;margin:8px 0 6px;text-align:center}
.ts .wsub{color:var(--teal);margin:0 0 22px;text-align:center}
.ts .wsub .u{display:inline-block}
.ts .rows{border-top:1px solid var(--border)}
.ts .row{display:grid;grid-template-columns:64px 220px 1fr;gap:22px;padding:22px 0;border-bottom:1px solid var(--border);align-items:center}
.ts .row .ico{width:56px;height:56px;border-radius:16px;background:var(--teal-pale);display:grid;place-items:center}
.ts .row .ico svg{width:36px;height:36px}
.ts .row b{font-size:18px;color:var(--navy)}
.ts .row p{margin:0;color:var(--text-light)}
.ts .services{background:var(--bg2)}
.ts .plans{background:#fff}
.ts .pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ts .pcard{background:#fff;border-radius:16px;padding:26px 24px;border:1px solid var(--border);position:relative;box-shadow:0 4px 16px rgba(26,39,68,.06)}
.ts .pcard .pnum{font-family:var(--en);font-size:34px;color:var(--teal);position:absolute;right:20px;top:14px;line-height:1}
.ts .pcard .pfor{display:block;font-size:15px;letter-spacing:.04em;color:var(--teal-dark);font-weight:700;margin-bottom:6px}
.ts .pcard.hot .pfor{color:var(--teal)}
.ts .pcard .ico{width:56px;height:56px;border-radius:50%;background:var(--teal-pale);display:grid;place-items:center;margin-bottom:14px}
.ts .pcard .ico svg{width:36px;height:36px}
.ts .pcard b{display:block;font-size:18px;color:var(--navy);margin-bottom:8px;line-height:1.5}
.ts .pcard p{margin:0;color:var(--text-light);font-size:16px}
.ts .pcard.hot{background:var(--navy);color:#fff;border-color:var(--navy)}
.ts .pcard.hot b{color:#fff}
.ts .pcard.hot p{color:rgba(255,255,255,.85)}
.ts .pcard.hot .ico{background:rgba(255,255,255,.12)}
.ts .trust{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;list-style:none;margin:26px 0 0;padding:0;font-size:15px;color:var(--text-light)}
.ts .trust li::before{content:'✓ ';color:var(--teal-dark);font-weight:700}
.ts .btns2{display:flex;gap:14px;margin-top:32px;justify-content:center}
.ts .btns2 a{display:inline-flex;align-items:center;gap:10px;padding:14px 22px 14px 28px;border-radius:100px;font-weight:700;text-decoration:none;border:2px solid var(--navy);transition:transform .25s ease,box-shadow .25s ease}
.ts .btns2 a i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:14px;line-height:1;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ts .btns2 a.p i{background:rgba(255,255,255,.18)}
.ts .btns2 a.s i{background:var(--teal-pale)}
.ts .btns2 a:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(26,39,68,.18)}
.ts .btns2 a:hover i{transform:rotate(360deg)}
@media (prefers-reduced-motion:reduce){
.ts .btns2 a, .ts .btns2 a i{transition:none}
}
.ts .btns2 a.p{background:var(--navy);color:#fff}
.ts .btns2 a.s{background:#fff;color:var(--navy)}
.ts .nums{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:0 0 40px}
.ts .num{background:#fff;border:1px solid var(--border);border-radius:16px;padding:22px 20px;display:grid;grid-template-columns:56px 1fr;gap:16px;align-items:center;box-shadow:0 4px 16px rgba(26,39,68,.05)}
.ts .num svg{width:56px;height:56px}
.ts .num b{display:block;font-size:28px;color:var(--teal-dark);line-height:1.15}
.ts .num b small{font-size:15px}
.ts .num span{color:var(--text-light);font-size:15px}
.ts .band-photo{position:relative;height:420px;background-color:var(--navy);background-size:cover;background-position:center;background-repeat:no-repeat;margin:0}
.ts .band-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(to right,rgba(26,39,68,.72),rgba(26,39,68,.15) 60%,transparent)}
.ts .band-photo .cap{position:absolute;left:0;right:0;bottom:0;z-index:1;color:#fff;padding:0 0 40px}
.ts .band-photo .cap .inner{max-width:1100px}
.ts .band-photo .cap p{margin:0 0 6px;font-family:var(--serif);font-size:clamp(20px,2.2vw,28px)}
.ts .band-photo .cap small{font-size:15px;font-size:13px;opacity:.9}
.ts .logos{margin-top:28px}
.ts .logos .t{display:block;font-size:15px;letter-spacing:.12em;color:var(--teal-dark);margin-bottom:12px}
.ts .lgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.ts .lgrid>div{background:#fff;border:1px solid var(--border);border-radius:12px;height:92px;display:grid;place-items:center;padding:0 12px;min-width:0}
.ts .lgrid img{max-height:56px;max-width:100%;width:auto;height:auto}
.ts .lgrid>div.named{display:flex;align-items:center;justify-content:center;gap:8px}
.ts .lgrid>div.named img{max-height:48px;max-width:52px}
.ts .lgrid>div.named span{font-size:14px;font-weight:700;color:var(--navy);line-height:1.3;white-space:nowrap}
.ts .logos.public{margin-top:18px}
.ts .lgrid>div.txt span{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--navy);letter-spacing:.04em;white-space:nowrap}
.ts .voice{background:var(--teal-pale)}
.ts .vhead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px}
.ts .vnav{display:flex;gap:10px;padding-bottom:6px}
.ts .vbtn{width:46px;height:46px;border-radius:50%;border:2px solid var(--navy);background:#fff;color:var(--navy);font-size:18px;line-height:1;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease}
.ts .vbtn:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(26,39,68,.18)}
.ts .vbtn:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.ts .vtrack{display:flex;gap:18px;list-style:none;margin:0;padding:6px 4px 10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ts .vtrack::-webkit-scrollbar{display:none}
.ts .vcard{flex:0 0 min(440px,86%);scroll-snap-align:start;background:#fff;border:1px solid var(--border);border-radius:16px;padding:26px 26px 22px;position:relative;box-shadow:0 4px 16px rgba(26,39,68,.05)}
.ts .vcard p{font-family:var(--serif);font-size:17px;line-height:1.9;color:var(--navy);margin:0 0 14px}
.ts .who{color:var(--text-light);font-size:15px}
@media (prefers-reduced-motion:reduce){
.ts .vbtn{transition:none}
.ts .vtrack{scroll-behavior:auto}
}
.ts .phil{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.ts .phil .q{font-family:var(--serif);font-size:clamp(20px,1.9vw,26px);line-height:1.8;color:var(--navy);border-left:4px solid var(--teal);padding-left:22px;margin:0}
.ts .phil .q em{font-style:normal;color:var(--teal-dark)}
.ts .phil .leaf{width:44px;height:44px;margin-bottom:12px}
.ts .faq{background:var(--bg2)}
.ts details{background:#fff;border:1px solid var(--border);border-radius:12px;padding:0 20px 0 16px;margin-bottom:10px}
.ts summary{cursor:pointer;padding:14px 0;font-weight:600;color:var(--navy);list-style:none;display:flex;align-items:center;gap:12px}
.ts summary svg{width:32px;height:32px;flex:none}
.ts summary::after{content:'+';color:var(--teal-dark);font-size:20px;margin-left:auto}
.ts details[open] summary::after{content:'−'}
.ts details p{margin:0 0 16px 44px;color:var(--text-light)}
.ts .news{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.ts .news a{display:block;border:1px solid var(--border);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--navy);background:#fff;transition:transform .25s ease,box-shadow .25s ease}
.ts .news a:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(26,39,68,.14)}
.ts .news img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.ts .news .nb{display:block;padding:14px 16px 18px}
.ts .news small{display:block;color:var(--teal-dark);font-size:14px;letter-spacing:.04em;margin-bottom:6px}
.ts .news b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:16px;font-weight:600;line-height:1.7}
@media (prefers-reduced-motion:reduce){
.ts .news a{transition:none}
}
.ts .finale{background:var(--navy);color:#fff;padding:104px 0 80px;clip-path:polygon(0 56px,100% 0,100% 100%,0 100%);border-bottom-right-radius:0}
.ts .finale .inner{display:grid;grid-template-columns:auto auto;gap:clamp(64px,9vw,140px);align-items:center;justify-content:center}
.ts .finale .inner > div{max-width:620px}
.ts .finale .btns2{justify-content:flex-start}
.ts .fears{display:flex;gap:18px;list-style:none;margin:0;padding:0;justify-content:flex-start;align-items:flex-start;height:auto}
.ts .tcy{text-orientation:upright}
.ts .fears li{writing-mode:vertical-rl;white-space:nowrap;font-family:var(--serif);font-size:18px;letter-spacing:.18em;color:#fff;border-left:1px solid rgba(130,216,208,.5);padding:8px 4px 8px 12px;line-height:1.2}
.ts .finale h2{color:#fff;font-size:clamp(26px,2.8vw,38px)}
.ts .finale h2 em{font-style:normal;color:var(--teal);text-decoration:underline wavy var(--teal);text-decoration-thickness:2px;text-underline-offset:8px}
.ts .finale p{color:rgba(255,255,255,.85);margin:0 0 16px}
.ts .finale .btns2 a.p{background:var(--teal);border-color:var(--teal);color:var(--navy)}
.ts .finale .btns2 a.s{background:transparent;color:#fff;border-color:rgba(255,255,255,.5)}
.ts .finale .note{font-size:15px;color:rgba(255,255,255,.75);margin-top:16px}
.ts .finale .u{display:inline-block}
.ts .finale .jou{font-family:var(--serif);color:var(--teal);font-size:17px;line-height:1.9;margin:0 0 22px}
.ts .past{margin:24px 0 0;font-size:15px;color:var(--text-light)}
.ts .past span{display:inline-block;font-size:14px;letter-spacing:.12em;color:var(--teal-dark);margin-right:12px}
.ts footer.ft{background:#111d35;color:#fff;padding:56px 0 24px}
.ts footer.ft .inner{display:grid;grid-template-columns:1.1fr 1.2fr .9fr;gap:40px;align-items:start}
.ts .ft-logo{font-family:var(--serif);font-size:22px;font-weight:700;color:#fff;margin:0 0 10px;line-height:1.3}
.ts .ft-logo span{color:var(--teal)}
.ts .ft-tag{font-size:15px;color:rgba(255,255,255,.85);font-weight:300;margin:0}
.ts .ft-tag-main{font-size:17px;font-weight:700;letter-spacing:.1em;margin:8px 0 0;color:#fff}
.ts .ft-note{display:inline-flex;flex-direction:column;gap:3px;white-space:nowrap;margin-top:22px;padding:10px 16px 11px;border:1px solid rgba(255,255,255,.28);border-radius:8px;color:#fff;text-decoration:none}
.ts .ft-note-k{font-size:13px;letter-spacing:.1em;color:var(--teal)}
.ts .ft-note-t{font-size:15px;font-weight:600}
.ts .ft-note i{font-style:normal;color:var(--teal)}
.ts .ft-note:hover{border-color:var(--teal)}
.ts .ft-links{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;padding-top:6px}
.ts .ft-links a{color:#fff;text-decoration:none;font-size:14px;padding:4px 0;font-weight:300;line-height:1.7;white-space:nowrap}
.ts .ft-links a:hover{color:var(--teal)}
.ts .ft-legal{padding-top:6px}
.ts .ft-legal a{display:block;color:#fff;text-decoration:none;font-size:14px;line-height:2.1;font-weight:300}
.ts .ft-legal a:hover{color:var(--teal)}
.ts .ft-co{border-top:1px solid rgba(255,255,255,.15);margin-top:16px;padding-top:16px;font-size:14px;color:rgba(255,255,255,.7);line-height:1.8}
.ts .ft-co b{display:block;font-size:15px;color:rgba(255,255,255,.92);font-weight:500}
.ts .ft-bottom{border-top:1px solid rgba(255,255,255,.07);margin-top:40px;padding-top:20px;font-size:14px;text-align:center;color:rgba(255,255,255,.5)}
@media (max-width:860px){
.ts .inner{padding:0 20px}
.ts section{padding:60px 0}
.ts .en{font-size:44px;margin-bottom:-10px}
.ts .worries{padding:80px 0 76px;clip-path:polygon(0 28px,100% 0,100% calc(100% - 28px),0 100%)}
.ts .wlist{grid-template-columns:1fr}
.ts .row{grid-template-columns:56px 1fr;gap:12px}
.ts .row p{grid-column:2}
.ts .pgrid, .ts .nums, .ts .phil, .ts .news{grid-template-columns:1fr}
.ts .lgrid{grid-template-columns:repeat(2,1fr)}
.ts .btns2{flex-direction:column}
.ts .band-photo{height:260px}
.ts .finale{padding:80px 0 64px;clip-path:polygon(0 28px,100% 0,100% 100%,0 100%)}
.ts .finale .inner{grid-template-columns:minmax(0,1fr);justify-content:stretch}
.ts .finale .inner > div{max-width:none}
.ts .fears{gap:10px 12px;flex-wrap:wrap;justify-content:center}
.ts .fears li{font-size:15px !important;line-height:1.2 !important;padding:6px 3px 6px 9px} /* main.css のスマホ用 li 行間2.2!important を打ち消す（縦書きでは行間＝列の幅） */
.ts footer.ft .inner{grid-template-columns:1fr;gap:28px}
.ts .ft-links{grid-template-columns:1fr 1fr}
}

/* スマホ幅: 本番CSSの中央揃え（見出し・項目）を打ち消す。締めの一言と補足だけ中央 */
@media (max-width:860px){
  .ts section :is(h2,p,li,.lab,.en,b,small){text-align:left !important}
  .ts section p.wcatch,.ts section p.wsub,.ts section li.trust-c,.ts section p.note{text-align:center !important}
  .ts .lab{justify-content:flex-start}
}
