/* 禁煙外来の医療機関一覧（禁煙みちしるべ・2026-09-25 Cowork）。styles.css の色と見出しの形に合わせる */
.kc-page{--kc-blue:#3C89B4;--kc-link:#266282;--kc-pale:#EBF4F9;--kc-line:#dbe6ec;--kc-mute:#6b7478}
.kc-shell a{color:var(--kc-link)}
.kc-shell{padding:26px 0 70px}
.kc-heading h1{font-size:22px;line-height:1.45;margin:0 0 12px;padding-left:15px;border-left:7px solid #2079aa;color:#13394e}
.kc-heading p{margin:0 0 10px;font-size:14px;line-height:1.85}
.kc-heading .kc-sub{color:#333}
.kc-heading .kc-updated{margin:-4px 0 12px;font-size:12.5px;color:var(--kc-mute)}
.kc-heading .kc-caution{font-size:13px;color:#8a5a00;background:#fff7e6;border:1px solid #f3dfb5;border-radius:8px;padding:9px 12px;margin:14px 0 22px}

.kc-shell h2{font-size:18px;color:#13394e;margin:34px 0 14px;padding-bottom:8px;border-bottom:2px solid var(--kc-pale)}
.kc-shell h3{font-size:15px;margin:0 0 6px;color:#13394e}

.kc-map-wrap{margin:8px 0 6px}
.kc-map{height:360px;border:1px solid var(--kc-line);border-radius:10px;background:#eef3f6;z-index:0}
.kc-map .leaflet-popup-content{font-size:13px;line-height:1.6}
.kc-map-wrap{position:relative}
/* 地図で選んだ点の明るい青の輪（ゆっくり明滅。動きを減らす設定の人には止める） */
.kc-map .kc-halo{animation:kc-halo 1.6s ease-in-out infinite}
@keyframes kc-halo{0%,100%{stroke-opacity:1;fill-opacity:.24}50%{stroke-opacity:.8;fill-opacity:.1}}
@media (prefers-reduced-motion:reduce){.kc-map .kc-halo{animation:none}}
.kc-map-hint{margin:6px 0 0;font-size:12px;color:var(--kc-mute)}
/* 都道府県ページの地図の下「全国地図に戻る」（ss 10/2: 青字・今より大きく） */
.kc-map-back{margin:10px 0 0;font-size:16px;font-weight:700;line-height:1.5}
.kc-shell .kc-map-back a{color:#1a6fb5;text-decoration:none}
.kc-shell .kc-map-back a:hover{text-decoration:underline}
/* 全国地図の県名ラベル（縮尺 7 以上で表示） */
.kc-map .kc-pref-label{display:none;background:transparent;border:0}
.kc-map.kc-labels-on .kc-pref-label{display:block}
.kc-pref-label span{display:inline-block;padding:1px 6px;border-radius:9px;background:rgba(255,255,255,.92);border:1px solid #c9d6de;color:#1f3a4a;font-size:12px;font-weight:700;line-height:16px;white-space:nowrap;box-shadow:0 1px 2px rgba(0,0,0,.15);cursor:pointer}
/* 地図で選んだ医療機関（スマホ＝地図の下・PC＝地図の上に重ねる） */
.kc-sel{margin:10px 0 0;padding:12px;background:var(--kc-pale);border-radius:10px}
.kc-sel[hidden]{display:none}
.kc-sel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;padding:0 0 8px;border-bottom:2px solid var(--kc-blue);font-size:15px;font-weight:700;color:#13394e}
.kc-sel-close{appearance:none;border:0;background:none;padding:2px 6px;font-size:22px;line-height:1;color:#6b7478;cursor:pointer}
.kc-sel-close:hover{color:#13394e}
.kc-card-sel{border:1px solid var(--kc-line);border-radius:10px;padding:14px 16px;background:#fff}
.kc-sel-tools{display:flex;align-items:center;gap:6px;flex-shrink:0}
.kc-sel-more{font-size:13px;font-weight:700;text-decoration:none;white-space:nowrap}
.kc-sel-more[hidden]{display:none}
.kc-sel-wait{margin:0;font-size:13px;color:var(--kc-mute)}

.kc-near{margin:4px 0 18px}
.kc-near-btn{appearance:none;border:0;border-radius:999px;background:var(--kc-blue);color:#fff;font-size:15px;font-weight:700;padding:12px 26px;cursor:pointer;box-shadow:0 6px 16px #3C89B433}
.kc-near-btn:hover{background:#2e779e}
.kc-near-note{font-size:12px;color:var(--kc-mute);margin:8px 0 0}
.kc-near-out h2{margin-top:20px}
.kc-near-list{margin:0;padding-left:1.4em;font-size:14px;line-height:1.7}
.kc-near-list li{margin:0 0 8px}
.kc-near-list span{display:block;color:var(--kc-mute);font-size:12.5px}
.kc-near-list small{color:var(--kc-blue);font-weight:700}

.kc-region h3{margin:18px 0 8px}
.kc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.kc-grid>li>a{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--kc-line);border-radius:8px;padding:10px 12px;text-decoration:none;background:#fff;font-size:14px;color:#13394e}
.kc-grid>li>a:hover{border-color:var(--kc-blue);background:var(--kc-pale)}
.kc-grid small{color:var(--kc-mute);font-size:12px;white-space:nowrap}
.kc-grid>li.kc-seirei{grid-column:1/-1}
.kc-grid>li.kc-seirei>a{background:var(--kc-pale);font-weight:700}
.kc-wards{list-style:none;margin:6px 0 4px;padding:0 0 0 10px;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}
.kc-wards a{text-decoration:none}
.kc-wards small{margin-left:3px}

.kc-filter{display:flex;align-items:center;gap:8px;font-size:14px;margin:0 0 14px;padding:10px 12px;background:var(--kc-pale);border-radius:8px;cursor:pointer}
.kc-filter input{width:18px;height:18px}
.kc-cards{display:grid;grid-template-columns:1fr;gap:12px}
.kc-card{border:1px solid var(--kc-line);border-radius:10px;padding:14px 16px;background:#fff;scroll-margin-top:16px}
.kc-card.kc-hit{border-color:var(--kc-blue);box-shadow:0 0 0 3px #3C89B433}
.kc-card[hidden]{display:none}
.kc-addr,.kc-tel{margin:0;font-size:13.5px;line-height:1.7}
.kc-shots{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 10px}
.kc-shot{display:block;text-decoration:none;color:var(--kc-link);font-size:12px;font-weight:700}
.kc-shot img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top;border:1px solid var(--kc-line);border-radius:6px;background:#f1f4f6}
.kc-shot:hover img{border-color:var(--kc-blue)}
.kc-shot span{display:block;margin-top:3px}
.kc-shot-date{grid-column:1/-1;margin:0;font-size:11px;color:var(--kc-mute)}
.kc-tel a{font-weight:700;text-decoration:none}
.kc-btns{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.kc-btn{display:inline-flex;align-items:center;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700;text-decoration:none;line-height:1.3}
.kc-shell .kc-main{background:var(--kc-blue);color:#fff}
.kc-shell .kc-hp{background:#fff;color:var(--kc-link);border:1.5px solid var(--kc-blue)}
.kc-shell .kc-map-btn{background:var(--kc-blue);color:#fff} /* ss 10/16: 「禁煙外来のページを見る」の装飾を Googlemap に（禁煙外来のボタンは画像の下のリンクに任せて出さない） */
.kc-notice{margin:8px 0 2px;font-size:12.5px;color:#8a5a00;background:#fff7e6;border-radius:6px;padding:6px 10px}
.kc-meta{margin:6px 0 0;font-size:11.5px;color:var(--kc-mute)}
.kc-sum{margin:8px 0 2px;padding:8px 10px;background:#f4f8fa;border-radius:6px;font-size:13px;line-height:1.65;color:#2a3a42}
.kc-sum-stop{background:#fff7e6;color:#8a5a00}
.kc-sum-h{margin:0 0 2px;font-size:11.5px;font-weight:700;color:var(--kc-mute)}
.kc-sum-stop .kc-sum-h{color:#8a5a00}
.kc-sum-t{margin:0}

.kc-more{display:flex;flex-direction:column;gap:8px;margin:34px 0 0;font-size:14px}
.kc-source{margin-top:34px;font-size:12.5px;line-height:1.85;color:#555}
.kc-source h2{font-size:15px}
.kc-source p{margin:0 0 8px}

@media(min-width:801px){
  .kc-shell{padding:44px 0 90px}
  .kc-heading h1{font-size:32px;padding-left:18px;border-left-width:8px}
  .kc-heading p{font-size:15.5px}
  .kc-map{height:500px}
  /* PC: 縮尺ボタン（左上）の右に置き、地図の高さいっぱいを使う＝カードをスクロールさせない（ss 9/26） */
  .kc-sel{position:absolute;left:56px;top:10px;z-index:1000;width:380px;max-height:480px;overflow:auto;margin:0;padding:10px 14px 12px;background:#fff;border:1px solid var(--kc-line);box-shadow:0 8px 24px rgba(19,57,78,.18)}
  .kc-sel-head{margin:0 0 8px;padding:0 0 6px;font-size:14px}
  .kc-sel .kc-card-sel{padding:10px 12px}
  .kc-sel .kc-card-sel h3{font-size:14.5px;line-height:1.45;margin:0 0 6px}
  .kc-sel .kc-shots{gap:6px;margin:2px 0 6px}
  .kc-sel .kc-shot{font-size:11.5px}
  .kc-sel .kc-shot span{margin-top:2px}
  .kc-sel .kc-addr,.kc-sel .kc-tel{font-size:12.5px;line-height:1.6}
  .kc-sel .kc-btns{margin:6px 0 2px;gap:6px}
  .kc-sel .kc-btns{flex-wrap:wrap}
  .kc-sel .kc-btn{padding:5px 9px;font-size:11.5px;white-space:nowrap}
  .kc-sel .kc-notice{margin:6px 0 2px;padding:5px 8px;font-size:11.5px;line-height:1.55}
  .kc-sel .kc-sum{margin:6px 0 2px;padding:5px 8px;font-size:11.5px;line-height:1.55}
  .kc-sel .kc-sum-h{font-size:11px;margin:0}
  /* 地図の中のカードに収まらない要点は JS（fitSum）が3行→2行に縮める（CH-14・10/16） */
  .kc-sel .kc-sum.c3 .kc-sum-t{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .kc-sel .kc-sum.c2 .kc-sum-t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .kc-sel .kc-meta{display:none} /* 届出の時点・リンク確認日は一覧のカードに出ている。地図の中では省いて縦に収める */
  .kc-sel-more{font-size:12.5px}
  .kc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .kc-cards{grid-template-columns:1fr 1fr}
  .kc-shell h2{font-size:21px}
}
/* 診療時間の週間表（CH-16・ss 10/18 カルーの週間表にならう）。行＝時間帯・● は行の時間どおり・記号は表の下の時間 */
.kc-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.kc-hours{margin:10px 0 4px}
.kc-hours-h{margin:0 0 5px;font-size:12.5px;font-weight:700;color:#13394e;line-height:1.4}
.kc-hours-h span{font-weight:400;color:var(--kc-mute)}
.kc-hours-tags{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:4px 6px}
.kc-hours-tags li{font-size:11.5px;line-height:1.5;padding:1px 9px;border-radius:999px;background:var(--kc-pale);color:#13394e}
.kc-hours-t{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px;line-height:1.3;font-variant-numeric:tabular-nums;background:#fff}
.kc-hours-t th,.kc-hours-t td{border:1px solid var(--kc-line);padding:5px 0 4px;text-align:center;font-weight:400}
.kc-hours-t thead th{background:var(--kc-pale);color:#13394e;font-weight:700}
.kc-hours-t thead th:first-child{width:31%}
.kc-hours-t thead .kc-sat{color:#1a6fb5}
.kc-hours-t thead .kc-hol{color:#d0473a}
.kc-hours-t tbody th{color:#2a3a42;font-size:11.5px;white-space:nowrap;letter-spacing:-.01em}
.kc-hours-t td{color:#13394e;font-size:12px;line-height:0}
.kc-mk{display:inline-block;width:11px;height:11px;vertical-align:middle;background:no-repeat center/contain}
.kc-hours-t .kc-mk{vertical-align:-1px}
.kc-mk-n{font-weight:700;font-size:11px;line-height:1}
.kc-mk.m0{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='5' fill='%233C89B4'/%3E%3C/svg%3E")}
.kc-mk.m1{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.9' fill='none' stroke='%2313394e' stroke-width='1.3'/%3E%3Ccircle cx='6' cy='6' r='2.1' fill='%2313394e'/%3E%3C/svg%3E")}
.kc-mk.m2{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Ccircle cx='6' cy='6' r='4.9' fill='none' stroke='%2313394e' stroke-width='1.3'/%3E%3Ccircle cx='6' cy='6' r='2.3' fill='none' stroke='%2313394e' stroke-width='1.3'/%3E%3C/svg%3E")}
.kc-mk.m3{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1.4L10.9 10.4H1.1Z' fill='none' stroke='%2313394e' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E")}
.kc-mk.m4{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1.4L10.9 10.4H1.1Z' fill='%2313394e'/%3E%3C/svg%3E")}
.kc-mk.m5{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Crect x='1.7' y='1.7' width='8.6' height='8.6' fill='none' stroke='%2313394e' stroke-width='1.3'/%3E%3C/svg%3E")}
.kc-mk.m6{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Crect x='1.5' y='1.5' width='9' height='9' fill='%2313394e'/%3E%3C/svg%3E")}
.kc-mk.m7{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1L11 6L6 11L1 6Z' fill='none' stroke='%2313394e' stroke-width='1.3' stroke-linejoin='round'/%3E%3C/svg%3E")}
.kc-mk.m8{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M6 1L11 6L6 11L1 6Z' fill='%2313394e'/%3E%3C/svg%3E")}
/* 今日の列（html に kc-dow-<曜日> を JS が付ける・0＝日曜） */
.kc-dow-1 .kc-hours-t tr>:nth-child(2),.kc-dow-2 .kc-hours-t tr>:nth-child(3),.kc-dow-3 .kc-hours-t tr>:nth-child(4),.kc-dow-4 .kc-hours-t tr>:nth-child(5),.kc-dow-5 .kc-hours-t tr>:nth-child(6),.kc-dow-6 .kc-hours-t tr>:nth-child(7),.kc-dow-0 .kc-hours-t tr>:nth-child(8){background:#fff4cc}
.kc-dow-1 .kc-hours-t thead tr>:nth-child(2),.kc-dow-2 .kc-hours-t thead tr>:nth-child(3),.kc-dow-3 .kc-hours-t thead tr>:nth-child(4),.kc-dow-4 .kc-hours-t thead tr>:nth-child(5),.kc-dow-5 .kc-hours-t thead tr>:nth-child(6),.kc-dow-6 .kc-hours-t thead tr>:nth-child(7),.kc-dow-0 .kc-hours-t thead tr>:nth-child(8){background:#ffe9a8}
.kc-hours-ex{list-style:none;margin:5px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:2px 14px;font-size:11.5px;line-height:1.6;color:var(--kc-mute);font-variant-numeric:tabular-nums}
.kc-hours-ex li{display:flex;align-items:center;gap:4px}
.kc-hours-ex .kc-mk{width:10px;height:10px}
@media(max-width:360px){.kc-hours-t{font-size:11px}.kc-hours-t tbody th{font-size:10.5px}}
@media(min-width:801px){
  .kc-sel .kc-hours{display:none} /* 地図の中のカードは高さに収めるため出さない（一覧のカードにある） */
}
