
.slug-block-title {
    text-align: left;
}

.slug-block-title p,
.slug-block-title .subtitle {
    max-width: 760px;
}

/* ===========================================================================
   Home Entry
   =========================================================================== */
section.banner-two + section.home-entry {
    margin-top: -64px;
}

.home-entry {
    position: relative;
    z-index: 8;
    padding: 0;
}

.home-entry__panel {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    padding: 38px 40px 34px;
    background: linear-gradient(135deg, rgba(255,255,255,0.98) 0%, rgba(248,244,237,0.98) 56%, rgba(244,249,251,0.96) 100%);
    border: 1px solid rgba(200,155,60,0.18);
    box-shadow: 0 28px 60px rgba(22,18,14,0.16);
}

.home-entry__panel::before,
.home-entry__panel::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
}

.home-entry__panel::before {
    width: 260px;
    height: 260px;
    top: -140px;
    right: -90px;
    background: radial-gradient(circle, rgba(200,155,60,0.14) 0%, rgba(200,155,60,0) 72%);
}

.home-entry__panel::after {
    width: 220px;
    height: 220px;
    left: -110px;
    bottom: -120px;
    background: radial-gradient(circle, rgba(64,185,235,0.14) 0%, rgba(64,185,235,0) 70%);
}

.home-entry__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(34,25,17,0.06);
    color: #6b5845;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
}

.home-entry__eyebrow::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--thm-base);
    box-shadow: 0 0 0 6px rgba(200,155,60,0.12);
}

.home-entry h2 {
    margin: 18px 0 14px;
    font-size: 44px;
    line-height: 1.08;
    color: var(--thm-black);
}

.home-entry__lead {
    max-width: 520px;
    margin: 0 0 20px;
    font-size: 18px;
    line-height: 1.72;
    color: #5f5244;
}

.home-entry__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.home-entry__pill,
.home-entry__pill:visited {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.78);
    border: 1px solid rgba(34,25,17,0.08);
    color: var(--thm-black);
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.home-entry__pill:hover,
.home-entry__pill:focus {
    transform: translateY(-1px);
    border-color: rgba(200,155,60,0.34);
    box-shadow: 0 12px 24px rgba(22,18,14,0.08);
    text-decoration: none;
    color: var(--thm-black);
}

.home-entry__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.home-entry__card {
    position: relative;
    min-height: 100%;
    padding: 18px 18px 16px;
    border-radius: 18px;
    background: rgba(255,255,255,0.76);
    border: 1px solid rgba(34,25,17,0.08);
    box-shadow: 0 10px 24px rgba(22,18,14,0.04);
}

.home-entry__icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
    border-radius: 50%;
    color: var(--thm-black);
    background: rgba(64,185,235,0.16);
    font-size: 18px;
}

.home-entry__card:nth-child(2) .home-entry__icon {
    background: rgba(230,126,34,0.14);
}

.home-entry__card:nth-child(3) .home-entry__icon {
    background: rgba(46,204,113,0.14);
}

.home-entry__card:nth-child(4) .home-entry__icon {
    background: rgba(155,89,182,0.14);
}

.home-entry__card h3 {
    margin: 0 0 6px;
    font-size: 18px;
    line-height: 1.35;
    color: var(--thm-black);
}

.home-entry__card p {
    margin: 0;
    font-size: 16px;
    line-height: 1.6;
    color: #5f5244;
}

.home-entry__footer {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid rgba(34,25,17,0.08);
}

.home-entry__signal {
    max-width: 520px;
    margin: 0;
    font-size: 16px;
    line-height: 1.65;
    color: #5f5244;
}

.home-entry__signal strong {
    color: var(--thm-black);
}

.home-entry__actions {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
}

section.home-entry + section {
    margin-top: 56px;
}

@media (max-width: 1199px) {
    .home-entry h2 {
        font-size: 40px;
    }
}

@media (max-width: 991px) {
    section.banner-two + section.home-entry {
        margin-top: -34px;
    }

    .home-entry__panel {
        padding: 28px 24px 24px;
        border-radius: 20px;
    }

    .home-entry__grid {
        grid-template-columns: 1fr;
        margin-top: 22px;
    }

    .home-entry__footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .home-entry__actions {
        justify-content: flex-start;
    }
}

@media (max-width: 767px) {
    .home-entry h2 {
        font-size: 32px;
    }

    .home-entry__lead,
    .home-entry__card p,
    .home-entry__signal {
        font-size: 15px;
    }

    .home-entry__card {
        padding: 16px 16px 14px;
    }

    section.home-entry + section {
        margin-top: 40px;
    }
}

/* ===========================================================================
   Note Card
   =========================================================================== */
.section-note .row{
    display: flex;
    flex-wrap: wrap;
    gap: 30px 0; /* 行间距 */
}

.section-note .row > div{
    display: flex;
    margin-bottom: 0; /* 移除 margin */
}

.note-card{
    position: relative;
    padding: 32px 28px;
    border-radius: 12px;
    border-style: solid;
    border-width: 1px;
    border-color: rgb(236, 238, 239);
    background-color: rgb(255, 255, 255);
    -webkit-transition: all 500ms ease;
    transition: all 500ms ease;
    color: var(--thm-black);
}
.note-card:hover {
    box-shadow: 0px 20px 20px 0px rgba(0, 0, 0, 0.05);
}

.note-card h3 {
    margin: 0 0 8px;
    line-height: 1.4;
    font-weight: 500;
    font-size: 18px;
}

.note-card p {
    font-weight: normal;
}

.note-card::before{
    content: "";
    position: absolute;
    right: -10px;
    bottom: -10px;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 88px;
    color: rgba(0,0,0,.06);
    line-height: 1;
    pointer-events: none;
}

.note-card--guide::before {
    content: "\f279"; /* fa-compass */
}

.note-card--sun::before {
    content: "\f185"; /* fa-sun */
}

.note-card--route::before {
    content: "\f4d7"; /* fa-route */
}

/* Weather / safety */
.note-card--weather::before {
    content: "\f73d"; /* fa-cloud-sun-rain */
}

/* Time / arrival / schedule */
.note-card--time::before {
    content: "\f017"; /* fa-clock */
}

/* Photography */
.note-card--photo::before {
    content: "\f030"; /* fa-camera */
}

/* Respect / protection */
.note-card--respect::before {
    content: "\f06d"; /* fa-fire-extinguisher (protection / preserve) */
}

/* Policy / rules / terms */
.note-card--policy::before {
    content: "\f05a"; /* fa-info-circle */
}

.note-card--stairs::before {
    content: "\f884"; /* fa-angle-double-down */
}

/* Exit & Wrap-up */
.note-card--exit::before {
    content: "\f024"; /* fa-sign-out-alt */
}
/* ===========================================================================
   Info Card
   =========================================================================== */
.section-info .row{
    display: flex;
    flex-wrap: wrap;
    row-gap: 18px;
}

/* 列内保持 flex，确保卡片等高/按钮到底 */
.section-info .row > div{
    display: flex;
}

.section__spacer {
    height: 18px;
}

/* 卡片本身不再负责“底部留白” */
.info-card{
    display: flex;
    flex-direction: column;
    height: 100%;
    position: relative;
    width: 100%;
    background: #fff;
    border: 1px dashed #e5e5e5;
    border-radius: 12px;
    padding: 28px 24px 26px;
    margin-bottom: 0;      /* ✅ 修正点：统一为 0 */
    transition: all .25s ease;
}

/* icon circle */
.info-card::before{
    content: "";
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;

    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 18px;
    line-height: 1;

    color: #40b9eb;
    background: rgba(64,185,235,0.15);
}

.info-card::after{ display:none !important; }

.info-card:hover{ border-color:#40b9eb; }
.info-card:hover::before{
    transform: scale(1.05);
    transition: transform .25s ease;
}

.info-card h3{
    font-size: 18px;
    font-weight: 500;
    color: var(--thm-black);
    margin-bottom: 6px;
    line-height: 1.35;
}

.info-card p{
    font-size: 18px;
    font-weight: normal;
    line-height: 1.55;
    color: var(--thm-black);
    margin: 0;
}

.section-info__cta{
    margin-top: 18px;
    padding-left: 5px;
}

.info-card .info-meta{
    font-size: 16px;
    font-weight: normal;
    color: var(--thm-darkgray);
}

/* Mobile spacing */
@media (max-width: 767px){
    /*.section-info{ padding: 50px 0 60px; }*/

    .section-info .row{ row-gap: 20px; } /* ✅ 原来 20px 的效果保留在 row-gap */

    .info-card{
        padding: 22px 20px;
    }

    .info-card h3{ font-size: 16px; }
    .info-card p{ font-size: 16px; }

    .section-info__cta{ margin-top: 0 !important; }
}

/* =========================
   Soft Info Card – Structural Variant
   ========================= */

.info-card--soft {
    background: #fafbfc;
    border: 1px solid #e6e8eb;
    border-radius: 12px;
    padding: 26px 28px 30px;
    box-shadow: none;
}

/* 移除原有“图标在顶部”的逻辑 */
.info-card--soft::before,
.info-card--soft::after {
    display: none !important;
}

/* Header row：标题 + 右上角 icon */
.info-card--soft h3 {
    position: relative;
    padding-right: 42px;
    margin-bottom: 12px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.35;
}

/* 右上角 icon（静态可见） */
.info-card--soft h3::after {
    content: attr(data-icon);
    position: absolute;
    top: 0;
    right: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 14px;
    line-height: 28px;
    text-align: center;
    color: #888;
    background: rgba(0,0,0,.06);
}

/* 正文：更像“说明段落” */
.gc-visual{
    padding: 32px 0;
}

.gc-visual__row{
    align-items: center;
}

.gc-visual__figure{
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    background: #f3efe7;
    box-shadow: 0 18px 50px rgba(44,37,27,.12);
}

.gc-visual__figure img{
    display: block;
    width: 100%;
    height: 100%;
    min-height: 300px;
    object-fit: cover;
}

.gc-visual__badge{
    position: absolute;
    left: 18px;
    top: 18px;
    display: inline-block;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(35,27,18,.78);
    color: #fff;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gc-visual__caption{
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    padding: 14px 16px;
    border-radius: 16px;
    background: rgba(255,249,242,.9);
    color: #2b241d;
    font-size: 14px;
    line-height: 1.55;
}

.gc-visual__content{
    padding-left: 14px;
}

.gc-visual__eyebrow{
    margin-bottom: 10px;
    color: #8b5e34;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gc-visual__title{
    margin-bottom: 14px;
}

.gc-visual__text p:last-child{
    margin-bottom: 0;
}

.gc-visual__links{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 18px;
}

.gc-mini-band{
    padding: 4px 0 28px;
}

.gc-mini-band__grid{
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 18px;
}

.gc-mini-band__item{
    padding: 20px;
    border-radius: 18px;
    background: linear-gradient(180deg,#fff9f0 0%,#f3ebdd 100%);
    box-shadow: 0 10px 30px rgba(62,47,28,.08);
}

.gc-mini-band__k{
    display: block;
    margin-bottom: 8px;
    color: #8b5e34;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.gc-mini-band__v{
    display: block;
    color: #2a241d;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.35;
}

.gc-mini-band__note{
    margin-top: 8px;
    color: #615548;
    font-size: 14px;
    line-height: 1.55;
}

.gc-photo-links{
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 18px;
}

.gc-photo-links__card{
    display: block;
    overflow: hidden;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(44,37,27,.1);
    text-decoration: none;
}

.gc-photo-links__card img{
    display: block;
    width: 100%;
    height: 180px;
    object-fit: cover;
}

.gc-photo-links__body{
    padding: 18px;
}

.gc-photo-links__body h3{
    margin-bottom: 10px;
}

.gc-checks{
    padding: 8px 0 28px;
}

.gc-checks__grid{
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 18px;
}

.gc-checks__card{
    padding: 24px;
    border-radius: 20px;
    background: linear-gradient(180deg,#fff 0%,#f7f0e5 100%);
    box-shadow: 0 14px 36px rgba(44,37,27,.08);
}

.gc-checks__card h3{
    margin-bottom: 12px;
}

.gc-checks__card p{
    margin-bottom: 12px;
    color: #615548;
}

.gc-checks__list{
    margin: 0;
    padding-left: 18px;
    color: #2b241d;
}

.gc-checks__list li{
    margin-bottom: 8px;
    line-height: 1.55;
}

.gc-journey{
    padding: 8px 0 28px;
}

.gc-journey__grid{
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 18px;
}

.gc-journey__item{
    position: relative;
    padding: 22px 20px 20px;
    border-radius: 20px;
    background: #fffaf2;
    box-shadow: 0 14px 36px rgba(44,37,27,.08);
}

.gc-journey__step{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-bottom: 12px;
    border-radius: 999px;
    background: #8b5e34;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
}

.gc-journey__item h3{
    margin-bottom: 10px;
    font-size: 20px;
}

.gc-journey__item p{
    margin-bottom: 0;
    color: #615548;
    line-height: 1.6;
}

.gc-editorial{
    padding: 10px 0 32px;
}

.gc-editorial__wrap{
    display: grid;
    grid-template-columns: minmax(0,1.05fr) minmax(0,.95fr);
    gap: 28px;
    align-items: stretch;
}

.gc-editorial__media{
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    min-height: 420px;
    background: #f3efe7;
    box-shadow: 0 18px 50px rgba(44,37,27,.12);
}

.gc-editorial__media img{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.gc-editorial__panel{
    padding: 28px;
    border-radius: 24px;
    background: linear-gradient(180deg,#fffdfa 0%,#f6eedf 100%);
    box-shadow: 0 18px 50px rgba(44,37,27,.09);
}

.gc-editorial__eyebrow{
    display: inline-block;
    margin-bottom: 10px;
    color: #8b5e34;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.gc-editorial__panel h2{
    margin-bottom: 12px;
}

.gc-editorial__lead{
    margin-bottom: 18px;
    color: #40362d;
    font-size: 16px;
    line-height: 1.75;
}

.gc-editorial__grid{
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.gc-editorial__item{
    padding: 16px;
    border-radius: 18px;
    background: #fff;
}

.gc-editorial__item h3{
    margin-bottom: 8px;
    font-size: 18px;
}

.gc-editorial__item p{
    margin-bottom: 0;
    color: #615548;
    line-height: 1.6;
}

.gc-editorial__actions{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.home-tours .row{
    display: flex;
    flex-wrap: wrap;
    row-gap: 24px;
}

.home-tours .row > div{
    display: flex;
}

.home-tours .tour-one__single{
    margin-bottom: 18px;
}

.home-tours .tour-card{
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 12px 32px rgba(44,37,27,.08);
}

.home-tours .tour-card .tour-one__content{
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 18px 18px 16px !important;
}

.home-tours .tour-card h3{
    margin-bottom: 0;
}

.home-tours .tour-card .info-list{
    margin-bottom: 2px;
}

.home-tours .tour-card .info-list li{
    margin-bottom: 1px;
}

.home-tours__media{
    position: relative;
    overflow: hidden;
    min-height: 150px;
    background: #f3efe7;
}

.home-tours__media::after{
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 56%;
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(34,25,17,.24) 100%);
    pointer-events: none;
}

.home-tours__media a{
    display: block;
    width: 100%;
    height: 100%;
}

.home-tours__media img{
    display: block;
    width: 100%;
    height: 100%;
    min-height: 150px;
    object-fit: cover;
    transition: transform .35s ease;
}

.home-tours .tour-card:hover .home-tours__media img{
    transform: scale(1.04);
}

.home-tours .tour-card .thm-btn{
    margin-top: 1px;
    padding: 13px 14px;
    line-height: 1.35;
    white-space: normal;
}

@media (max-width: 991px){
    .gc-visual__content{
        padding-left: 0;
        padding-top: 24px;
    }

    .gc-mini-band__grid,
    .gc-photo-links,
    .gc-checks__grid,
    .gc-journey__grid{
        grid-template-columns: repeat(2,minmax(0,1fr));
    }

    .gc-editorial__wrap{
        grid-template-columns: 1fr;
    }

    .gc-editorial__media{
        min-height: 280px;
    }

    .home-tours__media,
    .home-tours__media img{
        min-height: 135px;
    }
}

@media (max-width: 575px){
    .gc-mini-band__grid,
    .gc-photo-links,
    .gc-checks__grid,
    .gc-journey__grid,
    .gc-editorial__grid{
        grid-template-columns: 1fr;
    }

    .gc-visual__figure img{
        min-height: 220px;
    }
}
.info-card--soft p {
    line-height: 1.65;
    margin: 0;
}

/* 底部 subtle divider */
.info-card--soft::after {
    content: "";
    display: block;
    margin-top: 18px;
    width: 36px;
    height: 2px;
    background: rgba(0,0,0,.08);
}

/* =========================
   Soft Accent Card
   ========================= */

.info-card--accent {
    position: relative;
    background: #fff;
    border: 1px solid #e6e8eb;
    border-radius: 12px;
    padding: 26px 28px 28px;
}

/* 左侧 accent */
.info-card--accent::before {
    content: "";
    position: absolute;
    left: 0;
    top: 16px;
    bottom: 16px;
    width: 3px;
    border-radius: 3px;
    background: linear-gradient(
            180deg,
            #e67e22,
            #f1c40f
    );
}

/* 移除原 icon */
.info-card--accent::after {
    display: none !important;
}

.info-card--accent h3 {
    margin-bottom: 10px;
    font-weight: 500;
}

.info-card--accent p {
    color: #555;
    line-height: 1.6;
}

.info-card--accent .list-unstyled li + li {
    margin-top: 10px;
}

.info-card--accent .list-unstyled a,
.info-card--accent .list-unstyled a:visited {
    color: var(--thm-black);
    font-weight: var(--thm-fw-medium);
    text-decoration-line: underline;
    text-decoration-color: rgba(var(--thm-black-rgb), .35);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color .25s ease, text-decoration-color .25s ease, text-decoration-thickness .25s ease;
}

.info-card--accent .list-unstyled a:hover,
.info-card--accent .list-unstyled a:focus {
    color: var(--thm-base);
    text-decoration-color: currentColor;
    text-decoration-thickness: 2px;
}

/* Hover：整体浮起，而不是强调 icon */
.info-card--accent:hover {
    background: #fff;
    border-color: #dcdfe3;
    box-shadow: 0 16px 30px rgba(0,0,0,.08);
}

/* =========================
   Editorial Info Card
   ========================= */

.info-card--editorial {
    background: #fcfcfd;
    border: 1px solid #eceeef;
    border-radius: 12px;
    padding: 30px 30px 34px;
}

/* 顶部 label */
.info-card--editorial h3 {
    position: relative;
    padding-top: 14px;
    margin-bottom: 12px;
}

.info-card--editorial h3::before {
    content: "INSIGHT";
    position: absolute;
    top: 0;
    left: 0;
    font-size: 11px;
    letter-spacing: 1.2px;
    color: #999;
}

.info-card--editorial p {
    font-size: 16px;
    line-height: 1.7;
    color: #444;
}

/* no icon at all */
.info-card--editorial::before,
.info-card--editorial::after {
    display: none !important;
}

/* =========================
   Visual Info Card (with data-icon)
   ========================= */

.info-card--visual {
    position: relative;
    background: linear-gradient(
            135deg,
            rgba(241, 196, 15, 0.14),
            rgba(230, 126, 34, 0.08)
    );
    border: 1px solid rgba(230, 126, 34, 0.22);
    border-radius: 12px;
    padding: 30px 34px 34px;
    overflow: hidden;
}

/* 移除原 info-card 图标机制 */
.info-card--visual::before,
.info-card--visual::after {
    display: none !important;
}

/* 标题 */
.info-card--visual h3 {
    position: relative;
    font-size: 18px;
    font-weight: 500;
    margin-bottom: 12px;
    z-index: 2;
}

/* 正文 */
.info-card--visual p {
    position: relative;
    line-height: 1.65;
    z-index: 2;
}

/* 背景 icon（来自 h3 的 data-icon） */
.info-card--visual h3::after {
    content: attr(data-icon);
    position: absolute;
    right: -8px;
    bottom: -28px;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 96px;
    line-height: 1;
    color: rgba(0, 0, 0, 0.08);
    pointer-events: none;
    z-index: 1;
}

/* Hover：轻微抬升即可 */
.info-card--visual:hover {
    box-shadow: 0 18px 34px rgba(0, 0, 0, 0.08);
}

.info-card--guides::before {
    content: "\f559"; /* fa-user-shield */
    color: #f39c12;
    background: rgba(243, 156, 18, 0.18);
}

.info-card--realtime::before {
    content: "\f017"; /* fa-clock */
    color: #40b9eb;
    background: rgba(64, 185, 235, 0.18);
}

.info-card--secure::before {
    content: "\f023"; /* fa-lock */
    color: #2ecc71;
    background: rgba(46, 204, 113, 0.18);
}

.info-card--entry::before, .info-card--confirm::before {
    content: "\f058"; /* fa-check-circle */
    color: #9b59b6;
    background: rgba(155, 89, 182, 0.18);
}

.info-card--cancel::before {
    content: "\f05a"; /* fa-info-circle */
    color: #e74c3c;
    background: rgba(231, 76, 60, 0.18);
}

.info-card--support::before {
    content: "\f590"; /* fa-headset */
    color: #3498db;
    background: rgba(52, 152, 219, 0.18);
}

.info-card--time::before, .info-card--duration::before {
    content: "\f017"; /* fa-clock */
    color: #16a085;
    background: rgba(22, 160, 133, 0.18);
}

.info-card--access::before {
    content: "\f554"; /* fa-walking */
    color: #27ae60;
    background: rgba(39, 174, 96, 0.18);
}

.info-card--route::before {
    content: "\f4d7"; /* fa-route */
    color: #2980b9;
    background: rgba(41, 128, 185, 0.18);
}

.info-card--flow::before {
    content: "\f362"; /* fa-random */
    color: #8e44ad;
    background: rgba(142, 68, 173, 0.18);
}

.info-card--crowd::before {
    content: "\f0c0"; /* fa-users */
    color: #16a085;
    background: rgba(22, 160, 133, 0.18);
}

.info-card--light::before {
    content: "\f185"; /* fa-sun */
    color: #f1c40f;
    background: rgba(241, 196, 15, 0.22);
}

.info-card--depth::before {
    content: "\f6e9"; /* fa-dungeon */
    color: #6c5ce7;
    background: rgba(108, 92, 231, 0.18);
}

.info-card--scenery::before {
    content: "\f6fc"; /* fa-mountain */
    color: #e67e22;
    background: rgba(230, 126, 34, 0.18);
}

.info-card--photography::before {
    content: "\f030"; /* fa-camera */
    color: #3498db;
    background: rgba(52, 152, 219, 0.18);
}

.info-card--flashlight::before {
    content: "\f0e7"; /* fa-bolt */
    color: #e67e22;
    background: rgba(230, 126, 34, 0.18);
}

.info-card--settings::before {
    content: "\f085"; /* fa-cogs */
    color: #9b59b6;
    background: rgba(155, 89, 182, 0.18);
}

.info-card--stairs::before {
    content: "\f3c1"; /* fa-level-up-alt */
    color: #9b59b6;
    background: rgba(155, 89, 182, 0.18);
}

.info-card--depth::before {
    content: "\f103"; /* fa-angle-double-down */
    color: #6c5ce7;
    background: rgba(108, 92, 231, 0.18);
}

/* Budget / Value */
.info-card--budget::before {
    content: "\f155"; /* fa-dollar-sign */
    color: #2ecc71;
    background: rgba(46, 204, 113, 0.18); /* soft green */
}

/* Nearby Attractions / Location */
.info-card--nearby::before {
    content: "\f5a0"; /* fa-map-marked-alt */
    color: #34495e;
    background: rgba(52, 73, 94, 0.18); /* muted slate */
}

.info-card--season::before{ content:"\f073"; }  /* fa-calendar-alt */
.info-card--rain::before{ content:"\f740"; }    /* fa-cloud-rain */
.info-card--closure::before{ content:"\f05a"; } /* fa-info-circle */
.info-card--wind::before {content: "\f72e"; /* fa-wind */}
/* ===========================================================================
   Explore Card
   =========================================================================== */
.section-explore {
    color: var(--thm-black);
}
.section-explore .row > div {
    margin-bottom: 24px;
}

.explore-card{
    display:block;
    height:100%;
    padding:28px 24px;
    background:#fff;
    border-radius:12px;
    text-decoration:none;
    color:inherit;
    box-shadow:0 8px 24px rgba(0,0,0,.06);
    transition:transform .2s ease, box-shadow .2s ease;
    overflow:hidden;
    position:relative;
}
.explore-card:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 30px rgba(0,0,0,.08);
    text-decoration:none;
    color:inherit;
}

.explore-card__icon{
    font-size:28px;
    color:var(--thm-primary);
    margin-bottom:14px;
}

.explore-card h3{
    font-size:18px;
    font-weight: 500;
    margin:0 0 10px;
    color: var(--thm-black);
}

.explore-card p{
    font-size:18px;
    line-height:1.6;
    margin:0 0 14px;
    color: var(--thm-black);
    font-weight: normal;
}

.explore-link{
    font-weight:600;
    font-size:14px;
    color:var(--thm-base);
}

/* mobile tweaks */
@media (max-width: 576px){
    .section-explore{ padding: 45px 0; }
    .explore-card{ padding: 22px 18px; }
}

/* ===========================================================================
   Compare Card
   =========================================================================== */
.compare-card{
    position: relative;
    width: 100%;
    background: #fff;
    border: 1px solid #eceeef;
    border-radius: 12px;
    padding: 26px 26px 22px;
    transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.compare-card:hover{
    transform: translateY(-2px);
    box-shadow: 0 18px 28px rgba(0,0,0,.08);
}
.compare-card__head h3{
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--thm-black);
}
.compare-card__head p{
    margin: 0 0 14px;
    line-height: 1.6;
    color: var(--thm-black);
}
.compare-card__list{
    margin: 0 0 14px;
    padding-left: 18px;
}
.compare-card__list li{
    margin: 0 0 8px;
    line-height: 1.55;
}
.compare-card__tagline{
    padding-top: 12px;
    border-top: 1px dashed #e6e8ea;
    color: var(--thm-black);
}

/* Subtle theme accents */
.compare-card--lower{ border-left: 4px solid rgba(64,185,235,.8); }
.compare-card--upper{ border-left: 4px solid rgba(243,156,18,.8); }

/* Quick decision */
.compare__quick{
    margin-top: 26px;
    border-radius: 12px;
    border: 1px solid #eceeef;
    background: #fff;
    padding: 22px 22px 18px;
}
.compare__quick-title{
    font-size: 18px;
    font-weight: 600;
    color: var(--thm-black);
    margin-bottom: 14px;
}

/* Uses your unified info-card system */
.compare__grid{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.compare__grid .info-card{
    margin-bottom: 0;
    padding: 22px 18px 20px;
    border-radius: 12px;
}
.compare__grid .info-card h3{
    font-size: 16px;
    margin-bottom: 6px;
}
.compare__grid .info-card p{
    font-size: 15px;
}

/* CTA row */
.compare__cta{
    margin-top: 12px;
    display: flex;
    gap: 18px;
    flex-wrap: wrap;
    align-items: center;
}

.home-trust .compare__cta,
.home-compare .compare__cta,
.home-explore .compare__cta{
    margin-top: 26px;
}

/* Responsive */
@media (max-width: 1199px){
    .compare__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px){
    .compare-card{ padding: 22px 20px 18px; }
    .compare__quick{ padding: 18px 16px 14px; }
    .compare__grid{ grid-template-columns: 1fr; gap: 14px; }
    .compare__cta{ gap: 12px; }
}

/* ===========================================================================
   Hero Enhance
   =========================================================================== */
.hero-enhance {
    color: var(--thm-black);
    font-weight: normal;
}

.hero-enhance__row {
    margin-left: -12px;
    margin-right: -12px;
}

.hero-enhance__row > div {
    padding-left: 12px;
    padding-right: 12px;
}

/* Left content */
.hero-enhance__content {
    max-width: none; /* key: remove "hole" caused by max-width */
}

.hero-enhance p:not(.hero-enhance__eyebrow) {
    font-size: 18px;
    line-height: 1.65;
    margin: 0 0 18px;
}

.hero-enhance__eyebrow {
    margin: 0 0 28px 0;
    color: var(--thm-black);
    font-size: 60px;
    font-weight: 600;
    font-family: var(--thm-font);
    line-height: 1em;
}

/* Right card */
.hero-enhance__card {
    max-width: none; /* key: remove "hole" */
    margin-left: 0;  /* key: prevent drifting */
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 12px;
    padding: 18px 18px 16px;
    box-shadow: 0 10px 28px rgba(0,0,0,0.06);
    position: relative;
}

.hero-enhance__card-title {
    font-size: 18px;
    text-transform: uppercase;
    font-weight: 500;
    margin-bottom: 12px;
}

.hero-enhance__facts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.hero-enhance__fact {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(0,0,0,0.03);
}

.hero-enhance__k {
    font-weight: 500;
    font-size: 18px;
    white-space: nowrap;
}

.hero-enhance__v {
    font-size: 18px;
    text-align: right;
}

.hero-enhance__card-cta {
    margin-top: 14px;
}

.hero-enhance__fineprint {
    margin-top: 10px;
    font-size: 14px;
    color: var(--thm-darkgray);
    line-height: 1.4;
}

@media (max-width: 991px) {
    .hero-enhance {
        padding: 28px 0;
    }
    .hero-enhance__card {
        margin-top: 18px;
    }
    .hero-enhance__card::before {
        display: none;
    }
}

@media (max-width: 575px) {
    .hero-enhance__lead {
        font-size: 16px;
    }
    .hero-enhance__fact {
        padding: 10px 10px;
    }
    .hero-enhance__k,
    .hero-enhance__v {
        font-size: 13px;
    }
}

/* ===========================================================================
   Section Steps
   =========================================================================== */

.section-steps__grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 28px;
    list-style: none;
    padding: 0 28px 0 0;
    margin: 0;
}

.section-steps__item .note-card {
    width: 100%;
    max-width: 520px;
}

/* =========================
   Responsive
   ========================= */
@media (max-width: 991px) {
    .section-steps__grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .section-steps__item .note-card {
        max-width: none;
    }
}

.section-step {
    list-style: none;
    position: relative;
    display: flex;
}

.section-step .note-card {
    position: relative;
}

.section-step::after {
    content: attr(data-step);
    position: absolute;
    right: 18px;
    bottom: 18px;

    font-size: 38px;
    font-weight: 600;
    line-height: 1;

    color: rgba(0, 0, 0, 0.08);
    pointer-events: none;
}

.section-steps__callout {
    font-size: 18px;
    color: var(--thm-black);
}

.section-steps__callout h3 {
    font-weight: 500;
    margin-bottom: 12px;
    font-size: 18px;
}

.section-steps__note {
    font-weight: normal;
}

.section-steps__note strong{
    font-weight: 500;
}

.section-steps__fineprint {
    margin-top: 10px;
    font-size: 14px;
    color: var(--thm-darkgray);
    line-height: 1.4;
}

/* ===========================================================================
   Overview
   =========================================================================== */

.overview__facts {
    background: #fafafa;
    border: 1px solid #eceeef;
    border-radius: 12px;
    padding: 26px 24px;
}

.overview__facts .info-list {
    margin: 0;
}

.overview__facts .info-list li {
    line-height: 1.55;
}

.slug-guide-prose p {
    font-size: 18px;
    line-height: 1.72;
    color: var(--thm-black);
    margin: 0 0 18px;
}

.slug-guide-prose p:last-child {
    margin-bottom: 0;
}

.section-note .note-card {
    width: 100%;
    min-height: 100%;
}

.section-note .note-card p {
    margin: 0;
    line-height: 1.65;
}

.section-explore .subtitle,
.section-info .subtitle {
    max-width: 760px;
    margin: 0 auto 24px;
    line-height: 1.6;
    color: var(--thm-darkgray);
    font-size: 18px;
}

.slug-guide-products {
    position: relative;
    overflow: hidden;
    background: #fff;
}

.slug-guide-products::before {
    content: none;
}

.slug-guide-products .container {
    position: relative;
    z-index: 1;
}

.slug-guide-products .row {
    display: block;
}

.slug-guide-products .row > .tour-list__single,
.slug-guide-products .row > .tour-two__single,
.slug-guide-products .row > .tour-one__single {
    width: 100%;
    margin-bottom: 30px;
}

.slug-guide-products .row > *:last-child {
    margin-bottom: 0;
}


.hero-enhance__lead {
    font-size: 18px;
    line-height: 1.68;
}

.hero-enhance__fact {
    align-items: flex-start;
}

.hero-enhance__k {
    min-width: 120px;
}

/* Mobile */
@media (max-width: 991px) {
    .overview__facts {
        margin-top: 24px;
    }

    .section-explore .subtitle,
    .section-info .subtitle,
    .slug-guide-prose p,
    .hero-enhance__lead {
        font-size: 16px;
    }
}

/* ===========================================================================
   Steps
   =========================================================================== */
/* =========================================================
   Steps (timeline + synced hover) — v2 (FIXED + nicer)
   依赖：左侧 .steps__list li 和右侧 .steps__content p 数量/顺序一致
   ========================================================= */

/* ---------- Layout ---------- */

.steps__row .col-lg-3,
.steps__row .col-lg-9{
    display:flex;
}

.steps__list,
.steps__content{
    width:100%;
    display:flex;
    flex-direction:column;
    position:relative;
}

/* 让左右“行高”更容易对齐 */
.steps__list li,
.steps__content p{
    min-height: 76px;
    display:flex;
    align-items:center;
}

/* 间距统一（避免错位） */
.steps__list li + li,
.steps__content p + p{
    margin-top: 14px;
}

/* ---------- Left: Timeline ---------- */

.steps__list{
    list-style:none;
    padding:0;
    margin:0;
    padding-left: 34px; /* 给时间轴留空间 */
    font-weight: 500;
    color: var(--thm-black);
}

/* 竖线 */
.steps__list::before{
    content:"";
    position:absolute;
    left: 16px;
    top: 10px;
    bottom: 10px;
    width:2px;
    background:#e5e7eb;
}

/* 左侧卡片 */
.steps__list li{
    position:relative;
    padding: 16px 16px 16px 18px;
    border-radius: 12px;
    border: 1px solid #eceeef;
    background:#fff;
    transition: background .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

/* 时间轴节点（index） */
.steps__index{
    position:absolute;
    left: -34px;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 30px;
    border-radius: 999px;
    background:#fff;
    border:2px solid var(--thm-base);
    color: var(--thm-base);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size: 14px;
    font-weight: 600;
    z-index:2;
    transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}

/* 节点的小“光晕” */
.steps__index::after{
    content:"";
    position:absolute;
    inset:-10px;
    border-radius:999px;
    background: rgba(64,185,235,.14);
    opacity:0;
    transition: opacity .25s ease;
    z-index:-1;
}

/* 标题 */
.steps__title{
    font-size:18px;
    font-weight:500;
    line-height:1.35;
}

/* ---------- Right: Explanation ---------- */

.steps__content p{
    margin:0;
    padding: 16px 18px;
    border-radius: 12px;
    border: 1px solid #eceeef;
    background:#fff;
    font-weight: normal;
    color: var(--thm-black);
    transition: background .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

/* ---------- Synced hover (the FIX) ----------
   原问题：你之前的 CSS 写法把 .steps__content p:nth-child(1/2) 直接写成常亮了
   这里改成：只有 hover 时才同步对应行高亮（纯 CSS 用 nth-child 映射）
*/

/* Row 1 */
.steps__list li:nth-child(1):hover{
    background:#f5fbff; border-color: var(--thm-base);
    box-shadow: 0 16px 26px rgba(0,0,0,.07);
    transform: translateY(-1px);
}
.steps__list li:nth-child(1):hover .steps__index{
    background: var(--thm-base);
    color:#fff;
    transform: translateY(-50%) scale(1.06);
    box-shadow: 0 10px 18px rgba(64,185,235,.25);
}
.steps__list li:nth-child(1):hover .steps__index::after{ opacity:1; }
.steps__list li:nth-child(1):hover ~ *{}
.steps__list li:nth-child(1):hover ~ li{}
.steps__list li:nth-child(1):hover{}
.steps__list li:nth-child(1):hover{}
/* sync right */
.steps__list li:nth-child(1):hover ~ *{}
.steps__list li:nth-child(1):hover{}
.steps__list li:nth-child(1):hover{}
/* the actual sync selector */
.steps__list li:nth-child(1):hover ~ .steps__content p{}
/* Use sibling mapping via container: hover on list affects content with :has if supported */
@supports selector(.steps__row:has(.steps__list li:hover)) {
    .steps__row:has(.steps__list li:nth-child(1):hover) .steps__content p:nth-child(1){
        background:#f5fbff; border-color: var(--thm-base);
        box-shadow: 0 16px 26px rgba(0,0,0,.07);
        transform: translateY(-1px);
    }
    .steps__row:has(.steps__list li:nth-child(1):hover) .steps__content p:nth-child(1)::before{
        opacity:1;
        transform: translateX(0);
    }
}

/* Row 2 */
.steps__list li:nth-child(2):hover{
    background:#f5fbff; border-color: var(--thm-base);
    box-shadow: 0 16px 26px rgba(0,0,0,.07);
    transform: translateY(-1px);
}
.steps__list li:nth-child(2):hover .steps__index{
    background: var(--thm-base);
    color:#fff;
    transform: translateY(-50%) scale(1.06);
    box-shadow: 0 10px 18px rgba(64,185,235,.25);
}
.steps__list li:nth-child(2):hover .steps__index::after{ opacity:1; }

@supports selector(.steps__row:has(.steps__list li:hover)) {
    .steps__row:has(.steps__list li:nth-child(2):hover) .steps__content p:nth-child(2){
        background:#f5fbff; border-color: var(--thm-base);
        box-shadow: 0 16px 26px rgba(0,0,0,.07);
        transform: translateY(-1px);
    }
}

/* Row 3 */
.steps__list li:nth-child(3):hover{
    background:#f5fbff; border-color: var(--thm-base);
    box-shadow: 0 16px 26px rgba(0,0,0,.07);
    transform: translateY(-1px);
}
.steps__list li:nth-child(3):hover .steps__index{
    background: var(--thm-base);
    color:#fff;
    transform: translateY(-50%) scale(1.06);
    box-shadow: 0 10px 18px rgba(64,185,235,.25);
}
.steps__list li:nth-child(3):hover .steps__index::after{ opacity:1; }

@supports selector(.steps__row:has(.steps__list li:hover)) {
    .steps__row:has(.steps__list li:nth-child(3):hover) .steps__content p:nth-child(3){
        background:#f5fbff; border-color: var(--thm-base);
        box-shadow: 0 16px 26px rgba(0,0,0,.07);
        transform: translateY(-1px);
    }
}

/* Row 4 */
.steps__list li:nth-child(4):hover{
    background:#f5fbff; border-color: var(--thm-base);
    box-shadow: 0 16px 26px rgba(0,0,0,.07);
    transform: translateY(-1px);
}
.steps__list li:nth-child(4):hover .steps__index{
    background: var(--thm-base);
    color:#fff;
    transform: translateY(-50%) scale(1.06);
    box-shadow: 0 10px 18px rgba(64,185,235,.25);
}
.steps__list li:nth-child(4):hover .steps__index::after{ opacity:1; }

@supports selector(.steps__row:has(.steps__list li:hover)) {
    .steps__row:has(.steps__list li:nth-child(4):hover) .steps__content p:nth-child(4){
        background:#f5fbff; border-color: var(--thm-base);
        box-shadow: 0 16px 26px rgba(0,0,0,.07);
        transform: translateY(-1px);
    }
}

/* ---------- Extra: “active hint” on right blocks (more premium) ---------- */
.steps__content p{
    position:relative;
    overflow:hidden;
}
.steps__content p::before{
    content:"";
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:4px;
    background: var(--thm-base);
    opacity:0;
    transform: translateX(-6px);
    transition: opacity .25s ease, transform .25s ease;
}

.steps__note {
    font-weight: normal;
    font-size: 16px;
    color: var(--thm-darkgray);
}

/* When synced highlight triggers, show accent bar */
@supports selector(.steps__row:has(.steps__list li:hover)) {
    .steps__row:has(.steps__list li:hover) .steps__content p{
        /* default: keep normal */
    }
    .steps__row:has(.steps__list li:nth-child(1):hover) .steps__content p:nth-child(1)::before,
    .steps__row:has(.steps__list li:nth-child(2):hover) .steps__content p:nth-child(2)::before,
    .steps__row:has(.steps__list li:nth-child(3):hover) .steps__content p:nth-child(3)::before,
    .steps__row:has(.steps__list li:nth-child(4):hover) .steps__content p:nth-child(4)::before{
        opacity:1;
        transform: translateX(0);
    }
}

/* ---------- Fallback (no :has support) ----------
   没有 :has 时，右侧无法纯 CSS 同步，只保留左侧高亮
*/
@supports not selector(.steps__row:has(.steps__list li:hover)) {
    /* optional: 给右侧加一个轻提示，不做同步 */
    .steps__content p:hover{
        background:#f7fbff;
        border-color:#dbeafe;
    }
}

/* ---------- Responsive ---------- */
@media (max-width: 991px){
    .steps__row .col-lg-3,
    .steps__row .col-lg-9{
        display:block;
    }

    .steps__list{
        padding-left: 34px;
        margin-bottom: 18px;
    }

    .steps__content p{
        min-height: auto;
        align-items:flex-start;
    }
}

/* ===========================================================================
   Terrain
   =========================================================================== */

.terrain__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 36px;
    margin-top: 30px;
}

/* Base item */
.terrain-item {
    position: relative;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    padding: 28px 26px 30px;
    background: #fff;
    transition: all .3s ease;
    color: var(--thm-black);
}

/* Visual separation without images */
.terrain-item::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 12px;
    background: linear-gradient(
            180deg,
            rgba(0,0,0,0.02),
            rgba(0,0,0,0)
    );
    pointer-events: none;
}

/* Tag */
.terrain-item__tag {
    display: inline-block;
    font-size: 14px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 12px;
    color: var(--thm-base);
}

/* Content */
.terrain-item__body h3 {
    font-size: 18px;
    font-weight: 500;
    margin: 0 0 10px;
}

.terrain-item__body p {
    font-size: 18px;
    line-height: 1.6;
    margin-bottom: 14px;
    font-weight: normal;
}

.terrain-points {
    margin: 0;
    padding-left: 18px;
}

.terrain-points li {
    font-size: 16px;
    font-weight: normal;
    line-height: 1.55;
    margin-bottom: 6px;
}

/* Variants */
.terrain-item--upper {
    border-top: 4px solid #f1c40f;
}

.terrain-item--lower {
    border-top: 4px solid #6c5ce7;
}

.terrain-item--x {
    border-top: 4px solid #27ae60;
}

/* Hover */
.terrain-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 28px rgba(0,0,0,.08);
}

/* Mobile */
@media (max-width: 991px) {
    .terrain__grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}

/* ===========================================================================
   Decision Guide
   =========================================================================== */
.decision-guide__rows {
    margin-top: 34px;
}

.decision-guide__row {
    display: grid;
    grid-template-columns: 1.2fr 60px 2fr;
    align-items: center;
    padding: 18px 0;
    border-bottom: 1px dashed #e5e5e5;
}

.decision-guide__row:last-child {
    border-bottom: none;
}

.decision-guide__who {
    font-size: 18px;
    color: var(--thm-black);
}

.decision-guide__arrow {
    text-align: center;
    font-size: 20px;
    color: var(--thm-base);
}

.decision-guide__choice strong {
    display: block;
    font-size: 18px;
    font-weight: 500;
    color: var(--thm-black);
    margin-bottom: 4px;
}

.decision-guide__choice span {
    font-size: 18px;
    font-weight: normal;
    line-height: 1.5;
    color: var(--thm-black);
}

/* Mobile */
@media (max-width: 767px) {
    .decision-guide {
        padding: 60px 0;
    }

    .decision-guide__row {
        grid-template-columns: 1fr;
        row-gap: 6px;
    }

    .decision-guide__arrow {
        display: none;
    }
}

/* ===========================================================================
   Plan Visit
   =========================================================================== */
/* layout breathing on small screens */
.plan-visit__row{
    margin-top: 6px;
}

/* ---------------------------
   Left: flow
--------------------------- */
.plan-visit__flow{
    position: relative;
    padding-right: 10px;
}

.plan-visit__step{
    position: relative;
    display: flex;
    gap: 18px;
    margin-bottom: 18px;
}

.plan-visit__rail{
    position: relative;
    width: 22px;
    flex: 0 0 22px;
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.plan-visit__dot{
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid rgba(64,185,235,.65);
    background: #fff;
    margin-top: 18px;
    display: block;
    z-index: 2;
}

.plan-visit__line{
    position: absolute;
    top: 32px;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    height: calc(100% + 18px);
    background: rgba(64,185,235,.22);
}

.plan-visit__line--end{
    height: calc(100% - 12px);
}

/* card look: not info-card / not note-card */
.plan-visit__card{
    position: relative;
    width: 100%;
    border: 1px solid #eceeef;
    border-radius: 12px;
    padding: 24px 22px;
    background: #fff;
    transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}

.plan-visit__card:hover{
    border-color: rgba(64,185,235,.55);
    box-shadow: 0 18px 28px rgba(0,0,0,.08);
    transform: translateY(-2px);
}

.plan-visit__eyebrow{
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--thm-base);
    margin-bottom: 8px;
}

.plan-visit__card h3{
    font-size: 18px;
    font-weight: 500;
    margin: 0 0 10px;
    line-height: 1.25;
    color: var(--thm-black);
}

.plan-visit__card p{
    margin: 0 0 12px;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.6;
    color: var(--thm-black);
}

.plan-visit__bullets li{
    font-size: 16px !important;
}

.plan-visit__bullets li strong{
    text-transform: uppercase;
}

.plan-visit__note{
    margin-top: 10px;
    padding: 12px 14px;
    border-radius: 12px;
    background: rgba(64,185,235,.10);
    border: 1px solid rgba(64,185,235,.20);
    font-size: 16px;
    font-weight: normal;
    color: var(--thm-darkgray);
    text-align: justify;
    line-height: 1.55;
}

.plan-visit__chips{
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 6px;
}

.plan-visit__chip{
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 999px;
    border: 1px solid #eceeef;
    background: #fff;
}

.plan-visit__chip-k{
    font-size: 16px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--thm-black);
}

.plan-visit__chip-v{
    font-size: 16px;
    font-weight: normal;
    color: var(--thm-black);
    text-align: right;
}

.plan-visit__pairs{
    margin: 0;
    padding-left: 0;
    list-style: none;
}
.plan-visit__pairs li{
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 0;
    border-top: 1px dashed rgba(0,0,0,.10);
    font-size: 16px;
    line-height: 1.55;
    font-weight: normal;
    color: var(--thm-black);
}
.plan-visit__pairs li:first-child{
    border-top: none;
    padding-top: 0;
}

.plan-visit__tag{
    display: inline-flex;
    align-items: center;
    height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,.10);
    background: rgba(0,0,0,.03);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--thm-black);
}

/* ---------------------------
   Right: side panel
--------------------------- */
.plan-visit__side{
    position: relative;
    border-radius: 12px;
    border: 1px solid #eceeef;
    background: #fff;
    padding: 22px 22px;
}

.plan-visit__side-title{
    font-size: 18px;
    font-weight: 500;
    margin: 0 0 12px;
    color: var(--thm-black);
}

.plan-visit__check{
    margin: 0 0 16px;
    padding-left: 0;
    list-style: none;
}
.plan-visit__check li{
    display: flex;
    gap: 10px;
    align-items: flex-start;
    font-size: 16px;
    font-weight: normal;
    color: var(--thm-black);
    line-height: 1.55;
    padding: 8px 0;
    border-top: 1px dashed rgba(0,0,0,.10);
}
.plan-visit__check li:first-child{
    border-top: none;
    padding-top: 0;
}

.plan-visit__tick{
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid rgba(46,204,113,.55);
    margin-top: 4px;
    flex: 0 0 18px;
    position: relative;
}
.plan-visit__tick::after{
    content: "";
    position: absolute;
    left: 4px;
    top: 3px;
    width: 6px;
    height: 9px;
    border-right: 2px solid rgba(46,204,113,.85);
    border-bottom: 2px solid rgba(46,204,113,.85);
    transform: rotate(40deg);
}

.plan-visit__mistakes{
    border-top: 1px solid rgba(0,0,0,.06);
    padding-top: 12px;
    margin-bottom: 16px;
}
.plan-visit__mistake{
    padding: 10px 0;
    border-top: 1px dashed rgba(0,0,0,.10);
}
.plan-visit__mistake:first-child{
    border-top: none;
}
.plan-visit__mistake-k{
    font-size: 16px;
    font-weight: 500;
    color: var(--thm-black);
    margin-bottom: 4px;
}
.plan-visit__mistake-v{
    font-size: 16px;
    font-weight: normal;
    line-height: 1.55;
    color: var(--thm-black);
}

.plan-visit__side-cta{
    margin-top: 6px;
}

.plan-visit__links{
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.plan-visit__fineprint{
    margin-top: 10px;
    font-size: 16px;
    font-weight: normal;
    line-height: 1.55;
    color: var(--thm-darkgray);
}

/* remove bottom margin for last row cards when using Bootstrap columns */
@media (min-width: 992px){
    .plan-visit__step:last-child{
        margin-bottom: 0;
    }
}

/* ---------------------------
   Responsive
--------------------------- */
@media (max-width: 991px){
    .plan-visit__flow{
        padding-right: 0;
        margin-bottom: 20px;
    }
}

@media (max-width: 767px){
    .plan-visit__card{
        padding: 20px 18px;
        border-radius: 12px;
    }
    .plan-visit__chip{
        width: 100%;
        justify-content: space-between;
        border-radius: 12px;
    }
    .plan-visit__side{
        padding: 18px 18px;
    }
}

/* ===========================================================================
   Misconceptions
   =========================================================================== */
.misconceptions__row {
    margin-top: 10px;
}

/* Left nav */
.misconceptions__nav {
    position: sticky;
    top: 110px;
    padding-right: 10px;
}

.misconceptions__tab {
    width: 100%;
    text-align: left;
    background: #fff;
    border: 1px solid #eceeef;
    border-radius: 12px;
    padding: 14px 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    transition: all .25s ease;
    color: var(--thm-black);
    margin-bottom: 12px;
}

.misconceptions__tab:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 18px rgba(0,0,0,.05);
    border-color: rgba(64,185,235,.55);
}

.misconceptions__tab.is-active {
    border-color: rgba(64,185,235,.9);
    box-shadow: 0 16px 22px rgba(64,185,235,.10);
}

.misconceptions__num {
    width: 34px;
    height: 34px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 500;
    font-size: 18px;
    color: var(--thm-black);
    background: rgba(64,185,235,.15);
    flex: 0 0 34px;
}

.misconceptions__label {
    font-size: 18px;
    line-height: 1.35;
    color: var(--thm-black);
}

/* Panels */
.misconceptions__panels {
    position: relative;
    min-height: 420px;
}

.misconceptions__panel {
    display: none;
}

.misconceptions__panel.is-active {
    display: block;
}

/* Content boxes */
.mis-box {
    position: relative;
    border-radius: 12px;
    border: 1px solid #eceeef;
    padding: 18px 18px;
    background: #fff;
    margin-bottom: 14px;
}

.mis-box__title {
    font-size: 16px;
    font-weight: normal;
    margin-bottom: 8px;
    color: var(--thm-base);
}

.mis-box p {
    margin: 0;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.55;
    color: var(--thm-black);
}

.mis-box--myth {
    border-style: dashed;
}

.mis-box--reality {
    border-color: rgba(46,204,113,.45);
    box-shadow: 0 18px 22px rgba(46,204,113,.06);
}

.mis-box--boundary {
    border-color: rgba(241,196,15,.45);
    box-shadow: 0 18px 22px rgba(241,196,15,.06);
}

/* Mobile */
@media (max-width: 991px) {
    .misconceptions {
        padding: 60px 0 70px;
    }

    .misconceptions__nav {
        position: relative;
        top: auto;
        margin-bottom: 16px;
    }

    .misconceptions__panels {
        min-height: 0;
    }
}

/* desktop 维持不变 */
.misconceptions__nav { position: sticky; top: 110px; }

/* mobile / tablet */
@media (max-width: 991px) {
    .misconceptions__nav {
        position: sticky;
        top: 72px;                 /* 视你的 header 高度可微调 */
        z-index: 20;
        background: #fff;
        padding: 10px 0 10px;
        margin: 0 0 14px;
        border-bottom: 1px solid #f0f0f0;
    }

    /* 横向标签条 */
    .misconceptions__nav {
        display: flex;
        gap: 10px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .misconceptions__nav::-webkit-scrollbar { display: none; }

    /* 标签变成「pill」：更紧凑 */
    .misconceptions__tab {
        flex: 0 0 auto;
        width: auto;
        margin-bottom: 0;
        padding: 10px 12px;
        border-radius: 999px;
        box-shadow: none;
    }
    .misconceptions__tab:hover {
        transform: none;
        box-shadow: none;
    }

    .misconceptions__num {
        width: 28px;
        height: 28px;
        border-radius: 999px;
        flex-basis: 28px;
        font-size: 12px;
    }

    .misconceptions__label {
        font-size: 14px;
        font-weight: 500;
        white-space: nowrap;
    }

    /* 面板区上移贴近标签条 */
    .misconceptions__panels {
        min-height: 0;
    }
}

/* =========================
   Hero Trust
   ========================= */
.hero-trust {
    margin: 18px auto 0;
    /*padding: 0;*/
    list-style: none;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 15px;
    font-size: 22px;
    opacity: 0.9;
}

.hero-trust.black-overlay {
    color: var(--thm-secondary);
    padding: 3px 18px;
    background: linear-gradient(
            to right,
            rgba(0,0,0,0.8),
            rgba(0,0,0,0)
    );
    border-radius: 3px;
}

.hero-trust li {
    position: relative;
    padding-left: 23px;
    white-space: nowrap;
}

.hero-trust li::before {
    content: "✓";
    position: absolute;
    left: 0;
    font-weight: bold;
}

/* Mobile tweaks */
@media (max-width: 768px) {
    .hero-trust {
        /*justify-content: center;*/
    }
}

/* ===========================================================================
   Misconceptions
   =========================================================================== */
.ac-weather .ac-weather__row { row-gap: 22px; }

/* Tall image block */
.ac-weather__figure{
    margin: 0;
    height: 100%;
    background: #fff;
    border: 1px solid #eceeef;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 18px 28px rgba(0,0,0,.05);
    display: flex;
    flex-direction: column;
}
.ac-weather__img{
    width: 100%;
    height: auto;
    display: block;
    /* 关键：让图片“更高于更宽”，贴合左列高度 */
    /*aspect-ratio: 3 / 4;*/
    object-fit: cover;
}
.ac-weather__caption{
    padding: 16px 18px 18px;
    font-size: 16px;
    font-weight: normal;
    line-height: 1.55;
    color: var(--thm-darkgray);
}
.ac-weather__badge{
    display: inline-block;
    font-size: 12px;
    letter-spacing: .3px;
    text-transform: uppercase;
    font-weight: 700;
    padding: 6px 10px;
    border-radius: 999px;
    margin-right: 10px;
    background: rgba(231, 76, 60, 0.12);
    color: #e74c3c;
}

/* Right column stack */
.ac-weather__cards{
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Mobile */
@media (max-width: 991px){
    .ac-weather__caption{ padding: 14px 16px 16px; }
}

/* =========================
   Home Map
   ========================= */
.home-map {
    color: var(--thm-black);
}

.home-map__image {
    position: relative;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

.home-map__image img {
    width: 100%;
    height: auto;
    display: block;
}

.home-map__image-badge {
    position: absolute;
    left: 16px;
    bottom: 16px;
    background: rgba(0,0,0,0.65);
    color: #fff;
    padding: 8px 12px;
    border-radius: 4px;
    font-size: 13px;
}

.home-map__content h3 {
    margin-bottom: 12px;
    line-height: 1.4;
    font-weight: 500;
    font-size: 18px;
}

.home-map__list {
    padding-left: 18px;
    margin-bottom: 22px;
}

.home-map__list strong {
    font-weight: normal;
    text-decoration: underline;
}

.home-map__list li {
    margin-bottom: 10px;
    line-height: 1.6;
    font-weight: normal;
}

.home-compare__grid {
    display: flex;
    flex-wrap: wrap;
    row-gap: 24px;
}

.home-process__steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
    padding-right: 28px;
}

.home-process__step {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px 18px 16px;
    border: 1px solid #eceeef;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.04);
}

.home-process__step-num {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    font-size: 16px;
    font-weight: 600;
    color: var(--thm-black);
    background: rgba(64, 185, 235, 0.16);
}

.home-process__step h4 {
    margin: 1px 0 6px;
    font-size: 17px;
    line-height: 1.35;
    color: var(--thm-black);
}

.home-process__step p {
    margin: 0;
    font-size: 16px;
    line-height: 1.55;
    color: var(--thm-darkgray);
}

#plan-your-visit .home-map__cta {
    padding-right: 28px;
}

#plan-your-visit .home-map__cta .thm-btn {
    margin-bottom: 10px;
}

.home-map__mini-links {
    margin-top: 12px;
    font-size: 16px;
    opacity: 0.9;
}

@media (max-width: 992px) {
    .home-map__content {
        margin-top: 24px;
    }

    .home-process__steps {
        grid-template-columns: 1fr;
    }
}

/* ================================
   Home Trust
================================ */

.home-trust {
    background: var(--thm-gray);
    padding: 80px 0;
}

/* =========================
   Home FAQ
   ========================= */
.home-faq {
    padding: 0;
}

.home-faq .row {
    row-gap: 10px;
}

.faq-item {
    padding: 22px 0 24px;
    border-bottom: 1px solid var(--thm-gray);
    transition: border-color 0.25s ease, transform 0.25s ease;
}

.faq-item:hover {
    border-color: #40b9eb;
    transform: translateY(-2px);
}

.faq-item h3 {
    margin: 0 0 10px;
    line-height: 1.4;
    font-weight: 500;
    font-size: 18px;
    color: var(--thm-black);
}

.faq-item p {
    margin: 0;
    font-size: 18px;
    line-height: 1.65;
    font-weight: normal;
    color: var(--thm-black);
}

@media (max-width: 767px) {
    .home-faq {
        padding: 0;
    }

    .faq-item {
        padding: 18px 0 20px;
    }

    .faq-item h3,
    .faq-item p {
        font-size: 16px;
    }
}
