/* ================================================================
   PORTUGAL ONLINE — PACKAGE SEO TEMPLATE
   Used only by package-seo.php / Template Name: Package SEO.
   Legacy package.php remains untouched.
   ================================================================ */

#body.package-seo-page {
    background: #f7f8fa;
}

#body.package-seo-page .package-seo-title-wrapper {
    margin-top: 18px;
    margin-bottom: 10px;
}

#body.package-seo-page .package-seo-title-wrapper .product-name {
    margin-bottom: 0;
}

#body.package-seo-page .package-seo-summary {
    margin-top: 0;
    margin-bottom: 22px;
    padding: 20px 22px;
    background: #fff;
    border: 1px solid #dfe4eb;
    border-radius: 5px;
    box-sizing: border-box;
}

#body.package-seo-page .package-seo-summary-copy {
    margin: 0 0 16px;
    font-size: 16px;
    line-height: 1.55;
}

#body.package-seo-page .package-seo-summary-copy p {
    margin: 0;
}

#body.package-seo-page .package-seo-facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: 0 0 16px;
    background: #dfe5ee;
    border: 1px solid #dfe5ee;
}

#body.package-seo-page .package-seo-fact {
    min-height: 66px;
    padding: 11px 13px;
    background: #f1f5fb;
    box-sizing: border-box;
}

#body.package-seo-page .package-seo-fact-label {
    display: block;
    margin-bottom: 4px;
    color: #687588;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .045em;
    text-transform: uppercase;
}

#body.package-seo-page .package-seo-fact strong {
    display: block;
    color: #26384f;
    font-size: 14px;
    line-height: 1.35;
}

#body.package-seo-page .package-seo-price-fact strong {
    color: #c53b2f;
}

#body.package-seo-page .package-seo-primary-cta {
    display: flex;
    justify-content: flex-end;
}

#body.package-seo-page .package-seo-quote-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 24px;
    background: #5575d5;
    border-radius: 3px;
    color: #fff !important;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none !important;
}

#body.package-seo-page .package-seo-quote-button:hover,
#body.package-seo-page .package-seo-quote-button:focus {
    text-decoration: none !important;
    filter: brightness(.95);
}

#body.package-seo-page .package-seo-tabs {
    position: sticky;
    top: 0;
    z-index: 20;
}

body.admin-bar #body.package-seo-page .package-seo-tabs {
    top: 32px;
}

#body.package-seo-page .package-seo-tabs .section-menu {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
}

#body.package-seo-page .package-seo-tabs .section-menu > li {
    flex: 0 0 auto;
}

#body.package-seo-page .package-seo-tabs .package-seo-nav-cta {
    margin-left: auto;
}

#body.package-seo-page .details > article {
    margin-bottom: 18px;
    padding: 26px 28px;
    background: #fff;
    border: 1px solid #e0e4ea;
    border-radius: 4px;
    box-sizing: border-box;
}

#body.package-seo-page .details > article .section-title {
    margin-top: 0;
}

#body.package-seo-page .related-items {
    margin-top: 28px;
}

@media screen and (max-width: 965px) {
    #body.package-seo-page .package-seo-tabs {
        position: static;
    }

    #body.package-seo-page .package-seo-facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    #body.package-seo-page .package-seo-primary-cta {
        justify-content: stretch;
    }

    #body.package-seo-page .package-seo-quote-button {
        width: 100%;
        box-sizing: border-box;
    }

    #body.package-seo-page .details > article {
        padding: 22px 20px;
    }
}

@media screen and (max-width: 520px) {
    #body.package-seo-page .package-seo-summary {
        padding: 17px 15px;
    }

    #body.package-seo-page .package-seo-facts {
        grid-template-columns: 1fr;
    }
}

/* V2 visual cleanup */
#body.package-seo-page .package-seo-title-wrapper .product-name {
    color: #5575d5 !important;
    font-size: 32px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-shadow: none !important;
}

#body.package-seo-page .package-seo-summary {
    padding: 18px 20px;
}

#body.package-seo-page .package-seo-summary-copy {
    margin-bottom: 14px;
}

#body.package-seo-page .package-seo-fact {
    min-height: 62px;
}

#body.package-seo-page .package-seo-tabs {
    background: transparent;
}

#body.package-seo-page .package-seo-tabs .section-menu {
    gap: 6px;
    padding: 8px 0;
    background: #fff;
}

#body.package-seo-page .package-seo-tabs .section-menu > li {
    margin: 0;
    background: transparent !important;
}

#body.package-seo-page .package-seo-tabs .section-menu > li > a {
    display: block;
    padding: 10px 15px;
    border: 1px solid #d7dce3;
    border-radius: 3px;
    background: #f5f6f7;
    color: #2f3b4b !important;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none !important;
}

#body.package-seo-page .package-seo-tabs .section-menu > li > a:hover,
#body.package-seo-page .package-seo-tabs .section-menu > li > a:focus,
#body.package-seo-page .package-seo-tabs .section-menu > li > a.active,
#body.package-seo-page .package-seo-tabs .section-menu > li.active > a {
    background: #5575d5;
    border-color: #5575d5;
    color: #fff !important;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .package-seo-title-wrapper .product-name {
        font-size: 27px !important;
    }

    #body.package-seo-page .package-seo-tabs .section-menu {
        gap: 5px;
    }

    #body.package-seo-page .package-seo-tabs .section-menu > li > a {
        padding: 9px 11px;
        font-size: 13px;
    }
}

/* ================================================================
   PACKAGE SEO — HEADER + BREADCRUMB FIX
   Reuses the proven individual-package header structure:
   hero -> protected gap -> breadcrumb -> H1.
   ================================================================ */

#body.package-seo-page .package-detail-header-content {
    clear: both !important;
    position: relative !important;
    z-index: 20 !important;
    margin-top: 0 !important;
    padding: 12px 0 16px !important;
    background: #f7f8fa !important;
}

/* Protect the legacy carousel from the content block below it. */
#body.package-seo-page > .carousel,
#body.package-seo-page > .carousel .cycle-slideshow,
#body.package-seo-page > .carousel .carousel-content-container {
    display: block !important;
    clear: both !important;
    overflow: visible !important;
}

#body.package-seo-page > .carousel {
    margin-bottom: 0 !important;
}

#body.package-seo-page .package-detail-breadcrumbs {
    clear: both !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    background: #f7f8fa !important;
}

#body.package-seo-page .package-detail-breadcrumbs .breadcrumb-wrapper,
#body.package-seo-page .package-detail-breadcrumbs .wrapper.clearfix {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    background: #f7f8fa !important;
}

#body.package-seo-page .package-detail-breadcrumbs .breadcrumb {
    float: none !important;
    width: 100% !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    background: #f7f8fa !important;
}

#body.package-seo-page .package-detail-breadcrumbs .breadcrumb ul {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

#body.package-seo-page .package-detail-breadcrumbs .breadcrumb li {
    display: inline !important;
    max-width: none !important;
    overflow: visible !important;
}

#body.package-seo-page .package-detail-breadcrumbs .breadcrumb a {
    display: inline-block !important;
    max-width: 320px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    vertical-align: bottom !important;
}

#body.package-seo-page .package-detail-title-wrapper {
    clear: both !important;
    position: relative !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    background: transparent !important;
}

#body.package-seo-page .package-detail-title-wrapper h1.product-name {
    display: block !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    float: none !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 14px 0 0 !important;
    padding: 0 !important;
    font-size: 32px !important;
    font-weight: 700 !important;
    color: #5575d5 !important;
    background: transparent !important;
    text-shadow: none !important;
    line-height: 1.2 !important;
    z-index: 1 !important;
    overflow: visible !important;
}

/* The summary follows the header block; avoid creating another oversized gap. */
#body.package-seo-page .package-detail-header-content + .package-seo-summary {
    margin-top: 0 !important;
}

@media screen and (max-width: 768px) {
    #body.package-seo-page .package-detail-header-content {
        margin-top: 0 !important;
        padding: 10px 0 14px !important;
    }

    #body.package-seo-page .package-detail-breadcrumbs .breadcrumb a {
        max-width: 145px !important;
    }

    #body.package-seo-page .package-detail-title-wrapper h1.product-name {
        font-size: 27px !important;
        line-height: 1.2 !important;
        margin: 12px 0 0 !important;
    }
}

/* Package SEO — primary Request Quote CTA */
#body.package-seo-page .package-seo-quote-button {
    background: #e87524 !important;
    color: #fff !important;
}

#body.package-seo-page .package-seo-quote-button:hover,
#body.package-seo-page .package-seo-quote-button:focus {
    background: #cf641c !important;
    color: #fff !important;
}

/* ================================================================
   PACKAGE SEO — FINAL CLEANUP PASS
   ================================================================ */

/* Stronger primary CTA while keeping the right-aligned placement. */
#body.package-seo-page .package-seo-quote-button {
    min-width: 180px;
    min-height: 48px;
    padding: 0 30px !important;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 800;
    letter-spacing: .01em;
    box-shadow: 0 3px 9px rgba(0, 0, 0, .14);
    transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}

#body.package-seo-page .package-seo-quote-button:hover,
#body.package-seo-page .package-seo-quote-button:focus {
    box-shadow: 0 4px 12px rgba(0, 0, 0, .18);
    transform: translateY(-1px);
}

/* Keep the trip-summary card compact and visually connected to the facts. */
#body.package-seo-page .package-seo-summary {
    padding: 18px 20px 20px;
}

#body.package-seo-page .package-seo-facts {
    margin-bottom: 18px;
}

/* Slightly calmer section navigation. */
#body.package-seo-page .package-seo-tabs .section-menu {
    gap: 7px;
}

#body.package-seo-page .package-seo-tabs .section-menu > li > a {
    padding: 9px 14px;
    border-color: #cfd7e2;
    background: #f8fafc;
    color: #40546f !important;
    font-weight: 700;
}

#body.package-seo-page .package-seo-tabs .section-menu > li > a:hover,
#body.package-seo-page .package-seo-tabs .section-menu > li > a:focus,
#body.package-seo-page .package-seo-tabs .section-menu > li > a.active,
#body.package-seo-page .package-seo-tabs .section-menu > li.active > a {
    background: #5575d5;
    border-color: #5575d5;
    color: #fff !important;
}

/* Separate Overview and Itinerary cleanly when the legacy description
   already contains an Itinerary heading. */
#body.package-seo-page .package-seo-overview,
#body.package-seo-page .package-seo-itinerary {
    scroll-margin-top: 78px;
}

#body.package-seo-page .package-seo-overview img,
#body.package-seo-page .package-seo-itinerary img {
    max-width: 100%;
    height: auto;
}

/* Keep wide itinerary/maps from touching card edges. */
#body.package-seo-page .package-seo-overview iframe,
#body.package-seo-page .package-seo-itinerary iframe {
    max-width: 100%;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .package-seo-quote-button {
        min-width: 0;
        min-height: 48px;
        width: 100%;
        padding: 0 20px !important;
    }

    #body.package-seo-page .package-seo-overview,
    #body.package-seo-page .package-seo-itinerary {
        scroll-margin-top: 12px;
    }
}

/* ================================================================
   PACKAGE SEO — UNIFIED REQUEST QUOTE BUTTONS
   Make every Request Quote CTA match the primary orange button.
   Scoped only to the Package SEO template.
   ================================================================ */

#body.package-seo-page .article-booking-link button.booking-link-quote,
#body.package-seo-page .article-booking-link.booking-link-mobile button,
#body.package-seo-page .top-mobile-cta button.booking-link-quote,
#body.package-seo-page .book_now_pricing_table button.booking-link-quote,
#body.package-seo-page button.booking-link-quote {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 180px !important;
    min-height: 48px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 30px !important;
    background: #e87524 !important;
    border: 0 !important;
    border-radius: 4px !important;
    box-shadow: 0 3px 9px rgba(0, 0, 0, .14) !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    letter-spacing: .01em !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background .18s ease, box-shadow .18s ease, transform .18s ease !important;
}

#body.package-seo-page .article-booking-link button.booking-link-quote a,
#body.package-seo-page .article-booking-link.booking-link-mobile button a,
#body.package-seo-page .top-mobile-cta button.booking-link-quote a,
#body.package-seo-page .book_now_pricing_table button.booking-link-quote a,
#body.package-seo-page button.booking-link-quote a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    color: #fff !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    text-decoration: none !important;
}

#body.package-seo-page .article-booking-link button.booking-link-quote:hover,
#body.package-seo-page .article-booking-link button.booking-link-quote:focus,
#body.package-seo-page .article-booking-link.booking-link-mobile button:hover,
#body.package-seo-page .article-booking-link.booking-link-mobile button:focus,
#body.package-seo-page .top-mobile-cta button.booking-link-quote:hover,
#body.package-seo-page .top-mobile-cta button.booking-link-quote:focus,
#body.package-seo-page .book_now_pricing_table button.booking-link-quote:hover,
#body.package-seo-page .book_now_pricing_table button.booking-link-quote:focus,
#body.package-seo-page button.booking-link-quote:hover,
#body.package-seo-page button.booking-link-quote:focus {
    background: #cf641c !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .18) !important;
    transform: translateY(-1px) !important;
    color: #fff !important;
}

/* Preserve useful spacing around repeated quote CTAs. */
#body.package-seo-page .article-booking-link {
    margin-top: 18px;
    margin-bottom: 18px;
}

#body.package-seo-page .book_now_pricing_table.article-booking-link {
    margin-top: 12px;
    margin-bottom: 24px;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .article-booking-link button.booking-link-quote,
    #body.package-seo-page .article-booking-link.booking-link-mobile button,
    #body.package-seo-page .top-mobile-cta button.booking-link-quote,
    #body.package-seo-page .book_now_pricing_table button.booking-link-quote,
    #body.package-seo-page button.booking-link-quote {
        min-width: 0 !important;
        width: 100% !important;
        padding: 0 20px !important;
    }
}

/* ================================================================
   PACKAGE SEO — COMPLETE CONTENT / USABILITY UPGRADE
   ================================================================ */

/* At-a-Glance */
#body.package-seo-page .package-seo-at-a-glance,
#body.package-seo-page .package-seo-questions {
    scroll-margin-top: 78px;
}

#body.package-seo-page .package-seo-glance-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 18px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#body.package-seo-page .package-seo-glance-list li {
    position: relative;
    margin: 0 !important;
    padding: 11px 14px 11px 34px !important;
    background: #f7f9fc;
    border: 1px solid #e0e5ed;
    border-radius: 4px;
    color: #34465d;
    font-size: 14px;
    line-height: 1.4;
    list-style: none !important;
}

#body.package-seo-page .package-seo-glance-list li::before {
    content: "✓";
    position: absolute;
    left: 12px;
    top: 11px;
    color: #5575d5;
    font-weight: 800;
}

/* Day-by-Day itinerary */
#body.package-seo-page .package-seo-itinerary h2:not(.section-title),
#body.package-seo-page .package-seo-itinerary h3,
#body.package-seo-page .package-seo-itinerary h4 {
    clear: both;
    margin: 28px 0 10px !important;
    padding-top: 18px;
    border-top: 1px solid #e4e7ec;
    color: #344d70;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
}

#body.package-seo-page .package-seo-itinerary .section-title + h2,
#body.package-seo-page .package-seo-itinerary .section-title + h3,
#body.package-seo-page .package-seo-itinerary .section-title + h4 {
    margin-top: 6px !important;
    padding-top: 0;
    border-top: 0;
}

#body.package-seo-page .package-seo-itinerary p {
    line-height: 1.62;
}

/* What's Included / Not Included */
#body.package-seo-page #features h3,
#body.package-seo-page #features h4 {
    margin: 24px 0 10px;
    color: #344d70;
    font-size: 19px;
    font-weight: 700;
}

#body.package-seo-page #features ul {
    margin: 8px 0 20px !important;
    padding: 0 !important;
    list-style: none !important;
}

#body.package-seo-page #features ul li {
    position: relative;
    margin: 0 0 8px !important;
    padding: 0 0 0 24px !important;
    line-height: 1.5;
    list-style: none !important;
}

#body.package-seo-page #features ul li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: #26865b;
    font-weight: 800;
}

/* If the editor uses a heading containing "Not Included", JavaScript-free CSS
   cannot reliably select all following siblings by text. This neutral dash
   styling gives later lists a distinct treatment when they follow another heading. */
#body.package-seo-page #features h3 ~ ul li::before,
#body.package-seo-page #features h4 ~ ul li::before {
    content: "–";
    color: #b05245;
}

/* Package-specific FAQs */
#body.package-seo-page .package-seo-faq-content h3,
#body.package-seo-page .package-seo-faq-content h4 {
    margin: 22px 0 7px;
    color: #344d70;
    font-size: 18px;
    font-weight: 700;
}

#body.package-seo-page .package-seo-faq-content h3:first-child,
#body.package-seo-page .package-seo-faq-content h4:first-child {
    margin-top: 0;
}

#body.package-seo-page .package-seo-faq-content p {
    margin: 0 0 14px;
    line-height: 1.58;
}

/* Hotels */
#body.package-seo-page .package-hotels {
    margin-top: 24px;
}

#body.package-seo-page .package-hotels > h2 {
    margin: 0 0 12px;
    color: #344d70;
    font-size: 21px;
}

#body.package-seo-page .package-hotel.item {
    box-sizing: border-box;
    padding: 18px;
    background: #f8fafc;
    border: 1px solid #e0e5ec;
    border-radius: 5px;
}

#body.package-seo-page .package-hotel h3 {
    margin-top: 0;
    color: #344d70;
}

#body.package-seo-page .package-hotel-thumb img,
#body.package-seo-page .package-hotels-images img {
    max-width: 100%;
    height: auto;
    border-radius: 3px;
}

/* Booking & Policies */
#body.package-seo-page #information h3,
#body.package-seo-page #information h4 {
    margin: 22px 0 8px;
    color: #344d70;
    font-size: 18px;
}

#body.package-seo-page #information p,
#body.package-seo-page #information li {
    line-height: 1.58;
}

/* Internal links */
#body.package-seo-page .package-seo-explore-more {
    margin-top: 26px;
    margin-bottom: 8px;
}

#body.package-seo-page .package-seo-explore-card {
    padding: 22px 24px;
    background: #eef3fb;
    border: 1px solid #d7e0ef;
    border-radius: 5px;
}

#body.package-seo-page .package-seo-explore-card h2 {
    margin: 0 0 12px;
    color: #344d70;
    font-size: 22px;
}

#body.package-seo-page .package-seo-explore-links {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

#body.package-seo-page .package-seo-explore-links a {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 7px 12px;
    background: #fff;
    border: 1px solid #c9d6e8;
    border-radius: 4px;
    color: #3d5f91;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

#body.package-seo-page .package-seo-explore-links a:hover,
#body.package-seo-page .package-seo-explore-links a:focus {
    background: #e5edf9;
    color: #244fa8;
    text-decoration: none;
}

/* Similar Packages */
#body.package-seo-page .related-items {
    margin-top: 24px;
    padding-top: 8px;
}

#body.package-seo-page .related-items .box-title {
    color: #344d70;
    font-size: 24px;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .package-seo-glance-list {
        grid-template-columns: 1fr;
    }

    #body.package-seo-page .package-seo-at-a-glance,
    #body.package-seo-page .package-seo-questions {
        scroll-margin-top: 12px;
    }

    #body.package-seo-page .package-seo-explore-card {
        padding: 18px 16px;
    }

    #body.package-seo-page .package-seo-explore-links {
        display: grid;
        grid-template-columns: 1fr;
    }

    #body.package-seo-page .package-seo-explore-links a {
        width: 100%;
        box-sizing: border-box;
    }
}

/* ================================================================
   PACKAGE SEO — PRICING MATRIX
   Cleaner comparison of Comfort / Superior rates by room type.
   ================================================================ */

#body.package-seo-page .package-rates-list > h2 {
    margin: 0 0 18px !important;
    color: #5575d5;
    font-size: 24px;
    line-height: 1.25;
}

#body.package-seo-page .package-rates-detail {
    display: grid;
    gap: 18px;
}

#body.package-seo-page .package-rate-period {
    padding: 18px 20px 20px;
    background: #f8fafc;
    border: 1px solid #dfe5ed;
    border-radius: 5px;
}

#body.package-seo-page .package-rate-period-title {
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: 0 !important;
    color: #344d70 !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

#body.package-seo-page .package-rate-table-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

#body.package-seo-page .package-rate-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    background: #fff;
    font-size: 15px;
}

#body.package-seo-page .package-rate-table th,
#body.package-seo-page .package-rate-table td {
    padding: 11px 14px;
    border: 1px solid #dfe5ed;
    text-align: left;
    vertical-align: middle;
}

#body.package-seo-page .package-rate-table thead th {
    background: #5575d5;
    color: #fff;
    font-weight: 800;
}

#body.package-seo-page .package-rate-table tbody th {
    width: 24%;
    background: #eef3fb;
    color: #34465d;
    font-weight: 800;
}

#body.package-seo-page .package-rate-table tbody tr:nth-child(even) td {
    background: #fafbfc;
}

#body.package-seo-page .package-rate-table td {
    color: #27384e;
    font-weight: 700;
}

#body.package-seo-page .package-rate-person {
    color: #67778b;
    font-size: 12px;
    font-weight: 500;
}

#body.package-seo-page .package-rate-empty {
    color: #8b95a3 !important;
    font-weight: 400 !important;
}

#body.package-seo-page .package-rate-extras {
    margin: 12px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#body.package-seo-page .package-rate-extras li {
    margin: 5px 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#body.package-seo-page .package-rate-period .book_now_pricing_table {
    width: auto !important;
    margin: 16px 0 0 !important;
    text-align: left !important;
}

#body.package-seo-page .package-rate-period .book_now_pricing_table .hide-mobile {
    display: inline-block;
}

/* Make next-year pricing CTA rectangular and consistent with site controls. */
#body.package-seo-page .request-next-year {
    margin: 22px 0 4px !important;
    text-align: center !important;
}

#body.package-seo-page .request-next-year .next-year-prices {
    min-width: 190px !important;
    min-height: 44px !important;
    padding: 0 22px !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: #fecc67 !important;
    color: #900 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 44px !important;
    cursor: pointer !important;
}

#body.package-seo-page .request-next-year .next-year-prices:hover,
#body.package-seo-page .request-next-year .next-year-prices:focus {
    background: #f5bd4d !important;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .package-rate-period {
        padding: 15px 12px 16px;
    }

    #body.package-seo-page .package-rate-table {
        min-width: 520px;
        font-size: 14px;
    }

    #body.package-seo-page .package-rate-table th,
    #body.package-seo-page .package-rate-table td {
        padding: 9px 10px;
    }

    #body.package-seo-page .package-rate-period .book_now_pricing_table {
        width: 100% !important;
    }
}

/* ================================================================
   PRICING MATRIX FIX
   - Normalize desktop/mobile quote-button display
   - Remove inherited yellow background from hidden mobile wrapper
   - Keep next-year pricing CTA visible and rectangular
   ================================================================ */

@media screen and (min-width: 768px) {
    #body.package-seo-page .package-rate-period .book_now_pricing_table > .booking-link-mobile {
        display: none !important;
        width: 0 !important;
        min-width: 0 !important;
        height: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        overflow: hidden !important;
    }

    #body.package-seo-page .package-rate-period .book_now_pricing_table > .hide-mobile {
        display: inline-block !important;
    }
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .package-rate-period .book_now_pricing_table > .hide-mobile {
        display: none !important;
    }

    #body.package-seo-page .package-rate-period .book_now_pricing_table > .booking-link-mobile {
        display: block !important;
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        background: transparent !important;
        line-height: normal !important;
    }
}

#body.package-seo-page .request-next-year.article-booking-link {
    display: block !important;
    visibility: visible !important;
    clear: both !important;
    width: 100% !important;
    height: auto !important;
    min-height: 44px !important;
    margin: 22px 0 4px !important;
    padding: 0 !important;
    text-align: center !important;
    overflow: visible !important;
    background: transparent !important;
}

#body.package-seo-page .request-next-year.article-booking-link > a {
    display: inline-block !important;
    text-decoration: none !important;
}

#body.package-seo-page .request-next-year.article-booking-link .next-year-prices {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 190px !important;
    height: 44px !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 22px !important;
    background: #fecc67 !important;
    border: 0 !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    color: #900 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    transform: none !important;
}

/* ================================================================
   PRICING QUOTE BUTTON WRAPPER FIX
   The legacy stylesheet applies the yellow button background to the
   outer span as well as the actual button. Neutralize that wrapper.
   ================================================================ */

#body.package-seo-page .package-rate-period .book_now_pricing_table > span.booking-link-quote,
#body.package-seo-page .package-rate-period .book_now_pricing_table > span.article-booking-link {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    line-height: normal !important;
}

#body.package-seo-page .package-rate-period .book_now_pricing_table > span.booking-link-quote > a,
#body.package-seo-page .package-rate-period .book_now_pricing_table > span.article-booking-link > a {
    display: inline-block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    line-height: normal !important;
}

@media screen and (min-width: 768px) {
    #body.package-seo-page .package-rate-period .book_now_pricing_table > span.hide-mobile.booking-link-quote {
        display: inline-block !important;
        background: transparent !important;
    }
}

/* ================================================================
   PACKAGE SEO — HOTEL CAROUSEL ARROWS
   Legacy theme places Owl arrows at left/right:-50px, which clips
   them against the newer hotel card. Keep the controls inside.
   ================================================================ */

#body.package-seo-page .package-hotels {
    position: relative;
}

#body.package-seo-page .package-hotels .owl-controls {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 20 !important;
    pointer-events: none;
}

#body.package-seo-page .package-hotels .owl-prev,
#body.package-seo-page .package-hotels .owl-next {
    z-index: 21 !important;
    pointer-events: auto;
}

#body.package-seo-page .package-hotels .owl-prev {
    left: 8px !important;
}

#body.package-seo-page .package-hotels .owl-next {
    right: 8px !important;
}

/* Give the arrows a clean hit area without changing their SVG icons. */
#body.package-seo-page .package-hotels .owl-prev .icon-arrow-left,
#body.package-seo-page .package-hotels .owl-next .icon-arrow-right {
    width: 40px !important;
    height: 60px !important;
    margin: 0 !important;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .package-hotels .owl-prev {
        left: 4px !important;
    }

    #body.package-seo-page .package-hotels .owl-next {
        right: 4px !important;
    }
}

/* ================================================================
   PACKAGE SEO — MOBILE RESTORATION
   Keep the desktop improvements, restore the simpler legacy mobile
   pricing presentation, remove the duplicate mobile CTA, and keep
   section navigation visible.
   ================================================================ */

/* The summary card already contains the primary CTA.
   Remove the separate legacy mobile CTA directly below it. */
#body.package-seo-page .top-mobile-cta {
    display: none !important;
}

/* Desktop matrix stays desktop-only. */
#body.package-seo-page .package-rate-mobile-list {
    display: none !important;
}

/* Ensure navigation remains visible even when legacy responsive CSS
   tries to suppress tabs on small screens. */
@media screen and (max-width: 767px) {
    #body.package-seo-page .package-seo-tabs {
        display: block !important;
        visibility: visible !important;
        width: 100% !important;
        margin: 12px 0 8px !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    #body.package-seo-page .package-seo-tabs .section-menu {
        display: flex !important;
        visibility: visible !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 6px 0 8px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
        background: transparent !important;
        scrollbar-width: thin;
    }

    #body.package-seo-page .package-seo-tabs .section-menu > li {
        display: block !important;
        visibility: visible !important;
        flex: 0 0 auto !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #body.package-seo-page .package-seo-tabs .section-menu > li > a {
        display: block !important;
        min-height: 38px !important;
        padding: 10px 13px !important;
        background: #5575d5 !important;
        border: 1px solid #5575d5 !important;
        border-radius: 4px !important;
        color: #fff !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
        text-decoration: none !important;
    }

    #body.package-seo-page .package-seo-tabs .section-menu > li > a:hover,
    #body.package-seo-page .package-seo-tabs .section-menu > li > a:focus,
    #body.package-seo-page .package-seo-tabs .section-menu > li > a.active,
    #body.package-seo-page .package-seo-tabs .section-menu > li.active > a {
        background: #4565c4 !important;
        border-color: #4565c4 !important;
        color: #fff !important;
    }

    /* Restore the pre-matrix mobile pricing presentation. */
    #body.package-seo-page .package-rate-table-wrap,
    #body.package-seo-page .package-rate-extras {
        display: none !important;
    }

    #body.package-seo-page .package-rate-mobile-list {
        display: block !important;
        margin: 0 0 14px !important;
        padding: 0 !important;
        list-style: none !important;
    }

    #body.package-seo-page .package-rate-mobile-list li {
        display: block !important;
        margin: 0 0 5px !important;
        padding: 0 !important;
        color: #27384e !important;
        font-size: 15px !important;
        line-height: 1.4 !important;
        list-style: none !important;
    }

    #body.package-seo-page .package-rate-mobile-list li strong {
        color: #27384e !important;
        font-weight: 800 !important;
    }

    #body.package-seo-page .package-rate-period {
        padding: 14px 14px 16px !important;
    }

    #body.package-seo-page .package-rate-period-title {
        margin-bottom: 10px !important;
        font-size: 17px !important;
    }

    #body.package-seo-page .package-rate-period .book_now_pricing_table {
        margin-top: 12px !important;
    }
}

/* ================================================================
   PACKAGE SEO — MOBILE LAYOUT CORRECTION
   Final pass for title spacing, complete nav visibility, mobile rates,
   bottom CTA duplication, and hotel-arrow placement.
   ================================================================ */

/* Hotel arrows: keep them OUTSIDE the hotel card, but inside the
   surrounding Hotels article so they remain fully visible. */
@media screen and (min-width: 768px) {
    #body.package-seo-page .package-hotels .owl-prev {
        left: -32px !important;
    }

    #body.package-seo-page .package-hotels .owl-next {
        right: -32px !important;
    }
}

@media screen and (max-width: 767px) {

    /* 1. Give the H1 proper breathing room on narrow screens. */
    #body.package-seo-page .package-detail-title-wrapper {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 16px !important;
        box-sizing: border-box !important;
    }

    #body.package-seo-page .package-detail-title-wrapper h1.product-name {
        margin: 12px 0 0 !important;
        padding: 0 !important;
        font-size: 27px !important;
        line-height: 1.22 !important;
    }

    /* 2. Show EVERY section button. Wrap to multiple rows instead of
       hiding buttons off-screen in a horizontal scroller. */
    #body.package-seo-page .package-seo-tabs {
        display: block !important;
        width: 100% !important;
        margin: 12px 0 10px !important;
        padding: 0 10px !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    #body.package-seo-page .package-seo-tabs .section-menu {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        gap: 7px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        background: transparent !important;
    }

    #body.package-seo-page .package-seo-tabs .section-menu > li {
        display: block !important;
        flex: 0 0 auto !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    #body.package-seo-page .package-seo-tabs .section-menu > li > a {
        display: block !important;
        min-height: 38px !important;
        padding: 10px 12px !important;
        background: #5575d5 !important;
        border: 1px solid #5575d5 !important;
        border-radius: 4px !important;
        color: #fff !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
        text-decoration: none !important;
    }

    #body.package-seo-page .package-seo-tabs .section-menu > li > a:hover,
    #body.package-seo-page .package-seo-tabs .section-menu > li > a:focus,
    #body.package-seo-page .package-seo-tabs .section-menu > li > a.active,
    #body.package-seo-page .package-seo-tabs .section-menu > li.active > a {
        background: #4565c4 !important;
        border-color: #4565c4 !important;
        color: #fff !important;
    }

    /* 3. Mobile rates use the simple pre-matrix list. */
    #body.package-seo-page #rates,
    #body.package-seo-page #rates .package-rates-list,
    #body.package-seo-page #rates .package-rates-detail,
    #body.package-seo-page #rates .package-rate-period {
        overflow: visible !important;
    }

    #body.package-seo-page .package-rate-table-wrap,
    #body.package-seo-page .package-rate-extras {
        display: none !important;
    }

    #body.package-seo-page .package-rate-mobile-list {
        display: block !important;
        visibility: visible !important;
        height: auto !important;
        margin: 0 0 14px !important;
        padding: 0 !important;
        overflow: visible !important;
        list-style: none !important;
    }

    #body.package-seo-page .package-rate-mobile-list li {
        display: block !important;
        visibility: visible !important;
        margin: 0 0 6px !important;
        padding: 0 !important;
        color: #27384e !important;
        font-size: 15px !important;
        line-height: 1.4 !important;
        list-style: none !important;
    }

    #body.package-seo-page .package-rate-mobile-list li strong {
        color: #27384e !important;
        font-weight: 800 !important;
    }

    /* 4. Bottom CTA: only ONE button on mobile.
       Hide the desktop button and restyle the legacy mobile button
       so it matches every other orange Request Quote CTA. */
    #body.package-seo-page .details > .article-booking-link > button.booking-link-quote[data-device-type="desktop"] {
        display: none !important;
    }

    #body.package-seo-page .details > .article-booking-link > button.booking-link-mobile[data-device-type="mobile"] {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 48px !important;
        margin: 0 !important;
        padding: 0 20px !important;
        background: #e87524 !important;
        border: 0 !important;
        border-radius: 4px !important;
        box-shadow: 0 3px 9px rgba(0,0,0,.14) !important;
        color: #fff !important;
        font-size: 16px !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
    }

    #body.package-seo-page .details > .article-booking-link > button.booking-link-mobile[data-device-type="mobile"] a {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        height: 100% !important;
        color: #fff !important;
        text-decoration: none !important;
    }

    /* Keep the separate legacy CTA below the summary suppressed. */
    #body.package-seo-page .top-mobile-cta {
        display: none !important;
    }

    /* Mobile hotel arrows: sit in the gutter just outside the hotel card. */
    #body.package-seo-page .package-hotels .owl-prev {
        left: -18px !important;
    }

    #body.package-seo-page .package-hotels .owl-next {
        right: -18px !important;
    }

    #body.package-seo-page #lodging,
    #body.package-seo-page .package-hotels {
        overflow: visible !important;
    }
}

/* Desktop bottom CTA remains desktop-only; suppress the legacy mobile button. */
@media screen and (min-width: 768px) {
    #body.package-seo-page .details > .article-booking-link > button.booking-link-mobile[data-device-type="mobile"] {
        display: none !important;
    }
}

/* ================================================================
   PACKAGE SEO — MOBILE RATES + HOTELS VISIBILITY
   The legacy package mobile CSS/JS can leave these two legacy
   sections hidden because they were historically tab-controlled.
   On the SEO template mobile page, treat them as normal page sections
   so the anchor buttons always have a visible destination.
   ================================================================ */

@media screen and (max-width: 767px) {

    /* Force the two legacy tab-controlled sections into the normal
       mobile document flow. */
    #body.package-seo-page .inner-content.package.details > article#rates,
    #body.package-seo-page .inner-content.package.details > article#lodging {
        display: block !important;
        visibility: visible !important;
        position: static !important;
        float: none !important;
        clear: both !important;
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        margin: 0 0 18px !important;
        padding: 22px 20px !important;
        overflow: visible !important;
        opacity: 1 !important;
        transform: none !important;
        box-sizing: border-box !important;
    }

    /* Make hash navigation stop with the heading comfortably below
       the mobile header/navigation area. */
    #body.package-seo-page #rates,
    #body.package-seo-page #lodging {
        scroll-margin-top: 18px !important;
    }

    /* Preserve the simple pre-matrix mobile prices. */
    #body.package-seo-page #rates .package-rate-mobile-list {
        display: block !important;
        visibility: visible !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        opacity: 1 !important;
    }

    #body.package-seo-page #rates .package-rate-table-wrap,
    #body.package-seo-page #rates .package-rate-extras {
        display: none !important;
    }

    /* Make sure the hotel loops and carousel are not suppressed by
       old responsive tab rules. */
    #body.package-seo-page #lodging .package-hotels,
    #body.package-seo-page #lodging .package-hotel,
    #body.package-seo-page #lodging .owl-carousel,
    #body.package-seo-page #lodging .owl-wrapper-outer,
    #body.package-seo-page #lodging .owl-wrapper,
    #body.package-seo-page #lodging .owl-item {
        visibility: visible !important;
        max-height: none !important;
        opacity: 1 !important;
    }

    /* Anchor links should use their native hash behavior on mobile. */
    #body.package-seo-page .package-seo-tabs a[href="#rates"],
    #body.package-seo-page .package-seo-tabs a[href="#lodging"] {
        pointer-events: auto !important;
        cursor: pointer !important;
    }
}

/* ================================================================
   PACKAGE SEO — HOTEL GROUP SPACING + MOBILE HERO
   ================================================================ */

/* Remove the artificial vertical space left by the legacy Owl hotel
   carousel between Comfort / Superior / other hotel groups. */
#body.package-seo-page #lodging .package-hotels {
    height: auto !important;
    min-height: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

#body.package-seo-page #lodging .package-hotels + .package-hotels {
    margin-top: 22px !important;
}

#body.package-seo-page #lodging .package-hotels .owl-carousel,
#body.package-seo-page #lodging .package-hotels .owl-wrapper-outer,
#body.package-seo-page #lodging .package-hotels .owl-wrapper,
#body.package-seo-page #lodging .package-hotels .owl-item {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
}

/* The actual hotel card should determine the carousel group's height. */
#body.package-seo-page #lodging .package-hotel.item {
    margin-bottom: 0 !important;
}

/* Mobile: remove the package hero image entirely. */
@media screen and (max-width: 767px) {
    #body.package-seo-page > .carousel {
        display: none !important;
        height: 0 !important;
        min-height: 0 !important;
        max-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    /* With the hero gone, start the breadcrumb/title area immediately
       below the mobile site header. */
    #body.package-seo-page .package-detail-header-content {
        margin-top: 0 !important;
    }

    #body.package-seo-page #lodging .package-hotels + .package-hotels {
        margin-top: 18px !important;
    }
}

/* ================================================================
   PACKAGE SEO — WHOLE-PAGE REFINEMENT PASS
   ================================================================ */

/* 1. At a Glance: keep it useful, just make it slightly more compact. */
#body.package-seo-page .package-seo-glance-list {
    gap: 6px 16px !important;
}

#body.package-seo-page .package-seo-glance-list li {
    min-height: 0 !important;
    padding: 9px 12px 9px 32px !important;
    font-size: 13px !important;
    line-height: 1.35 !important;
}

#body.package-seo-page .package-seo-glance-list li::before {
    left: 11px !important;
    top: 9px !important;
}

/* 2. Day-by-Day: preserve the simple expanded itinerary. */
#body.package-seo-page .package-seo-itinerary h2:not(.section-title),
#body.package-seo-page .package-seo-itinerary h3,
#body.package-seo-page .package-seo-itinerary h4 {
    margin-top: 24px !important;
    padding-top: 16px !important;
}

#body.package-seo-page .package-seo-itinerary p {
    max-width: none !important;
    line-height: 1.6 !important;
}

/* 3. Included / Not Included: reserve green checks for Included only. */
#body.package-seo-page #features .package-features-content ul li::before {
    content: "✓" !important;
    color: #26865b !important;
}

#body.package-seo-page #features .package-features-content ul.package-not-included-list li::before {
    content: "×" !important;
    color: #b05245 !important;
    font-size: 18px !important;
    line-height: 1 !important;
    top: 1px !important;
}

#body.package-seo-page #features .package-features-content h3,
#body.package-seo-page #features .package-features-content h4 {
    margin-top: 22px !important;
}

/* 4. Rates intro: turn the many legacy headings into one compact guide. */
#body.package-seo-page .package-rate-guide {
    margin: 0 0 24px !important;
    padding: 18px 20px !important;
    background: #f8fafc !important;
    border: 1px solid #dfe5ed !important;
    border-radius: 5px !important;
}

#body.package-seo-page .package-rate-guide > h3 {
    margin: 0 0 14px !important;
    padding: 0 !important;
    border: 0 !important;
    color: #344d70 !important;
    font-size: 21px !important;
    font-weight: 800 !important;
}

#body.package-seo-page .package-rate-guide .rates-header {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px 26px !important;
}

#body.package-seo-page .package-rate-guide .rates-header > h2,
#body.package-seo-page .package-rate-guide .rates-header > h3,
#body.package-seo-page .package-rate-guide .rates-header > h4 {
    grid-column: auto !important;
    margin: 4px 0 3px !important;
    padding: 0 !important;
    border: 0 !important;
    color: #5575d5 !important;
    font-size: 16px !important;
    line-height: 1.3 !important;
}

#body.package-seo-page .package-rate-guide .rates-header > p,
#body.package-seo-page .package-rate-guide .rates-header > ul,
#body.package-seo-page .package-rate-guide .rates-header > ol {
    margin: 0 0 8px !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
}

#body.package-seo-page .package-rate-guide .rates-header > ul,
#body.package-seo-page .package-rate-guide .rates-header > ol {
    padding-left: 18px !important;
}

/* 5. Important Notes: cleaner, tighter, and ready for grouped headings
   when the editor copy is cleaned up. */
#body.package-seo-page .package-rate-notes {
    margin-top: 24px !important;
    padding: 18px 20px !important;
    background: #fbfcfd !important;
    border-top: 1px solid #e1e6ed !important;
}

#body.package-seo-page .package-rate-notes .rates-footer > h2,
#body.package-seo-page .package-rate-notes .rates-footer > h3,
#body.package-seo-page .package-rate-notes .rates-footer > h4 {
    margin: 16px 0 7px !important;
    color: #5575d5 !important;
    font-size: 17px !important;
    line-height: 1.3 !important;
}

#body.package-seo-page .package-rate-notes .rates-footer > h2:first-child,
#body.package-seo-page .package-rate-notes .rates-footer > h3:first-child,
#body.package-seo-page .package-rate-notes .rates-footer > h4:first-child {
    margin-top: 0 !important;
}

#body.package-seo-page .package-rate-notes .rates-footer ul,
#body.package-seo-page .package-rate-notes .rates-footer ol {
    margin: 6px 0 0 !important;
    padding-left: 18px !important;
    columns: 2;
    column-gap: 34px;
}

#body.package-seo-page .package-rate-notes .rates-footer li {
    margin: 0 0 6px !important;
    break-inside: avoid;
    line-height: 1.4 !important;
}

/* 6. Hotels: keep the current card design; only tighten group spacing. */
#body.package-seo-page #lodging .package-hotels + .package-hotels {
    margin-top: 14px !important;
}

#body.package-seo-page #lodging .package-hotels > h2 {
    margin-bottom: 10px !important;
}

/* 7. Bottom hierarchy: Similar Packages first, broader links second. */
#body.package-seo-page .package-seo-related {
    margin-top: 24px !important;
}

#body.package-seo-page .package-seo-related .box-title {
    margin-bottom: 14px !important;
    color: #344d70 !important;
}

#body.package-seo-page .package-seo-related-links {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 9px !important;
    margin-top: 14px !important;
    padding-top: 14px !important;
    border-top: 1px solid #dde3eb !important;
}

#body.package-seo-page .package-seo-related-links a {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 38px !important;
    padding: 7px 12px !important;
    background: #f8fafc !important;
    border: 1px solid #ccd7e6 !important;
    border-radius: 4px !important;
    color: #3d5f91 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-decoration: none !important;
}

#body.package-seo-page .package-seo-related-links a:hover,
#body.package-seo-page .package-seo-related-links a:focus {
    background: #eaf0f8 !important;
    color: #244fa8 !important;
}

/* 8. Similar Package cards: modest cleanup, no structural redesign. */
#body.package-seo-page .package-seo-related .packages-items .box {
    box-sizing: border-box !important;
    background: #fff !important;
    border: 1px solid #dfe4eb !important;
    box-shadow: none !important;
}

#body.package-seo-page .package-seo-related .packages-items .box h2,
#body.package-seo-page .package-seo-related .packages-items .box h3 {
    height: auto !important;
    min-height: 72px !important;
    margin: 0 !important;
    padding: 12px 10px 8px !important;
    overflow: visible !important;
    color: #5575d5 !important;
    font-size: 17px !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

#body.package-seo-page .package-seo-related .packages-items .box button,
#body.package-seo-page .package-seo-related .packages-items .box .booking-link,
#body.package-seo-page .package-seo-related .packages-items .box .booking-link-quote,
#body.package-seo-page .package-seo-related .packages-items .box a[class*="quote"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: normal !important;
    line-height: 1.2 !important;
}

/* Avoid ellipsis/truncation on card CTAs inherited from old fixed widths. */
#body.package-seo-page .package-seo-related .packages-items .box a,
#body.package-seo-page .package-seo-related .packages-items .box button {
    text-overflow: clip !important;
}

/* Mobile refinements */
@media screen and (max-width: 767px) {
    #body.package-seo-page .package-seo-glance-list li {
        padding: 9px 10px 9px 30px !important;
    }

    #body.package-seo-page .package-rate-guide {
        padding: 16px 14px !important;
    }

    #body.package-seo-page .package-rate-guide .rates-header {
        display: block !important;
    }

    #body.package-seo-page .package-rate-guide .rates-header > h2,
    #body.package-seo-page .package-rate-guide .rates-header > h3,
    #body.package-seo-page .package-rate-guide .rates-header > h4 {
        margin-top: 14px !important;
    }

    #body.package-seo-page .package-rate-notes {
        padding: 16px 14px !important;
    }

    #body.package-seo-page .package-rate-notes .rates-footer ul,
    #body.package-seo-page .package-rate-notes .rates-footer ol {
        columns: 1 !important;
    }

    #body.package-seo-page .package-seo-related-links {
        display: grid !important;
        grid-template-columns: 1fr !important;
    }

    #body.package-seo-page .package-seo-related-links a {
        width: 100% !important;
        box-sizing: border-box !important;
    }

    #body.package-seo-page .package-seo-related .packages-items .box h2,
    #body.package-seo-page .package-seo-related .packages-items .box h3 {
        min-height: 0 !important;
        font-size: 16px !important;
    }
}

/* ================================================================
   PACKAGE SEO — RATES SNIPPETS RESTORED
   The HTML structure now lives in ta_rates_header / ta_rates_footer.
   ================================================================ */

#body.package-seo-page .package-rate-guide .rates-header {
    display: block !important;
}

#body.package-seo-page .package-rate-guide .rate-guide-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 30px !important;
}

#body.package-seo-page .package-rate-guide .rate-guide-block {
    min-width: 0 !important;
}

#body.package-seo-page .package-rate-guide .rate-guide-block h4 {
    margin: 0 0 8px !important;
    padding: 0 !important;
    color: #5575d5 !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

#body.package-seo-page .package-rate-guide .rate-guide-block p,
#body.package-seo-page .package-rate-guide .rate-guide-block ul {
    margin: 0 0 8px !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
}

#body.package-seo-page .package-rate-guide .rate-guide-block ul {
    padding-left: 18px !important;
}

#body.package-seo-page .package-rate-notes .rates-footer {
    display: block !important;
}

#body.package-seo-page .package-rate-notes .rate-notes-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px 28px !important;
}

#body.package-seo-page .package-rate-notes .rate-notes-block h4 {
    margin: 0 0 8px !important;
    color: #5575d5 !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

#body.package-seo-page .package-rate-notes .rate-notes-block ul {
    margin: 0 !important;
    padding-left: 18px !important;
    columns: 1 !important;
}

#body.package-seo-page .package-rate-notes .rate-notes-block li {
    margin: 0 0 7px !important;
    line-height: 1.45 !important;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .package-rate-guide .rate-guide-grid,
    #body.package-seo-page .package-rate-notes .rate-notes-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
}

/* ================================================================
   PACKAGE SEO — FINAL SNIPPET LAYOUT
   Explicit snippet markup controls Rates intro/notes.
   ================================================================ */

#body.package-seo-page .package-rate-guide .rates-header {
    display: block !important;
}

#body.package-seo-page .package-rate-guide .rates-header > * {
    grid-column: auto !important;
}

#body.package-seo-page .rate-guide-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 30px !important;
    align-items: start !important;
}

#body.package-seo-page .rate-guide-block {
    min-width: 0 !important;
    margin: 0 !important;
}

#body.package-seo-page .rate-guide-block h4 {
    margin: 0 0 8px !important;
    color: #5575d5 !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

#body.package-seo-page .rate-guide-block p,
#body.package-seo-page .rate-guide-block ul {
    margin: 0 0 8px !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
}

#body.package-seo-page .rate-guide-block ul {
    padding-left: 18px !important;
}

#body.package-seo-page .rate-notes-title {
    margin: 0 0 12px !important;
    color: #5575d5 !important;
    font-size: 20px !important;
    font-weight: 800 !important;
}

#body.package-seo-page .rate-notes-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px 28px !important;
    align-items: start !important;
}

#body.package-seo-page .rate-notes-block {
    min-width: 0 !important;
}

#body.package-seo-page .rate-notes-block h4 {
    margin: 0 0 8px !important;
    color: #5575d5 !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}

#body.package-seo-page .rate-notes-block ul {
    margin: 0 !important;
    padding-left: 18px !important;
    columns: 1 !important;
}

#body.package-seo-page .rate-notes-block li {
    margin: 0 0 7px !important;
    break-inside: avoid !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .rate-guide-grid,
    #body.package-seo-page .rate-notes-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
}

/* ================================================================
   PACKAGE SEO — SIMILAR PACKAGES FOOTER LINKS
   Keep the related package cards as the main visual element.
   The two broader navigation links sit quietly below the cards,
   without a boxed footer strip.
   ================================================================ */

#body.package-seo-page .package-seo-related .inner-content {
    background: transparent !important;
}

#body.package-seo-page .package-seo-related .packages-items {
    margin-bottom: 0 !important;
}

#body.package-seo-page .package-seo-related-links {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 18px !important;
    width: 100% !important;
    margin: 18px 0 0 !important;
    padding: 0 !important;
    border-top: 0 !important;
    background: transparent !important;
}

#body.package-seo-page .package-seo-related-links a {
    display: inline !important;
    min-height: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    color: #3d5f91 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

#body.package-seo-page .package-seo-related-links a:hover,
#body.package-seo-page .package-seo-related-links a:focus {
    background: transparent !important;
    color: #244fa8 !important;
    text-decoration-thickness: 2px !important;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .package-seo-related-links {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin-top: 14px !important;
        text-align: center !important;
    }

    #body.package-seo-page .package-seo-related-links a {
        width: auto !important;
        text-align: center !important;
    }
}

/* ================================================================
   PACKAGE SEO — TWO-COLUMN SUPPLIER RATE NOTES
   Use .rate-notes-grid-two when a supplier only has two note groups.
   ================================================================ */

#body.package-seo-page .rate-supplement-note {
    margin: 0 0 18px !important;
    padding: 12px 14px !important;
    background: #fff8e8 !important;
    border-left: 4px solid #e5a62b !important;
    border-radius: 3px !important;
}

#body.package-seo-page .rate-supplement-note p {
    margin: 0 !important;
    line-height: 1.45 !important;
}

#body.package-seo-page .rate-notes-grid.rate-notes-grid-two {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 28px 42px !important;
    max-width: 900px !important;
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .rate-notes-grid.rate-notes-grid-two {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        max-width: none !important;
    }
}

/* ================================================================
   PACKAGE SEO — SIMILAR PACKAGES CARD ALIGNMENT + LINK FRAME
   ================================================================ */

#body.package-seo-page .package-seo-related .inner-content {
    background: transparent !important;
}

#body.package-seo-page .package-seo-related .packages-items {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 20px !important;
    align-items: stretch !important;
    margin: 0 !important;
    padding: 14px !important;
    background: #ffffff !important;
    border: 1px solid #e0e5ec !important;
    box-shadow: 0 3px 14px rgba(0,0,0,.08) !important;
    box-sizing: border-box !important;
}

#body.package-seo-page .package-seo-related .packages-items::before,
#body.package-seo-page .package-seo-related .packages-items::after {
    display: none !important;
    content: none !important;
}

#body.package-seo-page .package-seo-related .packages-items .box {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
    height: 100% !important;
    float: none !important;
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 1px solid #dfe4eb !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    text-align: center !important;
}

#body.package-seo-page .package-seo-related .packages-items .offer-image-box {
    width: 100% !important;
    height: 165px !important;
    min-height: 165px !important;
    overflow: hidden !important;
    margin: 0 !important;
    padding: 0 !important;
}

#body.package-seo-page .package-seo-related .packages-items .offer-image-box > a,
#body.package-seo-page .package-seo-related .packages-items .offer-image-box img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}

#body.package-seo-page .package-seo-related .packages-items .offer-image-box img {
    object-fit: cover !important;
    object-position: center center !important;
}

#body.package-seo-page .package-seo-related .packages-items .box h2,
#body.package-seo-page .package-seo-related .packages-items .box h3 {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 112px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 12px 10px !important;
    overflow: visible !important;
    color: #5575d5 !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.28 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    box-sizing: border-box !important;
}

#body.package-seo-page .package-seo-related .packages-items .departure-from {
    min-height: 58px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    background: #e3e5e8 !important;
    box-sizing: border-box !important;
}

#body.package-seo-page .package-seo-related .packages-items .departure-from .value {
    display: block !important;
    font-size: 18px !important;
    line-height: 1.15 !important;
}

#body.package-seo-page .package-seo-related .packages-items .available-dates {
    flex: 1 1 auto !important;
    min-height: 118px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 12px 10px !important;
    overflow: visible !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    box-sizing: border-box !important;
}

#body.package-seo-page .package-seo-related .packages-items .available-dates .value,
#body.package-seo-page .package-seo-related .packages-items .available-dates .value p {
    margin: 0 !important;
    font-size: 15px !important;
    line-height: 1.38 !important;
}

#body.package-seo-page .package-seo-related .packages-items .box > a:last-child {
    display: block !important;
    width: 100% !important;
    margin-top: auto !important;
    text-decoration: none !important;
}

#body.package-seo-page .package-seo-related .packages-items .box > a:last-child button {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    min-height: 48px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 10px 8px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #5873d8 !important;
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    box-sizing: border-box !important;
}

#body.package-seo-page .package-seo-related-links-frame {
    margin: 18px 0 0 !important;
    padding: 18px 20px !important;
    background: #eef3fb !important;
    border: 1px solid #d7e0ef !important;
    border-radius: 5px !important;
    box-sizing: border-box !important;
}

#body.package-seo-page .package-seo-related-links-frame h3 {
    margin: 0 0 12px !important;
    padding: 0 !important;
    color: #344d70 !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}

#body.package-seo-page .package-seo-related-links {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    flex-wrap: wrap !important;
    gap: 9px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

#body.package-seo-page .package-seo-related-links a {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 38px !important;
    width: auto !important;
    padding: 7px 12px !important;
    background: #ffffff !important;
    border: 1px solid #c9d6e8 !important;
    border-radius: 4px !important;
    color: #3d5f91 !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    text-align: left !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
}

#body.package-seo-page .package-seo-related-links a:hover,
#body.package-seo-page .package-seo-related-links a:focus {
    background: #e5edf9 !important;
    color: #244fa8 !important;
    text-decoration: none !important;
}

@media screen and (min-width: 768px) and (max-width: 1000px) {
    #body.package-seo-page .package-seo-related .packages-items {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media screen and (max-width: 767px) {
    #body.package-seo-page .package-seo-related .packages-items {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        padding: 12px !important;
    }

    #body.package-seo-page .package-seo-related .packages-items .box {
        width: 100% !important;
        max-width: 390px !important;
        margin: 0 auto !important;
    }

    #body.package-seo-page .package-seo-related .packages-items .offer-image-box {
        height: 190px !important;
        min-height: 190px !important;
    }

    #body.package-seo-page .package-seo-related .packages-items .box h2,
    #body.package-seo-page .package-seo-related .packages-items .box h3 {
        min-height: 0 !important;
        padding: 12px !important;
        font-size: 17px !important;
    }

    #body.package-seo-page .package-seo-related .packages-items .departure-from,
    #body.package-seo-page .package-seo-related .packages-items .available-dates {
        min-height: 0 !important;
    }

    #body.package-seo-page .package-seo-related-links-frame {
        padding: 16px !important;
    }

    #body.package-seo-page .package-seo-related-links {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 9px !important;
    }

    #body.package-seo-page .package-seo-related-links a {
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
    }
}

/* ================================================================
   PACKAGE SEO — SIMILAR PACKAGES SOFTER CORNERS
   ================================================================ */

/* Round the visible card image without changing image dimensions. */
#body.package-seo-page .package-seo-related .packages-items .offer-image-box,
#body.package-seo-page .package-seo-related .packages-items .offer-image-box > a,
#body.package-seo-page .package-seo-related .packages-items .offer-image-box img {
    border-radius: 6px 6px 0 0 !important;
}

/* Slightly soften each Similar Package card. */
#body.package-seo-page .package-seo-related .packages-items .box {
    border-radius: 6px !important;
}

/* Match the site's softer CTA treatment. */
#body.package-seo-page .package-seo-related .packages-items .box > a:last-child,
#body.package-seo-page .package-seo-related .packages-items .box > a:last-child button {
    border-radius: 0 0 6px 6px !important;
}

/* Explore More links use the same modest corner radius. */
#body.package-seo-page .package-seo-related-links a {
    border-radius: 6px !important;
}

/* ================================================================
   PACKAGE SEO — OVERVIEW MAP / IMAGE ALIGNMENT
   Keep overview maps/images to the right of the introductory copy.
   ================================================================ */

@media screen and (min-width: 768px) {
    #body.package-seo-page .package-seo-overview img.alignright {
        float: right !important;
        width: min(46%, 500px) !important;
        max-width: 500px !important;
        height: auto !important;
        margin: 0 0 18px 30px !important;
        clear: none !important;
    }

    #body.package-seo-page .package-seo-overview::after {
        content: "";
        display: table;
        clear: both;
    }
}

/* Mobile stays stacked and full-width for readability. */
@media screen and (max-width: 767px) {
    #body.package-seo-page .package-seo-overview img.alignright {
        float: none !important;
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        margin: 16px 0 18px !important;
        clear: both !important;
    }
}

