/* トップページの柔らかい版（2026-10-10）。生成元: _server/build_top_css.py（手で編集しない）
   スコープ: body.kst-soft.home。site.css の上に重ねる。マークアップは front-page.php のまま。 */
.kst-soft.home{--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)}

/* ---- ヘッダーをヒーローに重ねて浮かせる ---- */
.kst-soft.home .site-header{margin-bottom:-96px}
.kst-soft.home .hero.hero-brand .hero-inner{padding-top:176px}
@media (max-width:767px){.kst-soft.home .site-header{margin-bottom:-104px}.kst-soft.home .hero.hero-brand .hero-inner{padding-top:168px}}

/* ---- ヒーロー: 紺のまま、角の硬さを取り、ゆるい形の光と波で受ける ---- */
.kst-soft.home .hero.hero-brand{background:radial-gradient(120% 90% at 85% 10%,rgba(192,153,51,.22) 0%,rgba(192,153,51,0) 50%),radial-gradient(90% 80% at 0% 100%,rgba(79,140,180,.28) 0%,rgba(79,140,180,0) 55%),linear-gradient(160deg,#1c3260 0%,#16264b 60%,#132043 100%)}
.kst-soft.home .hero.hero-brand .hero-bg{background:none}
.kst-soft.home .hero.hero-brand::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:1;pointer-events:none}
.kst-soft.home .hero-kicker{font-family:var(--kst-font-soft);text-transform:none;letter-spacing:.14em;font-size:13px}
.kst-soft.home .hero-gold-rule{width:14px;height:14px;border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;background:var(--gold,#c09933);transform:rotate(-14deg);margin:0 0 22px}
.kst-soft.home .hero.hero-brand h1{font-family:var(--kst-font-soft);font-weight:700;line-height:1.38;letter-spacing:.01em}
.kst-soft.home .hero-name{font-family:var(--kst-font-soft);font-weight:700}
.kst-soft.home .hero-lead{font-weight:500;color:rgba(255,255,255,.9)}
.kst-soft.home .hero-visual img{border-radius:34px 20px 30px 26px / 26px 34px 20px 30px;box-shadow:0 24px 60px rgba(0,0,0,.28)}
.kst-soft.home .hero-visual::after{content:"";position:absolute;right:-40px;bottom:-44px;width:52%;height:58%;border:0;border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;background:radial-gradient(closest-side,rgba(192,153,51,.30),rgba(192,153,51,0));filter:blur(6px);transform:rotate(12deg);z-index:-1;display:block}
.kst-soft.home .hero-visual::before{content:"";position:absolute;left:-44px;top:-40px;width:34%;height:38%;border-radius:48% 52% 55% 45% / 52% 44% 56% 48%;background:radial-gradient(closest-side,rgba(120,170,200,.28),rgba(120,170,200,0));filter:blur(6px);transform:rotate(-16deg);z-index:-1}
.kst-soft.home .hero-visual figcaption{font-family:var(--kst-font-soft);padding-left:1.1rem;position:relative}
.kst-soft.home .hero-visual figcaption::before{content:"";position:absolute;left:0;top:.5em;width:.5rem;height:.5rem;border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;background:var(--gold,#c09933)}
@media (max-width:767px){.kst-soft.home .hero-visual::after{display:block;right:-10px;bottom:-14px}.kst-soft.home .hero-visual::before{display:none}}

/* ---- セクション共通: 見出しは丸ゴシック＋揺れる下線（中央） ---- */
.kst-soft.home .section-kicker{font-family:var(--kst-font-soft);text-transform:none;letter-spacing:.14em;font-size:13px}
.kst-soft.home :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.home :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.home .copy-block h2::after{left:.1em;margin-left:0}
.kst-soft.home .center-head p{color:var(--muted,#657084)}
@media (max-width:767px){.kst-soft.home :is(.section-head,.center-head,.copy-block,.links-inner) h2{font-size:25px}.kst-soft.home .copy-block h2::after{left:50%;margin-left:-3.5rem}}

/* ---- 三つの約束: 枠線なし・淡い面3色・角の丸さ不揃い・番号は手描き風の丸 ---- */
.kst-soft.home .concept-section{background:linear-gradient(180deg,#fff 0%,var(--paper,#f8f7f2) 100%);position:relative}
.kst-soft.home .promise-card{position:relative;border:0;padding:30px 26px 28px;box-shadow:var(--kst-shadow);transition:transform .35s ease,box-shadow .35s ease}
.kst-soft.home .promise-card:hover{transform:translateY(-3px);box-shadow:var(--kst-shadow-hover)}
.kst-soft.home .promise-card:nth-child(1){background:var(--gold-soft,#f0e4c7);border-radius:18px 28px 16px 26px / 26px 18px 28px 16px}
.kst-soft.home .promise-card:nth-child(2){background:var(--kst-warm);border-radius:26px 16px 28px 18px / 18px 26px 16px 28px}
.kst-soft.home .promise-card:nth-child(3){background:var(--kst-sage);border-radius:16px 26px 18px 28px / 28px 16px 26px 18px}
.kst-soft.home .promise-card .promise-no{display:inline-grid;place-items:center;width:2.2rem;height:2.2rem;background:#fff;border-radius:50% 46% 54% 50% / 48% 52% 48% 52%;box-shadow:0 2px 8px rgba(35,59,108,.08);font-family:var(--kst-font-soft);font-size:.95rem;letter-spacing:0;color:#8a6d1e}
.kst-soft.home .promise-card h3{font-family:var(--kst-font-soft);margin-top:14px}

/* ---- 店舗一覧: 枠線なし・影・写真の角を不揃いに・チップを柔らかく ---- */
.kst-soft.home .store-card{border:0;border-radius:28px 18px 24px 20px / 20px 26px 18px 28px;box-shadow:var(--kst-shadow);transition:transform .35s ease,box-shadow .35s ease}
.kst-soft.home .store-card:nth-child(2){border-radius:18px 28px 20px 24px / 26px 20px 28px 18px}
.kst-soft.home .store-card:hover{transform:translateY(-3px);box-shadow:var(--kst-shadow-hover);border-color:transparent}
.kst-soft.home .store-card .store-photo{margin:14px 0 14px 14px;border-radius:22px 14px 20px 16px / 16px 22px 14px 20px;overflow:hidden;background:var(--kst-sage)}
.kst-soft.home .store-card .store-photo img{transition:transform .8s ease}
.kst-soft.home .store-card:hover .store-photo img{transform:scale(1.03)}
.kst-soft.home .store-card .store-tag{font-family:var(--kst-font-soft);letter-spacing:.14em}
.kst-soft.home .store-card h3{font-family:var(--kst-font-soft)}
.kst-soft.home .store-card .store-meta span{background:var(--paper,#f8f7f2);border-radius:999px;padding:6px 12px}
.kst-soft.home .store-card .store-meta span:nth-child(2n){background:var(--mist,#eef3f5)}
.kst-soft.home .store-card .store-link{font-family:var(--kst-font-soft);border-bottom:1px dashed rgba(192,153,51,.7)}
.kst-soft.home .store-coming{border:0;background:var(--paper,#f8f7f2);border-radius:20px 26px 18px 24px / 24px 18px 26px 20px;color:var(--muted,#657084);position:relative;padding-left:52px}
.kst-soft.home .store-coming::before{content:"";position:absolute;left:20px;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;background:var(--gold-soft,#f0e4c7);transform:rotate(-12deg)}
@media (max-width:767px){.kst-soft.home .store-card .store-photo{margin:14px 14px 0}}

/* ---- 運営: 霧色の面に波で入り、写真の角を不揃いに、注記は面に ---- */
.kst-soft.home .philosophy-section{position:relative;background:var(--mist,#eef3f5)}
.kst-soft.home .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.home .philosophy-section::after{content:"";position:absolute;right:-6%;top:12%;width:22vw;max-width:320px;aspect-ratio:1;border-radius:52% 48% 44% 56% / 46% 54% 46% 54%;background:rgba(255,255,255,.55);transform:rotate(18deg);pointer-events:none}
.kst-soft.home .philosophy-section .section-inner{position:relative;z-index:1}
.kst-soft.home .image-frame{border-radius:34px 20px 30px 26px / 26px 34px 20px 30px;box-shadow:var(--kst-shadow)}
.kst-soft.home .parent-note{border:0;border-radius:18px 24px 16px 22px / 22px 16px 24px 18px;box-shadow:var(--kst-shadow);position:relative;padding-left:48px}
.kst-soft.home .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.home .parent-note a{color:var(--navy,#233b6c);border-bottom:1px dashed rgba(192,153,51,.7);text-decoration:none}

/* ---- 医療者向け: 紺のまま、上端に波、カードは枠なし・不揃いの角 ---- */
.kst-soft.home .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;padding-top:88px}
.kst-soft.home .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%2026%20C%20120%206%2C%20240%2040%2C%20380%2022%20S%20640%204%2C%20800%2024%20S%201060%2040%2C%201200%2018%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.home .links-inner h2::after{left:.1em;margin-left:0}
.kst-soft.home .audience-card{border:0;border-radius:26px 18px 24px 20px / 20px 26px 18px 24px;box-shadow:0 16px 40px rgba(0,0,0,.18);transition:transform .35s ease}
.kst-soft.home .audience-card:nth-child(2){border-radius:18px 26px 20px 24px / 24px 20px 26px 18px}
.kst-soft.home .audience-card:hover{transform:translateY(-3px)}
.kst-soft.home .audience-card h3{font-family:var(--kst-font-soft);position:relative;padding-left:1.2rem}
.kst-soft.home .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)}
@media (max-width:767px){.kst-soft.home .links-inner h2::after{left:50%;margin-left:-3.5rem}.kst-soft.home .links-section{padding-top:72px}}

/* キッカー（見出し上の英語）は左からすっと現れて文字間が開く */
.kst-js .kst-soft.home :is(.section-kicker,.hero-kicker){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.home :is(.section-kicker,.hero-kicker).is-in{opacity:1;transform:none;letter-spacing:.14em}
/* 見出し線は、画面に入った時に先頭から文末へ一度だけ伸びる（JSが is-in を付ける。JSなしなら最初から全部出る） */
.kst-js .kst-soft.home :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.home :is(.section-head,.center-head,.copy-block,.links-inner) h2.is-in::after{transform:scaleX(1)}
/* ---- 出現（parts.js が .kst-rv を付ける） ---- */
.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.home :is(.section-kicker,.hero-kicker){opacity:1;transform:none;letter-spacing:.14em;transition:none}.kst-js .kst-rv{opacity:1;transform:none;transition:none}.kst-soft.home :is(.promise-card,.store-card,.audience-card,.store-card .store-photo img){transition:none}}
