@charset "utf-8";
@import url(fullcalendar-l.css);/*日历表格插件CSS*/
/* 容器样式 */
.line-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  overflow: hidden;
}
.line-top {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin: 0 auto;
}
        
/* 左右布局 - 电脑端 */
@media (min-width: 769px) {
.line-top {
  max-width: 1200px;
  margin: 10px auto;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 4fr 6fr;
  gap: 20px;
  font-size: 14px;
}
.line-tl { padding: 20px 0; }            
.line-tr { padding: 20px 0; }
}
        
/* 上下布局 - 移动端 */
@media (max-width: 768px) {
  .line-container{padding:0;}
  .line-tl, .line-tr, .line-case { width: 100%; padding: 5px 15px; }
}
        
        /* 轻量级轮播图样式 */
        .light-carousel {
            position: relative;
            overflow: hidden;
            border-radius: 8px;
            background: #f8f9fa;
            box-shadow: 0 3px 10px rgba(0, 0, 0, 0.08);
        }
        
        .carousel-main {
            position: relative;
            height: 300px;
            overflow: hidden;
            border-radius: 6px;
        }
        
        .carousel-slide {
            display: none;
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            opacity: 0;
            transition: opacity 0.5s ease;
        }
        
        .carousel-slide.active {
            display: block;
            opacity: 1;
            z-index: 1;
        }
        
        .carousel-slide img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }
        
        .carousel-thumbs {
            margin-top: 15px;
            display: flex;
            gap: 10px;
            overflow-x: auto;
            padding-bottom: 5px;
        }
        
        .carousel-thumb {
            flex: 0 0 auto;
            max-width: 80px;
            max-height: 60px;
            border-radius: 4px;
            overflow: hidden;
            cursor: pointer;
            opacity: 0.6;
            border: 2px solid transparent;
            transition: all 0.3s ease;
        }
        
        .carousel-thumb.active {
            opacity: 1;
            border: 2px solid #f60;
            transform: translateY(-3px);
        }
        
        .carousel-thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }
        
        .carousel-nav {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            width: 100%;
            display: flex;
            justify-content: space-between;
            padding: 0 15px;
            z-index: 2;
        }
        
        .carousel-btn {
            width: 40px;
            height: 40px;
            background: rgba(238, 238, 238, 0.3);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
            transition: all 0.3s ease;
        }
        
        .carousel-btn:hover {
            background: rgba(247, 85, 88, 0.9);
            transform: scale(1.1);
        }
        
        .carousel-btn:hover svg {
            stroke: white;
        }
        
        .carousel-btn svg {
            width: 24px;
            height: 24px;
            stroke: #f75558;
            stroke-width: 2;
        }
        
        
/* 标题区域 */
.tit h1 { font-size: 24px; color: #2c3e50; margin: 0 0 10px 0; line-height: 1.5; }
/* 标签区域 */
.line-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 15px 0; }
.tags {
    display: flex;
    align-items: center;
    font-size: 12px;
    padding: 0 8px;
    background: rgba(35, 190, 174, 0.1);
    border: 1px solid rgba(35, 190, 174, 0.3);
    border-radius: 20px;
    color: #555;
}
.sight {
    font-size: 14px;
    color: #666;
    line-height: 1.6;
    margin: 15px 0 10px;
    padding-left: 10px;
    border-left: 3px solid #00b0dd;
}

/* 价格区域 */
.line-price {
    margin: 10px 0;
    padding: 10px;
    color: #666;
    background: linear-gradient(to right, #f2ece9, #f2f1f1);
}
.p-flex{
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .price { font-size: 14px; }
  .price strong { font-size: 28px; color: #f75558; font-weight: bold; }
  .price em { color: #f75558;font-size: 12px; font-style: normal; }
  .deal { margin-top: 10px; font-size: 14px; color: #666; }
.jgsm {margin-top: 10px; font-size:12px;line-height: 1.5;}
.j-sign {
    position: relative;
    display: inline-block;
    vertical-align: top;
    color: #fff;
    background: #c99909;
    text-align: center;
    margin-right: 6px;
    padding: 0 3px;
}
.j-sign:after {
    content: "";
    position: absolute;
    right: -5px;
    top: 3px;
    border-top: 5px solid transparent;
    border-left: 6px solid #c99909;
    border-bottom: 5px solid transparent;
}
.jgsm b {font-weight: normal;}

@media (max-width: 768px) {
    .place{display: none;}
    .line-price { margin: 5px 0;padding: 5px 10px;}
    .tit h1 { font-size: 20px; }
    .price strong { font-size: 24px; }
    .line-tags { gap: 8px; }
    .sight { margin: 8px 0 5px;}
    }
@media (max-width: 480px) {
    .carousel-main{ height: 240px; }
    .tit h1{font-size: 18px;margin-bottom: 8px;}
    .line-tags { gap: 5px; margin: 10px 0; }
    .tags { font-size: 10px; padding: 0 5px; }
    .sight { font-size: 12px;}
    .price,.deal { font-size: 12px;}
}

.line-type {
    margin-top: 10px;
    color: #666;
    font-size:14px;
    padding: 0 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.line-type .code { margin-right: auto; /* 将右侧元素推至最右 */ }
.line-type .city,
.line-type .type { display: flex; align-items: center; margin-left: 15px; /* 元素间距 */  }
.line-type .city i,
.line-type .type i{ color: #c99909; }
@media (max-width: 768px) {
    .line-type{font-size:12px;}
    }
        
/* 销售信息 */
.sale { padding: 10px; display: flex; flex-wrap: wrap; gap: 15px; }
.sale span { display: flex; align-items: center; font-size: 12px; color: #666; }
.sale i {
    display: inline-block;
    margin-right: 3px;
    text-align: center;
    font-style: normal;
    color: white;
    border-radius: 3px;
    padding: 0 3px;;
    background: #00B0DD;
}
/* 移动端优化 */
@media (max-width: 768px) {
    .sale { flex-direction: column; gap: 6px; }
}
/* 移动端优化 */
@media (max-width: 375px) {
    .sale span { display: inline }
}

/* 价格日历 部分样式在fullcalendar.css*/
.tq-title { display: flex; justify-content: center; align-items: center; background: #fff; }
.tq-hx { position: relative; padding: 0 20px; }
.tq-hx::before,
.tq-hx::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 3px;
    height: 3px;
    background-color: #333;
}
.tq-hx::before { right: 86%; }
.tq-hx::after { left: 86%; }
.tq-title strong { position: relative; display: inline-block; padding: 0 16px; font-size: 18px; font-weight: 600; }
.tq-title strong::before,
.tq-title strong::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 48px;
    height: 1px;
    background: #333;
    transform: scaleY(0.5);
}
.tq-title strong::before { right: 100%; margin-right: 8px; }
.tq-title strong::after { left: 100%; margin-left: 8px; }

#price_calendar_lt{width:100%; margin-top: 26px;}
.fc-state-default, .fc-state-default .fc-button-inner {
    border-style: none;
    background: none;
    color:#f40;
}
table.fc-header {border: 1px solid #ccc;}
/* 移动端优化 */
@media (max-width: 768px) {
    .tq-title{margin-top: 10px;}
    #price_calendar_lt{margin-top: 10px;}
}

/* top-下右 */
.flex-col{display:flex; flex-direction: column;}

  /* 行程表文字小标题 */
.xcb-title { display: flex; justify-content: center; align-items: center; background: #fff; }
.xcb-hx { position: relative; padding: 0 20px; }
.xcb-hx::before,
.xcb-hx::after {
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%) rotate(45deg);
    width: 3px;
    height: 3px;
    background-color: #333;
}
.xcb-hx::before { right: 86%; }
.xcb-hx::after { left: 86%; }
.xcb-title strong { position: relative; display: inline-block; padding: 0 16px; font-size: 18px; font-weight: 600; }
.xcb-title strong::before,
.xcb-title strong::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 48px;
    height: 1px;
    background: #333;
    transform: scaleY(0.5);
}
.xcb-title strong::before { right: 100%; margin-right: 8px; }
.xcb-title strong::after { left: 100%; margin-left: 8px; }

.subtit { margin-top: 5px; font-size: 12px ; text-align: center;}

@media (max-width: 768px) {
    .xcb-title{margin-top: 10px;}
}


/* 简要行程表 */
.table-xl{ margin:3px 0 8px;font-size: 12px;} 
.table-xl table{ background:#ccc;text-align:center;border-collapse:separate;} 
.table-xl table th,.table-xl table td{ background:#FFF;vertical-align:middle!important;line-height:200%;} 
.table-xl table th{ color:#000;} 
.table-xl table td.ts{width: 12%;}
.table-xl table td.xc{width: 60%; text-align:left; padding-left:2px;}
.table-xl table td.zs{width: 10%;}
.table-xl table td.zaoc{width: 6%;}
.table-xl table td.zhoc{width: 6%;}
.table-xl table td.wanc{width: 6%;}
.table-xl .ccbz{ line-height:1.4;margin-top:8px;color: #666;} 
  /* 移动端优化 */
  @media (max-width: 480px) {
      .table-xl{ font-size: 11px;} 
  }

/* 服务商信息 */
.advisory {
    padding: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #fff;
    border-top: 1px solid #eee;
    margin-top: auto;
}
.adv-txt { display: flex; align-items: center; gap: 10px; }
.adv-txt img { width: 40px; height: 40px; border-radius: 50%; }
.adv-txt dt { font-size: 14px; font-weight: bold; color: #2c3e50; }
.adv-txt dd { font-size: 12px; color: #666; margin: 0; }
.adv-ab { display: flex; align-items: center; justify-content: center; }
.adv-ab a {
    display: inline-block;
    padding: 6px 8px;
    color: #f40;
    border: 1px solid #f60;
    text-decoration: none;
    border-radius: 4px;
    font-size: 13px;
    transition: background 0.3s;
}
.adv-ab a:hover { background: #f90; }

/* 移动端优化 */
@media (max-width: 768px) {
    .advisory { gap: 5px; }
}

/* 其他方案 */
.line-case{
    display: flex;
    flex-direction: column;
}
.line_cpsjbg{
        display: block;
        line-height: 14px;
        font-size: 12px;
        color: #B6966E;
}
.table-xl td.famc {
    width: 20%;
}
/* 其它跨越全部列 */
.line-top > .line-case {
  grid-column: 1 / -1; /* 从第1列开始，到最后一列结束 */
}

/* 行程详情小导航 */
.line-nav {
  position: sticky;
  top: 0;
  z-index: 8000;
  padding: 10px 0 0;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0.96));
}
.nav-wrap{font-size: 16px;}
.nav-wrap:after {
  content: "";
  width: 100%;
  height: 2px;
  position: absolute;
  left: 0;
  bottom: 10px;
  background-color: #e4e7ed;
  z-index: 1;
}
.nav-tablist{display: flex; justify-content:left; align-items: center; padding: 0 0 10px 0;}
.nav-tablist a {
    display: block;
    padding: 10px 20px;
    transition: all 0.3s ease;
    position: relative;
}
.nav-tablist > a.current {
    color:#00b0dd;
    background: #eff9fc;
}
.nav-tablist a.current::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 15%;
    right: 15%;
    height: 3px;
    background: #00b0dd;
    border-radius: 3px;
    z-index: 2;
}
  /* 移动端优化 */
  @media (max-width: 768px) {
    .nav-wrap { font-size: 14px; }
    .nav-tablist{justify-content: space-between;}
}
  @media (max-width: 480px) {
    .nav-tablist a {padding: 10px;}
}

/* 行程亮点 */
.line-ts{margin: 10px 0;}
.ts-a {margin:0 0 5px 1px; background-color: rgb(251, 251, 251); border-bottom: 1px solid rgb(246, 246, 246); overflow: hidden; box-sizing: border-box;}
.ts-b {display: inline-block;width: auto;background-color:#00b0dd;border-radius: 0px 0px 10px;margin-right: 60px;margin-left: -30px;padding-left: 30px;color: rgb(255, 255, 255);transform: skew(-30deg);}
.ts-c {padding: 6px 26px 6px 15px; transform: skew(30deg);font-size:14px;}
.xcts p {
    margin-bottom: 1px;
    text-align: justify;
    font-size: 14px;
    line-height: 1.6;
    padding-left: 15px;
    background: rgba(0, 0, 0, 0) url(https://m.tibetcti.com/Public/Mobile/images/line-ico-st.png) no-repeat scroll 0 0;
    background-size: 12px 15px;
    background-position: 0 2px;
}
  /* 移动端优化 */
  @media (max-width: 768px) {
      .xcts p { font-size: 12px; background-position: 0 0px;}
  }


/* 行程详情图片 */
.image-container { position: relative; max-height: 1000px; transition: max-height 0.3s ease; overflow: hidden; margin-bottom: 10px; }
.image-container::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 100px;
    background: linear-gradient(to top, rgba(255, 255, 255, 0.9), transparent);
    pointer-events: none;
}
.image-container.expanded { max-height: 5000px; }
.linemap { display: flex; flex-wrap: wrap;justify-content: center; }
.linemap img { max-width: 100%; height: auto; }

/* 详情图展开收起 */
.btn-container{ display: flex; justify-content: center; padding: 0 0 8px;}
.toggle-btn {
    position: sticky;
    bottom: 20px;
    z-index: 100;
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 6px 10px;
    color: #00afee;
    cursor: pointer;
    background: #fff;
    /* border: 1px solid #e5f8ff; */
    /* border-radius: 6px; */
    /* box-shadow: 0 2px 10px rgba(0,0,0,0.1); */
}
.triangle-down {
  margin-top: -3px;
  width: 10px;
  height: 10px;
  border-bottom: solid 1px #00afee;
  border-left: solid 1px #00afee;
  transform: rotate(-45deg);
}
.triangle-up {
  margin-top: 8px;
  width: 10px;
  height: 10px;
  border-top: solid 1px #00afee;
  border-right: solid 1px #00afee;
  transform: rotate(-45deg);
}

/* 行程H3小标题 */
.h3-bt {
    font-size: 20px;
    height: 20px;
    line-height: 20px;
    margin: 20px 0 12px;
    padding-left: 10px;
    border-left: 4px solid #00afee;
}

/*天数*/
.trip-tit{line-height:32px; margin:30px 0 10px; background:#e5f4ff; display: flex; overflow:hidden;}
.tit-day {
    align-items: center;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGEAAABVCAMAAABuM3oqAAAAhFBMVEUAAAB9yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv99yv9OjsiqAAAAK3RSTlMAAgQIDREWHCAnLTU9RU1WXGNpbnV7gomSm6OorbO6wcbN0tjf5Onw9vj8rkUsLQAAAPdJREFUeNrd18kRwyAMhWHhLZEoJf2XkzKQHK85ZHMDf2YwJ27fPDSAlG5CrPv43TYIICq0YLiQcaE3WjgUghL4DNbQQme08CsEJvAZrKWFxmhBziBoTwvJaOFzI0Ah48L1QgvvYyIFw4WMC4PSgvCC4UJOtNAZLYjiAp/BWlpolRbEziB0tJCMFuQMgg60IIoLhgsZF/BKS8GFqF8YH7TgUr8QtBATLbhUL+xBCzHTguMvX9DCjmfwhRYC/4GcFjZc8JUWAu8EnBZWPMOrDKQQeEfmtLDgGXyjhZDqhcVpoey0EFK9MDstFHyOi/qFCRcKPk/HP4UnGKs8qrxLJ+8AAAAASUVORK5CYII=) no-repeat 50%;
    background-size: 100% 100%;
    color: #fff;
    display: flex;
    font-size: 20px;
    font-weight: 700;
    justify-content: center;
    min-width: 60px;
}
.tit-bt{line-height:1.6; font-weight:500; font-size:20px; padding: 10px 10px 10px 20px; color:#333; overflow:hidden;}
  /* 移动端优化 */
  @media (max-width: 768px) {
      .tit-bt { font-size: 18px; padding: 5px 5px 5px 10px;}
  }
  @media (max-width: 480px) {
      .tit-day  { font-size: 18px;}
      .tit-bt { font-size: 16px;}
  }


/* 每日行程 */


.trip-b-con { margin-left: 6px; padding-left: 12px; border-left: 1px solid #7dcaff; display: flex ; flex-direction: column;}
.trip-b-con .fa {
    float: left;
    margin-left: -19px;
    width: 12px;
    margin-top: 0px;
    font-size: 14px;
    color: #7dcaff;
    text-align: center;
    background: #fff;
}
.cardrive,.dining,.lodging { margin: 5px 0; }
.trip-text {
    padding-left: 0px;
    color: #333;
    text-align: justify;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.6;
    clear: both;
}

/* 每日行程图 */
.trip-img { display: flex; gap: 10px; list-style: none; padding: 0; margin: 10px 0 0 10px; }
.trip-img li {
  flex: 1;
  aspect-ratio: 4 / 3; /* 统一为 4:3 宽高比 */
  border-radius: 8px;
  overflow: hidden; /* 裁剪图片圆角 */
}
.trip-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
  @media (max-width: 480px) {
      .trip-img { gap: 6px; }
      .trip-img li {border-radius: 3px;}
  }

.line-dz { margin: 15px 0; height:15vw; max-height:120px; }
.line-dz img { object-fit: cover; width: 100%; height: 100%; }

/*费用说明*/
.fy-tits {
    font-size: 12px;
    color: #754321;
    margin: 15px 0;
    padding: .8px 12px;
    background: #FAFAFA;
    border-radius: 8px;
    overflow: hidden;
}
.fy_sm{margin-top:10px; line-height:32px; color:#4D4D4D; overflow:hidden;}
.fyh{ color:#026f8c;font-size:16px;line-height:1.6; font-weight: 700;}
.fybh{ margin-top:20px;color:#fc6000;font-size:16px;line-height:1.6; font-weight: 700;}
.fy_sm .fa { float: left;width: 18px;margin: 0 5px 0 0;font-size: 18px;line-height:1.4;font-weight: normal;}
.fy_sm p {
    display: flex;
    margin: 10px 0;
    font-size: 14px;
    line-height: 1.4;
    text-align: justify;
    position: relative;
}
.fy_sm span[style*="line-height"] *,span[style*="line-height"]{
    line-height: 1.2 !important;
    font-size:12px !important;
}
.fy_sm p span{ font-size:14px;line-height: 1.4;}
.fy_sm p strong{ min-width:max-content;font-size:14px;line-height: 1.4;font-weight:900;color:#000}
.fyh-ct1, .fybh-ct2 { margin-left: 10px; }
.fyh-ct1 p::before,.fybh-ct2 p::before { 
    content: "";
    position: absolute;
	margin: 6px 0 0 -9px;
    width: 6px;
    height: 6px;
    border-radius: 50%;}
.fyh-ct1 p::before {background-color: #ade8f8;}
.fybh-ct2 p::before {background-color: #fbc88e;}

.yd_xz p { margin: 10px 0; font-size: 14px; line-height: 1.4; text-align: justify; }


.rlyd{display:none;}
/* 咨询点评初始 */
#zxdp_error {position:absolute;display:none;}
#counsel {position:absolute;display:none;}


/* 预订表单容器 */
.yuding {
    width: 100%;
    padding: 5px 10px;
    border: 1px solid #ccc;
    margin: 10px 0;
    box-sizing: border-box;
}

/* 标题样式 */
.yuding .biaoti {
    font-size: 12px;
    line-height: 2;
    padding-right: 5px;
    color: #333;
    white-space: nowrap; /* 防止标题换行 */
}

/* 主要选择区域 - 使用 Flex 布局 */
.yuding .select {
    display: flex;
    align-items: center;     /* 垂直居中 */
    gap: 10px;               /* 推荐使用 gap 替代 margin */
    margin-top: 10px;
    flex-wrap: wrap;         /* 可选：小屏幕换行 */
}

/* 下拉选择框容器 */
.yuding .searchbar {
    flex: 1;                 /* 自动填充剩余空间 */
    text-align: center;
    border: 1px solid #eee;
    border-radius: 4px;
    overflow: hidden;        /* 保证边框圆角包裹 select */
}

/* select 样式美化 */
.yuding select {
    width: 100%;
    height: 36px;
    padding: 0 10px;
    font-size: 14px;
    border: none;
    outline: none;
    background: #fff;
    cursor: pointer;
    box-sizing: border-box;
}

/* 预订按钮区域 */
.yuding .yd_btn {
    flex-shrink: 0; /* 防止按钮被压缩 */
    text-align: center;
}

/* 提交按钮样式 */
.yuding .submit_btn {
    padding: 5px 10px;
    font-size: 14px;
    font-weight: 500;
    color: #fff;
    background: #f90;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    letter-spacing: 1px;

    /* 按钮立体感 */
    border-bottom: 2px solid #f80;
    border-right: 1px solid #f60;

    /* 悬停效果 */
    transition: background 0.2s ease;
}

.yuding .submit_btn:hover {
    background: #fa0;
}

.yuding .submit_btn:active {
    transform: translateY(1px);
}
@media (max-width: 320px) {
    .yuding .select {
        flex-direction: column;
        align-items: stretch;
    }
    .yuding .biaoti {
        text-align: center;
    }
}