/* ============================================================
   RESPONSIVE CSS – Mountain View RV Resort
   Breakpoints:
   1441px+   Large desktop
   ≤1366px   Desktop / laptop
   ≤1200px   Small laptop
   ≤1024px   Tablet landscape
   ≤991px    Tablet portrait
   ≤767px    Mobile
   ≤480px    Small mobile
   ≤360px    Very small mobile
   ============================================================ */

/* ── Large desktop (1441px+) ─────────────────────────────── */
@media only screen and (min-width: 1441px) {
    .container { max-width: 1320px; margin: 0 auto; }
    .hook-listing-section .listing-grid { max-width: 1320px; }
    .listing-search-wrap { max-width: 1000px; }
    .hook-details .details-wrap { gap: 50px; }
    .hook-cart .summary { width: 320px; }
}

/* ── Desktop / laptop (≤1366px) ─────────────────────────── */
@media only screen and (max-width: 1366px) {
    /* Listing */
    .hook-listing-section .listing-grid { max-width: 100%; padding: 0 20px; }
    .hook-listing-section .filters { max-width: 260px; }

    /* Details */
    .hook-details .details-wrap { gap: 30px; }
    .hook-details .sidebar-box { padding: 20px; }

    /* Checkout */
    .hook-checkout .checkout-right { min-width: 260px; }
}

/* ── Small laptop (≤1200px) ─────────────────────────────── */
@media only screen and (max-width: 1200px) {
    /* Listing */
    .hook-listing-section .site-image { width: 200px; flex: 0 0 200px; }
    .hook-listing-section .new-price,
    .hook-listing-section .total-price { font-size: 24px; }
    .hook-listing-section .filters { max-width: 240px; padding: 40px 20px 40px 0; }
    .listing-search-wrap { max-width: 100%; }
    .listing-search-bar .input-group { flex: 0 0 25%; max-width: 25%; }

    /* Details */
    .hook-details .details-card { padding: 20px; }
    .hook-details .details-wrap { gap: 24px; }
    .hook-details .sidebar { min-width: 280px; }

    /* Checkout */
    .hook-checkout .checkout-container { gap: 20px; }
    .hook-checkout .checkout-right { min-width: 240px; }

    /* Addon */
    .hook-addon .addons-grid { grid-template-columns: repeat(3, 1fr); }

    /* Order Details */
    .order-details-grid { gap: 24px; }
}

/* ── Tablet landscape (≤1024px) ─────────────────────────── */
@media only screen and (max-width: 1024px) {
    /* Order Details */
    .order-details-grid { grid-template-columns: 1fr; }
    .od-info-grid { grid-template-columns: repeat(2, 1fr); }

    /* Details */
    .hook-details .details-wrap { flex-direction: column; }
    .hook-details .sidebar { position: static; padding-top: 0; width: 100%; }
    .onscroll .hook-details .sidebar { padding-top: 0; }
    .hook-details .gallery img { width: 32%; height: 140px; }
    .hook-details .capacity-list { grid-template-columns: repeat(2, 1fr); }
    .site-map { max-width: 100%; }

    /* Checkout */
    .hook-checkout .checkout-container { flex-direction: column; }
    .hook-checkout .checkout-right { position: static; width: 100%; min-width: 0; }
    .onscroll .hook-checkout .checkout-right { top: 0; }
    .cc-row { gap: 12px; }

    /* Cart */
    .hook-cart .cart-item { flex-direction: column; }
    .hook-cart .summary { position: static; width: 100%; margin-top: 0; }
    .hook-cart .item-price-breakdown { min-width: 150px; }

    /* Addon */
    .hook-addon .addons-grid { grid-template-columns: repeat(2, 1fr); }
    .hook-addon .cart-summary { flex-direction: column; gap: 15px; align-items: flex-start; }

    /* Listing */
    .hook-listing-section .listing-grid .site-map { width: 100%; }
    .hook-listing-section .listing-grid .filters { max-width: 100%; border-right: none; border-bottom: 1px solid #e6e5e5; padding: 30px 0; display: flex; flex-wrap: wrap; gap: 15px; }
    .hook-listing-section .listing-grid .filter-group { flex: 1; min-width: 200px; margin-top: 0; }
    .hook-listing-section .filters { max-width: 100%; border-right: none; border-bottom: 1px solid #e6e5e5; padding: 30px 0; display: flex; flex-wrap: wrap; gap: 15px; }
    .hook-listing-section .filter-header { flex: 0 0 100%; }
    .hook-listing-section .filter-group { flex: 1; min-width: 200px; margin-top: 0; }
    .hook-listing-section .search-filter-view-map { margin-bottom: 0; flex: 0 0 100%; }
    .hook-listing-section .sites { padding: 30px 0; }
    .hook-listing-section .site-card { min-height: auto; }
    .hook-listing-section .site-image { width: 200px; flex: 0 0 200px; }
    .hook-listing-section .site-price { min-width: 130px; }
    .hook-listing-section .new-price,
    .hook-listing-section .total-price { font-size: 22px; }
    .hook-listing-section .price-wrap { justify-content: flex-end; flex-wrap: wrap; }
    .hook-listing-section .search-results-promoted-filters-content { flex-wrap: wrap; }
    .hook-listing-section .search-results-promoted-filters-item { width: 33.333%; }

    /* Listing Banner */
    .hook-listing-banner { padding: 60px 20px 40px; }
    .hook-listing-banner .heading { font-size: 26px; }
    .hook-listing-banner p { font-size: 16px; margin: 5px 0 15px; }
    .listing-search-bar { flex-wrap: wrap; gap: 0; padding: 12px; margin: 0 0 15px; }
    .listing-search-bar .input-group { flex: 0 0 50%; max-width: 50%; padding: 5px; }
    .listing-search-bar .button-wrap.input-group { flex: 0 0 100%; max-width: 100%; padding: 5px; }
    .listing-search-bar button { font-size: 15px; padding: 10px; }
    .listing-search-bar .input-wrapper input { font-size: 13px; }
    .listing-search-bar .input-group label { font-size: 12px; }

    /* Equipment filter */
    .upper_filter.equipment_lenght_filter { flex-wrap: wrap; gap: 15px; }
    .equipment_lenght_filter select#rvFilterTypes { width: 180px; }
    .equipment_lenght_filter input#rvFilterLength { width: 100px; }
}

/* ── Tablet portrait (≤991px) ───────────────────────────── */
@media only screen and (max-width: 991px) {
    /* Select Date */
    .page-select-date .container { max-width: 100%; padding: 0 20px; }
    .page-select-date .card { padding: 30px 20px; }
    .page-select-date .card .heading { font-size: 28px; }

    /* Listing */
    .hook-listing-banner { padding: 80px 20px 40px; }
    .hook-listing-section .listing-grid { flex-direction: column; }
    .hook-listing-section .filters { max-width: 100%; border-right: none; border-bottom: 1px solid #e6e5e5; padding: 20px 0; }
    .hook-listing-section .sites { padding: 20px 0; }
    .hook-listing-section .site-card { min-height: auto; }

    /* Details */
    .hook-details { padding: 60px 0; }
    .hook-details .heading { font-size: 26px; }
    .hook-details .details-card { padding: 18px; }
    #sync1 .item img { height: 280px; }
    #sync2 .item img { height: 65px; }
    .hook-details .details-loaction-site-details-item { flex-direction: column; gap: 12px; }
    .hook-details .details-loaction-site-details-item .site-number { text-align: left; width: 100%; }
    .hook-details .details-loaction-site-details-item .site-number button { width: 100%; }

    /* Cart */
    .hook-cart { padding: 40px 0; }
    .hook-cart .cart-box { padding: 18px; }
    .hook-cart .item-info { flex-direction: column; gap: 20px; }
    .hook-cart .item-text-wrap { width: 100%; }
    .hook-cart .item-price-breakdown { min-width: 0; width: 100%; text-align: left; border-top: 1px dashed #eee; padding-top: 15px; }
    .hook-cart .item-price-breakdown .item-price-row { justify-content: space-between; }

    /* Checkout */
    .hook-checkout { padding: 40px 0; }
    .hook-checkout .checkout-grid-box { padding: 20px; }

    /* Addon */
    .hook-addon { padding: 60px 0; }
    .hook-addon .heading { font-size: 28px; }
    .hook-addon .subheading { height: auto; margin-bottom: 10px; }

    /* Order Details */
    .order-details-grid { gap: 20px; }
    .od-card { padding: 20px; }
    .od-info-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }

    /* Login */
    .hook-login { padding: 30px 0 60px; }
    .form-section .heading { font-size: 28px; }

    /* SMS toggle */
    .sms-optin-section { margin: 10px 0; }
    .sms-promo-toggle { flex-direction: column; gap: 8px; }
}

/* ── Mobile (≤767px) ────────────────────────────────────── */
@media only screen and (max-width: 767px) {
    /* Order Details */
    .order-details-grid { grid-template-columns: 1fr; gap: 20px; }
    .order-details-left { display: flex; flex-direction: column; gap: 20px; width: 100%; }
    .od-info-grid { grid-template-columns: 1fr; gap: 15px; }
    .order-header h1 { font-size: 24px; }
    .hook-cart.od-card .item-info { gap: 20px; }
    .od-card { padding: 20px; }
    .hook-cart.od-card { padding: 0; }
    .hook-cart.od-card .card-title { padding: 20px 20px 0 20px; }
    .hook-cart.od-card .cart-box { padding: 5px 20px 20px 20px; }
    .hook-cart.od-card .item-price-breakdown { width: 100%; min-width: unset; text-align: left; border-top: 1px dashed #eee; padding-top: 15px; }
    .hook-cart.od-card .item-price-row { justify-content: space-between; display: flex; }
    .hook-cart.od-card .item-price { margin-bottom: 5px; }
    .order-header { padding-bottom: 30px; }
    .order-header h1 { font-size: 22px; }
    .conf-number { font-size: 14px; padding: 8px 15px; }

    /* Login */
    .page-select-date .date-inputs { flex-direction: column; }
    .hook-login .row { flex-direction: column-reverse; }
    .hook-login .row .col-sm-6 { flex: 0 0 100%; max-width: 100%; }
    .page-login .form-section { margin: 0 15px; }
    .section.hook-login .et_pb_row_0.et_pb_row { margin-right: 0px !important; }
    .skip-btn { margin: 0 30px 0 0; }

    /* Select Date */
    .page-select-date .date-inputs { flex-direction: column; gap: 12px; }
    .page-select-date .card { padding: 24px 16px; }
    .page-select-date .card .heading { font-size: 26px; }
    .page-select-date .subtitle { font-size: 15px; }

    /* Details */
    .hook-details { padding: 50px 0; }
    .hook-details .details-wrap { flex-direction: column; }
    .hook-details .heading { font-size: 24px; }
    .hook-details .subheading { font-size: 18px; }
    .hook-details .sidebar { position: static; padding-top: 0; width: 100%; }
    .onscroll .hook-details .sidebar { padding-top: 0; }
    .hook-details .gallery { flex-wrap: wrap; }
    .hook-details .gallery img { width: 48%; height: 120px; }
    .hook-details .capacity-list { grid-template-columns: 1fr; }
    .hook-details .details-loaction-site-details-item { flex-direction: column; gap: 15px; }
    .hook-details .details-loaction-site-details-item .site-number { text-align: left; width: 100%; }
    .hook-details .details-loaction-site-details-item .site-number button { width: 100%; }
    .hook-details .maxlength-list-wrap { flex-direction: column; gap: 5px; }
    .hook-details .details-loaction-site-title-wrap { flex-wrap: wrap; }
    .site-map { max-width: 100%; }
    #sync1 .item img { height: 250px; }
    #sync2 .item img { height: 60px; }
    .hook-details .form-field-price .summary { padding: 12px; }
    .hook-details .lock-site-section { margin-top: 10px; }

    /* Checkout */
    .hook-checkout { padding: 30px 0; }
    .hook-checkout .heading { font-size: 24px; }
    .hook-checkout .checkout-container { flex-direction: column; }
    .hook-checkout .checkout-right { position: static; width: 100%; min-width: 0; }
    .onscroll .hook-checkout .checkout-right { top: 0; }
    .hook-checkout .checkout-grid-box { padding: 18px; }
    .cc-row { flex-direction: column; gap: 0; }
    .hook-checkout .order-summary li { flex-direction: row; justify-content: space-between; gap: 10px; align-items: flex-start; }
    .hook-checkout .order-summary li span:first-child { flex: 1; }
    .hook-checkout .order-summary li span:last-child { font-weight: 700; white-space: nowrap; }
    .sms-optin-section { padding: 12px; border-radius: 8px; }
    .sms-header { flex-direction: column; gap: 8px; }
    .sms-phone-field label { font-size: 13px; }
    .sms-promo-toggle { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 8px; }

    /* Cart */
    .hook-cart { padding: 30px 0; }
    .hook-cart .heading { font-size: 24px; }
    .hook-cart .cart-item { flex-direction: column; }
    .hook-cart .cart-box { padding: 16px; }
    .hook-cart .summary { position: static; width: 100%; min-width: 0; margin-top: 0; }
    .hook-cart .item-info { flex-direction: column; }
    .hook-cart .item-text-wrap { flex-direction: column; }
    .hook-cart .item-info img { width: 100%; height: 180px; border-radius: 8px; }
    .hook-cart .item-price-breakdown { min-width: 0; width: 100%; text-align: left; }
    .hook-cart .item-price-breakdown .item-price-row { justify-content: space-between; }
    .hook-cart .group-booking { flex-direction: column; gap: 12px; align-items: flex-start; }

    /* Addon */
    .hook-addon { padding: 50px 0; }
    .hook-addon .heading { font-size: 24px; }
    .hook-addon .addons-grid { grid-template-columns: 1fr; }
    .hook-addon .cart-summary { flex-direction: column; gap: 15px; align-items: flex-start; }
    .hook-addon .subheading { height: auto; margin-bottom: 10px; }

    /* Listing */
    .hook-listing-section .listing-grid { flex-direction: column; gap: 0; }
    .hook-listing-section .filters { padding: 15px; background: #f9f9f9; border-radius: 8px; margin-bottom: 20px; }
    .hook-listing-section .filter-group { margin-bottom: 15px; }
    .hook-listing-section .site-card { flex-direction: column; padding: 0; overflow: hidden; border-radius: 12px; margin-bottom: 20px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
    .hook-listing-section .site-image { width: 100%; height: 200px; flex: none; }
    .hook-listing-section .site-image img { border-radius: 12px 12px 0 0; }
    .hook-listing-section .site-info { padding: 15px; }
    .hook-listing-section .site-price { position: static; text-align: left; margin-top: 10px; padding: 10px 15px; border-top: 1px solid #eee; width: 100%; }
    .hook-listing-section .price-wrap { justify-content: space-between; width: 100%; }
    .hook-listing-section .search-results-promoted-filters-content { flex-wrap: wrap; }
    .hook-listing-section .search-results-promoted-filters-item { width: 50%; }

    /* Listing Banner */
    .hook-listing-banner { padding: 50px 15px 30px; }
    .hook-listing-banner .heading { font-size: 22px; }
    .hook-listing-banner p { font-size: 14px; margin: 5px 0 15px; }
    .listing-search-bar { flex-direction: column; padding: 12px; margin: 0 0 15px; }
    .listing-search-bar .input-group { flex: 0 0 100%; max-width: 100%; padding: 4px 0; margin-bottom: 0; }
    .listing-search-bar .button-wrap.input-group { padding: 4px 0; }
    .listing-search-bar button { font-size: 15px; padding: 10px; }
    .listing-search-bar .input-wrapper input { font-size: 13px; }
    .listing-search-bar .input-group label { font-size: 12px; }
    .guest-display { font-size: 13px; }

    /* Equipment filter */
    .upper_filter.equipment_lenght_filter { flex-wrap: wrap; gap: 10px; margin-top: 25px; }
    .equipment_lenght_filter select#rvFilterTypes,
    .equipment_lenght_filter input#rvFilterLength { width: 140px; }
    .equipment_lenght_filter_item_btn button { padding: 0 5px; min-width: unset; }

    /* Tooltip wraps */
    .tooltip-content { min-width: 200px; max-width: 260px; }
}

/* ── Small mobile (≤480px) ──────────────────────────────── */
@media only screen and (max-width: 480px) {
    /* Select Date */
    .page-select-date .card { padding: 20px 14px; border-radius: 10px; }
    .page-select-date .card .heading { font-size: 22px; }
    .page-select-date .subtitle { font-size: 14px; margin-bottom: 20px; }
    .page-select-date .next-btn { font-size: 16px; padding: 11px; }

    /* Listing Banner */
    .hook-listing-banner { padding: 40px 12px 24px; }
    .hook-listing-banner .heading { font-size: 20px; }
    .hook-listing-banner p { font-size: 13px; }
    .listing-search-bar { padding: 10px; }
    .listing-search-bar button { font-size: 14px; padding: 10px; }
    .listing-search-wrap { padding: 0 5px; }

    /* Listing cards */
    .hook-listing-section .site-image { height: 180px; }
    .hook-listing-section .site-details h3 { font-size: 16px; }
    .hook-listing-section .new-price,
    .hook-listing-section .total-price { font-size: 20px; }
    .hook-listing-section .search-results-promoted-filters-item { width: 100%; }

    /* Details */
    .hook-details { padding: 36px 0; }
    .hook-details .heading { font-size: 20px; }
    .hook-details .subheading { font-size: 16px; }
    .hook-details .gallery img { width: 100%; height: 160px; }
    #sync1 .item img { height: 200px; }
    #sync2 .item img { height: 50px; }
    .hook-details .sidebar-box { padding: 16px; }
    .hook-details .price-card .price { font-size: 22px; }
    .hook-details .details-card { padding: 14px; }
    .hook-details .form-field-price .summary p { font-size: 13px; }
    .hook-details .lock-site-text { font-size: 13px; }

    /* Cart */
    .hook-cart { padding: 24px 0; }
    .hook-cart .heading { font-size: 20px; }
    .hook-cart .cart-box { padding: 14px; }
    .hook-cart .item-info img { height: 160px; }
    .hook-cart .item-text h3 { font-size: 14px; }
    .hook-cart .summary { padding: 16px; }
    .hook-cart .subheading { font-size: 16px; }
    .hook-cart .checkout-btn { font-size: 14px; padding: 12px; }
    .hook-cart .group-booking { padding: 14px; font-size: 13px; }
    .hook-cart .continue-btn { font-size: 13px; padding: 8px 14px; }

    /* Checkout */
    .hook-checkout { padding: 24px 0; }
    .hook-checkout .heading { font-size: 20px; }
    .hook-checkout .checkout-grid-box { padding: 14px; border-radius: 10px; }
    .hook-checkout .btn { font-size: 14px; padding: 11px 18px; }
    .hook-checkout .order-summary { padding: 16px; }
    .hook-checkout .order-summary .subheading { font-size: 15px; }
    .hook-checkout .guest-info label { font-size: 12px; }
    .hook-checkout .guest-info label input,
    .hook-checkout .guest-info label select,
    .hook-checkout .guest-info label textarea { font-size: 13px; padding: 9px 10px; }
    .sms-optin-section { padding: 10px; }
    .sms-header-text strong { font-size: 13px; }
    .sms-header-text p { font-size: 12px; }

    /* Addon */
    .hook-addon { padding: 36px 0; }
    .hook-addon .heading { font-size: 20px; }
    .hook-addon .addon-card img { max-height: 180px; }
    .hook-addon .cart-summary { padding: 12px; }
    .hook-addon .cart-info h3 { font-size: 16px; }
    .hook-addon .review-cart-btn { font-size: 13px; padding: 9px 14px; }
    .hook-addon .add-btn { font-size: 13px; padding: 10px; }

    /* Order Details */
    .od-card { padding: 16px; border-radius: 10px; }
    .order-header h1 { font-size: 20px; }
    .order-header p { font-size: 13px; }
    .conf-number { font-size: 13px; padding: 6px 12px; }
    .od-info-grid { gap: 12px; }
    .od-summary-list li { flex-direction: row; justify-content: space-between; }
    .od-payment-box { flex-direction: column; gap: 8px; align-items: flex-start; }

    /* Tooltip */
    .tooltip-wrap { position: relative; }
    .tooltip-content { min-width: 180px; max-width: 240px; font-size: 12px; }

    /* Equipment filter */
    .upper_filter.equipment_lenght_filter { flex-direction: column; gap: 10px; }
    .equipment_lenght_filter select#rvFilterTypes,
    .equipment_lenght_filter input#rvFilterLength { width: 100%; }
    .equipment_lenght_filter_item_btn { width: 100%; }
    .equipment_lenght_filter_item_btn button { width: 100%; min-width: unset; }
}

/* ── Very small mobile (≤360px) ─────────────────────────── */
@media only screen and (max-width: 360px) {
    /* Select Date */
    .page-select-date .card { padding: 16px 12px; }
    .page-select-date .card .heading { font-size: 20px; }
    .page-select-date .subtitle { font-size: 13px; }

    /* Listing Banner */
    .hook-listing-banner .heading { font-size: 18px; }
    .hook-listing-banner p { font-size: 12px; }

    /* Details */
    .hook-details .heading { font-size: 18px; }
    .hook-details .subheading { font-size: 14px; }
    .hook-details .sidebar-box { padding: 12px; }
    #sync1 .item img { height: 170px; }

    /* Cart */
    .hook-cart .heading { font-size: 18px; }
    .hook-cart .cart-box { padding: 12px; }
    .hook-cart .checkout-btn { font-size: 13px; }
    .hook-cart .item-info img { height: 140px; }

    /* Checkout */
    .hook-checkout .heading { font-size: 18px; }
    .hook-checkout .checkout-grid-box { padding: 12px; }
    .hook-checkout .btn { font-size: 13px; }
    .hook-checkout .order-summary { padding: 12px; }
    .g-recaptcha { transform: scale(0.85); transform-origin: 0 0; }
    .sms-optin-section { padding: 8px; }

    /* Addon */
    .hook-addon .heading { font-size: 18px; }
    .hook-addon .addon-card { padding: 12px; }
    .hook-addon .add-btn { font-size: 12px; }

    /* Order Details */
    .od-card { padding: 12px; }
    .order-header h1 { font-size: 18px; }
    .order-header p { font-size: 12px; }
    .od-summary-list li { font-size: 12px; }
    .od-payment-box .card-icon { font-size: 12px; }
    .pay-amount { font-size: 13px; }

    /* Tooltip */
    .tooltip-content { min-width: 160px; max-width: 200px; font-size: 11px; }

    /* General */
    .container { padding: 0 12px; }
    .back-btn { font-size: 11px; }
}