       * {
           margin: 0;
           padding: 0;
           box-sizing: border-box;
       }

       body {
           font-family: 'Noto Serif JP', serif;
           background: linear-gradient(135deg,
                   rgba(39, 90, 155, 0.05) 0%,
                   rgba(187, 221, 239, 0.1) 50%,
                   rgba(39, 90, 155, 0.03) 100%);
           min-height: 100vh;
           overflow-x: hidden;
           position: relative;

           font-size: 18px;
           /* デフォルトの16pxから18pxに */
           /* または */
           font-size: 1.125em;
           /* 1.125倍に拡大 */
       }

       @media screen and (max-width: 767px) {
           .nav-menu a {
               color: #275A9B;
           }

           /* 体験予約ボタンだけ色を戻す or別スタイルに */
           .nav-menu a.header-cta-button {
               color: #fff;
               /* または他の色（オレンジなど） */
           }
       }



       /* 浮遊する背景要素 */
       .floating-elements {
           position: absolute;
           top: 0;
           left: 0;
           width: 100%;
           height: 100%;
           pointer-events: none;
           z-index: 0;
       }

       .floating-circle {
           position: absolute;
           border-radius: 50%;
           opacity: 0.1;
           animation: float 20s infinite ease-in-out;
       }

       .floating-circle:nth-child(1) {
           width: 80px;
           height: 80px;
           background: #275A9B;
           top: 10%;
           right: 15%;
           animation-delay: 0s;
       }

       .floating-circle:nth-child(2) {
           width: 120px;
           height: 120px;
           background: #bbddef;
           top: 60%;
           left: 10%;
           animation-delay: -7s;
       }

       .floating-circle:nth-child(3) {
           width: 60px;
           height: 60px;
           background: #275A9B;
           bottom: 20%;
           right: 25%;
           animation-delay: -14s;
       }

       @keyframes float {

           0%,
           100% {
               transform: translateY(0px) translateX(0px) rotate(0deg);
           }

           25% {
               transform: translateY(-20px) translateX(10px) rotate(90deg);
           }

           50% {
               transform: translateY(-10px) translateX(-15px) rotate(180deg);
           }

           75% {
               transform: translateY(15px) translateX(5px) rotate(270deg);
           }
       }

       .pricing-section {
           position: relative;
           z-index: 1;
           padding: 80px 20px;
           max-width: 1200px;
           margin: 0 auto;
       }

       .section-title {
           text-align: center;
           margin-bottom: 60px;
       }

       .section-title h2 {
           font-size: clamp(2.5rem, 5vw, 3.5rem);
           color: #275A9B;
           font-weight: 500;
           margin-bottom: 20px;
           letter-spacing: 0.05em;
       }

       .section-title p {
           font-size: 1.8rem;
           color: #666;
           font-weight: 300;
       }

       .pricing-container {
           display: grid;
           grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
           gap: 40px;
           margin-bottom: 60px;
       }

       .pricing-card {
           background: rgba(255, 255, 255, 0.25);
           backdrop-filter: blur(20px);
           border: 1px solid rgba(255, 255, 255, 0.3);
           border-radius: 24px;
           padding: 40px 30px;
           box-shadow:
               0 8px 32px rgba(39, 90, 155, 0.1),
               inset 0 1px 0 rgba(255, 255, 255, 0.4);
           transition: all 0.3s ease;
           position: relative;
           overflow: hidden;
       }

       .pricing-card::before {
           content: '';
           position: absolute;
           top: 0;
           left: 0;
           right: 0;
           height: 4px;
           background: linear-gradient(90deg, #275A9B, #bbddef);
           border-radius: 24px 24px 0 0;
       }

       /* 人気プラン（月額回数券）のスタイル */
       .pricing-card.popular {
           background: rgb(238 181 172 / 10%);
           border: 1px solid rgba(255, 134, 115, 0.3);
       }

       .pricing-card.popular::before {
           background: linear-gradient(90deg, #ff8673, #ffb366);
       }

       .pricing-card:hover {
           transform: translateY(-5px);
           box-shadow:
               0 20px 40px rgba(39, 90, 155, 0.15),
               inset 0 1px 0 rgba(255, 255, 255, 0.4);
       }

       .pricing-card.popular:hover {
           box-shadow:
               0 20px 40px rgba(255, 134, 115, 0.2),
               inset 0 1px 0 rgba(255, 255, 255, 0.4);
       }

       /* 人気バッジ */
       .popular-badge {
           position: absolute;
           top: 20px;
           right: 20px;
           background: linear-gradient(45deg, #ff8673, #ffb366);
           color: white;
           padding: 8px 16px;
           border-radius: 20px;
           font-size: var(--size-m);
           font-weight: 500;
           letter-spacing: 0.05em;
           box-shadow: 0 4px 15px rgba(255, 134, 115, 0.3);
           animation: pulse-popular 2s infinite ease-in-out;
       }

       @keyframes pulse-popular {

           0%,
           100% {
               box-shadow: 0 4px 15px rgba(255, 134, 115, 0.3);
               transform: scale(1);
           }

           50% {
               box-shadow: 0 6px 20px rgba(255, 134, 115, 0.4);
               transform: scale(1.02);
           }
       }

       .card-header {
           text-align: center;
           margin-bottom: 30px;
       }

       .card-title {
           font-size: var(--size-lg-sp);
           color: #275A9B;
           font-weight: 500;
           margin-bottom: 15px;
           letter-spacing: 0.02em;
       }

       .card-features {
           list-style: none;
           margin-bottom: 25px;
       }

       .card-features li {
           font-size: 14px;
           color: var(--text-color);
           margin-bottom: 8px;
           padding-left: 20px;
           position: relative;
       }

       .card-features li::before {
           content: '・';
           position: absolute;
           left: 0;
           color: #bbddef;
           font-weight: bold;
       }

       .pricing-card.popular .card-features li::before {
           color: #ff8673;
       }

       .card-description {
           font-size: var(--size-m);
           color: var(--text-color);
           line-height: 1.6;
           margin-bottom: 30px;
           font-weight: 300;
       }

       .pricing-list {
           background: rgba(255, 255, 255, 0.4);
           border-radius: 16px;
           padding: 25px;
           margin-bottom: 20px;
       }

       .pricing-card.popular .pricing-list {
           background: rgb(232 172 163 / 10%);
           border: 1px solid rgba(255, 134, 115, 0.2);
       }

       .pricing-list h4 {
           font-size: var(--size-m);
           color: #275A9B;
           margin-bottom: 20px;
           font-weight: 500;
       }

       .price-item {
           display: flex;
           justify-content: space-between;
           align-items: center;
           padding: 12px 0;
           border-bottom: 1px solid rgba(187, 221, 239, 0.3);
       }

       .pricing-card.popular .price-item {
           border-bottom: 1px solid rgba(255, 134, 115, 0.3);
       }

       .price-item:last-child {
           border-bottom: none;
       }

       .price-label {
           font-size: var(--size-m);
           color: #444;
           font-weight: 400;
       }

       .price-value {
           font-size: var(--size-m);
           color: #275A9B;
           font-weight: 600;
           font-family: 'Inter', sans-serif;
       }

       .card-notes {
           font-size: 12px;
           color: var(--text-color);
           line-height: 1.5;
           margin-top: 15px;
       }

       .card-notes p {
           margin-bottom: 8px;
       }

       /* その他セクション */
       .other-section {
           background: rgba(255, 255, 255, 0.3);
           backdrop-filter: blur(20px);
           border: 1px solid rgba(255, 255, 255, 0.3);
           border-radius: 24px;
           padding: 40px;
           margin-top: 40px;
       }

       .other-section h3 {
           font-size: var(--size-lg);
           color: #275A9B;
           margin-bottom: 30px;
           text-align: center;
           font-weight: 500;
       }

       .other-table {
           width: 100%;
           border-collapse: collapse;
           background: rgba(255, 255, 255, 0.5);
           box-shadow: 0 12px 40px rgba(39, 90, 155, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.3);
           border-radius: 16px;
           overflow: hidden;
       }

       .other-table th,
       .other-table td {
           padding: 20px;
           text-align: left;
           border-bottom: 1px solid rgba(187, 221, 239, 0.3);
       }

       .other-table th {
           background: rgba(39, 90, 155, 0.1);
           color: #275A9B;
           font-weight: 500;
           font-size: var(--size-m);
       }

       .other-table td {
           color: #444;
           font-size: var(--size-m);
       }

       .other-table tr:last-child td {
           border-bottom: none;
       }

       .price-highlight {
           color: #275A9B;
           font-weight: 600;
           font-family: 'Inter', sans-serif;
           font-size: var(--size-m);
       }

       /* 追加プランセクション */
       .additional-plans {
           display: grid;
           grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
           gap: 40px;
           margin-top: 60px;
       }

       .casual-plan-card,
       .wedding-plan-card {
           background: rgba(255, 255, 255, 0.2);
           backdrop-filter: blur(25px);
           border: 1px solid rgba(255, 255, 255, 0.25);
           border-radius: 28px;
           padding: 35px 30px;
           box-shadow:
               0 12px 40px rgba(39, 90, 155, 0.08),
               inset 0 1px 0 rgba(255, 255, 255, 0.3);
           transition: all 0.4s ease;
           position: relative;
           overflow: hidden;
       }

       .casual-plan-card::before {
           content: '';
           position: absolute;
           top: 0;
           left: 0;
           right: 0;
           height: 4px;
           background: linear-gradient(90deg, #275A9B, #bbddef);
           border-radius: 28px 28px 0 0;
       }

       .wedding-plan-card::before {
           content: '';
           position: absolute;
           top: 0;
           left: 0;
           right: 0;
           height: 4px;
           background: linear-gradient(90deg, #275A9B, #bbddef);
           border-radius: 28px 28px 0 0;
       }

       .casual-plan-card:hover,
       .wedding-plan-card:hover {
           transform: translateY(-8px);
           box-shadow:
               0 20px 50px rgba(39, 90, 155, 0.12),
               inset 0 1px 0 rgba(255, 255, 255, 0.4);
       }

       .plan-header {
           display: flex;
           align-items: center;
           justify-content: space-between;
           margin-bottom: 25px;
       }

       .plan-title {
           font-size: var(--size-lg);
           color: #275A9B;
           font-weight: 500;
           letter-spacing: 0.02em;
       }

       .plan-icon {
           font-size: 1.8rem;
           opacity: 0.7;
           animation: gentle-bounce 3s infinite ease-in-out;
       }

       .wedding-icon {
           filter: hue-rotate(0deg);
       }

       @keyframes gentle-bounce {

           0%,
           100% {
               transform: translateY(0px);
           }

           50% {
               transform: translateY(-5px);
           }
       }

       .plan-features {
           list-style: none;
           margin-bottom: 20px;
           margin-top: 20px;
       }

       .plan-features li {
           font-size: var(--size-m);
           color: var(--text-color);
           margin-bottom: 8px;
           padding-left: 20px;
           position: relative;
       }

       .casual-plan-card .plan-features li::before {
           content: '・';
           position: absolute;
           left: 0;
           color: #bbddef;
           font-weight: bold;
       }

       .plan-description {
           font-size: var(--size-sm);
           color: var(--text-color);
           line-height: 1.6;
           margin-bottom: 25px;
           font-weight: 300;
       }

       .simple-pricing {
           text-align: center;
           padding: 25px;
           background: rgba(187, 221, 239, 0.15);
           border-radius: 20px;
           border: 1px solid rgba(187, 221, 239, 0.3);
       }

       .price-badge {
           display: flex;
           align-items: baseline;
           justify-content: center;
           gap: 8px;
       }

       .price-amount {
           font-size: 2.2rem;
           color: #275A9B;
           font-weight: 600;
           font-family: 'Inter', sans-serif;
       }

       .price-unit {
           font-size: var(--size-m);
           color: #666;
           font-weight: 400;
       }

       /* ウエディングプラン専用 */
       .wedding-content {
           text-align: center;
       }

       .wedding-plans {
           margin-bottom: 30px;
           display: flex;
           flex-direction: column;
           gap: 15px;
       }

       .wedding-option {
           background: rgba(255, 255, 255, 0.4);
           padding: 18px 25px;
           border-radius: 16px;
           border: 1px solid rgba(39, 90, 155, 0.2);
       }

       .option-label {
           font-size: var(--size-m);
           color: #275A9B;
           font-weight: 500;
       }

       .coming-soon {
           background: linear-gradient(135deg,
                   rgba(39, 90, 155, 0.1) 0%,
                   rgba(39, 90, 155, 0.05) 100%);
           padding: 20px;
           border-radius: 18px;
           border: 1px solid rgba(39, 90, 155, 0.2);
           display: flex;
           flex-direction: column;
           gap: 10px;
       }

       .coming-soon-text {
           font-size: var(--size-sm);
           color: #666;
           font-weight: 300;
       }

       .coming-soon-badge {
           display: inline-block;
           background: linear-gradient(45deg, #275A9B, #bbddef);
           color: white;
           padding: 8px 16px;
           border-radius: 20px;
           font-size: var(--size-sm);
           font-weight: 500;
           letter-spacing: 0.05em;
           box-shadow: 0 4px 15px rgba(39, 90, 155, 0.3);
           animation: pulse-glow 2s infinite ease-in-out;
       }

       @keyframes pulse-glow {

           0%,
           100% {
               box-shadow: 0 4px 15px rgba(39, 90, 155, 0.3);
               transform: scale(1);
           }

           50% {
               box-shadow: 0 6px 20px rgba(39, 90, 155, 0.4);
               transform: scale(1.02);
           }
       }

       /* レスポンシブ対応 */
       @media (max-width: 768px) {
           .pricing-section {
               padding: 60px 15px;
           }

           .pricing-container,
           .additional-plans {
               grid-template-columns: 1fr;
               gap: 30px;
           }

           .pricing-card,
           .casual-plan-card,
           .wedding-plan-card {
               padding: 30px 25px;
           }

           .popular-badge {
               top: 15px;
               right: 15px;
               padding: 6px 12px;
               font-size: 0.8rem;
           }

           .other-section {
               padding: 30px 20px;
           }

           .other-table th,
           .other-table td {
               padding: 15px 10px;
               font-size: 0.9rem;
           }

           .plan-title {
               font-size: 1.4rem;
           }

           .price-amount {
               font-size: 1.8rem;
           }

           .wedding-plans {
               gap: 12px;
           }
       }




       @media (max-width: 480px) {

           .pricing-card,
           .casual-plan-card,
           .wedding-plan-card {
               padding: 25px 20px;
           }

           .card-title,
           .plan-title {
               font-size: var(--size-lg);
           }

           .other-table th,
           .other-table td {
               padding: 12px 8px;
               font-size: var(--size-sm);
           }

           .price-amount {
               font-size: 1.6rem;
           }

           .plan-header {
               flex-direction: column;
               text-align: center;
               gap: 10px;
           }

           .wedding-plans {
               margin-bottom: 25px;
           }

           .section-title p {
               font-size: 1.2rem;
               font-weight: 600;

           }
       }


       /* 体験予約CTAボタン */
       .cta-section {
           text-align: center;
           margin-top: 80px;
           padding: 40px 0;
       }

       .experience-cta-button {
           position: relative;
           background: linear-gradient(135deg,
                   rgba(39, 90, 155, 0.9) 0%,
                   rgba(187, 221, 239, 0.8) 100%);
           backdrop-filter: blur(20px);
           border: 2px solid rgba(255, 255, 255, 0.3);
           border-radius: 50px;
           padding: 20px 60px;
           font-size: var(--size-md);
           font-weight: 500;
           color: white;
           font-family: 'Noto Serif JP', serif;
           cursor: pointer;
           transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
           overflow: hidden;
           box-shadow:
               0 10px 30px rgba(39, 90, 155, 0.2),
               inset 0 1px 0 rgba(255, 255, 255, 0.4);
           text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
           letter-spacing: 0.05em;
           min-width: 280px;
       }

       .experience-cta-button:hover {
           transform: translateY(-3px) scale(1.02);
           box-shadow:
               0 20px 40px rgba(39, 90, 155, 0.25),
               inset 0 1px 0 rgba(255, 255, 255, 0.5);
           border-color: rgba(255, 255, 255, 0.5);
       }

       .experience-cta-button:active {
           transform: translateY(-1px) scale(0.98);
       }

       .cta-text {
           position: relative;
           z-index: 2;
           display: block;
       }

       .cta-glow {
           position: absolute;
           top: 50%;
           left: 50%;
           width: 100%;
           height: 100%;
           background: radial-gradient(circle,
                   rgba(255, 255, 255, 0.3) 0%,
                   transparent 70%);
           border-radius: 50px;
           transform: translate(-50%, -50%) scale(0);
           transition: transform 0.6s ease;
           pointer-events: none;
       }

       .experience-cta-button:hover .cta-glow {
           transform: translate(-50%, -50%) scale(1.5);
       }

       .cta-particles {
           position: absolute;
           top: 0;
           left: 0;
           width: 100%;
           height: 100%;
           pointer-events: none;
           overflow: hidden;
           border-radius: 50px;
       }

       .particle {
           position: absolute;
           width: 4px;
           height: 4px;
           background: rgba(255, 255, 255, 0.6);
           border-radius: 50%;
           opacity: 0;
           animation: float-particle 3s infinite ease-in-out;
       }

       .particle:nth-child(1) {
           top: 20%;
           left: 20%;
           animation-delay: 0s;
       }

       .particle:nth-child(2) {
           top: 70%;
           right: 25%;
           animation-delay: 1s;
       }

       .particle:nth-child(3) {
           bottom: 30%;
           left: 60%;
           animation-delay: 2s;
       }

       @keyframes float-particle {

           0%,
           100% {
               opacity: 0;
               transform: translateY(0px) scale(0.5);
           }

           50% {
               opacity: 1;
               transform: translateY(-10px) scale(1);
           }
       }

       .experience-cta-button:hover .particle {
           animation-duration: 1.5s;
       }

       /* レスポンシブ対応 */
       @media (max-width: 480px) {
           .cta-section {
               margin-top: 60px;
               padding: 30px 0;
           }

           .experience-cta-button {
               padding: 18px 40px;
               font-size: var(--size-md);
               min-width: 240px;
           }
       }

       @media (max-width: 320px) {
           .experience-cta-button {
               padding: 16px 30px;
               font-size: 1.1rem;
               min-width: 200px;
           }
       }

       /* 入会金表示 */
       .entrance-fee {
           text-align: center;
           margin-bottom: 30px;
           padding: 20px 30px;
           background: rgba(255, 255, 255, 0.3);
           backdrop-filter: blur(15px);
           border: 1px solid rgba(187, 221, 239, 0.3);
           border-radius: 16px;
           display: inline-flex;
           align-items: center;
           gap: 15px;
           box-shadow: 0 4px 15px rgba(39, 90, 155, 0.08);
           position: relative;
           left: 50%;
           transform: translateX(-50%);
       }

       .fee-label {
           font-size: 1.1rem;
           color: #275A9B;
           font-weight: 500;
           letter-spacing: 0.05em;
       }

       .fee-amount {
           font-size: 1.5rem;
           color: #275A9B;
           font-weight: 600;
           font-family: 'Inter', sans-serif;
       }

       /* ハイライトスタイル */
       .highlight {
           background: linear-gradient(transparent 60%, rgba(187, 221, 239, 0.4) 60%);
           padding: 0.1em 0.3em;
           border-radius: 3px;
           color: var(--text-color);
           font-weight: 500;
       }

       .highlight_c {
           color: var(--trust-navy);
           font-weight: 500;
       }


       /* レスポンシブ対応 */
       @media (max-width: 768px) {
           .entrance-fee {
               padding: 15px 25px;
               gap: 12px;
           }

           .fee-label {
               font-size: 1rem;
           }

           .fee-amount {
               font-size: 1.3rem;
           }
       }