/* Shared presentation for information pages, guides and nearby map. */

.content-page {
    max-width: 900px;
    margin: 0 auto;
    padding: 3rem 0;
}

.page-title {
    font-size: 2.5rem;
    font-weight: 700;
    margin-bottom: 2rem;
    color: var(--dark-color);
    display: flex;
    align-items: center;
    gap: 15px;
}

.about-intro {
    background: var(--brand);
    color: #fff;
    border-radius: 12px;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: var(--shadow);
}

.about-intro p {
    line-height: 1.9;
    font-size: 1.05rem;
    margin: 0;
}

.about-intro strong {
    color: #fff;
    font-weight: 700;
}

.content-card {
    background: #fff;
    border-radius: 12px;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: var(--shadow);
}

.content-card h2 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 1.2rem;
    color: var(--primary-color);
    display: flex;
    align-items: center;
    gap: 10px;
}

.content-card p {
    line-height: 1.8;
    color: var(--text-color,#3D5473);
    margin-bottom: 1rem;
}

.content-card ul {
    padding-left: 1.5rem;
    margin-bottom: 0.5rem;
}

.content-card li {
    line-height: 1.8;
    color: var(--text-color,#3D5473);
    margin-bottom: 0.6rem;
}

.content-card li.data-breakdown {
    list-style: none;
    margin-left: -0.5rem;
    color: var(--text-color,#3D5473);
    font-size: 0.95rem;
}

.content-card a {
    color: var(--primary-color);
    text-decoration: underline;
}

.content-card strong {
    color: var(--dark-color);
}

@media (max-width: 768px) {
    .page-title {
        font-size: 1.8rem;
    }

    .about-intro,
    .content-card {
        padding: 1.5rem;
    }
}


.guide-hub { max-width: 980px; margin: 0 auto; padding: 2.5rem 0 1rem; }

/* 인트로 */
.hub-head { text-align: center; margin-bottom: 2.5rem; }
.hub-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--primary-color); font-weight: 600; letter-spacing: .02em;
    background: #EAF2FF; padding: .4rem 1rem; border-radius: 50px; margin-bottom: 1rem;
}
.hub-title { font-size: 2.4rem; font-weight: 700; color: var(--dark-color); line-height: 1.3; margin-bottom: 1rem; }
.hub-lead { font-size: 1.08rem; line-height: 1.9; color: var(--text-color,#3D5473); max-width: 760px; margin: 0 auto; }

/* 요약 박스 */
.hub-summary {
    background: var(--brand);
    border: 1px solid var(--brand-line,#D8E5F4); border-radius: 16px; padding: 2rem; margin-bottom: 3rem;
}
.hub-summary h2 { display: flex; align-items: center; gap: 10px; font-size: 1.3rem; color: var(--dark-color); margin-bottom: 1rem; }
.hub-summary h2 i { color: var(--primary-color); }
.hub-summary ul { list-style: none; display: grid; gap: .8rem; }
.hub-summary li { position: relative; padding-left: 1.6rem; line-height: 1.8; color: var(--text-color,#3D5473); }
.hub-summary li::before { content: "\f0a4"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 0; color: var(--secondary-color); }
.hub-summary a { color: var(--primary-color); font-weight: 600; }
.hub-summary a:hover { text-decoration: underline; }

/* 섹션 타이틀 */
.hub-section-title { display: flex; align-items: center; gap: 10px; font-size: 1.5rem; color: var(--dark-color); margin-bottom: 1.5rem; }
.hub-section-title i { color: var(--primary-color); }

/* 카드 */
.guide-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 1.2rem; margin-bottom: 3rem; }
.guide-card {
    display: flex; gap: 1.2rem; background: #fff; border: 1px solid var(--border-color);
    border-radius: 14px; padding: 1.5rem; transition: all .25s; align-items: flex-start;
}
.guide-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); border-color: var(--primary-color); }
.guide-card-icon {
    width: 56px; height: 56px; flex-shrink: 0; border-radius: 14px; display: flex; align-items: center; justify-content: center;
    background: var(--brand); color: #fff; font-size: 1.5rem;
}
.guide-card-body h3 { font-size: 1.15rem; color: var(--dark-color); margin-bottom: .5rem; line-height: 1.45; }
.guide-card-body p { color: var(--text-color,#3D5473); line-height: 1.75; margin-bottom: .8rem; font-size: .96rem; }
.guide-card-more { color: var(--primary-color); font-weight: 600; font-size: .92rem; display: inline-flex; align-items: center; gap: 6px; }
.guide-card:hover .guide-card-more i { transform: translateX(4px); transition: transform .25s; }

/* 도구 */
.hub-tools { margin-bottom: 3rem; }
.tool-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.tool-item {
    display: flex; flex-direction: column; gap: .5rem; background: var(--light-color);
    border: 1px solid var(--border-color); border-radius: 12px; padding: 1.5rem; transition: all .25s;
}
.tool-item:hover { background: #fff; border-color: var(--primary-color); transform: translateY(-3px); box-shadow: var(--shadow); }
.tool-item i { font-size: 1.6rem; color: var(--primary-color); }
.tool-item strong { color: var(--dark-color); font-size: 1.1rem; }
.tool-item span { color: var(--text-color,#3D5473); font-size: .92rem; line-height: 1.6; }

/* 출처 */
.hub-source { background: var(--light-color); border-left: 4px solid var(--primary-color); border-radius: 8px; padding: 1.3rem 1.5rem; }
.hub-source p { color: var(--text-color,#3D5473); line-height: 1.85; font-size: .95rem; }
.hub-source i { color: var(--primary-color); margin-right: 6px; }

@media (max-width: 768px) {
    .hub-title { font-size: 1.7rem; }
    .guide-cards { grid-template-columns: 1fr; }
    .guide-card { flex-direction: column; }
}


.guide-article { max-width: 860px; margin: 0 auto; padding: 1.5rem 0 1rem; }

/* 빵부스러기 */
.gd-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .88rem; color: var(--text-color,#3D5473); margin-bottom: 1.5rem; }
.gd-breadcrumb a { color: var(--primary-color); }
.gd-breadcrumb a:hover { text-decoration: underline; }
.gd-breadcrumb i { font-size: .7rem; color: var(--brand-line,#D8E5F4); }

/* 머리말 */
.gd-head { border-bottom: 2px solid var(--light-color); padding-bottom: 1.8rem; margin-bottom: 2rem; }
.gd-title { font-size: 2.1rem; font-weight: 700; color: var(--dark-color); line-height: 1.35; margin-bottom: 1rem; display: flex; gap: 12px; align-items: baseline; }
.gd-title i { color: var(--primary-color); font-size: 1.6rem; }
.gd-meta { display: flex; flex-wrap: wrap; gap: 1.2rem; color: var(--text-color,#3D5473); font-size: .9rem; margin-bottom: 1.2rem; }
.gd-meta i { color: var(--primary-color); margin-right: 5px; }
.gd-lead { font-size: 1.08rem; line-height: 1.95; color: var(--text-color,#3D5473); }

/* 목차 */
.gd-toc { background: var(--light-color); border: 1px solid var(--border-color); border-radius: 12px; padding: 1.3rem 1.6rem; margin-bottom: 2.5rem; }
.gd-toc-title { font-weight: 700; color: var(--dark-color); margin-bottom: .8rem; display: flex; align-items: center; gap: 8px; }
.gd-toc-title i { color: var(--primary-color); }
.gd-toc ol { padding-left: 1.4rem; display: grid; gap: .5rem; }
.gd-toc a { color: var(--text-color,#3D5473); }
.gd-toc a:hover { color: var(--primary-color); text-decoration: underline; }

/* 본문 */
.gd-section { margin-bottom: 2.6rem; scroll-margin-top: 90px; }
.gd-section h2 { font-size: 1.55rem; font-weight: 700; color: var(--dark-color); margin-bottom: 1.1rem; padding-left: 14px; border-left: 5px solid var(--primary-color); }
.gd-section h3 { font-size: 1.2rem; color: var(--secondary-color); margin: 1.4rem 0 .8rem; }
.gd-section p { line-height: 1.95; color: var(--text-color,#3D5473); margin-bottom: 1rem; }
.gd-section strong { color: var(--dark-color); }

.gd-list { list-style: none; display: grid; gap: .7rem; margin: 1rem 0 1.2rem; }
.gd-list li { position: relative; padding-left: 1.7rem; line-height: 1.85; color: var(--text-color,#3D5473); }
.gd-list li::before { content: "\f00c"; font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 0; top: .15rem; color: var(--primary-color); font-size: .85rem; }

/* 단계 */
.gd-steps { counter-reset: step; list-style: none; display: grid; gap: 1rem; margin: 1.2rem 0; }
.gd-steps li { position: relative; padding: 1rem 1.2rem 1rem 3.4rem; background: var(--light-color); border-radius: 10px; line-height: 1.7; }
.gd-steps li::before { counter-increment: step; content: counter(step); position: absolute; left: 1rem; top: 1rem; width: 1.8rem; height: 1.8rem; background: var(--brand); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: .9rem; }
.gd-steps strong { color: var(--dark-color); }
.gd-steps p { margin: .3rem 0 0; color: var(--text-color,#3D5473); font-size: .95rem; }
.gd-steps a, .gd-section p a, .gd-qa a { color: var(--primary-color); font-weight: 600; }
.gd-steps a:hover, .gd-section p a:hover, .gd-qa a:hover { text-decoration: underline; }

/* 표 */
.gd-table-wrap { overflow-x: auto; margin: 1.2rem 0; }
.gd-table { width: 100%; border-collapse: collapse; font-size: .96rem; }
.gd-table th, .gd-table td { border: 1px solid var(--border-color); padding: .8rem 1rem; text-align: left; line-height: 1.6; }
.gd-table thead th { background: var(--primary-color); color: #fff; font-weight: 600; }
.gd-table tbody tr:nth-child(even) { background: var(--light-color); }

/* 콜아웃 */
.gd-callout { display: flex; gap: 12px; border-radius: 12px; padding: 1.1rem 1.3rem; margin: 1.4rem 0; line-height: 1.8; }
.gd-callout i { font-size: 1.2rem; margin-top: .15rem; flex-shrink: 0; }
.gd-callout-tip { background: #EAF2FF; border: 1px solid var(--brand-line,#D8E5F4); color: var(--text-color,#3D5473); }
.gd-callout-tip i { color: var(--secondary-color); }
.gd-callout-note { background: var(--brand-paper,#F4F8FF); border: 1px solid var(--brand-line,#D8E5F4); color: var(--text-color,#3D5473); }
.gd-callout-note i { color: var(--primary-color); }

/* 문답 */
.gd-qa { padding: 1rem 0; border-bottom: 1px dashed var(--border-color); }
.gd-q { font-weight: 700; color: var(--dark-color); margin-bottom: .4rem; }
.gd-q i { color: var(--primary-color); margin-right: 6px; }
.gd-a { color: var(--text-color,#3D5473); line-height: 1.85; }

/* 관련 안내 */
.gd-related { background: var(--light-color); border-radius: 14px; padding: 1.6rem; margin: 2.8rem 0 2rem; }
.gd-related h2 { font-size: 1.25rem; color: var(--dark-color); margin-bottom: 1rem; display: flex; align-items: center; gap: 8px; }
.gd-related h2 i { color: var(--primary-color); }
.gd-related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: .7rem; }
.gd-related-grid a { display: flex; align-items: center; gap: 10px; background: #fff; border: 1px solid var(--border-color); border-radius: 10px; padding: .9rem 1.1rem; color: var(--text-color,#3D5473); font-weight: 500; transition: all .2s; }
.gd-related-grid a:hover { border-color: var(--primary-color); color: var(--primary-color); transform: translateX(3px); }
.gd-related-grid i { color: var(--primary-color); }

/* 출처 */
.gd-source { background: #fff; border: 1px solid var(--border-color); border-left: 4px solid var(--primary-color); border-radius: 8px; padding: 1.3rem 1.5rem; }
.gd-source p { color: var(--text-color,#3D5473); line-height: 1.85; font-size: .92rem; margin-bottom: .6rem; }
.gd-source p strong { color: var(--dark-color); }
.gd-source i { color: var(--primary-color); }
.gd-back { margin-top: .8rem !important; }
.gd-back a { color: var(--primary-color); font-weight: 600; }
.gd-back a:hover { text-decoration: underline; }

@media (max-width: 768px) {
    .gd-title { font-size: 1.55rem; }
    .gd-title i { font-size: 1.2rem; }
    .gd-section h2 { font-size: 1.3rem; }
    .gd-related-grid { grid-template-columns: 1fr; }
}


.nearby-page {
    padding: 2rem 0;
}

.page-header {
    text-align: center;
    margin-bottom: 3rem;
}

.page-title {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--dark-color);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.page-description {
    color: var(--text-color,#3D5473);
    font-size: 1.1rem;
}

.location-request {
    text-align: center;
    padding: 4rem 2rem;
}

.btn-location {
    background: var(--brand);
    color: white;
    border: none;
    padding: 1.5rem 3rem;
    border-radius: 50px;
    font-size: 1.2rem;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    transition: all 0.3s;
    box-shadow: 0 10px 30px rgba(36, 87, 214, 0.12);
}

.btn-location:hover {
    transform: translateY(-3px);
    box-shadow: 0 15px 40px rgba(36, 87, 214, 0.24);
}

.help-text {
    margin-top: 1rem;
    color: var(--text-color,#3D5473);
}

.loading-state {
    text-align: center;
    padding: 4rem 2rem;
}

.spinner {
    width: 60px;
    height: 60px;
    margin: 0 auto 1.5rem;
    border: 4px solid var(--light-color);
    border-top-color: var(--primary-color);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.hidden {
    display: none !important;
}

.current-location {
    background: white;
    padding: 1rem 1.5rem;
    border-radius: 8px;
    box-shadow: var(--shadow);
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 500;
}

.current-location i {
    color: var(--primary-color);
    font-size: 1.2rem;
}

.map-container {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: var(--shadow);
    margin-bottom: 2rem;
}

#map {
    height: 500px;
    width: 100%;
}

.user-marker {
    background: none;
    border: none;
}

.user-marker-inner {
    width: 40px;
    height: 40px;
    background: var(--primary-color);
    border: 3px solid white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.2rem;
    box-shadow: 0 2px 10px rgba(23, 52, 92, 0.24);
}

.facility-popup h3 {
    font-size: 1rem;
    margin-bottom: 0.5rem;
    color: var(--dark-color);
}

.facility-popup .type {
    font-size: 0.85rem;
    color: var(--primary-color);
    margin-bottom: 0.3rem;
}

.facility-popup .distance {
    font-size: 0.9rem;
    color: var(--text-color,#3D5473);
    margin-bottom: 0.8rem;
}

.facility-popup .popup-link {
    display: inline-block;
    padding: 0.5rem 1rem;
    background: var(--primary-color);
    color: white;
    border-radius: 6px;
    font-size: 0.9rem;
    text-decoration: none;
}

.radius-control {
    background: white;
    padding: 1.5rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
    margin-bottom: 2rem;
}

.radius-control label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 500;
    margin-bottom: 1rem;
}

.radius-control input[type="range"] {
    width: 100%;
    height: 8px;
    border-radius: 5px;
    background: var(--light-color);
    outline: none;
}

.radius-control input[type="range"]::-webkit-slider-thumb {
    appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--primary-color);
    cursor: pointer;
}

.facilities-list {
    background: white;
    padding: 2rem;
    border-radius: 12px;
    box-shadow: var(--shadow);
}

.list-title {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 10px;
}

.list-title .count {
    color: var(--primary-color);
}

.facility-card {
    background: var(--light-color);
    border-radius: 12px;
    padding: 1.5rem;
    margin-bottom: 1rem;
    transition: all 0.3s;
}

.facility-card:hover {
    transform: translateX(5px);
    box-shadow: var(--shadow);
}

.facility-card.highlight {
    background: #EAF2FF;
    border: 2px solid var(--primary-color);
}

.facility-header {
    display: flex;
    justify-content: space-between;
    align-items: start;
    margin-bottom: 0.8rem;
    gap: 1rem;
}

.facility-name {
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--dark-color);
    flex: 1;
}

.facility-type {
    background: white;
    color: var(--primary-color);
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    white-space: nowrap;
}

.distance-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--primary-color);
    color: white;
    padding: 0.4rem 1rem;
    border-radius: 20px;
    font-weight: 500;
    margin-bottom: 1rem;
}

.facility-info {
    margin-bottom: 1.5rem;
}

.info-item {
    display: flex;
    align-items: start;
    gap: 10px;
    margin-bottom: 0.8rem;
    color: var(--text-color,#3D5473);
    font-size: 0.95rem;
}

.info-item i {
    color: var(--primary-color);
    margin-top: 2px;
    min-width: 16px;
}

.info-item a {
    color: var(--primary-color);
    text-decoration: underline;
}

.facility-actions {
    display: flex;
    gap: 0.8rem;
}

.btn-detail, .btn-map {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0.8rem;
    border-radius: 8px;
    font-weight: 500;
    transition: all 0.3s;
    border: none;
    cursor: pointer;
}

.btn-detail {
    background: var(--primary-color);
    color: white;
}

.btn-detail:hover {
    background: var(--secondary-color);
}

.btn-map {
    background: white;
    color: var(--dark-color);
}

.btn-map:hover {
    background: var(--brand-line,#D8E5F4);
}

.error-state {
    text-align: center;
    padding: 4rem 2rem;
}

.error-state i {
    font-size: 4rem;
    color: var(--accent-color);
    margin-bottom: 1rem;
}

.error-state p {
    font-size: 1.1rem;
    color: var(--text-color,#3D5473);
    margin-bottom: 2rem;
}

.btn-retry {
    background: var(--primary-color);
    color: white;
    border: none;
    padding: 1rem 2rem;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.no-results {
    text-align: center;
    padding: 3rem 2rem;
    color: var(--text-color,#3D5473);
}

.no-results i {
    font-size: 3rem;
    margin-bottom: 1rem;
    opacity: 0.5;
}

@media (max-width: 768px) {
    .page-title {
        font-size: 1.5rem;
    }

    #map {
        height: 350px;
    }

    .facility-header {
        flex-direction: column;
        align-items: start;
    }

    .facility-actions {
        flex-direction: column;
    }
}


.today-page{padding:1.5rem 0}
.page-header{text-align:center;margin-bottom:1.8rem}
.page-title{font-size:2rem;font-weight:700;color:var(--dark-color);display:flex;align-items:center;justify-content:center;gap:12px}
.page-description{color:var(--text-color,#3D5473);margin-top:.7rem;max-width:720px;margin-left:auto;margin-right:auto;line-height:1.8}
.rss-line{margin-top:.8rem} .rss-line a{color:var(--brand,#2457D6);font-weight:600;font-size:.9rem} .rss-line a:hover{text-decoration:underline}
.today-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.1rem}
.today-card{display:block;background:#fff;border:1px solid var(--border-color);border-radius:12px;padding:1.3rem;box-shadow:var(--shadow);transition:all .25s;border-top:4px solid var(--brand,#2457D6)}
.today-card.dem{border-top-color:#087E8B}
.today-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.tc-badge{font-size:.78rem;color:var(--text-color,#3D5473);margin-bottom:.5rem}
.tc-name{font-size:1.12rem;font-weight:700;color:var(--dark-color);margin-bottom:.35rem}
.tc-type{font-size:.85rem;color:var(--brand,#2457D6);margin-bottom:.7rem}
.today-card.dem .tc-type{color:#087E8B}
.tc-addr,.tc-phone{font-size:.87rem;color:var(--text-color,#3D5473);margin-top:.3rem} .tc-addr i,.tc-phone i{color:var(--text-color,#3D5473);width:15px}
.today-foot{text-align:center;margin-top:2rem;color:var(--text-color,#3D5473);font-size:.92rem}
.today-foot a{color:var(--primary-color);font-weight:500} .today-foot a:hover{text-decoration:underline}
.empty-state{text-align:center;padding:3rem;color:var(--text-color,#3D5473)} .empty-state i{font-size:2.5rem;margin-bottom:1rem}
@media(max-width:768px){.page-title{font-size:1.5rem}.today-grid{grid-template-columns:1fr}}


.miss-wrap { padding: 3rem 0 4.5rem; }
.miss-card {
    max-width: 680px;
    margin: 0 auto 2.4rem;
    background: #fff;
    border-radius: 16px;
    box-shadow: var(--shadow);
    padding: 2.4rem 1.5rem;
    text-align: center;
}
.miss-card h1 {
    font-size: 1.6rem;
    color: var(--dark-color);
    margin: 0.2rem 0 0.8rem;
    line-height: 1.45;
}
.miss-card p { color: var(--text-color,#3D5473); margin-bottom: 1.5rem; line-height: 1.75; }
.miss-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; justify-content: center; }
.miss-actions a {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--primary-color);
    color: #fff;
    padding: 0.75rem 1.2rem;
    border-radius: 999px;
    font-weight: 700;
}
.miss-actions a.alt {
    background: #fff;
    color: var(--primary-color);
    border: 1px solid var(--primary-color);
}
.miss-picks h2 {
    text-align: center;
    font-size: 1.25rem;
    color: var(--dark-color);
    margin-bottom: 0.4rem;
}
.miss-picks .pick-lead {
    text-align: center;
    color: var(--text-color,#3D5473);
    margin-bottom: 1.2rem;
}
.miss-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; }
.today-card { display: block; background: #fff; border: 1px solid var(--border-color); border-radius: 12px; padding: 1.2rem; box-shadow: var(--shadow); transition: all .25s; border-top: 4px solid var(--brand,#2457D6); }
.today-card.dem { border-top-color: #087E8B; }
.today-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-hover); }
.tc-badge { font-size: .78rem; color: var(--text-color,#3D5473); margin-bottom: .45rem; }
.tc-name { font-size: 1.08rem; font-weight: 700; color: var(--dark-color); margin-bottom: .3rem; }
.tc-type { font-size: .85rem; color: var(--brand,#2457D6); margin-bottom: .6rem; }
.today-card.dem .tc-type { color: #087E8B; }
.tc-addr, .tc-phone { font-size: .87rem; color: var(--text-color,#3D5473); margin-top: .3rem; }
.tc-addr i, .tc-phone i { color: var(--text-color,#3D5473); width: 15px; }
.miss-more { text-align: center; margin-top: 1.3rem; }
.miss-more a { color: var(--primary-color); font-weight: 700; }
.miss-more a:hover { text-decoration: underline; }
@media (max-width: 768px) {
    .miss-card h1 { font-size: 1.35rem; }
    .miss-grid { grid-template-columns: 1fr; }
}

/* Unified information hierarchy; these pages retain their original data and map behavior. */
.brand-site .content-page,.brand-site .guide-hub{max-width:1060px;padding:38px 0 12px;margin:0 auto}
.brand-site .guide-article{max-width:900px;padding:30px 0 12px}
.brand-site .content-page>.page-title{justify-content:flex-start;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.4;margin-bottom:24px}
.brand-site .information-head,.brand-site .hub-head,.brand-site .gd-head{background:#EAF2FF;border:1px solid var(--brand-line);border-radius:20px;padding:36px;margin-bottom:30px;text-align:left}
.brand-site .information-head h1,.brand-site .hub-title{font-size:clamp(1.9rem,4vw,2.75rem);line-height:1.4;margin:0 0 18px;font-weight:750}
.brand-site .information-head>p:last-child,.brand-site .hub-lead,.brand-site .gd-lead,.brand-site .information-lead{color:var(--brand-muted);font-size:1.04rem;line-height:1.9;max-width:800px;margin:0}
.brand-site .information-eyebrow,.brand-site .hub-eyebrow{color:var(--brand);font-weight:700;font-size:.82rem;letter-spacing:.04em;margin-bottom:14px;background:transparent;padding:0}
.brand-site .about-intro,.brand-site .content-card{border:1px solid var(--brand-line);border-radius:16px;padding:30px;background:#fff;box-shadow:none;margin-bottom:24px}
.brand-site .about-intro{background:var(--brand-paper,#F4F8FF);color:var(--text-color)}
.brand-site .about-intro h2,.brand-site .content-card h2{font-size:1.4rem;line-height:1.5;color:var(--brand-dark);margin-bottom:16px}
.brand-site .about-intro strong,.brand-site .content-card strong{color:var(--brand-dark)}
.brand-site .content-card p,.brand-site .content-card li,.brand-site .about-intro p{color:var(--text-color);line-height:1.9;font-size:1rem}
.brand-site .content-card p:last-child{margin-bottom:0}
.brand-site .content-card a,.brand-site .information-note a,.brand-site .faq-answer a{color:var(--brand);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.brand-site .update-date{display:inline-flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--brand-paper);border:1px solid var(--brand-line);border-radius:8px;color:var(--brand-muted);font-size:.9rem;line-height:1.6;padding:12px 16px;margin-bottom:18px}
.brand-site .information-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0}
.brand-site .information-service-grid>a,.brand-site .information-service-grid>article{min-width:0;background:var(--brand-paper);border:1px solid var(--brand-line);border-radius:12px;padding:24px;text-decoration:none;color:var(--text-color)}
.brand-site .information-service-grid>a:hover{border-color:var(--brand);background:var(--brand-paper,#F4F8FF)}
.brand-site .information-service-grid h3{font-size:1.2rem;margin:7px 0 10px;line-height:1.5}
.brand-site .information-service-grid p{font-size:.95rem;margin:0 0 16px;line-height:1.8}
.brand-site .information-service-grid>*>span{font-size:.8rem;color:var(--brand-muted)}
.brand-site .information-service-grid strong,.brand-site .information-link{display:inline-block;font-size:.93rem;font-weight:700;line-height:1.6;color:var(--brand);padding:8px 0;min-height:40px;text-decoration:underline;text-underline-offset:4px}
.brand-site .information-note{color:var(--brand-muted);line-height:1.85;font-size:.9rem;margin:18px 0}
.brand-site .information-source-list{display:grid;gap:8px;padding-left:22px;margin:16px 0 22px}
.brand-site .information-source-list span{font-size:.82rem}
.brand-site .information-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#EAF2FF;border:1px solid var(--brand-line);border-radius:16px;padding:30px;margin-top:30px}
.brand-site .information-cta h2{font-size:1.35rem;margin-bottom:8px}
.brand-site .information-cta p{color:var(--brand-muted);font-size:.95rem}
.brand-site .information-cta .brand-button{flex-shrink:0}
.brand-site .hub-summary{background:var(--brand-paper,#F4F8FF);border-color:var(--brand-line);padding:28px;margin-bottom:36px}
.brand-site .information-checks{margin-bottom:42px}
.brand-site .hub-section-title{font-size:1.45rem;line-height:1.5;margin-bottom:20px}
.brand-site .guide-card,.brand-site .tool-item{border-color:var(--brand-line);box-shadow:none;border-radius:14px}
.brand-site .guide-card:hover,.brand-site .tool-item:hover{transform:none;box-shadow:none}
.brand-site .guide-card-icon,.brand-site .gd-steps li::before{background:var(--brand)}
.brand-site .hub-source,.brand-site .gd-source,.brand-site .gd-toc,.brand-site .gd-related{background:#fff;border-color:var(--brand-line);border-radius:14px;line-height:1.9}
.brand-site .gd-head{padding:30px}
.brand-site .gd-title{font-size:clamp(1.7rem,3.7vw,2.2rem);line-height:1.5;align-items:flex-start;overflow-wrap:anywhere}
.brand-site .gd-title i{margin-top:7px;flex-shrink:0}
.brand-site .gd-meta,.brand-site .gd-breadcrumb{color:var(--brand-muted)}
.brand-site .gd-section{scroll-margin-top:120px;margin-bottom:38px}
.brand-site .gd-section h2{font-size:1.45rem;line-height:1.5}
.brand-site .gd-section h3{color:var(--brand);line-height:1.6}
.brand-site .gd-section p,.brand-site .gd-list li,.brand-site .gd-source p{color:var(--text-color);line-height:1.95}
.brand-site .gd-callout-tip,.brand-site .gd-callout-note{background:var(--brand-paper,#F4F8FF);border-color:var(--brand-line);color:var(--text-color)}
.brand-site .gd-related-grid a:hover{transform:none}
.brand-site .gd-table a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.brand-site .faq-container{margin:26px 0 34px}
.brand-site .faq-item{background:#fff;border:1px solid var(--brand-line);border-radius:13px;margin-bottom:12px;overflow:hidden}
.brand-site .faq-item[open]{border-color:var(--brand,#2457D6)}
.brand-site .faq-question{display:flex;align-items:center;gap:14px;list-style:none;cursor:pointer;padding:22px 24px;font-size:1.05rem;font-weight:650;color:var(--brand-dark);line-height:1.65;min-height:68px}
.brand-site .faq-question::-webkit-details-marker{display:none}
.brand-site .faq-question i{color:var(--brand);font-size:.8rem;flex-shrink:0}
.brand-site .faq-item[open]>.faq-question{background:var(--brand-paper,#F4F8FF)}
.brand-site .faq-item[open]>.faq-question i{transform:rotate(90deg)}
.brand-site .faq-answer{padding:22px 24px 24px 52px;color:var(--text-color);line-height:1.9;overflow-wrap:anywhere}
.brand-site .faq-answer p+p{margin-top:12px}
.brand-site .faq-answer ul{padding-left:22px;margin:12px 0}
.brand-site .faq-answer li{margin-bottom:6px}
.brand-site .help-card{background:#EAF2FF;border:1px solid var(--brand-line);border-radius:16px;padding:30px;color:var(--text-color);text-align:left;box-shadow:none}
.brand-site .help-card>i{font-size:1.5rem;color:var(--brand);margin-bottom:14px}
.brand-site .help-card h3{font-size:1.3rem;margin-bottom:10px}
.brand-site .help-card a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.brand-site .nearby-page,.brand-site .today-page{padding:28px 0 12px}
.brand-site .nearby-page .page-header,.brand-site .today-page .page-header{margin-top:0}
.brand-site .nearby-page .btn-location{background:var(--brand);border-radius:12px;box-shadow:none;min-height:52px;padding:16px 28px}
.brand-site .nearby-page .btn-location:hover{background:#17345C;transform:none}
.brand-site .nearby-page .help-text,.brand-site .nearby-page .no-results{color:var(--brand-muted)}
.brand-site .nearby-page .help-text a{color:var(--brand);text-decoration:underline;text-underline-offset:3px}
.brand-site .nearby-page .map-container,.brand-site .nearby-page .radius-control,.brand-site .nearby-page .facilities-list,.brand-site .nearby-page .current-location{border:1px solid var(--brand-line);box-shadow:none;border-radius:14px}
.brand-site .nearby-page .btn-map,.brand-site .nearby-page .btn-detail,.brand-site .nearby-page .btn-retry{min-height:44px;border-radius:9px}
.brand-site .nearby-page .facility-card.highlight{background:var(--brand-tint)}
.brand-site .nearby-page .radius-control input:focus-visible{outline:3px solid var(--brand,#2457D6);outline-offset:5px}
.brand-site .today-card{border-color:var(--brand-line);border-top-color:var(--brand);box-shadow:none;border-radius:14px}
.brand-site .today-card.dem{border-top-color:#087E8B}
.brand-site .today-card:hover{transform:none;box-shadow:none;border-color:var(--brand)}
.brand-site .tc-type{color:var(--brand)}
.brand-site .today-card.dem .tc-type{color:#087E8B}
.brand-site .tc-badge,.brand-site .today-foot,.brand-site .miss-picks .pick-lead{color:var(--brand-muted)}
.brand-site .rss-line a{color:var(--brand,#2457D6)}
.brand-site .miss-card{border:1px solid var(--brand-line);border-radius:20px;padding:38px 26px;box-shadow:none}
.brand-site .miss-card h1{font-size:clamp(1.6rem,4vw,2.2rem)}
.brand-site .miss-actions a{border-radius:10px;min-height:46px}
@media(max-width:700px){
 .brand-site .content-page,.brand-site .guide-hub,.brand-site .guide-article{padding-top:22px}
 .brand-site .information-head,.brand-site .hub-head,.brand-site .gd-head{padding:24px 20px;border-radius:16px}
 .brand-site .information-head h1{font-size:1.9rem}
 .brand-site .about-intro,.brand-site .content-card,.brand-site .hub-summary{padding:22px 20px}
 .brand-site .information-service-grid{grid-template-columns:1fr;gap:12px}
 .brand-site .information-service-grid>a,.brand-site .information-service-grid>article{padding:22px}
 .brand-site .information-cta{flex-direction:column;align-items:flex-start;padding:24px}
 .brand-site .faq-question{padding:18px;font-size:1rem;gap:10px}
 .brand-site .faq-answer{padding:20px 18px;font-size:.96rem}
 .brand-site .gd-title{display:block}
 .brand-site .gd-title i{display:block;margin:0 0 12px}
 .brand-site .gd-table th,.brand-site .gd-table td{padding:12px;font-size:.9rem}
 .brand-site .nearby-page .facilities-list{padding:20px 16px}
 .brand-site .nearby-page .facility-header{flex-wrap:wrap;gap:10px}
 .brand-site .nearby-page .facility-actions{flex-wrap:wrap}
 .brand-site .nearby-page .btn-location{max-width:100%;padding:16px 20px;font-size:1.05rem}
 .brand-site .miss-card{padding:30px 20px}
}
@media(prefers-reduced-motion:reduce){.brand-site .guide-card:hover,.brand-site .tool-item:hover,.brand-site .today-card:hover{transform:none}.brand-site .spinner{animation:none}}
