body {
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  background-color:#f7f7f7;
  color:#333;
  display:flex;
  justify-content:center;
  font-size:16px;
  padding-bottom:60px;
}
.app-container {
  width:100%;
  max-width:430px;
  background-color:#f7f7f7;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  position:relative;
}
header {
  background: #fff;
  padding: 12px 16px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;       /* 保证居中，不往右偏 */
  height: 56px;
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #891fb5;
}
/* 标题始终居中 */
.header-title {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  font-size: 20px;
  font-weight: bold;
  white-space: nowrap;
}
.contact-btn {position:absolute; right:6%; top:28%; background:none; border:none; cursor:pointer;}
.contact-btn svg {width:30px; height:30px; stroke:#8e44ad; fill:none;}

/* 轮播图（已替换为 Swiper，旧 carousel 隐藏） */
.carousel-container {width:100%; overflow:hidden; position:relative;}
.carousel, .project-slider {display:none !important;} 
.carousel img {width:100%; height:240px; object-fit:cover;}

/* section 通用样式 */
section {background:#fff; margin:8px 10px; padding:12px 14px; border-radius:8px; box-shadow:0 1px 3px rgba(0,0,0,0.05);}
h2 {font-size:18px; margin:0 0 10px 0; color:#222;}
p {font-size:16px; line-height:1.5; margin:6px 0; color:#555;}
h3 {font-size:16px;}

/* 三天行程 */
.itinerary-item {display:flex; gap:10px; margin-bottom:12px; flex-direction:column; align-items:flex-start;}
.itinerary-item video {width:100%; border-radius:6px; background:#000; cursor:pointer;}
.itinerary-text {flex:1; width:100%;}
.cost {color:#8e44ad; font-size:18px; text-align:right; margin-top:4px; margin-bottom:20px; font-weight:bold;}

/* 阿俊简介 */
.profile {display:flex; align-items:center; gap:10px; margin-bottom:12px; flex-direction:column;}
.profile div p {line-height:26px; border-bottom:1px dashed #ccc; padding-bottom:15px; margin-bottom:15px; font-size:16px;}
.profile img {width:220px; height:220px; border-radius:50%; object-fit:cover;}
.life-photo {width:100%; border-radius:8px; margin-top:10px;}

/* 底部导航 */
.bottom-nav {background:#fff; display:flex; justify-content:space-around; align-items:center; padding:6px 0; border-top:1px solid #ddd; position:fixed; bottom:0; left:50%; transform:translateX(-50%); width:100%; max-width:430px; z-index:999;}
.bottom-nav button {background:none; border:none; display:flex; flex-direction:column; align-items:center; font-size:14px; color:#891fb5;}
.bottom-nav svg {width:22px; height:22px; margin-bottom:2px; stroke:#8e44ad;}

/* 联系方式弹窗 */
.modal {display:none; position:fixed; top:0; left:0; width:100%; height:100%; background:rgba(0,0,0,0.6); justify-content:center; align-items:center; z-index:1000;}
.modal-content {background:#fff; padding:20px; margin:20px; border-radius:8px; width:90%; max-width:360px; max-height:80%; overflow-y:auto;}
.modal h3 {margin-top:0; text-align:center; color:#8e44ad;}
.contact-item {display:flex; align-items:center; justify-content:space-between; margin:10px 0; border-bottom:1px solid #eee; padding-bottom:10px;}
.contact-info {flex:1; margin-right:10px;}
.contact-info p {margin:2px 0; font-size:14px;}
.contact-item img {width:60px; height:60px; object-fit:cover; border:1px solid #ddd; border-radius:6px;}
.close-btn {display:block; margin:10px auto 0; background:#8e44ad; color:#fff; border:none; padding:8px 16px; border-radius:6px; cursor:pointer;}

* {margin:0; padding:0; list-style:none; text-decoration:none;}
img,video {max-width:100%;}
.tit_h2 {color:#891fb5; font-weight:bold; font-size:22px; margin-bottom:20px; text-align:center;}
.tit_h3 {color:#891fb5; font-size:18px; margin:10px 0;}
ul.day {list-style:none; margin:0; padding:0; clear:both; overflow:hidden;}
ul.day li {padding:0 0 15px; border-bottom:1px dashed #ccc; margin-bottom:15px; font-size:16px; clear:both; overflow:hidden;}
ul.day li strong {display:inline-block; float:left; width:7%; background:#891fb5; color:#fff; padding:1%; text-align:center; border-radius:5px;}
ul.day li span {display:inline-block; float:right; width:86%; line-height:22px;}
ul.day li span b {color:#891fb5; font-size:18px;}
ul.sfinfo li {font-size:16px; color:#333; margin-bottom:15px; line-height:26px; border-bottom:1px dashed #ccc; padding-bottom:15px;}
.con, .con li {overflow:hidden; clear:both;}
.con li {line-height:30px;}
.con li p {width:55%; float:left; text-align:right;}
.con li a, .con li span {width:45%; display:block; float:right; text-align:left;}
.con li span {color:#f00;}
.con li a {color:#16418a; text-decoration:none; margin:2px 0;}
p.sortinfo {text-align:left; font-size:16px; font-weight:normal; padding:8px; background:#f7f7f7; border-radius:10px;}

/* Swiper 基础 */
.swiper-container {width:100%; overflow:hidden; position:relative;}
.swiper-wrapper {display:flex;}
.swiper-slide {flex-shrink:0; width:100%; box-sizing:border-box;}

/* 顶部 Banner */
.swiper-top .swiper-slide img {width:100%; height:240px; object-fit:cover; display:block;}
.banner-pagination {text-align:center; margin-top:10px;}

/* 推荐项目 */
.project-swiper {width:100%; overflow:hidden; position:relative; padding-bottom:40px;}
.project-swiper .swiper-slide {width:100% !important; box-sizing:border-box; padding:0 5px;}
.project-slide {background:#fff; border-radius:8px; padding:10px; box-shadow:0 2px 6px rgba(0,0,0,0.1);}
.project-slide img {width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:6px; margin-bottom:8px;}
.project-slide h3 {font-size:18px; margin:12px 0; color:#891fb5;}
.proj-pagination {text-align:center; margin-top:12px;}
.swiper-pagination-bullet {background:#ccc; opacity:1;}
.swiper-pagination-bullet-active {background:#891fb5;}

/* 服务按钮布局 */
.service-grid {display:flex; gap:10px; margin-bottom:10px;}
.service-item {flex:1; text-align:center; background:#fff; border-radius:8px; overflow:hidden; box-shadow:0 2px 6px rgba(0,0,0,0.08);}
.service-item img {width:100%; height:auto; display:block;}
.service-item p {padding:8px; font-size:16px; color:#891fb5;}
.service-full {margin-top:10px;}
.service-full img {width:100%; border-radius:8px;}
.service-full p {text-align:center; margin:6px 0; font-size:16px; color:#891fb5;}

/* 包车列表 */
.car-list {display:flex; flex-direction:column; gap:15px;}
.car-item {display:flex; background:#fff; border-radius:8px; align-items:flex-start; text-decoration:none; color:inherit; border-bottom:1px dashed #ccc; padding:0 0 15px;}
.car-img {flex:0 0 100px; height:100px; margin-right:12px; border-radius:6px; overflow:hidden;}
.car-img img {width:100%; height:100%; object-fit:cover;}
.car-info {flex:1; display:flex; flex-direction:column;}
.car-top {display:flex; justify-content:space-between; align-items:center;}
.car-name {font-size:16px; font-weight:bold; color:#333;}
.car-code {font-size:13px; color:#999;}
.car-desc {font-size:16px; color:#999; margin:6px 0; line-height:22px;}
.car-price {font-size:16px; color:#891fb5; text-align:right;}
.more-btn {text-align:center; margin:20px 0 10px;}
.more-btn a {color:#891fb5; font-size:14px;}

/* 奥黛骑行 - 每屏显示 2 个 */
.rider-swiper {width:100%; overflow:hidden; position:relative;}
.rider-swiper .swiper-slide {width:50% !important; box-sizing:border-box;}
.rider-card {background:#fff; border-radius:8px; text-align:center;}
.rider-card img {width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:8px; margin-bottom:8px;}
.rider-card .name {color:#891fb5; font-size:18px; margin:0;}
.rider-card .name span {color:#666; font-size:15px; padding-left:5px;}
.rider-pagination {text-align:center; margin-top:12px;}
.rider-pagination .swiper-pagination-bullet {background:#ccc; opacity:1;}
.rider-pagination .swiper-pagination-bullet-active {background:#891fb5;}

/* 技师 */
.technician-list {display:grid; grid-template-columns:repeat(2,1fr); gap:10px;}
.technician-item {background:#fff; border-radius:8px; text-align:center; padding:10px; box-shadow:0 2px 6px rgba(0,0,0,0.08);}
.technician-item img {width:100%; height:auto; margin-bottom:6px;}
.technician-item .name {font-size:16px; margin-bottom:4px; color:#891fb5;}
.technician-item .star {font-size:12px; color:#f5a623;}

/* 文章列表页 */
.news-list{margin:20px 0}
.news-item{padding:20px 0;border-bottom:1px dashed #ccc}
.news-thumb{margin-bottom:12px}
.news-thumb img{width:100%;height:auto;display:block;border-radius:6px}
.news-content{text-align:left}
.news-title{font-size:18px;font-weight:normal;margin:0 0 8px}
.news-title a{color:#891fb5;text-decoration:none}
.news-title a:hover{opacity:.8}
.news-desc{font-size:14px;color:#666;line-height:1.6;margin:0}

/* 子栏目部分 */
.category-list{display:flex;flex-wrap:wrap;justify-content:flex-start;}
.category-item{width:25%;margin-bottom:20px;text-align:center}
.category-item .icon-box{margin-bottom:8px; margin:0 auto;}
.category-item .icon-box svg{width:36px;height:36px}
.category-item .cat-info .cat-name{font-size:15px;color:#891fb5;margin:0}
.category-item .cat-info .cat-count{font-size:12px;color:#666;margin:0 0 0 3px;}
.icon-box {width:42px;height:42px; display:flex;align-items:center;justify-content:center;}


/* 推荐门店部分 */
.store-list {display:flex;flex-direction:column;gap:15px;}
.store-card {position:relative;border-radius:8px;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,0.08);}
.store-card img {width:100%;height:240px;object-fit:cover;display:block;}
.overlay {position:absolute;bottom:0;left:0;width:100%;background:rgba(119,40,245,0.8);color:#fff;padding:10px;box-sizing:border-box;}
.overlay .line1,.overlay .line2,.overlay .line3 {display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;}
.overlay .line1 {font-size:1.2rem;}
.overlay .dot {width:10px;height:10px; border-radius:50%;display:inline-block;margin-right:6px;}
.overlay .store-name {flex:1;}
.overlay .store-id {font-size:0.9rem;}
.overlay .line2 {font-size:0.85rem;line-height:1.4;justify-content:flex-start;}
.overlay .line3 {font-size:0.85rem;gap:12px;}
.overlay .line3 svg {margin-right:5px;}
.overlay .rating {display:flex;align-items:center;}
.overlay .rating svg {width:14px;height:14px;fill:#f5a623;}
.overlay .rating .score {font-size:0.85rem;}

/* 商家内容页面 */
.sd-container{width:100%;max-width:430px;margin:0 auto; box-sizing:border-box}
.sd-section{background:#fff;margin:10px;padding:12px;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.05)}
.sd-row{display:flex;align-items:center;justify-content:space-between}
.sd-header-top{align-items:center;}
.sd-dot{width:12px;height:12px;border-radius:50%;flex:0 0 12px}
.sd-dot-green{background:#2ecc71}
.sd-dot-yellow{background:#f1c40f}
.sd-county,.sd-sep,.sd-category {font-size: 14px;}
.sd-title-wrap{flex:1;padding:0 10px}
.sd-title{color:#891fb5;font-size:20px;font-weight:600;line-height:1.2}
.sd-store-id{color:#888;font-size:13px;white-space:nowrap}
.sd-header-bottom{margin-top:10px;justify-content:space-between}
.sd-left{display:flex;align-items:center;gap:8px;color:#666}
.sd-left .sd-locicon{font-size:14px}
.sd-right{display:flex;align-items:center;gap:8px}
.sd-rating-label{font-size:14px;color:#444}
.sd-stars{display:flex;align-items:center;gap:4px}
.sd-stars svg{width:18px;height:18px;fill:none;stroke:#891fb5;stroke-width:2}
.sd-stars svg.filled{fill:#891fb5}
.sd-stars svg.half{fill:url(#sd-half-gradient);stroke:#891fb5}
.sd-contact{cursor:pointer}
.sd-contact-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px dashed #eee}
.sd-contact-left{display:flex;align-items:center;gap:8px;color:#666;flex:1}
.sd-contact-icon{font-size:18px}
.sd-contact-text{color:#999}
.sd-contact-right{flex:0 0 auto}
.sd-copy-btn{background:transparent;border:none;padding:6px;border-radius:6px;cursor:pointer}
.sd-copy-btn svg{display:block}
.sd-call-icon{background:transparent;border:none;padding:6px;border-radius:6px;cursor:pointer}
.sd-contact-note{text-align:center;color:#999;font-size:12px;padding-top:8px}
.sd-unlock-modal{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);justify-content:center;align-items:center;z-index:1200}
.sd-unlock-box{background:#fff;padding:18px;border-radius:10px;width:65%;max-width:420px;position:relative}
.sd-unlock-close{position:absolute;right:8px;top:8px;background:transparent;border:none;font-size:18px;cursor:pointer}
.sd-unlock-title{text-align:center;color:#891fb5;margin:0 0 12px}
.sd-unlock-input-row{display:flex;gap:8px}
.sd-unlock-input{flex:1;padding:8px;border:1px solid #ddd;border-radius:6px}
.sd-unlock-confirm{background:#891fb5;color:#fff;border:none;padding:8px 12px;border-radius:6px;cursor:pointer}
.sd-unlock-tip{text-align:center;color:#999;margin-top:8px;font-size:12px}
.sd-meta-row{display:flex;align-items:center;padding:8px 0}
.sd-meta-row .meta-icon{margin-right:6px;font-size:16px;color:#891fb5}
.sd-meta-row .meta-text{font-size:16px;color:#666}
.sd-meta-row.border-bottom{border-bottom:1px dashed #ddd}
.sd-section-title{color:#891fb5;font-weight:700;font-size:16px;margin:0 0 10px}
.sd-intro-content{color:#444;line-height:1.7}
.sd-intro-img{width:100%;height:auto;border-radius:8px;margin-top:8px}
.sd-book-btn{width:100%;background:#891fb5;color:#fff;padding:12px;border-radius:999px;border:none;font-size:16px;cursor:pointer}
.sd-tabs{display:flex;gap:8px;margin-bottom:10px}
.sd-tab-btn{flex:1;padding:8px;border-radius:0;border:none;background:transparent;cursor:pointer;font-size:15px;color:#333;border-bottom:3px solid transparent}
.sd-tab-btn:focus{outline:none}
.sd-tab-active{border-bottom:4px solid #891fb5;color:#891fb5}
.sd-price-table{width:100%;border-collapse:collapse}
.sd-price-table td{padding:8px;border-bottom:1px dashed #eee}
.sd-grid{display:grid;gap:8px}
.sd-grid-3{grid-template-columns:repeat(3,1fr)}
.sd-grid-2{grid-template-columns:repeat(2,1fr)}
.sd-thumb{width:100%;height:100px;object-fit:cover;border-radius:6px;cursor:pointer}
.sd-lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.9);z-index:1300;align-items:center;justify-content:center}
.sd-lb-close{position:absolute;top:16px;right:16px;background:transparent;border:none;color:#fff;font-size:22px;cursor:pointer;z-index:1310}
.sd-lb-prev,.sd-lb-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,0.4);border:none;color:#fff;font-size:32px;padding:6px 10px;border-radius:6px;cursor:pointer;z-index:1310}
.sd-lb-prev{left:12px}
.sd-lb-next{right:12px}
#sd-lb-img{max-width:92%;max-height:86%;border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,0.6)}
.sd-recommend-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.sd-rec-item{text-decoration:none;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,0.06);display:flex;flex-direction:column;gap:8px;align-items:flex-start;padding:0}
.sd-rec-item img{width:100%;height:120px;object-fit:cover;border-radius:6px 6px 0 0}
.sd-rec-info{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:8px}
.sd-rec-name{color:#333;font-size:14px}
.sd-rec-area{color:#888;font-size:12px}
.rating-label{font-size:14px;color:#444}
.rating-stars{display:flex;align-items:center}
.rating-stars svg{width:16px;height:16px;margin-left:2px}
.rating-stars .filled{fill:#891fb5;stroke:#891fb5}
.rating-stars .half{fill:url(#halfGradient);stroke:#891fb5}
.rating-stars .empty{fill:none;stroke:#891fb5}
.sd-gallery{padding:20px 15px}

.gallery-title{font-size:18px;font-weight:700;color:#891fb5;margin:10px 0}
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.gallery-item{display:block}
.gallery-item img{width:100%;height:auto;border-radius:6px;cursor:pointer;display:block;object-fit:cover}
.load-more-wrap{text-align:center;margin-top:12px}
.load-more-btn{background:#891fb5;color:#fff;border:none;padding:8px 14px;border-radius:6px;cursor:pointer}
.load-more-btn:active{transform:translateY(1px)}
.sd-lightbox{position:fixed;inset:0;background:rgba(0,0,0,0.9);z-index:1400;display:flex;align-items:center;justify-content:center}
.sd-lb-close{position:absolute;top:18px;right:18px;background:transparent;border:none;color:#fff;font-size:22px;cursor:pointer;z-index:1410}
.sd-lb-prev,.sd-lb-next{position:absolute;top:50%;transform:translateY(-50%);background:transparent;border:none;color:#fff;font-size:34px;padding:8px;cursor:pointer;z-index:1410}
.sd-lb-prev{left:12px}
.sd-lb-next{right:12px}
#sdLbImg{max-width:92%;max-height:86%;border-radius:6px;box-shadow:0 8px 30px rgba(0,0,0,0.6)}


/*果冻页面*/
.section{padding:15px;background:#fff;margin-bottom:10px}
.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.section-title{font-size:18px;color:#891fb5; margin:15px 0 15px 10px;}
.section-more,.section-more a{font-size:14px;color:#666;cursor:pointer}
.product-item{display:flex;align-items:flex-start;margin-bottom:15px;border-bottom:1px solid #eee;padding-bottom:12px}
.product-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.product-thumb{width:100px;height:80px;flex-shrink:0;overflow:hidden;border-radius:6px;background:#ddd; margin-right:10px;}
.product-thumb img{width:100%;height:100%;object-fit:cover}
.product-info{flex:1; display:flex;flex-direction:column;justify-content:space-between;justify-content: flex-start}
.product-name{font-size:16px;color:#333;margin-bottom:6px;font-weight:bold}
.product-desc{font-size:14px;color:#666;line-height:1.4;margin-bottom:8px}
.product-price{font-size:16px;color:#891fb5;text-align:right;}
.grid-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.grid-2col .product-item{display:flex;flex-direction:column;border:1px solid #eee;border-radius:6px;overflow:hidden;padding:0}
.grid-2col .product-thumb{width:100%;height:150px}
.grid-2col .product-thumb img{width:100%;height:100%;object-fit:cover}
.grid-2col .product-info{flex:1;display:flex;flex-direction:column;justify-content:space-between;padding:8px}
.grid-2col .product-name{font-size:15px;color:#333;font-weight:bold;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grid-2col .product-desc{font-size:13px;color:#666;margin:0 0 6px;overflow:hidden;text-overflow:ellipsis}
.grid-2col .product-price{font-size:14px;color:#891fb5;text-align:right;font-weight:bold;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ke{}
.product-title{font-size:20px;color:#333;}
.price-info{margin:10px 0 15px;font-size:14px; text-align:center;}
.price-info s{color:#666;margin-right:10px;text-decoration:line-through;}
.price-info span{color:#f00; font-size:18px;}
.divider{width:20%;margin:20px auto;height:2px;background:#f00;}
.notice{font-size:14px;color:#891fb5;text-align:center;margin-bottom:15px;}
.biao{list-style:none;padding:0;margin:15px 0;}
.biao li{margin:5px 0;}
.biao dt{font-weight:bold;float:left;}
.biao dd{color:#333;}
.sysm{margin:15px 0;line-height:1.6;}
.sysm.warning{font-weight:bold;color:#f00;}
.order-tip{text-align:center;color:#f00;font-size:16px;margin-top:20px;}
.section-title{text-align:center;letter-spacing:4px;}
.con{list-style:none;padding:0;}
.con li{margin:8px 0;}
.con p{display:inline-block;width:100px;font-weight:bold;}
.con a{color:#f00;text-decoration:none;}
.con a:hover{text-decoration:underline;}
.tip{border:1px dashed #f00;padding:8px;color:#f00;margin-top:12px;font-size:14px;line-height:1.5;}
.qr{max-width:200px;display:block;margin:20px auto;}
.online{font-size:12px;color:#999;text-align:center;margin:10px 0;}
.copyright{text-align:center;font-size:12px;color:#666;margin-bottom:20px;}
ul.biao {clear:both; overflow:hidden; background:#f7f7f7; padding:20px;}
ul.biao li {font-size:16px; color:#666; text-align:left;}
ul.biao li dl {clear:both; overflow:hidden; border-bottom:1px dashed #ccc; margin-bottom:15px; padding-bottom:15px;}
ul.biao li dl dt {width:23%; border-right:1px solid #666; padding:0 2% 0 0; float:left; font-weight:bold;}
ul.biao li dl dd {float:left; padding-left:3%;}
p.sysm {font-size:16px; color:#666; padding:10px; background:#f7f7f7; text-align:left; margin-top:20px;}












