/* Start Variables */
:root{
    --primary-color: #3A1078;
    --secondary-color: #F7F7F8;
    --text-color: #1230AE;
    --paraghaph-color: #40679E;
    --pink-color: #FF407D;
    --background-color: #FFCAD4;
    --span-color: #3795BD;
    --main-transition: 0.3s ease-in-out;
}
/* End Variables */

/* Start Global Rules */
*{
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

html{ scroll-behavior: smooth; }

body{
    font-family: "Roboto", 'Merriweather', serif;
    padding: 0;
    margin: 0;
}

a{ text-decoration: none; }

ul{
	list-style: none;
	padding: 0;
    margin: 0;
}

.container{
	padding-left: 15px;
	padding-right: 15px;
	margin-left: auto;
	margin-right: auto;
}

/* Small Screens */
@media (min-width: 768px) {
	.container { width: 750px; }
}

/* Medium Screens */
@media (min-width: 992px) {
	.container { width: 970px; }
}

/* Large Screens */
@media (min-width: 1200px) {
	.container { width: 1170px;	}
}
/* End Global Rules */

/* Start Header */
.head{ background-color: rgb(219, 228, 232); }

.head .container .nav-toggle{ display: none; }

.head .container .logo,
.footer .logo{
    margin-bottom: -4px;
    width: 17%;
    height: 17%;
}

@media (max-width: 768px){
    .head .container .logo{
        margin-bottom: -4px;
        width: 45%;        /* fallback if image is very wide */
        height: auto;
        margin-left: 15px;
    }

    .head .container .nav-toggle{
        display: block;
        cursor: pointer;
        margin-right: 15px;
    }

    .nav-bar{
        display: none;
        width: 100%;
    }
    
    .nav-bar.show{ display: block; }

    /* stack nav items vertically on mobile */
    .nav-bar ul{
        flex-direction: column;
        padding-top: 10px;
        margin-bottom: 15px;
    }

    .nav-bar ul li{
        width: 100%;
        text-align: center;
    }

    .head .container .nav-bar ul .call{
        margin-left: 50px;
        width: 60%;
    }
}

.head .container .logo a img,
.footer .logo a img{
    border: 3px solid #2FA1BB;
    border-radius: 50px;
    -webkit-box-shadow: 0 0 10px #13555F;
    -moz-box-shadow: 0 0 10px #13555F;
    -o-box-shadow: 0 0 10px #13555F;
    box-shadow: 0 0 10px #13555F;
}

.head .container .nav-bar > ul > li > a{
    transition: var(--main-transition);
    padding: 0 20px;
    overflow: hidden;
    font-family: "Merriweather";
}

.head .container .nav-bar ul > li > a::before{
    content: "";
    position: absolute;
    height: 4px;
    width: 100%;
    background-color: var(--pink-color);
    top: 0;
    left: -100%;
    transition: var(--main-transition);
}

.head .container .nav-bar ul > li > a:hover::before,
.head .container .nav-bar ul > li.active a::before{ left: 0; }

.head .container .nav-bar ul > li > a:hover,
.head .container .nav-bar ul > li.active a{
    color: var(--pink-color);
    background-color: var(--secondary-color);
}

.head .container .nav-bar ul .call{ margin-left: 70px; }
/* End Header */

/* Start Landing */
.landing{
    background-image: url(../images/16018002145418858108.JPG);
    background-size: cover;
}

.landing .overlay{
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    height: 100%;
    width: 100%;
    background-color: #4169e147;
    z-index: 0;
}

.landing .container .text{
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 100%;
    width: 700px;
}

@media (max-width: 768px) {
    .landing .container .text{
        width: 100%;
        padding: 20px;
        margin-top: -138px;
    }

    .landing .container .text h1{
        font-size: 35px;
        text-align: center;
        margin-bottom: 50px;
    }
}


.landing .container .text h1{
    margin: 20px 0 0 0;
    font-weight: 700;
}

.landing .container .text p{ line-height: 1.5; }

.landing .container .text button{ overflow: hidden; }

.landing .container .text button:hover{
    border-color: var(--text-color);
    -webkit-box-shadow:  0 2px 15px var(--background-color);
    -moz-box-shadow:  0 2px 15px var(--background-color);
    -o-box-shadow:  0 2px 15px var(--background-color);
    box-shadow:  0 2px 15px var(--background-color);
}

.landing .go-down{
    bottom: 110px;
    left: 50%;
	transform: translateX(-50%);
	transition: var(--main-transition);
}

.landing .go-down{ color: var(--background-color); }

.landing .go-down:hover{ color: var(--primary-color); }

.landing .go-down i{ animation: go-down 1s infinite; }
/* End Landing */

/* Start Tours */
.tours .container .introduction{
    margin-left: auto;
    margin-right: auto;
    width: 80%;
    line-height: 1.6;
    color: #114997;
}

.tours .container .contents{ grid-template-columns: repeat(auto-fill, minmax(260px, auto)); }

.tours .container .contents .box{
    border: 1px solid var(--background-color);
    border-radius: 35px 0 35px 0;
    overflow: hidden;
    -webkit-box-shadow: 0 2px 15px #E5E5EABF;
    -moz-box-shadow: 0 2px 15px #E5E5EABF;
    -o-box-shadow: 0 2px 15px #E5E5EABF;
    box-shadow: 0 2px 15px #E5E5EABF;
    transition: transform var(--main-transition), box-shadow var(--main-transition);
}

.tours .container .contents .box:hover{
    transform: translateY(-10px);
    -webkit-box-shadow: 0 2px 8px var(--background-color);
    -moz-box-shadow: 0 2px 8px var(--background-color);
    -o-box-shadow: 0 2px 8px var(--background-color);
    box-shadow: 0 2px 8px var(--background-color);
}

.tours .container .contents .box > span{
    top: 15px;
    left: 15px;
    background-color: var(--pink-color);
    padding: 8px;
    border-radius: 50px;
    font-size: 14px;
    font-weight: 500;
}

.tours .container .contents .box .photo{
    width: 360px;
    height: 240px;
}

.tours .container .contents .box .info{ margin-top: -4px; }

.tours .container .contents .box .info span{ margin-top: -5px; }

.tours .container .contents .box .info p{
    line-height: 1.5;
    color: #111;
}

.tours .container .contents .box .info .details{ border-top: 1px solid var(--background-color); }

.tours .container .contents .box:hover .info .details i{ animation: go-right .6s linear infinite; }

@media (max-width: 768px) {
    .tours .container .contents .box .info .details i{ margin-left: 90px; }
}
/* Card subtitle fixes spacing whether empty or multi-line */
.tours .container .contents .box .info .c-span{
    display:block;
    min-height: 40px;
}

.fixed-details{ min-height: 120px; /* adjust as needed */ }
/* End Tours */

/* Start Landing For Each Tour */
.landing-1{
    background-color: var(--background-color);
    border-radius: 0 0 150px 150px;
}

.landing-1 .container .text{ flex-basis: 45%; }

.landing-1 .container .text p{ line-height: 1.5; }

.landing-1 .container .image{
    flex-basis: 48%;
    margin-top: -200px;
    height: 350px;
    position: relative;   /* allow absolute-positioned nav to align inside */
}

.landing-1 .container .photos{ margin: 0; }

.landing-1 .container .cave{ margin-top: -400px; }

.landing-1 .container .image .slider{
    height: 100%;
    width: 565px;
    border: 20px solid #27223de8;
    border-radius: 25px;
    overflow: hidden;
}

.landing-1 .container .image .slider .slide{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    z-index: 1;
    -webkit-transition: opacity 2s;
    -moz-transition: opacity 2s;
    -o-transition: opacity 2s;
    transition: opacity 2s;
}

.landing-1 .container .image .slider .showing{
    opacity: 1;
    z-index: 2;
}

/* --- Slider navigation rewrite: dynamic position --- */
.landing-1 .container .image .buttons{
    position: absolute;
    top: 50%;                      /* vertically centre */
    left: 0;
    width: 100%;                   /* span full slider width */
    padding: 0 10px;               /* slight inner gap */
    transform: translateY(-50%);   /* exact centre alignment */
    z-index: 3;
    display: flex;
    justify-content: space-between; /* push buttons to edges */
    align-items: center;             /* center buttons vertically inside */
    pointer-events: none;          /* let clicks go to children only */
}

/* buttons follow flex layout – remove absolute offsets */
.landing-1 .container .image .controls{
    position: static !important;   /* cancel p-absolute */
    pointer-events: auto;          /* restore clickability */
    padding: 2px 6px;
    font-size: 15px;
    background-color: #27223de8;
    color: #FFF;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: var(--main-transition);
}

.landing-1 .container .image .controls:hover{ background-color: #464355; }

/* clear any leftover hard-coded offsets from earlier rules */
.landing-1 .container .image .buttons button:first-of-type,
.landing-1 .container .image .buttons button:last-of-type{
    left: auto !important;
    right: auto !important;
}
/* End Landing For Each Tour */

/* Start Prices Box */
.container .price{
    background-color: var(--secondary-color);
    width: 500px;
    top: 40px;
    left: -1%;
    overflow: hidden;
    -webkit-box-shadow: 0 0 10px #CCC;
    -moz-box-shadow: 0 0 10px #CCC;
    -o-box-shadow: 0 0 10px #CCC;
    box-shadow: 0 0 10px #CCC;
}

.container .price div > div{ border-bottom: 2px solid #CCC; }

.container .price div i{ color: #444; }

.container .price div p{ margin-left: -230px; }
/* End Prices Box */

/* Start Details Box */
.details-one .container{
    background-color: var(--secondary-color);
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    margin: 0;
    padding: 0;
    overflow: hidden;
    -webkit-box-shadow: 0 0 10px #CCC;
    -moz-box-shadow: 0 0 10px #CCC;
    -o-box-shadow: 0 0 10px #CCC;
    box-shadow: 0 0 10px #CCC;
}

.details-one .container ul li{ line-height: 1.6; }

.details-one .container ul li:first-of-type i{ color: green; }

.details-one .container ul li:nth-of-type(2) i{
    color: red;
    margin-right: 17px;
}

.details-one .container ul li:nth-of-type(3) i{ color: var(--primary-color); }

.details-one .container ul li:nth-of-type(4) i{ color: var(--primary-color); }

.details-one .container ul li:last-of-type i{
    color: var(--primary-color);
    margin: 0 19px 0 8px;
}
/* End Details Box */

/* Start Reservation's Form */
.reservation .container .special-heading{
    text-align: left;
    margin-left: 165px;
}

.reservation .container .box .form{
    padding: 25px;
    margin-left: auto;
    margin-right: auto;
    width: 50%;
    height: fit-content;
    border: 2px solid #CCC;
    background: linear-gradient(90deg, var(--span-color), var(--secondary-color));
    box-shadow:  12px 12px 27px #F7F7F8,
                -12px -12px 27px #ffffff;
}

.reservation .container .box .form form > :not(div:nth-of-type(5), div:last-of-type){ border-bottom: 1px solid #ddd;}

.reservation .container .box .form form .input-field{
    padding: 8px 10px;
    width: 100%;
    height: 40px;
    line-height: 40px;
    border: 1px solid #ddd;
    border-radius: 5px;
    background-color: var(--secondary-color);
    font-size: 15px;
    margin-left: 10px;
    outline: none;
    transition: var(--main-transition);
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
}

/* ===== Reservation form label / input alignment ===== */
.reservation .container .box .form form .mb-20{
    display: flex;
    align-items: center;
    gap: 10px;
}

.reservation .container .box .form form .mb-20 label{
    flex: 0 0 140px; /* fixed label width */
    margin-bottom: 0; /* prevent extra space */
}

.reservation .container .box .form form .mb-20 .input-field{
    flex: 1 1 auto;
    width: auto; /* allow flex to control width */
}
/* ================================================ */

.reservation .container .box .form form .input-field:focus,
.reservation .container .box .form form textarea:focus{
    border-color: var(--paraghaph-color);
}

.reservation .container .box .form form textarea{
    height: 140px;
    border: 1px solid #949494;
    resize: none;
    outline: none;
    transition: var(--main-transition);
}

.reservation .container .box .form form button:hover,
.reservation .container .box .form form input[type = 'reset']:hover{
    border: 3px solid var(--text-color);
    -webkit-box-shadow:  0 2px 15px #1230AE4F;
    -moz-box-shadow:  0 2px 15px #1230AE4F;
    -o-box-shadow:  0 2px 15px #1230AE4F;
    box-shadow:  0 2px 15px #1230AE4F;
}

.reservation .container .box .side-section{
    border: 2px solid #CCC;
    flex-basis: 40%;
    overflow: hidden;
    background-color: var(--secondary-color);
}

.details-one .container h2,
.container .price h2,
.reservation .container .box .side-section .programs h2{ padding: 7px 0; }

.reservation .container .box .side-section .programs ul li::before {
    font-family: "Font Awesome 5 Free";
    content: "\f46d";       /* Check icon */
    margin-right: 8px;
    font-weight: 900;
    color: var(--primary-color);
}

.reservation .container .box .side-section .programs ul li.special-icon::before { content: "\f249"; /* Sticky note icon */}

.reservation .container .box .side-section .programs ul li{ line-height: 1.6; }
/* End Reservation's Form */

/* Start Footer */
.footer{ min-height: 200px; }

.footer .info ul li a{
    transition: var(--main-transition);
    font-family: "Merriweather";
}

.footer .info ul li a:hover{ color: var(--pink-color); }

.footer .box ul{ width: 215px; }

.footer .box li a{
    background-color: var(--secondary-color);
    border-radius: 50%;
    padding: 10px;
    width: 50px;
    height: 50px;
    font-size: 25px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    transition: var(--main-transition);
}

.footer .box li:first-of-type a{ color: #e1306c; }

.footer .box li:nth-of-type(2) a{ color: #1877f2; }

.footer .box li:nth-of-type(3) a{ color: #dd4b39;  }

.footer .box li:nth-of-type(4) a{ color: #25d366; }

.footer .box li:nth-of-type(5) a{ color: #59267c; }

.footer .box li:last-of-type a{ color: #0088cc; }

.footer .box li:first-of-type a:hover{
    background-color: #e1306c;
    color: var(--secondary-color);
}

.footer .box li:nth-of-type(2) a:hover{
    background-color: #1877f2;
    color: var(--secondary-color);
}

.footer .box li:nth-of-type(3) a:hover{
    background-color: #dd4b39;
    color: var(--secondary-color);
}

.footer .box li:nth-of-type(4) a:hover{
    background-color: #25d366;
    color: var(--secondary-color);
}

.footer .box li:nth-of-type(5) a:hover{
    background-color: #59267c;
    color: var(--secondary-color);
}

.footer .box li:last-of-type a:hover{
    background-color: #0088cc;
    color: var(--secondary-color);
}

@media (max-width: 768px){
    .footer{
        flex-direction: column !important; 
        align-items: center; 
        text-align: center; 
        gap: 20px;
    }

    .footer .logo{
        margin: 0; 
        width: 35%; 
        height: auto;
    }

    .footer .info ul{
        flex-direction: column; 
        gap: 10px;
    }

    .footer .info ul li a{
        margin: 0!important; 
        display: block;
    }

    .footer .box{ margin-left: 50px; }

    .footer .box ul{ justify-content: center; }
}
/* End Footer */

/* Start Scroll To Top */
.up{
    position: fixed;
    bottom: 20px;
    right: 20px;
    padding: 10px;
    background-color: var(--primary-color);
    color: #FFF;
    font-size: 17px;
    border-radius: 10px;
    cursor: pointer;
    transition: var(--main-transition);
}
/* End Scroll To Top */

/* Start Master Page*/
.log{
    margin: 0 0 20px;
    text-align: center;
    font-size: 45px;
    font-weight: 600;
    font-family: 'Merriweather';
}

.card .row{
    width: 300px;
    margin-left: auto;
    margin-right: auto;
}

.card .form-log,
.card .form-register{
    margin: 50px auto 0;
    width: 300px;
}

.card .form-log input,
.card .form-register input,
.card .form-log .btn-log,
.card .btn-reg{
    width: 100%;
    height: 40px;
    padding: 10px;
    margin-bottom: 20px;
    border: 2px solid #DDD;
    border-radius: 8px;
}

.card .form-log input:focus,
.card .form-register input:focus{ outline: none; }

.card .form-log input[type="checkbox"]{
    width: 15px;
    height: 15px;
}

.card .form-log .btn-log,
.card .btn-reg,
.card .form-register .btn-reg{
    color: #FFF;
    font-size: 18px;
    cursor: pointer;
    line-height: 0.5;
}

.card .form-log .btn-log{
    background-color: rgb(15, 134, 15);
    border: 2px solid rgb(15, 134, 15);
}

.card .form-log .btn-log:hover{
    background-color: darkgreen;
    border: 2px solid darkgreen;
}

.card .no-account{
    display: block;
    margin: 10px 0 7px;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    color: #000;
}

.card .btn-reg{
    background-color: #a00;
    border: 2px solid #a00;
}

.card .btn-reg:hover{
    background-color: rgb(128, 0, 0);
    border: 2px solid rgb(128, 0, 0);
}

.card .form-register .input-group{ position: relative; }

.card .form-register .input-group span{
    position: absolute;
    top: 20%;
    right: 10px;
    font-size: 18px;
    color: #000000b8;;
}
/* End Master Page*/

/* Start Animation */
@keyframes go-down {
    0%, 20%, 30%, 40%, 50%{ transform: translateY(0); }

    70%, 80%, 100% { transform: translateY(-10px); }
}

@keyframes go-right {
    0%{ transform: translateX(0); }

    10%{ transform: translateX(8px); }
}

@keyframes up-down{
    0%,100%{ transform: translateY(0); }

    60%{ transform: translateY(-50px); }
}
/* End Animation */

/* ─────────  responsive layout for tour.php  ───────── */
@media (max-width: 768px){

  /* 1. landing section – stack text above slider */
  .landing-1{ border-radius: 0 0 60px 60px; }
  
  .landing-1 .container{
        flex-direction: column;
        gap: 30px;
  }

  .landing-1 .container .text{
        flex-basis: auto;
        text-align: center;
        padding: 0 15px;
  }

  .landing-1 .container .text h1{
        font-size: 32px;
        line-height: 1.4;
  }

  .landing-1 .container .text p{
        font-size: 16px;
        line-height: 1.5;
        margin-bottom: 10px;
  }

  .landing-1 .container .image{
        flex-basis: auto;      
        margin-top: 0;          /* undo the large negative margin      */
        width: 100%;
        height: auto;          /* let the content decide the height   */
  }

  /* keep the slider boxed with 3:2 aspect ratio */
  .landing-1 .container .image .slider{
        position: relative;
        width: 100%;
        padding-bottom: 66.66%;   /* 3:2 aspect – change to 75% for 4:3 */
        height: 0;                /* makes the padding trick take effect */
        border-width: 10px;       /* thinner border on small screens     */
  }

  /* stretch every slide image to fill the box */
  .landing-1 .container .image .slider .slide img{
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;        /* crop nicely, no distortion */
  }

   /* navigation buttons: move inside new width */
   .landing-1 .container .image .buttons{
        top: 60% !important;
        transform:translateY(-50%) !important;
  }

    /* remove old hard-coded left offsets */
    .landing-1 .container .image .buttons button:first-of-type,
    .landing-1 .container .image .buttons button:last-of-type{ left: auto !important; }
  
  /* 2. price card – span full width instead of fixed 500 px / left offset */
  .container .price{
        position: static;
        width: 100%;
        margin: 30px auto;
  }

  .container .price h2,
  .details-one .container h2,
  .reservation .container .programs h2{ font-size: 22px; }

  .container .price div > div i{
        padding-left: 0;
        font-size: 18px;
  }

  .container .price div > div p{
        font-size: 16px;
        margin-left: -130px;
  }

  .container .price div > div span{ font-size: 16px; }

  /* 3. details box – full-width with normal margins */
  .details-one .container{
        width: 90%;
        transform: none;
        position: static;
        margin: 0 auto;
  }

  .details-one .container ul li i{ 
        font-size: 15px; 
        margin-right: 10px !important;
  }

  /* 4. reservation block – form and "programs" stack vertically */
  .reservation .container .special-heading{
        margin-left: 30px;
        font-size: 90px;
  }

  .reservation .container .main{
        font-size: 30px;
        margin-left: 33px;
        margin-bottom: 30px;
  }

  .reservation .container .box{
        flex-direction: column;
        gap: 40px;
  }

  .reservation .container .box .form form .mb-20{
        display: flex;
        align-items: center;
        flex-wrap: wrap;
  }

  .reservation .container .box .form form .input-field{
        width: 100%;
        font-size: 13px;
  }

  .reservation .container .box .form,
  .reservation .container .box .side-section{
        width: 100%;
        flex-basis: auto;
  }

  .reservation .container .box .form form .buttons-form button,
  .reservation .container .box .form form .buttons-form input{
        padding: 9px 15px;
        font-size: 14px;
  }

  .reservation .container .box .form form .mb-20 label{ flex: 0 0 130px; }

  .reservation .container .box .form form .mb-20 .input-field{ flex: 1 1 auto; }
  /* 6. generic tweaks */
  .price div > div,
  .details-one .container ul li,
  .reservation .container .box .side-section .programs ul{
     padding-left:15px;
     padding-right:15px;
  }
}

