/* LP共通の柔らかい版（2026-10-10）。生成元: _server/build_lp_css.py（手で編集しない）
   スコープ: body.kst-soft.lp-page（トップ・店舗LP・採用LP）。トップ固有は top-soft.css。 */
.kst-soft.lp-page{--kst-font-soft:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Rounded Mplus 1c",sans-serif;--kst-warm:#fbf1e8;--kst-sage:#eaf2ec;--kst-shadow:0 10px 30px rgba(35,59,108,.08);--kst-shadow-hover:0 16px 36px rgba(35,59,108,.12)}

/* ---- ヘッダーの上の白帯を消す（本体背景の上端を紺に）＋ヘッダーをヒーローに重ねる ---- */
body.kst-soft.lp-page{background:#fff linear-gradient(180deg,#16264b 0,#16264b 180px,rgba(255,255,255,0) 180px) no-repeat top / 100% 100%}
.kst-soft.lp-page .site-header{margin-bottom:-96px}
.kst-soft.lp-page .hero .hero-inner{padding-top:172px}
@media (max-width:767px){.kst-soft.lp-page .site-header{margin-bottom:-104px}.kst-soft.lp-page .hero .hero-inner{padding-top:158px}.kst-soft.lp-page .hero h1{font-size:30px;max-width:none;line-height:1.42}}

/* ---- ヒーロー（写真あり）: 角の硬さを取り、下端を白い波で受ける ---- */
.kst-soft.lp-page .hero{background:#16264b}
.kst-soft.lp-page .hero::before{background:linear-gradient(100deg,rgba(14,24,48,.92) 0%,rgba(18,34,66,.78) 45%,rgba(22,38,75,.42) 75%,rgba(22,38,75,.3) 100%)}
.kst-soft.lp-page .hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:40px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201200%2040%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M0%2024%20C%20140%204%2C%20260%2040%2C%20420%2020%20S%20700%202%2C%20860%2024%20S%201080%2040%2C%201200%2016%20L1200%2040%20L0%2040%20Z%22%20fill%3D%22%23ffffff%22%2F%3E%3C%2Fsvg%3E") no-repeat center bottom / 100% 100%;z-index:2;pointer-events:none}
.kst-soft.lp-page .hero-kicker,.kst-soft.lp-page .section-kicker,.kst-soft.lp-page .status-label{font-family:var(--kst-font-soft);text-transform:none;letter-spacing:.14em;font-size:13px}
.kst-soft.lp-page .hero h1{font-family:var(--kst-font-soft);font-weight:700;line-height:1.38;letter-spacing:.01em}
.kst-soft.lp-page .hero-name{font-family:var(--kst-font-soft);font-weight:700}
.kst-soft.lp-page .hero-lead{font-weight:500}
.kst-soft.lp-page .hero-tags span,.kst-soft.lp-page .hero-tags a{border:0;border-radius:999px;background:rgba(255,255,255,.14);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28);font-family:var(--kst-font-soft);font-weight:700}

/* ---- 帯（intro-band）: 硬い紺の帯を、丸い面のチップに ---- */
.kst-soft.lp-page .intro-band{background:transparent;color:var(--ink,#1c2432)}
.kst-soft.lp-page .intro-band-inner{margin-top:-8px;padding:20px 26px;background:var(--mist,#eef3f5);border-radius:28px 18px 24px 20px / 20px 26px 18px 28px;box-shadow:var(--kst-shadow)}
.kst-soft.lp-page .intro-band .status-label{color:var(--navy,#233b6c)}

/* ---- セクション見出し: 丸ゴシック＋揺れる下線 ---- */
.kst-soft.lp-page :is(.section-head,.center-head,.copy-block,.links-inner) h2{font-family:var(--kst-font-soft);font-weight:700;font-size:34px;line-height:1.45;letter-spacing:.01em;position:relative;padding-bottom:.55em}
.kst-soft.lp-page :is(.section-head,.center-head,.copy-block,.links-inner) h2::after{content:"";position:absolute;left:50%;bottom:0;width:7rem;height:12px;margin-left:-3.5rem;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20120%2012%22%20preserveAspectRatio%3D%22none%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20d%3D%22M0%206%20C%2012%201.5%2C%2048%201.5%2C%2060%206%20S%20108%2010.5%2C%20120%206%22%20stroke%3D%22%23c09933%22%20stroke-width%3D%222.4%22%2F%3E%3Cpath%20d%3D%22M-10%207%20C%202%202.5%2C%2038%202.5%2C%2050%207%20S%2098%2011.5%2C%20110%207%20S%20122%202.5%2C%20130%207%22%20stroke%3D%22%23c09933%22%20stroke-width%3D%221.1%22%20opacity%3D%22.4%22%2F%3E%3C%2Fsvg%3E") repeat-x 0 0 / 120px 12px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.kst-soft.lp-page :is(.copy-block,.links-inner,.section-head:not(.center-head)) h2::after{left:.1em;margin-left:0}
.kst-soft.lp-page .center-head h2::after{left:50%;margin-left:-3.5rem}
.kst-soft.lp-page .center-head p,.kst-soft.lp-page .copy-block p{color:var(--muted,#657084)}
.kst-soft.lp-page .concept-section{background:linear-gradient(180deg,#fff 0%,var(--paper,#f8f7f2) 100%)}
@media (max-width:767px){.kst-soft.lp-page :is(.section-head,.center-head,.copy-block,.links-inner) h2{font-size:25px}.kst-soft.lp-page :is(.section-head,.center-head,.copy-block,.links-inner) h2::after{left:50%;margin-left:-3.5rem}}

/* ---- 役割カード（こんな方に／環境）: 枠なし・淡い面4色・アイコンは白いしずく ---- */
.kst-soft.lp-page .role-card{border:0;box-shadow:var(--kst-shadow);transition:transform .35s ease,box-shadow .35s ease}
.kst-soft.lp-page .role-card:hover{transform:translateY(-3px);box-shadow:var(--kst-shadow-hover)}
.kst-soft.lp-page .role-card:nth-child(4n+1){background:var(--gold-soft,#f0e4c7);border-radius:26px 16px 24px 18px / 18px 26px 16px 24px}
.kst-soft.lp-page .role-card:nth-child(4n+2){background:var(--kst-warm);border-radius:16px 26px 18px 24px / 24px 18px 26px 16px}
.kst-soft.lp-page .role-card:nth-child(4n+3){background:var(--kst-sage);border-radius:28px 18px 24px 20px / 20px 26px 18px 28px}
.kst-soft.lp-page .role-card:nth-child(4n+4){background:var(--mist,#eef3f5);border-radius:26px 16px 24px 18px / 18px 26px 16px 24px}
.kst-soft.lp-page .role-icon{border:0;border-radius:50% 46% 54% 50% / 48% 52% 48% 52%;box-shadow:0 2px 8px rgba(35,59,108,.08)}
.kst-soft.lp-page .role-number{font-family:var(--kst-font-soft);letter-spacing:.1em}
.kst-soft.lp-page .role-card h3{font-family:var(--kst-font-soft)}
.kst-soft.lp-page .role-card p{color:var(--ink,#1c2432)}

/* ---- 施術の流れ: 手描き風の番号＋点線で順番をつなぐ ---- */
.kst-soft.lp-page .flow-list{position:relative}
.kst-soft.lp-page .flow-list::before{content:"";position:absolute;left:46px;top:28px;bottom:28px;border-left:2px dashed rgba(192,153,51,.55)}
.kst-soft.lp-page .flow-list li{position:relative;border:0;box-shadow:var(--kst-shadow);border-radius:26px 16px 24px 18px / 18px 26px 16px 24px;transition:transform .35s ease,box-shadow .35s ease}
.kst-soft.lp-page .flow-list li:nth-child(2n){border-radius:16px 26px 18px 24px / 24px 18px 26px 16px}
.kst-soft.lp-page .flow-list li:hover{transform:translateY(-2px);box-shadow:var(--kst-shadow-hover)}
.kst-soft.lp-page .flow-list .flow-no{display:grid;place-items:center;width:2.2rem;height:2.2rem;background:var(--gold-soft,#f0e4c7);color:#8a6d1e;border-radius:50% 46% 54% 50% / 48% 52% 48% 52%;font-family:var(--kst-font-soft);font-size:1rem;box-shadow:0 2px 6px rgba(35,59,108,.08)}
.kst-soft.lp-page .flow-list h3{font-family:var(--kst-font-soft)}
.kst-soft.lp-page .flow-photos img{border-radius:28px 18px 24px 20px / 20px 26px 18px 28px;box-shadow:var(--kst-shadow)}
.kst-soft.lp-page .flow-photos figure:nth-child(2) img{border-radius:16px 26px 18px 24px / 24px 18px 26px 16px}
.kst-soft.lp-page .flow-photos figcaption{font-family:var(--kst-font-soft);color:var(--muted,#657084)}
@media (max-width:767px){.kst-soft.lp-page .flow-list::before{left:38px}}

/* ---- 基本情報・募集要項（status-row）: 罫線をやめて交互の面に ---- */
.kst-soft.lp-page .status-list{border-top:0;overflow:visible;display:grid;gap:8px}
.kst-soft.lp-page .status-row{border-bottom:0;padding:16px 20px;background:var(--paper,#f8f7f2);border-radius:26px 16px 24px 18px / 18px 26px 16px 24px}
.kst-soft.lp-page .status-row:nth-child(2n){background:var(--mist,#eef3f5);border-radius:16px 26px 18px 24px / 24px 18px 26px 16px}
.kst-soft.lp-page .status-row > span{font-family:var(--kst-font-soft);color:var(--navy,#233b6c)}
.kst-soft.lp-page .clinic-table .status-list{gap:8px}

/* ---- アクセス: 写真・地図・詳細の角を不揃いに、紺の箱は影で ---- */
.kst-soft.lp-page .photo-panel,.kst-soft.lp-page .map-panel,.kst-soft.lp-page .image-frame{border-radius:34px 20px 30px 26px / 26px 34px 20px 30px;box-shadow:var(--kst-shadow)}
.kst-soft.lp-page .map-panel{border-radius:16px 26px 18px 24px / 24px 18px 26px 16px;box-shadow:var(--kst-shadow)}
.kst-soft.lp-page .google-map-panel{border-radius:28px 18px 24px 20px / 20px 26px 18px 28px;overflow:hidden;box-shadow:var(--kst-shadow)}
.kst-soft.lp-page .access-details{border-radius:28px 18px 24px 20px / 20px 26px 18px 28px;box-shadow:0 16px 40px rgba(22,38,75,.22);background:linear-gradient(160deg,#27427a,#16264b)}
.kst-soft.lp-page .access-details dt{font-family:var(--kst-font-soft);position:relative;padding-left:1rem}
.kst-soft.lp-page .access-details dt::before{content:"";position:absolute;left:0;top:.45em;width:.45rem;height:.45rem;border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;background:var(--gold,#c09933)}

/* ---- 運営・紹介（philosophy）: 霧色に波で入る、注記は面に ---- */
.kst-soft.lp-page .philosophy-section{position:relative;background:var(--mist,#eef3f5)}
.kst-soft.lp-page .philosophy-section::before{content:"";position:absolute;left:0;right:0;top:-38px;height:40px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201200%2040%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M0%2022%20C%20160%2040%2C%20300%204%2C%20480%2024%20S%20760%2040%2C%20920%2018%20S%201120%202%2C%201200%2022%20L1200%2040%20L0%2040%20Z%22%20fill%3D%22%23eef3f5%22%2F%3E%3C%2Fsvg%3E") no-repeat center bottom / 100% 100%;pointer-events:none}
.kst-soft.lp-page .philosophy-section .section-inner{position:relative;z-index:1}
.kst-soft.lp-page .parent-note{border:0;border-radius:26px 16px 24px 18px / 18px 26px 16px 24px;box-shadow:var(--kst-shadow);position:relative;padding-left:48px}
.kst-soft.lp-page .parent-note::before{content:"";position:absolute;left:18px;top:20px;width:14px;height:14px;border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;background:var(--gold,#c09933);transform:rotate(-12deg)}
.kst-soft.lp-page .parent-note a{color:var(--navy,#233b6c);border-bottom:1px dashed rgba(192,153,51,.7);text-decoration:none}

/* ---- 求める人（want-list）・募集の面 ---- */
.kst-soft.lp-page .want-list li{border:0;box-shadow:var(--kst-shadow);border-radius:26px 16px 24px 18px / 18px 26px 16px 24px;position:relative;padding-left:52px;font-family:var(--kst-font-soft)}
.kst-soft.lp-page .want-list li:nth-child(2n){background:var(--mist,#eef3f5);border-radius:16px 26px 18px 24px / 24px 18px 26px 16px}
.kst-soft.lp-page .want-list li::before{content:"";position:absolute;left:20px;top:50%;width:14px;height:14px;margin-top:-7px;border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;background:var(--gold,#c09933);transform:rotate(-12deg)}
.kst-soft.lp-page .status-section{background:linear-gradient(180deg,var(--paper,#f8f7f2),#fff)}

/* ---- 医療者向け・関連リンク（紺の面）: 波で入る、カード枠なし、リンクは丸い面 ---- */
.kst-soft.lp-page .links-section{position:relative;background:radial-gradient(80% 70% at 100% 0%,rgba(192,153,51,.16) 0%,rgba(192,153,51,0) 55%),#16264b}
.kst-soft.lp-page .links-section:not(.links-section + .links-section){padding-top:88px}
.kst-soft.lp-page .links-section:not(.links-section + .links-section)::before{content:"";position:absolute;left:0;right:0;top:-38px;height:40px;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201200%2040%22%20preserveAspectRatio%3D%22none%22%3E%3Cpath%20d%3D%22M0%2024%20C%20140%204%2C%20260%2040%2C%20420%2020%20S%20700%202%2C%20860%2024%20S%201080%2040%2C%201200%2016%20L1200%2040%20L0%2040%20Z%22%20fill%3D%22%2316264b%22%2F%3E%3C%2Fsvg%3E") no-repeat center bottom / 100% 100%;pointer-events:none}
.kst-soft.lp-page .links-section + .links-section{padding-top:0}
.kst-soft.lp-page .links-inner h2::after{left:.1em;margin-left:0}
.kst-soft.lp-page .audience-card{border:0;border-radius:28px 18px 24px 20px / 20px 26px 18px 28px;box-shadow:0 16px 40px rgba(0,0,0,.18);transition:transform .35s ease}
.kst-soft.lp-page .audience-card:nth-child(2){border-radius:16px 26px 18px 24px / 24px 18px 26px 16px}
.kst-soft.lp-page .audience-card:hover{transform:translateY(-3px)}
.kst-soft.lp-page .audience-card h3{font-family:var(--kst-font-soft);position:relative;padding-left:1.2rem}
.kst-soft.lp-page .audience-card h3::before{content:"";position:absolute;left:0;top:.55em;width:.65rem;height:.65rem;border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;background:var(--gold,#c09933);transform:rotate(-12deg)}
.kst-soft.lp-page .link-list a{border:0;border-radius:26px 16px 24px 18px / 18px 26px 16px 24px;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);font-family:var(--kst-font-soft);font-weight:700;transition:transform .25s ease,background .25s ease}
.kst-soft.lp-page .link-list li:nth-child(2n) a{border-radius:16px 26px 18px 24px / 24px 18px 26px 16px}
.kst-soft.lp-page .link-list a:hover{background:rgba(255,255,255,.18);transform:translateX(4px);border-color:transparent}
@media (max-width:767px){.kst-soft.lp-page .links-inner h2::after{left:50%;margin-left:-3.5rem}.kst-soft.lp-page .links-section:not(.links-section + .links-section){padding-top:72px}}

/* キッカー（見出し上の英語）は左からすっと現れて文字間が開く */
.kst-js .kst-soft.lp-page :is(.section-kicker,.hero-kicker,.status-label){opacity:0;transform:translateX(-10px);letter-spacing:.02em;transition:opacity .8s ease-out .25s,transform .8s cubic-bezier(.2,.7,.2,1) .25s,letter-spacing 1.1s cubic-bezier(.2,.7,.2,1) .25s}
.kst-js .kst-soft.lp-page :is(.section-kicker,.hero-kicker,.status-label).is-in{opacity:1;transform:none;letter-spacing:.14em}
/* 見出し線は、画面に入った時に先頭から文末へ一度だけ伸びる（JSが is-in を付ける。JSなしなら最初から全部出る） */
.kst-js .kst-soft.lp-page :is(.section-head,.center-head,.copy-block,.links-inner) h2::after{transform:scaleX(0);transform-origin:0 50%;transition:transform 1.2s cubic-bezier(.2,.7,.2,1) .7s}
.kst-js .kst-soft.lp-page :is(.section-head,.center-head,.copy-block,.links-inner) h2.is-in::after{transform:scaleX(1)}
/* ---- 出現 ---- */
.kst-js .kst-rv{opacity:0;transform:translateY(12px);transition:opacity .6s ease-out,transform .6s ease-out}
.kst-js .kst-rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.kst-soft :is(.section-head,.center-head,.copy-block,.links-inner) h2::after{animation:none;transform:none;transition:none}.kst-js .kst-soft.lp-page :is(.section-kicker,.hero-kicker,.status-label){opacity:1;transform:none;letter-spacing:.14em;transition:none}.kst-js .kst-rv{opacity:1;transform:none;transition:none}.kst-soft.lp-page :is(.role-card,.flow-list li,.audience-card,.link-list a){transition:none}}
