/* =========================================================
   FerryGoGo.co.uk custom CSS
   Cleaned, structured and updated version
   ========================================================= */


/* =========================================================
   1. Booking module
   ========================================================= */

#bookingmodule {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 285px;
    margin-bottom: 20px;
    border-radius: 6px !important;
    background-color: #001e60;
}

@media (max-width: 600px) {
    #bookingmodule {
        height: 600px !important;
        margin-bottom: 20px;
        border-radius: 6px !important;
    }
}


/* =========================================================
   2. General typography and content styling
   ========================================================= */

blockquote p {
    font-size: 20px !important;
}

/* Bulletpoints in normal post content */
.post ul {
    list-style: initial;
    padding-left: 20px;
}

/*
   Elementor content lists.
   Scoped to text/post content widgets to avoid breaking menus,
   icon lists and other Elementor widgets.
*/
.elementor-widget-text-editor ul,
.elementor-widget-theme-post-content ul {
    list-style: initial;
    padding-left: 20px;
}

/* Smaller titles in Elementor post cards / archive cards */
.elementor-posts .elementor-post__title,
.elementor-posts .elementor-post__title a,
.elementor-widget-posts .elementor-post__title,
.elementor-widget-posts .elementor-post__title a,
.elementor-widget-archive-posts .elementor-post__title,
.elementor-widget-archive-posts .elementor-post__title a,
.elementor-post .elementor-post__title,
.elementor-post .elementor-post__title a {
    font-size: 18px !important;
    line-height: 1.25 !important;
    font-weight: 700;
}

figure.wp-block-gallery {
    margin-bottom: 30px;
}

.wp-block-image img {
    border-radius: 5px !important;
}

body .font80 {
    font-size: 13px;
}


/* =========================================================
   3. Header, menu and search
   ========================================================= */

.top_menu {
    cursor: pointer;
}

/* Wider submenu */
nav.top_menu ul.sub-menu {
    width: 290px;
}

/* Smaller search result titles */
.re-search-result-title {
    font-size: 18px !important;
}

.rhi-search-plus {
    display: none;
}


/* =========================================================
   4. Theme / Rehub utility styling
   ========================================================= */

.violetgradient_bg {
    background-color: #001e60;
    background: linear-gradient(to bottom, #001e60 0, #0a003f 100%);
}

#rh_woo_layout_inimage .rh_woo_code_zone_content a {
    color: #001e60;
    text-decoration: underline;
}

/*
   Note: this makes links inside .text-clamp non-clickable.
   Keep only if this is intentional for card snippets.
*/
.text-clamp a {
    pointer-events: none;
    cursor: default;
    color: #000;
    text-decoration: underline;
}


/* =========================================================
   5. WooCommerce / affiliate store pages
   ========================================================= */

/* Hide product meta / author in product blocks */
.summary .product_meta,
.re_wooinner_info .product_meta {
    display: none;
}

.woocommerce .post-meta span {
    display: none;
}

/* Hide category box on shop/store pages */
.widget.rh-cartbox {
    display: none;
    margin: 0 0 25px;
}

.woo-tax-logo img {
    max-width: 100%;
    max-height: 100%;
}

/* Store-header H1 */
.woo-tax-name h1.font150,
.woo-tax-name h1.mt0 {
    margin-top: 24px !important;
}

.woo-tax-name h1.font150 {
    margin-bottom: 10px;
    font-size: 2.5rem !important;
    line-height: 1.2;
    font-weight: 700;
}

/* Subtitle on affiliate store pages */
.term-description.post {
    margin-top: 10px;
    margin-bottom: 20px;
    color: #4a4a4a;
}

/* Hide rating block */
.rh-star-ajax {
    display: none;
}

/*
   Hide 'visit site' button.
   Scoped to WooCommerce so it does not hide every Rehub button sitewide.
*/
.woocommerce a.rehub_main_btn.re_track_btn {
    display: none;
}

/* Hide filter/sort button */
.re_filtersort_btn.resort_3 {
    display: none !important;
}

@media (max-width: 767px) {
    .woo-tax-name h1.mt0,
    .woo-tax-name h1.font150 {
        margin-top: 0 !important;
    }
}

@media (max-width: 700px) {
    .rh-mini-sidebar {
        display: none !important;
    }

    .woo-tax-name h1 {
        font-size: 1.8rem !important;
        line-height: 1.2 !important;
    }
}


/* =========================================================
   6. Discount / promo images
   ========================================================= */

/*
   Note: this selector targets every image with exact width 1000
   and height 250. Ideally, give these images their own class,
   for example .fg-discount-header-image.
*/
img[width='1000'][height='250'] {
    margin-bottom: 15px;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}


/* =========================================================
   7. Deals widget
   ========================================================= */

.fg-deals-widget {
    margin: 0 0 20px;
    padding: 14px 16px;
    border: 1px solid #dde3f0;
    border-radius: 10px;
    background: #f5f7fb;
    font-size: 14px;
}

.fg-deals-widget-title {
    margin-bottom: 8px;
    color: #555;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fg-deals-widget-list {
    margin: 0 0 10px;
    padding: 0;
    list-style: none;
}

.fg-deals-widget-list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin: 3px 0;
    line-height: 1.4;
}

.fg-deals-widget-list .fg-label {
    flex: 0 0 140px;
    font-weight: 600;
}

.fg-deals-widget-list .fg-value {
    flex: 1 1 auto;
    text-align: right;
    white-space: nowrap;
    font-weight: 600;
}

.fg-deals-widget-extra {
    margin-top: 8px;
    font-size: 13px;
}


/* =========================================================
   8. FerryGoGo author box
   ========================================================= */

.fgg-author-box {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin: 40px 0 32px;
    padding: 24px;
    border: 1px solid #dce3ed;
    border-radius: 8px;
    background: #f7f9fc;
    font-family: inherit;
}

.fgg-author-avatar img {
    display: block;
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    border: 3px solid #fff;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.fgg-author-info {
    flex: 1;
    min-width: 0;
}

.fgg-author-label {
    margin: 0 0 4px;
    color: #888;
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fgg-author-name {
    margin: 0 0 2px;
    font-size: 18px;
    line-height: 1.2;
    font-weight: 700;
}

.fgg-author-name a {
    color: #001e60;
    text-decoration: none;
}

.fgg-author-name a:hover {
    color: #ff4b00;
}

.fgg-author-role {
    margin: 0 0 10px;
    color: #666;
    font-size: 13px;
}

.fgg-author-bio {
    margin: 0 0 14px;
    color: #444;
    font-size: 14px;
    line-height: 1.6;
}

.fgg-author-footer {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}

.fgg-author-link {
    color: #ff4b00;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.fgg-author-link:hover {
    text-decoration: underline;
}

.fgg-social-links {
    display: flex;
    align-items: center;
    gap: 10px;
}

.fgg-social-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border: 1px solid #dce3ed;
    border-radius: 20px;
    color: #555;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.15s ease;
}

.fgg-social-link:hover {
    border-color: #001e60;
    background: #fff;
    color: #001e60;
}


/* =========================================================
   9. FerryGoGo first-hand box
   ========================================================= */

.fgg-firsthand-box {
    margin: 32px 0;
    padding: 20px 24px;
    border: 1px solid #dce3ed;
    border-radius: 8px;
    background: #f7f9fc;
}

.fgg-firsthand-label {
    margin: 0 0 8px;
    color: #ff4b00;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.fgg-firsthand-text {
    margin: 0 0 12px;
    color: #444;
    font-size: 15px;
    line-height: 1.6;
}

.fgg-firsthand-link {
    display: block;
    margin-bottom: 6px;
    color: #001e60;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.fgg-firsthand-link:hover {
    color: #ff4b00;
    text-decoration: underline;
}


/* =========================================================
   10. FerryGoGo authority / trust notes
   ========================================================= */

.fgg-authority-note {
    margin: 26px 0;
    padding: 18px 22px;
    border: 1px solid #dce3ed;
    border-radius: 8px;
    background: #f7f9fc;
    color: #444;
    font-size: 15px;
    line-height: 1.65;
    box-shadow: 0 4px 14px rgba(0, 30, 96, 0.04);
}

/*
   Standalone note title:
   <div class="fgg-authority-note">
     <strong>FerryGoGo tip</strong>
     <p>Text...</p>
   </div>
*/
.fgg-authority-note > strong {
    display: block;
    margin-bottom: 5px;
    color: #001e60;
    font-size: 16px;
    line-height: 1.35;
}

/*
   Inline bold text inside paragraphs/lists should not create a line break:
   <p><strong>Texel</strong> is the easiest...</p>
*/
.fgg-authority-note p strong,
.fgg-authority-note li strong {
    display: inline;
    margin-bottom: 0;
    color: #001e60;
    font-size: inherit;
    line-height: inherit;
}

.fgg-authority-note a {
    color: #001e60;
    font-weight: 600;
    text-decoration: none;
    text-underline-offset: 2px;
}

.fgg-authority-note a:hover {
    color: #ff4b00;
    text-decoration: underline;
}

/* Link row inside authority notes */
.fgg-authority-note .fgg-note-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: 12px;
    font-size: 14px;
    line-height: 1.4;
}

.fgg-authority-note .fgg-note-links a {
    display: inline-flex;
    align-items: center;
    line-height: 1.4;
    white-space: nowrap;
}


/* =========================================================
   11. FerryGoGo press / media box
   ========================================================= */

.fgg-press-box {
    margin: 30px 0;
    padding: 20px 24px;
    border: 1px solid #dce3ed;
    border-radius: 8px;
    background: #f7f9fc;
    color: #444;
    font-size: 15px;
    line-height: 1.65;
    box-shadow: 0 4px 14px rgba(0, 30, 96, 0.04);
}

.fgg-press-box h2 {
    margin: 0 0 10px;
    color: #001e60;
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
}

.fgg-press-box p {
    margin: 0 0 12px;
}

.fgg-press-box p:last-child {
    margin-bottom: 0;
}

.fgg-press-box ul {
    margin: 14px 0 18px 20px;
    padding-left: 18px;
    list-style: initial;
}

.fgg-press-box li {
    margin-bottom: 6px;
}

.fgg-press-box a {
    color: #001e60;
    font-weight: 600;
    text-decoration: none;
    text-underline-offset: 2px;
}

.fgg-press-box a:hover {
    color: #ff4b00;
    text-decoration: underline;
}

.fgg-press-buttons {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin: 18px 0 12px;
}

.fgg-press-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 16px;
    border: 1px solid #001e60;
    border-radius: 999px;
    background: #001e60;
    color: #fff !important;
    font-size: 14px;
    line-height: 1.3;
    font-weight: 700;
    text-align: center;
    text-decoration: none !important;
    transition: all 0.15s ease;
}

.fgg-press-button:hover {
    border-color: #ff4b00;
    background: #ff4b00;
    color: #fff !important;
    text-decoration: none !important;
}

.fgg-press-button.secondary {
    border-color: #ff4b00;
    background: #ff4b00;
}

.fgg-press-button.secondary:hover {
    border-color: #001e60;
    background: #001e60;
}

.fgg-small-note {
    color: #666;
    font-size: 14px;
    line-height: 1.55;
}


/* =========================================================
   12. Shared FerryGoGo info-box refinements
   ========================================================= */

.fgg-author-box,
.fgg-firsthand-box,
.fgg-authority-note,
.fgg-press-box {
    box-shadow: 0 4px 14px rgba(0, 30, 96, 0.04);
}

.fgg-firsthand-box strong,
.fgg-author-box strong,
.fgg-press-box strong {
    color: #001e60;
}

.fgg-firsthand-box a,
.fgg-author-box a,
.fgg-press-box a {
    text-underline-offset: 2px;
}


/* =========================================================
   13. Mobile refinements for FerryGoGo boxes
   ========================================================= */

@media (max-width: 600px) {
    .fgg-authority-note {
        margin: 22px 0;
        padding: 16px 18px;
        font-size: 14px;
        line-height: 1.6;
    }

    .fgg-authority-note > strong {
        font-size: 15px;
    }

    .fgg-authority-note p strong,
    .fgg-authority-note li strong {
        font-size: inherit;
    }

    .fgg-authority-note .fgg-note-links {
        display: block;
        margin-top: 10px;
    }

    .fgg-authority-note .fgg-note-links a {
        display: block;
        margin: 5px 0;
        white-space: normal;
    }

    .fgg-author-box,
    .fgg-firsthand-box,
    .fgg-press-box {
        padding: 18px;
    }

    .fgg-author-box {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .fgg-author-footer {
        justify-content: center;
    }

    .fgg-press-box {
        margin: 24px 0;
        font-size: 14px;
        line-height: 1.6;
    }

    .fgg-press-box h2 {
        font-size: 19px;
    }

    .fgg-press-buttons {
        display: block;
    }

    .fgg-press-button {
        display: flex;
        width: 100%;
        margin: 8px 0;
    }
}


/* =========================================================
   14. FerryGoGo footer media
   ========================================================= */

.fgg-footer-logo img {
    max-width: 311px;
    width: 100%;
    height: auto;
}

.fgg-footer-badges {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 6px;
}

.fgg-footer-badges img {
    max-width: 100%;
    height: auto;
}

@media (max-width: 767px) {
    .fgg-footer-logo {
        text-align: center;
    }

    .fgg-footer-logo img {
        margin-left: auto;
        margin-right: auto;
    }

    .fgg-footer-badges {
        justify-content: center;
        gap: 20px;
    }
}


/* =========================================================
   15. FerryGoGo route comparison table
   ========================================================= */

.fgg-table-scroll,
.fgg-table-scroll * {
    box-sizing: border-box;
}

.fgg-table-scroll {
    width: 100%;
    margin: 0 0 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 10px;
}

.fgg-route-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14.5px;
    line-height: 1.45;
    color: #17324a;
    background: #fff;
    border: 1px solid #dce3ed;
    border-radius: 10px;
    overflow: hidden;
}

.fgg-route-table thead th {
    padding: 12px 14px;
    background: #001e60;
    color: #fff;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 700;
    text-align: left;
    vertical-align: middle;
    white-space: nowrap;
}

.fgg-route-table td {
    padding: 12px 14px;
    border-top: 1px solid #e8eef8;
    vertical-align: top;
}

.fgg-route-table tbody tr:nth-child(even) {
    background: #f7f9fc;
}

.fgg-route-table tbody tr:hover {
    background: #edf3ff;
}

.fgg-route-table td a {
    color: #001e60;
    font-weight: 700;
    text-decoration: none;
    text-underline-offset: 2px;
}

.fgg-route-table td a:hover {
    color: #ff4b00;
    text-decoration: underline;
}

.fgg-route-table td:nth-child(4) {
    color: #001e60;
    font-weight: 700;
    white-space: nowrap;
}

.fgg-table-note {
    margin: 0 0 24px;
    color: #60748a;
    font-size: 12.5px;
    line-height: 1.5;
}

.fgg-sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 640px) {
    .fgg-table-scroll {
        overflow-x: visible;
        border-radius: 0;
    }

    .fgg-route-table,
    .fgg-route-table tbody,
    .fgg-route-table tr,
    .fgg-route-table td {
        display: block;
        width: 100%;
    }

    .fgg-route-table {
        border: 0;
        background: transparent;
    }

    .fgg-route-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
    }

    .fgg-route-table tr {
        margin: 0 0 14px;
        border: 1px solid #dce3ed;
            border-radius: 8px;
        background: #fff;
        overflow: hidden;
    }

    .fgg-route-table tbody tr:nth-child(even) {
        background: #fff;
    }

    .fgg-route-table tbody tr:hover {
        background: #fff;
    }

    .fgg-route-table td {
        display: flex;
        align-items: baseline;
        gap: 12px;
        padding: 9px 14px;
        border: 0;
        border-top: 1px solid #eef2f8;
        overflow-wrap: anywhere;
    }

    .fgg-route-table td:first-child {
        padding: 11px 14px;
        border-top: 0;
        background: #f7f9fc;
    }

    .fgg-route-table td::before {
        content: attr(data-label);
        flex: 0 0 116px;
        color: #60748a;
        font-size: 11px;
        line-height: 1.5;
        font-weight: 800;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .fgg-route-table td:first-child::before {
        display: none;
    }

    .fgg-route-table td:first-child,
    .fgg-route-table td:first-child a {
        color: #001e60;
        font-size: 16px;
        line-height: 1.35;
        font-weight: 700;
    }

    .fgg-route-table td:nth-child(4) {
        white-space: normal;
    }
}

/* =========================================================
   16. External clickout links (/go/) - underline + arrow
   ========================================================= */

/*
   Underlines affiliate clickout links (/go/ path) in body text,
   with a small external arrow. Buttons and image/logo links excluded.
   !important beats ReHub's theme-level a { text-decoration: none }.
*/
a[href*="/go/"]:not(.elementor-button):not(.rehub_main_btn):not(.re_track_btn):not(.btn):not(.button):not(.rh_button):not(.wp-block-button__link):not(:has(img)) {
    text-decoration: underline !important;
    text-underline-offset: 2px;
    text-decoration-thickness: 1px;
}

a[href*="/go/"]:not(.elementor-button):not(.rehub_main_btn):not(.re_track_btn):not(.btn):not(.button):not(.rh_button):not(.wp-block-button__link):not(:has(img)):hover {
    text-decoration-thickness: 2px !important;
}

/* Small external arrow after the link text */
a[href*="/go/"]:not(.elementor-button):not(.rehub_main_btn):not(.re_track_btn):not(.btn):not(.button):not(.rh_button):not(.wp-block-button__link):not(:has(img))::after {
    content: "\2197";          /* ↗ */
    display: inline-block;     /* keeps the arrow off the underline */
    margin-left: 3px;
    font-size: 0.85em;
    text-decoration: none;
    vertical-align: baseline;
}

/* No arrow in product-card titles (30 Oct 2026): the title column is too narrow and the card button already shows one */
.list_woo h3 a[href*="/go/"]::after,
.rh_gr_top_middle h3 a[href*="/go/"]::after {
    display: none !important;
}
/* 2 Nov 2026: stop wide tables/maps stretching single posts (flex child) */
.post-inner-wrapper{min-width:0;max-width:100%}
.post-inner-wrapper .fgg-table-scroll{max-width:100%;overflow-x:auto}

/* 2 Nov 2026: operator cards in posts */
.fgg-op-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0 8px}
.fgg-op-card{background:#fff;border:1px solid #e3e8ef;border-radius:10px;padding:14px 16px;display:flex;flex-direction:column}
.fgg-op-card p{margin:0 0 8px;font-size:15px;line-height:1.5}
.fgg-op-card .fgg-op-name{font-weight:700;font-size:17px;color:#001E60;margin-bottom:6px}
.fgg-op-card .fgg-op-deal{font-size:14px;color:#333}
.fgg-op-card .fgg-op-cta{margin-top:auto;margin-bottom:0}
.fgg-op-grid .fgg-op-card .fgg-op-cta a.fgg-op-btn.fgg-op-btn{display:inline-block;background:#ff5a00;color:#fff!important;padding:9px 14px;border-radius:6px;font-weight:700;text-decoration:none!important;font-size:14px}
.fgg-op-grid .fgg-op-card .fgg-op-cta a.fgg-op-btn.fgg-op-btn:hover{background:#e04f00}
.fgg-op-card .fgg-op-more{font-size:13px;margin-left:8px}
.fgg-key{display:inline-block;width:18px;height:4px;vertical-align:middle;margin:0 6px 0 4px}

.fgg-op-grid.fgg-op-grid .fgg-op-card.fgg-op-card .fgg-op-cta a.fgg-op-btn.fgg-op-btn.fgg-op-btn.fgg-op-btn.fgg-op-btn.fgg-op-btn{text-decoration:none!important;color:#fff!important}

@media (max-width:640px){.fgg-op-grid{grid-template-columns:1fr}}

/* 2 Nov 2026: map info windows with buttons */
.fgg-map-info{font-size:14px;line-height:1.45;max-width:300px}
.fgg-map-info .fgg-map-port{font-size:16px;color:#001E60}
.fgg-map-info .fgg-map-sub{font-size:12px;color:#666}
.fgg-map-info ul{margin:6px 0 8px 16px;padding:0}
.fgg-map-info li{margin:0 0 3px}
.fgg-map-info .fgg-map-btns{margin:6px 0 4px}
.fgg-map-info.fgg-map-info .fgg-map-btns a.fgg-map-btn.fgg-map-btn.fgg-map-btn.fgg-map-btn.fgg-map-btn.fgg-map-btn{display:inline-block;background:#ff5a00;color:#fff!important;padding:6px 10px;border-radius:5px;font-weight:700;font-size:13px;text-decoration:none!important;margin:0 4px 4px 0}
.fgg-map-info .fgg-map-more{font-size:13px}


/* fgg gallery layout (4 Nov 2026): block comments were stripped from older posts on 28 Oct, so core no longer injects the gallery flex layout. These rules restore it. */
.wp-block-gallery.has-nested-images{display:flex;flex-wrap:wrap;align-items:normal;gap:var(--wp--style--unstable-gallery-gap,16px);margin-left:0;padding-left:0}
.wp-block-gallery.has-nested-images figure.wp-block-image{margin:0}
.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image img{height:100%;object-fit:cover;width:100%}
