footer {
    margin-top: 0;
}
main .main-visual-area,
main .main-contents,
.main-contents h4,
.main-contents h5 {
    font-family: "Noto Serif JP", sans-serif;
}
.main-contents dl {
    display: block;
}
.main-contents dt,
.main-contents dd {
    width: 100%;
}
.att li {
    font-size: 13px;
}
.main-visual-area .anchor-link li a:hover,
.main-contents dd a:hover,
.qa-list dt.js-accordion-btn:hover {
    opacity: 0.7;
}
.main-visual {
    margin-bottom: 0;
}
.main-visual-area {
    max-width: 100%;
    min-height: 700px;
    padding: 100px 40px 40px;
    background: url("/-/media/tfc/ts3travel/file/llhc/img/cp/2025/mv.png")  center / cover no-repeat;
}
.main-visual-inner {
    position: relative;
    width: 820px;
    margin: 0 auto 80px;
    padding-bottom: 50px;
    background-color: rgba(255, 255, 255, 0.6);
}
.main-visual-inner img {
    position: absolute;
    top: -48px;
    left: 52px;
    width: 170px;
    z-index: +1;
}
.domestic-luxury.fixed {
    position: fixed;
    top: 89px;
    left: 0;
    width: 100%;
    padding: 22px;
    background-color: #f0f0f0;
    z-index: 1000;

}
.main-visual-area .anchor-link {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: auto;
    gap: 10px;
}
.main-visual-area .anchor-link li a {
    display: block;
    padding: 10px 20px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 100px;
    text-decoration: none;
    color: var(--full-dark-color);
    font-weight: 600;
}
.main-visual-area .anchor-link li a::after {
    right: 16px;
}
.main-visual-area h1 {
    margin-bottom: 30px;
    text-align: center;
    font-size: min(7.47vw, 60px);
    line-height: 1.23;
    text-shadow:0 0 10px rgba(255, 255, 255, 1),
                0 5px 10px rgba(255, 255, 255, 0.6),
                5px 0 10px rgba(255, 255, 255, 0.6),
                0 -5px 10px rgba(255, 255, 255, 0.6),
                -5px 0 10px rgba(255, 255, 255, 0.6);
}
.main-visual-area h1 span {
    font-size: min(4.87vw, 24px);
}
.main-visual-area p {
    font-size: min(3.8vw, 19px);
    text-shadow:0 0 15px rgba(255, 255, 255, 1),
                0 5px 15px rgba(255, 255, 255, 0.8),
                5px 0 15px rgba(255, 255, 255, 0.8),
                0 -5px 15px rgba(255, 255, 255, 0.8),
                -5px 0 15px rgba(255, 255, 255, 0.8);
}
.main-visual-area p span {
    font-size: min(4.5vw,26px);
    font-weight: bold;
}
.main-visual-area p.gradation {
    margin-bottom: 25px;
    padding: 7px;
    font-size: min(4.7vw, 21px);
    text-align: center;
    text-shadow:0 0 15px rgba(106, 87, 60, 1),
                0 5px 15px rgba(106, 87, 60, .7),
                5px 0 15px rgba(106, 87, 60, .7),
                0 -5px 15px rgba(106, 87, 60, .7),
                -5px 0 15px rgba(106, 87, 60, .7);
    color: #fff;
    background-image: linear-gradient(90deg, rgba(84, 53, 15, 1), rgba(239, 217, 142, 1));
}
.main-visual-inner .date {
    display: flex;
    justify-content: center;
    width: 650px;
    margin: auto;
    padding: 5px;
    border-top: 1px solid var(--full-dark-color);
    border-bottom: 1px solid var(--full-dark-color);
}
.main-visual-inner .date p {
    position: relative;
    letter-spacing: 0.15em;
}
.main-visual-inner .date p:first-child {
    padding-right: 55px;
}
.main-visual-inner .date p:first-child::after {
    content: "";
    position: absolute;
    top: 20px;
    right: 20px;
    width: 23px;
    height: 2px;
    background-color: var(--full-dark-color);
}
.main-contents {
    padding: 50px;
    background-color: #F4F1EB;
}
.main-contents_inner {
    max-width: 1000px;
    padding: 50px;
    background-color: var(--full-light-color);
}
.main-contents_inner h2,
.main-contents_inner h3 {
    color: #57370D;
    font-family: "Noto Serif JP", sans-serif;
}
.main-contents_inner h2 {
    width: 100%;
    padding: 20px 0;
    justify-content: center;
    border: 1px solid #986C23;
}
.main-contents h2::before {
    content: none;
}
.main-contents_inner .colored h2 {
    border: 2px solid #94744B;
    background: rgba(253, 244, 215, 0.6);
}
.main-contents_inner .colored h2 + section {
    margin-top: 50px;
}
.main-contents_inner h2 + p {
    margin-bottom: 40px;
}
.main-contents_inner h3 {
    margin-bottom: 15px;
    font-size: min(6.27vw, 28px);
    border-bottom: 1px solid #986C23;
}
.main-contents_inner .step-list {
    position: relative;
    border: 1px solid #ccc;
    border-radius: 10px;
}
.main-contents_inner .step-list:not(:last-child)::after {
    position: absolute;
    content: "";
    bottom: -55px;
    left: calc(50% - 62.6px);
    width: 125px;
    height: 25px;
    background-image: url(/-/media/tfc/ts3travel/file/llhc/common/img/ico_triangle_g);
    background-size: contain;
}
.main-contents_inner .step-list + .step-list {
    margin-top: 85px;
}
.main-contents_inner .step-list dt {
    padding: 15px;
    text-align: center;
    border-radius: 10px 10px 0 0;
    color: var(--full-light-color);
    background-color: var(--main-dark-color);
}
.main-contents_inner .step-list dd {
    padding: 40px;
}
.main-contents_inner .step-list dd .flex_only_pc p {
    margin-left: 15px;
    font-size: min(4.66vw, 22px);
    font-weight: 600;
}
.main-contents_inner .step-list dd div + .step-list_section {
    margin-top: 30px;
    padding-top: 40px;
    border-top: 1px solid #ccc;
}
section.step-list_section h4 {
    display: inline-block;
    margin-bottom: 15px;
    padding: 15px 27px 15px 22px;
    font-size: 18px;
    border: 1px solid #b3b3b3;
    border-left: 8px solid #333;
}
section.step-list_section h5 {
    font-size: 15px;
}
.step-list_section section .att {
    width: 823px;
    margin: 0 auto 40px;
}
.step-list_section section .att .blue-line {
    display: inline-block;
    margin: 0px 10px;
    width: 25px;
    height: 13px;
    border: 2px solid #3b43aa;
}
.flex_img {
    margin-bottom: 15px;
}
.flex_img ul li {
    position: relative;
    width: 100%;
    text-indent: 0;
    padding-left: 0;
    list-style-type: none;
}
.flex_img ul li::before {
    content: none;
}
.flex_img ul li:not(:last-child)::after {
    position: absolute;
    content: "";
    top: calc(50% - 22px);
    right: -70px;
    width: 76px;
    height: 22px;
    background-image: url("/-/media/tfc/ts3travel/file/llhc/common/img/ico_triangle_g");
    background-size: contain;
    transform: rotate(270deg);
}
.flex_img ul li img {
    position: relative;
    width: 200px;
}
.anchor-btn {
    padding-top: 30px;
    border-top: 1px solid #C7C7C7;
}
.anchor-btn a {
    position: relative;
    display: block;
    width: 400px;
    margin: auto;
    padding: 10px 20px;
    border: 1px solid #333;
    border-radius: 100px;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
}
.anchor-btn a::after {
    position: absolute;
    content: "";
    width: 10px;
    height: 8px;
    top: calc(50% - 5px);
    right: 105px;
    background-image: url(/-/media/tfc/ts3travel/file/llhc/common/img/ico_arrow_b.svg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    transform: rotate(90deg);
}
.qa-list {
    padding: 25px 0 25px 44px;
    border-top: 1px solid #C7C7C7;
    border-bottom: 1px solid #C7C7C7;
}
.qa-list + .qa-list {
    border-top: none;
}
.qa-list dt,
.qa-list dd {
    position: relative;
    padding-top: 5px;
}
.qa-list dt span.qa,
.qa-list dd span.qa {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    top: 0;
    left: -44px;
    width: 34px;
    height: 34px;
    border-radius: 20px;
    font-size: 20px;
    color: var(--full-light-color);
    background-color: #986C23;
}
.qa-list dt.js-accordion-btn {
    cursor: pointer;
}
.qa-list dt.--open {
    margin-bottom: 25px;
}
.qa-list dd span.qa {
    background-color: #999;
}
.qa-list dt.js-accordion-btn::after {
    content: "";
    background: url(/-/media/tfc/ts3travel/file/llhc/img/list/ico_accordion_plus.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-color: #f5f5f5;
    border: 1px solid #BFBFBF;
    border-radius: 5px;
    width: 41px;
    height: 41px;
    position: absolute;
    right: -70px;
    z-index: 2;
    top: calc((100% - 41px) / 2);
    cursor: pointer;
}
.qa-list dt.js-accordion-btn.--open::after {
    background-image: url(/-/media/tfc/ts3travel/file/llhc/img/list/ico_accordion_minus.png);
}
.btn-area {
    margin-bottom: 75px;
    padding-top: 40px;
    border-top: 1px solid #ccc;
}
.btn-area .contact-text {
    font-size: min(3.85vw, 16px);
    text-align: center;
}
main .btn-reserve a {
    width: 100%;
    height: 68px;
    max-width: 500px;
    margin: 0 auto;
    padding: 14px;
    font-size: 15px;
    letter-spacing: 0.08em;
    text-align: center;
    font-family: "LexusRodinPro-DB", Meiryo, sans-serif;
}
main .btn-reserve a.contact-link {
    position: relative;
    height: 80px;
    padding: 0 28px;
    font-size: 16px;
}
main .btn-reserve a.contact-link::before {
    align-self: center;
    content: "";
    width: 34px;
    height: 26px;
    margin-right: 20px;
    background: url(/-/media/tfc/ts3travel/file/llhc/common/img/ico_contact-webmail.svg) no-repeat center;
    background-size: 100%;
}
main .btn-reserve a.contact-link span {
    display: inline;
}
main .btn-reserve a.contact-link span::before {
    content: "";
    width: 0;
    height: 0;
    margin: 0;
}
main .btn-reserve a.contact-link span.small {
    font-size: 12px;
}
.main-contents_inner .text-link {
    color: #57370D;
}
.main-contents_inner .text-link[target=_blank] {
    position: relative;
    display: inline-block;
    padding-right: 17px;
    text-indent: 0;
}
.main-contents_inner .text-link[target=_blank]::after {
    content: "";
    position: absolute;
    top: 4px;
    right: 1px;
    width: 12px;
    height: 12px;
    background: url("/-/media/tfc/ts3travel/file/llhc/common/img/ico_blank_b.svg") no-repeat center / cover;
}

/*llhc-campaign*/
.llhc-campaign h2,
.llhc-campaign h3,
.llhc-campaign p,
.llhc-campaign ul {
    font-family: "LexusRodinPro-M" , Nobel-Regular , Meiryo , sans-serif;
}
.main-contents_inner .llhc-campaign h2 {
    width: auto;
    font-size: min(4.36vw, 20px);
    border: none;
    color: var(--full-dark-color);
    text-align: center;
}
.llhc-campaign h3 {
    font-size: min(4.87vw, 24px);
    text-align: center;
    color: var(--full-dark-color);
    border-bottom: none;
}
.llhc-campaign h3 span {
    margin-right: 11px;
    padding: 4px 12px;
    border: 1px solid var(--full-dark-color);
    background-color: var(--full-light-color);
    font-size: 18px;
}
.llhc-campaign p {
    margin-bottom: 35px;
    font-size: 16px;
    font-weight: 600;
    text-align: center;
}
.llhc-campaign .point {
    display: flex;
    justify-content: center;
    margin-bottom: 35px;
    gap: 66px;
}
.llhc-campaign .point p {
    position: relative;
    width: 242px;
    margin-bottom: 0;
    font-size: 20px;
    border-radius: 10px;
    border: 1px solid #141414
}
.llhc-campaign .point p:first-child::after {
    content: "";
    position: absolute;
    top: calc(50% - 15px);
    right: -40px;
    width: 0;
    height: 0;
    border-style: solid;
    border-top: 15px solid transparent;
    border-bottom: 15px solid transparent;
    border-left: 13px solid #141414;
    border-right: 0;
}
.bkwhite {
    background-color: var(--full-light-color);
}
.bkblack {
    color: var(--full-light-color);
    background-color: var(--full-dark-color);
}
.llhc-campaign .point p span {
    font-size: 32px;
}
.llhc-campaign ul {
    font-size: 14px;
}
.llhc-campaign-area {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto 45px;
}
.llhc-campaign-area .llhc-campaign-area_inner {
    margin-bottom: 0;
}
.llhc-campaign-area .llhc-campaign-area_inner .btn {
    border-top: 1px solid #c7c7c7;
}
.llhc-campaign .btn-reserve a {
    width: 500px;
    height: auto;
    margin: auto;
    padding: 14px;
    font-family: "LexusRodinPro-DB", Meiryo, sans-serif;
}
.llhc-campaign .btn-reserve a::after,
.btn-area .btn-reserve a::after {
    position: absolute;
    content: "";
    width: 10px;
    height: 10px;
    right: 20px;
    background-image: url(/-/media/tfc/ts3travel/file/llhc/common/img/ico_arrow_w.svg);
}

/*animation*/
.fadeup {
    animation: fadeup 2.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
.fadeup-late {
    animation: fadeup-late 2.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
@keyframes fadeup {
    0% {
        transform: translateY(30px);
        opacity: 0;
    }
    80% {
        opacity: 1;
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
@keyframes fadeup-late {
    0% {
        transform: translateY(30px);
        opacity: 0;
    }
    50% {
        opacity: 0;
    }
    80% {
        opacity: 1;
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
/*animation end*/

@media screen and (min-width: 767px), (min-aspect-ratio: 7 / 10) {
    .only_sp {
        display: none;
    }
    .main-contents_inner section {
        margin-bottom: 60px;
    }
    .flex_only_pc {
        display: flex;
        align-items: center;
        margin-bottom: 25px;
    }
    .flex_img ul {
        justify-content: space-between;
        gap: 51px;
        width: 702px;
        margin: 0 auto 15px;
    }
    .step-list dd .flex_only_pc > img {
        max-width: 250px;
    }
    .qa-list.js-accordion-wrap {
        padding-right: 88px;
    }
}

@media  (min-width: 768px) and (max-width: 1099px) {
    .main-visual-area p.gradation {
        padding: 7px 10px 7px 70px;
        text-align: center;
    }
    .main-visual-inner {
        width: 100%;
    }
    .main-contents_inner h2 {
        font-size: 17px;
    }
    .flex_img ul,
    .main-contents_inner .step-list dd img,
    .step-list_section section .att {
        width: 100%;
    }
    .flex_img ul li:not(:last-child)::after {
        top: calc(50% - 22px);
        right: -70px;
        bottom: 0;
        transform: rotate(270deg);
    }
}

/*sp*/
@media (max-width: 767px), (max-aspect-ratio: 7 / 10) {
    .only_pc {
        display: none;
    }
    .main-visual-area {
        min-height: 350px;
        padding: 40px 20px 1px;
        background: url("https://tscubic-travel.com/-/media/tfc/ts3travel/file/llhc/img/cp/2025/mv_sp.png") center / cover no-repeat;
    }
    .main-visual-area p.gradation {
        padding-right: 18px;
        text-align: right;
    }
    .main-visual-area h1 span {
        display: inline-block;
        margin-bottom: 15px;
    }
    .main-visual-inner {
        width: 100%;
        padding-bottom: 30px;
        background-color: rgba(255, 255, 255, 0.8);
    }
    .main-visual-inner img {
        top: -15px;
        left: -15px;
        width: 85px;
    }
    .main-visual-inner .date {
        width: 90%;
    }
    .main-visual-inner .date p:first-child {
        padding-right: 25px;
    }
    .main-visual-inner .date p:first-child::after {
        top: 13px;
        right: 4px;
        width: 13px;
    }
    .domestic-luxury {
        display: none;
    }
    .domestic-luxury.fixed {
        display: block;
        top: 80px;
        padding: 0;
        font-family: "Noto Serif JP", sans-serif;
        font-weight: 600;
        background-color: var(--full-light-color);
    }
    .domestic-luxury .js-accordion-btn {
        display: none;
    }
    .domestic-luxury.fixed .js-accordion-btn {
        position: relative;
        display: block;
        width: 100%;
        padding: 10px 46px 11px;
        text-align: center;
        box-shadow: 0px 2px 0px 0px rgba(0, 0, 0, 0.16);
    }
    .domestic-luxury.fixed .js-accordion-btn:after {
        content: "";
        width: 46px;
        height: 46px;
        display: block;
        position: absolute;
        top: -1px;
        left: 0;
        background-color: var(--full-dark-color);
        background-image: linear-gradient(180deg, var(--full-light-color) 0px 2px, transparent 2px), linear-gradient(90deg, var(--full-light-color) 0px 2px, transparent 2px);
        background-size: 15px 2px, 2px 15px;
        background-position: calc((46px - 15px - 2px) / 2) calc((46px - 2px - 2px) / 2), calc((46px - 2px - 2px) / 2) calc((46px - 2px - 15px) / 2);
        background-repeat: no-repeat;
    }
    .domestic-luxury.fixed .js-accordion-btn.--open:after {
        content: "";
        border: 1px solid #333333;
        background-image: linear-gradient(180deg, var(--full-light-color) 0px 2px, transparent 2px);
        background-color: #333333;
        background-size: 17px 2px;
        background-position: calc((46px - 17px - 2px) / 2) calc((46px - 2px - 2px) / 2), calc((46px - 2px - 2px) / 2) calc((46px - 2px - 17px) / 2);
        background-repeat: no-repeat;
    }
    .anchor-link {
        padding: 20px;
        font-weight: 600;
        font-family: "Noto Serif JP", sans-serif;
        background-color: #f0f0f0;
    }
    .anchor-link ul {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }
    .anchor-link a {
        display: inline-block;
        padding: 6px 12px;
        border-radius: 20px;
        font-size: 3.75vw;
        text-decoration: none;
        background-color: rgba(255, 255, 255, 0.9);
    }
    .main-contents,
    .main-contents_inner {
        padding: 0;
    }
    .main-contents_inner section section,
    .btn-area,
    .qa-wrap,
    .llhc-campaign {
        margin: 40px 20px;
    }
    .main-contents_inner h2 {
        font-size: 6.06vw;
    }
    .main-contents_inner .colored {
        padding: 30px 20px;
        background-color: #F4F1EB;
    }
    .main-contents_inner .colored h2 {
        margin: 0;
        padding: 12px;
        font-size: 4.36vw;
        text-align: center;
    }
    .main-contents_inner .step-list dd {
        padding: 20px;
    }
    .main-contents_inner .step-list dd img {
        width: 100%;
        margin-bottom: 15px;
    }
    .main-contents_inner .step-list dd div + .step-list_section {
        margin: 25px 0 0;
    }
    .main-contents_inner .step-list dd div + .step-list_section section {
        margin: 0;
    }
    .main-contents_inner .step-list dd .flex_only_pc p {
        margin: 0 0 17px;
    }
    section.step-list_section h4 {
        width: 100%;
        padding: 15px 15px 15px 8px;
    }
    .qa-list dt.js-accordion-btn {
        padding-right: 55px;
    }
    .qa-list dt.js-accordion-btn::after {
        right: 0;
    }
    .llhc-campaign-area .llhc-campaign-area_inner {
        margin: 0;
    }
    .llhc-campaign h3 span {
        display: block;
        width: 100px;
        margin: 0 auto 17px;
    }
    .llhc-campaign .point {
        flex-direction: column;
        align-items: center;
        margin-bottom: 30px;
        gap: 40px;
    }
    .llhc-campaign .point p:first-child::after {
        top: auto;
        bottom: -37px;
        right: calc(50% - 7px);
        transform: rotate(90deg);
    }
    .llhc-campaign .btn-reserve a {
        width: 100%;
    }
    .flex_img ul li {
        margin-bottom: 40px;
    }
    .flex_img ul li:not(:last-child)::after {
        top: auto;
        bottom: -35px;
        right: calc(50% - 38px);
        transform: none;
    }
    .flex_img ul li img {
        display: block;
        margin: auto;
    }
    .step-list_section section .att,
    .anchor-btn a {
        width: 100%;
    }
    .anchor-btn a::after {
        right: 18vw;
    }
    .btn-reserve a.contact-link::before {
        width: 25px;
        height: 23px;
        margin-right: 2.56vw;
    }
    .btn-reserve a.contact-link span.small {
        font-size: 10px;
    }
    main .btn-reserve a {
        height: 70px;
    }
}

/* 251210 campaign close */
.main-visual-inner {
    padding-top: 37px;
}
.main-visual-area p.campaign-close {
    background-color: #94744b;
    max-width: 700px;
    margin-inline: auto;
    padding: 5px 12px 6px;
    font-size: 27px;
    text-align: center;
    color: #fff;
    text-shadow: none;
    letter-spacing: 1px;
}
.main-visual-area p.campaign-close span {
    display: inline-block;
    margin-left: 0.8em;
    font-size: inherit;
    font-weight: normal;
}
@media (max-width: 767px), (max-aspect-ratio: 7 / 10) {
    .main-visual-area p.campaign-close {
        max-width: 78.7vw;
        margin-bottom: 25px;
        padding: 5px 12px 6px;
        font-size: 4vw;
        letter-spacing: normal;
    }
}