@charset "utf-8";

    * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: kozuka-mincho-pro, serif;
            font-weight: 400;
            font-style: normal;
        }

/*問い合わせボタン固定*/
    .fxform{
        text-decoration: none;
        display: block;
        position:fixed;
        bottom: 20px;
        right: 0%;
        z-index: 999;
        color: #fff;
        text-align: center;
        padding: 15px 24px 12px;
        background-color:#0171e3;
        /*border-radius: 50px;*/
    }


/*フェードインのためのCSS*/
    .fade-in {
            opacity: 0;
            transform: translateY(20px);
            transition: opacity 3.0s ease, transform 3.0s ease;
        }

        .fade-in.visible {
            opacity: 1;
            transform: translateY(0);
        }
/*フェードインのためのCSS*/


        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 20px;
        }

       
    .hero{
            position: relative;
            height: 100vh;
            min-height: 600px;
            background: linear-gradient(rgba(0,0,0,0.15), rgba(0,0,0,0.25)), url('images/villa_mutenka2.jpg');
            background-size: cover;
            background-position: 0% 35%;
            background-repeat: no-repeat;
        }

     .hero-content {
            position: absolute;
            top: 5%;
            left: 5%;
            /*transform: translate(-50%, -50%);*/
            text-align: center;
            color: white;
            z-index: 2;
            text-shadow: 2px 2px 8px #000;
            opacity: 0.8;
        }

        .hero-content p{
            font-size: calc(40px + 1.8vw);
            line-height: 1.1em;
            margin-bottom: 20px;
            text-align: center;
            letter-spacing: 4px;
        }

        .logo {
            width: 380px;
            height: auto;           
        }

        .hero h1 {
            margin-bottom: -30px;
        }

        .hero .tagline {
            text-align: center;
            font-size: 1.5rem;
            margin-bottom: 40px;
            padding-left: 10px;
        }
        .new-open{
            position: absolute;
            bottom: 1%;
            left: 7%;
            z-index: 10;
        }
        .new-open h4{
            text-shadow: 1px 1px 8px #555;
            color:rgba(255,255,255,0.8);
            font-size: calc(60px + 1.8vw);
            letter-spacing: 5px;
        }
        @media (max-width: 768px) {
            .new-open{
                width: 100%;
                bottom: 15%;
                left:0%;
            }
            .new-open h4{
                color:#fff;/*#b49062*/
                text-align: center;
                font-size:calc(36px + 3vw);
            }
        }

        .scroll-indicator {
            position: absolute;
            bottom: 30px;
            left: 50%;
            transform: translateX(-50%);
            color: white;
            animation: bounce 2s infinite;
        }

        @keyframes bounce {
            0%, 20%, 50%, 80%, 100% { transform: translateX(-50%) translateY(0); }
            40% { transform: translateX(-50%) translateY(-10px); }
            60% { transform: translateX(-50%) translateY(-5px); }
        }

        /* Section Styles */
        .section {
            padding: 80px 0 0px 0;
            /*max-width: 1200px;*/
        }

        .section-dark {
            background-color: #2c2c2c;
            color: white;
            padding-bottom: 20px;
        }

        .section-light {
            background-color: #fafafa;
        }

        .section-warm {
            background-color: #f5f2ed;
        }

        .section h2 {
            font-size: 2.2rem;
            font-weight: 300;
            text-align: center;
            margin-bottom: 50px;
            letter-spacing: 1px;
        }

        .section h3 {
            font-size: 1.4rem;
            font-weight: 400;
            margin-bottom: 30px;
            color: #8B7355;
        }

        .section-dark h3 {
            color: #D4C4A8;
            text-align: center;
        }

/*Catch2 Section*/
        .catch2{
            text-align: center;
            margin: 300px auto 150px;
            padding: 0 20px;
            line-height: 3em;
        }
        .catch2 h2{
            font-size: 2.2rem;
            margin-bottom: 50px;
        }
        .catch2 h3{
            font-size:calc( 14px + 0.8vw );
        }

        /* Grid Layout */
        .grid {
            display: grid;
            gap: 50px;
            margin-bottom: 60px;
        }

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

        .grid-3 {
            grid-template-columns: repeat(1, 1fr);
            gap: 80px;
        }

        @media (max-width: 768px) {
            .grid-2, .grid-3 {
                grid-template-columns: 1fr;
            }
        }

        /* Card Styles */
        .card {
            background: white;
            padding: 40px 20px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
            transition: transform 0.3s ease;
        }

        .card:hover {
            transform: translateY(-5px);
        }

        .card-dark {
            background: rgba(255,255,255,0.1);
            backdrop-filter: blur(10px);
        }
        .card li::before{
            content:'◇ ';
            font-size: 14px;
        }

        /* Image Styles */
        .image-gallery {
            max-width: 800px;
            display: grid;
            grid-template-columns: repeat(1, 1fr);
            gap: 100px;
            margin: 40px auto;
        }
        .madori-map{
            max-width: 800px;
            display: block;
            margin: 0 auto;
        }
        @media (max-width: 768px) {
            .madori-map{
                max-width: 100%;
            }
        }

        .image-item {
            overflow: hidden;
        }
        .image-item h4{
            font-size: 26px;
            padding-left: 5px;
            padding-bottom: 10px;
        }


        .image-overlay {
            color: #000;
            padding: 15px 20px 20px 2px;
        }
        .image-overlay h4{
            font-size: 24px;
            padding-bottom: 5px;
        }
        .image-overlay p{
            text-align: justify;
        }
        .jyou{
            font-size:18px;
        }

         @media (max-width: 768px) {
            .image-overlay{
                padding: 20px 20px 20px 2px;
            }
            .image-overlay p{
                font-size: 18px;
                line-height: 2.2em;
                letter-spacing: -1px;
            }
            
         }

/*二人の時間をもっと自由にセクション*/
        .image-item2{
            overflow: hidden;
            background-size: cover;
            background-repeat: no-repeat;
            background-position: center bottom;
            position: relative;
            min-height: 400px;

        }
        @media (max-width: 768px) {
            .image-item2 {
                height: 300px;
                background-size: cover;
                background-position: center;
            }
            .card p{
                font-size: 18px;
                letter-spacing: 0.01em;
                line-height: 2em;
            }
            .card ul{
                font-size:  18px;
            }
        }

        .image-overlay2{
            position: absolute;
            color: #fff;
            padding: 15px 20px 20px 20px;
            bottom: 0%;
            right: 0%;
        }
        .image-overlay2 h4{
            font-size: 24px;
            padding-bottom: 5px;
        }
        .image-overlay2 p{
            text-align: justify;
        }


    /*Villa_mutenkaの主な仕様*/
        .shiyou{
            width: 100%;
        }
        .shiyou h3{
            text-align: center;
        }
        .shiyou-in{
            max-width: 800px;
            margin: 0 auto;
            padding: 50px 0;
        }

    /*Villa_mutenkaの主な仕様のテーブル*/
        table {
          width: 100%;
          border-collapse: collapse;
          margin-bottom: 40px;

        }

        th {
          background-color: #222;
          text-align: left;
          font-size: 1.2em;
          padding: 10px;
          border-bottom: 1px solid #444;
        }

        td {
            min-width: 100px;
            padding: 10px;
            border-bottom: 1px solid #333;
        }

    /*    tr:hover {
          background-color: #1c1c1c;
        }*/

        @media (max-width: 600px) {
          td, th {
            font-size: 1.1em;
            padding: 10px;
          }
        }
    /*Villa_mutenkaの主な仕様のテーブル end*/

    /*4つのライフスタイル*/
        .life-back{
            width: 100%;
            height: 550px;
            background-size: cover;
            background-position: center;
            text-align: right;
            margin-bottom: 60px;
        }
        .life-back-txt{
            font-size: 19px;
            text-align: center;
            margin-top: -30px;
            margin-bottom: 80px;
            color: #f5deb3;;
        }

    /*改行の制御*/
        .kaigyo{
            display: none;
        }
        @media (max-width: 768px) {
            .kaigyo{
                display: block;
            }
        }

        /* Feature Box */
        .feature-box {
            text-align: center;
            padding: 30px 10px;
            font-size: 15px;
            line-height: 1.8em;
        }

        .feature-icon {
            width: 60%;
            height: auto;
            background-size: contain;
            margin: 0 auto 20px;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-size: 24px;
        }
        .feature-icon img{
            width: 100%;
        }

        .kanae{
            max-width: 60%;
            text-align: justify;
            padding: 50px 0;
            margin: 0 auto 50px;
            background-color: rgba(255, 255, 255, 0.1);
        }
        .kanae p{
            max-width: 500px;
            color:#fff;
            font-size: 16px;
            margin: 0 auto;
        }
        @media (max-width: 768px) {
            .feature-icon {
                width: 100%;
            }
            .feature-box p{
                font-size: 16px;
                line-height: 2.4em;
                letter-spacing: 0.05em;
            }

            .kanae{
                max-width: 100%;
                padding: 15px 20px;
            }
            .kanae p{
                padding: 30px 0;
                font-size: 17px;
                letter-spacing: -1px;
                line-height: 2.3em;
            }
        }

        /* Stats */
        .stats {
            text-align: center;
            padding: 15px 0 60px 0;
        }

        .stats-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 40px;
            margin-top: 40px;
        }

        @media (max-width: 768px) {
            .stats-grid {
                grid-template-columns: repeat(2, 1fr);
            }
        }

        .stat-item {
            padding: 20px;
        }

        .stat-number {
            font-size: 2.5rem;
            font-weight: 300;
            color: #8B7355;
            margin-bottom: 10px;
        }

        .stat-label {
            font-size: 0.9rem;
            opacity: 0.8;
        }

    /* kakaku Styles */
        .eq{
            display: block;
            transform: rotate(90deg);
        }

        .kakaku{
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 15px 50px 15px;
            text-align: center;
        }
        .kakaku h3{
            font-size: 1.2em;
            max-width: 600px;
            margin: 0 auto 10px;
            padding: 0 0 10px 0;
            text-align: left;
            /*border-bottom: 1px dotted #555;*/

        }
        .settei{
            padding: 20px 20px;
            margin: 15px auto 80px;
            color: white;
            max-width: 600px;
            background-color:#333333;
        }
        
        .tubotanka{
            color: #f5deb3;
            font-size: 24px;
        }
        .settei_setsumei{
            padding: 20px 0 0 0;
            font-size: 18px;
        }

        .kuukan{
            max-width: 600px;
            margin: 0 auto;
        }
        .kuukan h3{
            
        }
        .kuukan p{
            padding: 30px 15px 30px 15px;
            border: 1px solid #aaaaaa;
            font-size: 26px;
        }
        .kakaku_annai{
            color: #f5deb3;
            font-size: 20px;
            font-weight: bold;
            max-width: 600px;
            padding: 10px 30px;
            margin: 0 auto 50px auto;
            background-color:#333333;
            border: 1px solid #333333;
        }

        .osusume{
            max-width: 600px;
            margin: 0 auto 10px auto;
            padding: 20px 0;
        }
        .osusume ul{
            font-size: 18px;
            text-align: left;
            padding: 25px 20px 25px 20px;
        }
        .osusume li{
            list-style: none;
            padding: 10px 0;
        }

        /* CTA Styles */
        .cta {
            background: linear-gradient(135deg, #8B7355 0%, #A68B6B 100%);
            color: white;
            text-align: center;
            padding: 60px 0;
        }

        .cta h2 {
            font-size: calc( 12px + 0.8vw );
            color: white;
            margin-bottom: 50px;
        }
        .cta p{
            color: white;
            margin: 0;
        }
        .iyoiyo{
            color:white;
            max-width: 800px;
            font-size: 18px;
            margin: 0 auto 50px;
            padding: 30px 0;
            background-color: #333333;
            border: 2px solid #b49062;
            box-shadow: 4px 4px 6px #555;
        }
        .preopen{
            font-size: 40px;
            color: #b49062;
        }
        .kousei{
            font-size: 21px;
            margin-bottom: 30px;
            color:#fff;
        }
        .kanzen{
            padding: 20px 0 10px 0;
            font-size: 18px;
        }
        .sankumi{
            font-size: 30px;
        }
         @media (max-width: 768px) {
            .cta h2{
                font-size:calc(18px + 0.8vw);;
            }
            .cta p{
                font-size: 24px;
            }
            .benefits p{
                font-size: 18px;
            }
            .benefit-item p{
                font-size: 16px;
            }
            .annai p{
                font-size: 18px;
            }
         }

    /*予約時間のボタン*/
        .time-slots {
            display: flex;
            justify-content: center;
            margin: 5px 0 20px 0;
            flex-wrap: wrap;
            gap: 40px 50px;
        }
        .time-slots a{
            text-decoration: none;
        }

        .time-slot {
            background: #ffd700;
            padding: 10px 70px;
            /*border: 1px ridge #583822;*/
            color: #333333;
            font-size: 1.1em;
            font-weight: 400;
            letter-spacing: 1px;
            transition: all 0.3s ease;
            min-width: 120px;
            text-align: center;
            border-radius: 2px;
            box-shadow: 2px 2px 7px #555;
        }

        .time-slot:hover {
            background: #eee8aa;
            color: #000000;
            border: 1px solid #fff;
        }

        /*特典*/
        .tokuten{
            background: rgba(255,255,255,0.1);
            padding: 30px;
            margin: 40px auto;
        }
        .tokuten-in{
            max-width: 560px;
            margin: 0 auto;
        }
        .tokuten-in h3{
            font-size: 24px;
            text-align: center;
            color: #FFD700; 
            margin-bottom: 20px;
        }
        .mono{
            margin-bottom: 50px;
        }
        .mono h4{
            color:#2c2c2c;
            font-size: 16px;
            padding: 5px 0 5px 10px;
            background-color: rgba(255, 255, 255, 0.5);
        }
       .nakami{
            font-size: 19px;
            padding: 15px 20px;
            color: #fff;
       }
        
       .minpaku{
            font-size: 1.3rem;    
       }
       .price{
            color: #fff;
            font-size: 18px;
            text-decoration: line-through;
            opacity: 0.7;
       }
       .price-low{
            font-size: 32px; 
            color: #f5deb3; 
            font-weight: bold;
       }
       .price-low::before{
            content: '→';
            font-size: 24px;
            padding-right: 10px;
       }

/*予約セクショントップのロゴ*/
        .form-logo{
            width: 450px;
            height: auto;
            margin-bottom: -35px;
        }
        .form-logo-sub{
            font-size: calc(12px + 1.2vw);
            margin-bottom: 50px;
        }

        .cta-buttons {
            display: flex;
            gap: 50px;
            justify-content: center;
            align-items: center;
            flex-wrap: wrap;
            padding: 30px 0 0px;
            font-size: 21px;
        }

        .btn {
            display: inline-block;
            padding: 10px 70px;
            border-radius: 3px;
            text-align: center;
            text-decoration: none;
            font-weight: 700;
            transition: all 0.3s ease;
            box-shadow: 2px 2px 7px #555;
            min-width: 300px;
        }

        .btn-primary {
            background-color: #ffd700;
            color: #333333;
            border-color: white;
        }

        .btn-primary:hover {
            background-color: #eee8aa;
            color: #333333;
            border-color: white;
        }

        .btn-secondary {
            background-color: #ffd700;
            color: #333333;
            border-color: white;
        }

        .btn-secondary:hover {
            background-color: #eee8aa;
            color: #333333;
        }
        .telephone{
            margin-bottom: 80px;
            padding: 35px 0 15px;
            font-size: 24px;
        }
        .telephone a{
            color: #fff;
            text-decoration: none;
            font-size: 32px;
        }

        /* Lifestyle Cards */
        .lifestyle-grid {
            width: 100%;
            display: grid;
            grid-template-columns: repeat(1, 1fr);
            gap: 30px;
            margin: 40px auto 0;
            padding-bottom: 50px;
        }

        @media (max-width: 768px) {
            .lifestyle-grid {
                grid-template-columns: 1fr;
            }
        }

        .lifestyle-card {
            padding: 30px 15px;
            display: flex;
            flex-wrap: wrap;
        }

        .lifestyle-card h4 {
            color: #f5deb3;
            font-size: 1.2rem;
            margin-bottom: 40px;
            padding-left:10px;
        }

        .lifestyle-card p {
            font-size: 0.9rem;
            line-height: 1.6;
            margin-bottom: 15px;
            padding:10px 20px;
            color:#f5deb3;
            text-align: justify;
        }

        .lifestyle-card ul {
            list-style: none;
            padding: 0;
        }

        .lifestyle-card li {
            font-size: 1.2rem;
            margin-bottom: 18px;
            padding-left: 20px;
            position: relative;
            line-height: 1.5em;
            letter-spacing: 0.05em;
        }

        .lifestyle-card li:before {
            content: "✓";
            position: absolute;
            left: 0;
            color: #fafafa;
        }

        .life-img{
            width: 50%;
            overflow: hidden;
        }
        .life-img img{
            display: block;
            width: 100%;
            height: auto; 
            padding-top: 40px;
        }

        .life-txt{
            width: 45%;
            padding-left:15px ;
        }
        .life-txt ul{
            margin-top: 30px ;
            margin-bottom: 70px;
            padding-left: 10px;
        }
        .life-sub{
            color: #fff!important;
        }
        .life-2sub{
            background-color: rgba(240, 240, 240, 0.1);
            font-size: 20px!important;
            padding: 10px 0;
            margin-left: 5px;            
        }


        @media (max-width: 768px) {
            .lifestyle-card {
                display: block;
            }
            .life-img,.life-txt{
                width: 100%;
                padding-left: 5px;
            }
        }

        /* Contact Section */
        .contact-info {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 40px;
            margin-top: 40px;
        }

        @media (max-width: 768px) {
            .contact-info {
                grid-template-columns: 1fr;
                font-size: 18px;
            }
        }

        .contact-card {
            background: white;
            padding: 30px;
            box-shadow: 0 4px 20px rgba(0,0,0,0.1);
        }

        /* Responsive */
        @media (max-width: 768px) {
            .hero{
                position: relative;
                height: 100vh;
                min-height: 600px;
                background: linear-gradient(rgba(0,0,0,0.15), rgba(0,0,0,0.25)), url('images/villa_mutenka.jpg');
                background-size: cover;
                background-position: 50% 0%;
                background-repeat: no-repeat;
                }
           .hero-content {
                width: 100%;
                top: 25%;
                left: 50%;
                transform: translate(-50%, -50%);
            }

            .hero-content p{
                font-size: calc( 42px + 1.4vw );
                width: 100%;
                margin-bottom:60px;
                line-height: 1.2em;
                letter-spacing: 0.1em;
                text-align: center;        
            }

            .hero h1 {
                font-size: 2rem;
                width: 100%;
            }

            .hero .tagline {
                font-size: 1.0rem;
            }

            .section {
                padding: 60px 0;
            }

            .section h2 {
                font-size: 1.7rem;
                padding: 0 10px;
            }
            .section h3{
                font-size: 1.2rem;
                letter-spacing: 0.05em;
                line-height: 2em;
            }

            .container {
                padding: 0 15px;
            }

            .logo {
                width: 230px;
            }

/*スマホ幅修正*/

            .life-img, .life-txt {
                width: 100%;
                padding-left: 0;
            }
            img {
                max-width: 100%;
                height: auto;
            }
            body {
                overflow-x: hidden;
            }
        }

        /* Smooth scrolling */
        html {
            scroll-behavior: smooth;
        }

        body {
            line-height: 1.7;
            color: #333;
            background-color: #faf9f7;
        }


 /* 来場特典 */
        .section-title2{
            color: #2c2c2c!important;
            font-size:30px!important;
        }

        .benefits {
            background: #f5f3f0;
            border: 1px solid #e0ddd6;
            width: 95%;
            margin: 0 auto 50px;
        }

        .benefit-item {
            width: 95%;
            background: #ffffff;
            padding: 40px;
            margin: 30px auto;
            border-left: 6px solid #b49062;
            position: relative;
        }

        .benefit-number {
            position: absolute;
            top: 0px;
            left: -1px;
            background: #b49062;
            color: #ffffff;
            width: 40px;
            height: 40px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 400;
            font-size: 1.2em;
        }

        .benefit-title {
            font-size: 1.6em;
            margin-bottom: 20px;
            color: #333333;
            font-weight: 400;
            letter-spacing: 2px;
            margin-left: 20px;
        }

        .special-offer {
            max-width: 250px;
            background: #333333;
            color: #b49062;
            padding: 10px 25px;
            margin: 20px auto 20px auto;
            text-align: center;
            font-weight: 400;
            letter-spacing: 2px;
            border: 1px solid #b49062;
            /*transform: rotate(-3deg);*/
        }

        .kitchen-details {
            margin: 0 0 15px 0;
            padding: 20px;
            background: #fafafa;
            border: 1px solid #e8e8e8;
            background:url(images/present.jpg);
            background-size: cover;
            background-position: center center;
            height: 300px;
        }
        .kitchen-details p{
            color: white;
            font-weight: 700;
            padding-top: 30px;
            font-size: 28px;
            text-shadow: 2px 2px 10px #000;
        }

        @media (max-width: 768px) {
            .kitchen-details {
                height: 200px;
                background-repeat: no-repeat;
            }
            .kitchen-details p{
                padding-top: 15px;
                font-size: 20px;
            }
        }

        .kitchen-details h4 {
            color: #b49062;
            margin-bottom: 15px;
            font-weight: 400;
            letter-spacing: 1px;
        }

        .kitchen-details ul {
            list-style: none;
            padding-left: 20px;
        }

        .kitchen-details li {
            list-style: none;
            margin-bottom: 8px;
            position: relative;
            color: #555555;
        }

        .price-highlight {
            font-size: 1.0em;
            text-decoration: line-through;
            color: #999999;
            margin-right: 20px;
        }

        .new-price {
            font-size: 1.5em;
            color: #b49062;
            font-weight: 400;
        }

         @media (max-width: 768px) {
            .benefits{
                width: 95%;
                margin:0 auto;
            }
            .benefit-item{
                padding: 40px 10px;
            }
         }

/*mapエリア*/
        .annai{
            margin-bottom: 50px;
        }