/**
 * Map機能専用CSS
 * 各LPでincludeして使用するMap表示用のスタイル
 */

/* c-map - Map表示セクション */
.c-map {
    border-bottom: 1px solid #ddd;
    position: relative;
    padding-bottom: 50px;
    padding-top: 120px;
}

.c-map::before {
    left: 0;
    position: absolute;
    top: 0;
    background: linear-gradient(to bottom, #f1f3f9, #fff);
    content: "";
    height: 340px;
    width: 100%;
}

.c-map .inner {
    margin-inline: auto;
    position: relative;
    padding-left: 20px;
    padding-right: 20px;
    width: 1120px;
    max-width: 100%;
    z-index: 1;
}

.c-map__heading {
    font-size: 28px;
    font-weight: 700;
    line-height: 1.2777777778;
    width: 560px;
    max-width: calc(100% - 400px);
    text-align: left;
    position: relative;
    margin: 0 0 30px;
    padding: 0;
}

.c-map__heading span {
    color: #2d438b;
    font-size: 36px;
    letter-spacing: .05em;
    margin-right: 6px;
}

.c-map__nav {
    position: absolute;
    right: 20px;
    top: -15px;
    display: flex;
    align-items: center;
    gap: 25px;
}

.c-map__nav a {
    text-decoration: none;
    color: #fff;
}

.c-map__total {
    font-size: 20px;
    font-weight: 700;
}

.c-map__total span {
    font-family: Oswald, sans-serif;
    font-size: 30px;
    font-weight: 400;
    margin-left: 6px;
    margin-right: 4px;
}

.c-map__button {
    align-items: center;
    display: inline-flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    background-color: #2d438b;
    background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2226.485%22%20height%3D%2231.993%22%20viewBox%3D%220%200%2026.485%2031.993%22%3E%3Cg%20transform%3D%22translate(-37.994%20-1235.484)%22%3E%3Cpath%20d%3D%22M20.276%2C409.118a.577.577%2C0%2C0%2C1%2C0-1.155h1.071a1.4%2C1.4%2C0%2C0%2C1%2C.9.313%2C1.744%2C1.744%2C0%2C0%2C1%2C.537.8l3.65%2C10.62a.906.906%2C0%2C0%2C1%2C.052.3%2C1.006%2C1.006%2C0%2C0%2C1-.329.731%2C1.613%2C1.613%2C0%2C0%2C1-.589.352%2C1.759%2C1.759%2C0%2C0%2C1-.569.1H1.488a1.787%2C1.787%2C0%2C0%2C1-.571-.1%2C1.6%2C1.6%2C0%2C0%2C1-.585-.351A1.014%2C1.014%2C0%2C0%2C1%2C0%2C420a.959.959%2C0%2C0%2C1%2C.052-.3L3.7%2C409.073a1.731%2C1.731%2C0%2C0%2C1%2C.536-.8%2C1.39%2C1.39%2C0%2C0%2C1%2C.9-.313H6.211a.577.577%2C0%2C0%2C1%2C0%2C1.155H5.139a.275.275%2C0%2C0%2C0-.18.055.6.6%2C0%2C0%2C0-.165.274l-3.609%2C10.5a.836.836%2C0%2C0%2C0%2C.105.046.638.638%2C0%2C0%2C0%2C.2.034H25a.61.61%2C0%2C0%2C0%2C.2-.034.588.588%2C0%2C0%2C0%2C.107-.048l-3.607-10.494a.616.616%2C0%2C0%2C0-.167-.274.272.272%2C0%2C0%2C0-.178-.055Z%22%20transform%3D%22translate(37.994%20846.3)%22%20fill%3D%22%23fff%22/%3E%3Cpath%20d%3D%22M9.2%2C25.918a.581.581%2C0%2C0%2C1-.311-.09l-.018-.012a.278.278%2C0%2C0%2C1-.059-.059%2C39.876%2C39.876%2C0%2C0%2C1-6.254-8.553C.91%2C14.156%2C0%2C11.375%2C0%2C9.373V9.2a9.2%2C9.2%2C0%2C1%2C1%2C18.4%2C0v.174c0%2C1.992-.908%2C4.775-2.551%2C7.832a40.242%2C40.242%2C0%2C0%2C1-6.27%2C8.561A.542.542%2C0%2C0%2C1%2C9.2%2C25.918Zm0-20.4a3.986%2C3.986%2C0%2C1%2C0%2C3.982%2C3.986A3.989%2C3.989%2C0%2C0%2C0%2C9.2%2C5.52Z%22%20transform%3D%22translate(41.809%201235.484)%22%20fill%3D%22%23fff%22/%3E%3C/g%3E%3C/svg%3E");
    background-position: left 20px center;
    background-repeat: no-repeat;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    color: #fff;
    font-size: 24px;
    font-weight: 700;
    height: 70px;
    text-decoration: none;
    transition: .2s ease-in-out background-color;
    width: 320px;
    max-width: 100%;
}

@media (any-hover: hover) {
    .c-map__button:hover {
        background-color: #334c9f;
    }
}

.c-map__button-text {
    font-size: 20px;
    padding-left: 20px;
}

.c-map__area {
    position: relative;
    margin-top: 30px;
    padding: 0;
}

.c-map__gmap {
    height: 700px;
    width: 100%;
}

/* Mapコントロール - ピンを中心に再検索ボタン */
.map-controls {
    position: relative;
}

.btn-recenter {
    display: block;
    box-sizing: border-box;
    position: absolute;
    padding: 0 0 0 10px;
    width: 200px;
    height: 30px;
    background-color: #fff;
    color: #333;
    text-align: center;
    line-height: 30px;
    border-radius: 15px;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, .4);
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    transition: box-shadow .2s, color .2s;
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: bold;
}

.btn-recenter:hover {
    box-shadow: 0 6px 12px 0 rgba(0, 0, 0, .5);
}

.btn-recenter::before {
    position: absolute;
    content: "";
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224.849%22%20height%3D%2225.125%22%20viewBox%3D%220%200%2024.849%2025.125%22%3E%3Cg%20transform%3D%22translate%28-183.756%20-777.932%29%22%3E%3Cpath%20d%3D%22M201.3%2C780.932a8.3%2C8.3%2C0%2C1%2C1-8.3%2C8.3%2C8.31%2C8.31%2C0%2C0%2C1%2C8.3-8.3m0-3a11.3%2C11.3%2C0%2C1%2C0%2C11.3%2C11.3%2C11.3%2C11.3%2C0%2C0%2C0-11.3-11.3%22%20transform%3D%22translate%28-4%29%22%20fill%3D%22%232d438b%22%2F%3E%3Cpath%20d%3D%22M0%2C5.942A1.5%2C1.5%2C0%2C0%2C1-1.061%2C5.5a1.5%2C1.5%2C0%2C0%2C1%2C0-2.121L3.381-1.061a1.5%2C1.5%2C0%2C0%2C1%2C2.121%2C0%2C1.5%2C1.5%2C0%2C0%2C1%2C0%202.121L1.061%2C5.5A1.5%2C1.5%2C0%2C0%2C1%2C0%2C5.942Z%22%20transform%3D%22translate%28185.256%20797.115%29%22%20fill%3D%22%232d438b%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    top: 50%;
    left: 18px;
    transform: translateY(-50%);
    opacity: 1;
    transition: opacity .2s;
}

/* 各市区町村ボタンの色分け */
#warabi-city-btn { background: #dc3545; }
#saitama-city-btn { background: #007bff; }
#kawagoe-city-btn { background: #6f42c1; }
#kawaguchi-city-btn { background: #e83e8c; }
#kumagaya-city-btn { background: #fd7e14; }
#nearby-api-btn { background: #28a745; }

/* Map情報表示 */
.map-info {
    margin-top: 15px;
    padding: 15px;
    background: white;
    border-radius: 5px;
}

.map-info h4 {
    margin: 0 0 10px 0;
}

#map-info {
    font-size: 14px;
    color: #666;
}

/* ローディング表示 */
.loading {
    display: none;
    color: #007bff;
    text-align: center;
    margin: 10px 0;
}

/* エラー表示 */
.error {
    display: none;
    background: #f8d7da;
    color: #721c24;
    padding: 10px;
    border-radius: 5px;
    margin: 10px 0;
    text-align: center;
}

/* Mapコンテナ */
.map-container {
    position: relative;
    background: white;
    border-radius: 8px;
    overflow: hidden;
}

#map,
#map-city {
    width: 100%;
    height: 700px;
}

/* マーカーラベル */
.marker-label {
    position: absolute;
    background: white;
    padding: 5px 10px;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
    font-size: 12px;
    font-weight: bold;
    z-index: 1000;
    pointer-events: none;
}

.marker-label a {
    color: #2d438b;
    text-decoration: none;
    pointer-events: auto;
}

.marker-label a:hover {
    text-decoration: underline;
}

/* Google Maps InfoWindow スタイルオーバーライド */
.gm-style .gm-style-iw-c {
    padding: 0 !important;
}

.gm-style .gm-style-iw-c .gm-style-iw-chr {
    display: none !important;
}

.gm-style .gm-style-iw-c .gm-style-iw-d {
    padding: 0 !important;
    overflow: visible !important;
    max-height: none !important;
}

/* InfoWindow コンテンツ */
.info-window-content {
    position: relative;
    max-width: 400px;
}

.info-window-content h3 {
    background: #2d438b;
    margin: 0 0 10px;
    padding: 15px 55px 15px 15px;
    line-height: 1.3;
    font-weight: bold;
    font-size: 16px;
    color: #fff;
    text-align: left;
}

.info-window-content h3.info-window-title {
    cursor: pointer;
    transition: background-color 0.2s;
    position: relative;
    padding-left: 35px;
}

.info-window-content h3.info-window-title::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    width: 6.3px;
    height: 11.2px;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%229.278%22%20height%3D%2215.556%22%20viewBox%3D%220%200%209.278%2015.556%22%3E%3Cpath%20d%3D%22M349.5%2C703.222l-1.5%2C1.5L354.278%2C711%2C348%2C717.278l1.5%2C1.5L357.278%2C711Z%22%20transform%3D%22translate%28-348%20-703.222%29%22%20fill%3D%22%23fff%22/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    opacity: 0.9;
}

.info-window-content h3.info-window-title:hover {
    background: #1e2f5e;
}

.info-window-content h3.info-window-title:hover::before {
    opacity: 1;
}

.info-window-content h3.info-window-title:active {
    background: #162342;
}

.info-window-content div {
    margin: 0 15px 10px;
    display: flex;
}

.info-window-content div .info-icon {
    width: 16px;
    height: 16px;
    margin: 2px 5px 0 0;
    display: inline-block;
    flex-shrink: 0;
}

.info-window-content div .info-icon.address-icon {
    background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2212.839%22%20height=%2218.498%22%20viewBox=%220%200%2012.839%2018.498%22%3E%3Cpath%20d=%22M6.42,18.5a.4.4,0,0,1-.217-.064l-.012-.008a.2.2,0,0,1-.041-.042,28.439,28.439,0,0,1-4.365-6.1A13.141,13.141,0,0,1,0,6.69V6.566A6.5,6.5,0,0,1,6.42,0a6.5,6.5,0,0,1,6.419,6.566V6.69a13.229,13.229,0,0,1-1.78,5.59,28.7,28.7,0,0,1-4.376,6.11A.374.374,0,0,1,6.42,18.5Zm0-14.559a2.846,2.846,0,0,0,0,5.69,2.846,2.846,0,0,0,0-5.69Z%22%20fill=%22%232b4476%22/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.info-window-content div .info-icon.rating-icon {
    background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%2212.839%22%20height=%2218.498%22%20viewBox=%220%200%2012.839%2018.498%22%3E%3Cpath%20d=%22M6.42,18.5a.4.4,0,0,1-.217-.064l-.012-.008a.2.2,0,0,1-.041-.042,28.439,28.439,0,0,1-4.365-6.1A13.141,13.141,0,0,1,0,6.69V6.566A6.5,6.5,0,0,1,6.42,0a6.5,6.5,0,0,1,6.419,6.566V6.69a13.229,13.229,0,0,1-1.78,5.59,28.7,28.7,0,0,1-4.376,6.11A.374.374,0,0,1,6.42,18.5Zm0-14.559a2.846,2.846,0,0,0,0,5.69,2.846,2.846,0,0,0,0-5.69Z%22%20fill=%22%232b4476%22/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.info-window-content div .info-icon.access-icon {
    background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20xmlns:xlink=%22http://www.w3.org/1999/xlink%22%20width=%2216.686%22%20height=%2223.703%22%20viewBox=%220%200%2016.686%2023.703%22%3E%3Cdefs%3E%3CclipPath%20id=%22a%22%3E%3Crect%20width=%2216.686%22%20height=%2223.703%22%20fill=%22%232b4476%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%20transform=%22translate(0%20-0.001)%22%3E%3Cg%20transform=%22translate(0%200.001)%22%20clip-path=%22url(%23a)%22%3E%3Cpath%20d=%22M16.543%2C393.119l-2.971-2.97H12.436l.634.634H3.616l.634-.634H3.114l-.766.766a.437.437%2C0%2C0%2C0-.081.081L.143%2C393.119a.431.431%2C0%2C0%2C0-.036.6.43.43%2C0%2C0%2C0%2C.6-.036l.447-.447H15.528l.447.447a.4.4%2C0%2C1%2C0%2C.568-.568m-14.581-.682.85-.85H13.874l.85.85Z%22%20transform=%22translate(0%20-370.128)%22%20fill=%22%232b4476%22/%3E%3Cpath%20d=%22M25.812%2C12.238l-.169-8.169a1.041%2C1.041%2C0%2C0%2C0-.657-.9%2C20.624%2C20.624%2C0%2C0%2C0-4.585-.8V.976h1.43A.516.516%2C0%2C0%2C0%2C22.37.488.516.516%2C0%2C0%2C0%2C21.831%200H14.18a.516.516%2C0%2C0%2C0-.538.488.516.516%2C0%2C0%2C0%2C.538.488h1.43V2.4a23.911%2C23.911%2C0%2C0%2C0-4.579.792%2C1.007%2C1.007%2C0%2C0%2C0-.662.879L10.2%2C12.238c-.008.373-.014.983-.014%2C1.357v5.145a.68.68%2C0%2C0%2C0%2C.678.678H25.147a.68.68%2C0%2C0%2C0%2C.678-.678V13.594c0-.373-.006-.984-.014-1.357M16.339.976h3.333V2.327c-.479-.025-.983-.04-1.515-.04-.638%2C0-1.245.021-1.817.056ZM12%2C5.689a.7.7%2C0%2C0%2C1%2C.694-.678H23.32a.7.7%2C0%2C0%2C1%2C.694.678l.1%2C4.485a.662.662%2C0%2C0%2C1-.663.678H12.559a.662.662%2C0%2C0%2C1-.663-.678Zm.8%2C11.862a.933.933%2C0%2C1%2C1%2C.933-.932.932.932%2C0%2C0%2C1-.933.932m10.421%2C0a.933.933%2C0%2C1%2C1%2C.932-.932.932.932%2C0%2C0%2C1-.932.932%22%20transform=%22translate(-9.662)%22%20fill=%22%232b4476%22/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.info-window-content div span {
    font-size: 14px;
    color: #333;
    text-align: left;
}

.info-window-content div span.rating-display {
    display: flex;
    align-items: center;
    gap: 8px;
}

.info-window-content div span.rating-display .c-review__star {
    position: relative;
    margin: 0 0 5px !important;
    width: 97.6px;
    height: 16.8px;
}

.info-window-content div span.rating-display .c-review__star::before {
    left: 0;
    position: absolute;
    top: 0;
    background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22122%22%20height%3D%2221%22%20viewBox%3D%220%200%20122%2021%22%3E%3Cg%20transform%3D%22translate(16127%2011207)%22%3E%3Cpath%20d%3D%22M12.455%2C1l3%2C8h8l-6%2C6%2C2%2C7-7-4-7%2C4%2C2-7-6-6h8Z%22%20transform%3D%22translate(-16128.455%20-11208)%22%20fill%3D%22%23e8ce00%22/%3E%3Cpath%20d%3D%22M12.293%2C1l3%2C8h8l-6%2C6%2C2%2C7-7-4-7%2C4%2C2-7-6-6h8Z%22%20transform%3D%22translate(-16103.293%20-11208)%22%20fill%3D%22%23e8ce00%22/%3E%3Cpath%20d%3D%22M12.131%2C1l3%2C8h8l-6%2C6%2C2%2C7-7-4-7%2C4%2C2-7-6-6h8Z%22%20transform%3D%22translate(-16078.131%20-11208)%22%20fill%3D%22%23e8ce00%22/%3E%3Cpath%20d%3D%22M11.969%2C1l4%2C8h7l-5%2C6%2C1%2C7-7-4-7%2C4%2C2-7-6-6h8Z%22%20transform%3D%22translate(-16052.969%20-11208)%22%20fill%3D%22%23e8ce00%22/%3E%3Cpath%20d%3D%22M11.969%2C1l4%2C8h7l-5%2C6%2C1%2C7-7-4-7%2C4%2C2-7-6-6h8Z%22%20transform%3D%22translate(-16027.969%20-11208)%22%20fill%3D%22%23e8ce00%22/%3E%3C/g%3E%3C/svg%3E");
    background-size: 97.6px 16.8px;
    background-repeat: no-repeat;
    content: "";
    height: 100%;
    width: 100%;
}

.info-window-content div span.rating-display .c-review__star svg {
    vertical-align: bottom;
}

/* レーティング値による動的スタイル（0.0〜5.0） */
.info-window-content div span.rating-display .c-review__star[data-rating="0.0"]::before { width: 0%; }
.info-window-content div span.rating-display .c-review__star[data-rating="0.1"]::before { width: 1.8033130635%; }
.info-window-content div span.rating-display .c-review__star[data-rating="0.2"]::before { width: 3.6066261271%; }
.info-window-content div span.rating-display .c-review__star[data-rating="0.3"]::before { width: 5.4099391906%; }
.info-window-content div span.rating-display .c-review__star[data-rating="0.4"]::before { width: 7.2132522541%; }
.info-window-content div span.rating-display .c-review__star[data-rating="0.5"]::before { width: 9.0165653177%; }
.info-window-content div span.rating-display .c-review__star[data-rating="0.6"]::before { width: 10.8198783812%; }
.info-window-content div span.rating-display .c-review__star[data-rating="0.7"]::before { width: 12.6231914447%; }
.info-window-content div span.rating-display .c-review__star[data-rating="0.8"]::before { width: 14.4265045083%; }
.info-window-content div span.rating-display .c-review__star[data-rating="0.9"]::before { width: 16.2298175718%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.0"]::before { width: 20.4917173412%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.1"]::before { width: 22.2950304047%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.2"]::before { width: 24.0983434682%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.3"]::before { width: 25.9016565317%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.4"]::before { width: 27.7049695953%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.5"]::before { width: 29.5082826588%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.6"]::before { width: 31.3115957224%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.7"]::before { width: 33.1149087859%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.8"]::before { width: 34.9182218494%; }
.info-window-content div span.rating-display .c-review__star[data-rating="1.9"]::before { width: 36.721534913%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.0"]::before { width: 40.9834346823%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.1"]::before { width: 42.7867477459%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.2"]::before { width: 44.5900608094%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.3"]::before { width: 46.3933738729%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.4"]::before { width: 48.1966869365%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.5"]::before { width: 50%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.6"]::before { width: 51.8033130635%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.7"]::before { width: 53.6066261271%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.8"]::before { width: 55.4099391906%; }
.info-window-content div span.rating-display .c-review__star[data-rating="2.9"]::before { width: 57.2132522541%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.0"]::before { width: 61.4751519235%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.1"]::before { width: 63.278464987%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.2"]::before { width: 65.0817780506%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.3"]::before { width: 66.8850911141%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.4"]::before { width: 68.6884041776%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.5"]::before { width: 70.4917172412%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.6"]::before { width: 72.2950303047%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.7"]::before { width: 74.0983433682%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.8"]::before { width: 75.9016564318%; }
.info-window-content div span.rating-display .c-review__star[data-rating="3.9"]::before { width: 77.7049694953%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.0"]::before { width: 81.9668692647%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.1"]::before { width: 83.7701823282%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.2"]::before { width: 85.5734953917%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.3"]::before { width: 87.3768084553%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.4"]::before { width: 89.1801215188%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.5"]::before { width: 90.9834345823%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.6"]::before { width: 92.7867477459%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.7"]::before { width: 94.5900608094%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.8"]::before { width: 96.3933738729%; }
.info-window-content div span.rating-display .c-review__star[data-rating="4.9"]::before { width: 98.1966869365%; }
.info-window-content div span.rating-display .c-review__star[data-rating="5.0"]::before { width: 102.4585867058%; }

.info-window-content div span.rating-display .c-review__star svg {
    vertical-align: bottom;
}

.info-window-content div span.rating-display .rating-number {
    font-weight: bold;
    color: #333;
}

.info-window-content div span.rating-display small {
    display: inline-block;
    white-space: nowrap;
    background-image: url("data:image/svg+xml;utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20xmlns:xlink=%22http://www.w3.org/1999/xlink%22%20width=%2217.769%22%20height=%2216.534%22%20viewBox=%220%200%2017.769%2016.534%22%3E%3Cdefs%3E%3CclipPath%20id=%22a%22%3E%3Crect%20width=%2217.769%22%20height=%2216.534%22%20fill=%22%232b4476%22/%3E%3C/clipPath%3E%3C/defs%3E%3Cg%20clip-path=%22url(%23a)%22%3E%3Cpath%20d=%22M8.885,0c4.907,0,8.885,3.425,8.885,7.649A6.949,6.949,0,0,1,16,12.226l1.766,4.307-4.6-2.181a9.986,9.986,0,0,1-4.28.946C3.978,15.3,0,11.873,0,7.649S3.978,0,8.885,0m4.041,9.479a1.213,1.213,0,1,0-1.212-1.213,1.213,1.213,0,0,0,1.212,1.213m-4.041,0A1.213,1.213,0,1,0,7.672,8.267,1.213,1.213,0,0,0,8.885,9.479m-4.041,0A1.213,1.213,0,1,0,3.631,8.267,1.213,1.213,0,0,0,4.843,9.479%22%20fill=%22%232b4476%22/%3E%3C/g%3E%3C/svg%3E");
    background-position: left center;
    background-repeat: no-repeat;
    margin: 0 0 0 10px;
    padding: 0 0 0 14px;
}

/* InfoWindow 閉じるボタン */
.info-window-close-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    border: 3px solid #2d438b;
    background: #fff;
    color: #2d438b;
    border: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1001;
    transition: background-color 0.2s ease;
}

.info-window-close-btn:hover {
    border: 3px solid #334c9f;
}

/* 中央ピン */
.center-pin {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 24px;
    z-index: 1000;
    pointer-events: none;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .c-map {
        padding-top: 80px;
        padding-bottom: 30px;
    }
    
    .c-map .inner {
        padding-left: 15px;
        padding-right: 15px;
    }
    
    .c-map__heading {
        margin: 0;
        width: 100%;
        max-width: 100%;
        font-size: 24px;
        text-align: center;
    }
    
    .c-map__heading span {
        font-size: 28px;
    }
    
    .c-map__nav {
        position: static;
        margin-top: 10px;
        padding: 0;
        flex-direction: column;
        align-items: center;
        gap: 5px;
    }
    
    .c-map__button {
        width: 100%;
        margin-top: 15px;
    }
    
    .c-map__area {
        padding: 0;
    }
    
    .c-map__gmap {
        height: 500px;
    }
    
    #map,
    #map-city {
        height: 500px;
    }
}

@media (max-width: 480px) {
    .c-map {
        padding-top: 60px;
        padding-bottom: 20px;
    }
    
    .c-map__heading {
        font-size: 20px;
    }
    
    .c-map__heading span {
        font-size: 24px;
    }
    
    .c-map__gmap {
        height: 400px;
    }
    
    .c-map__total {
        font-size: 18px;
    }
    
    .c-map__total span {
        font-size: 24px;
    }
    
    .c-map__button {
        font-size: 18px;
        height: 55px;
    }
    
    .c-map__button-text {
        font-size: 16px;
        padding-left: 12px;
    }
    
    #map,
    #map-city {
        height: 400px;
    }
}

/* スマホ表示の調整 */
@media (max-width: 767px) {
    /* Google Mapsのマップタイプコントローラー（「地図」「航空写真」ボタン）の文字サイズと高さを調整 */
    .gm-style .gm-style-mtc button {
        font-size: 11px !important;
        height: 30px !important;
        line-height: 30px !important;
    }
    
    .gm-style .gm-style-mtc {
        font-size: 11px !important;
    }
    
    /* map-controlsの幅を100%に設定 */
    .map-controls {
        width: 100%;
    }
    
    /* 再検索ボタンを右上に */
    .btn-recenter {
        width: 160px;
        font-size: 12px;
        padding: 0 0 0 8px;
        top: 10px;
        left: auto;
        right: 10px;
        transform: none;
    }
    
    .btn-recenter::before {
        width: 14px;
        height: 14px;
        left: 12px;
    }
    
    /* InfoWindowの幅を84vwに */
    .gm-style .gm-style-iw-c {
        max-width: 84vw !important;
        width: 84vw !important;
    }
    
    .info-window-content {
        max-width: 100%;
    }
    
    .info-window-content h3 {
        font-size: 14px;
        padding: 12px 45px 12px 30px;
    }
    
    .info-window-content h3.info-window-title {
        padding-left: 30px;
    }
    
    .info-window-content h3.info-window-title::before {
        left: 12px;
        width: 5.5px;
        height: 9.8px;
    }
    
    .info-window-content div {
        margin: 0 12px 8px;
    }
    
    .info-window-content div span {
        font-size: 13px;
    }
    
    .info-window-content div span.rating-display {
        gap: 6px;
    }
    
    .info-window-content div span.rating-display .c-review__star {
        width: 85px;
        height: 14.7px;
    }
    
    .info-window-content div span.rating-display .c-review__star::before {
        background-size: 85px 14.7px;
    }
    
    .info-window-content div span.rating-display .rating-number {
        font-size: 13px;
    }
    
    .info-window-content div span.rating-display small {
        font-size: 11px;
    }
    
    /* クローズボタンをタイトル帯の上下センターに */
    .info-window-close-btn {
        top: 1.4vw;
    }
}
