/* =======================================================
   MARION'S INN HOTEL BOOKING SYSTEM
   STYLE.CSS
   PART 1
======================================================= */

/* Google Font */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

/* Reset */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
    scroll-behavior:smooth;
}

/* Color Variables */

:root{

    --primary:#08751a;
    --secondary:#C9A227;
    --white:#ffffff;
    --dark:#035822;
    --gray:#11911e;
    --light:#f8fafc;
    --shadow:0 15px 40px rgba(0,0,0,.15);

}

/* Body */

body{

    background:
    linear-gradient(rgba(255,255,255,.94), rgba(255,255,255,.94)),
    url("images/exterior.jpg") center center / cover fixed no-repeat;
    color:var(--dark);
    overflow-x:hidden;

}

/* Images */

img{

    width:100%;
    display:block;

}

/* Links */

a{

    text-decoration:none;

}

/* Section Padding */

section{

    padding:90px 8%;

}

/* Titles */

.section-title{

    text-align:center;
    margin-bottom:60px;

}

.section-title h4{

    color:var(--secondary);
    letter-spacing:3px;
    font-size:18px;
    margin-bottom:15px;

}

.section-title h2{

    font-size:42px;
    color:var(--primary);
    margin-bottom:15px;

}

.section-title p{

    max-width:750px;
    margin:auto;
    color:#666666;
    line-height:1.8;

}

/* =======================================================
   NAVIGATION
======================================================= */

header{

    position:fixed;
    width:100%;
    top:0;
    left:0;
    z-index:999;
    background:rgba(255,255,255,.92);
    -webkit-backdrop-filter:blur(15px);
    backdrop-filter:blur(15px);
    box-shadow:0 8px 20px rgba(0,0,0,.08);

}

.navbar{

    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 8%;

}

.logo{

    display:flex;
    align-items:center;
    gap:12px;

}

.nav-logo{

    width:52px;
    height:52px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid #d4af37;
    box-shadow:0 4px 12px rgba(0,0,0,.15);
    flex-shrink:0;

}

.logo h2{

    color:var(--primary);
    font-size:30px;
    font-weight:700;

}

.logo p{

    font-size:13px;
    color:#888;

}

.nav-links{

    display:flex;
    list-style:none;
    gap:35px;

}

.nav-links li a{

    color:var(--dark);
    font-weight:500;
    transition:.35s;

}

.nav-links li a:hover{

    color:var(--secondary);

}

/* Hamburger toggle button - hidden on desktop */
.nav-toggle{

    display:none;

    background:none;

    border:none;

    font-size:26px;

    color:var(--primary);

    cursor:pointer;

    padding:6px 10px;

    z-index:1001;

}

/* Book Button */

.book-btn{

    background:linear-gradient(135deg,#0b9042,#64e843);

    color:white;

    padding:13px 30px;

    border-radius:40px;

    font-weight:600;

    transition:.4s;

    box-shadow:0 8px 25px rgba(201,162,39,.35);

}

.book-btn:hover{

    transform:translateY(-4px);

    box-shadow:0 15px 30px rgba(201,162,39,.45);

}

.nav-mobile-cta{

    display:none;

}

/* =======================================================
   HERO SECTION
======================================================= */

.hero{

    height:100vh;

    background:#1b5e20; /* fallback color while the image loads */

    background:url("images/hotel.jpg") center center/cover no-repeat;

    position:relative;

    display:flex;

    justify-content:center;

    align-items:center;

    text-align:center;

    color:white;

    isolation:isolate; /* image layer -> overlay -> text, in order */

}

/* background image layer (always behind the text) */
.hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:url("images/hotel.jpg") center center/cover no-repeat;

    z-index:0;

}

.overlay{

    position:absolute;

    inset:0;

    background:linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,.55));

    z-index:1;

}

/* Auto slideshow layers (stacked behind the welcome text) */
.hero-slides,
.hero-slide{

    position:absolute;

    inset:0;

}

.hero-slide{

    background-size:cover;

    background-position:center;

    opacity:0;

    visibility:hidden;

    transition:opacity 1s ease, visibility 1s;

    z-index:0;

}

.hero-slide.active{

    opacity:1;

    visibility:visible;

}

/* Name of the view shown on each slide */
.hero-slide-caption{

    position:absolute;

    left:0;

    right:0;

    bottom:0;

    padding:60px 60px 36px;

    background:linear-gradient(0deg,rgba(13,43,20,.85),rgba(13,43,20,0));

    color:#fff;

    font-size:26px;

    font-weight:700;

    letter-spacing:.5px;

    text-align:left;

    text-shadow:0 2px 10px rgba(0,0,0,.4);

}

/* Navigation dots */
.hero-slider-dots{

    position:absolute;

    bottom:28px;

    right:42px;

    z-index:3;

    display:flex;

    gap:10px;

}

.hero-slider-dot{

    width:11px;

    height:11px;

    border-radius:50%;

    background:rgba(255,255,255,.55);

    cursor:pointer;

    transition:.2s;

}

.hero-slider-dot:hover{

    background:#fff;

}

.hero-slider-dot.active{

    background:#E7C850;

    width:28px;

    border-radius:6px;

}

@media(max-width:768px){

    .hero-slide-caption{

        padding:40px 24px 24px;

        font-size:18px;

    }

    .hero-slider-dots{

        right:20px;

        bottom:20px;

    }

}

.hero-content{

    position:relative;

    z-index:2;

    max-width:900px;

    width:100%;

    margin:0 auto;

    animation:fadeUp 1.2s ease;

    text-shadow:0 3px 12px rgba(0,0,0,.45);

}

/* Fluid text sizing so the welcome sign scales smoothly on
   every screen size instead of jumping between breakpoints. */

.hero-content h3{

    font-size:clamp(13px,4vw,22px);

    letter-spacing:clamp(2px,1vw,5px);

    color:#FFD369;

    margin-bottom:15px;

}

.hero-content h1{

    font-size:clamp(30px,9vw,80px);

    font-weight:800;

    margin-bottom:10px;

    line-height:1.1;

    word-wrap:break-word;

}

.hero-content h2{

    font-size:clamp(16px,4.2vw,35px);

    margin-bottom:clamp(16px,4vw,30px);

    font-weight:300;

}

.hero-content p{

    font-size:clamp(14px,2.4vw,18px);

    line-height:1.9;

    margin-bottom:clamp(20px,5vw,40px);

}

/* Hero Buttons */

.hero-buttons{

    display:flex;

    justify-content:center;

    gap:20px;

    flex-wrap:wrap;

}

.btn1{

    background:linear-gradient(135deg,#049e4c,#E7C850);

    color:white;

    padding:16px 42px;

    border-radius:50px;

    font-size:17px;

    font-weight:600;

    transition:.4s;

}

.btn1:hover{

    transform:translateY(-5px);

}

.btn2{

    border:2px solid white;

    color:white;

    padding:16px 42px;

    border-radius:50px;

    font-size:17px;

    transition:.4s;

}

.btn2:hover{

    background:white;

    color:var(--primary);

}

/* =======================================================
   ABOUT SECTION
======================================================= */

.about{

    background:white;

}

.about-container{

    display:grid;

    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);

    gap:60px;

    align-items:center;

}

.about-image img{

    border-radius:25px;

    box-shadow:var(--shadow);

}

.about-text h4{

    color:var(--secondary);

    letter-spacing:3px;

    margin-bottom:15px;

}

.about-text h2{

    font-size:42px;

    color:var(--primary);

    margin-bottom:25px;

}

.about-text p{

    color:#666666;

    line-height:1.9;

    margin-bottom:35px;

}

.about-info{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:20px;

}

.info-box{

    background:rgba(231, 236, 213, 0);

    border-radius:20px;

    text-align:center;

    padding:30px 20px;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

    transition:.4s;

}

.info-box:hover{

    transform:translateY(-10px);

}

.info-box i{

    font-size:40px;

    color:var(--secondary);

    margin-bottom:15px;

}

.info-box h3{

    font-size:30px;

    color:var(--primary);

}

.info-box p{

    margin-top:8px;

    margin-bottom:0;

}

/* =======================================================
   WHY CHOOSE MARION'S INN
======================================================= */

.why-choose{

    background:var(--light);

}

.why-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(min(240px, 100%),300px));

    justify-content:center;

    gap:30px;

}

.why-card{

    background:var(--white);

    border-radius:20px;

    text-align:center;

    padding:40px 26px;

    box-shadow:var(--shadow);

    transition:.4s;

    max-width:300px;

    width:100%;

    margin:0 auto;

}

.why-card:hover{

    transform:translateY(-10px);

}

.why-card i{

    font-size:38px;

    color:var(--secondary);

    margin-bottom:18px;

}

.why-card h3{

    font-size:20px;

    color:var(--primary);

    margin-bottom:12px;

}

.why-card p{

    color:#666666;

    line-height:1.8;

    font-size:14.5px;

}

/* =======================================================
   SIMPLE FADE ANIMATION
======================================================= */

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}
/* =======================================================
   ROOMS SECTION
======================================================= */

.rooms{

    background:#f5fbf7;

}

.room-container{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(min(300px, 100%),1fr));

    gap:35px;

}

/* Room Card */

.room-card{

    background:#5ec06e;

    border-radius:25px;

    overflow:hidden;

    box-shadow:0 12px 35px rgba(0,0,0,.08);

    transition:.4s;

    position:relative;

}

.room-card:hover{

    transform:translateY(-12px);

    box-shadow:0 20px 45px rgba(0,0,0,.18);

}

/* Room Image */

.room-card img{

    width:100%;

    height:250px;

    object-fit:cover;

    transition:.5s;

}

.room-card:hover img{

    transform:scale(1.08);

}

/* Room Content */

.room-content{

    padding:28px;

}

.room-content h3{

    color:var(--primary);

    font-size:28px;

    margin-bottom:12px;

}

.capacity{

    color:var(--secondary);

    font-weight:600;

    margin-bottom:18px;

}

.capacity i{

    margin-right:8px;

}

.room-content p{

    color:#666;

    line-height:1.8;

    margin-bottom:20px;

}

/* Price */

.room-content h2{

    color:var(--primary);

    font-size:34px;

    margin-bottom:25px;

}

.room-content h2 span{

    font-size:18px;

    color:#777;

    font-weight:400;

}

/* Book Button */

.room-btn{

    display:inline-block;

    padding:14px 35px;

    background:linear-gradient(135deg,#0d8842,#68e066);

    color:#fff;

    border-radius:50px;

    font-weight:600;

    transition:.4s;

    box-shadow:0 8px 20px rgba(201,162,39,.35);

}

.room-btn:hover{

    transform:translateY(-4px);

    box-shadow:0 15px 30px rgba(201,162,39,.45);

}

/* Room Badge */

.room-card::before{

    content:"AVAILABLE";

    position:absolute;

    top:18px;

    left:18px;

    background:#16a34a;

    color:#fff;

    padding:8px 18px;

    border-radius:30px;

    font-size:13px;

    font-weight:600;

    z-index:2;

}

/* Decorative Line */

.room-content::after{

    content:"";

    display:block;

    width:70px;

    height:4px;

    background:var(--secondary);

    margin-top:18px;

    border-radius:5px;

}

/* =======================================================
   ROOM CARD ANIMATION
======================================================= */

.room-card{

    animation:roomFade .8s ease;

}

@keyframes roomFade{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* =======================================================
   ROOM IMAGE OVERLAY
======================================================= */

.room-card{

    position:relative;

}

.room-card::after{

    content:"";

    position:absolute;

    top:0;

    left:0;

    width:100%;

    height:250px;

    background:linear-gradient(
        rgba(0,0,0,0),
        rgba(0,0,0,.18)
    );

    pointer-events:none;

}

/* =======================================================
   ROOM RESPONSIVE
======================================================= */

@media(max-width:900px){

.room-container{

    grid-template-columns:minmax(0, 1fr);

}

.room-content h3{

    font-size:24px;

}

.room-content h2{

    font-size:30px;

}

.why-grid{

    grid-template-columns:repeat(auto-fit,minmax(min(200px, 100%),240px));

    justify-content:center;

    gap:22px;

}

.why-card{

    max-width:240px;

    padding:30px 20px;

}

}

@media(max-width:600px){

.room-card img{

    height:220px;

}

.room-content{

    padding:22px;

}

.room-btn{

    width:100%;

    text-align:center;

}

.why-grid{

    grid-template-columns:repeat(auto-fit,minmax(min(160px, 100%),220px));

    justify-content:center;

    gap:18px;

}

.why-card{

    max-width:220px;

    padding:26px 18px;

}

}
/* =======================================================
   BOOKING SECTION
======================================================= */

.booking{

    background:linear-gradient(135deg,#eef5fb,#ffffff);

}

.booking-header{

    text-align:center;

    margin-bottom:60px;

}

.booking-header h4{

    color:var(--secondary);

    letter-spacing:3px;

    margin-bottom:15px;

}

.booking-header h2{

    font-size:42px;

    color:var(--primary);

    margin-bottom:15px;

}

.booking-header p{

    max-width:700px;

    margin:auto;

    color:#666;

    line-height:1.8;

}

/* Booking Layout */

.booking-container{

    display:grid;

    grid-template-columns:380px minmax(0, 1fr);

    gap:40px;

    align-items:flex-start;

}

/* =======================================================
   LEFT INFORMATION PANEL
======================================================= */

.booking-info{

    background:linear-gradient(135deg,#13a94f,#35ba6f);

    color:#fff;

    padding:40px;

    border-radius:25px;

    box-shadow:0 20px 40px rgba(0,0,0,.15);

}

.booking-info h2{

    margin-bottom:30px;

    font-size:30px;

}

.info{

    display:flex;

    align-items:flex-start;

    gap:18px;

    margin-bottom:30px;

}

.info i{

    width:60px;

    height:60px;

    border-radius:50%;

    background:rgba(255,255,255,.15);

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:22px;

    color:#FFD369;

}

.info h3{

    font-size:18px;

    margin-bottom:5px;

}

.info p{

    color:#e6e6e6;

    line-height:1.6;

}

/* =======================================================
   BOOKING FORM
======================================================= */

.booking-form{

    background:#fff;

    border-radius:25px;

    padding:45px;

    box-shadow:0 20px 40px rgba(0,0,0,.08);

}

.booking-form form{

    display:flex;

    flex-direction:column;

    gap:20px;

}

/* Input Groups */

.input-group{

    display:grid;

    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);

    gap:20px;

}

/* Labels */

.booking-form label{

    font-weight:600;

    color:var(--primary);

    margin-bottom:8px;

    display:block;

}

/* Inputs */

.booking-form input,

.booking-form select,

.booking-form textarea{

    width:100%;

    padding:16px;

    border:1px solid #ddd;

    border-radius:12px;

    font-size:15px;

    outline:none;

    transition:.3s;

    background:#fafafa;

}

.booking-form input:focus,

.booking-form select:focus,

.booking-form textarea:focus{

    border-color:var(--secondary);

    background:#fff;

    box-shadow:0 0 10px rgba(201,162,39,.25);

}

/* Select */

.booking-form select{

    cursor:pointer;

}

/* Textarea */

.booking-form textarea{

    resize:vertical;

    min-height:120px;

}

/* =======================================================
   ADD-ONS
======================================================= */

.addons{

    display:grid;

    gap:15px;

    background:#f8fafc;

    border-radius:15px;

    padding:20px;

    border:1px solid #ececec;

}

.addons label{

    display:flex;

    align-items:center;

    gap:12px;

    cursor:pointer;

    color:#444;

    font-weight:500;

}

.addons input[type="checkbox"]{

    width:20px;

    height:20px;

    accent-color:#C9A227;

}

/* =======================================================
   RESERVE BUTTON
======================================================= */

.reserve-btn{

    margin-top:15px;

    padding:18px;

    border:none;

    border-radius:50px;

    background:linear-gradient(135deg,#C9A227,#E7C850);

    color:#fff;

    font-size:18px;

    font-weight:600;

    cursor:pointer;

    transition:.35s;

    box-shadow:0 10px 25px rgba(201,162,39,.35);

}

.reserve-btn:hover{

    transform:translateY(-4px);

    box-shadow:0 18px 35px rgba(201,162,39,.45);

}

/* =======================================================
   BOOKING FORM ANIMATION
======================================================= */

.booking-info,

.booking-form{

    animation:bookingFade .8s ease;

}

@keyframes bookingFade{

    from{

        opacity:0;

        transform:translateY(40px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* =======================================================
   RESPONSIVE
======================================================= */

@media(max-width:1000px){

.booking-container{

    grid-template-columns:minmax(0, 1fr);

}

.booking-info{

    order:2;

}

.booking-form{

    order:1;

}

}

@media(max-width:700px){

.input-group{

    grid-template-columns:minmax(0, 1fr);

}

.booking-form{

    padding:30px;

}

.booking-info{

    padding:30px;

}

.booking-header h2{

    font-size:34px;

}

}
/* =======================================================
   FACILITIES SECTION
======================================================= */

.facilities{
    background:#ffffff;
}

.facility-container{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(220px, 100%),260px));
    justify-content:center;
    gap:30px;
}

.facility-card{
    background:#fff;
    border-radius:20px;
    padding:35px 25px;
    text-align:center;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    transition:.4s;
    border:1px solid #f0f0f0;
    max-width:260px;
    width:100%;
    margin:0 auto;
}

.facility-card:hover{
    transform:translateY(-10px);
    box-shadow:0 20px 40px rgba(0,0,0,.15);
}

.facility-card i{
    font-size:55px;
    color:var(--secondary);
    margin-bottom:20px;
}

.facility-card h3{
    color:var(--primary);
    margin-bottom:12px;
}

.facility-card p{
    color:#666;
    line-height:1.8;
}

@media(max-width:768px){

.facility-container{
    grid-template-columns:repeat(auto-fit,minmax(min(180px, 100%),220px));
    gap:20px;
}

.facility-card{
    max-width:220px;
    padding:26px 18px;
}

.facility-card i{
    font-size:44px;
    margin-bottom:14px;
}

}

@media(max-width:480px){

.facility-container{
    grid-template-columns:repeat(auto-fit,minmax(min(150px, 100%),180px));
    gap:14px;
}

.facility-card{
    max-width:180px;
    padding:20px 14px;
}

.facility-card i{
    font-size:36px;
    margin-bottom:10px;
}

.facility-card h3{
    font-size:15px;
}

.facility-card p{
    font-size:13px;
    line-height:1.5;
}

}

/* =======================================================
   CONTACT SECTION
======================================================= */

.contact{
    background:#f7f9fc;
}

.contact-container{
    display:grid;
    grid-template-columns:minmax(0, 1fr) 1.2fr;
    gap:50px;
    align-items:center;
}

.contact-info h2{
    color:var(--primary);
    font-size:38px;
    margin-bottom:20px;
}

.contact-info p{
    color:#666;
    line-height:1.8;
    margin-bottom:20px;
}

.contact-item{
    display:flex;
    align-items:center;
    gap:15px;
    margin-bottom:18px;
    font-size:17px;
}

.contact-item i{
    width:50px;
    height:50px;
    background:var(--secondary);
    color:#fff;
    display:flex;
    justify-content:center;
    align-items:center;
    border-radius:50%;
}

/* Social Icons */

.social-icons{
    display:flex;
    gap:15px;
    margin-top:35px;
}

.social-icons a{
    width:50px;
    height:50px;
    border-radius:50%;
    background:var(--primary);
    color:#fff;
    display:flex;
    justify-content:center;
    align-items:center;
    font-size:20px;
    transition:.4s;
}

.social-icons a:hover{
    background:var(--secondary);
    transform:translateY(-6px);
}

/* Google Map */

.map iframe{
    width:100%;
    height:420px;
    border:none;
    border-radius:25px;
    box-shadow:0 15px 35px rgba(0,0,0,.12);
}

/* =======================================================
   FOOTER
======================================================= */

footer{
    background:#074218;
    color:#fff;
    padding-top:70px;
}

.footer-content{
    width:90%;  
    margin:auto;
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(250px, 100%),1fr));
    gap:40px;
    padding-bottom:50px;
}

.footer-logo h2{
    color:#13ad37;
    font-size:32px;
    margin-bottom:15px;
}

.footer-logo p{
    color:#ccc;
    line-height:1.8;
}

.footer-links h3,
.footer-contact h3{
    color:#13ad37;
    margin-bottom:20px;
}

.footer-links a{
    display:block;
    color:#ddd;
    margin-bottom:12px;
    transition:.3s;
}

.footer-links a:hover{
    color:#13ad37;
    padding-left:10px;
}

.footer-contact p{
    color:#ddd;
    margin-bottom:12px;
    line-height:1.7;
}

.copyright{
    text-align:center;
    border-top:1px solid rgba(255,255,255,.15);
    padding:25px;
    color:#ccc;
}

/* =======================================================
   SCROLLBAR
======================================================= */

::-webkit-scrollbar{
    width:10px;
}

::-webkit-scrollbar-track{
    background:#eee;
}

::-webkit-scrollbar-thumb{
    background:var(--secondary);
    border-radius:10px;
}

::-webkit-scrollbar-thumb:hover{
    background:#037d40;
}

/* =======================================================
   RESPONSIVE DESIGN
======================================================= */

@media(max-width:992px){

.navbar{
    padding:14px 6%;
}

.nav-toggle{
    display:block;
}

.nav-cta-desktop{
    display:none;
}

.nav-links{
    position:fixed;
    top:0;
    right:0;
    height:100vh;
    width:min(78vw,320px);
    background:#fff;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:0;
    padding:100px 30px 30px;
    box-shadow:-10px 0 40px rgba(0,0,0,.2);
    transform:translateX(100%);
    transition:transform .35s ease;
    z-index:1000;
    overflow-y:auto;
}

.nav-links.open{
    transform:translateX(0);
}

.nav-links li{
    width:100%;
    border-bottom:1px solid #eef2ee;
}

.nav-links li a{
    display:block;
    padding:16px 4px;
    font-size:17px;
}

.nav-links .dropdown-menu{
    position:static;
    width:100%;
    opacity:1;
    visibility:visible;
    transform:none;
    box-shadow:none;
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
    border-radius:0;
}

.nav-links .dropdown.open .dropdown-menu{
    max-height:220px;
}

.nav-links .dropdown-menu a{
    padding:12px 4px 12px 18px;
    border-bottom:none;
}

.nav-links li.nav-mobile-cta{
    display:block;
    border-bottom:none;
    margin-top:20px;
    width:100%;
}

.nav-mobile-cta .book-btn{
    display:block;
    text-align:center;
    width:100%;
}

.nav-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.45);
    z-index:999;
}

.nav-overlay.open{
    display:block;
}

.about-container{
    grid-template-columns:minmax(0, 1fr);
}

.about-info{
    grid-template-columns:minmax(0, 1fr);
}

.contact-container{
    grid-template-columns:minmax(0, 1fr);
}

.map iframe{
    height:350px;
}

}

@media(max-width:768px){

section{
    padding:70px 6%;
}

.hero{
    height:90vh;
}

.hero-buttons{
    flex-direction:column;
    align-items:center;
}

.btn1,
.btn2{
    width:220px;
    text-align:center;
}

.section-title h2{
    font-size:34px;
}

.contact-info h2{
    font-size:30px;
}

.footer-content{
    text-align:center;
}

.footer-links a:hover{
    padding-left:0;
}

}

@media(max-width:480px){

.book-btn{
    padding:12px 24px;
}

.booking-form{
    padding:24px 18px;
    margin:30px auto;
}

.logo h2{
    font-size:24px;
}

.nav-links{
    width:min(85vw,300px);
    padding-left:24px;
    padding-right:24px;
}

.nav-links li a{
    font-size:15px;
}

.section-title h2{
    font-size:28px;
}

.booking-header h2{
    font-size:28px;
}

.contact-info h2{
    font-size:28px;
}

.map iframe{
    height:280px;
}

}

/* =======================================================
   SMOOTH ANIMATION
======================================================= */

html{
    scroll-behavior:smooth;
}

.room-card,
.facility-card,
.info-box,
.booking-form,
.booking-info{
    transition:.4s ease;
}

/* =======================================================
   END OF STYLE.CSS
======================================================= */
/* ======================================
LOGIN DROPDOWN MENU
====================================== */


.dropdown{

    position:relative;

}


.dropdown > a{

    cursor:pointer;

}


.dropdown-menu{

    position:absolute;

    top:40px;

    right:0;

    background:white;

    width:180px;

    border-radius:15px;

    box-shadow:0 15px 35px rgba(0,0,0,.15);

    overflow:hidden;

    opacity:0;

    visibility:hidden;

    transform:translateY(15px);

    transition:.3s;

}


.dropdown-menu a{

    display:block;

    padding:15px 20px;

    color:#333;

    font-weight:500;

}


.dropdown-menu a:hover{

    background:#C9A227;

    color:white;

}


/* SHOW MENU */

.dropdown:hover .dropdown-menu{

    opacity:1;

    visibility:visible;

    transform:translateY(0);

}
/* =================================
   MANAGER DASHBOARD
================================= */


.admin-container{

display:flex;

min-height:100vh;

background:#f5f7fb;

}


.sidebar{

width:270px;

background:#076327;

padding:35px 25px;

color:white;

}


.sidebar h2{

color:#FFD369;

font-size:30px;

margin-bottom:5px;

}


.sidebar p{

color:#ddd;

margin-bottom:35px;

}



.sidebar a{

display:block;

color:white;

padding:15px;

margin-bottom:12px;

border-radius:12px;

transition:.3s;

}



.sidebar a:hover{

background:#C9A227;

transform:translateX(8px);

}





.dashboard{

flex:1;

padding:50px;

}



.dashboard h1{

color:#086140;

}




.dashboard-cards{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(min(220px, 100%),1fr));

gap:25px;

margin-top:40px;

}



.dashboard-card{

background:white;

padding:35px;

border-radius:20px;

box-shadow:
0 15px 35px rgba(0,0,0,.08);

border-left:5px solid #C9A227;

}



.dashboard-card h1{

font-size:45px;

color:#C9A227;

}



.quick-actions{

margin-top:50px;

}



.actions{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(min(200px, 100%),1fr));

gap:20px;

}



.actions a{

background:white;

padding:25px;

border-radius:18px;

text-align:center;

font-weight:600;

color:#0e8149;

box-shadow:
0 10px 25px rgba(0,0,0,.08);

transition:.3s;

}



.actions a:hover{

background:#C9A227;

color:white;

transform:translateY(-8px);

}




@media(max-width:900px){


.admin-container{

flex-direction:column;

}


.sidebar{

width:100%;

}


.dashboard{

padding:25px;

}


}
/* ======================================================
   MANAGER ROOM MANAGEMENT LUXURY DESIGN
====================================================== */


body{

    background:#f4f7fb;
    font-family:'Poppins',sans-serif;

}


/* MAIN DASHBOARD AREA */

.dashboard{

    min-height:100vh;

    padding:50px;

}


/* PAGE TITLE */

.dashboard h1{

    font-size:42px;

    color:#0c6839;

    margin-bottom:10px;

}



.dashboard h1::after{

    content:"";

    display:block;

    width:80px;

    height:5px;

    background:#C9A227;

    margin-top:15px;

    border-radius:10px;

}



/* ADD ROOM BUTTON */

.add-btn{

    display:inline-block;

    margin:30px 0;

    padding:15px 35px;

    background:linear-gradient(
    135deg,
    #C9A227,
    #E8C75A
    );

    color:white;

    border-radius:50px;

    font-weight:600;

    box-shadow:
    0 10px 25px rgba(201,162,39,.35);

    transition:.4s;

}



.add-btn:hover{

    transform:translateY(-5px);

    box-shadow:
    0 15px 35px rgba(201,162,39,.5);

}



/* TABLE CONTAINER */

table{

    width:100%;

    background:white;

    border-collapse:collapse;

    border-radius:25px;

    overflow:hidden;

    box-shadow:
    0 20px 45px rgba(0,0,0,.08);

}



/* TABLE HEADER */

table th{

    background:#035f36;

    color:white;

    padding:22px;

    font-size:15px;

    letter-spacing:1px;

}



/* TABLE BODY */

table td{

    padding:20px;

    text-align:center;

    color:#555;

    border-bottom:1px solid #eee;

}



/* ROW HOVER */

table tr{

    transition:.3s;

}


table tr:hover{

    background:#fff9e8;

    transform:scale(1.01);

}



/* PRICE STYLE */

table td:nth-child(4){

    color:#C9A227;

    font-weight:700;

    font-size:18px;

}



/* STATUS DESIGN */


table td:nth-child(5){

    font-weight:600;

}


table td:nth-child(5){

    color:#16a34a;

}



/* ACTION LINKS */


table td a{


padding:10px 18px;

border-radius:30px;

margin:5px;

display:inline-block;

font-size:14px;

font-weight:600;

transition:.3s;

}



/* EDIT BUTTON */

table td a:first-child{

background:#0a6230;

color:white;

}



table td a:first-child:hover{

background:#096f45;

transform:translateY(-3px);

}



/* DELETE BUTTON */

table td a:last-child{

background:#dc2626;

color:white;

}



table td a:last-child:hover{

background:#078048;

transform:translateY(-3px);

}



/* ======================================================
   ADD / EDIT ROOM FORM
====================================================== */


.booking-form{


max-width:600px;

margin:60px auto;

background:white;

padding:45px;

border-radius:30px;

box-shadow:

0 25px 50px rgba(0,0,0,.1);

}



.booking-form h2{

text-align:center;

font-size:35px;

color:#0A3D62;

margin-bottom:35px;

}



.booking-form input,

.booking-form select{


width:100%;

padding:16px;

margin-bottom:20px;

border-radius:15px;

border:1px solid #ddd;

font-size:16px;

outline:none;

transition:.3s;

background:#fafafa;

}



.booking-form input:focus,

.booking-form select:focus{

border-color:#C9A227;

background:white;

box-shadow:

0 0 10px rgba(201,162,39,.3);

}



/* SAVE BUTTON */


.booking-form button{


width:100%;

padding:17px;

border:none;

border-radius:50px;

background:

linear-gradient(
135deg,
#C9A227,
#E7C850
);


color:white;

font-size:18px;

font-weight:600;

cursor:pointer;

transition:.4s;

}



.booking-form button:hover{


transform:translateY(-5px);


box-shadow:

0 15px 30px rgba(201,162,39,.4);


}



/* ======================================================
   MOBILE DESIGN
====================================================== */


@media(max-width:900px){


.dashboard{

padding:25px;

}


table{

display:block;

overflow-x:auto;

}


.dashboard h1{

font-size:32px;

}



}
/* ============================================
   LUXURY MANAGER ANALYTICS
============================================ */


.dashboard-card span{

color:#777;

font-size:14px;

}



.analytics-box{

margin-top:50px;

display:grid;

grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);

gap:30px;

}



.analytics-box > div,
.recent-box{


background:white;

padding:35px;

border-radius:25px;

box-shadow:

0 15px 35px rgba(0,0,0,.08);


}



.analytics-box h2,
.recent-box h2{


color:#0a623a;

margin-bottom:25px;

}




.progress{


height:20px;

background:#eee;

border-radius:30px;

overflow:hidden;

}



.progress-fill{


height:100%;


background:

linear-gradient(
90deg,
#C9A227,
#E8C75A
);


border-radius:30px;

}



.analytics-box ul{


list-style:none;

}



.analytics-box li{


padding:12px 0;

color:#555;

border-bottom:1px solid #eee;


}




.recent-box{


margin-top:40px;

}




.recent-box table{

margin-top:20px;

}





@media(max-width:900px){


.analytics-box{

grid-template-columns:minmax(0, 1fr);

}


}
/* ======================================
   RECEPTIONIST PANEL
====================================== */


.quick-actions{

margin-top:50px;

}


.actions{

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(min(220px, 100%),1fr));

gap:25px;

}


.actions a{


background:white;

padding:35px;

border-radius:25px;

text-align:center;

font-size:18px;

font-weight:600;

color:#0A3D62;


box-shadow:

0 15px 35px rgba(0,0,0,.08);


transition:.4s;

}



.actions a:hover{


background:#C9A227;

color:white;

transform:

translateY(-8px);


}



/* Reservation Table */


.dashboard table{


margin-top:30px;


}


.dashboard table th{


background:#136a34;


}


.dashboard table td{


padding:18px;


}
/* ======================================
   RECEPTIONIST ROOM STATUS BOARD
====================================== */


.room-container{


display:grid;

grid-template-columns:

repeat(auto-fit,minmax(min(240px, 100%),1fr));


gap:30px;

margin-top:40px;


}




.room-card{


background:white;

padding:30px;

border-radius:25px;


box-shadow:

0 20px 40px rgba(0,0,0,.08);


transition:.4s;

border-top:6px solid #C9A227;


}




.room-card:hover{


transform:translateY(-10px);


}



.room-card h2{


color:#0A3D62;


}



.room-card h3{


color:#555;

}



.room-card p{


color:#777;

}



.room-card span{


display:inline-block;

margin-top:15px;

padding:10px 25px;

border-radius:30px;

font-weight:600;

}




/* AVAILABLE */

.room-card.available{


border-color:#16a34a;

}


.room-card.available span{


background:#dcfce7;

color:#16a34a;


}



/* OCCUPIED */

.room-card.occupied{


border-color:#dc2626;


}


.room-card.occupied span{


background:#fee2e2;

color:#dc2626;


}



/* RESERVED */


.room-card.reserved{


border-color:#eab308;


}


.room-card.reserved span{


background:#fef9c3;

color:#ca8a04;


}
/* ======================================
   BOOKING MANAGEMENT BUTTONS
====================================== */


.status{


padding:8px 18px;

border-radius:30px;

background:#fff3cd;

color:#856404;

font-weight:600;

}




.confirm-btn,
.checkin-btn,
.checkout-btn,
.cancel-btn{


display:inline-block;

padding:8px 15px;

border-radius:30px;

font-size:13px;

margin:3px;

color:white;

font-weight:600;


}




.confirm-btn{

background:#16a34a;

}



.checkin-btn{

background:#2563eb;

}



.checkout-btn{

background:#0f766e;

}



.cancel-btn{

background:#dc2626;

}




.confirm-btn:hover,
.checkin-btn:hover,
.checkout-btn:hover,
.cancel-btn:hover{


transform:translateY(-3px);


}
.status{

padding:8px 15px;

border-radius:25px;

font-weight:600;

}


.status.Completed{

background:#dcfce7;

color:#166534;

}


.status.Checked-in{

background:#dbeafe;

color:#1d4ed8;

}


.status.Confirmed{

background:#fef3c7;

color:#92400e;

}


.status.Cancelled{

background:#fee2e2;

color:#991b1b;

}

.modal{

    position:fixed;

    left:0;

    top:0;

    width:100%;

    height:100%;

    background:rgba(0,0,0,.5);

}

.modal-content{

    background:#fff;

    width:650px;

    max-width:92vw;

    max-height:calc(100vh - 80px);

    overflow-y:auto;

    margin:40px auto;

    padding:25px;

    border-radius:15px;

}

.close{

    float:right;

    font-size:28px;

    cursor:pointer;

}
.booking-details{

    width:100%;
    border-collapse:collapse;

}

.booking-details td{

    padding:12px;
    border-bottom:1px solid #ddd;

}

.booking-details td:first-child{

    font-weight:600;
    width:auto;
    min-width:120px;

}

@media(max-width:600px){

.modal-content{
    width:94vw;
    padding:18px;
    margin:20px auto;
}

}
.room-card.available{

background:#f5fff7;

border:2px solid #32b768;

}

.room-card.occupied{

background:#fff2f2;

border:2px solid #e74c3c;

}
.room-container{

display:grid;

grid-template-columns:repeat(4,1fr);

gap:20px;

}



.room-card{

padding:25px;

border-radius:20px;

cursor:pointer;

transition:.3s;

box-shadow:0 5px 15px rgba(0,0,0,.1);

}



.room-card:hover{

transform:translateY(-5px);

}



.room-card.available{

background:#eaffea;

border-left:6px solid green;

}



.room-card.occupied{

background:#ffeaea;

border-left:6px solid red;

}



.room-card span{

display:inline-block;

padding:8px 15px;

border-radius:20px;

font-weight:bold;

}



.available span{

background:#2ecc71;

color:white;

}



.occupied span{

background:#e74c3c;

color:white;

}



.guest-name{

font-weight:600;

margin-top:15px;

}
.details-card{

background:white;

padding:30px;

border-radius:20px;

width:700px;

box-shadow:0 5px 20px rgba(0,0,0,.15);

}


.details-card h2{

margin-top:25px;

color:#8b6b35;

}


.details-card p{

font-size:16px;

padding:8px;

border-bottom:1px solid #eee;

}
/* ===========================
   MANAGER DASHBOARD CARDS
=========================== */

.summary-cards{

    display:flex;

    gap:20px;

    flex-wrap:wrap;

    margin:30px 0;

}

.summary-card{

    flex:1;

    min-width:220px;

    background:#ffffff;

    border-radius:15px;

    padding:25px;

    text-align:center;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    transition:.3s;

}

.summary-card:hover{

    transform:translateY(-5px);

}

.summary-card h2{

    font-size:34px;

    color:#0d6efd;

    margin-bottom:10px;

}

.summary-card p{

    font-size:16px;

    color:#666;

}
/* ============================= */
/* Discount Eligibility */
/* ============================= */

.discount-box{

    margin-top:15px;

    border:1px solid #e5e5e5;

    border-radius:12px;

    overflow:hidden;

    background:#fff;

}


.discount-option{

    display:flex;

    align-items:center;

    gap:15px;

    padding:18px 20px;

    cursor:pointer;

    transition:.3s;

    border-bottom:1px solid #f1f1f1;

}


.discount-option:last-child{

    border-bottom:none;

}


.discount-option:hover{

    background:#faf7ed;

}


.discount-option span{

    flex:1;

    font-size:15px;

    font-weight:500;

    color:#333;

}


/* Luxury Gold Radio Button */

.discount-option input[type=radio]{

    appearance:none;

    width:22px;

    height:22px;

    border:2px solid #d4af37;

    border-radius:50%;

    cursor:pointer;

    position:relative;

    transition:.3s;

}


.discount-option input[type=radio]:checked{

    background:#d4af37;

}


.discount-option input[type=radio]:checked::after{

    content:"";

    position:absolute;

    width:10px;

    height:10px;

    background:white;

    border-radius:50%;

    top:4px;

    left:4px;

}
#idBox{

    margin-top:20px;

}


#idBox input{

    width:100%;

    padding:14px;

    border:1px solid #ddd;

    border-radius:10px;

    font-size:15px;

    transition:.3s;

}


#idBox input:focus{

    outline:none;

    border-color:#d4af37;

    box-shadow:0 0 8px rgba(212,175,55,.25);

}

.top-header{

display:flex;
justify-content:space-between;
align-items:center;

background:white;

padding:12px 20px;

border-radius:12px;

margin-bottom:20px;

box-shadow:0 5px 15px rgba(0,0,0,0.08);

}


/* Hotel Name */

.hotel-name h2{

font-size:22px;

color:#b8860b;

margin:0;

}


/* User Area */

.user-area{

display:flex;

align-items:center;

gap:10px;

}


/* Profile Picture */

.profile-img{

width:45px !important;

height:45px !important;

max-width:45px !important;

border-radius:50%;

object-fit:cover;

border:2px solid #d4af37;

}


/* User Text */

.user-area h4{

font-size:14px;

margin:0;

color:#333;

}


.user-area span{

font-size:12px;

color:#777;

}



.hotel-name h2{

color:#b8860b;

margin:0;

}



.user-area{

display:flex;

align-items:center;

gap:15px;

}



.profile-img{

width:80px !important;

height:80px !important;

max-width:80px;

border-radius:50%;

object-fit:cover;

display:block;

border:3px solid #d4af37;

}



.user-area h4{

margin:0;

font-size:16px;

}



.user-area span{

font-size:13px;

color:#777;

}

.user-area img.profile-img{

width:80px !important;

height:80px !important;

max-width:none !important;

display:block !important;

visibility:visible !important;

opacity:1 !important;

object-fit:cover !important;

}
.user-area img.profile-img{

width:45px !important;

height:45px !important;

display:block !important;

object-fit:cover !important;

border-radius:50% !important;

}

.confirmed{

background:#fff3cd;
color:#856404;

padding:8px 15px;
border-radius:20px;

}


.checkedin{

background:#d4edda;
color:#155724;

padding:8px 15px;
border-radius:20px;

}


.checkedout{

background:#d1ecf1;
color:#0c5460;

padding:8px 15px;
border-radius:20px;

}


.cancelled{

background:#f8d7da;
color:#721c24;

padding:8px 15px;
border-radius:20px;

}
.user-profile{

display:flex;

align-items:center;

gap:15px;

}


.profile-img{

width:60px;

height:60px;

border-radius:50%;

object-fit:cover;

border:3px solid #d4af37;

}
.user-header{

display:flex;

align-items:center;

gap:20px;

margin-bottom:20px;

}



.profile-img{

width:80px;

height:80px;

border-radius:50%;

object-fit:cover;

border:3px solid #d4af37;

}

/* ============================= */
/* RECEPTIONIST HEADER */
/* ============================= */

.user-header{

    display:flex;
    justify-content:space-between;
    align-items:center;

    background:#ffffff;

    padding:30px;

    border-radius:18px;

    box-shadow:0 10px 25px rgba(0,0,0,.08);

    margin-bottom:30px;

}

.welcome-text h1{

    font-size:30px;

    color:#1e293b;

    margin-bottom:8px;

}

.welcome-text h2{

    font-size:22px;

    color:#D4AF37;

    margin-bottom:5px;

}

.welcome-text p{

    color:#64748b;

    font-size:15px;

}

.profile-img{

    width:80px;

    height:80px;

    border-radius:50%;

    object-fit:cover;

    border:4px solid #D4AF37;

}

/* ============================= */
/* DASHBOARD STATISTICS */
/* ============================= */

.stats-grid{

    display:flex;

    gap:20px;

    justify-content:space-between;

    align-items:stretch;

    margin:30px 0;

    flex-wrap:wrap;

}

.stat-card{

    flex:1;

    min-width:220px;

    background:#fff;

    border-radius:16px;

    padding:25px;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    transition:.3s;

}
.stat-card:hover{

    transform:translateY(-5px);

}

.stat-card h3{

    color:#64748b;

    font-size:15px;

    margin-bottom:12px;

}

.stat-card h1{

    font-size:40px;

    font-weight:700;

}

.available-card{

    border-left:6px solid #22c55e;

}

.occupied-card{

    border-left:6px solid #ef4444;

}

.reserved-card{

    border-left:6px solid #f59e0b;

}

.total-card{

    border-left:6px solid #3b82f6;

}
.section-heading{

    font-size:28px;

    margin-bottom:5px;

    color:#1e293b;

}

.section-subtitle{

    color:#64748b;

    margin-bottom:25px;

}

/* ===================================== */
/* RECEPTIONIST ROOM CARDS */
/* ===================================== */

.room-container{

    display:grid;

    grid-template-columns:repeat(auto-fill,minmax(min(280px, 100%),1fr));

    gap:25px;

    margin-top:25px;

}

.room-card{

    background:#ffffff;

    border-radius:18px;

    padding:22px;

    cursor:pointer;

    transition:.3s;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    border-top:6px solid #D4AF37;

}

.room-card:hover{

    transform:translateY(-8px);

    box-shadow:0 15px 35px rgba(0,0,0,.15);

}

.room-card h2{

    color:#1e293b;

    font-size:24px;

    margin-bottom:10px;

}

.room-card h3{

    color:#D4AF37;

    margin-bottom:15px;

}

.room-card p{

    color:#475569;

    margin:8px 0;

    line-height:1.6;

}
.room-card span{

    display:inline-block;

    margin-top:15px;

    padding:8px 18px;

    border-radius:30px;

    color:#fff;

    font-weight:600;

}

.room-card.available span{

    background:#22c55e;

}

.room-card.occupied span{

    background:#ef4444;

}

.room-card.reserved span{

    background:#f59e0b;

}
/* ==========================================
   FIX RECEPTIONIST / MANAGER DASHBOARD LAYOUT
========================================== */


.admin-container{

display:flex;

min-height:100vh;

width:100%;

overflow-x:hidden;

}



/* SIDEBAR FIX */

.sidebar{

width:270px;

min-width:270px;

height:100vh;

position:fixed;

left:0;

top:0;

overflow-y:auto;

z-index:100;

}



/* MAIN CONTENT FIX */

.admin-container .dashboard{

margin-left:270px;

width:calc(100% - 270px);

padding:40px;

overflow:hidden;

}



/* ROOM MONITOR FIX */

.admin-container .room-container{

width:100%;

display:grid;

grid-template-columns:
repeat(auto-fit,minmax(min(260px, 100%),1fr));

gap:25px;

}



/* ROOM CARD FIX */

.admin-container .room-card{

width:100%;

min-width:0;

box-sizing:border-box;

overflow:hidden;

}



/* PREVENT CONTENT GOING OUTSIDE */

.admin-container *{

max-width:100%;

}



/* MOBILE */

@media(max-width:900px){


.sidebar{

position:relative;

width:100%;

height:auto;

}


.admin-container{

display:block;

}


.admin-container .dashboard{

margin-left:0;

width:100%;

padding:25px;

}


}
/* ==========================================
   FIX RECEPTIONIST / MANAGER DASHBOARD LAYOUT
========================================== */


.admin-container{

    display:flex;
    min-height:100vh;
    width:100%;
    overflow-x:hidden;

}


/* SIDEBAR FIX */

.sidebar{

    width:270px;
    min-width:270px;
    height:100vh;
    position:fixed;
    left:0;
    top:0;
    overflow-y:auto;

}


/* MAIN CONTENT FIX
   Scoped to .admin-container .dashboard only - this used to be a bare
   .dashboard rule, which also matched the customer dashboard/mybookings/
   notifications/view_rooms pages (they use <div class="dashboard"> with
   NO sidebar at all). That pushed their content 270px to the right and
   shrank it on every screen size, including desktop. */

.admin-container .dashboard{

    margin-left:270px;

    width:calc(100% - 270px);

    min-height:100vh;

    padding:40px;

    overflow:hidden;

}

.dashboard{

    min-height:100vh;

    padding:40px;

}



/* ROOM GRID FIX */

.room-container{

    width:100%;

    display:grid;

    grid-template-columns:
    repeat(auto-fit,minmax(min(250px, 100%),1fr));

    gap:25px;

}



/* ROOM CARD FIX */

.room-card{

    width:100%;

    min-width:0;

}



/* HEADER FIX */

.user-header{

    width:100%;

}



/* MOBILE */

@media(max-width:900px){


.sidebar{

    position:relative;

    width:100%;

    min-width:100%;

    height:auto;

}


.dashboard{

    margin-left:0;

    width:100%;

    padding:25px;

}


.admin-container{

    flex-direction:column;

}


}
/* ==========================================================
   ROOM DESCRIPTION MODAL (homepage index.php)
   Green & gold - image left, details right
========================================================== */

.modal-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(13,43,20,.6);
    z-index:2000;
    align-items:center;
    justify-content:center;
    padding:20px;
}

.modal-overlay.show{
    display:flex;
}

.modal-box{
    background:#fff;
    border-radius:20px;
    padding:28px;
    width:100%;
    max-width:440px;
    position:relative;
    box-shadow:0 25px 60px rgba(0,0,0,.35);
    animation:modalIn .25s ease;
}

@keyframes modalIn{
    from{ transform:translateY(20px); opacity:0; }
    to{ transform:translateY(0); opacity:1; }
}

.modal-close{
    position:absolute;
    top:14px;
    right:14px;
    border:none;
    background:#f2f7f2;
    width:34px;
    height:34px;
    border-radius:50%;
    font-size:18px;
    line-height:1;
    cursor:pointer;
    color:#1b5e20;
    z-index:10;
    transition:.2s;
}

.modal-close:hover{
    background:#fdecea;
    color:#c62828;
}

.modal-box h3{
    color:#123a1c;
    margin:0;
    font-size:19px;
    border-bottom:2px solid #d4af37;
    padding-bottom:12px;
    padding-right:40px;
}

.desc-modal-box{
    max-width:780px;
    padding:0;
    overflow:hidden;
}

.desc-modal-body{
    display:flex;
    align-items:stretch;
}

.desc-modal-img-wrap{
    position:relative;
    flex:0 0 44%;
    min-height:300px;
    background:#e8f5e9;
}

.desc-modal-img-wrap img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.desc-modal-price{
    position:absolute;
    bottom:14px;
    left:14px;
    background:linear-gradient(45deg,#027434,#d4af37);
    color:#fff;
    font-size:19px;
    font-weight:700;
    padding:8px 16px;
    border-radius:30px;
    box-shadow:0 8px 18px rgba(0,0,0,.3);
}

.desc-modal-price small{
    font-size:11.5px;
    font-weight:400;
    opacity:.9;
}

.desc-modal-content{
    flex:1;
    padding:26px 28px;
    display:flex;
    flex-direction:column;
    gap:16px;
}

.desc-modal-capacity{
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 16px;
    border-radius:30px;
    background:#e8f5e9;
    color:#1b5e20;
    font-size:13px;
    font-weight:600;
}

.desc-modal-capacity i{
    color:#b8860b;
}

.desc-modal-text{
    margin:0;
    color:#374151;
    font-size:14px;
    line-height:1.75;
}

.desc-modal-book{
    margin-top:auto;
    display:block;
    text-align:center;
    padding:13px;
    border-radius:12px;
    background:linear-gradient(90deg,#1b5e20,#2e7d32);
    color:#fff;
    text-decoration:none;
    font-weight:600;
    font-size:14px;
    transition:.25s;
}

.desc-modal-book:hover{
    background:linear-gradient(90deg,#b8860b,#d4af37);
    color:#14260f;
}

.desc-modal-book i{
    margin-right:6px;
}

@media(max-width:640px){

    .desc-modal-body{
        flex-direction:column;
    }

    .desc-modal-img-wrap{
        flex:none;
        min-height:200px;
    }

    .desc-modal-content{
        padding:20px;
    }

}

/* =====================================
   "I'M NOT A ROBOT" HUMAN CHECK
   (customer registration / verification)
===================================== */

.human-check{
    margin:16px 0;
}

.human-check-row{
    display:flex;
    align-items:center;
    gap:14px;
    padding:14px 16px;
    border-radius:12px;
    border:1.5px solid #dfe7e0;
    background:#fbfdfb;
    cursor:pointer;
    user-select:none;
    transition:border-color .2s, background .2s;
}

.human-check-row:hover{ border-color:var(--primary); }

.human-check-row:focus{
    outline:none;
    box-shadow:0 0 0 2px var(--primary);
}

.human-check.verified .human-check-row{
    background:#eaf6ec;
    border-color:var(--primary);
    cursor:default;
}

.hc-box{
    width:26px;
    height:26px;
    border-radius:7px;
    border:2px solid #c3cec4;
    background:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    transition:border-color .2s, background .2s;
}

.hc-box svg{
    width:16px;
    height:16px;
    fill:none;
    stroke:#fff;
    stroke-width:3;
    stroke-linecap:round;
    stroke-linejoin:round;
    opacity:0;
    transform:scale(.5);
    transition:opacity .18s ease .05s, transform .18s ease .05s;
}

.human-check.verified .hc-box{
    border-color:var(--dark);
    background:var(--dark);
}

.human-check.verified .hc-box svg{
    opacity:1;
    transform:scale(1);
}

.hc-spinner{
    display:none;
    width:26px;
    height:26px;
    border-radius:50%;
    border:2.5px solid #dbe6dc;
    border-top-color:var(--primary);
    flex-shrink:0;
    animation:hc-spin .7s linear infinite;
}

.human-check.checking .hc-spinner{ display:block; }
.human-check.checking .hc-box{ display:none; }

@keyframes hc-spin{ to{ transform:rotate(360deg); } }

.hc-text{ flex:1; }

.hc-title{
    display:block;
    font-size:14.5px;
    font-weight:700;
    color:var(--dark);
}

.hc-sub{
    display:block;
    font-size:12px;
    color:#5b6b5c;
    margin-top:1px;
}

.hc-error{
    margin-top:8px;
    color:#c0392b;
    font-size:13px;
    display:none;
}

/* =====================================
   VERIFICATION SUCCESS POPUP
===================================== */

.success-popup{
    position:fixed;
    inset:0;
    background:rgba(3,15,7,.55);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    z-index:9999;
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
}

.success-popup.show{
    opacity:1;
    pointer-events:auto;
}

.success-popup-card{
    background:#fff;
    border-radius:22px;
    padding:36px 30px 28px;
    text-align:center;
    width:100%;
    max-width:320px;
    box-shadow:0 30px 60px -20px rgba(0,0,0,.5);
    transform:translateY(10px) scale(.97);
    transition:transform .25s cubic-bezier(.2,.8,.2,1);
}

.success-popup.show .success-popup-card{
    transform:translateY(0) scale(1);
}

.success-popup-icon{
    width:78px;
    height:78px;
    border-radius:50%;
    border:3px solid #1b5e20;
    margin:0 auto 20px;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
}

.success-popup-icon::before{
    content:"";
    position:absolute;
    inset:-14px;
    border-radius:50%;
    background:radial-gradient(circle, #e9f6ea 0%, transparent 70%);
    z-index:-1;
}

.success-popup-icon svg{
    width:36px;
    height:36px;
}

.success-popup-icon path{
    stroke:#1b5e20;
    stroke-width:3;
    fill:none;
    stroke-linecap:round;
    stroke-linejoin:round;
    stroke-dasharray:40;
    stroke-dashoffset:40;
    animation:success-draw .4s ease forwards .15s;
}

@keyframes success-draw{ to{ stroke-dashoffset:0; } }

.success-popup-msg{
    font-size:17px;
    font-weight:700;
    line-height:1.4;
    margin:0 0 22px;
    color:#1F2937;
}

.success-popup-ok{
    min-width:130px;
    padding:11px 34px;
    border:none;
    border-radius:999px;
    background:linear-gradient(90deg,#1b5e20,#d4af37);
    color:#fff;
    font-weight:700;
    font-size:14.5px;
    font-family:inherit;
    cursor:pointer;
}

.success-popup-ok:hover{
    box-shadow:0 8px 20px rgba(212,175,55,.45);
}

/* =====================================
   CUSTOMER REGISTER / EMAIL VERIFY PAGE
   (.login-box) - scoped to this page only
===================================== */

.login-box{
    max-width:440px;
    margin:60px auto;
    background:var(--white);
    border-radius:22px;
    box-shadow:var(--shadow);
    padding:40px 34px 34px;
}

.login-box h2{
    color:var(--dark);
    font-size:24px;
    font-weight:700;
    margin-bottom:10px;
    text-align:center;
}

.login-box > p{
    color:#5b6b5c;
    font-size:14px;
    line-height:1.5;
    text-align:center;
    margin-bottom:22px;
}

.login-box p[style*="color:red"]{
    background:#fdecea;
    color:#c0392b !important;
    border:1px solid #f3c6c0;
    border-radius:10px;
    padding:10px 14px;
    font-size:13.5px;
    text-align:left;
    margin-bottom:18px;
}

.login-box form{
    display:flex;
    flex-direction:column;
    gap:14px;
}

.login-box input[type="text"],
.login-box input[type="email"],
.login-box input[type="password"]{
    width:100%;
    padding:13px 15px;
    border:1.5px solid #dfe7e0;
    border-radius:11px;
    font-size:14.5px;
    font-family:inherit;
    color:var(--dark);
    background:#fbfdfb;
    outline:none;
    transition:border-color .15s ease, background .15s ease;
}

.login-box input[type="text"]:focus,
.login-box input[type="email"]:focus,
.login-box input[type="password"]:focus{
    border-color:var(--primary);
    background:#fff;
}

.login-box button{
    padding:13px 16px;
    border:none;
    border-radius:12px;
    background:linear-gradient(135deg,#049e4c,#E7C850);
    color:#fff;
    font-size:15px;
    font-weight:700;
    font-family:inherit;
    cursor:pointer;
    transition:transform .15s ease, opacity .15s ease;
}

.login-box button:hover{
    transform:translateY(-2px);
}

.login-box button[name="resend"]{
    background:transparent !important;
    color:var(--primary) !important;
    border:1.5px solid var(--primary) !important;
}

.login-box button[name="resend"]:hover{
    background:var(--primary) !important;
    color:#fff !important;
}

.login-box > p:last-of-type{
    text-align:center;
    margin-top:22px;
    font-size:13.5px;
    color:#5b6b5c;
}

.login-box > p:last-of-type a{
    color:var(--primary);
    font-weight:600;
}

.login-box > p:last-of-type a:hover{
    text-decoration:underline;
}

@media(max-width:500px){

    .login-box{
        max-width:92%;
        margin:30px auto;
        padding:30px 22px 26px;
    }

}

/* =======================================================
   INTERIOR PAGE BANNER (About / Rooms / Facilities / Contact)
======================================================= */

.page-banner{
    position:relative;
    min-height:380px;
    padding:170px 8% 80px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:#fff;
    background:
        linear-gradient(rgba(3,88,34,.80), rgba(3,88,34,.72)),
        var(--banner-img, url('images/hotel.jpg')) center/cover no-repeat;
}

.page-banner-content h4{
    color:var(--secondary);
    letter-spacing:3px;
    font-size:15px;
    margin-bottom:14px;
    text-transform:uppercase;
}

.page-banner-content h1{
    font-size:48px;
    font-weight:700;
    letter-spacing:1px;
    margin-bottom:16px;
    text-shadow:0 4px 20px rgba(0,0,0,.25);
}

.breadcrumb{
    font-size:15px;
    letter-spacing:.5px;
    color:rgba(255,255,255,.85);
}

.breadcrumb a{
    color:#fff;
    transition:.3s;
}

.breadcrumb a:hover{
    color:var(--secondary);
}

.breadcrumb .sep{
    margin:0 10px;
    color:rgba(255,255,255,.55);
}

.breadcrumb .current{
    color:var(--secondary);
    font-weight:600;
}

@media(max-width:768px){

    .page-banner{
        min-height:300px;
        padding:140px 6% 60px;
    }

    .page-banner-content h1{
        font-size:32px;
    }

}

/* Active nav link (current page) */
.nav-links li > a.active{
    color:var(--secondary);
    font-weight:700;
}

/* =======================================================
   HOMEPAGE - EXPLORE / QUICK ACCESS SECTION
======================================================= */

.explore{
    background:var(--light);
}

.explore-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(min(240px, 100%),1fr));
    gap:30px;
    max-width:1200px;
    margin:0 auto;
}

.explore-card{
    display:block;
    background:#fff;
    border-radius:20px;
    padding:45px 30px;
    text-align:center;
    box-shadow:0 10px 30px rgba(0,0,0,.08);
    transition:.4s;
    color:var(--dark);
    border:1px solid rgba(0,0,0,.04);
}

.explore-card:hover{
    transform:translateY(-10px);
    box-shadow:0 20px 40px rgba(0,0,0,.12);
}

.explore-card i{
    font-size:42px;
    color:var(--secondary);
    margin-bottom:20px;
}

.explore-card h3{
    color:var(--primary);
    font-size:22px;
    margin-bottom:12px;
}

.explore-card p{
    color:#666666;
    line-height:1.7;
    margin-bottom:20px;
    font-size:15px;
}

.explore-link{
    color:var(--primary);
    font-weight:600;
    font-size:14px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    transition:.3s;
}

.explore-card:hover .explore-link{
    color:var(--secondary);
    gap:12px;
}

@media(max-width:480px){

    .explore-card{
        padding:35px 22px;
    }

}
