/* サービス側（紹介ページ・登録・管理画面・運営画面）。つなぐぺーじの空色・オレンジ */
:root{
  --night:#34404B; --mint:#F39A2D; --cream:#EEF5FB; --sage:#F4FAFE; --deep:#2E8FD6; --shadow:#1D5C96;
  --gray:#5E6B76; --lgray:#9FB3C2; --line:#CFE5F4; --card:#EEF7FD; --white:#fff;
  --blue:#3A97DD; --navy:#1D5C96; --pale:#DDF2FD; --yellow:#FFFBD9; --orange:#F15A24;
  --danger:#B23A2B; --warn:#9A6A00;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans JP",system-ui,sans-serif;color:var(--night);background:var(--sage);line-height:1.8;-webkit-font-smoothing:antialiased}
a{color:var(--deep)}
h1,h2,h3{font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif;line-height:1.45;margin:0}
img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.en{font-family:Georgia,serif;letter-spacing:.18em;font-size:12px;font-weight:700;color:var(--deep)}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:999px;padding:12px 26px;font-weight:700;font-size:15px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;font-family:inherit;line-height:1.4}
.btn-mint{background:var(--mint);color:var(--night)}
.btn-mint:hover{background:#A6DEB9}
.btn-night{background:var(--night);color:var(--cream)}
.btn-night:hover{background:var(--shadow)}
.btn-line{background:transparent;color:var(--night);border-color:var(--night)}
.btn-cream{background:var(--cream);color:var(--night)}
.btn-danger{background:var(--white);color:var(--danger);border-color:var(--danger)}
.btn-sm{padding:7px 14px;font-size:13px}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* サービスの紹介ページ */
.top-hd{background:var(--night);color:var(--cream)}
.top-hd .wrap{display:flex;align-items:center;gap:16px;padding-top:14px;padding-bottom:14px}
.logo{font-family:"Zen Maru Gothic",sans-serif;font-weight:700;font-size:20px;color:var(--cream);text-decoration:none;display:flex;align-items:center;gap:8px}
.logo-mark{width:28px;height:28px;border-radius:8px;background:var(--mint);color:var(--night);display:grid;place-items:center;font-size:15px}
.top-hd nav{margin-left:auto;display:flex;gap:10px;align-items:center}
.top-hd nav a.plain{color:var(--cream);text-decoration:none;font-size:14px;padding:0 8px}

.hero{background:var(--night);color:var(--cream);padding:80px 0 110px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.hero .en{color:var(--mint)}
.hero h1{font-size:clamp(28px,3.8vw,48px);margin:14px 0 20px;color:#fff}
.hero h1 span{color:var(--mint)}
.hero p{font-size:17px;color:#D9D6CC;max-width:560px;margin:0 0 32px}
.hero-btns{display:flex;gap:12px;flex-wrap:wrap}
.hero-note{font-size:13px!important;color:var(--lgray)!important;margin-top:16px!important}

/* 紹介ページのブラウザ風の見本 */
.mock{background:var(--cream);border-radius:16px;box-shadow:0 30px 60px rgba(0,0,0,.35);overflow:hidden;color:var(--night);transform:rotate(1.5deg)}
.mock-bar{background:#DCD8CC;padding:9px 12px;display:flex;gap:6px;align-items:center}
.mock-bar i{width:9px;height:9px;border-radius:50%;background:#B8B3A5;display:block}
.mock-bar span{margin-left:10px;background:#F4F2EC;border-radius:6px;font-size:11px;padding:2px 10px;color:var(--gray)}
.mock-hero{background:linear-gradient(135deg,var(--sage),#fff);padding:28px 22px}
.mock-hero b{display:inline-block;background:var(--mint);font-size:10px;border-radius:99px;padding:1px 9px}
.mock-hero h3{font-size:20px;margin:10px 0 4px}
.mock-hero small{color:var(--gray)}
.mock-btn{display:inline-block;margin-top:12px;background:var(--deep);color:#fff;font-size:11px;border-radius:99px;padding:5px 14px;font-weight:700}
.mock-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px 22px 22px}
.mock-cards div{background:#fff;border-radius:8px;height:56px;border:1px solid var(--line)}

.sec{padding:96px 0}
.sec-white{background:#FAFBF8}
.sec-head{text-align:center;margin-bottom:48px}
.sec-head h2{font-size:clamp(24px,3.4vw,34px);margin-top:8px}
.sec-head p{color:var(--gray);margin:12px auto 0;max-width:640px}

.pains{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pain{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}
.pain b{display:block;font-family:"Zen Maru Gothic",sans-serif;font-size:17px;margin-bottom:6px}
.pain p{margin:0;color:var(--gray);font-size:14px}

.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.feat{background:var(--card);border-radius:20px;padding:30px 26px}
.feat .num{font-family:Georgia,serif;color:var(--deep);font-weight:700;font-size:13px;letter-spacing:.1em}
.feat h3{font-size:19px;margin:8px 0 10px}
.feat p{margin:0;font-size:14px;color:var(--gray)}

.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:f}
.flow li{list-style:none;background:#fff;border-radius:16px;padding:26px 22px;position:relative;border:1px solid var(--line)}
.flow li::before{counter-increment:f;content:"STEP " counter(f);font-family:Georgia,serif;font-size:12px;letter-spacing:.12em;color:var(--deep);font-weight:700}
.flow h3{font-size:17px;margin:6px 0 6px}
.flow p{margin:0;font-size:14px;color:var(--gray)}
.flow-wrap{padding:0;margin:0}

.kinds{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.kinds span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 16px;font-size:14px}

.faq-list{max-width:760px;margin:0 auto}
.faq-list details{background:#fff;border-radius:12px;margin-bottom:10px;padding:0 22px;border:1px solid var(--line)}
.faq-list summary{cursor:pointer;padding:16px 0;font-weight:700}
.faq-list p{margin:0 0 18px;color:var(--gray)}

.cta{background:var(--shadow);color:var(--cream);text-align:center;padding:80px 0}
.cta h2{font-size:clamp(24px,3.4vw,32px);color:#fff;margin-bottom:12px}
.cta p{color:#CFCBBF;margin:0 0 28px}

.top-ft{background:var(--night);color:var(--lgray);font-size:13px;padding:32px 0}
.top-ft .wrap{display:flex;gap:20px;flex-wrap:wrap;align-items:center}
.top-ft a{color:var(--lgray)}
.top-ft .sp{margin-left:auto}

/* 登録・ログイン */
.auth-page{min-height:100vh;display:flex;flex-direction:column}
.auth-hd{background:var(--night);padding:14px 20px}
.auth{max-width:640px;width:100%;margin:40px auto 60px;padding:0 16px}
.auth-card{background:#fff;border-radius:20px;padding:36px;border:1px solid var(--line)}
.auth-card h1{font-size:26px;margin:4px 0 8px}
.auth-card > p{color:var(--gray);margin:0 0 24px;font-size:14px}
.auth-sm{max-width:440px}
.form{display:grid;gap:16px}
.form h2{font-size:16px;border-bottom:1px solid var(--line);padding-bottom:6px;margin-top:10px}
label.f{display:grid;gap:5px;font-weight:700;font-size:14px}
label.f small{font-weight:400;color:var(--gray);font-size:12px}
.req{font-style:normal;background:var(--danger);color:#fff;font-size:11px;padding:0 6px;border-radius:4px;margin-left:4px;font-weight:700}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=time],input:not([type]),select,textarea{
  font:inherit;font-weight:400;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;background:#FCFDFB;width:100%;color:var(--night)}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(58,151,221,.35);border-color:var(--deep)}
textarea{resize:vertical}
.slug-row{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:10px;background:#FCFDFB;overflow:hidden}
.slug-row span{padding:10px 0 10px 12px;color:var(--gray);font-size:14px;white-space:nowrap}
.slug-row input{border:0;border-radius:0;padding-left:2px;background:transparent}
.slug-row:focus-within{outline:3px solid rgba(58,151,221,.35);border-color:var(--deep)}
.hint{font-size:12px;font-weight:400;margin:0}
.hint.ok{color:var(--deep)}
.hint.ng{color:var(--danger)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;background:var(--card);border-radius:10px;padding:12px}
.check input{margin-top:6px}
.err{background:#FBECE9;color:var(--danger);border-radius:10px;padding:10px 14px;font-size:14px;white-space:pre-line;margin:0}
.auth-foot{text-align:center;font-size:14px;margin-top:18px}

/* 管理画面の骨組み */
.app{min-height:100vh;display:grid;grid-template-rows:auto 1fr}
.app-hd{background:var(--night);color:var(--cream)}
.app-hd .wrap{display:flex;align-items:center;gap:16px;padding-top:12px;padding-bottom:12px;max-width:1240px}
.app-hd .who{margin-left:auto;font-size:13px;color:var(--lgray);display:flex;gap:12px;align-items:center}
.app-hd .who button{background:none;border:1px solid var(--gray);color:var(--cream);border-radius:999px;padding:4px 12px;font:inherit;font-size:12px;cursor:pointer}
.app-main{max-width:1240px;width:100%;margin:0 auto;padding:28px 20px 80px}
.tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--line);margin-bottom:24px;overflow-x:auto}
.tabs button{background:none;border:0;font:inherit;font-weight:700;font-size:15px;padding:10px 18px;color:var(--gray);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1.5px;white-space:nowrap}
.tabs button[aria-selected=true]{color:var(--night);border-bottom-color:var(--deep)}
.tabs .badge{background:var(--danger);color:#fff;font-size:11px;border-radius:999px;padding:0 7px;margin-left:4px}

.panel{background:#fff;border-radius:16px;border:1px solid var(--line);padding:24px;margin-bottom:20px}
.panel h2{font-size:18px;margin-bottom:4px}
.panel > .desc{color:var(--gray);font-size:13px;margin:0 0 18px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}

.status-box{border-radius:16px;padding:24px;display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:20px}
.status-box h2{font-size:20px}
.status-box p{margin:4px 0 0;font-size:14px}
.st-pending{background:#FFF6DB;border:1px solid #EAD48E}
.st-approved{background:var(--card);border:1px solid var(--line)}
.st-rejected,.st-suspended{background:#FBECE9;border:1px solid #EBC0B8}
.status-box .actions{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}

.pill{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:2px 10px;white-space:nowrap}
.pill.pending{background:#FFF0C2;color:var(--warn)}
.pill.approved{background:#D7EEDD;color:var(--deep)}
.pill.rejected,.pill.suspended{background:#F7D9D3;color:var(--danger)}
.pill.on{background:var(--mint);color:var(--night)}
.pill.off{background:#E4E7E4;color:var(--gray)}
.pill.new{background:#F7D9D3;color:var(--danger)}
.pill.contacted{background:#FFF0C2;color:var(--warn)}
.pill.fixed{background:#DCE9F7;color:#2F5F8F}
.pill.visited{background:#D7EEDD;color:var(--deep)}
.pill.canceled{background:#E4E7E4;color:var(--gray)}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}
.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 18px}
.stat b{display:block;font-size:28px;font-family:Georgia,serif;font-variant-numeric:tabular-nums}
.stat span{font-size:13px;color:var(--gray)}

.switch{display:flex;gap:12px;align-items:center;font-weight:700;cursor:pointer}
.switch input{appearance:none;width:48px;height:28px;border-radius:999px;background:var(--lgray);position:relative;cursor:pointer;flex:none;transition:.15s}
.switch input::after{content:"";position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.15s}
.switch input:checked{background:var(--deep)}
.switch input:checked::after{left:23px}

.list-item{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px;background:#FCFDFB}
.list-item.sched{grid-template-columns:110px 1fr auto}
.list-item.faq{grid-template-columns:1fr auto}
.list-item .stack{display:grid;gap:8px}
.list-item .tools{display:flex;flex-direction:column;gap:4px}
.icon-btn{background:#fff;border:1px solid var(--line);border-radius:8px;width:32px;height:30px;cursor:pointer;font-size:14px;color:var(--gray)}
.icon-btn:hover{border-color:var(--deep);color:var(--night)}
.thumb-pick{width:110px;height:82px;border-radius:8px;border:1.5px dashed var(--lgray);background:var(--card) center/cover no-repeat;cursor:pointer;font-size:12px;color:var(--gray);display:grid;place-items:center;text-align:center;padding:4px}
.thumb-pick.has{border-style:solid;border-color:var(--line);color:transparent}

.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.photo{position:relative;border-radius:10px;overflow:hidden;aspect-ratio:4/3;background:var(--card);border:1px solid var(--line)}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.photo button{position:absolute;top:4px;right:4px;background:rgba(20,45,70,.75);color:#fff;border:0;border-radius:6px;font-size:11px;padding:2px 6px;cursor:pointer}
.photo.sel{outline:3px solid var(--deep)}
.photo .tag{position:absolute;left:4px;bottom:4px;background:var(--mint);color:var(--night);font-size:10px;font-weight:700;border-radius:4px;padding:0 5px}
.upload{border:1.5px dashed var(--lgray);border-radius:10px;display:grid;place-items:center;aspect-ratio:4/3;cursor:pointer;color:var(--gray);font-size:13px;text-align:center;background:#FCFDFB}
.upload:hover{border-color:var(--deep);color:var(--deep)}

.wdays{display:flex;gap:6px;flex-wrap:wrap}
.wdays label{display:block}
.wdays input{display:none}
.wdays span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--line);font-weight:700;cursor:pointer;background:#fff}
.wdays input:checked + span{background:var(--deep);border-color:var(--deep);color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 6px 3px 12px;font-size:14px;display:inline-flex;gap:6px;align-items:center}
.chip button{background:none;border:0;cursor:pointer;color:var(--gray);font-size:14px;padding:0 4px}
.inline{display:flex;gap:8px;align-items:center}
.inline input{width:auto}

.theme-pick{display:flex;gap:10px;flex-wrap:wrap}
.theme-pick label{cursor:pointer}
.theme-pick input{display:none}
.theme-pick span{display:flex;gap:8px;align-items:center;border:1.5px solid var(--line);border-radius:999px;padding:6px 14px 6px 6px;font-size:14px;background:#fff}
.theme-pick i{width:22px;height:22px;border-radius:50%;display:block}
.theme-pick input:checked + span{border-color:var(--night);box-shadow:0 0 0 2px var(--night) inset}

.savebar{position:sticky;bottom:0;background:rgba(244,250,254,.95);backdrop-filter:blur(6px);border-top:1px solid var(--line);padding:12px 0;margin:0 -20px;display:flex;gap:12px;align-items:center;justify-content:flex-end;padding-right:20px;padding-left:20px;z-index:5}
.savebar .msg{margin-right:auto;font-size:13px;color:var(--gray)}

table.tbl{width:100%;border-collapse:collapse;font-size:14px;background:#fff}
.tbl th{text-align:left;font-size:12px;color:var(--gray);font-weight:700;padding:10px 12px;border-bottom:1.5px solid var(--line);white-space:nowrap}
.tbl td{padding:12px;border-bottom:1px solid #E5ECE4;vertical-align:top}
.tbl tr.click{cursor:pointer}
.tbl tr.click:hover td{background:var(--card)}
.tbl-wrap{overflow-x:auto;border-radius:14px;border:1px solid var(--line)}
.muted{color:var(--gray);font-size:13px}
.empty{text-align:center;color:var(--gray);padding:40px 20px}

.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.filters button{background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}
.filters button[aria-pressed=true]{background:var(--night);color:var(--cream);border-color:var(--night)}

/* 右から出る詳細 */
.drawer-bg{position:fixed;inset:0;background:rgba(20,45,70,.4);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:#fff;z-index:41;overflow-y:auto;padding:28px;box-shadow:-10px 0 30px rgba(0,0,0,.15)}
.drawer h2{font-size:20px;margin-bottom:4px}
.drawer .close{position:absolute;top:16px;right:16px}
.kv{display:grid;grid-template-columns:120px 1fr;gap:6px 14px;font-size:14px;margin:16px 0}
.kv dt{color:var(--gray)}
.kv dd{margin:0;word-break:break-all}

.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--night);color:var(--cream);border-radius:999px;padding:10px 22px;font-size:14px;z-index:60;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.toast.ng{background:var(--danger);color:#fff}

/* お知らせページ（エラーなど） */
.msg-page{display:grid;place-items:center;min-height:100vh;padding:20px}
.msg{background:#fff;border-radius:20px;padding:40px;max-width:520px;text-align:center;border:1px solid var(--line)}
.msg h1{font-size:22px;margin-bottom:10px}
.msg p{color:var(--gray)}

.doc{max-width:760px;margin:0 auto;padding:40px 20px 80px}
.doc .card{background:#fff;border-radius:20px;padding:36px;border:1px solid var(--line)}
.doc h1{font-size:26px;margin-bottom:6px}
.doc h2{font-size:17px;margin:28px 0 6px}
.doc .draft{background:#FFF6DB;border:1px solid #EAD48E;border-radius:10px;padding:10px 14px;font-size:13px}

@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr}
  .mock{display:none}
  .pains,.feats{grid-template-columns:1fr}
  .flow{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .sec{padding:64px 0}
  .hero{padding:56px 0 72px}
  .flow{grid-template-columns:1fr}
  .grid2,.grid3{grid-template-columns:1fr}
  .auth-card{padding:24px 18px}
  .panel{padding:18px}
  .list-item,.list-item.sched{grid-template-columns:1fr}
  .list-item .tools{flex-direction:row}
  .top-hd nav a.plain{display:none}
  .app-hd .who span{display:none}
  .kv{grid-template-columns:1fr}
  .kv dt{margin-top:6px}
}

/* ---------- 探す側（トップ・地域・種別・新着・近く・検索） ---------- */
.portal .top-hd nav{flex-wrap:wrap;justify-content:flex-end}
.phero{padding:64px 0 80px}
.phero .wrap{grid-template-columns:1.3fr .7fr}
.psearch{display:flex;gap:8px;max-width:560px;margin:0 0 18px}
.psearch input{flex:1;border-radius:999px;padding:12px 20px;border:0;font-size:16px}
.btn-line-cream{background:transparent;color:var(--cream);border-color:var(--cream)}
.hero-count{margin-top:22px!important;font-size:14px!important;color:var(--lgray)!important}
.hero-count b{color:var(--mint);font-size:22px;font-family:Georgia,serif;margin:0 4px}
.office-box{background:var(--shadow);border:1px solid #2A4437;border-radius:20px;padding:28px;color:var(--cream)}
.office-box .en{color:var(--mint)}
.office-box h2{font-size:22px;color:#fff;margin:6px 0 10px}
.office-box p{font-size:14px!important;color:#CFCBBF!important;margin:0 0 18px!important}
.office-login{display:block;margin-top:12px;color:var(--lgray);font-size:13px}
.sec-head.left{text-align:left;margin-bottom:24px}
.sec-head.left p{margin-left:0;margin-right:0}
.sec-head h2 small,.ptitle small{font-size:15px;color:var(--gray);font-weight:500;margin-left:6px}
.more{text-align:center;margin:28px 0 0}

.fcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.fcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--night);transition:.15s}
.fcard:hover{border-color:var(--deep);transform:translateY(-2px);box-shadow:0 8px 20px rgba(20,45,70,.08)}
.fcard-img{aspect-ratio:16/9;background:var(--card) center/cover no-repeat;display:grid;place-items:center}
.fcard-img span{font-family:"Zen Maru Gothic",sans-serif;font-size:40px;color:var(--deep);opacity:.5}
.fcard-b{padding:14px 16px 16px;display:grid;gap:4px}
.fcard h3{font-size:17px}
.fcard-tags{margin:0;display:flex;gap:6px;flex-wrap:wrap}
.tag-kind{font-size:11px;font-weight:700;color:var(--deep);background:var(--sage);border-radius:999px;padding:1px 9px;white-space:nowrap}
.tag-res{font-size:11px;font-weight:700;color:var(--night);background:var(--mint);border-radius:999px;padding:1px 9px}
.fcard-catch{margin:0;font-size:13px;color:var(--gray);line-height:1.6}
.fcard-area{margin:2px 0 0;font-size:13px;color:var(--gray);display:flex;justify-content:space-between;gap:8px}
.fcard-area b{color:var(--deep)}
.empty-box{background:#fff;border:1px dashed var(--lgray);border-radius:14px;padding:28px;text-align:center;color:var(--gray);margin:0}

.near-head{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:16px}
.near-note{margin:0;font-size:13px;color:var(--gray)}
.near-err{background:#FBECE9;color:var(--danger);border-radius:10px;padding:8px 12px;font-size:13px}
.near-privacy{font-size:12px;color:var(--gray);margin:12px 0 0}

.kind-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.kind-grid a{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;text-decoration:none;color:var(--night);font-size:15px}
.kind-grid a:hover{border-color:var(--deep)}
.kind-grid span{font-size:13px;color:var(--gray);white-space:nowrap}
.pref-chips,.city-links,.pref-jump,.pkinds{display:flex;flex-wrap:wrap;gap:8px}
.pref-chips a,.city-links a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 16px;text-decoration:none;color:var(--night);font-size:14px;display:inline-flex;gap:8px}
.pref-chips a:hover,.city-links a:hover{border-color:var(--deep)}
.pref-chips span,.city-links span{color:var(--gray);font-size:12px}
.pref-jump a,.pkinds a{font-size:13px}

.flist{list-style:none;margin:0;padding:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.flist li + li{border-top:1px solid #E5ECE4}
.flist a{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:center;padding:12px 18px;text-decoration:none;color:var(--night);font-size:14px}
.flist a:hover{background:var(--card)}
.flist b{font-weight:700;font-size:15px}
.flist span:not(.tag-kind),.flist time{color:var(--gray);font-size:13px;white-space:nowrap}

.pmain{padding-top:20px;padding-bottom:80px;min-height:60vh}
.crumbs{font-size:12px;color:var(--gray);margin-bottom:14px}
.crumbs a{color:var(--gray)}
.crumbs i{font-style:normal;margin:0 6px}
.ptitle{font-size:clamp(22px,3vw,30px);margin:0 0 18px}
.area-sec{margin-top:36px}
.area-sec h2{font-size:19px;margin-bottom:14px}
.area-sec h2 a{color:var(--night)}
.area-sec h2 small{font-size:13px;color:var(--gray);font-weight:500}
.pager{display:flex;gap:6px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.pager a,.pager span{min-width:38px;text-align:center;border-radius:8px;padding:6px 10px;border:1px solid var(--line);background:#fff;text-decoration:none;color:var(--night)}
.pager span{background:var(--night);color:var(--cream);border-color:var(--night)}
.kind-filter{margin-bottom:18px}
.kind-filter label{display:inline-flex;gap:10px;align-items:center;font-size:14px;font-weight:700}
.kind-filter select{width:auto}
.search-box .psearch input{border:1.5px solid var(--line)}
.about-dl{margin:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.about-dl div{display:grid;grid-template-columns:140px 1fr;border-bottom:1px solid #E5ECE4}
.about-dl div:last-child{border-bottom:0}
.about-dl dt{padding:12px 18px;font-weight:700;font-size:14px;background:var(--card)}
.about-dl dd{margin:0;padding:12px 18px;font-size:14px}
.center{text-align:center}

@media (max-width:900px){
  .phero .wrap{grid-template-columns:1fr}
  .portal .top-hd nav a.plain{display:none}
}
@media (max-width:640px){
  .flist a{grid-template-columns:1fr auto;gap:2px 10px}
  .flist b{grid-column:1/-1}
  .flist time{display:none}
  .about-dl div{grid-template-columns:1fr}
  .psearch .btn{padding:12px 18px}
}

/* ロゴ：ルタス（RUTAS）／つなぐぺーじ */
.logo-txt{display:flex;flex-direction:column;line-height:1.15}
.logo-txt small{font-family:Georgia,"Noto Sans JP",serif;font-size:10px;letter-spacing:.08em;color:var(--mint);font-weight:400}
.logo-sub{font-size:13px;color:var(--lgray);margin-left:6px}
.flist .tag-kind{justify-self:start}
.narrow-main{max-width:760px}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:28px;margin-top:18px}

/* ホームページの作成・管理（事業所の方の入口） */
.mcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin:16px 0}
.mh{font-size:16px;border-left:3px solid var(--deep);padding-left:10px;margin:0 0 10px}
.okbox{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:12px 0 0}
.pill.draft{background:#E4E7E4;color:var(--gray)}
.pill.declined{background:#F7D9D3;color:var(--danger)}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* 条件で探す */
.fbox{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 18px;margin:0 0 16px}
.fbox summary{cursor:pointer;padding:12px 0;font-weight:700;font-size:14px}
.ffilter{padding:0 0 16px}
.ffilter fieldset{border:0;padding:0;margin:0 0 10px}
.ffilter legend{font-size:12px;color:var(--gray);font-weight:700;margin-bottom:6px}
.fchk{display:inline-flex;margin:0 6px 6px 0;cursor:pointer}
.fchk input{position:absolute;opacity:0;pointer-events:none}
.fchk span{border:1.5px solid var(--line);border-radius:999px;padding:5px 14px;font-size:13px;background:#fff}
.fchk input:checked + span{background:var(--deep);border-color:var(--deep);color:#fff}
.fchk input:focus-visible + span{outline:3px solid rgba(58,151,221,.4)}
.ffilter-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.picked{margin:0 0 14px;font-size:13px;color:var(--gray)}
.picked span{display:inline-block;background:var(--deep);color:#fff;border-radius:999px;padding:1px 10px;margin:0 4px 4px 0;font-size:12px}
.fcard-feats{margin:0;display:flex;flex-wrap:wrap;gap:4px}
.fcard-feats span{font-size:11px;border:1px solid var(--line);border-radius:999px;padding:0 8px;color:var(--gray)}
.find-band{background:var(--deep);color:#fff;padding:48px 0}
.find-band .en{color:var(--mint)}
.find-band h2{color:#fff;font-size:clamp(20px,2.6vw,26px);margin:6px 0 8px}
.find-band p{margin:0;color:#E2ECE1;max-width:640px}
.find-in{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}

/* 事業所を押したときのポップアップ */
.modal-bg{position:fixed;inset:0;background:rgba(20,45,70,.55);z-index:80;display:grid;place-items:center;padding:16px}
.modal{background:#fff;border-radius:20px;max-width:520px;width:100%;max-height:calc(100vh - 32px);overflow-y:auto;padding:28px 26px;position:relative}
.modal h2{font-size:20px;margin:6px 0 6px}
.modal-x{position:absolute;top:12px;right:12px;background:none;border:0;font-size:18px;cursor:pointer;color:var(--gray);width:36px;height:36px}
.modal-btns{display:flex;gap:10px;flex-wrap:wrap}
.find-notes{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 18px 14px 34px;font-size:14px;color:var(--gray)}
.find-notes li{margin:3px 0}
.contact-card h2{font-size:16px;border-bottom:1px solid var(--line);padding-bottom:6px;margin-top:12px}

/* ---------- 探す側の見た目：空・街並み・丸いイラスト（skyphone.jp 風） ---------- */
.portal{
  --night:#34404B; --deep:#2E8FD6; --mint:#F39A2D; --sage:#F4FAFE; --line:#CFE5F4; --card:#EEF7FD; --shadow:#1D5C96;
  --gray:#5E6B76; --lgray:#9FB3C2;
  --sky:#8DD5F6; --blue:#3A97DD; --navy:#1D5C96; --pale:#DDF2FD; --yellow:#FFFBD9; --orange:#F15A24; --green:#2EA75A;
  background:#fff;font-family:"Zen Maru Gothic","Noto Sans JP",sans-serif}
.portal .en{font-family:inherit;color:var(--blue)}

/* ヘッダー・フッター */
.portal .top-hd{background:#fff;color:var(--night);box-shadow:0 2px 0 var(--pale);position:sticky;top:0;z-index:30}
.portal .logo{color:var(--navy)}
.portal .logo-mark{background:var(--blue);color:#fff;border-radius:50%}
.portal .logo-txt small{color:var(--blue)}
.portal .top-hd nav a.plain{color:var(--night);font-weight:700}
.portal .top-hd nav a.plain:hover{color:var(--blue)}
.portal .top-ft{background:var(--navy);color:#CFE3F3;padding:40px 0}
.portal .top-ft a{color:#fff}

/* ボタン */
.portal .btn{font-weight:700}
.portal .btn-mint{background:var(--mint);color:#fff;box-shadow:0 4px 0 #D07C17}
.portal .btn-mint:hover{background:#F6A944}
.portal .btn-night{background:var(--blue);color:#fff}
.portal .btn-night:hover{background:var(--navy)}
.portal .btn-line{border-color:var(--blue);color:var(--blue);background:#fff}

/* 見出し：左右に点線 */
.dtitle{text-align:center;margin-bottom:36px}
.dtitle-pill{display:inline-block;background:var(--blue);color:#fff;border-radius:999px;font-size:12px;font-weight:700;padding:2px 14px;margin-bottom:8px}
.dtitle h2{display:flex;align-items:center;justify-content:center;gap:18px;font-size:clamp(21px,3vw,30px);color:var(--navy)}
.dtitle h2::before,.dtitle h2::after{content:"";flex:0 1 150px;min-width:24px;height:8px;background:radial-gradient(circle,currentColor 2.6px,transparent 3.2px) center/14px 8px repeat-x;opacity:.7}
.dtitle h2 small{font-size:15px;color:var(--gray);font-weight:500}
.dtitle-en{margin:4px 0 0;font-size:12px;letter-spacing:.3em;color:var(--blue);font-weight:700}

/* 空 */
.sky{position:relative;background:linear-gradient(#7FCFF4,var(--sky) 60%,#A6E0F9);overflow:hidden;padding:64px 0 0}
.sky-doodle{position:absolute;inset:0;width:100%;height:100%}
.sky-doodle .ln{fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.sky-doodle .ln path:not(.dash),.sky-doodle .ln rect{fill:rgba(255,255,255,.12)}
.sky-doodle .dash{stroke-dasharray:3 9;stroke-width:3}
.sky-doodle text{fill:#fff;stroke:none;font-size:17px;font-weight:700;font-family:"Zen Maru Gothic",sans-serif}
.sky-doodle .cl{fill:#fff;opacity:.85}
.sky-in{position:relative;text-align:center;padding-bottom:150px}
.sky-lead{margin:0;font-weight:700;color:var(--navy);font-size:15px;letter-spacing:.05em}
.sky-logo{display:inline-flex;align-items:center;gap:14px;margin:6px 0 22px;font-size:clamp(40px,6vw,64px);color:#fff;text-shadow:0 3px 0 rgba(29,92,150,.35);letter-spacing:.06em}
.sky-logo>span:last-child{display:flex;flex-direction:column;line-height:1.1;text-align:left}
.sky-logo small{font-size:clamp(11px,1.3vw,14px);letter-spacing:.2em;color:var(--navy);text-shadow:none;margin-top:6px}
.sky-mark{width:1.25em;height:1.25em;border-radius:50%;background:#fff;color:var(--blue);display:grid;place-items:center;font-size:.8em;text-shadow:none;box-shadow:0 4px 0 rgba(29,92,150,.25)}
.sky .psearch{margin:0 auto 18px;max-width:600px;background:#fff;border-radius:999px;padding:6px;box-shadow:0 6px 0 rgba(29,92,150,.18)}
.sky .psearch input{background:transparent;outline:none}
.sky-text{margin:0;color:var(--navy);font-size:15px;font-weight:500}
.sky-badge{position:absolute;right:max(24px,calc(50% - 540px));bottom:130px;width:132px;height:132px;border-radius:50%;background:#fff;color:var(--navy);display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0;transform:rotate(8deg);box-shadow:0 6px 0 rgba(29,92,150,.18);line-height:1.2;font-weight:700}
.sky-badge b{font-size:34px;color:var(--orange)}
.sky-badge small{font-size:12px}
.town{position:absolute;left:0;right:0;bottom:0;width:100%;height:118px;display:block}

.sky-btns{background:#fff;padding:22px 0}
.sky-btns .wrap{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.sbtn{display:flex;align-items:center;gap:10px;background:#222;color:#fff;text-decoration:none;border-radius:10px;padding:8px 20px 8px 14px;min-width:200px;font-weight:700;font-size:17px;line-height:1.2;transition:.15s}
.sbtn:hover{background:var(--navy)}
.sbtn svg{width:30px;height:30px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;flex:none}
.sbtn small{display:block;font-size:11px;font-weight:500;opacity:.85}
.stripe{height:16px;background:repeating-linear-gradient(-45deg,#5DB4EA 0 9px,#fff 9px 18px)}

/* 丸いイラストのポイント */
.points{background:var(--yellow);padding:80px 0;position:relative;overflow:hidden}
.points::before,.points::after{content:"";position:absolute;border-radius:50%;background:rgba(214,236,170,.45)}
.points::before{width:260px;height:260px;left:-60px;top:30%}
.points::after{width:340px;height:340px;right:-80px;bottom:-60px;background:rgba(255,214,150,.35)}
.point{position:relative;z-index:1;display:grid;grid-template-columns:1fr 340px;gap:56px;align-items:center;max-width:920px;margin:0 auto}
.point + .point{margin-top:48px}
.point.rev{grid-template-columns:340px 1fr}
.point.rev .point-pic{order:-1}
.point.rev .point-txt{text-align:right}
.point h2{font-size:clamp(24px,3vw,32px);margin-bottom:16px}
.point p{margin:0 0 20px;font-size:15px;color:var(--night)}
.point-pic{width:340px;aspect-ratio:1;border-radius:50%;background:#fff;padding:10px;border:3px dashed #8CCBEF;box-shadow:0 0 0 8px #fff}
.point-pic svg{width:100%;height:100%;border-radius:50%;display:block}
.c-orange{color:var(--orange)}.c-blue{color:var(--blue)}.c-green{color:var(--green)}

/* 青い帯：おもな探し方 */
.fband{background:var(--blue);padding:72px 0 64px;color:#fff}
.fband .dtitle h2{color:#fff}
.fband .dtitle-pill{background:#fff;color:var(--blue)}
.fcircles{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;justify-items:center;margin-bottom:40px}
.fcircles a{width:200px;aspect-ratio:1;border-radius:50%;background:#fff;color:var(--night);text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:16px;transition:.15s;box-shadow:0 6px 0 rgba(0,0,0,.08)}
.fcircles a:hover{transform:translateY(-4px)}
.fcircles svg{width:44px;height:44px;fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.fcircles h3{color:var(--blue);font-size:17px;margin:8px 0 4px}
.fcircles p{margin:0;font-size:12px;line-height:1.6;color:var(--gray)}
.others{background:var(--pale);border-radius:14px;padding:22px 26px;color:var(--night)}
.others-h{margin:0 0 10px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:8px}
.others-h::before,.others-h::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue)}
.others-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 18px;margin-bottom:16px}
.others-list:last-child{margin-bottom:0}
.others-list a{color:var(--night);text-decoration:none;font-size:14px;padding:3px 0 3px 22px;position:relative;display:flex;align-items:baseline;gap:8px}
.others-list a::before{content:"";position:absolute;left:2px;top:9px;width:10px;height:5px;border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);transform:rotate(-45deg)}
.others-list a:hover{color:var(--blue)}
.others-list span{color:var(--gray);font-size:12px}

/* 四角いタイル */
.tiles{background:var(--pale);padding:56px 0}
.tiles .wrap{display:flex;gap:24px;justify-content:center;flex-wrap:wrap}
.tile{width:170px;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff;text-decoration:none;font-weight:700;position:relative;transition:.15s}
.tile:hover{filter:brightness(1.08)}
.tile::after{content:"↘";position:absolute;right:10px;bottom:6px;font-size:13px;opacity:.8}
.tile svg{width:48px;height:48px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.t-sky{background:#3AA9E6}.t-navy{background:var(--navy)}.t-orange{background:var(--mint)}

/* そのほかのセクション */
.portal .sec-white{background:var(--sage)}
.portal .office{background:var(--yellow)}
.office-lead{text-align:center;max-width:720px;margin:-12px auto 36px;color:var(--gray)}
.portal .feat{background:#fff;border-radius:24px;border:2px solid #F6E6B4}
.portal .feat .num{font-family:inherit;color:var(--orange);font-size:22px}
.portal .flow li{border-radius:20px;border:2px solid var(--line)}
.portal .flow li::before{font-family:inherit;color:var(--blue)}
.office-login{display:inline-block;margin-left:16px;color:var(--gray);font-size:13px}
.portal .faq-list details{border:2px solid var(--line);border-radius:16px}
.portal .faq-list summary::marker{color:var(--blue)}
.info{background:#2E9DE0}
.info .dtitle h2,.info .dtitle-en{color:#fff}
.info .dtitle h2 small{color:#E0F2FD}
.info-box{background:#fff;border-radius:14px;padding:22px}
.info-note{margin:0 0 10px;font-size:13px;color:var(--gray)}
.info .flist{border:0;border-radius:0}
.portal .fcard{border:2px solid var(--line);border-radius:20px}
.portal .fcard:hover{border-color:var(--blue)}
.portal .kind-grid a,.portal .pref-chips a,.portal .city-links a{border-width:2px}
.center-chips{justify-content:center}

@media (max-width:900px){
  .fcircles{grid-template-columns:repeat(2,1fr)}
  .point,.point.rev{grid-template-columns:1fr;gap:28px;text-align:center}
  .point.rev .point-txt{text-align:center}
  .point-pic,.point.rev .point-pic{order:-1;width:min(300px,80vw);margin:0 auto}
  .sky-badge{position:relative;right:auto;bottom:auto;margin:-120px auto 130px;width:110px;height:110px}
  .sky-badge b{font-size:28px}
}
@media (max-width:640px){
  .sky{padding-top:40px}
  .sky-in{padding-bottom:140px}
  .sky-text br,.point p br{display:none}
  .fcircles{gap:14px}
  .fcircles a{width:min(160px,42vw)}
  .fcircles p{display:none}
  .sbtn{flex:1 1 100%}
  .tiles .wrap{gap:12px}
  .tile{width:calc((100% - 24px) / 3);font-size:13px}
  .tile svg{width:34px;height:34px}
  .dtitle h2{gap:10px}
  .office-login{display:block;margin:12px 0 0}
}

/* 目的から選ぶアンケート（近くの事業所） */
.quiz-box{background:var(--yellow,#FFFBD9);border:2px solid #F6E6B4;border-radius:20px;margin:0 0 28px}
.quiz-box > summary{cursor:pointer;list-style:none;padding:16px 22px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.quiz-box > summary::-webkit-details-marker{display:none}
.quiz-box > summary b{margin-left:auto;font-size:13px;color:var(--blue,#3A97DD);white-space:nowrap}
.quiz-box[open] > summary b{display:none}
.quiz-title{font-weight:700;font-size:17px;color:var(--navy,#1D5C96)}
.quiz-sum{display:flex;flex-wrap:wrap;gap:6px}
.quiz-sum span{background:#fff;border:1.5px solid #F6E6B4;border-radius:999px;padding:2px 12px;font-size:13px;font-weight:700}
.quiz-sum span:first-child{background:var(--orange,#F15A24);border-color:var(--orange,#F15A24);color:#fff}
.quiz{padding:0 22px 22px}
.q{margin-bottom:22px}
.q-h{margin:0 0 10px;font-weight:700;font-size:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.q-h em{font-style:normal;font-size:11px;color:var(--gray);font-weight:500;background:#fff;border-radius:999px;padding:0 8px}
.q-no{background:var(--blue,#3A97DD);color:#fff;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:13px;flex:none}
.q-purposes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.q-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.qp,.qo{cursor:pointer;display:block}
.qp input,.qo input{position:absolute;opacity:0;pointer-events:none}
.qp span,.qo span{display:flex;flex-direction:column;justify-content:center;height:100%;background:#fff;border:2px solid var(--line);border-radius:16px;padding:14px 16px 14px 48px;position:relative;transition:.12s}
.qp span::before,.qo span::before{content:"";position:absolute;left:16px;top:50%;width:20px;height:20px;margin-top:-10px;border-radius:50%;border:2px solid var(--lgray);background:#fff}
.qp b{font-size:15px;line-height:1.45}
.qp small,.qo small{font-size:12px;color:var(--gray);line-height:1.5;margin-top:2px}
.qo span{font-weight:700;font-size:14px}
.qp input:checked + span,.qo input:checked + span{border-color:var(--blue,#3A97DD);background:var(--pale,#DDF2FD)}
.qp input:checked + span::before,.qo input:checked + span::before{border-color:var(--blue,#3A97DD);background:radial-gradient(circle,var(--blue,#3A97DD) 5px,#fff 6px)}
.qp input:focus-visible + span,.qo input:focus-visible + span{outline:3px solid rgba(58,151,221,.4)}
.q-step{display:none;border-top:2px dashed #F0DFA8;padding-top:20px}
.q-step.on{display:block}
.q-step:empty{display:none!important}
.q-chips .fchk span{font-size:14px;padding:6px 16px}
.q-chips .fchk input:checked + span{background:var(--blue,#3A97DD);border-color:var(--blue,#3A97DD)}
.q-submit{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.q-reset{font-size:13px;color:var(--gray)}
.q-result{font-size:20px;margin:0 0 12px;color:var(--navy,#1D5C96)}
@media (max-width:900px){.q-purposes{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
  .q-purposes,.q-opts{grid-template-columns:1fr}
  .quiz{padding:0 14px 18px}
  .quiz-box > summary{padding:14px}
}

/* ---------- 管理画面・登録・ログイン：トップと同じ空色の見た目 ---------- */
.btn-mint{color:#fff;box-shadow:0 3px 0 #D07C17}
.btn-mint:hover{background:#F6A944}
.btn-night{background:var(--blue);color:#fff}
.btn-night:hover{background:var(--navy)}
.btn-line{border-color:var(--blue);color:var(--blue);background:#fff}
.app-hd,.auth-hd{background:#fff;color:var(--night);box-shadow:0 2px 0 var(--pale);position:sticky;top:0;z-index:30}
.app-hd .logo,.auth-hd .logo{color:var(--navy)}
.logo-mark{background:var(--blue);color:#fff;border-radius:50%}
.logo-txt small{color:var(--blue)}
.logo-sub{color:var(--gray);background:var(--pale);border-radius:999px;padding:2px 12px;font-size:12px;font-weight:700}
.app-hd .who{color:var(--gray)}
.app-hd .who button{border-color:var(--line);color:var(--night);background:#fff}
.app-hd .who button:hover{border-color:var(--blue);color:var(--blue)}
.app{background:var(--sage)}
.app-main h1,.app-main h2{color:var(--navy)}
.tabs{border-bottom:0;gap:6px;background:#fff;border-radius:999px;padding:6px;box-shadow:0 2px 0 var(--pale);scrollbar-width:thin}
.tabs button{border-radius:999px;border-bottom:0;margin-bottom:0;padding:8px 18px;font-size:14px}
.tabs button:hover{color:var(--blue)}
.tabs button[aria-selected=true]{background:var(--blue);color:#fff}
.tabs button[aria-selected=true] .badge{background:#fff;color:var(--danger)}
.panel,.stat,.auth-card,.msg,.doc .card,.mcard,.contact-card{border:2px solid var(--line);border-radius:20px}
.panel h2{display:flex;align-items:center;gap:8px}
.panel h2::before{content:"";width:6px;height:18px;border-radius:3px;background:var(--blue)}
.stat b{font-family:inherit;color:var(--navy)}
.stat{position:relative;overflow:hidden}
.stat::after{content:"";position:absolute;right:-18px;bottom:-18px;width:64px;height:64px;border-radius:50%;background:var(--pale)}
.st-approved{background:var(--pale);border-color:var(--line)}
.pill.approved,.pill.visited{background:#D9F0E2;color:#1F7A47}
.pill.on{background:var(--blue);color:#fff}
.tbl-wrap{border:2px solid var(--line)}
.tbl th{background:var(--card)}
.filters button[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff}
.chip{background:#fff;border-color:var(--line)}
.chip:has(input:checked){background:var(--pale);border-color:var(--blue)}
.wdays input:checked + span{background:var(--blue);border-color:var(--blue)}
.switch input:checked{background:var(--blue)}
.photo.sel{outline-color:var(--blue)}
.photo .tag{background:var(--mint);color:#fff}
.auth-page{background:linear-gradient(#BDE6FA,var(--sage) 320px)}
.auth-card h1{color:var(--navy)}
.toast{background:var(--navy);color:#fff}
.en{font-family:inherit;color:var(--blue)}
@media (max-width:640px){
  .tabs{border-radius:16px}
  .logo-sub{display:none}
}

/* 管理画面ホーム：ホームページの訪問 */
.v-nums{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}
.v-num{background:var(--card);border-radius:16px;padding:14px 16px}
.v-num b{display:flex;align-items:center;gap:8px;font-size:30px;color:var(--navy);line-height:1.2}
.v-num span{font-size:13px;color:var(--gray)}
.v-now{background:#FFF4E5}
.v-dot{width:10px;height:10px;border-radius:50%;background:var(--lgray);display:inline-block}
.v-dot.on{background:#2EA75A;box-shadow:0 0 0 0 rgba(46,167,90,.5);animation:vpulse 1.6s infinite}
@keyframes vpulse{70%{box-shadow:0 0 0 10px rgba(46,167,90,0)}100%{box-shadow:0 0 0 0 rgba(46,167,90,0)}}
@media (prefers-reduced-motion:reduce){.v-dot.on{animation:none}}
.v-week{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;height:120px;align-items:end;margin-bottom:8px}
.v-week div{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:2px}
.v-week i{display:block;width:60%;min-height:3px;background:var(--blue);border-radius:6px 6px 2px 2px}
.v-week div:last-child i{background:var(--mint)}
.v-week b{font-size:12px;color:var(--navy);order:-1}
.v-week span{font-size:11px;color:var(--gray)}
.v-h{font-size:15px;margin:20px 0 10px;color:var(--navy)}
.v-h small{font-size:12px;color:var(--gray);font-weight:500;margin-left:6px}
.v-funnel{display:grid;gap:6px;margin-bottom:8px}
.v-row{display:grid;grid-template-columns:220px 1fr 110px;gap:10px;align-items:center;font-size:13px}
.v-bar{height:14px;background:var(--card);border-radius:999px;overflow:hidden}
.v-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#7CC4EE);border-radius:999px}
.v-row b{font-size:13px;text-align:right;white-space:nowrap}
.v-row b small{color:var(--gray);font-weight:500}
.v-tips{display:grid;gap:10px}
.v-tip{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;border-radius:14px;padding:12px 14px;background:var(--card)}
.v-tip p{margin:2px 0 0;font-size:13px;color:var(--gray)}
.v-tip .pill{margin-top:2px}
.v-tip.high{background:#FFF1E6}.v-tip.high .pill{background:var(--orange);color:#fff}
.v-tip.mid .pill{background:var(--blue);color:#fff}
.v-tip.low .pill{background:#E4EBF0;color:var(--gray)}
@media (max-width:640px){
  .v-nums{grid-template-columns:1fr 1fr}
  .v-row{grid-template-columns:1fr auto}
  .v-row .v-bar{grid-column:1/-1;grid-row:2}
  .v-tip{grid-template-columns:1fr}
}

/* 事業所の方の入口（/manage） */
.mhero{background:linear-gradient(#BDE6FA,#E6F5FD);border-radius:24px;padding:32px 28px;margin:6px 0 20px;text-align:center}
.mhero h1{font-size:clamp(22px,3.4vw,30px);color:var(--navy);margin:6px 0 10px}
.mhero p{margin:0 auto 18px;max-width:560px;color:var(--night)}
.mhero .psearch{margin:0 auto;max-width:560px;background:#fff;border-radius:999px;padding:6px;box-shadow:0 4px 0 rgba(29,92,150,.15)}
.mhero .psearch input{border:0!important;background:transparent}
.msteps{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:18px 0 0;padding:0;list-style:none;font-size:13px;font-weight:700;color:var(--navy)}
.msteps li{background:#fff;border-radius:999px;padding:4px 14px}
.msteps li+li::before{content:"→";margin-right:8px;color:var(--blue)}
.mres{display:grid;gap:12px}
.mres-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;background:#fff;border:2px solid var(--line);border-radius:18px;padding:16px 18px}
.mres-card.ready{border-color:#F6C98A;background:#FFFBF2}
.mres-card h3{font-size:17px;margin:4px 0 2px}
.mres-card p{margin:0;font-size:13px;color:var(--gray)}
.mres-card .msg-ok{color:var(--night);font-size:14px;margin-top:6px}
.mres-none{background:#fff;border:2px dashed var(--line);border-radius:18px;padding:22px;text-align:center}
.mres-none h3{font-size:17px;color:var(--navy);margin-bottom:6px}
.mres-none p{color:var(--gray);margin:0 0 14px;font-size:14px}
@media (max-width:640px){.mres-card{grid-template-columns:1fr}}

/* 管理画面ホームのいちばん上：今日の訪問者 */
.v-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:linear-gradient(120deg,var(--blue),#5DB4EA);color:#fff;border-radius:20px;padding:18px 24px;margin-bottom:20px;text-decoration:none;box-shadow:0 4px 0 rgba(29,92,150,.18)}
.v-hero-main{display:flex;align-items:baseline;gap:8px}
.v-hero-main small{font-size:14px;font-weight:700}
.v-hero-main b{font-size:44px;line-height:1;font-family:"Zen Maru Gothic",sans-serif}
.v-hero-now{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.18);border-radius:999px;padding:6px 16px;font-size:14px;font-weight:700}
.v-hero-now b{font-size:20px}
.v-hero .v-dot{background:rgba(255,255,255,.6)}
.v-hero .v-dot.on{background:#7CFFB2}

/* 一覧のカード：対象障害・仕事内容・特徴 */
.fcard-meta{margin:6px 0 0;display:grid;gap:4px;font-size:12px}
.fcard-meta div{display:grid;grid-template-columns:64px 1fr;gap:6px;align-items:start}
.fcard-meta dt{color:var(--gray);font-weight:700}
.fcard-meta dd{margin:0;color:var(--night);line-height:1.6}
.fcard-targets{display:flex;flex-wrap:wrap;gap:3px}
.fcard-targets span{background:#F0F3F5;color:#A6B0B8;border-radius:4px;padding:0 6px;font-size:11px}
.fcard-targets span.on{background:var(--blue);color:#fff;font-weight:700}
/* 種別の一覧は横長のカードを1列に */
.fcards-row{grid-template-columns:1fr}
.fcards-row .fcard{flex-direction:row}
.fcards-row .fcard-img{width:240px;flex:none;aspect-ratio:auto;min-height:170px}
.fcards-row .fcard-b{flex:1}
.quiz-cta{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--yellow);border:2px solid #F6E6B4;border-radius:18px;padding:16px 20px;text-decoration:none;color:var(--night);margin:6px 0}
.quiz-cta small{display:block;font-size:12px;color:var(--orange);font-weight:700}
.quiz-cta b{font-size:16px}
.quiz-cta i{font-style:normal;background:var(--mint);color:#fff;border-radius:999px;padding:8px 18px;font-weight:700;white-space:nowrap;box-shadow:0 3px 0 #D07C17}
.kind-desc{margin:-8px 0 16px;color:var(--gray);font-size:14px}
.ksearch{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.karea{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
.karea select{width:auto;min-width:220px}
.kcount{margin:0 0 12px;font-size:14px;color:var(--gray)}
.kcount b{font-size:22px;color:var(--navy);margin:0 2px}
.kfind{margin-top:48px;background:#fff;border:2px solid var(--line);border-radius:20px;padding:24px}
.kfind h2{font-size:17px;color:var(--navy);margin:20px 0 10px}
.kfind h2:first-child{margin-top:0}
.kfind-g{margin:10px 0 6px;font-size:12px;font-weight:700;color:var(--gray)}
@media (max-width:640px){
  .fcards-row .fcard{flex-direction:column}
  .fcards-row .fcard-img{width:auto;aspect-ratio:16/9;min-height:0}
  .quiz-cta{flex-direction:column;align-items:flex-start}
  .karea select{min-width:0;width:100%}
  .karea{width:100%}
}

/* トップ「条件から探す」：種別を選ぶと、その種別の条件だけ出す（ラジオボタンとCSSだけで切り替え） */
.fk{display:flex;flex-wrap:wrap;gap:8px}
.fk-r{position:absolute;opacity:0;pointer-events:none}
.fk-tab{cursor:pointer;background:#fff;border:2px solid var(--line);border-radius:999px;padding:6px 14px;font-size:14px;font-weight:700;color:var(--navy)}
.fk-tab:hover{border-color:var(--blue)}
.fk-r:checked + .fk-tab{background:var(--blue);border-color:var(--blue);color:#fff}
.fk-r:focus-visible + .fk-tab{outline:3px solid rgba(58,151,221,.4)}
.fk-panel{display:none;flex-basis:100%;background:#fff;border-radius:12px;padding:6px 18px 14px;margin-top:6px}
#fk-0:checked ~ .fk-p0,#fk-1:checked ~ .fk-p1,#fk-2:checked ~ .fk-p2,#fk-3:checked ~ .fk-p3,#fk-4:checked ~ .fk-p4,#fk-5:checked ~ .fk-p5,#fk-6:checked ~ .fk-p6,#fk-7:checked ~ .fk-p7,#fk-8:checked ~ .fk-p8,#fk-9:checked ~ .fk-p9,#fk-10:checked ~ .fk-p10{display:block}
.fk-hint{margin:-4px 0 10px;font-size:13px;color:var(--gray)}
.fk-g{margin:12px 0 4px;font-size:12px;font-weight:700;color:var(--gray)}
.fk-panel .others-list{margin-bottom:0}
.fk-all{margin:12px 0 0;text-align:right;font-size:14px;font-weight:700}

/* 管理画面「いまのHP」：今のページを枠の中で見る */
.site-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;background:#fff;border:2px solid var(--line);border-radius:20px;padding:14px 18px;margin-bottom:14px}
.site-tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.site-size{display:flex;background:var(--card);border-radius:999px;padding:3px}
.site-size button{border:0;background:none;font:inherit;font-size:13px;font-weight:700;padding:5px 14px;border-radius:999px;cursor:pointer;color:var(--gray)}
.site-size button[aria-pressed=true]{background:var(--blue);color:#fff}
.site-frame{background:#fff;border:2px solid var(--line);border-radius:20px;overflow:hidden;height:calc(100vh - 260px);min-height:520px;margin:0 auto;transition:max-width .2s}
.site-frame.sp{max-width:390px;border-width:8px;border-color:#2B3640;border-radius:32px}
.site-frame iframe{width:100%;height:100%;border:0;display:block}

/* 種別の一覧の下：特徴・対象障害はいくつでも選んで探せる */
.kfind h2 small{font-size:12px;color:var(--gray);font-weight:500;margin-left:6px}
.kchips{display:flex;flex-wrap:wrap;gap:8px}
.kchip{cursor:pointer}
.kchip input{position:absolute;opacity:0;pointer-events:none}
.kchip span{display:inline-flex;align-items:center;gap:6px;background:#fff;border:2px solid var(--line);border-radius:999px;padding:7px 16px;font-size:14px;color:var(--night)}
.kchip span::before{content:"";width:14px;height:14px;border-radius:4px;border:2px solid var(--lgray);flex:none}
.kchip:hover span{border-color:var(--blue)}
.kchip input:checked + span{background:var(--pale);border-color:var(--blue);color:var(--navy);font-weight:700}
.kchip input:checked + span::before{background:var(--blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.5l2.2 2.2 4.8-5' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px no-repeat;border-color:var(--blue)}
.kchip input:focus-visible + span{outline:3px solid rgba(58,151,221,.4)}
.kfind-btns{position:sticky;bottom:12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:22px}
.v-month{grid-template-columns:repeat(31,1fr);gap:3px;height:140px}
.v-month b{font-size:10px}
.v-month span{font-size:10px}
.v-month i{width:80%}
.v-month div:last-child i{background:var(--blue)}

/* 事業所カード：マウスを乗せる・キーボードで選ぶと、青い枠で囲む */
.portal .fcard{position:relative;transition:transform .15s,box-shadow .15s,border-color .15s}
.portal .fcard:hover,.portal .fcard:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue),0 10px 24px rgba(29,92,150,.16);transform:translateY(-3px);outline:none}
.portal .fcard:hover h3,.portal .fcard:focus-visible h3{color:var(--blue)}
.portal .fcard:active{transform:translateY(-1px)}
.portal .flist a{transition:box-shadow .15s,background .15s}
.portal .flist a:hover,.portal .flist a:focus-visible{background:var(--pale);box-shadow:inset 0 0 0 3px var(--blue);outline:none}
@media (prefers-reduced-motion:reduce){.portal .fcard,.portal .fcard:hover{transition:none;transform:none}}

/* トップの丸いイラストを大きく */
.point{grid-template-columns:1fr 400px;max-width:980px}
.point.rev{grid-template-columns:400px 1fr}
.point-pic{width:400px}
@media (max-width:900px){.point,.point.rev{grid-template-columns:1fr}.point-pic,.point.rev .point-pic{width:min(340px,86vw)}}

/* トップの3つの探し方ボタン：大きく・色分け・説明つき */
.sky-btns{padding:28px 0 32px}
.sky-btns .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:1080px}
.sky-btns-h{grid-column:1/-1;margin:0 0 2px;text-align:center;font-weight:700;font-size:18px;color:var(--navy)}
.sbtn{display:flex;align-items:center;gap:14px;min-width:0;border-radius:20px;padding:18px 18px 18px 18px;color:#fff;box-shadow:0 5px 0 rgba(0,0,0,.18);transition:transform .15s,box-shadow .15s,filter .15s}
.sbtn:hover,.sbtn:focus-visible{transform:translateY(-3px);box-shadow:0 8px 0 rgba(0,0,0,.18);filter:brightness(1.06);outline:none}
.sbtn:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.18)}
.sbtn.sb-near,.sbtn.sb-near:hover{background:var(--blue)}
.sbtn.sb-area,.sbtn.sb-area:hover{background:#2EA75A}
.sbtn.sb-find,.sbtn.sb-find:hover{background:var(--mint)}
.sb-ic{flex:none;width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.22);display:grid;place-items:center;font-style:normal}
.sbtn .sb-ic svg{width:34px;height:34px}
.sbtn span{display:flex;flex-direction:column;line-height:1.3;flex:1;min-width:0}
.sbtn small{font-size:13px;font-weight:700;opacity:.95}
.sbtn b{font-size:24px;letter-spacing:.04em}
.sbtn em{font-style:normal;font-size:12px;font-weight:500;opacity:.9;margin-top:2px}
.sb-go{flex:none;font-style:normal;width:34px;height:34px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:22px;font-weight:700;line-height:1}
.sb-near .sb-go{color:var(--blue)}.sb-area .sb-go{color:#2EA75A}.sb-find .sb-go{color:var(--mint)}
@media (max-width:900px){
  .sky-btns .wrap{grid-template-columns:1fr}
  .sbtn b{font-size:22px}
}

/* 探してもらう（短いフォーム） */
.ptitle small{font-size:14px;color:var(--orange);font-weight:700;margin-left:10px;background:#FFF1E6;border-radius:999px;padding:2px 12px;vertical-align:middle}
.find-lead{margin:-6px 0 16px}
.find-short{gap:20px}
.fq-h{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-weight:700;font-size:17px;color:var(--navy)}
.fq-h span{width:30px;height:30px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:14px;flex:none}
.fq-h em{font-style:normal;font-size:11px;color:var(--gray);background:var(--card);border-radius:999px;padding:1px 8px;font-weight:500}
.fkinds{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.fkind{cursor:pointer}
.fkind input{position:absolute;opacity:0;pointer-events:none}
.fkind span{display:flex;flex-direction:column;height:100%;border:2px solid var(--line);border-radius:14px;padding:10px 12px;background:#fff;line-height:1.35}
.fkind b{font-size:14px}
.fkind small{font-size:12px;color:var(--gray)}
.fkind input:checked + span{border-color:var(--blue);background:var(--pale)}
.fkind input:checked + span b{color:var(--navy)}
.fkind input:focus-visible + span{outline:3px solid rgba(58,151,221,.4)}
.frel{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.frel input{position:absolute;opacity:0;pointer-events:none}
.frel span{display:inline-block;border:2px solid var(--line);border-radius:999px;padding:5px 14px;font-size:14px;font-weight:700;cursor:pointer;background:#fff}
.frel input:checked + span{background:var(--blue);border-color:var(--blue);color:#fff}
.find-submit{width:100%;padding:16px;font-size:18px}
.find-notes-sm{font-size:12px;padding:10px 14px 10px 28px;margin:0}
@media (max-width:640px){.fkinds{grid-template-columns:1fr 1fr}}
.find-assure{margin:-4px 0 18px;background:#E9F7EE;border:2px solid #BFE5CB;border-radius:14px;padding:12px 16px;font-weight:700;color:#1F7A47}
.find-assure::before{content:"✓";display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#2EA75A;color:#fff;font-size:13px;margin-right:8px;vertical-align:1px}
/* 安心の2行：小さめ・控えめに（前の .find-assure を上書き） */
.find-assure{list-style:none;margin:-4px 0 16px;padding:8px 12px;background:#F2FAF5;border:1px solid #D3ECDC;border-radius:10px;font-weight:500;font-size:13px;color:#2F5A41;line-height:1.6}
.find-assure::before{content:none}
.find-assure li{position:relative;padding-left:18px}
.find-assure li + li{margin-top:2px}
.find-assure li::before{content:"✓";position:absolute;left:0;top:0;color:#2EA75A;font-weight:700}
@media (max-width:640px){.find-assure{font-size:12px;padding:6px 10px;background:transparent;border-color:#E2EEE6}}
.ptitle small{white-space:nowrap;display:inline-block}

/* 入力欄の見出し：「必須」を見出しの横に並べる（入力欄・説明は下の行に） */
label.f{display:flex;flex-wrap:wrap;align-items:center;column-gap:6px;row-gap:5px}
label.f > input,label.f > select,label.f > textarea,label.f > .slug-row,label.f > small{flex-basis:100%;min-width:0}
label.f > span:has(> .req){display:inline-flex;align-items:center}
label.f .req{margin-left:0}
.ptitle .ptitle-alias{display:block;white-space:normal;font-size:13px;color:var(--gray);font-weight:500;margin:4px 0 0;background:none;padding:0;border-radius:0}

/* 管理画面「Googleマップとつなぐ」 */
.gmaps{border-color:#BFE5CB}
.gm-count{margin:0 0 12px;font-weight:700}
.gm-count b{font-size:24px;color:#1F7A47;margin:0 2px}
.gm-links{display:grid;gap:12px}
.gm-row{display:flex;gap:8px;width:100%}
.gm-row input{flex:1;font-size:13px;background:var(--card)}
.gm-steps{margin-top:14px;background:var(--card);border-radius:12px;padding:0 16px}
.gm-steps summary{cursor:pointer;padding:12px 0;font-weight:700}
.gm-steps ol{margin:0 0 10px;padding-left:20px;font-size:14px}
.gm-steps li{margin:4px 0}
/* 保存バーの「保存しました」などの文字欄に、お知らせ画面用の白い枠が付かないようにする */
.savebar .msg{background:none;border:0;border-radius:0;padding:0;max-width:none;text-align:left}
.demo-bar{margin:0 0 14px;background:#FFF4E5;border:2px solid #F6C98A;border-radius:12px;padding:10px 16px;font-weight:700;color:#8A4B00}
.danger-zone{border-color:#EBC0B8}

/* 本部への問い合わせ（メール） */
.hq-btn{display:inline-flex;align-items:center;gap:4px;background:var(--mint);color:#fff;text-decoration:none;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:700;white-space:nowrap;box-shadow:0 2px 0 #D07C17}
.hq-btn:hover{background:#F6A944;color:#fff}
.hq-topics{display:grid;gap:10px;margin:6px 0 18px}
.hq-topic{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;background:#fff;border:2px solid var(--line);border-radius:16px;padding:14px 18px;text-decoration:none;color:var(--night);transition:.15s}
.hq-topic b{font-size:16px;color:var(--navy)}
.hq-topic small{grid-column:1;font-size:13px;color:var(--gray)}
.hq-topic i{grid-column:2;grid-row:1/3;font-style:normal;background:var(--blue);color:#fff;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:700;white-space:nowrap}
.hq-topic:hover,.hq-topic.on{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue)}
.hq-addr{background:var(--card);border-radius:14px;padding:14px 18px}
.hq-addr p{margin:0 0 4px;font-size:13px;color:var(--gray)}
.hq-mail{font-size:18px!important;font-weight:700;color:var(--navy)!important;word-break:break-all;user-select:all}
@media (max-width:640px){.app-hd .who .hq-btn{padding:5px 10px;font-size:12px}}

/* 「更新する」：変更があるときだけ出す */
.savebar .save-btn{display:none}
.savebar.dirty .save-btn{display:inline-flex;animation:savepop .25s ease-out}
.savebar.dirty{background:rgba(255,244,229,.97);border-top-color:#F6C98A}
.savebar.dirty .msg{color:#8A4B00;font-weight:700}
@keyframes savepop{from{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){.savebar.dirty .save-btn{animation:none}}
/* 新しい版の管理画面があるとき */
.new-version{position:fixed;left:50%;top:76px;transform:translateX(-50%);z-index:70;display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;border-radius:999px;padding:10px 12px 10px 20px;box-shadow:0 8px 24px rgba(0,0,0,.2);font-weight:700;font-size:14px;max-width:calc(100% - 24px)}

/* 掲載中の事業所の数を押すと一覧へ */
a.sky-badge{text-decoration:none;transition:transform .15s}
a.sky-badge:hover{transform:rotate(8deg) scale(1.05)}
.dtitle-link{color:inherit;text-decoration:none;display:inline-flex;align-items:baseline;gap:8px;flex-wrap:wrap;justify-content:center}
.dtitle-link:hover{text-decoration:underline;text-underline-offset:6px}
.dtitle-link small{font-size:15px;font-weight:500;opacity:.9}

/* 見出しの改行：携帯では左右の点線をやめ、文字が変なところで切れないようにする */
.dtitle h2{text-wrap:balance}
@media (max-width:640px){
  .dtitle h2{display:block;font-size:22px;line-height:1.5;word-break:auto-phrase}
  .dtitle h2::before,.dtitle h2::after{content:none}
  .dtitle h2 small{display:block;margin:2px 0 0}
  .dtitle-en{margin-top:6px}
  .dtitle-en::before,.dtitle-en::after{content:"";display:inline-block;width:18px;height:6px;margin:0 8px;vertical-align:middle;background:radial-gradient(circle,currentColor 2px,transparent 2.5px) center/9px 6px repeat-x;opacity:.7}
  .point h2,.fq-h,.ptitle,.find-lead,.office-lead{word-break:auto-phrase}
}

/* 管理画面「デザイン」：形・色・項目の並び */
.ds-h{font-weight:700;font-size:14px;margin:16px 0 8px;color:var(--navy)}
.ds-h:first-of-type{margin-top:4px}
.layout-pick{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.layout-pick label{cursor:pointer}
.layout-pick input{position:absolute;opacity:0;pointer-events:none}
.layout-pick span{display:flex;flex-direction:column;gap:4px;height:100%;border:2px solid var(--line);border-radius:14px;padding:10px;background:#fff}
.layout-pick strong{font-size:14px}
.layout-pick small{font-size:12px;color:var(--gray);line-height:1.5}
.layout-pick input:checked + span{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue) inset;background:var(--pale)}
.layout-pick input:focus-visible + span{outline:3px solid rgba(58,151,221,.4)}
/* 形の見本（小さな図） */
.lp{display:grid;gap:4px;height:64px;background:var(--card);border-radius:8px;padding:6px}
.lp b{display:block;background:#C9DDEB;border-radius:4px}
.lp-standard{grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr}
.lp-standard b:nth-child(1){grid-row:1/3}
.lp-standard b:nth-child(2){background:#F6C98A}
.lp-photo{grid-template-rows:2fr 1fr}
.lp-photo b:nth-child(1){background:#8FB8D6}
.lp-photo b:nth-child(3){display:none}
.lp-simple{grid-template-rows:1fr 1fr 1fr;padding:6px 22%}
.order-list{list-style:none;margin:0;padding:0;display:grid;gap:6px;counter-reset:o}
.order-list li{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:6px 8px 6px 12px;font-size:14px}
.order-list li::before{counter-increment:o;content:counter(o);font-weight:700;color:var(--blue);min-width:18px}
.order-list li.muted::before{content:none}
.order-list li span:first-of-type{flex:1}
.order-tools{display:flex;gap:4px;margin-left:auto}
.order-tools .icon-btn:disabled{opacity:.35;cursor:default}
.gallery-order{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.gallery-order li::before{content:none}
.gallery-order img{width:48px;height:36px;object-fit:cover;border-radius:6px}
.gallery-order b{color:var(--blue)}
@media (max-width:640px){.layout-pick{grid-template-columns:1fr}}

/* 種別の解説（全国の種別ページ） */
.kguide{margin-top:32px;background:#fff;border:2px solid var(--line);border-radius:20px;padding:28px 24px;line-height:1.9;font-size:15px}
.kguide h2{font-size:21px;color:var(--navy);margin:0 0 10px}
.kguide h3{font-size:16px;color:var(--navy);margin:26px 0 8px;padding-left:10px;border-left:4px solid var(--mint, #2BB59A)}
.kguide p{margin:0 0 8px}
.kguide-points{margin:0;padding-left:1.3em}
.kguide-points li{margin:4px 0}
.kguide-steps{list-style:none;margin:0;padding:0;counter-reset:st;display:grid;gap:10px}
.kguide-steps li{counter-increment:st;display:grid;grid-template-columns:34px 1fr;column-gap:10px;align-items:start}
.kguide-steps li::before{content:counter(st);grid-row:span 2;width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700;font-size:14px}
.kguide-steps b{display:block}
.kguide-steps span{font-size:14px;color:var(--gray)}
.kguide-help{margin-top:14px!important;background:var(--bg, #F4F7F6);border-radius:12px;padding:12px 14px;font-size:14px}
.kguide-faq details{border-bottom:1px solid var(--line);padding:10px 0}
.kguide-faq summary{cursor:pointer;font-weight:700}
.kguide-faq details p{margin:8px 0 0;font-size:14px}
.kguide-note{margin-top:14px!important;font-size:12px;color:var(--gray)}
.kguide-link{margin-top:20px;font-size:14px}
@media (max-width:640px){.kguide{padding:22px 16px;font-size:14px}.kguide h2{font-size:19px}}

/* 本部管理画面：いまサイトを見ている人 */
.live-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.live-head h2{margin:0;font-size:17px}
.live-n{font-size:30px;color:var(--navy);font-variant-numeric:tabular-nums}
.live-n small{font-size:14px;margin-left:2px}
.live-at{font-size:12px;margin-left:auto}
.live-dot{width:12px;height:12px;border-radius:50%;background:#C5CCD3}
.live-dot.on{background:#E5484D;box-shadow:0 0 0 0 rgba(229,72,77,.5);animation:livePulse 1.6s infinite}
@keyframes livePulse{70%{box-shadow:0 0 0 10px rgba(229,72,77,0)}100%{box-shadow:0 0 0 0 rgba(229,72,77,0)}}
.live h3{font-size:13px;color:var(--gray);margin:16px 0 6px}
.live-list{list-style:none;margin:0;padding:0}
.live-list li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
.live-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 本部管理画面：いまサイトを見ている人 */
.live-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.live-head h2{margin:0;font-size:17px}
.live-n{font-size:30px;color:var(--navy);font-variant-numeric:tabular-nums}
.live-n small{font-size:14px;margin-left:2px}
.live-at{font-size:12px;margin-left:auto}
.live-dot{width:12px;height:12px;border-radius:50%;background:#C5CCD3}
.live-dot.on{background:#E5484D;box-shadow:0 0 0 0 rgba(229,72,77,.5);animation:livePulse 1.6s infinite}
@keyframes livePulse{70%{box-shadow:0 0 0 10px rgba(229,72,77,0)}100%{box-shadow:0 0 0 0 rgba(229,72,77,0)}}
.live h3{font-size:13px;color:var(--gray);margin:16px 0 6px}
.live-list{list-style:none;margin:0;padding:0}
.live-list li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
.live-list li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-list li b{white-space:nowrap;flex-shrink:0}

/* スマホ：条件の一覧を短く（1行に1つずつ並べず、小さなボタンを横に並べる）／「エリア」「種別」の文字を折り返さない */
.karea{white-space:nowrap}
@media (max-width:640px){
  .karea select{flex:1;min-width:0;width:auto}
  .fk-panel{padding:4px 12px 12px}
  .fk-panel .others-list{display:flex;flex-wrap:wrap;gap:6px}
  .fk-panel .others-list a{padding:5px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px}
  .fk-panel .others-list a::before{display:none}
  .fk-g{margin:10px 0 6px}
  .kchips{gap:6px}
  .kchip span{padding:5px 11px;font-size:13px;border-width:1px}
  .kchip span::before{width:12px;height:12px}
  .kfind{padding:16px 14px}
  .kfind h2{font-size:15px;margin:14px 0 8px}
  .kfind-g{margin:8px 0 5px}
}
@media (max-width:640px){
  .fbox{padding:0 12px}
  .ffilter fieldset{margin-bottom:6px}
  .ffilter legend{margin-bottom:4px}
  .fchk{margin:0 4px 5px 0}
  .fchk span{padding:4px 10px;font-size:12.5px}
  .ffilter-btns{position:sticky;bottom:10px}
}
.more-chip{border:1px dashed var(--lgray);background:none;border-radius:999px;padding:4px 11px;font:inherit;font-size:12.5px;color:var(--blue);font-weight:700;cursor:pointer;margin:0 4px 5px 0}
.fchk[hidden],.others-list a[hidden]{display:none!important}
