/* リセットとベーススタイル */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    width: 100%;
    overflow-x: hidden;
}

body {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    background-color: #ffffff;
    color: #000000;
    width: 100%;
    overflow-x: hidden;
    max-width: 100vw;
}

/* ユーティリティクラス */
.bg-white {
    background-color: #ffffff;
}

.overflow-hidden {
    overflow: hidden;
}

.w-full {
    width: 100%;
    max-width: 100%;
}

.max-w-\[1440px\] {
    max-width: 1440px;
}

.relative {
    position: relative;
}

.sticky {
    position: sticky;
}

.top-0 {
    top: 0;
}

.z-50 {
    z-index: 50;
}

.shadow-header {
    box-shadow: 0px 4.8px 9.6px rgba(0, 0, 0, 0.1);
}

/* ヘッダーロゴ */
.header-logo {
    height: 50px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
    object-position: left center;
    margin-right: 2rem; /* ロゴとナビゲーションの間隔を追加 */
}

/* ヒーロー画像（FV） */
.hero-image {
    width: 100%;
    max-width: 1440px; /* 横幅の最大値を1440pxに */
    height: auto; /* アスペクト比を保持 */
    max-height: 100vh; /* 画面の高さを超えないように */
    object-fit: contain; /* 画像全体が表示されるように */
    object-position: center;
    display: block;
    margin: 0 auto; /* 中央配置 */
}

.flex {
    display: flex;
}

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

.justify-between {
    justify-content: space-between;
}

.justify-center {
    justify-content: center;
}

.gap-2 {
    gap: 0.5rem;
}

.gap-4 {
    gap: 1rem;
}

.gap-5 {
    gap: 1.25rem;
}

.gap-6 {
    gap: 1.5rem;
}

.gap-8 {
    gap: 2rem;
}

.gap-\[32px\] {
    gap: 32px;
}

.gap-\[34px\] {
    gap: 34px;
}

.gap-\[40px\] {
    gap: 40px;
}

.gap-\[41px\] {
    gap: 41px;
}

.gap-\[52px\] {
    gap: 26px;
}

.gap-\[53px\] {
    gap: 53px;
}

.gap-\[58px\] {
    gap: 58px;
}

.gap-\[61px\] {
    gap: 61px;
}

.gap-\[63px\] {
    gap: 63px;
}

.gap-\[69px\] {
    gap: 69px;
}

.gap-\[72px\] {
    gap: 72px;
}

.gap-\[84px\] {
    gap: 84px;
}

.gap-\[85px\] {
    gap: 85px;
}

.gap-\[89px\] {
    gap: 89px;
}

.gap-\[101px\] {
    gap: 101px;
}

.gap-\[109px\] {
    gap: 109px;
}

.h-\[148px\] {
    height: 148px;
}

.h-\[2065px\] {
    height: 2065px;
}

.h-\[35px\] {
    height: 35px;
}

.h-\[49px\] {
    height: 49px;
}

.h-\[477px\] {
    height: 477px;
}

.h-\[501px\] {
    height: 501px;
}

.h-\[589px\] {
    height: 589px;
}

.h-\[615px\] {
    height: 615px;
}

.h-\[679px\] {
    height: 679px;
}

.h-\[77px\] {
    height: 77px;
}

.h-\[88px\] {
    height: 88px;
}

.h-\[101px\] {
    height: 101px;
}

.h-\[163px\] {
    height: 163px;
}

.h-\[305px\] {
    height: 305px;
}

.h-\[321px\] {
    height: 321px;
}

.h-\[329px\] {
    height: 329px;
}

.h-\[477px\] {
    height: 477px;
}

.h-\[829px\] {
    height: 829px;
}

.w-\[132px\] {
    width: 132px;
}

.w-\[293px\] {
    width: 293px;
}

.w-\[391px\] {
    width: 391px;
}

.w-\[470px\] {
    width: 470px;
}

.w-\[512px\] {
    width: 512px;
}

.w-\[49px\] {
    width: 49px;
}

.w-\[54px\] {
    width: 54px;
}

.w-\[55px\] {
    width: 55px;
}

.w-\[51px\] {
    width: 51px;
}

.w-\[661px\] {
    width: 661px;
}

.w-\[943\.91px\] {
    width: 943.91px;
}

.w-14 {
    width: 3.5rem;
}

.h-20 {
    height: 5rem;
}

.h-14 {
    height: 3.5rem;
}

.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.px-14 {
    padding-left: 3.5rem;
    padding-right: 3.5rem;
}

.px-\[120px\] {
    padding-left: 120px;
    padding-right: 120px;
}

.py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.p-0 {
    padding: 0;
}

.p-\[28px\] {
    padding: 20px 28px;
}

.px-\[28px\] {
    padding-left: 28px;
    padding-right: 28px;
}

.pb-\[28px\] {
    padding-bottom: 28px;
}

.p-\[45px\] {
    padding: 45px;
}

.p-\[66px\] {
    padding: 66px;
}

.p-\[91px\] {
    padding: 91px;
}

.p-4 {
    padding: 1rem;
}

.p-6 {
    padding: 1.5rem;
}

.mb-2 {
    margin-bottom: 0.5rem;
}

.mb-4 {
    margin-bottom: 1rem;
}

.mb-6 {
    margin-bottom: 1.5rem;
}

.mb-8 {
    margin-bottom: 2rem;
}

.mb-12 {
    margin-bottom: 3rem;
}

.mb-16 {
    margin-bottom: 4rem;
}

.mt-2 {
    margin-top: 0.5rem;
}

.mt-12 {
    margin-top: 3rem;
}

.mt-16 {
    margin-top: 4rem;
}

.mt-\[34px\] {
    margin-top: 34px;
}

.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.self-center {
    align-self: center;
}

.text-center {
    text-align: center;
}

.text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}

.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
}

.text-\[17px\] {
    font-size: 17px;
}

.text-\[25px\] {
    font-size: 25px;
}

.text-\[27\.5px\] {
    font-size: 27.5px;
}

.text-\[28px\] {
    font-size: 28px;
}

.text-\[28\.3px\] {
    font-size: 28.3px;
}

.text-\[32px\] {
    font-size: 32px;
}

.text-\[33\.4px\] {
    font-size: 33.4px;
}

.text-\[35\.9px\] {
    font-size: 35.9px;
}

.text-\[38\.5px\] {
    font-size: 38.5px;
}

.text-\[43\.6px\] {
    font-size: 43.6px;
}

.text-\[46\.8px\] {
    font-size: 46.8px;
}

.text-\[52\.3px\] {
    font-size: 52.3px;
}

.text-\[57\.1px\] {
    font-size: 57.1px;
}

.text-\[68\.1px\] {
    font-size: 68.1px;
}

.font-normal {
    font-weight: 400;
}

.font-medium {
    font-weight: 500;
}

.font-bold {
    font-weight: 700;
}

.font-extrabold {
    font-weight: 800;
}

.text-black {
    color: #000000;
}

.text-white {
    color: #ffffff;
}

.text-\[\#1a5490\] {
    color: #1a5490;
}

.text-\[\#3e4453\] {
    color: #3e4453;
}

.text-\[\#706d7c\] {
    color: #706d7c;
}

.text-\[\#ff7171\] {
    color: #ff7171;
}

.tracking-\[0\] {
    letter-spacing: 0;
}

.tracking-\[0\.56px\] {
    letter-spacing: 0.56px;
}

.tracking-\[0\.58px\] {
    letter-spacing: 0.58px;
}

.tracking-\[0\.80px\] {
    letter-spacing: 0.80px;
}

.tracking-\[1\.50px\] {
    letter-spacing: 1.50px;
}

.tracking-\[1\.60px\] {
    letter-spacing: 1.60px;
}

.tracking-\[1\.83px\] {
    letter-spacing: 1.83px;
}

.tracking-\[2\.00px\] {
    letter-spacing: 2.00px;
}

.tracking-\[2\.25px\] {
    letter-spacing: 2.25px;
}

.tracking-\[2\.99px\] {
    letter-spacing: 2.99px;
}

.tracking-\[3\.00px\] {
    letter-spacing: 3.00px;
}

.tracking-\[3\.20px\] {
    letter-spacing: 3.20px;
}

.tracking-\[3\.60px\] {
    letter-spacing: 3.60px;
}

.tracking-\[4\.00px\] {
    letter-spacing: 4.00px;
}

.tracking-\[5\.38px\] {
    letter-spacing: 5.38px;
}

.tracking-\[5\.50px\] {
    letter-spacing: 5.50px;
}

.tracking-\[5\.60px\] {
    letter-spacing: 5.60px;
}

.tracking-\[5\.67px\] {
    letter-spacing: 5.67px;
}

.tracking-\[7\.70px\] {
    letter-spacing: 7.70px;
}

.tracking-\[10\.46px\] {
    letter-spacing: 10.46px;
}

.leading-\[normal\] {
    line-height: normal;
}

.leading-\[26px\] {
    line-height: 26px;
}

.leading-\[58\.0px\] {
    line-height: 58.0px;
}

.whitespace-nowrap {
    white-space: nowrap;
}

.whitespace-pre-line {
    white-space: pre-line;
}

.object-cover {
    object-fit: cover;
}

.rounded-\[15px\] {
    border-radius: 15px;
}

.rounded-\[26\.75px\] {
    border-radius: 26.75px;
}

.rounded-\[27px\] {
    border-radius: 27px;
}

.rounded-full {
    border-radius: 9999px;
}

.rounded-\[30px\] {
    border-radius: 30px;
}

.rounded-\[43\.18px\] {
    border-radius: 43.18px;
}

.rounded-\[81\.5px\] {
    border-radius: 81.5px;
}

.border {
    border-width: 1px;
}

.border-solid {
    border-style: solid;
}

.border-black {
    border-color: #000000;
}

.border-white {
    border-color: #ffffff;
}

.border-\[3px\] {
    border-width: 3px;
}

.bg-neutral-100 {
    background-color: #f5f5f5;
}

.bg-\[\#1a5490\] {
    background-color: #1a5490;
}

.bg-\[\#3e4453\] {
    background-color: #3e4453;
}

.bg-\[\#4ab6ff\] {
    background-color: #4ab6ff;
}

.bg-\[\#706d7c\] {
    background-color: #706d7c;
}

.bg-\[\#867d68\] {
    background-color: #867d68;
}

.bg-\[\#fc9229\] {
    background-color: #fc9229;
}

.bg-\[\#ffebc8\] {
    background-color: #ffebc8;
}

.bg-overlay {
    background-color: rgba(62, 68, 83, 0.698);
}

.max-w-\[827px\] {
    max-width: 827px;
}

.max-w-\[1018px\] {
    max-width: 1018px;
}

.max-w-\[1343px\] {
    max-width: 1343px;
}

.max-w-\[1372px\] {
    max-width: 1372px;
}

.max-w-\[1376px\] {
    max-width: 1376px;
}

.max-w-\[1573px\] {
    max-width: 1573px;
}

.max-w-\[1579px\] {
    max-width: 1579px;
}

.max-w-\[1440px\] {
    max-width: 1440px;
}

.flex-shrink-0 {
    flex-shrink: 0;
}

.flex-1 {
    flex: 1 1 0%;
}

a.flex-1 {
    text-decoration: none;
    color: inherit;
    display: block;
}

.flex-col {
    flex-direction: column;
}

.grid {
    display: grid;
}

.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.space-y-4 > * + * {
    margin-top: 1rem;
}

.absolute {
    position: absolute;
}

.inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.inset-\[14px\] {
    top: 14px;
    right: 14px;
    bottom: 14px;
    left: 14px;
}

.bottom-\[61px\] {
    bottom: 61px;
}

.left-\[186px\] {
    left: 186px;
}

.shadow-step {
    box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
}

.ml-auto {
    margin-left: auto;
}

/* カスタムクラス */
.nav-link {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #000000;
    font-size: 10.4px;
    letter-spacing: 2.60px;
    line-height: normal;
    text-decoration: none;
    transition: color 0.3s;
    white-space: nowrap;
    flex-shrink: 0;
}

.nav-link:hover {
    color: #1a5490;
}

.section-subtitle {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 400;
    color: #706d7c;
    font-size: 22px;
    letter-spacing: 5.50px;
    line-height: normal;
    margin-bottom: 1rem;
}

.section-subtitle.text-white {
    font-weight: 400;
    font-size: 22.01px;
    color: #ffffff;
    line-height: 1.2;
    margin-bottom: 0.5rem;
}

.section-title {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 800;
    color: #1a5490;
    font-size: 54.48px;
    letter-spacing: 0;
    line-height: normal;
}

.section-title.text-white {
    font-size: 54.45px;
    font-weight: 800;
    color: #ffffff;
    line-height: 1.1;
}

.concept-main-title {
    font-family: 'Noto Serif JP', serif;
    font-weight: 700;
    color: #1a5490;
    font-size: 41.84px;
    text-align: center;
    letter-spacing: 10.46px;
    line-height: 46.4px;
    margin-bottom: 3rem;
}

.concept-description {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 22px;
    text-align: center;
    letter-spacing: 5.50px;
    line-height: normal;
    margin-bottom: 4rem;
}

.concept-section-title {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #1a5490;
    font-size: 45.68px;
    letter-spacing: 0;
    line-height: normal;
}

.concept-section-subtitle {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #000000;
    font-size: 1.5rem;
    letter-spacing: 0.175rem;
    line-height: normal;
    margin-bottom: 1.5rem;
}

.concept-text {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-size: 1rem;
    letter-spacing: 4.00px;
    line-height: normal;
}

.concept-text p {
    font-weight: 500;
    color: #706d7c;
    letter-spacing: 0.80px;
}

.concept-text-simple {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 1rem;
    letter-spacing: 4.00px;
    line-height: normal;
}

.info-label {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 1rem;
    letter-spacing: 4.00px;
    line-height: normal;
    white-space: nowrap;
}

.info-text {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 400;
    color: #ffffff;
    font-size: 1rem;
    letter-spacing: 4.00px;
    line-height: normal;
}

.info-text-small {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 400;
    color: #ffffff;
    font-size: 0.9rem;
    letter-spacing: 3.60px;
    line-height: normal;
}

.info-text-small-bold {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 0.8rem;
    letter-spacing: 1.60px;
    line-height: normal;
}

.flow-step-circle {
    width: 163px;
    height: 163px;
    background-color: #1a5490;
    border-radius: 9999px;
    box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    aspect-ratio: 1;
}

.flow-step-number {
    color: #ffffff;
    font-size: 34.86px;
    font-weight: 800;
    text-align: center;
    line-height: 1;
}

.flow-step-title {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 800;
    color: #1a5490;
    font-size: 28.76px;
    letter-spacing: 0;
    line-height: normal;
}

.flow-description {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #000000;
    font-size: 16px;
    letter-spacing: 4px;
    line-height: 1.8;
    margin-bottom: 30px;
}

.flow-section-label {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 800;
    color: #1a5490;
    font-size: 22.12px;
    letter-spacing: 0;
    line-height: normal;
    margin-bottom: 15px;
}

.flow-section-content {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 800;
    color: #000000;
    font-size: 22.12px;
    letter-spacing: 0;
    line-height: 1.6;
    margin-bottom: 20px;
}

.flow-booking-method {
    margin-top: 40px;
}

.flow-activity-box {
    background-color: #ffffff;
    border-radius: 30px;
    padding: 40px;
    margin-bottom: 30px;
}

.flow-activity-box + .flow-activity-box {
    margin-top: 41px;
    margin-bottom: 0;
}

.flow-activity-box:last-child {
    margin-bottom: 0;
}

.flow-activity-title {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 800;
    color: #1a5490;
    font-size: 25.6px;
    letter-spacing: 0;
    line-height: normal;
    margin-bottom: 20px;
}

.flow-activity-divider {
    width: 100%;
    height: 2px;
    background-color: #1a5490;
    margin-bottom: 30px;
}

.flow-activity-item {
    display: flex;
    gap: 20px;
    margin-bottom: 40px;
    align-items: flex-start;
}

.flow-activity-item:last-child {
    margin-bottom: 0;
}

.flow-activity-number {
    width: 54px;
    height: 54px;
    background-color: #1a5490;
    border-radius: 9999px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #ffffff;
    font-size: 22.12px;
    font-weight: 800;
}

.flow-activity-content {
    flex: 1;
}

.flow-activity-subtitle {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 800;
    color: #1a5490;
    font-size: 22.12px;
    letter-spacing: 0;
    line-height: normal;
    margin-bottom: 10px;
}

.flow-activity-text {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #000000;
    font-size: 14.4px;
    letter-spacing: 0;
    line-height: 1.6;
    margin-bottom: 10px;
}

.flow-activity-note {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 12px;
    letter-spacing: 0;
    line-height: 1.6;
    margin-top: 10px;
}

.flow-step-item-title {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 800;
    color: #1a5490;
    font-size: 22.12px;
    letter-spacing: 0;
    line-height: normal;
    margin-bottom: 10px;
}

.flow-step-item-description {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #000000;
    font-size: 14.4px;
    letter-spacing: 0;
    line-height: 1.6;
    margin-bottom: 10px;
}

.flow-step-item-note {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 12px;
    letter-spacing: 0;
    line-height: 1.6;
    margin-top: 10px;
}

.flow-note {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #000000;
    font-size: 1rem;
    text-align: center;
    letter-spacing: 4.00px;
    line-height: normal;
    margin-top: 3rem;
    max-width: 1018px;
    margin-left: auto;
    margin-right: auto;
}

.tour-category-btn {
    width: 286px;
    height: 101px;
    border-radius: 30px;
    box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    position: relative;
    border: none;
    cursor: pointer;
    transition: opacity 0.3s;
    text-decoration: none;
}

.tour-category-btn:hover {
    opacity: 0.9;
}

.tour-category-btn span:first-child {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #ffffff;
    font-size: 1rem;
    text-align: center;
    letter-spacing: 2.00px;
    line-height: normal;
}

.tour-category-arrow {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #ffffff;
    font-size: 1rem;
    letter-spacing: 4.00px;
    line-height: normal;
    text-align: center;
}

.tour-plan-number {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 1rem;
    text-align: left;
    letter-spacing: 4.00px;
    line-height: 1.5; /* normalから1.5に変更 */
    margin-bottom: 0.5rem; /* 0.25remから0.5remに変更 */
}

.tour-plan-subtitle {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 11.98px;
    text-align: left;
    letter-spacing: 2.99px;
    line-height: 1.5; /* normalから1.5に変更 */
    margin-bottom: 0.5rem; /* 0.25remから0.5remに変更 */
}

.tour-plan-title {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #3e4453;
    font-size: 21.52px;
    text-align: left;
    letter-spacing: 5.38px;
    line-height: 1.6; /* 1.0から1.6に変更 */
    margin-bottom: 0.5rem;
}

.tour-plan-title-large {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #3e4453;
    font-size: 21.52px;
    letter-spacing: 0;
    line-height: 1.6; /* 1.0から1.6に変更 */
    margin-bottom: 1rem;
}

.tour-plan-description {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 12px;
    letter-spacing: 3.00px;
    line-height: 1.8; /* normalから1.8に変更 */
    margin-bottom: 1rem;
}

.tour-price-box {
    background-color: #ffebc8;
    border-radius: 15px;
    padding: 1rem;
    margin-bottom: 1rem;
}

.tour-price-box > .flex.mb-4 {
    margin-bottom: 0.75rem !important;
}

.tour-price-label {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 11.98px;
    text-align: center;
    letter-spacing: 1.50px;
    line-height: normal;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.tour-price-participants {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #3e4453;
    font-size: 14.6px;
    letter-spacing: 1.83px;
    line-height: normal;
}

.tour-price-amount {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #ff7272;
    font-size: 37.47px;
    letter-spacing: 0;
    line-height: normal;
}

.tour-price-tax {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 11.98px;
    letter-spacing: 1.50px;
    line-height: normal;
}

.tour-details {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 0;
}

.tour-detail-item {
    display: flex;
}

.tour-detail-label {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #3e4453;
    font-size: 12px;
    letter-spacing: 3.00px;
    line-height: normal;
    width: 181px;
    flex-shrink: 0;
}

.tour-detail-label-no-spacing {
    letter-spacing: 0;
    white-space: nowrap;
}

.tour-detail-value {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #3e4453;
    font-size: 12px;
    letter-spacing: 3.00px;
    line-height: 1.8; /* 1.4から1.8に変更 */
    flex: 1;
}

.tour-detail-value.whitespace-pre-line {
    line-height: 1.8; /* 1.4から1.8に変更 */
}

.tour-note-box {
    background-color: #ffebc8;
    border-radius: 15px;
    padding: 1rem;
    margin-top: 2.25rem;
}

.tour-note-text {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    color: #706d7c;
    font-size: 10.4px;
    letter-spacing: 0;
    line-height: normal;
}

.tour-apply-btn {
    width: 661px;
    height: 77px;
    background-color: #FD9329;
    border-radius: 43.18px;
    box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.25);
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    cursor: pointer;
    transition: background-color 0.3s;
    padding: 0 1rem;
    gap: 0.5rem;
    text-decoration: none;
    color: inherit;
}

.tour-apply-btn:hover {
    background-color: rgba(252, 146, 41, 0.9);
}

.tour-apply-btn span:first-child {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 22.68px;
    letter-spacing: 5.67px;
    line-height: normal;
}

/* PCでは改行を非表示 */
.mobile-br {
    display: none;
}

.tour-apply-btn span:last-child {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 22.68px;
    letter-spacing: 5.67px;
    line-height: normal;
}

.spot-title {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #1a5490;
    font-size: 1rem;
    letter-spacing: 4.00px;
    line-height: normal;
    margin-bottom: 1rem;
}

.package-tour-text {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 26.72px;
    text-align: center;
    letter-spacing: 0;
    line-height: normal;
}

/* パッケージツアーカードのタイトル */
.package-tour-title {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 28px;
    text-align: center;
    margin-bottom: 24px;
    letter-spacing: 2px;
}

/* パッケージツアーのボタンコンテナ */
.package-tour-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    width: 100%;
    max-width: 500px;
}

/* パッケージツアーのボタン */
.package-tour-button {
    display: inline-block;
    padding: 12px 24px;
    border: 2px solid #ffffff;
    border-radius: 8px;
    background-color: transparent;
    color: #ffffff;
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 500;
    font-size: 16px;
    text-align: center;
    text-decoration: none;
    transition: all 0.3s ease;
    min-width: 120px;
}

.package-tour-button:hover {
    background-color: rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
}

.notice-content {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 16px;
    letter-spacing: 2px;
    line-height: 16px;
    white-space: pre-line;
}

.notice-subtitle {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 22.01px;
    text-align: center;
    letter-spacing: 5.50px;
    line-height: normal;
    margin-bottom: 2rem;
}

.contact-org-name {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 20px;
    letter-spacing: 0.56px;
    line-height: normal;
    margin-bottom: 0.5rem;
}

.contact-info {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    color: #ffffff;
    font-size: 20px;
    letter-spacing: 0.56px;
    line-height: normal;
}

.phone-number {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #ffffff;
    font-size: 24px;
    text-align: center;
    letter-spacing: 6px;
    line-height: normal;
}

.contact-details {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 400;
    color: #ffffff;
    font-size: 20px;
    letter-spacing: 2.25px;
    line-height: normal;
}

.footer-copyright {
    font-family: 'Noto Sans JP', Helvetica, sans-serif;
    font-weight: 700;
    color: #000000;
    font-size: 0.8rem;
    text-align: center;
    letter-spacing: 3.20px;
    line-height: normal;
}

/* スムーススクロール */
html {
    scroll-behavior: smooth;
}

/* 関連サイトセクション */
.links-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    max-width: 100%;
    align-items: center;
}

.link-item {
    display: block;
    text-decoration: none;
    transition: opacity 0.3s;
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
    margin: 0;
}

.link-item:hover {
    opacity: 0.8;
}

.link-logo {
    width: 100%;
    height: auto;
    max-height: 160px;
    object-fit: contain;
    display: block;
    margin: 0;
    padding: 0;
}

/* レスポンシブ対応 */
/* スマートフォン（768px以下） */
@media (max-width: 768px) {
    * {
        max-width: 100%;
    }
    
    html, body {
        width: 100%;
        overflow-x: hidden;
        max-width: 100vw;
    }
    
    /* リバーSUPセクションの順番変更（スマホのみ） */
    .grid.grid-cols-2.mb-16 {
        display: flex;
        flex-direction: column;
        gap: 1rem !important;
        margin-bottom: 2rem !important;
    }
    
    .grid.grid-cols-2.gap-8 {
        gap: 1rem !important;
    }
    
    .concept-content-mobile {
        display: contents;
    }
    
    .concept-title-mobile {
        order: 1;
    }
    
    .concept-subtitle-mobile {
        order: 2;
    }
    
    .concept-image-mobile {
        order: 3;
    }
    
    .concept-text-mobile {
        order: 4;
    }
    
    .concept-section-title {
        font-size: 2.25rem;
    }
    
    /* くしろ街中歴史散歩セクションの順番変更（スマホのみ） */
    .history-walk-section {
        display: flex;
        flex-direction: column;
    }
    
    .history-walk-content-mobile {
        display: contents;
    }
    
    .history-walk-title-mobile {
        order: 1;
    }
    
    .history-walk-subtitle-mobile {
        order: 2;
    }
    
    .history-walk-image-mobile {
        order: 3;
    }
    
    .history-walk-text-mobile {
        order: 4;
    }
    
    /* 開催日時セクションの縦並び（スマホのみ） */
    .info-date-section-mobile {
        flex-direction: column;
        gap: 0.75rem !important;
    }
    
    /* 開催場所セクションの縦並び（スマホのみ） */
    .info-location-section-mobile {
        flex-direction: column;
        gap: 0.75rem !important;
    }
    
    /* 駐車場セクションの縦並び（スマホのみ） */
    .info-parking-section-mobile {
        flex-direction: column;
        gap: 0.75rem !important;
    }
    
    /* ご注意セクションの縦並び（スマホのみ） */
    .info-notice-section-mobile {
        flex-direction: column;
        gap: 0.75rem !important;
    }
    
    /* flow-activity-itemの横幅調整（スマホのみ） */
    .flow-activity-item {
        width: 100%;
    }
    
    .flow-activity-content {
        width: 100%;
        flex: 1;
        max-width: 100%;
    }
    
    .flow-activity-text,
    .flow-activity-note {
        width: 100%;
        max-width: 100%;
        word-wrap: break-word;
        overflow-wrap: break-word;
    }
    
    /* スマホでflex-1 bg-neutral-100 rounded-[30px]の横幅を20px広げる */
    .flex-1.bg-neutral-100.rounded-\[30px\] {
        width: calc(100% + 20px);
        margin-left: -10px;
        margin-right: -10px;
    }
    
    .flow-activity-box {
        padding: 1rem;
        width: calc(100% + 10px);
        margin-left: -5px;
        margin-right: -5px;
    }
    
    .flow-activity-item {
        gap: 1rem;
    }
    
    /* パッケージツアーカードのスマホビュー調整 */
    .package-tour-title {
        font-size: 24px;
        margin-bottom: 16px;
    }
    
    .package-tour-buttons {
        gap: 8px;
        max-width: 100%;
    }
    
    .package-tour-button {
        font-size: 14px;
        padding: 10px 16px;
        min-width: 100px;
        flex: 1 1 calc(50% - 4px);
    }
    
    .flex.gap-8.mt-16 {
        flex-direction: column;
        gap: 1rem;
    }
    
    /* ボタンのフォントサイズと文字間調整（スマホのみ） */
    .tour-apply-btn span:first-child {
        font-size: 18px;
        letter-spacing: 3px;
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    
    /* スマホでは改行を表示 */
    .mobile-br {
        display: block;
    }
    
    .tour-apply-btn span:last-child {
        font-size: 18px;
        letter-spacing: 3px;
    }
    
    /* プラン1のボタン位置変更（スマホのみ） */
    .tour-plan-01-mobile {
        display: flex;
        flex-direction: column;
    }
    
    .tour-plan-image-wrapper-mobile {
        display: contents;
    }
    
    .tour-plan-content-wrapper-mobile {
        display: contents;
    }
    
    .tour-plan-content-mobile {
        display: contents;
    }
    
    /* スマホでの表示順序 */
    .tour-plan-number.tour-plan-content-item-mobile {
        order: 1;
    }
    
    .tour-plan-subtitle.tour-plan-content-item-mobile {
        order: 2;
    }
    
    .tour-plan-title.tour-plan-content-item-mobile,
    .tour-plan-title-large.tour-plan-content-item-mobile {
        order: 3;
    }
    
    .tour-plan-description.tour-plan-content-item-mobile {
        order: 4;
    }
    
    .tour-plan-image-mobile {
        order: 5;
    }
    
    .tour-price-box.tour-plan-content-item-mobile {
        order: 6;
    }
    
    .tour-details.tour-plan-content-item-mobile {
        order: 7;
    }
    
    .tour-plan-btn-mobile {
        order: 8;
        margin-top: 1rem;
    }
    
    /* 各TOUR PLAN枠の装飾（スマホのみ） */
    .tour-plan-01-mobile,
    .tour-plan-02-mobile,
    .tour-plan-03-mobile,
    .tour-plan-04-mobile,
    .tour-plan-05-mobile {
        border: 2px solid #111111;
        border-radius: 30px;
        padding: 1.5rem;
        margin-bottom: 3rem;
        gap: 1.25rem;
        background-color: rgba(255, 255, 255, 0.98);
        box-sizing: border-box;
    }
    
    /* プラン2、3、4、5も縦並びに */
    .tour-plan-02-mobile,
    .tour-plan-03-mobile,
    .tour-plan-04-mobile,
    .tour-plan-05-mobile {
        display: flex;
        flex-direction: column;
    }
    
    .tour-plan-04-wrapper-mobile,
    .tour-plan-05-wrapper-mobile {
        display: contents;
    }
    
    /* プラン4、5のノートボックスも順序に含める（詳細情報の後、画像セクションの前） */
    .tour-note-box.tour-plan-content-item-mobile {
        order: 8;
    }
    
    /* プラン4、5の幣舞橋などの画像セクション（ノートボックスの後） */
    .tour-plan-spot-images-mobile {
        order: 9;
    }
    
    /* プラン4、5のボタンは画像セクションの後 */
    .tour-plan-04-mobile .tour-plan-btn-mobile,
    .tour-plan-05-mobile .tour-plan-btn-mobile {
        order: 10;
    }
    
    .px-\[120px\] {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    
    .px-14 {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
    
    .max-w-\[1440px\],
    .max-w-\[1372px\],
    .max-w-\[1579px\],
    .max-w-\[1376px\],
    .max-w-\[1343px\],
    .max-w-\[827px\],
    .max-w-\[1018px\] {
        max-width: 100%;
        width: 100%;
    }
    
    .h-\[148px\],
    .h-\[80px\] {
        height: auto;
        min-height: 50px;
        padding: 0.5rem 0;
    }
    
    header .flex.items-center.justify-between,
    header > div > div.flex.items-center.justify-between {
        flex-direction: column;
        gap: 1rem;
    }
    
    nav.flex.items-center,
    header nav.flex.items-center {
        flex-wrap: wrap;
        gap: 0.5rem;
        justify-content: center;
        width: 100%;
    }
    
    /* ヘッダーロゴのサイズ調整（スマホ） */
    .header-logo {
        height: 40px;
        max-width: 150px;
        margin-right: 1rem; /* スマホでは間隔を小さく */
    }
    
    /* ヒーロー画像のサイズ調整（スマホ） */
    .hero-image {
        max-width: 100%; /* スマホでは画面幅いっぱい */
        max-height: 60vh; /* スマホでは画面の高さの60%まで */
        width: 100%;
    }
    
    /* 料金ボックスのスマホ表示調整 */
    .tour-price-box {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
    
    .tour-price-row-mobile {
        flex-direction: column;
        align-items: center;
        gap: 0.75rem;
    }
    
    .tour-price-label-mobile {
        width: 100%;
        text-align: center;
        margin-bottom: 0;
    }
    
    .tour-price-info-mobile {
        width: 100%;
        justify-content: center;
    }
    
    .tour-price-box > .flex.mb-4 {
        margin-bottom: 0 !important;
    }
    
    /* 詳細情報のスマホ表示調整（ラベルと値を上下に） */
    .tour-detail-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .tour-detail-label {
        width: 100%;
        margin-bottom: 0;
    }
    
    .tour-detail-value {
        width: 100%;
    }
    
    /* スマホでは「料金に含まれるもの」の改行を削除 */
    .tour-detail-value.whitespace-pre-line {
        white-space: normal;
    }
    
    .tour-detail-value.whitespace-pre-line br {
        display: none;
    }
    
    /* スマホではtour-plan-title-largeの改行を削除 */
    .tour-plan-title-large.whitespace-pre-line br {
        display: none;
    }
    
    .tour-plan-title-large.whitespace-pre-line {
        white-space: normal;
    }
    
    .nav-link {
        font-size: 8px;
        letter-spacing: 1px;
        padding: 0.25rem 0.5rem;
    }
    
    .w-\[293px\] {
        width: 120px;
        max-width: 100%;
    }
    
    .w-\[132px\] {
        width: 70px;
        max-width: 100%;
    }
    
    .h-20 {
        height: 2.5rem;
    }
    
    .h-\[35px\] {
        height: 28px;
    }
    
    .h-\[2065px\] {
        height: 400px;
    }
    
    .h-\[829px\],
    .h-\[679px\],
    .h-\[589px\],
    .h-\[501px\] {
        height: auto;
        aspect-ratio: 4/3;
    }
    
    .h-\[305px\] {
        height: auto;
        aspect-ratio: 4/3;
    }
    
    .h-\[329px\] {
        height: auto;
        aspect-ratio: 4/3;
    }
    
    .h-\[615px\] {
        height: auto;
        aspect-ratio: 16/9;
    }
    
    .py-20 {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }
    
    .mb-12 {
        margin-bottom: 2rem;
    }
    
    .section-title {
        font-size: 28px;
    }
    
    .section-subtitle {
        font-size: 14px;
        letter-spacing: 2px;
    }
    
    .concept-main-title {
        font-size: 22px;
        letter-spacing: 4px;
        line-height: 1.3;
    }
    
    .concept-description {
        font-size: 12px;
        letter-spacing: 2px;
    }
    
    .grid-cols-2 {
        grid-template-columns: 1fr;
    }
    
    .flex.gap-\[89px\],
    div.flex.gap-\[89px\] {
        flex-wrap: wrap;
        gap: 1rem;
        justify-content: center;
    }
    
    .tour-category-btn {
        width: 100%;
        height: 80px;
        max-width: 100%;
    }
    
    .tour-category-btn span:first-child {
        font-size: 0.875rem;
    }
    
    .flex.gap-\[32px\],
    div.flex.gap-\[32px\] {
        flex-direction: column;
        gap: 1.5rem;
    }
    
    .flex-1 {
        width: 100%;
        max-width: 100%;
    }
    
    .w-\[661px\] {
        width: 100%;
        max-width: 100%;
    }
    
    .h-\[477px\] {
        height: auto;
        aspect-ratio: 4/3;
    }
    
    .tour-apply-btn {
        width: 100%;
        max-width: 100%;
    }
    
    .tour-plan-title {
        font-size: 18px;
    }
    
    .tour-plan-subtitle {
        font-size: 10px;
    }
    
    .tour-price-amount {
        font-size: 28px;
    }
    
    .tour-price-participants {
        font-size: 12px;
    }
    
    .flow-step-circle {
        width: 80px;
        height: 80px;
    }
    
    .flow-step-number {
        font-size: 20px;
    }
    
    .w-14,
    .h-14 {
        width: 2rem;
        height: 2rem;
    }
    
    .w-\[49px\],
    .h-\[49px\] {
        width: 1.5rem;
        height: 1.5rem;
    }
    
    .flow-step-title {
        font-size: 20px;
    }
    
    .flow-description {
        font-size: 14px;
    }
    
    .flex.gap-\[101px\],
    div.flex.gap-\[101px\] {
        flex-direction: column;
        gap: 2rem;
    }
    
    .w-\[391px\] {
        width: 100%;
        max-width: 100%;
    }
    
    .h-\[321px\] {
        height: auto;
        aspect-ratio: 4/3;
    }
    
    .p-\[66px\] {
        padding: 2rem;
    }
    
    .p-\[45px\] {
        padding: 1.5rem;
    }
    
    .p-\[28px\] {
        padding: 1rem;
    }
    
    .p-\[91px\] {
        padding: 2rem;
    }
    
    .gap-\[89px\] {
        gap: 1rem;
    }
    
    .gap-\[40px\] {
        gap: 2rem;
    }
    
    .gap-\[32px\] {
        gap: 1.5rem;
    }
    
    .gap-\[58px\] {
        gap: 2rem;
    }
    
    .gap-\[72px\] {
        gap: 2rem;
    }
    
    .gap-\[53px\] {
        gap: 1.5rem;
    }
    
    .gap-\[69px\] {
        gap: 1.5rem;
    }
    
    .flex.gap-\[109px\],
    div.flex.gap-\[109px\] {
        flex-direction: column;
        gap: 1rem;
    }
    
    .w-\[943\.91px\] {
        width: 100%;
        height: auto;
        max-width: 100%;
    }
    
    .h-\[179px\] {
        height: auto;
    }
    
    .flex.gap-\[34px\],
    div.flex.gap-\[34px\] {
        flex-direction: column;
        gap: 1rem;
    }
    
    .flex.gap-\[63px\],
    div.flex.gap-\[63px\] {
        flex-direction: column;
        gap: 1rem;
    }
    
    .flex.gap-\[41px\],
    div.flex.gap-\[41px\] {
        flex-direction: column;
        gap: 1rem;
    }
    
    .notice-content {
        font-size: 14px;
        line-height: 1.5;
    }
    
    /* スマホではnotice-content内のbrタグの間隔を詰める */
    .notice-content br {
        line-height: 0.8;
        display: block;
        content: "";
        margin: 0.3em 0;
    }
    
    .contact-org-name,
    .contact-info,
    .contact-details {
        font-size: 16px;
    }
    
    .phone-number {
        font-size: 24px;
        letter-spacing: 3px;
    }
    
    img {
        max-width: 100%;
        height: auto;
    }
    
    section {
        width: 100%;
        max-width: 100%;
        overflow-x: hidden;
    }
    
    div {
        max-width: 100%;
    }
    
    .links-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }
    
}


/* 小型スマートフォン（480px以下） */
@media (max-width: 480px) {
    .px-\[120px\] {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
    
    .section-title {
        font-size: 24px;
    }
    
    .section-subtitle {
        font-size: 12px;
    }
    
    .concept-main-title {
        font-size: 18px;
        letter-spacing: 2px;
    }
    
    .nav-link {
        font-size: 7px;
    }
    
    .tour-category-btn {
        height: 70px;
    }
    
    .tour-price-amount {
        font-size: 24px;
    }
    
    .flow-step-circle {
        width: 60px;
        height: 60px;
    }
    
    .flow-step-number {
        font-size: 16px;
    }
    
    .w-14,
    .h-14 {
        width: 1.5rem;
        height: 1.5rem;
    }
    
    .w-\[49px\],
    .h-\[49px\] {
        width: 1.25rem;
        height: 1.25rem;
    }
}

