/* 星火寻迹 · 五个红色地点统一详情页。保留延安原有布局逻辑与模块。 */
:root { --loc-red: #8d292b; --loc-red2:#b3483b; --loc-gold:#c39b69; --loc-paper:#fffdfa; --loc-text:#25201e; }
html { scroll-behavior:smooth; }
body.red-location-page { background:#f7f3ee; color:var(--loc-text); font-family: "Microsoft YaHei", "PingFang SC", sans-serif; overflow-x:hidden; }
.red-location-main { padding:160px 0 28px; min-height:65vh; }
.red-location-main>.container { max-width:1200px; }
.red-location-page .result-header { margin:0 0 34px; padding:0 0 22px; border-bottom:1px solid #e1d7cc; }
.red-location-page .red-location-eyebrow { letter-spacing:.18em; font-size:12px; color:#995f48; font-weight:700; margin-bottom:14px; }
.red-location-page .red-location-eyebrow span { padding:0 6px; }
.red-location-page .result-title { margin:0 0 10px; font-size:34px; line-height:1.4; font-weight:700; color:var(--loc-red); }
.red-location-page .result-title .fa { font-size:29px; padding-right:8px; }
.red-location-page .result-header>p { margin:0; color:#48413c; font-size:15px; line-height:1.9; }
.red-location-page .result-header .location-name { color:#9d3433; font-weight:700; }
.red-location-page .result-header .red-location-intro { color:#7c6e61; margin-top:8px; font-size:14px; }
.red-location-page .info-card { margin:0 0 28px; overflow:hidden; background:#fff; border:1px solid #eadfd2; border-radius:18px; box-shadow:0 15px 35px rgba(65,35,22,.075); }
.red-location-page .info-card-header { display:block; margin:0; padding:19px 26px; background:linear-gradient(100deg,#832628,#a9433a); color:#fff; font-size:20px; font-weight:700; line-height:1.4; }
.red-location-page .info-card-header i { margin-right:8px; }
.red-location-page .info-card-body { padding:30px 32px 31px; font-size:16px; line-height:2.05; }
.red-location-page .info-card-body>p { margin:0 0 14px; text-indent:0; }
.red-location-page .info-card-body>p:last-child { margin-bottom:0; }
.red-location-page .sites-content .row { margin:0 -13px; }
.red-location-page .sites-content .row+.row { margin-top:22px; }
.red-location-page .sites-content .row>div { padding:0 13px; }
.red-location-page .red-site { display:block; width:100%; min-height:100%; border:1px solid #ebdfd2; border-radius:14px; padding:16px; background:#fffdfa; cursor:pointer; transition:transform .2s,box-shadow .2s,border-color .2s; outline:none; }
.red-location-page .red-site:hover,.red-location-page .red-site:focus-visible { transform:translateY(-4px); border-color:#d0a88b; box-shadow:0 15px 30px rgba(69,39,33,.09); }
.red-location-page .site-photo { height:216px; margin-bottom:14px; border-radius:10px; background:linear-gradient(130deg,#764439,#ba8b60); position:relative; overflow:hidden; display:grid; place-items:center; }
.red-location-page .site-photo .site-img { width:100%; height:100%; object-fit:cover; margin:0; position:relative; z-index:2; display:block; border:0; }
.red-location-page .site-photo .site-img:not([src]) { display:none; }
.red-location-page .photo-fallback { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:8px; text-align:center; color:#fff5e5; font-size:21px; font-weight:700; letter-spacing:.08em; }
.red-location-page .photo-fallback small { font-size:12px; color:#f5dcc0; font-weight:400; letter-spacing:0; }
.red-location-page .site-title { font-size:20px; color:#8b2e30; font-weight:700; margin:0 0 9px; }
.red-location-page .site-title small { font-size:12px; float:right; font-weight:400; color:#a16c53; padding-top:5px; }
.red-location-page .red-site>p { line-height:1.9; color:#5c514b; font-size:14px; margin:0; }
.red-location-page .route-item { position:relative; margin:0 0 4px 10px; padding:0 0 26px 38px; border-left:2px solid #ca9e78; }
.red-location-page .route-item:last-of-type { border-color:transparent; padding-bottom:6px; }
.red-location-page .route-number { position:absolute; left:-14px; top:0; height:26px; width:26px; border-radius:50%; background:#a63c35; color:white; text-align:center; font-size:13px; font-weight:700; line-height:26px; }
.red-location-page .route-item h4 { margin:0 0 5px; font-size:18px; color:#413026; font-weight:700; }
.red-location-page .route-item p { margin:0; color:#635a52; font-size:15px; line-height:1.9; }
.red-location-page .visit-notice { font-size:12px; color:#8a8076; border-top:1px solid #ece1d6; padding-top:12px; margin-top:16px!important; }
.red-location-page .location-references { padding:0 3px 28px; color:#756c65; font-size:12px; line-height:2; }
.red-location-page .location-references a { color:#88372c; text-decoration:underline; margin:0 8px; }
.red-location-page .modal-header { background:linear-gradient(100deg,#80282b,#a8443a); color:white; padding:18px 22px; }
.red-location-page .modal-header .modal-title { font-size:22px; font-weight:700; }
.red-location-page .modal-header .close { color:white; opacity:.9; text-shadow:none; font-size:28px; }
.red-location-page .modal-content { border:0; border-radius:15px; overflow:hidden; }
.red-location-page .modal-body { padding:24px; font-size:15px; line-height:1.9; }
.red-location-page .modal-body h4 { color:#842b2a; font-size:20px; font-weight:700; }
.red-location-page .modal-body img { width:100%; height:240px; object-fit:cover; border-radius:10px; background:#f3ede7; }
.red-location-page .modal-body .modal-photo-note { color:#8d8076; font-size:12px; margin:8px 0 0; }
.red-location-page .modal-body .modal-site-source { color:#a34c3b; text-decoration:underline; }
.red-location-page .location-footer { padding:28px 0; color:#e2cbb7; background:#311c1d; }
.red-location-page .location-footer>.container { display:flex; justify-content:space-between; gap:12px; align-items:center; font-size:13px; }
.red-location-page .location-footer a { color:#e5c595; }
@media(max-width:767px){.red-location-main { padding-top:125px; }.red-location-page .result-title{font-size:28px;}.red-location-page .info-card-body{padding:22px 20px; font-size:15px;}.red-location-page .sites-content .row>div+div{margin-top:18px;}.red-location-page .sites-content .row+.row {margin-top:18px;}.red-location-page .red-site{padding:12px;}.red-location-page .site-photo{height:220px;}.red-location-page .site-title small{float:none; display:block;}.red-location-page .info-card-header{font-size:18px;padding:17px 20px;}.red-location-page .location-footer>.container{flex-direction:column;}.red-location-page .modal-body img{height:190px;}}
