.cm-pictogram { display: block; width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.service-card__icon .cm-pictogram, .support-card__icon .cm-pictogram, .cm-cognition-entry__icon .cm-pictogram, .cm-community-group__icon .cm-pictogram, .cm-sea-guide__icon .cm-pictogram, .wave-icon .cm-pictogram, .mountain-mark .cm-pictogram, .fishing-feature > span .cm-pictogram, .cm-hospital-mode-tabs button > span .cm-pictogram, .cm-hospital-panel-mark .cm-pictogram, .cm-tourism-points span .cm-pictogram, .cm-fraud-card__mark > span .cm-pictogram, .chiba-gift-card__mark .cm-pictogram { width: 27px; height: 27px; margin: auto; }
.support-card__icon, .cm-community-group__icon, .cm-cognition-entry__icon, .service-card__icon { font-size: 0 !important; }
.service-card__icon { position: relative; }.cm-pictogram-label { position: absolute; top: calc(100% + 7px); left: 50%; width: max-content; transform: translateX(-50%); color: #42655c; font-size: 9px; font-weight: 900; letter-spacing: .08em; line-height: 1; }
.cm-language { position: fixed; z-index: 9996; left: 18px; bottom: 18px; font-family: inherit; }
.safety-ticker .cm-language { position: absolute; left: max(14px, calc((100vw - 1180px) / 2)); top: calc(100% + 8px); bottom: auto; }
.safety-ticker .cm-language__panel { top: 62px; bottom: auto; }
.cm-language__toggle { display: flex; gap: 10px; align-items: center; min-height: 53px; padding: 8px 16px 8px 10px; border: 1px solid rgba(255,255,255,.7); border-radius: 999px; background: #08775b; color: #fff; box-shadow: 0 10px 28px rgba(8,62,50,.25); cursor: pointer; }
.cm-language__toggle:hover { background: #075f4a; }
.cm-language__globe { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 50%; background: #fff; color: #08775b; font-size: 19px; font-weight: 900; }
.cm-language__toggle strong, .cm-language__toggle small { display: block; line-height: 1.2; text-align: left; }
.cm-language__toggle strong { font-size: 14px; }.cm-language__toggle small { margin-top: 2px; font-size: 9px; letter-spacing: .08em; opacity: .85; }
.cm-language__panel { position: absolute; bottom: 62px; left: 0; width: min(330px, calc(100vw - 28px)); overflow: hidden; border: 1px solid #cfe2db; border-radius: 20px; background: #fff; box-shadow: 0 18px 50px rgba(21,62,50,.24); }
.cm-language__head { display: flex; align-items: center; justify-content: space-between; padding: 16px 17px; background: #eff9f5; color: #153f34; }
.cm-language__head strong { font-size: 16px; }.cm-language__head button { border: 0; background: transparent; color: #405d55; font-size: 25px; cursor: pointer; }
.cm-language__panel > a { display: flex; gap: 12px; align-items: center; padding: 11px 16px; border-top: 1px solid #e6efec; color: #173f34; text-decoration: none; }
.cm-language__panel > a:hover { background: #fff8e9; }
.cm-language__panel > a b { display: grid; place-items: center; flex: 0 0 38px; height: 38px; border-radius: 12px; background: #dff3eb; color: #08775b; font-size: 14px; }
.cm-language__panel > a span, .cm-language__panel > a small { display: block; }.cm-language__panel > a span { font-weight: 850; }.cm-language__panel > a small { margin-top: 2px; color: #667c75; font-size: 11px; font-weight: 600; }
.cm-language__panel > p { margin: 0; padding: 13px 16px 16px; border-top: 1px solid #e6efec; background: #fbfdfc; color: #64766f; font-size: 11px; line-height: 1.65; }
.cm-easy-ja { display: grid; gap: 28px; }.cm-easy-ja__intro { padding: clamp(28px,5vw,55px); border: 1px solid #d6e8e1; border-radius: 28px; background: linear-gradient(135deg,#edf9f5,#fff8e9); }
.cm-easy-ja__intro > span { color: #08775b; font-size: 12px; font-weight: 900; letter-spacing: .14em; }.cm-easy-ja__intro h2 { margin: 10px 0 15px; color: #153f34; font-size: clamp(31px,5vw,49px); line-height: 1.45; }.cm-easy-ja__intro p { max-width: 800px; margin: 0; color: #425f56; font-size: 18px; line-height: 2; }
.cm-easy-ja__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }.cm-easy-ja__card { display: grid; grid-template-columns: 64px 1fr; gap: 18px; padding: 25px; border: 1px solid #dbe9e4; border-radius: 22px; background: #fff; }.cm-easy-ja__mark { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 18px; background: #e3f4ed; color: #08775b; font-size: 17px; font-weight: 950; }.cm-easy-ja__card h3 { margin: 1px 0 8px; color: #173f34; font-size: 22px; }.cm-easy-ja__card p { margin: 0 0 12px; color: #4e675f; font-size: 16px; line-height: 1.8; }.cm-easy-ja__card a { color: #08775b; font-weight: 900; }.cm-easy-ja__card--emergency .cm-easy-ja__mark { background: #ffe5df; color: #a93428; }.cm-easy-ja__notice { padding: 23px 25px; border-radius: 20px; background: #143f34; color: #fff; }.cm-easy-ja__notice strong { font-size: 19px; }.cm-easy-ja__notice p { margin: 7px 0 0; color: #e6f3ee; font-size: 15px; line-height: 1.85; }
@media (max-width:760px) { .cm-language { left: 10px; bottom: 10px; }.safety-ticker .cm-language { left: 10px; top: calc(100% + 7px); bottom: auto; }.cm-language__toggle { min-height: 48px; padding: 7px 12px 7px 8px; }.cm-language__globe { width: 32px; height: 32px; }.cm-easy-ja__grid { grid-template-columns: 1fr; }.cm-easy-ja__intro p { font-size: 16px; }.cm-easy-ja__card { grid-template-columns: 54px 1fr; padding: 21px 18px; }.cm-easy-ja__mark { width: 52px; height: 52px; }.cm-easy-ja__card h3 { font-size: 20px; } }

/* AED emergency route: intentionally red and visible immediately below the alert strip. */
.cm-aed-entry { position:relative; z-index:16; padding:14px 0 11px; border-top:1px solid #f4b6b9; border-bottom:1px solid #e79ca1; background:linear-gradient(112deg,#fff 0%,#fff4f4 50%,#fff 100%); color:#173d34; box-shadow:0 10px 28px rgba(95,25,32,.09); }
.cm-aed-entry__inner { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:16px; }
.cm-aed-entry__mark { position:relative; display:grid; place-items:center; width:72px; height:72px; overflow:hidden; border:4px solid #fff; border-radius:18px; background:#c51f32; color:#fff; box-shadow:0 8px 18px rgba(145,13,31,.25); }
.cm-aed-entry__mark b { position:absolute; top:5px; left:8px; font-size:13px; letter-spacing:.05em; }
.cm-aed-entry__mark i { font-style:normal; font-size:41px; line-height:1; }
.cm-aed-entry__mark em { position:absolute; top:27px; left:31px; color:#c51f32; font-size:24px; font-style:normal; font-weight:900; }
.cm-aed-entry__eyebrow { display:block; margin-bottom:3px; color:#b21f2d; font-size:11px; font-weight:900; letter-spacing:.12em; }
.cm-aed-entry h2 { margin:0; color:#8e1421; font-size:clamp(22px,2.1vw,31px); line-height:1.2; }
.cm-aed-entry p { margin:5px 0 0; font-size:14px; line-height:1.55; }
.cm-aed-entry__actions { display:grid; gap:7px; min-width:300px; }
.cm-aed-entry__actions a { display:flex; justify-content:center; align-items:center; min-height:45px; padding:8px 15px; border-radius:13px; font-size:14px; font-weight:900; text-align:center; text-decoration:none; }
.cm-aed-entry__primary { border:2px solid #a71425; background:#c51f32; color:#fff; box-shadow:0 0 0 0 rgba(197,31,50,.42); animation:cm-aed-alert 1.8s ease-in-out infinite; }
.cm-aed-entry__primary:hover { background:#9f1724; color:#fff; }
.cm-aed-entry__secondary { border:1px solid #df9aa2; background:#fff; color:#901725; }
.cm-aed-entry__note { margin-top:8px; color:#63756f; font-size:10px; line-height:1.55; }
.cm-aed-entry__note a { color:#941828; font-weight:800; }
.cm-aed-entry__note [data-aed-status] { color:#9f1239; font-weight:900; }
.cm-hospital-aed-repeat { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:16px 0; padding:14px 16px; border:2px solid #d94a53; border-radius:16px; background:#fff7f7; color:#69202a; }
.cm-hospital-aed-repeat strong { font-size:17px; }
.cm-hospital-aed-repeat a { flex:0 0 auto; padding:10px 15px; border-radius:999px; background:#b71f2d; color:#fff; font-weight:900; text-decoration:none; animation:cm-aed-alert 1.8s ease-in-out infinite; }
@keyframes cm-aed-alert { 0%,100% { box-shadow:0 0 0 0 rgba(197,31,50,.4); filter:brightness(1); } 50% { box-shadow:0 0 0 7px rgba(197,31,50,0); filter:brightness(1.12); } }
@media (max-width:760px) { .cm-aed-entry { padding:12px 0 10px; }.cm-aed-entry__inner { grid-template-columns:56px 1fr; gap:10px; }.cm-aed-entry__mark { width:56px; height:56px; border-radius:14px; }.cm-aed-entry__mark b { top:3px; left:5px; font-size:10px; }.cm-aed-entry__mark i { font-size:32px; }.cm-aed-entry__mark em { top:21px; left:24px; font-size:19px; }.cm-aed-entry h2 { font-size:23px; }.cm-aed-entry p { font-size:13px; line-height:1.5; }.cm-aed-entry__actions { grid-column:1/-1; grid-template-columns:1fr; min-width:0; }.cm-aed-entry__actions a { min-height:52px; font-size:15px; }.cm-aed-entry__note { font-size:10px; }.cm-hospital-aed-repeat { align-items:stretch; flex-direction:column; }.cm-hospital-aed-repeat a { text-align:center; } }
@media (prefers-reduced-motion:reduce) { .cm-aed-entry__primary,.cm-hospital-aed-repeat a { animation:none; } }

/* Hospital AED map: an unmistakable emergency map card, distinct from 119. */
.cm-hospital-aed-repeat { display:grid; grid-template-columns:minmax(0,.72fr) minmax(260px,1.28fr); align-items:stretch; gap:12px; margin:18px 0; padding:12px; border:2px solid #d83643; border-radius:20px; background:linear-gradient(135deg,#fff 0%,#fff5f5 100%); color:#69202a; box-shadow:0 10px 28px rgba(145,19,34,.12); }
.cm-hospital-aed-repeat strong { display:flex; align-items:center; padding:14px 16px; color:#8f1724; font-size:0; line-height:1.4; }
.cm-hospital-aed-repeat strong::before { content:"緊急時のAED入口"; font-size:18px; font-weight:900; }
.cm-hospital-aed-repeat a { position:relative; display:grid; align-content:center; min-height:96px; padding:15px 20px 14px 76px; overflow:hidden; border:3px solid #fff; border-radius:18px; background-image:radial-gradient(circle at 36px 48px,#fff 0 21px,transparent 22px),linear-gradient(135deg,#c81729 0%,#a70d20 100%); color:#fff; box-shadow:0 9px 22px rgba(151,17,32,.28),inset 0 0 0 1px rgba(255,255,255,.28); font-size:0; font-weight:900; line-height:1.2; text-align:left; text-decoration:none; animation:cm-hospital-aed-map-pulse 2.2s ease-in-out infinite; }
.cm-hospital-aed-repeat a::before { content:"AED  MAP"; display:block; font-size:clamp(27px,2.7vw,36px); letter-spacing:.08em; line-height:1; }
.cm-hospital-aed-repeat a::after { content:"千葉県公式　近くの設置場所を確認 →"; display:block; margin-top:8px; font-size:13px; letter-spacing:.02em; line-height:1.45; }
.cm-hospital-aed-repeat a:hover { background-image:radial-gradient(circle at 36px 48px,#fff 0 21px,transparent 22px),linear-gradient(135deg,#df1d32 0%,#b70e22 100%); color:#fff; transform:translateY(-1px); }
.cm-hospital-aed-repeat a:focus-visible { outline:4px solid #ffd55b; outline-offset:3px; }
@keyframes cm-hospital-aed-map-pulse { 0%,100% { box-shadow:0 9px 22px rgba(151,17,32,.24),inset 0 0 0 1px rgba(255,255,255,.28); } 50% { box-shadow:0 9px 28px rgba(218,34,55,.46),inset 0 0 0 1px rgba(255,255,255,.38); } }
@media (max-width:760px) { .cm-hospital-aed-repeat { grid-template-columns:1fr; gap:7px; padding:10px; }.cm-hospital-aed-repeat strong { padding:5px 7px 3px; }.cm-hospital-aed-repeat strong::before { font-size:15px; }.cm-hospital-aed-repeat a { min-height:112px; padding:17px 14px 15px 76px; text-align:left; }.cm-hospital-aed-repeat a::before { font-size:31px; }.cm-hospital-aed-repeat a::after { font-size:13px; } }
@media (prefers-reduced-motion:reduce) { .cm-hospital-aed-repeat a { animation:none; } }

/* Home AED entrance uses the same clear AED MAP language as the hospital page. */
.cm-aed-entry--home .cm-aed-entry__actions { min-width:340px; }
.cm-aed-entry--home .cm-aed-entry__primary { position:relative; display:grid; align-content:center; min-height:96px; padding:15px 20px 14px 76px; overflow:hidden; border:3px solid #fff; border-radius:18px; background-image:radial-gradient(circle at 36px 48px,#fff 0 21px,transparent 22px),linear-gradient(135deg,#c81729 0%,#a70d20 100%); color:#fff; box-shadow:0 9px 22px rgba(151,17,32,.28),inset 0 0 0 1px rgba(255,255,255,.28); font-size:0; font-weight:900; line-height:1.2; text-align:left; animation:cm-hospital-aed-map-pulse 2.2s ease-in-out infinite; }
.cm-aed-entry--home .cm-aed-entry__primary::before { content:"AED  MAP"; display:block; font-size:clamp(27px,2.7vw,36px); letter-spacing:.08em; line-height:1; }
.cm-aed-entry--home .cm-aed-entry__primary::after { content:"千葉県公式　近くの設置場所を確認 →"; display:block; margin-top:8px; font-size:13px; letter-spacing:.02em; line-height:1.45; }
.cm-aed-entry--home .cm-aed-entry__primary:hover { background-image:radial-gradient(circle at 36px 48px,#fff 0 21px,transparent 22px),linear-gradient(135deg,#df1d32 0%,#b70e22 100%); color:#fff; transform:translateY(-1px); }
.cm-aed-entry__mark { animation:cm-aed-mark-gentle 1.9s ease-in-out infinite; transform-origin:center; }
.cm-aed-entry--home .cm-aed-entry__primary { animation:none; }
@keyframes cm-aed-mark-gentle { 0%,100% { background-color:#c51f32; box-shadow:0 8px 18px rgba(145,13,31,.22); transform:scale(1); } 50% { background-color:#e12b3e; box-shadow:0 8px 25px rgba(218,34,55,.48),0 0 0 5px rgba(218,34,55,.1); transform:scale(1.035); } }
@media (max-width:760px) { .cm-aed-entry--home .cm-aed-entry__actions { min-width:0; }.cm-aed-entry--home .cm-aed-entry__primary { min-height:112px; padding:17px 14px 15px 76px; }.cm-aed-entry--home .cm-aed-entry__primary::before { font-size:31px; }.cm-aed-entry--home .cm-aed-entry__primary::after { font-size:13px; } }
@media (prefers-reduced-motion:reduce) { .cm-aed-entry--home .cm-aed-entry__primary,.cm-aed-entry__mark { animation:none; } }
/* Mobile navigation: clear, generous controls for older visitors and touch use. */
@media (max-width: 1040px) {
  .site-header .menu-toggle {
    position: relative;
    display: grid;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    margin-left: auto;
    padding: 0;
    place-items: center;
    overflow: hidden;
    border: 1px solid #9fc7bc;
    border-radius: 14px;
    background: linear-gradient(145deg, #ffffff, #edf7f3);
    box-shadow: 0 5px 14px rgba(17, 76, 60, .11);
    cursor: pointer;
  }

  .site-header .menu-toggle::before,
  .site-header .menu-toggle::after,
  .site-header .menu-toggle span {
    position: absolute;
    display: block;
    width: 23px;
    height: 3px;
    margin: 0;
    border-radius: 999px;
    background: #126b56;
    transition: transform .2s ease, opacity .16s ease;
  }

  .site-header .menu-toggle::before { transform: translateY(-7px); }
  .site-header .menu-toggle::after { transform: translateY(7px); }
  .site-header .menu-toggle[aria-expanded="true"] { border-color: #08775b; background: #e4f4ee; }
  .site-header .menu-toggle[aria-expanded="true"]::before { transform: rotate(45deg); }
  .site-header .menu-toggle[aria-expanded="true"]::after { transform: rotate(-45deg); }
  .site-header .menu-toggle[aria-expanded="true"] span { opacity: 0; transform: scaleX(.25); }

  .site-header .site-nav {
    left: 14px;
    right: 14px;
    top: calc(100% + 9px);
    z-index: 120;
    max-height: min(70vh, 620px);
    padding: 11px;
    overflow-y: auto;
    border: 1px solid #bed8d0;
    border-radius: 18px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 18px 44px rgba(13, 57, 46, .2);
  }

  .site-header .site-nav ul { gap: 7px; }
  .site-header .site-nav li { margin: 0; }
  .site-header .site-nav a {
    display: flex;
    min-height: 54px;
    align-items: center;
    padding: 13px 16px;
    border: 1px solid #d6e6e0;
    border-radius: 13px;
    background: #f8fcfa;
    color: #153f35;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.45;
  }

  .site-header .site-nav a::after {
    content: "→";
    margin-left: auto;
    padding-left: 12px;
    color: #168167;
    font-size: 17px;
  }

  .site-header .site-nav a:hover,
  .site-header .site-nav a:focus-visible {
    border-color: #75b5a3;
    background: #eaf7f2;
    color: #075843;
  }
}

@media (max-width: 440px) {
  .site-header .menu-toggle {
    flex-basis: 44px;
    width: 44px;
    height: 44px;
  }

  .site-header .site-nav a {
    min-height: 56px;
    font-size: 19px;
  }
}
