@charset "UTF-8";
/* =======================================
   レスポンシブフォントサイズユーティリティ
   ======================================= */

/*
  第二引数の流動的な値 (例: 3vw + 1rem) は、
  画面幅によってサイズが変動する度合いを調整します。
  必要に応じてvwの係数(例: 3)を調整してください。
*/
/* H1 (Max: 6.0rem, Min: 4.8rem) */
.u-fs-h1 {
  font-size: clamp(4.8rem, 3.5vw + 1rem, 6.0rem);
}
/* H2 (Max: 4.6rem, Min: 3.68rem) */
.u-fs-h2 {
  font-size: clamp(3.68rem, 3vw + 1rem, 4.6rem);
}
/* H3 (Max: 4.0rem, Min: 3.2rem) */
.u-fs-h3 {
  font-size: clamp(3.2rem, 2.8vw + 1rem, 4.0rem);
}
/* H4 (Max: 3.6rem, Min: 2.8rem) */
.u-fs-h3-m {
  font-size: clamp(2.8rem, 2.75vw + 1rem, 3.6rem);
}
/* H4 (Max: 3.2rem, Min: 2.56rem) */
.u-fs-h4 {
  font-size: clamp(2.56rem, 2.5vw + 1rem, 3.2rem);
}
/* P-Large (Max: 3.0rem, Min: 2.4rem) */
.u-fs-p-large {
  font-size: clamp(2.4rem, 2vw + 1rem, 3.0rem);
}
/* P-Base (Max: 2.4rem, Min: 1.92rem) */
.u-fs-p-base {
  font-size: clamp(1.92rem, 1.5vw + 1rem, 2.4rem);
}
/* P-Base (Max: 2.2rem, Min: 1.85rem) */
.u-fs-m-base {
    font-size: clamp(1.85rem, 1.35vw + 1rem, 2.2rem);
}
/* P-Small (Max: 2.0rem, Min: 1.6rem) */
.u-fs-p-small {
  font-size: clamp(1.6rem, 1.2vw + 1rem, 2.0rem);
}
/* Caption-1 (Max: 1.8rem, Min: 1.44rem) */
.u-fs-caption-1 {
  font-size: clamp(1.44rem, 1vw + 1rem, 1.8rem);
}
/* Caption-2 (Max: 1.6rem, Min: 1.28rem) */
.u-fs-caption-2 {
  font-size: clamp(1.28rem, 0.8vw + 1rem, 1.6rem);
}
/* Caption-3 (Max: 1.2rem, Min: 0.96rem) */
.u-fs-caption-3 {
  font-size: clamp(0.96rem, 0.5vw + 1rem, 1.2rem);
}
/* Caption-4 (Max: 1.0rem, Min: 0.8rem) */
.u-fs-caption-4 {
  font-size: clamp(0.8rem, 0.4vw + 0.85rem, 1.0rem);
}
.wpcf7-not-valid-tip {
    font-size: 0.9rem;
}
img { 
    image-rendering: -webkit-optimize-contrast; 
}
.sp-zone {
    display: none;
}
.pc-zone {
    display: block;
}
body {
    background-color: #fff;
    color: #333333;
    margin: 0;
    padding: 0;
    font-family: "Noto Sans JP", sans-serif;
}
.topcontent_section {
    max-width: 1200px;
    margin: 0 auto;
    align-items: center;
    width: 100%;
}
.hero-slider {
    position: relative;
    width: 100%;
    overflow: hidden;
}
.hero-slider__canvas {
    width: 100%;
    line-height: 0; 
}
.hero-slider__img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
    opacity: 0;   
    z-index: 1;
    transition: opacity 1.5s ease-in-out; 
    object-fit: contain;
}
.hero-slider__canvas .hero-slider__img.is-visible {
    opacity: 1;
    z-index: 2; 
}
.hero-slider__content {
    position: absolute;
    bottom: 15%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    width: 100%;
    text-align: center;
}
.hero-slider__action-btn {
    appearance: none;
    -webkit-appearance: none;
    color: #fff;
    padding: 12px 40px;
    font-weight: bold;
    backdrop-filter: blur(4px); 
}
.hero-slider__img--base {
    position: static;
    display: block;
}
.head-name {
    align-items: center;
    max-width: 150px;
    padding-top: 20px;
}
.head-main {
    display: flex;
    justify-content: space-between;
    margin: 0 auto; 
    max-width: 1200px;
    width: 90%;
}
.head-name-main {
    line-height: 1.1;
    font-family: "Zen Old Mincho", serif;
    font-weight: 400;
    font-style: normal;
}
.head-name-sub {
    text-align: center;
    letter-spacing: 0.3rem;
}
.head-name-sub-2 {
    text-align: center;
    letter-spacing: 0.3rem;
}
.head-content {
    display: flex;
    align-items: center;
    margin-top: 26px;
}
.head-content p {
    line-height: 1.2;
    color: #515151;
}
.nav-contact-wrapper {
    display: block;
}
.nav-contact-link {
    display: flex;      
    justify-content: flex-end; 
    position: relative;
    width: fit-content;
    margin-top: 26px; 
    line-height: 0;  
    max-width: 253px;
}
.nav-img-default {
    display: block;
    width: 90%;
    height: auto;
    transition: opacity 0.3s ease;
}
.nav-img-hover {
    position: absolute;
    top: 0;
    left: auto;
    width: 90%;
    height: auto;
    object-fit: contain;
    opacity: 0; 
    transition: opacity 0.3s ease;
}
.nav-contact-link:hover .nav-img-default {
    opacity: 0; 
}
.nav-contact-link:hover .nav-img-hover {
    opacity: 1; 
}
.head-text {
    padding: 11px 3px 11px 20px;
}
.head-text .u-fs-p-small {
    padding-bottom: 10px;
}

.grecaptcha-badge { 
    visibility: hidden; 
}
.form-re-cap {
    text-align: center;
    line-height: 2;
    font-size: clamp(0.96rem, 0.5vw + 1rem, 1.2rem);
    padding-bottom: 50px;
}

.thanks-page {
    text-align: center;
    padding-top: 100px;
    padding-bottom: 100px;
    margin: 0 auto;
    max-width: 1200px;
    width: 90%;
}
.thanks-a {
    padding-top: 50px;
    text-align: center;
    width: 60%;
    margin: 0 auto;
}
.contact-thanks {
    text-align: center;
}
.contact-thanks p {
    line-height: 2.2;
}
.thanks-top {
    padding-top: 40px;
}
.thanks {
    border-bottom: solid #a5041b 3px;
    width: 62%;
    margin: 0 auto;
    margin-bottom: 80px;
    max-width: 460px;
}
.has-deco-dot {
    position: relative;
    padding-left: 28px;
    padding-right: 28px;
    display: inline-block; 
}
.has-deco-dot::before {
    content: ''; 
    display: block;
    width: 8px;
    height: 8px;
    background-color: #a5041b;
    border-radius: 50%; 
    position: absolute;
    left: 0; 
    top: 55%; 
    transform: translateY(-50%); 
}
.has-deco-dot::after {
    content: ''; 
    display: block;
    width: 8px;
    height: 8px;
    background-color: #a5041b; 
    border-radius: 50%; 
    position: absolute;
    right: 0; 
    top: 55%; 
    transform: translateY(-50%); 
}
.gnav-container {
    max-width: 1280px;
    width: 90%;
    margin: 0 auto;
    border-radius: 25px; 
    padding: 10px; 
    box-sizing: border-box; 
    transition: all 0.3s ease;
    position: relative;
    z-index: 0;
    background-color: #ffffff;
    overflow: hidden;
}
.gnav-container::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
}
.gnav-container.is-sticky {
    position: fixed; 
    top: 0px;         
    left: 0;
    right: 0;      
    z-index: 999;   
    margin-left: auto;
    margin-right: auto;
}
.gnav-list {
    display: flex;
    align-items: stretch;
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
    padding-top: 5px;
    padding-bottom: 5px;
}
.gnav-list li {
    flex: 1 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #333333; 
}
.gnav-list li:last-child {
    border-right: none;
}
.gnav-link {
    display: block;
    width: 100%;
    text-align: center;
    white-space: nowrap;
    text-decoration: none;
    color: #333333;
    line-height: 1.2;
    font-size: clamp(0.75rem, 0.6vw + 0.5rem, 1.6rem) !important;
    letter-spacing: -0.02em;
}
.color-hov:hover {
    color: #a5041b;
}
.flex-top-art {
    text-align: center;
}
.flex-top-art-index {
    text-align: left;
}
.content-title h2 {
    margin-bottom: 0px;
}
.content-title h2,.content-title p {
    padding-left: 30px;
}
.content-title p {
    padding-bottom: 10px;
}
.title-main {
    text-align: right;
    padding-right: 25px;
    padding-bottom: 10px;
}
.title-main img {
    display: none;
}
.title-sub-main {
    text-align: right;
}
.title-sub-main img {
    display: none;
}
.context-content-column {
    display: flex;
    gap: 50px;
    align-items: flex-start;
}
.column-left-text {
    flex: 1; 
}
.column-right-images {
    width: 33%; 
}
.image-section {
    margin-bottom: 20px; 
}
.image-section img {
    width: 100%;
    height: auto;
    display: block;
    padding-top: 15px;
}
.scf-main-text {
    line-height: 2.5;
    color: v;
    padding-bottom: 30px;
}
.title-column-w {
    padding-bottom: 25px;
    padding-top: 40px;
    margin-bottom: 45px;
    border-bottom: solid 1px #ccc;
    font-weight: 500;
}
.content-title div img {
    padding-left: 30px;
}
.content-cont-top {
    padding-top: 90px;
}
.content-cont {
    padding-bottom: 30px;
    padding-top: 70px;
}
.content-cont-01 {
    padding-bottom: 30px;
    padding-top: 90px;
}
.content-cont-03 {
    max-width: 880px;
    margin: 0 auto;
}
.content-profile {
    display: flex;
    gap: 50px;
    padding-top: 50px;
}
.profile-img-index {
    max-width: 480px;
} 
.profile-text {
    margin-top: -15px;
    position: relative;
}
.profile-text .u-fs-caption-2 {
    line-height: 2.5;
}
.profile-title-name {
    line-height: 2 !important;
}
.profile-title-text {
    line-height: 2.5 !important;
}
.profile-text .u-fs-h4 {
    line-height: 1.25;
    padding-bottom: 2%;
}
.profile-text a {
    display: flex;
    align-items: center;
    margin-left: auto; 
    position: absolute;
    right: 0;
}
.profile-text a img {
    height: 18px;
    display: none;
}
.profile-text > p:nth-child(1) {
    margin-bottom: 0%;
}
.profile-text > p:nth-child(3) {
    margin-bottom: 3%;
}
.padd-top {
    padding-bottom: 170px;
}
.main-section-container { 
    max-width: 1200px; 
    margin: 0 auto; 
    width: 90%;
}
.main-section-container-02 {
    position: relative;
    z-index: 0;
    background-color: #ffffff; 
    overflow: hidden;
}
.main-section-container-02::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
}
.main-section-container-03 {
    position: relative;
    z-index: 0;
    background-color: #ffffff; 
    overflow: hidden;
}
.main-section-container-03::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
}
.main-section-container-05 { /* 追加 */
    max-width: 1200px; 
    margin: 0 auto; 
    width: 90%;
}
.main-section-container-05::before {/* 追加 */
    content: "";
    position: absolute;
    top: 1;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
}
.content-main-text01 {
    padding-bottom: 100px;
}
.content-main-text01 div {
    margin: 16px auto;
	text-align: center;
}
.content-main-text01 p {
    border-top: solid 0.25px #bababa;
    line-height: 3;
    text-align: center;
}
.content-main-text01 p:last-child {
    border-bottom: solid 0.25px #bababa;
}
.travel-contents {
    max-width: 1200px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap; 
    --column-gap: 3%; 
    gap: var(--column-gap);
    justify-content: flex-start; 
    padding-bottom: 70px;
}
.travel-contents02 {
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap; 
    --column-gap: 3.6rem; 
    gap: var(--column-gap);
    justify-content: flex-start; 
    padding-bottom: 100px;
}
.content-item {
    text-decoration: none;
    color: inherit;
    display: block;
    flex-grow: 0; 
    flex-shrink: 0; 
    flex-basis: calc( (100% - 3 * var(--column-gap)) / 4 );
}
.content-item02 {
    text-decoration: none;
    color: inherit;
    display: block;
    flex-grow: 0; 
    flex-shrink: 0; 
    flex-basis: calc( (100% - 2 * var(--column-gap)) / 3 );
}
.content-image-wrapper {
    width: 100%;
    padding-top: 100%; 
    position: relative;
    overflow: hidden;
}
.content-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover; 
    transition: transform 0.5s ease;
}
.content-title ,.content-title-sub{
    margin: 0;
    line-height: 1.4;
    padding-top: 10px;
}
.natural-break {
    word-break: break-all;
}
.index-padd-tp {
    padding-bottom: 50px;
}
.column-to-page {
    text-align: right;
    padding-bottom: 50px;
}
.column-to-page-news {
    text-align: right;
    padding-top: 50px;
}
.column-to-page-news p a,.profile-text a p,.column-to-page p a {
    color: #333;
}
.news-section {
    padding: 70px 0; 
}
.news-section-arc {
    padding: 100px 0; 
}
.news-single {
    width: 80%;
    margin: 0 auto;
    max-width: 800px;
}
.single-news-p p {
    line-height: 2.2;

}
.section-header-arc {
    text-align: center;
}
.news-container {
    padding-top: 70px;/* 追加 */
    max-width: 94%;
    margin: 0 auto;
}
.section-header {
    text-align: center; 
    margin-bottom: 70px; 
}
.news-list {
    border-top: 1px solid #bababa; 
}
.news-date {
    margin-bottom: 20px; 
    color: #2f2f2f;
    text-align: right;
    margin-top: -30px;
}
.news-item {
    display: flex; 
    align-items: center;
    padding: 20px 10px; 
    border-bottom: 1px solid #bababa; 
    text-decoration: none; 
    color: inherit; 
    transition: background-color 0.3s ease; 
}
.news-item:hover {
    background-color: #f9f9f9; 
    opacity: 0.8;
}
.news-meta {
    width: 120px; 
    flex-shrink: 0; 
    font-weight: bold; 
    font-family: sans-serif; 
}
.news-title {
    flex-grow: 1;
    line-height: 1.5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.common-contact-main-text {
    text-align: center;
}
.common-contact-content {
    display: flex;
    justify-content: center;
    gap: 28px;
    padding-bottom: 100px;
    font-weight: bold;
}
.contact-spe::before {/* 追加 */
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
}
.common-contact-content div {
    text-align: center;
}
.common-contact-content div p a:hover {
    color: #a5041b;
}
.contact-spe {
    width: clamp(100px, calc(70px + 10vw), 218px); 
    height: clamp(100px, calc(70px + 10vw), 218px); 
    border-radius: 50%;
    display: flex;
    justify-content: center; 
    align-items: center; 
    margin: 0 auto 10px; 
    overflow: hidden; 
    position: relative;
    transition: transform 0.3s;
}
.contact-spe img {
    object-fit: contain; 
    display: block;
    max-width: 100%;
    max-height: 100%;
}
.hover-image-container {
    display: inline-block;
    position: relative;
}
.img-hover {
    position: absolute;
    top: 50%;   
    left: 50%;   
    transform: translate(-50%, -50%); 
    max-width: 100%;  
    max-height: 100%; 
    opacity: 0; 
    transition: opacity 0.3s;
    pointer-events: none; 
}
.contact-spe .img-default,
.contact-spe .img-hover {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}
.contact-spe:hover .img-hover {
    opacity: 1; 
}
.contact-spe:hover {
    transform: none !important;
    margin-top: 0 !important;
}
.common-contact-main-text p {
    padding-bottom: 70px;
}
.content-pt {
    padding-top: 60px;
}
.arc-flex-content {
    display: flex;
    gap: 60px;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 50px;
    width: 90%;
    padding-bottom: 100px;
}
.side-bar-content {
    width: 20%;
}
.sidebar-inner {
    padding-top: 10px;
}
.sidebar-section {
    margin-bottom: 6px;
}
.sidebar-title {
    padding-bottom: 3px;
    margin-bottom: 20px;
    border-left: solid 4px #a5041b;
    padding-left: 5px;
}
.column-list {
    list-style: none;
    padding: 0;
}
.column-list li {
    margin-bottom: 5px;
    border-bottom: solid 1px #ccc;
    padding-bottom: 10px;
}
.column-list a {
    text-decoration: none;
    color: #333;
    display: block;
}
.column-list .main-text {
    display: block;
    font-weight: bold;
    line-height: 1.3;
}
.column-list .sub-text {
    display: block;
    margin-top: 5px;
}
.main-nav ul {
    list-style: none;
    padding: 0;
}
.main-nav li {
    border-bottom: 1px solid #ccc;
}
.main-nav a {
    display: block;
    padding: 15px 0;
    text-decoration: none;
    color: #333;
}
.arc-main-content {
    flex: 1;
}
.arc-nav {
    padding-top: 25px;
}
.arc-title {
    margin-top: 40px;
    position: relative;
    z-index: 0;
    background-color: #ffffff; 
    overflow: hidden; 
}
.arc-title::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
}
.content-cont-02 {
    padding-top: 60px;
    padding-bottom: 60px;
}
.content-cont-04 {
    padding-top: 40px;
    padding-bottom: 40px;
}


.profile-img-page {
    max-width: 580px;
}
.profile-container {   
    margin: 0 auto;
}
.flex-theme {
    display: flex;
    gap: 50px;
    padding-top: 100px;
    padding-bottom: 125px;
}
.section-title-profile {
    font-weight: normal;
}
.line-row,.history-row {
    display: flex;
    align-items: flex-start;
    line-height: 2.5em; 
    background-image: linear-gradient(0deg, #e0e0e0 1px, transparent 1px);
    background-size: 100% 2.5em;
    background-position: bottom;
}
.history-date {
    width: 120px; 
    flex-shrink: 0;
    font-weight: normal;
}
.history-content {
    flex-grow: 1;
}
.dots {
    letter-spacing: 2px;
    font-weight: bold;
}
.profile-text-re {
    padding-bottom: 40px;
}
.line-top-re {
    border-top: 1px solid #e0e0e0;
}
.profile-name-page {
    padding-top: 60px;
}
.profile-name-page .u-fs-caption-2, .profile-title-text {
    line-height: 2.5;
}
.profile-name-page .u-fs-caption-4 {
    line-height: 2;
}
.profile-title-name {
    line-height: 2;
}
.profile-name-page .u-fs-h4 {
    line-height: 1.25;
    padding-top: 20px;
}
.profile-name-page .u-fs-caption-1 {
    line-height: 2.2;
}
.main-0 {
    max-width: 880px;
    margin: 0 auto;
    padding-top: 100px;
}
.contact-main-text {
    padding-bottom: 70px;
}
.contact-main-text .u-fs-caption-2 {
    line-height: 1.8;
}
.contact-text {
    text-align: center;
    padding-bottom: 50px;
}
.contact-tool-top {
    display: flex;
    gap: 10px;
    padding-bottom: 50px;
    align-items: center;
}
.contact-tool {
    display: flex;
    gap: 50px;
    padding-bottom: 50px;
    align-items: center;
}
.contact-context {
    padding-bottom: 20px;
}
.contact-top-content {
    align-items: baseline;
}
.contact-buttom-content {
    padding-left: 40px;
}
.contact-inner {
    display: inline-block; 
    text-align: left;
    width: 100%;
    width: fit-content; 
}
.contact-inner p {
    font-weight: bold;
    margin-bottom: 10px;
    line-height: 1.75;
}
.contact-need {
    padding-bottom: 30px;
}
.contact-need p {
    font-weight: bold;
    padding-left: 80px;
}
.contact-form {
    margin: 0 auto;
    max-width: 880px;
}
/* フォントサイズ特例 */
.contact-form label {
    font-size: clamp(1.44rem, 1vw + 1rem, 1.8rem);
}
.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
    border: 1px solid #bababa; 
    border-radius: 10px;
    font-size: clamp(1.44rem, 1vw + 1rem, 1.8rem);
}
.contact-form .form-row {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
}
.contact-form .label-text {
    font-size: clamp(1.44rem, 1vw + 1rem, 1.8rem);
    white-space: nowrap;
    width: 215px;
    flex-shrink: 0; 
}
.contact-form .input-area {
    flex-grow: 1; 
    text-align: end;
}
.contact-form .input-area input,
.contact-form .input-area textarea {
    width: 100%;
    max-width: 600px;
}
.contact-form .input-area textarea {
    height: 200px;
    background-color: #fff;
}
.contact-form input[type="checkbox"] {
    transform: scale(1.2);
    margin-right: 5px;
}
.label-ve-text {
    text-align: center;
}
.label-inner-text {
    display: inline-block; 
    text-align: left;
    width: 100%;
    width: fit-content; 
    padding-bottom: 20px;
    padding-top: 20px;
}
.label-inner-text p {
    font-size: clamp(1.85rem, 1.35vw + 1rem, 2.2rem);
    line-height: 1.2;
    margin-bottom: 0;
}
.label-inner-text p a {
    color: #393939;
    text-decoration: underline;
}
.wpcf7-spinner {
    display: none !important;
}
.submit-area {
    text-align: center;
}
.in-submit {
    
    width: 100%;
    margin: 0 auto;
    margin-top: 50px;
}
.contact-form input[type="submit"] {
    width: 60%;
    padding: 12px 0;
    font-size: clamp(1.85rem, 1.35vw + 1rem, 2.2rem);
    border: none;
    cursor: pointer;
    color: #333333;
}
.wpcf7-list-item-label {
    line-height: 2;
}
input[type="submit"] {
  background-color: transparent;
}

/* 確認画面用 */
#wpcf7cpcnf {
    position: relative;
    display: block;
    clear: both;
    max-height: 60vh; 
    max-width: 760px !important;
    margin: 20px auto;
    background: #fff;
    border: 1px solid #ccc;
    border-radius: 10px;
    padding: 30px;
    box-sizing: border-box;
    font-size: clamp(1.85rem, 1.35vw + 1rem, 2.2rem);
}
#wpcf7cpcnf table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 30px;
}
#wpcf7cpcnf th,
#wpcf7cpcnf td {
    border-bottom: 1px solid #ccc;
    padding: 15px 10px;
    text-align: left;
    vertical-align: top;
    font-size: clamp(1.85rem, 1.35vw + 1rem, 2.2rem);
}
#wpcf7cpcnf th {
    width: 180px;
    white-space: nowrap;
    font-weight: bold;
}
#wpcf7cpcnf td p {
    margin: 0;
    font-size: clamp(1.28rem, 0.8vw + 1rem, 1.6rem)
}
#wpcf7cpcnf .wpcf7cp-btns {
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 20px;
}
#wpcf7cpcnf .wpcf7cp-btns button {
    width: 40%;
    padding: 12px 0;
    border: 1px solid #ccc;
    border-radius: 10px;
    background: #fff;
    font-size: clamp(1.85rem, 1.35vw + 1rem, 2.2rem);
    font-weight: bold;
    cursor: pointer;
    color: #333333;
}
.form-me-number {
    text-align: right;
    padding-right: 3%;
    font-size: clamp(0.96rem, 0.5vw + 1rem, 1.2rem);
}
.single-title {
    line-height: 1.85;
    padding-bottom: 20px;
    margin-bottom: 60px;
    border-bottom: solid 1px #ccc;
}
.image-section p {
    font-size: clamp(0.96rem, 0.5vw + 1rem, 1.2rem);
    line-height: 1.5;
    color: #333333;
    padding-top: 10px;
}
.text-section h3 {
    font-weight: 600;
    margin-bottom: 20px;
    padding-left: 10px;
    border-left: solid 4px #a5041b;
    padding-bottom: 5px;
    line-height: 1.5;
}
.wp-block-image img {
    padding-bottom: 30px;
    padding-top: 10px;
}
.wp-block-column a {
    color: #0073aa;
    text-decoration: underline;
}
#modal-container {
    display: none; 
    position: fixed;
    background: rgba(0, 0, 0, 0.85); 
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 1000;
    justify-content: center;
    align-items: center;
}
#modal-container[style*="display: block"] {
    display: flex !important;
}

#modal-container .modal-content {
    display: flex;
    flex-direction: column; 
    align-items: center;   
    width: min-content; 
    margin: 0 auto;
}
#modal-container img {
    display: block;
    max-width: 80vw;
    max-height: 70vh;
    width: auto; 
    height: auto;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 1);
}
#modal-caption {
    color: #fff;
    margin-top: 15px;
    width: 100%;
    box-sizing: border-box;
    text-align: left; 
    word-break: break-all;
    line-height: 1.5;
}
.hover-alpha {
    transition: opacity 0.3s ease; 
    cursor: pointer;
}
.hover-alpha:hover {
    opacity: 0.8; 
}
.popup-wrapper {
    position: relative;
    display: inline-block; 
    cursor: pointer;
    line-height: 0;
}
.popup-wrapper img {
    display: block;
    width: 100%;
    height: auto;
    transition: opacity 0.3s;
}
.popup-wrapper:hover img {
    opacity: 0.8;
}
.popup-wrapper::after {
    content: "";
    position: absolute;
    right: 8px;
    bottom: 8px;
    width: 20px;
    height: 20px;
    background: url(../images/zoom-img.png) no-repeat center center;
    background-size: contain;
    z-index: 5;
    pointer-events: none; 
}
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    border: none;
}
.wpcf7-response-output {
    color: #a5041b;
    text-align: center;
}
.wpcf7 form.sent .wpcf7-response-output {
    border: none;
    line-height: 2;
}
.wpcf7 form .wpcf7-response-output {
    margin: 2em 0em 1em;
    padding: 0.2em 0em;
}
div#wpcf7cpcnf {
    position: absolute;
    z-index: 1000;
    background-color: transparent;
    width: 100%;
    height: auto;
    top: 0;
    left: auto;
    margin-left: auto;
    margin-right: auto;
    margin-top: auto;
    margin-bottom: auto;
    max-width: 880px;
    top: 35%;
    left: 50%;
    transform: translate(-50%, -50%);
    border: none;
}


.pagination-ret {
    text-align: center;
}
.pagination-ret .nav-links {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
}
.pagination-ret .nav-links .page-numbers {
    display: inline-block;
    padding: 0;
    text-decoration: none;
    color: #333;
    width: 50px;
    height: 30px;
    line-height: 1.3;
    text-align: center;
    font-size: 2.2rem;
    box-sizing: border-box;
    border-radius: 5px;
    position: relative;
}
.pagination-ret .nav-links .page-numbers.current {
    color: #333;
    border-radius: 5px;
    font-weight: 600;
}
.pagination-ret .nav-links .page-numbers:hover:not(.current) {
    background-color: #f0f0f0;
    border-radius: 5px;
}
.pagination-ret .nav-links .prev,
.pagination-ret .nav-links .next {
    border: none !important;
}
.pagination-ret .nav-links .prev:hover::after,
.pagination-ret .nav-links .next:hover::after {
    transform: translate(-50%, -50%) scale(1.1);
}
.pagination-ret .nav-links .dots {
    color: #333;
    padding: 8px 4px;
    border: none;
    transform: translateY(-15px);
}
.pagination-ret .nav-links .prev {
    margin-right: 2.5rem;
    white-space: nowrap;
}
.pagination-ret .nav-links .next {
    margin-left: 2.5rem;
    white-space: nowrap;
}



.foot-main::before {/* 追加 */
    content: "";
    position: absolute;
    top: auto;
    left: 0;
    width: 100%;
    height: 25%;
    z-index: -1;
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 1;
}
.foot-content {
    display: flex;
    justify-content: space-between;
    margin-top: 100px;
    padding-bottom: 30px;
    padding-top: 50px;/* 追加 */
}
.foot-text {
    padding-top: 32px;
    line-height: 2;
}
.foot-right {
    display: flex;
    gap: 100px;
    justify-content: space-between;
}
.foot-right p {
    line-height: 1.9;
}
.foot-left {
    padding-top: 7px;
    max-width: 150px;
}