/* 俺のコンパニオン 全ページ共通の見た目（D案：白ベース＋朱色・ピンク、丸ゴシック、カード型） */
:root{--shu:#e2462b;--pink:#e5317a;--pink-d:#c21f63;--soft:#fff0f4;--cream:#fff8f1;--ink:#2b2226;--mute:#6f5f66;--bd:#f1dfe5;--line:#06c755;--dark:#3a1a24}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{margin:0;background:#fff;color:var(--ink);font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans","Meiryo",sans-serif;font-size:17px;line-height:1.75;overflow-wrap:anywhere}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
table{border-collapse:collapse;width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.ttl{font-weight:900;letter-spacing:.03em}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px;z-index:200}
.skip:focus{left:8px}
.check{background:#fff3b0;color:#7a4b00;font-weight:700;border-radius:4px;padding:0 4px}

/* ヘッダー（上に固定） */
.hd{position:sticky;top:0;z-index:90;background:#fffffff2;backdrop-filter:blur(6px);border-bottom:3px solid var(--pink)}
.hd-in{display:flex;align-items:center;gap:14px;height:66px}
.hd-logo{flex:none}
.hd-logo img{height:42px;width:auto}
.hd-nav{display:flex;gap:14px;font-size:15px;font-weight:700;margin-right:auto}
.hd-nav a{text-decoration:none;white-space:nowrap}
.hd-nav a:hover,.hd-nav a[aria-current=page]{color:var(--pink)}
.hd-tel{text-decoration:none;background:var(--shu);color:#fff;padding:5px 14px;border-radius:30px;line-height:1.15;text-align:center;white-space:nowrap}
.hd-tel b{display:block;font-size:19px}
.hd-tel small{font-size:11px}
.btn-line{background:var(--line);color:#fff}
.hd-btn{padding:9px 15px;border-radius:30px;text-decoration:none;font-weight:700;font-size:15px;white-space:nowrap}
.hd-form{background:var(--pink);color:#fff}
.spnav{display:none;margin-left:auto}
.spnav summary{list-style:none;cursor:pointer;font-weight:700;font-size:14px;border:2px solid var(--pink);color:var(--pink);border-radius:30px;padding:4px 14px}
.spnav summary::-webkit-details-marker{display:none}
.spnav[open] summary{background:var(--pink);color:#fff}
.spnav nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:3px solid var(--pink);box-shadow:0 10px 20px #0002;padding:8px 16px 16px;display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;max-height:calc(100vh - 120px);overflow:auto}
.spnav nav a{display:block;padding:9px 4px;border-bottom:1px solid var(--bd);text-decoration:none;font-weight:700;font-size:15.5px}

/* パンくず・下層ページの見出し */
.crumb{font-size:13.5px;color:var(--mute);padding:10px 0 0}
.crumb ol{display:flex;flex-wrap:wrap;gap:4px}
.crumb li+li::before{content:"›";margin-right:4px}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--pink)}
.phead{background:linear-gradient(180deg,var(--soft),#fff);padding:6px 0 22px}
.phead h1{font-size:32px;font-weight:900;line-height:1.4;margin-top:12px}
.phead p{color:var(--mute);margin-top:6px;max-width:860px}

/* トップの最初の画面：大きい写真＋左下に白い札 */
.hero{position:relative;background:var(--soft)}
.hero-ph img{width:100%;height:min(66vh,560px);object-fit:cover;object-position:center 30%}
.hero-card-wrap{position:relative;margin-top:-190px;z-index:2}
.hero-card{width:min(640px,100%);background:#fff;border-radius:20px;padding:24px 28px;box-shadow:0 12px 32px #7a12363a;border-top:6px solid var(--pink)}
.pill{display:inline-block;background:var(--pink);color:#fff;padding:3px 14px;border-radius:30px;font-weight:700;font-size:15px}
.hero h1{font-size:34px;line-height:1.4;margin:10px 0 8px;font-weight:900}
.hero h1 em{font-style:normal;color:var(--pink)}
.hero-lead{font-size:16.5px}
.keys{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.key{background:var(--soft);border-radius:12px;padding:8px 6px;text-align:center}
.key small{display:block;font-size:12.5px;color:var(--mute);line-height:1.4}
.key b{font-size:19px;line-height:1.3;color:var(--shu)}
.camp{background:repeating-linear-gradient(45deg,var(--shu),var(--shu) 14px,#e85a40 14px,#e85a40 28px);color:#fff;text-align:center;font-weight:900;padding:10px 16px;font-size:18px;margin-top:20px}
.camp small{font-size:15px;font-weight:700;margin-left:8px}

/* 本文の土台とカード */
.main{background:var(--cream);padding:8px 0 32px}
.main.white{background:#fff}
.grid{display:grid;gap:14px;padding:12px 0}
.g2{grid-template-columns:1fr 1fr}
.g3{grid-template-columns:repeat(3,1fr)}
.g3w{grid-template-columns:1.15fr 1fr 1fr}
.g4{grid-template-columns:repeat(4,1fr)}
.card{background:#fff;border-radius:18px;padding:20px 22px;display:flex;flex-direction:column;box-shadow:0 4px 14px #e5317a14;min-width:0}
.card+.card,.card+.grid,.grid+.card{margin-top:14px}
.grid+.grid{margin-top:0}
.card h2{font-size:22px;display:flex;align-items:center;gap:8px;margin-bottom:12px;font-weight:900;line-height:1.4}
.card h2 i{font-style:normal;flex:none;width:32px;height:32px;border-radius:50%;background:var(--pink);color:#fff;display:grid;place-items:center;font-size:16px}
.card h3{font-size:18.5px;font-weight:900;color:var(--pink);margin:14px 0 6px;line-height:1.45}
.card h3:first-child{margin-top:0}
.card p+p{margin-top:8px}
.more{margin-top:auto;padding-top:12px;font-weight:700;color:var(--pink);text-decoration:none;font-size:15.5px}
.more:hover{text-decoration:underline}
.big{font-size:44px;font-weight:900;color:var(--shu);line-height:1.1}
.big small{font-size:18px}
.sub{font-size:15px;color:var(--mute)}
.note{font-size:15px;color:var(--mute);margin-top:8px}
.ok{color:var(--shu);font-weight:700}
.rows li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--bd);font-size:16px}
.rows b{white-space:nowrap}
.rows small{font-size:.8em}
.tbl th,.tbl td{border-bottom:1px solid var(--bd);padding:9px 8px;text-align:left;vertical-align:top;font-size:16px}
.tbl th{background:var(--soft);font-weight:700;width:30%}
.tbl td.num{text-align:right;white-space:nowrap;font-weight:700}
.tbl.wide th{width:auto}
.dot li{position:relative;padding-left:1.1em;margin:4px 0}
.dot li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--pink)}
.areas{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.areas a{display:block;text-align:center;border:2px solid var(--pink);color:var(--pink);border-radius:30px;padding:8px 0;font-weight:900;font-size:19px;text-decoration:none}
.areas a:hover{background:var(--pink);color:#fff}
.areas4{grid-template-columns:repeat(4,1fr)}
.stations{display:flex;flex-wrap:wrap;gap:6px}
.stations li{background:var(--soft);border-radius:20px;padding:1px 10px;font-size:14.5px}
.flow{counter-reset:f}
.flow li{counter-increment:f;display:grid;grid-template-columns:28px 1fr;gap:8px;padding:5px 0;font-size:16px;align-items:start}
.flow li::before{content:counter(f);width:26px;height:26px;border-radius:50%;background:var(--pink);color:#fff;font-size:13px;font-weight:900;display:grid;place-items:center;margin-top:2px}
.flow small{color:var(--mute);display:block;font-size:14px;line-height:1.55}
.flow-big{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;counter-reset:f}
.flow-big li{counter-increment:f;background:var(--soft);border-radius:14px;padding:14px}
.flow-big li::before{content:"STEP " counter(f);display:inline-block;background:var(--pink);color:#fff;border-radius:20px;padding:0 10px;font-size:13px;font-weight:900;margin-bottom:6px}
.flow-big h3{margin:0 0 4px;color:var(--ink);font-size:17px}
.flow-big p{font-size:15.5px}
.reasons{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.reasons h3{margin-top:4px}
.reasons.two{grid-template-columns:repeat(2,1fr)}
.flow-big.five{grid-template-columns:repeat(5,1fr)}
.ivs.two{grid-template-columns:repeat(2,1fr)}
.reason-n{display:inline-block;background:var(--shu);color:#fff;border-radius:30px;padding:0 10px;font-size:13px;font-weight:700}
.cancel{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;text-align:center;font-size:14.5px}
.cancel li{background:var(--soft);border-radius:10px;padding:6px 2px}
.cancel b{display:block;font-size:19px;color:var(--shu)}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;text-align:center}
.nums b{font-size:30px;font-weight:900;color:var(--shu)}
.nums small{font-size:13.5px;color:var(--mute);display:block;line-height:1.45}
.scenes{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.scene{position:relative;border-radius:14px;overflow:hidden;text-decoration:none;color:#fff;display:block}
.scene img{aspect-ratio:3/4;object-fit:cover;width:100%;transition:transform .4s}
.scene:hover img{transform:scale(1.05)}
.scene span{position:absolute;left:0;right:0;bottom:0;padding:22px 8px 8px;background:linear-gradient(transparent,#000b);font-weight:700;font-size:15px;text-align:center;line-height:1.4}
.safe{background:var(--soft);border:2px dashed var(--pink);border-radius:12px;padding:8px 14px;font-weight:700;margin-top:12px;font-size:16px}
.faq details{border-bottom:1px solid var(--bd);padding:9px 0}
.faq summary{font-weight:700;cursor:pointer;font-size:16.5px}
.faq summary::marker{color:var(--pink)}
.faq details p{font-size:16px;padding:6px 0 2px}
.media{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:18px;align-items:start}
.media img{border-radius:14px;width:100%;aspect-ratio:3/2;object-fit:cover}
.media.rev{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
.media.rev>:first-child{order:2}
.sc-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.sc-item{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 4px 14px #e5317a14;display:flex;flex-direction:column}
.sc-item img{aspect-ratio:3/2;object-fit:cover;width:100%}
.sc-item div{padding:14px 16px}
.sc-item h2{font-size:20px;font-weight:900;margin-bottom:2px}
.sc-item .lead{color:var(--pink);font-weight:700;font-size:15.5px;margin-bottom:4px}
.sc-item p{font-size:16px}
.ex{background:var(--soft);border-radius:14px;padding:14px 16px}
.ex h3{margin:0 0 6px;color:var(--ink);font-size:17px}
.ex li{font-size:15.5px}
.ex .total{margin-top:6px;font-weight:900;color:var(--shu);font-size:20px}
.dl{display:grid;grid-template-columns:200px 1fr;border-top:1px solid var(--bd)}
.dl dt,.dl dd{padding:10px 8px;border-bottom:1px solid var(--bd)}
.dl dt{background:var(--soft);font-weight:700}
.prose h2{font-size:21px;font-weight:900;margin:22px 0 6px;color:var(--pink)}
.prose h2:first-child{margin-top:0}
.prose p{margin:6px 0}
.cta{background:linear-gradient(135deg,var(--pink),var(--shu));color:#fff;border-radius:18px;padding:20px 24px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;margin-top:14px}
.cta h2{font-size:24px;font-weight:900}
.cta p{font-size:15px}
.cta-btns{display:flex;gap:10px;flex-wrap:wrap}
.cta-btns a{padding:12px 20px;border-radius:30px;text-decoration:none;font-weight:900}
.cta-tel{background:#fff;color:var(--shu);font-size:20px}
.cta-tel small{display:block;font-size:12px;line-height:1.2;text-align:center}
.cta-form{border:2px solid #fff;color:#fff}
.btn{display:inline-block;background:var(--pink);color:#fff;text-decoration:none;font-weight:900;border-radius:30px;padding:11px 26px;border:0;font:inherit;font-weight:900;cursor:pointer}
.btn:hover{background:var(--pink-d)}
.btn.line{background:var(--line)}

/* 求人 */
.points{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.points li{background:#fff;border-radius:14px;padding:12px;text-align:center;box-shadow:0 4px 14px #e5317a14}
.points small{display:block;color:var(--mute);font-size:13.5px}
.points b{display:block;font-size:22px;color:var(--shu);font-weight:900;line-height:1.35}
.points span{font-size:13.5px;color:var(--mute)}
.worries{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.worries li{background:var(--soft);border-radius:30px;padding:8px 14px;text-align:center;font-weight:700;font-size:15.5px}
.bars li{display:grid;grid-template-columns:90px 1fr 48px;gap:8px;align-items:center;margin:6px 0;font-size:15.5px}
.bars i{display:block;height:14px;border-radius:7px;background:linear-gradient(90deg,var(--pink),var(--shu))}
.bars b{text-align:right}
.styles{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.style{background:var(--soft);border-radius:14px;padding:14px}
.style h3{margin:0 0 6px;color:var(--ink);font-size:17px}
.style .total{font-size:24px;font-weight:900;color:var(--shu)}
.style p{font-size:15px;margin-top:6px}
.ivs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.iv{display:grid;grid-template-columns:96px 1fr;gap:12px;background:var(--soft);border-radius:14px;padding:12px;text-decoration:none;align-items:center}
.iv img{border-radius:50%;aspect-ratio:1/1;object-fit:cover}
.iv b{font-size:18px}
.iv small{display:block;color:var(--mute);font-size:13.5px;line-height:1.5}
.iv-head{display:grid;grid-template-columns:180px 1fr;gap:20px;align-items:center}
.iv-head img{border-radius:50%;aspect-ratio:1/1;object-fit:cover}
.dl-s{grid-template-columns:150px 1fr}
.keys.rec b{font-size:17px}
.qa dt{font-weight:900;color:var(--pink);margin-top:14px}
.qa dt::before{content:"Q. "}
.qa dd{margin-top:4px}
.qa dd::before{content:"A. ";font-weight:900;color:var(--shu)}

/* フォーム */
.form{display:grid;gap:14px}
.f-row{display:grid;grid-template-columns:220px 1fr;gap:12px;align-items:start}
.f-row>label,.f-row>.f-label{font-weight:700;padding-top:8px}
.req,.opt{display:inline-block;font-size:12px;border-radius:4px;padding:0 6px;margin-left:6px;vertical-align:2px}
.req{background:var(--shu);color:#fff}
.opt{background:#e9e2e5;color:var(--mute)}
.form input[type=text],.form input[type=tel],.form input[type=email],.form input[type=date],.form input[type=time],.form input[type=number],.form select,.form textarea{width:100%;font:inherit;font-size:16px;padding:9px 12px;border:2px solid #e6d3da;border-radius:10px;background:#fff;color:var(--ink)}
.form textarea{min-height:120px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--pink)}
.f-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.f-inline input[type=number]{width:110px}
.f-choices{display:flex;flex-wrap:wrap;gap:6px 14px;padding-top:8px}
.f-choices label{display:flex;gap:6px;align-items:center;font-size:16px}
.f-err{color:#c0141c;font-size:14.5px;font-weight:700;margin-top:4px}
.f-row.bad input,.f-row.bad select,.f-row.bad textarea{border-color:#c0141c;background:#fff6f6}
.f-help{font-size:14px;color:var(--mute);margin-top:4px}
.f-agree{text-align:center}
.f-submit{text-align:center}
.f-stub{background:#fff3b0;color:#7a4b00;border-radius:10px;padding:10px 14px;font-weight:700;margin-top:10px}
.f-stub[hidden]{display:none}

/* フッター */
.foot{background:var(--dark);color:#f2dde4;margin-top:0}
.foot-in{display:grid;grid-template-columns:1fr 2fr;gap:24px;padding-top:32px;padding-bottom:24px}
.foot-name{font-weight:900;font-size:1.15em;margin-bottom:6px}
.foot-brand p{font-size:15px}
.foot-links{display:grid;grid-template-columns:repeat(3,1fr);gap:4px 16px;font-size:15px}
.foot-links a{text-decoration:none}
.foot-links a:hover{text-decoration:underline}
.foot-copy{text-align:center;font-size:13px;padding:12px 0 16px}

/* スマホの画面下に固定するボタン */
.mbar{display:none}

@media (max-width:1180px){.hd-nav{display:none}.spnav{display:block}.hd-tel{margin-left:auto}}
@media (max-width:960px){
 .g3,.g3w,.g2,.g4{grid-template-columns:1fr}
 .scenes{grid-template-columns:repeat(3,1fr)}
 .cta{grid-template-columns:1fr}
 .reasons,.sc-list,.styles,.ivs{grid-template-columns:1fr 1fr}
 .flow-big,.flow-big.five{grid-template-columns:1fr 1fr}
 .media,.media.rev{grid-template-columns:1fr}
 .media.rev>:first-child{order:0}
 .points{grid-template-columns:1fr 1fr}
}
@media (max-width:767px){
 .wrap{padding:0 16px}
 body{padding-bottom:56px}
 .hd-in{height:56px;gap:10px}
 .hd-logo img{height:34px}
 .hd-tel,.hd-btn{display:none}
 .hero-ph img{height:300px}
 .hero-card-wrap{margin-top:-28px;padding:0 12px}
 .hero-card{padding:18px 16px;border-radius:16px}
 .hero h1{font-size:25px}
 .phead h1{font-size:25px}
 .keys{grid-template-columns:1fr 1fr}
 .camp{font-size:16px}.camp small{display:block;margin:0}
 .cancel{grid-template-columns:repeat(3,1fr)}
 .nums{grid-template-columns:1fr 1fr}
 .scene span{font-size:13px;padding:18px 4px 6px;line-height:1.35}
 .reasons,.reasons.two,.sc-list,.styles,.ivs,.ivs.two,.flow-big,.flow-big.five,.worries{grid-template-columns:1fr}
 .areas4{grid-template-columns:1fr 1fr}
 .card{padding:16px}
 .dl{grid-template-columns:1fr}
 .dl dt{border-bottom:0;padding-bottom:4px}
 .dl dd{padding-top:4px}
 .f-row{grid-template-columns:1fr;gap:4px}
 .f-row>label,.f-row>.f-label{padding-top:0}
 .iv-head{grid-template-columns:1fr;gap:10px;justify-items:center}
 .iv-head img{width:150px}
 .iv-head>div{width:100%}
 .dl.dl-s{grid-template-columns:120px 1fr}
 .dl.dl-s dt{border-bottom:1px solid var(--bd);padding-bottom:10px}
 .dl.dl-s dd{padding-top:10px}
 .keys.rec b{font-size:15px}
 .tbl th{width:42%}
 .foot-in{grid-template-columns:1fr}
 .foot-links{grid-template-columns:1fr 1fr}
 .mbar{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:100;height:56px;box-shadow:0 -2px 8px #0002}
 .mbar a{display:flex;align-items:center;justify-content:center;font-weight:700;text-decoration:none;font-size:15px;color:#fff}
 .mbar-tel{background:var(--shu)}.mbar-line{background:var(--line)}.mbar-form{background:var(--pink)}
}
