/* =========================================
   CA SMART STAYCATION
   EMERALD + GOLD LUXURY THEME
========================================= */

:root {
    --emerald-dark: #063b32;
    --emerald: #0b5d4d;
    --emerald-light: #167563;

    --gold-dark: #9b7428;
    --gold: #c9a44c;
    --gold-light: #ead79c;

    --cream: #f8f4e9;
    --white: #ffffff;

    --text-dark: #18332d;
    --text-light: #6b746f;

    --border: #ded7c5;

    --shadow:
        0 12px 35px
        rgba(6, 59, 50, 0.12);
}

/* =========================================
   RESET
========================================= */

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

html {
    scroll-behavior: smooth;
}

body {
    background:
        linear-gradient(
            180deg,
            #f7f3e8,
            #eef3ee
        
    
        );

    color: var(--text-dark);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    line-height: 1.6;

    
}

/* =========================================
   HEADER
========================================= */

.header{
    position: fixed;
    top: 0;
    left: 0;

    width: 100%;
    height: 80px;

    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 0 60px;

    background: rgba(6,59,50,.55);

    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);

    border-bottom: 1px solid rgba(234,215,156,.35);

    transition: .35s ease;

    z-index: 9999;
}

.logo-area {
    display: flex;

    align-items: center;

    gap: 15px;
}

.logo-icon{

    width:58px;
    height:58px;

    display:flex;
    justify-content:center;
    align-items:center;

    border-radius:50%;

    background:linear-gradient(
        135deg,
        #d9bf73,
        #b88d35
    );

    color:#063b32;

    font-weight:bold;

    font-size:22px;

    box-shadow:
        0 8px 20px rgba(0,0,0,.25);
}

.logo-area h1{

    color:white;

    font-size:30px;

    font-weight:500;

    letter-spacing:.5px;
}

.logo-area p {
    color:
        var(--gold-light);

    font-family:
        Arial,
        sans-serif;

    font-size: 11px;

    letter-spacing: 1.5px;

    text-transform: uppercase;

    margin-top: 5px;
}

.header-button {
    display: inline-block;

    padding:
        11px
        20px;

    border:
        1px solid
        var(--gold-light);

    border-radius: 4px;

    color:
        var(--gold-light);

    text-decoration: none;

    font-family:
        Arial,
        sans-serif;

    font-size: 13px;

    font-weight: bold;

    letter-spacing: 0.7px;

    transition:
        0.25s ease;
}

.header-button:hover{

    background:#ead79c;

    transform:translateY(-2px);

    box-shadow:0 10px 20px rgba(0,0,0,.20);
}

.header.scrolled {
    background: rgba(4, 45, 37, 0.95);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.35);

    transition: all 0.3s ease;
}

/* =========================================
   HERO
========================================= */

.hero {
    position: relative;
    position: relative;
    overflow: hidden;

    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: flex-start;

    padding-top: 90px;

    

    color: #fff;
    overflow: hidden;
}



/* Smooth fade into booking section */
.hero {
    position: relative;

    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: flex-start;

    padding-top: 90px;

    

    color: #fff;
    overflow: hidden;
}

/* Smooth fade into booking section */
.hero::after{
    content:"";
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    height:60px;
    background:linear-gradient(
        to bottom,
        rgba(248,246,242,0),
        rgba(248,246,242,1)
    );
}

.hero-overlay {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;

    display: flex;
    justify-content: flex-start;
    align-items: center;

    padding: 0 80px;
}

.hero-content {
    max-width: 700px;      /* wider */
    width: 100%;

    padding: 25px 40px;    /* less height, more width */

    background: rgba(10, 30, 20, .25);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;

    border: 1px solid rgba(255,255,255,.18);
    border-radius: 20px;

    box-shadow: 0 15px 35px rgba(0,0,0,.25);
}

.hero-content{
    transform: translateX(0px) translateY(-50px);
}



.eyebrow {
    color:
        var(--gold-light);

    font-family:
        Arial,
        sans-serif;

    font-size: 12px;

    font-weight: bold;

    letter-spacing: 4px;

    margin-bottom: 20px;
}

.hero h2 {
    font-size:
        clamp(
            42px,
            6vw,
            76px
        );

    line-height: 1.08;

    font-weight: normal;

    text-shadow:
        0 4px 18px
        rgba(0, 0, 0, 0.30);
}

.hero-description {
    max-width: 580px;

    margin:
        25px 0
        35px;

    color:
        #f2f0e9;

    font-family:
        Arial,
        sans-serif;

    font-size:
        clamp(
            15px,
            2vw,
            18px
        );
}

.gold-button {
    display: inline-block;

    padding:
        15px
        28px;

    background:
        linear-gradient(
            135deg,
            var(--gold-light),
            var(--gold)
        );

    color:
        var(--emerald-dark);

    border-radius: 4px;

    text-decoration: none;

    font-family:
        Arial,
        sans-serif;

    font-size: 14px;

    font-weight: bold;

    letter-spacing: 1px;

    box-shadow:
        0 8px 25px
        rgba(0, 0, 0, 0.25);

    transition:
        0.25s ease;
}

.gold-button:hover {
    transform:
        translateY(-3px);

    box-shadow:
        0 12px 30px
        rgba(0, 0, 0, 0.35);
}
.hero::before{
    content: "";
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            rgba(0,0,0,.25),
            rgba(0,0,0,.25)
        ),
        url("../images/luxury-room-4.png");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    animation: heroZoom 25s ease-in-out infinite alternate;

    z-index: 0;
}

.hero > *{
    position: relative;
    z-index: 2;
}

/* =========================================
   BOOKING CONTAINER
========================================= */

.booking-container{
    position: relative;

    width:min(1120px,95%);

    margin: -90px auto 70px;

    padding: 60px;

    background: rgba(255,255,255,.96);

    border-radius: 24px;

    box-shadow: 0 25px 60px rgba(0,0,0,.15);

    z-index: 20;
}

.booking-heading {
    text-align: center;

    max-width: 700px;

    margin:
        0 auto
        45px;
}

.section-label {
    color:
        var(--gold-dark);

    font-family:
        Arial,
        sans-serif;

    font-size: 11px;

    font-weight: bold;

    letter-spacing: 4px;

    margin-bottom: 12px;
}

.booking-heading h2 {
    color:
        var(--emerald-dark);

    font-size:
        clamp(
            35px,
            5vw,
            52px
        );

    font-weight: normal;

    line-height: 1.1;

    margin-bottom: 15px;
}

.booking-heading p {
    color:
        var(--text-light);

    font-family:
        Arial,
        sans-serif;

    font-size: 15px;
}

/* =========================================
   FORM CARD
========================================= */

.form-card {

    background: white;

    border-radius: 18px;

    border: none;

    padding: 35px;

    margin-bottom: 30px;

    box-shadow:
        0 15px 35px rgba(0,0,0,.08);
}

.form-card{

    transition:.3s;
}

.form-card:hover{

    transform:translateY(-4px);

    box-shadow:
        0 22px 50px rgba(0,0,0,.12);
}

.step-title {
    display: flex;

    align-items: center;

    gap: 17px;

    padding-bottom: 22px;

    margin-bottom: 25px;

    border-bottom:
        1px solid
        #e9e3d5;
}

.step-title > span {
    width: 44px;

    height: 44px;

    flex-shrink: 0;

    display: flex;

    justify-content: center;

    align-items: center;

    border-radius: 50%;

    background:
        linear-gradient(
            135deg,
            var(--emerald),
            var(--emerald-dark)
        );

    color:
        var(--gold-light);

    border:
        2px solid
        var(--gold);

    font-family:
        Arial,
        sans-serif;

    font-size: 17px;

    font-weight: bold;
}

.step-title h3 {
    color:
        var(--emerald-dark);

    font-size:
        clamp(
            21px,
            3vw,
            27px
        );

    font-weight: normal;

    line-height: 1.2;
}

.step-title p {
    color:
        var(--text-light);

    font-family:
        Arial,
        sans-serif;

    font-size: 13px;

    margin-top: 4px;
}

/* =========================================
   FORM GRID
========================================= */

.form-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap:
        20px
        25px;
}

.form-group {
    min-width: 0;
}

.full-width {
    grid-column:
        1 / -1;
}

.form-group label {
    display: block;

    color:
        var(--emerald-dark);

    font-family:
        Arial,
        sans-serif;

    font-size: 13px;

    font-weight: bold;

    margin-bottom: 7px;
}

.form-group label small {
    color:
        var(--text-light);

    font-weight: normal;
}

/* =========================================
   INPUTS
========================================= */

input,
select,
textarea{

    width:100%;

    padding:16px;

    border:1px solid #ddd;

    border-radius:10px;

    background:#fff;

    transition:.25s;

    font-size:15px;
}

input:focus,
select:focus,
textarea:focus{

    border-color:#c9a44c;

    box-shadow:0 0 0 4px rgba(201,164,76,.15);

    outline:none;
}

input:focus,
select:focus,
textarea:focus {
    border-color:
        var(--gold);

    background:
        white;

    box-shadow:
        0 0 0 4px
        rgba(
            201,
            164,
            76,
            0.15
        );
}

textarea {
    resize: vertical;

    min-height: 110px;
}

/* =========================================
   FILE UPLOAD
========================================= */

.upload-box {
    border:
        2px dashed
        #b9a66c;

    border-radius: 10px;

    background:
        linear-gradient(
            135deg,
            #fffdf5,
            #f6f0df
        );

    padding:
        40px
        20px;

    text-align: center;
}

.upload-box label {
    display: flex;

    flex-direction: column;

    align-items: center;

    cursor: pointer;
}

.upload-icon {
    width: 60px;

    height: 60px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 50%;

    background:
        var(--emerald-dark);

    font-size: 27px;

    margin-bottom: 13px;
}

.upload-box strong {
    color:
        var(--emerald-dark);

    font-size: 18px;
}

.upload-box small {
    color:
        var(--text-light);

    font-family:
        Arial,
        sans-serif;

    margin-top: 5px;
}

.upload-box input {
    display: none;
}

#governmentIdName {
    margin-top: 18px;

    color:
        var(--gold-dark);

    font-family:
        Arial,
        sans-serif;

    font-size: 13px;

    font-weight: bold;

    overflow-wrap: anywhere;
}

/* =========================================
   BOOKING SUMMARY
========================================= */

.summary-box {
    min-height: 100px;

    padding: 22px;

    border-left:
        5px solid
        var(--gold);

    border-radius: 8px;

    background:
        linear-gradient(
            135deg,
            #f2f7f3,
            #fbf7eb
        );

    color:
        var(--text-light);

    font-family:
        Arial,
        sans-serif;
}

/* =========================================
   ACTION
========================================= */

.form-action {
    text-align: center;

    padding:
        25px
        10px;
}

.continue-button {
    border: none;

    border-radius: 5px;

    padding:
        16px
        30px;

    min-width:
        min(
            360px,
            100%
        );

    background:
        linear-gradient(
            135deg,
            var(--emerald),
            var(--emerald-dark)
        );

    color:
        var(--gold-light);

    font-family:
        Arial,
        sans-serif;

    font-size: 15px;

    font-weight: bold;

    letter-spacing: 0.7px;

    cursor: pointer;

    border:
        1px solid
        var(--gold);

    box-shadow:
        0 8px 22px
        rgba(
            6,
            59,
            50,
            0.20
        );

    transition:
        0.25s ease;
}

.continue-button span {
    margin-left: 12px;

    font-size: 20px;
}

.continue-button:hover {
    transform:
        translateY(-3px);

    background:
        linear-gradient(
            135deg,
            var(--emerald-light),
            var(--emerald-dark)
        );
}

.form-action p {
    max-width: 580px;

    margin:
        15px auto 0;

    color:
        var(--text-light);

    font-family:
        Arial,
        sans-serif;

    font-size: 12px;
}

/* =========================================
   FOOTER
========================================= */

footer {
    padding:
        45px
        clamp(
            20px,
            6vw,
            90px
        );

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 30px;

    background:
        var(--emerald-dark);

    border-top:
        3px solid
        var(--gold);

    color:
        #e7e8e4;
}

footer h3 {
    color:
        var(--gold-light);

    font-size: 22px;

    font-weight: normal;
}

footer p {
    color:
        #cbd4d0;

    font-family:
        Arial,
        sans-serif;

    font-size: 12px;

    margin-top: 5px;
}

/* =========================================
   TABLET
========================================= */

@media (
    max-width: 850px
) {

    .header {
        padding:
            15px
            20px;
    }

    .hero {
        min-height: 480px;
    }

    .hero-content {
        padding:
            60px
            30px;
    }

    .form-grid {
        grid-template-columns:
            1fr;
    }

    .full-width {
        grid-column:
            auto;
    }

}

/* =========================================
   MOBILE
========================================= */

@media (
    max-width: 600px
) {

    .header {
        flex-direction: column;

        align-items:
            flex-start;
    }

    .header-button {
        width: 100%;

        text-align: center;
    }

    .logo-area {
        align-items:
            flex-start;
    }

    .logo-icon {
        width: 45px;

        height: 45px;

        font-size: 15px;
    }

    .hero {
        min-height: 470px;

        background-position:
            58% center;
    }

    .hero-overlay {
        padding:
            55px
            22px;
    }

    .eyebrow {
        letter-spacing: 2.5px;

        font-size: 10px;
    }

    .hero h2 {
        font-size: 42px;
    }

    .booking-container {
        width:
            calc(
                100% - 20px
            );

        margin:
            45px auto;
    }

    .form-card {
        padding:
            22px
            16px;
    }

    .step-title {
        align-items:
            flex-start;
    }

    .step-title > span {
        width: 39px;

        height: 39px;
    }

    footer {
        flex-direction: column;

        align-items:
            flex-start;
    }

}

/* =========================================
   LUXURY LANDING PAGE OVERLAY
========================================= */




/* =========================================
   KEEP BOOKING CONTENT CLEAR
========================================= */

.booking-container {
    width: min(1120px, calc(100% - 30px));

    margin: 70px auto;

    padding-bottom: 30px;

    background: rgba(255, 250, 240, 0.96);

    border: 1px solid #c9a34e;

    border-radius: 16px;

    box-shadow: 0 18px 45px rgba(0,0,0,.35);
}




/* =========================================
   FADE-UP ANIMATION
========================================= */

.fade-up{
    opacity:0;
    transform:translateY(40px);
    transition:
        opacity .8s ease,
        transform .8s ease;
}

.fade-up.show{
    opacity:1;
    transform:translateY(0);
}

.booking-calendar-card{

    display:block;

    width:100%;

    background:#fff;

    border-radius:18px;

    padding:25px;

    border:1px solid #ddd;

    box-shadow:0 10px 30px rgba(0,0,0,.08);

}

.calendar-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:20px;

}

.calendar-header h3{

    color:var(--emerald-dark);

    font-size:22px;

}

.calendar-header button{

    width:42px;

    height:42px;

    border:none;

    border-radius:50%;

    background:var(--emerald);

    color:#fff;

    cursor:pointer;

}

.calendar-weekdays{

    display:grid;

    grid-template-columns:repeat(7,1fr);

    text-align:center;

    font-weight:bold;

    margin-bottom:10px;

}

.calendar-grid{
    display:grid;
    grid-template-columns:repeat(7,1fr);
    gap:8px;
    min-height:340px;
}

.calendar-day{

    width:100%;

    aspect-ratio:1 / 1;

    min-height:42px;

}

.calendar-day:hover{
    background:#eef7f4;
}

.calendar-day.empty{
    border:none;
    background:transparent;
    cursor:default;
}

.calendar-day.disabled{
    color:#bbb;
    background:#f5f5f5;
    cursor:not-allowed;
}

.calendar-day.booked{
    background:#d9534f;
    color:#fff;
    cursor:not-allowed;
    opacity:.75;
    position:relative;
}

.calendar-day.booked::after{
    content:"Booked";
    display:block;
    font-size:9px;
    font-weight:600;
    margin-top:2px;
}

.calendar-day.booked:hover{
    background:#d9534f;
}

.calendar-day.checkin,
.calendar-day.checkout{

    background: var(--emerald-dark);

    color:#fff;

    font-weight:bold;

    border-radius:50%;

    width:44px;
    height:44px;

    margin:auto;

    display:flex;
    justify-content:center;
    align-items:center;

}

.calendar-day.selected-range{
    background:#d9f2ec;
}

.calendar-day.selected{
    background:var(--gold);
    color:#fff;
    font-weight:700;
}

.calendar-day.today{
    border:2px solid var(--gold);
}

#calendarGrid{
    display:grid;
}

#calendarTitle{
    text-align:center;
    flex:1;
}

.summary-box{
    background:#fff;
    border-radius:15px;
    padding:20px;
    box-shadow:0 5px 15px rgba(0,0,0,.08);
}

.summary-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:12px 0;
    font-size:16px;
}

.total-row{
    font-size:20px;
    font-weight:bold;
    color:#0c6b58;
}

.summary-box hr{
    margin:15px 0;
}

.vehicle-note{

    background:#f8f4e9;

    border-left:5px solid var(--gold);

    padding:15px 18px;

    margin:15px 0 25px;

    border-radius:8px;

}

.vehicle-note strong{

    color:var(--emerald-dark);

    display:block;

    margin-bottom:8px;

    font-size:16px;

}

.vehicle-note p{

    margin:8px 0;

    color:var(--text-light);

    font-family:Arial, sans-serif;

    font-size:14px;

    line-height:1.6;

}

/* =====================================================
   RESPONSIVE FIX
   (Paste at the very bottom of style.css)
===================================================== */

/* Large tablets */
@media (max-width: 1200px){

    .booking-container{
        width:95%;
        padding:35px;
    }

    .hero-overlay{
        padding:0 35px;
    }

}


/* Tablets */
@media (max-width:900px){

    .header{
        padding:15px 20px;
        height:auto;
        flex-wrap:wrap;
        gap:15px;
    }

    .hero{
        min-height:auto;
        padding-top:120px;
    }

    .hero-overlay{
        padding:25px;
    }

    .hero-content{
        max-width:100%;
        transform:none;
    }

    .booking-container{
        width:96%;
        margin:40px auto;
        padding:25px;
    }

    .form-grid{
        grid-template-columns:1fr;
    }

    .booking-calendar-card{
        padding:18px;
    }

}


/* Phones */
@media (max-width:768px){

    body{
        overflow-x:hidden;
    }

    .booking-container{
        width:100%;
        margin:20px 0;
        border-radius:0;
        padding:18px;
    }

    .hero-content{
        padding:25px;
    }

    .hero h2{
        font-size:34px;
    }

    .logo-area h1{
        font-size:22px;
    }

    .calendar-header h3{
        font-size:24px;
    }

    .calendar-grid{

        grid-template-columns:repeat(7,minmax(38px,1fr));

        gap:5px;

    }

    .calendar-day{

        font-size:14px;

        min-height:42px;

    }

    .calendar-day.booked::after{

        font-size:8px;

    }

    .summary-row{

        font-size:14px;

    }

    .continue-button{

        width:100%;

        min-width:0;

    }

}


/* Small phones */
@media (max-width:480px){

    .booking-container{

        padding:15px;

    }

    .calendar-header{

        margin-bottom:10px;

    }

    .calendar-header button{

        width:38px;
        height:38px;

    }

    .calendar-grid{

        gap:3px;

    }

    .calendar-day{

        min-height:36px;

        font-size:12px;

        border-radius:8px;

    }

    .calendar-day.booked::after{

        display:none;

    }

    .step-title{

        flex-direction:column;

        align-items:flex-start;

    }

    .summary-row{

        font-size:13px;

    }

    .header-button{

        width:100%;

        text-align:center;

    }

}

/* =========================================
   STAY SCHEDULE
========================================= */

.booking-time-note{

    margin-top:25px;

    padding:18px;

    background:#fff8eb;

    border-left:5px solid #c9a44c;

    border-radius:10px;

    font-size:14px;

    line-height:1.7;

    color:#555;

}

.booking-time-note strong{

    color:#0b5d4d;

}

.booking-time-note p{

    margin-top:10px;

}