.geo-page { --geo-accent:#bb2649; --geo-accent-dark:#8f1733; --geo-pink:#fff4f6; --geo-line:#eee7e9; background:radial-gradient(circle at 8% 2%, rgba(244,50,96,.09), transparent 34rem), linear-gradient(180deg, #fffdfd 0%, #faf9f7 48%, #fff 100%); color:#252525; min-height:100vh; padding:150px 24px 100px; }
.geo-shell { width:min(1040px, 100%); margin:0 auto; }
.geo-index-shell { width:min(1180px, 100%); }
.geo-breadcrumb { display:flex; gap:10px; margin-bottom:42px; color:#777; font-size:14px; overflow:hidden; white-space:nowrap; }
.geo-breadcrumb > * + *::before { content:"/"; margin-right:10px; color:#bbb; }
.geo-breadcrumb span { overflow:hidden; text-overflow:ellipsis; }
.geo-branch { width:100%; min-width:180px; padding:13px 38px 13px 15px; border:1px solid #e8d6da; border-radius:12px; outline:none; background:#fff; color:#342b2d; font-size:14px; font-weight:700; }
.geo-branch:focus { border-color:var(--geo-accent); box-shadow:0 0 0 3px rgba(187,38,73,.09); }
.geo-index-section { margin-top:0; }
.geo-list-header { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:25px; }
.geo-list-header h2 { margin:0; color:#282123; font-size:34px; letter-spacing:-.04em; }
.geo-list-branch { display:flex; align-items:center; gap:12px; }
.geo-list-branch label { color:#817679; font-size:13px; font-weight:700; white-space:nowrap; }
.geo-list-branch .geo-branch { width:190px; }
.geo-list { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:20px; }
.geo-card { position:relative; overflow:hidden; display:flex; flex-direction:column; min-height:300px; border:1px solid var(--geo-line); border-radius:22px; background:rgba(255,255,255,.92); color:inherit; text-decoration:none; box-shadow:0 12px 35px rgba(66,31,40,.04); transition:border-color .18s, box-shadow .18s, transform .18s; }
.geo-card:first-of-type { grid-column:1 / -1; min-height:325px; background:linear-gradient(130deg, #fff 0%, #fff 68%, #fff2f5 100%); }
.geo-card:first-of-type:not(.has-thumbnail)::after { content:""; position:absolute; right:-55px; bottom:-95px; width:260px; height:260px; border:55px solid rgba(187,38,73,.04); border-radius:50%; }
.geo-card-body { position:relative; z-index:1; display:flex; flex:1; flex-direction:column; padding:32px; }
.geo-card:first-of-type .geo-card-body { padding:42px 46px; }
.geo-card-thumb { overflow:hidden; aspect-ratio:16 / 9; background:#f4eff0; }
.geo-card-thumb img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.geo-card:hover .geo-card-thumb img { transform:scale(1.025); }
.geo-card:first-of-type.has-thumbnail { display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(300px, .85fr); }
.geo-card:first-of-type.has-thumbnail .geo-card-thumb { grid-column:2; grid-row:1; height:100%; aspect-ratio:auto; }
.geo-card:first-of-type.has-thumbnail .geo-card-body { grid-column:1; grid-row:1; }
.geo-card:hover { border-color:#e3aebc; box-shadow:0 20px 45px rgba(83,31,44,.09); transform:translateY(-4px); }
.geo-card-meta { position:relative; z-index:1; display:flex; align-items:center; gap:9px; }
.geo-card-number { display:flex; align-items:center; justify-content:center; width:31px; height:31px; border-radius:50%; background:var(--geo-pink); color:var(--geo-accent); font-size:11px; font-weight:800; }
.geo-card-category { padding:6px 10px; border-radius:999px; background:#f8f5f4; color:#786d70; font-size:11px; font-weight:700; }
.geo-date { margin-left:auto; color:#aaa0a2; font-size:12px; }
.geo-card h2 { position:relative; z-index:1; margin:25px 0 13px; color:#2b2426; font-size:25px; line-height:1.42; letter-spacing:-.025em; word-break:keep-all; }
.geo-card:first-of-type h2 { max-width:780px; font-size:34px; }
.geo-card-summary { position:relative; z-index:1; margin:0; color:#71676a; line-height:1.75; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.geo-card:first-of-type .geo-card-summary { max-width:780px; }
.geo-more { position:relative; z-index:1; display:inline-block; align-self:flex-start; margin-top:auto; padding-top:24px; color:var(--geo-accent); font-size:13px; font-weight:800; }
.geo-more::after { content:"→"; display:inline-block; margin-left:4px; transition:margin-left .18s; }
.geo-card:hover .geo-more::after { margin-left:9px; }
.geo-empty { grid-column:1 / -1; padding:80px 20px; border:1px solid var(--geo-line); border-radius:22px; background:#fff; color:#857b7d; text-align:center; }
.geo-pagination { display:flex; justify-content:center; align-items:center; gap:7px; margin:42px 0 0; }
.geo-page-num, .geo-page-arrow { display:flex; align-items:center; justify-content:center; min-width:38px; height:38px; padding:0 7px; border:1px solid var(--geo-line); border-radius:50%; background:#fff; color:#766d70; text-decoration:none; font-size:13px; transition:border-color .15s, background-color .15s, color .15s; }
.geo-page-num:hover, .geo-page-arrow:hover { border-color:var(--geo-accent); color:var(--geo-accent); }
.geo-page-num.active { background:var(--geo-accent); border-color:var(--geo-accent); color:#fff; font-weight:800; box-shadow:0 8px 18px rgba(187,38,73,.2); }
.geo-view-shell { width:min(1480px, 100%); max-width:none; }
.geo-reading-layout { display:grid; grid-template-columns:minmax(170px, 240px) minmax(560px, 820px) minmax(180px, 240px); grid-template-areas:"related article toc"; justify-content:center; align-items:start; gap:clamp(16px, 2vw, 30px); }
.geo-article-column { grid-area:article; min-width:0; }
.geo-article { overflow:hidden; padding:58px 64px 64px; background:#fff; border:1px solid rgba(187,38,73,.1); border-radius:28px; box-shadow:0 22px 70px rgba(66,31,40,.08); }
.geo-article-header { padding-bottom:8px; }
.geo-article h1 { max-width:700px; margin:18px 0 24px; font-size:clamp(34px, 4vw, 52px); line-height:1.25; letter-spacing:-.045em; word-break:keep-all; }
.geo-kicker { display:inline-flex; align-items:center; min-height:30px; margin:0; padding:5px 12px; border-radius:999px; background:var(--geo-pink); color:var(--geo-accent); font-size:13px; font-weight:700; letter-spacing:.02em; }
.geo-article-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 24px; }
.geo-byline { margin:0; color:var(--geo-accent); font-size:14px; font-weight:700; }
.geo-summary { margin-top:34px; padding:24px 26px; border:1px solid #f4dce2; border-radius:16px; background:linear-gradient(135deg, #fff5f7, #fffafb); }
.geo-summary span { display:block; margin-bottom:9px; color:var(--geo-accent); font-size:12px; font-weight:800; letter-spacing:.08em; }
.geo-summary p { margin:0; color:#493b3f; font-size:16px; line-height:1.75; word-break:keep-all; }
.geo-disclaimer { margin-top:44px; padding-top:22px; border-top:1px solid var(--geo-line); color:#8e8789; font-size:13px; line-height:1.7; }
.geo-review { display:flex; flex-wrap:wrap; gap:10px 22px; margin:0; font-size:13px; }
.geo-review div { display:flex; gap:8px; }
.geo-review dt { color:#a0989a; }
.geo-review dd { color:#595154; }
.geo-content { margin-top:58px; color:#393536; font-size:17px; line-height:1.95; }
.geo-content p { margin:0 0 22px; }
.geo-content h2 { scroll-margin-top:130px; margin:70px 0 24px; padding-top:0; border:0; color:#211d1e; font-size:30px; line-height:1.42; letter-spacing:-.025em; word-break:keep-all; }
.geo-content h2::before { content:""; display:block; width:30px; height:4px; margin-bottom:15px; border-radius:99px; background:linear-gradient(90deg, var(--geo-accent), #f58aa3); }
.geo-content h3 { scroll-margin-top:130px; margin:42px 0 16px; color:#4d3038; font-size:22px; line-height:1.5; letter-spacing:-.015em; }
.geo-content strong, .geo-content b { font-weight:700; }
.geo-content a { color:var(--geo-accent); text-underline-offset:3px; }
.geo-content ul, .geo-content ol { margin:0 0 22px; padding:18px 22px 18px 42px; border-radius:14px; background:#fcfaf9; }
.geo-content li { margin-top:8px; }
.geo-content li::marker { color:var(--geo-accent); }
.geo-content blockquote { margin:30px 0; padding:20px 24px; border:0; border-left:4px solid var(--geo-accent); border-radius:0 14px 14px 0; background:var(--geo-pink); color:#554b4e; }
.geo-content table { width:100%; table-layout:fixed; border-collapse:collapse; margin:24px 0; font-size:15px; }
.geo-content th, .geo-content td { padding:12px 14px; border:1px solid var(--geo-line); text-align:left; word-break:break-word; }
.geo-content th { background:#fff6f8; }
.geo-content img { display:block; max-width:100%; height:auto; margin:30px auto; border-radius:18px; }
.geo-author-card { margin-top:52px; padding:22px 24px; border:1px solid #f1d8de; border-radius:16px; background:#fff8f9; }
.geo-author-name { font-weight:700; }
.geo-author-desc { margin-top:8px; color:#6d6265; font-size:14px; line-height:1.7; }
.geo-faq { margin-top:60px; padding-top:40px; border-top:1px solid #ddd; }
.geo-faq h2 { scroll-margin-top:130px; margin-bottom:22px; font-size:28px; }
.geo-faq-item { margin-top:10px; padding:22px 24px; border:1px solid #f0e6e8; border-radius:14px; background:#fffdfd; }
.geo-faq-q { font-weight:700; }
.geo-faq-q::before { content:"Q. "; color:var(--geo-accent); }
.geo-faq-a { margin-top:12px; color:#666; line-height:1.8; white-space:pre-line; }
.geo-faq-a::before { content:"A. "; color:#999; font-weight:700; }
.geo-clinic { margin-top:32px; padding:30px; border:1px solid #f1dfe3; border-radius:20px; background:linear-gradient(135deg, #fff7f9, #fff); }
.geo-view-shell > .geo-clinic { width:min(820px, 100%); margin:34px auto 0; box-shadow:0 14px 40px rgba(66,31,40,.05); }
.geo-index-clinic { display:flex; align-items:center; justify-content:space-between; gap:45px; margin-top:70px; padding:38px 42px; box-shadow:0 14px 40px rgba(66,31,40,.045); }
.geo-index-clinic > div:first-child { flex:1 1 auto; }
.geo-index-clinic .geo-cta-btns { flex:0 1 400px; margin-top:0; }
.geo-clinic h2 { margin-bottom:18px; color:#34282b; font-size:22px; }
.geo-clinic dl div { display:grid; grid-template-columns:80px 1fr; gap:14px; margin-top:9px; line-height:1.6; }
.geo-clinic dt { color:#a06472; font-weight:700; }
.geo-cta-btns { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.geo-cta-btns a { flex:1 1 180px; text-decoration:none; }
.geo-cta-btns button { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; padding:13px; border:1px solid #eccbd3; border-radius:999px; background:#fff; color:#4d3038; font-size:14px; font-weight:700; cursor:pointer; transition:border-color .16s, box-shadow .16s, transform .16s; }
.geo-cta-btns button:hover { border-color:var(--geo-accent); box-shadow:0 8px 20px rgba(187,38,73,.1); transform:translateY(-1px); }
.geo-cta-btns img { width:10px; }
.geo-related { grid-area:related; position:sticky; top:130px; margin:0; padding:22px 18px 18px; border:1px solid var(--geo-line); border-radius:20px; background:rgba(255,255,255,.9); box-shadow:0 14px 40px rgba(66,31,40,.055); backdrop-filter:blur(8px); }
.geo-related #relatedTitle, .geo-toc h2 { margin:0 0 15px; color:#2b2527; font-size:18px; line-height:1.4; }
.geo-related-list { display:grid; grid-template-columns:1fr; gap:0; }
.geo-related-card { position:relative; display:grid; grid-template-columns:30px 1fr; column-gap:8px; padding:16px 2px; border:0; border-top:1px solid var(--geo-line); background:transparent; color:inherit; text-decoration:none; transition:color .16s, transform .16s; }
.geo-related-card:hover { border-color:var(--geo-line); color:var(--geo-accent); transform:translateX(3px); }
.geo-related-number { grid-row:1 / 3; color:#d7a5b1; font-size:12px; font-weight:800; }
.geo-related-date { grid-column:2; margin-top:7px; color:#aaa0a2; font-size:11px; }
.geo-related-title { grid-column:2; margin:0; font-size:14px; font-weight:700; line-height:1.5; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.geo-toc { grid-area:toc; position:sticky; top:130px; }
.geo-toc-card { padding:22px 20px; border-left:1px solid #eadde0; }
.geo-toc ol { display:grid; gap:4px; margin:0; padding:0; list-style:none; }
.geo-toc li { min-width:0; }
.geo-toc li.is-sub { padding-left:13px; }
.geo-toc a { position:relative; display:block; padding:7px 4px 7px 13px; color:#8b8284; font-size:13px; line-height:1.45; text-decoration:none; transition:color .16s; }
.geo-toc li.is-sub a { font-size:12px; }
.geo-toc a::before { content:""; position:absolute; left:0; top:13px; width:4px; height:4px; border-radius:50%; background:#d9cfd1; }
.geo-toc a:hover, .geo-toc a.is-active { color:var(--geo-accent); font-weight:700; }
.geo-toc a.is-active::before { background:var(--geo-accent); box-shadow:0 0 0 4px rgba(187,38,73,.1); }
.geo-toc .geo-toc-top { display:inline-block; margin-top:16px; padding:0; color:#a06472; font-size:11px; font-weight:700; }
.geo-toc .geo-toc-top::before { display:none; }
.geo-post-nav { display:grid; grid-template-columns:1fr auto 1fr; gap:10px; margin-top:28px; align-items:stretch; }
.geo-post-link { display:flex; flex-direction:column; justify-content:center; gap:4px; min-width:0; padding:14px 17px; background:#fff; border:1px solid var(--geo-line); border-radius:12px; color:inherit; text-decoration:none; transition:border-color .15s, background-color .15s; }
.geo-post-link:hover { border-color:var(--geo-accent); background:#fff8f9; }
.geo-post-next { text-align:right; }
.geo-post-label { font-size:11px; font-weight:700; color:var(--geo-accent); }
.geo-post-title { font-size:13px; line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.geo-post-list { display:flex; align-items:center; justify-content:center; padding:0 14px; border-radius:12px; color:#766d70; font-size:13px; font-weight:700; white-space:nowrap; }
@media (max-width:1023px) {
    .geo-view-shell { width:min(820px, 100%); }
    .geo-reading-layout { grid-template-columns:minmax(0, 1fr); grid-template-areas:"article" "toc" "related"; }
    .geo-related { position:static; margin-top:2px; }
    .geo-related-list { grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
    .geo-related-card { border:1px solid var(--geo-line); border-radius:14px; padding:16px 12px; }
    .geo-toc { position:static; }
    .geo-toc-card { padding:22px 24px; border:1px solid var(--geo-line); border-radius:18px; background:#fff; }
    .geo-toc ol { grid-template-columns:repeat(2, minmax(0, 1fr)); column-gap:20px; }
}
@media (max-width:900px) {
    .geo-index-clinic { align-items:stretch; flex-direction:column; }
    .geo-index-clinic .geo-cta-btns { flex-basis:auto; width:100%; }
}
@media (max-width:700px) {
    .geo-page { padding:110px 16px 70px; }
    .geo-breadcrumb { margin-bottom:28px; }
    .geo-list-header { align-items:stretch; flex-direction:column; gap:16px; }
    .geo-list-branch { justify-content:space-between; }
    .geo-list-branch .geo-branch { width:min(210px, 65vw); }
    .geo-list, .geo-related-list { grid-template-columns:1fr; }
    .geo-card, .geo-card:first-of-type { grid-column:auto; min-height:280px; border-radius:18px; }
    .geo-card:first-of-type.has-thumbnail { display:flex; }
    .geo-card-body, .geo-card:first-of-type .geo-card-body { padding:28px 24px; }
    .geo-card:first-of-type h2 { font-size:27px; }
    .geo-card h2 { font-size:23px; }
    .geo-index-clinic { gap:28px; margin-top:52px; padding:28px 24px; }
    .geo-reading-layout { gap:22px; }
    .geo-article { padding:34px 22px 38px; border-radius:20px; }
    .geo-article h1 { margin:15px 0 20px; font-size:32px; }
    .geo-article-meta { display:block; }
    .geo-review { display:flex; margin-top:10px; }
    .geo-summary { margin-top:26px; padding:20px; }
    .geo-content { margin-top:44px; font-size:16px; line-height:1.85; }
    .geo-content h2 { margin-top:56px; font-size:25px; }
    .geo-content h3 { margin-top:34px; font-size:20px; }
    .geo-content table { display:block; overflow-x:auto; table-layout:auto; white-space:nowrap; }
    .geo-toc ol { grid-template-columns:1fr; }
    .geo-related { padding:20px 18px 14px; }
    .geo-clinic dl div { grid-template-columns:64px 1fr; }
    .geo-post-nav { grid-template-columns:1fr; }
    .geo-post-nav a, .geo-post-nav a:last-child { text-align:left; }
}
