/* =============================================
   wedding-responsive.css
   Responsive styles for the wedding page
   ============================================= */

/* ---- 1200px ---- */
@media (max-width: 1200px) {
    .wedding-pricing-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .wedding-venues-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .wedding-getstarted__row {
        gap: 40px;
    }

    .wedding-tour-strip__steps {
        gap: 0;
    }
}

/* ---- 980px ---- */
@media (max-width: 980px) {

    /* Header/Menu Fixes */
    #tag1:not(.menu-bar-in) #close-menu {
        display: none !important;
    }

    /* Banner */
    .wedding-banner__content {
        padding: 0 20px !important;
        width: 100% !important;
    }

    .wedding-banner__content h1 {
        font-size: 26px !important;
        line-height: 1.2 !important;
        letter-spacing: 1px !important;
        margin: 0 auto !important;
        text-align: center !important;
    }

    /* Intro */
    .wedding-intro {
        padding: 18px 8px !important;
    }

    .wedding-intro__title {
        font-size: 32px !important;
        line-height: 1.2 !important;
        margin-top: 10px !important;
    }

    .wedding-intro__subtitle {
        font-size: 12px !important;
        letter-spacing: 2px !important;
        margin-top: 1rem !important;
    }

    .wedding-section-title {
        font-size: 28px !important;
        line-height: 2.3 !important;
    }

    /* Availability */
    .wedding-availability__title {
        font-size: 40px !important;
        line-height: 1.2 !important;
        margin-bottom: 15px !important;
    }

    /* Form */
    .ready-form__title {
        font-size: 32px;
        line-height: 1.2;
        margin-bottom: 25px;
    }

    /* Get Started */
    .wedding-getstarted {
        padding: 0;
    }

    .wedding-getstarted__row {
        flex-direction: column;
    }

    /* 
    .wedding-getstarted__left {
        padding: 60px 20px;
    } */

    .wedding-getstarted__right {
        width: 100%;
    }

    .wedding-getstarted__img-wrap img {
        height: 400px;
        min-height: auto;
    }

    .wedding-getstarted__title {
        font-size: 32px !important;
        line-height: 1.2 !important;
    }

    /* Availability & Calendar */
    .wedding-availability {
        padding: 60px 20px;
    }

    .wedding-calendar-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 40px;
    }

    .wedding-calendar-container {
        padding: 30px 20px;
    }


    /* Investment */
    .wedding-investment {
        padding: 60px 20px;
    }

    .wedding-inclusions__nav {
        flex-wrap: wrap;
        gap: 4px;
        border-bottom: none;
    }

    .wedding-inc-tab {
        border: 1.5px solid #4a6741;
        border-radius: 40px;
        margin-bottom: 6px;
        padding: 10px 20px;
    }

    .wedding-inc-tab.active {
        background: #4a6741;
        color: #fff;
        border-color: #4a6741;
        border-bottom-color: #4a6741;
    }

    .wedding-inc-panel__row {
        flex-direction: column;
        gap: 30px;
    }

    .wedding-inc-panel__text {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .wedding-inc-panel__img img {
        height: 300px;
    }

    /* Tour strip */
    .wedding-tour-strip {
        padding: 50px 20px;
    }

    .wedding-tour-strip__inner {
        flex-direction: column;
        text-align: center;
        gap: 30px;
    }

    .wedding-tour-strip__steps {
        justify-content: center;
    }

    .wedding-tour-strip__divider {
        display: none;
    }

    .wedding-tour-strip__step {
        padding: 10px 16px;
    }

    /* What's Next */
    .wedding-whatsnext {
        padding: 60px 20px;
    }

    .wedding-whatsnext__row {
        flex-direction: column;
        gap: 36px;
    }

    .wedding-whatsnext__img {
        flex: 0 0 100%;
        max-width: 100%;
    }

    .wedding-whatsnext__img img {
        height: 360px;
    }

    .wedding-whatsnext__text .wedding-section-title {
        font-size: 28px;
    }

    .wedding-all-inclusive {
        padding: 80px 20px !important;
        background-attachment: scroll !important;
        /* Better performance on mobile */
    }

    .all-inclusive-title {
        font-size: 32px !important;
        line-height: 70px;
    }

    .wedding-all-inclusive__content {
        padding: 0px 5px;
    }

    /* Venues grid */
    .wedding-venues-section {
        padding: 60px 20px;
    }

    .wedding-venues-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px;
    }

    /* Sticky btn */
    .sticky-check-btn {
        right: -48px;
        font-size: 10px;
        padding: 8px 18px;
    }


    .wedding-getstarted__left {
        flex: 1;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0px 38px;
    }


    .wedding-getstarted__img-wrap {
        width: 100%;
        margin-top: 3rem;
        height: 100%;
    }

    /* Details Tabs */
    .wedding-details-tabs {
        padding: 60px 20px !important;
    }

    .details-tab.active::after {
        width: 100%;
    }

    .details-row {
        flex-direction: column !important;
        gap: 40px !important;
    }

    .details-text,
    .details-image {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        text-align: center !important;
    }

    .details-list {
        text-align: left !important;
        display: inline-block !important;
        margin: 0 auto !important;
    }

    .details-image img {
        height: 350px !important;
        width: 100% !important;
        object-fit: cover !important;
        border-radius: 12px !important;
    }

}

/* ---- 768px ---- */
@media (max-width: 768px) {


    /* Tabs */
    .wedding-details__nav {
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 10px !important;
    }

    .details-tab {
        font-size: 11px !important;
        padding: 10px 15px !important;
        width: 100% !important;
        max-width: 280px !important;
        text-align: center !important;
    }

    .wedding-intro__title {
        font-size: 28px !important;
        line-height: 1.2 !important;
        margin-bottom: 5px !important;
    }

    .view-next-btn,
    .schedule-now-btn,
    .wedding-investment__btn {
        display: block !important;
        width: 100% !important;
        max-width: 300px !important;
        margin: 20px auto 0 !important;
        text-align: center !important;
    }

    .details-footer,
    .whatsnext-footer,
    .wedding-investment__footer {
        text-align: center !important;
    }

    .wedding-section-title {
        font-size: 28px;
    }

    .wedding-availability__title {
        font-size: 36px !important;
        line-height: 1.2 !important;
    }

    .ready-form__title {
        font-size: 28px;
        line-height: 1.2;
    }

    .wedding-intro__links {
        gap: 8px;
    }

    .wedding-pill-btn {
        font-size: 11px;
        padding: 8px 16px;
    }

    .wedding-pricing-grid {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .wedding-venues-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .wedding-venue-card__img-wrap {
        height: 260px;
    }
}

/* ---- 540px ---- */
@media (max-width: 540px) {




    .investment-card {
        padding: 0px 0px;
    }

    /* Intro */
    .wedding-intro {
        padding: 40px 15px 30px;
    }

    .wedding-intro__title {
        font-size: 24px !important;
        line-height: 2.3 !important;
    }

    .wedding-intro__subtitle {
        font-size: 11px;
        letter-spacing: 3px;
    }

    .wedding-section-title {
        font-size: 26px;
        line-height: 1.2;
    }

    .wedding-availability__title {
        font-size: 30px !important;
        line-height: 1.2 !important;
    }

    .wedding-availability__subtitle {
        font-size: 11px;
        letter-spacing: 3px;
    }

    .wedding-pricing-grid {
        grid-template-columns: 1fr !important;
        gap: 20px !important;
    }

    .wedding-section-sub {
        font-size: 11px !important;
    }

    /* Get Started */
    .wedding-getstarted {
        padding: 50px 15px;
    }

    .wedding-getstarted__title {
        font-size: 24px !important;
        line-height: 1.2 !important;
    }

    .wedding-getstarted__img-wrap img {
        height: 100%;
    }

    .wedding-getstarted__bullets p {
        font-size: 14px;
    }

    .wedding-investment__title {
        font-size: 34px;
        line-height: 86px;
    }

    /* Availability & Calendar */
    .wedding-availability {
        padding: 50px 15px;
    }

    .wedding-calendar-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .wedding-calendar-nav {
        flex-direction: column;
        align-items: center;
        gap: 15px;
        padding-left: 0;
    }

    .wedding-calendar-container {
        padding: 30px 15px;
    }


    .wedding-availability__note {
        padding: 18px 18px;
    }

    .wedding-availability__actions-wrap {
        margin-top: 50px;
        flex-direction: column !important;
        align-items: center !important;
        gap: 20px !important;
    }

    .wedding-availability__actions-wrap>i {
        display: none !important;
    }

    .availability-line {
        display: none !important;
        /* Hide the line on mobile for a cleaner look */
    }

    .wedding-tour-line-btn {
        width: 100% !important;
        justify-content: center !important;
        max-width: 320px !important;
    }


    /* Investment */
    .wedding-investment {
        padding: 50px 0px;
    }

    .wedding-investment__lead {
        font-size: 15px;
    }

    .wedding-inclusions__nav {
        justify-content: center;
    }

    .wedding-inc-tab {
        padding: 8px 14px;
        font-size: 11px;
    }

    .wedding-inc-panel {
        padding: 30px 0 0;
    }

    .details-title {
        font-size: 26px !important;
        line-height: 2.2 !important;
        margin-bottom: 20px !important;
    }

    .details-image img {
        height: 260px !important;
    }

    .wedding-inc-panel__text h3 {
        font-size: 22px;
    }

    .wedding-inc-list li {
        font-size: 14px;
    }

    .wedding-inc-panel__img img {
        height: 240px;
    }

    /* Tour strip */
    .wedding-tour-strip {
        padding: 40px 15px;
    }

    .wedding-tour-strip__steps {
        flex-direction: column;
        gap: 18px;
    }

    .step-number {
        font-size: 22px;
    }

    .step-label {
        font-size: 10px;
    }

    /* What's Next */
    .wedding-whatsnext {
        padding: 50px 15px;
    }

    .wedding-whatsnext__img img {
        height: 260px;
    }

    .wedding-whatsnext__text .wedding-section-title {
        font-size: 22px;
    }

    .wedding-whatsnext__text p {
        font-size: 14px;
    }

    .wedding-whatsnext__list li a {
        font-size: 12px;
    }

    /* Venues */
    .wedding-venues-section {
        padding: 50px 15px;
    }

    .wedding-venues-grid {
        grid-template-columns: 1fr;
        margin-top: 30px;
    }

    .wedding-venue-card__title {
        font-size: 18px;
    }

    /* Sticky hide on very small — optional */
    .sticky-check-btn {
        display: none;
    }
}


@media (max-width: 991px) {
    .whatsnext-title {
        font-size: 38px;
        line-height: 5rem;
    }
}

/* ---- 360px ---- */
@media (max-width: 360px) {


    .wedding-intro__title {
        font-size: 22px;
    }

    .wedding-section-title {
        font-size: 22px;
    }

    .wedding-availability__title {
        font-size: 28px;
        line-height: 1.2;
    }

    .ready-form__title {
        font-size: 26px;
        line-height: 2.5;
    }

    .wedding-tour-line-btn span {
        font-size: 11px;
    }

    .wedding-pill-btn {
        font-size: 10px;
        padding: 7px 12px;
    }
}

/* ---- Extra fixes for overlapping radio buttons and small inputs ---- */
@media (max-width: 480px) {
    .radio-group.horizontal {
        flex-direction: column !important;
        gap: 15px !important;
        align-items: flex-start !important;
    }

    .ready-form__col {
        margin-bottom: 30px;
    }

    .form-note {
        font-size: 12px;
        margin-bottom: 20px;
    }

    .group-label {
        margin-bottom: 10px !important;
    }

    .ready-form input[type="text"],
    .ready-form input[type="email"],
    .ready-form input[type="tel"],
    .ready-form input[type="number"],
    .ready-form select,
    .ready-form textarea {
        padding: 12px 15px;
    }
}