/* ============================================================
   Cablesson 2026 - content pages + footer  (parts/content.css)
   Scope: .page .entry-content (never .home / .woocommerce bodies)
   plus sitewide footer. Tokens: --cb-* from modern-2026.css
   ============================================================ */

/* ---------- Page title + prose ---------- */
.page:not(.home):not(.woocommerce-page) .entry-header { margin-bottom: 28px; }
.page:not(.home):not(.woocommerce-page) .entry-title { line-height: 1.1; margin-bottom: 8px; }

.page:not(.home):not(.woocommerce-page) .entry-content {
    font-size: 16px; line-height: 1.65; color: var(--cb-ink);
}
.page:not(.home):not(.woocommerce-page) .entry-content p { margin: 0 0 1em; }
.page:not(.home):not(.woocommerce-page) .entry-content .wpb_text_column p,
.page:not(.home):not(.woocommerce-page) .entry-content .wpb_text_column li { max-width: 72ch; }
.page:not(.home):not(.woocommerce-page) .entry-content ul,
.page:not(.home):not(.woocommerce-page) .entry-content ol { padding-left: 1.4em; margin: 0 0 1.1em; }
.page:not(.home):not(.woocommerce-page) .entry-content li { margin-bottom: .4em; }
.page:not(.home):not(.woocommerce-page) .entry-content li::marker { color: var(--cb-brand); }
.page:not(.home):not(.woocommerce-page) .entry-content a { color: var(--cb-brand-dark); text-underline-offset: 2px; }
.page:not(.home):not(.woocommerce-page) .entry-content a:hover { color: var(--cb-brand); }

/* Plain-editor pages (Terms etc.): a readable measure, left aligned with the title */
.page-template-default .entry-content { max-width: 74ch; margin-bottom: 56px; }
.page-template-default .entry-content p { margin-bottom: 1.1em; }
.page-template-default .entry-content strong { font-weight: 700; }

/* Heading scale. Content jumps h1 -> h3 and WPBakery sets inline font-size
   (no !important on size, so CSS can cap it). Every in-content heading stays below the h1. */
.page:not(.home):not(.woocommerce-page) .entry-content h2 {
    font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 800; letter-spacing: -.03em; line-height: 1.2; margin: 1.2em 0 .5em;
}
.page:not(.home):not(.woocommerce-page) .entry-content h3,
.page:not(.home):not(.woocommerce-page) .entry-content h3[style*="font-size"] {
    font-size: clamp(1.25rem, 1.8vw, 1.5rem) !important; font-weight: 700; letter-spacing: -.02em; line-height: 1.25;
}
.page:not(.home):not(.woocommerce-page) .entry-content h3[style*="font-size:36px"],
.page:not(.home):not(.woocommerce-page) .entry-content h3[style*="font-size: 36px"] {
    font-size: clamp(1.5rem, 2.4vw, 2rem) !important; font-weight: 800; letter-spacing: -.03em;
}
.page:not(.home):not(.woocommerce-page) .entry-content h3[style*="font-size:50px"],
.page:not(.home):not(.woocommerce-page) .entry-content h3[style*="font-size: 50px"] {
    font-size: clamp(2rem, 4vw, 2.75rem) !important; font-weight: 800; letter-spacing: -.03em; line-height: 1.1;
}
.page:not(.home):not(.woocommerce-page) .entry-content h4 {
    font-size: clamp(1rem, 1.2vw, 1.125rem) !important; font-weight: 500; line-height: 1.6; letter-spacing: 0;
}
/* Legacy teal / cyan heading colours are inline !important; text-fill overrides them for painting. */
.entry-content h3[style*="#339f91"], .entry-content h3[style*="#00a1e1"] {
    -webkit-text-fill-color: var(--cb-brand-dark);
}
.entry-content .title_subtitle_separator,
.entry-content hr.title_subtitle_separator { border-bottom-color: var(--cb-brand) !important; border-bottom-width: 3px; width: 48px; }
.entry-content .title_subtitle h3 { margin-bottom: 14px; }

/* Grey body text from the old theme: lift to AA */
.entry-content h4[style*="#777777"], .entry-content [style*="color:#777777"] { -webkit-text-fill-color: var(--cb-ink-2); }

/* ---------- Boxed WPBakery rows ---------- */
.page-template-page-full_single_footer .entry-content .vc_row.vc_row-has-fill { border-radius: var(--cb-radius); overflow: hidden; }
.entry-content .vc_row.wpb_row { margin-bottom: 0; }
.entry-content img { max-width: 100%; height: auto; }

/* ---------- Icon boxes (FAQ / contact tiles) ---------- */
.entry-content .shortcode_icon_box .icon_wrapper { border-color: var(--cb-brand) !important; background-color: #fff !important; }
.entry-content .shortcode_icon_box .icon { color: var(--cb-brand-dark) !important; }
.entry-content .shortcode_icon_box h3.title { margin-top: 14px; }
.entry-content a.icon_box_read_more {
    display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px;
    border: 1px solid var(--cb-ink); border-radius: 999px; background: transparent; color: var(--cb-ink) !important;
    font-weight: 600; font-size: 12px; letter-spacing: .08em; text-decoration: none;
}
.entry-content a.icon_box_read_more:hover { background: var(--cb-ink); color: #fff !important; }

/* ---------- Accordions / toggles (FAQ) ---------- */
h3.wpb_accordion_header, .entry-content h3.wpb_accordion_header { font-size: 16px !important; font-weight: 600; letter-spacing: 0; line-height: 1.4; }
.wpb_accordion .wpb_accordion_wrapper { display: grid; gap: 10px; }
.wpb_accordion .wpb_accordion_section { margin: 0; border: 0; }
.wpb_accordion .wpb_accordion_header {
    position: relative; margin: 0; padding: 0; background: #fff; border: 1px solid var(--cb-line);
    border-radius: 12px; font-size: 16px; line-height: 1.4; cursor: pointer;
    transition: border-color .15s ease, box-shadow .2s ease, background-color .15s ease;
}
.wpb_accordion .wpb_accordion_header:hover { border-color: #cfd8e6; box-shadow: var(--cb-shadow); }
.wpb_accordion .wpb_accordion_header a {
    display: block; min-height: 44px; box-sizing: border-box; padding: 13px 52px 13px 18px;
    color: var(--cb-ink) !important; font-weight: 600; font-size: 16px; line-height: 1.4; text-decoration: none;
}
.wpb_accordion .wpb_accordion_header .ui-accordion-header-icon { display: none !important; }
.wpb_accordion .wpb_accordion_header::after {
    content: ""; position: absolute; right: 18px; top: 50%; width: 9px; height: 9px; margin-top: -7px;
    border-right: 2px solid var(--cb-brand-dark); border-bottom: 2px solid var(--cb-brand-dark);
    transform: rotate(45deg); transition: transform .2s ease; pointer-events: none;
}
.wpb_accordion .wpb_accordion_header.ui-accordion-header-active,
.wpb_accordion .wpb_accordion_header[aria-expanded="true"] {
    background: var(--cb-bg-soft); border-color: var(--cb-brand); border-bottom-left-radius: 0; border-bottom-right-radius: 0;
}
.wpb_accordion .wpb_accordion_header[aria-expanded="true"]::after { transform: rotate(-135deg); margin-top: -2px; }
.wpb_accordion .wpb_accordion_header:focus-visible { outline: 3px solid var(--cb-brand); outline-offset: 2px; }
.wpb_accordion .wpb_accordion_content {
    margin: -10px 0 0; padding: 18px 20px 8px; background: #fff; border: 1px solid var(--cb-brand); border-top: 0;
    border-radius: 0 0 12px 12px; box-sizing: border-box;
}
.wpb_accordion .wpb_accordion_content, .wpb_accordion .wpb_accordion_content p, .wpb_accordion .wpb_accordion_content li { font-size: 16px; line-height: 1.65; }
.wpb_accordion .wpb_accordion_content p { max-width: 72ch; }

/* ---------- Tabs / tour ---------- */
.wpb_tabs .wpb_tabs_nav, .vc_tta-tabs-list { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 18px; padding: 0; border: 0; background: none; }
.wpb_tabs .wpb_tabs_nav li, .vc_tta-tab { list-style: none; margin: 0; border: 0; background: none; }
.wpb_tabs .wpb_tabs_nav li a, .vc_tta-tab > a {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px;
    border: 1px solid var(--cb-line); background: #fff; color: var(--cb-ink); font-weight: 600; text-decoration: none;
}
.wpb_tabs .wpb_tabs_nav li.ui-tabs-active a, .vc_tta-tab.vc_active > a { background: var(--cb-ink); border-color: var(--cb-ink); color: #fff; }
.wpb_tabs .wpb_tab { border: 1px solid var(--cb-line); border-radius: var(--cb-radius); padding: 20px; background: #fff; }

/* ---------- Message boxes ---------- */
.entry-content .vc_message_box, .entry-content .wpb_content_element.vc_message_box {
    border: 1px solid var(--cb-line); border-left: 4px solid var(--cb-brand); border-radius: var(--cb-radius);
    background: var(--cb-bg-soft); color: var(--cb-ink); padding: 16px 20px; margin-bottom: 1.2em;
}

/* ---------- Tables ---------- */
.entry-content table { width: 100%; border-collapse: separate; border-spacing: 0; border: 1px solid var(--cb-line); border-radius: 12px; overflow: hidden; font-size: 15px; }
.entry-content th { background: var(--cb-bg-soft); color: var(--cb-ink); font-weight: 700; text-align: left; }
.entry-content th, .entry-content td { padding: 12px 16px; border: 0; border-bottom: 1px solid var(--cb-line); vertical-align: top; }
.entry-content tr:last-child td { border-bottom: 0; }
.entry-content tbody tr:hover td { background: #fbfcfe; }
@media (max-width: 767px) { .entry-content table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; } }

/* ---------- Contact Form 7 ---------- */
.wpcf7-form p { margin: 0 0 6px; }
.wpcf7-form p:has(+ p .wpcf7-form-control-wrap) {
    margin: 0 0 6px; font-size: 14px; font-weight: 600; color: var(--cb-ink);
}
.wpcf7-form p:has(.wpcf7-form-control-wrap) { margin-bottom: 18px; }
.wpcf7-form-control-wrap { display: block; }
.wpcf7-form input[type=text], .wpcf7-form input[type=email], .wpcf7-form input[type=tel], .wpcf7-form input[type=url],
.wpcf7-form input[type=number], .wpcf7-form input[type=date], .wpcf7-form textarea, .wpcf7-form select {
    width: 100%; max-width: 100%; box-sizing: border-box; min-height: 46px; height: auto; padding: 11px 14px;
    font-size: 16px; line-height: 1.4; color: var(--cb-ink); background-color: #fff;
    border: 1px solid #cfd8e6; border-radius: 10px;
}
.wpcf7-form textarea { min-height: 140px; resize: vertical; }
.wpcf7-form select {
    appearance: none; -webkit-appearance: none; padding-right: 40px;
    background-image: linear-gradient(45deg, transparent 50%, var(--cb-ink-2) 50%), linear-gradient(135deg, var(--cb-ink-2) 50%, transparent 50%);
    background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px; background-repeat: no-repeat;
}
.wpcf7-form input:hover, .wpcf7-form textarea:hover, .wpcf7-form select:hover { border-color: var(--cb-ink-2); }
.wpcf7-form input.wpcf7-not-valid, .wpcf7-form textarea.wpcf7-not-valid, .wpcf7-form select.wpcf7-not-valid {
    border-color: #c0362c; box-shadow: 0 0 0 3px rgba(192,54,44,.12);
}
.wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: 13px; font-weight: 500; color: #b42318; }
.wpcf7-form .wpcf7-submit { min-height: 46px; padding: 0 32px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.wpcf7-spinner { vertical-align: middle; margin-left: 12px; }
.wpcf7 form .wpcf7-response-output {
    margin: 20px 0 0; padding: 14px 18px; border: 1px solid var(--cb-line); border-left-width: 4px; border-radius: 10px;
    background: var(--cb-bg-soft); color: var(--cb-ink); font-size: 14px;
}
.wpcf7 form.sent .wpcf7-response-output { border-color: #1a7f4b; background: #f0faf4; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output { border-color: #c0362c; background: #fff5f4; }
.wpcf7 form.failed .wpcf7-response-output, .wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: #b54708; background: #fffaf0; }
.wpcf7-acceptance label, .wpcf7-list-item label { display: inline-flex; gap: 8px; align-items: flex-start; font-size: 14px; }

/* ---------- Footer (sitewide, conservative) ---------- */
/* empty widget bands add ~60px of blank light/dark padding above the footer */
.gbtr_widgets_footer_wrapper:not(:has(.textwidget:not(:empty))):not(:has(.widget:not(.widget_text))) { display: none; }
.gbtr_footer_wrapper { padding: 40px 0 20px; }
.gbtr_footer_wrapper .bottom_wrapper { display: block; float: none; width: auto; text-align: center; padding: 0 20px; }
.gbtr_footer_wrapper .gbtr_footer_widget_copyrights {
    text-align: center !important; float: none; width: auto; max-width: 720px; margin: 0 auto; padding: 0 0 8px;
    font-size: 13px; line-height: 1.7; text-align: center; color: #cbd5e1;
}
.gbtr_footer_widget_copyrights strong { display: block; margin-bottom: 2px; font-size: 14px; font-weight: 700; color: #fff; }
.gbtr_footer_wrapper a { color: #fff; text-decoration-color: rgba(255,255,255,.4); }
.gbtr_footer_wrapper a:hover { color: #7cc7f5; }
.gbtr_footer_wrapper a:focus-visible { outline-color: #7cc7f5; }
.noxtics-fulfilment-credit {
    background: var(--cb-ink) !important; color: #94a3b8 !important; border-top: 1px solid rgba(255,255,255,.1);
    padding: 16px 20px 22px !important; font-size: 12px !important; letter-spacing: .02em;
}
.noxtics-fulfilment-credit a { color: #cbd5e1 !important; text-decoration-color: rgba(203,213,225,.4) !important; }
.noxtics-fulfilment-credit a:hover { color: #fff !important; }

@media (max-width: 767px) {
    .page:not(.home):not(.woocommerce-page) .entry-content { font-size: 16px; }
    .wpb_accordion .wpb_accordion_header a { padding: 12px 46px 12px 14px; font-size: 15px !important; }
    .wpb_accordion .wpb_accordion_content { padding: 14px 14px 4px; }
    .gbtr_footer_widget_copyrights { padding: 0 0 8px; }
}
