/* Editorial body only: shared Elementor sections and the article title keep their own styles. */
body:is(.single-news, .single-post) .cie-article-body {
    --cie-article-gap: clamp(24px, 2.083333vw, 40px);
    min-width: 0;
    max-width: 100%;
    font-size: clamp(16px, 1.041667vw, 18px);
    line-height: 1.7;
    overflow-wrap: anywhere;
}
body:is(.single-news, .single-post) .cie-article-body :is(h2, h3, h4) {
    color: #455963;
    line-height: 1.3;
    text-align: left;
    margin-top: var(--cie-article-gap) !important;
    margin-bottom: clamp(16px, 1.041667vw, 20px) !important;
}
.cie-article-body h2 { font-size: clamp(24px, 1.736111vw, 30px); }
.cie-article-body h3 { font-size: clamp(21px, 1.388889vw, 24px); }
.cie-article-body h4 { font-size: clamp(19px, 1.157407vw, 20px); }
.cie-article-body p { font-size: inherit; line-height: inherit; margin-block: 0 clamp(16px, 1.041667vw, 20px); }
body:is(.single-news, .single-post) .cie-article-body > :first-child { margin-top: 0 !important; }
.cie-article-body .cie-article-contact {
    display: flow-root;
    margin-block: var(--cie-article-gap);
    padding: clamp(24px, 2.604167vw, 50px);
    border: 0;
    border-radius: clamp(16px, 1.041667vw, 20px);
    background: #455963;
    color: #fff;
    text-align: left;
}
body:is(.single-news, .single-post) .cie-article-body .cie-article-contact h2 { color: #a6ce38; margin-top: 0 !important; clear: none; }
.cie-article-body .cie-article-contact :is(p, span, strong, a) { color: inherit; }
.cie-article-body .cie-article-contact a { text-decoration: underline; text-underline-offset: .15em; }
.cie-article-body .cie-article-contact > :last-child { margin-bottom: 0; }
.cie-article-body .cie-article-contact-image { float: right; width: 25%; height: auto; margin: 0 0 1em 1em; border-radius: 12px; }
.cie-article-body .cie-article-products {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
    gap: clamp(16px, 1.041667vw, 20px);
    align-items: start;
    margin-block: clamp(20px, 1.5625vw, 30px) var(--cie-article-gap);
}
.cie-article-body .cie-article-products > a { display: block; min-width: 0; }
.cie-article-body .cie-article-products img { display: block; width: 100%; height: auto; max-width: 100%; margin: 0; }
.cie-article-body .cie-article-table { max-width: 100%; overflow-x: auto; margin-block: var(--cie-article-gap); }
.cie-article-body .cie-article-table table { margin-bottom: 0; overflow-wrap: normal; word-break: normal; }
/* Keep comparison columns readable; their wrapper owns horizontal scrolling. */
.cie-article-body .cie-article-table table:has(tr > :nth-child(2)) { min-width: 36rem; }
.cie-article-body :is(a, .cie-article-table):focus-visible { outline: 2px solid #6b890f; outline-offset: 4px; }
@media (max-width: 600px) {
    .cie-article-body .cie-article-contact-image { float: none; width: min(100%, 220px); margin: 0 0 1em; }
}

/* Override the existing article-wide important heading colour inside the dark panel. */
body:is(.single-news, .single-post) .cie-article-body .cie-article-contact h2 { color: #a6ce38 !important; }
/* Component margins must not add a second gap to the template’s bottom padding. */
body:is(.single-news, .single-post) .cie-article-body > :last-child,
body:is(.single-news, .single-post) .cie-article-body .cie-article-contact > :last-child { margin-bottom: 0 !important; }

/* Imported News videos have no height attributes; retain their authored 16:9 format. */
body.single-news .cie-article-body .embed-responsive-16by9 > iframe {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
}

/* Both renderers of the legacy grey News panel use white headings. */
body.single-news .cie-article-body .cie-article-cta__title,
body.single-news .cie-article-body .cie-article-contact h2 {
    color: #fff !important;
}

/* Shared News demo intro spans the row above the two booking cards. */
body.single-news .elementor-704 .elementor-element-1912919 > .e-con-inner {
    flex-direction: column;
}
body.single-news .elementor-704 .elementor-element.elementor-element-e75ad3a,
body.single-news .elementor-704 .elementor-element.elementor-element-7c6c08e {
    --width: 100%;
}
/* Shared News demo cards sit together on desktop and retain their mobile stack. */
@media (min-width: 1025px) {
    body.single-news .elementor-704 .elementor-element.elementor-element-7c6c08e {
        --flex-direction: row;
        --flex-wrap: nowrap;
        align-items: stretch;
    }
    body.single-news .elementor-704 .elementor-element-7c6c08e > :is(.elementor-element-cd82426, .elementor-element-44e475a) {
        --width: auto;
        flex: 1 1 0;
        min-width: 0;
    }
}

/* One compact vertical rhythm for both legacy article CTA renderers. */
body:is(.single-news, .single-post) .cie-article-body :is(.cie-article-cta, .cie-article-contact) {
    --cie-article-cta-space: clamp(20px, 1.5625vw, 30px);
    margin-block: var(--cie-article-cta-space) !important;
    padding-block: var(--cie-article-cta-space);
}
body:is(.single-news, .single-post) .cie-article-body .cie-article-cta {
    align-items: start;
}
body:is(.single-news, .single-post) .cie-article-body .cie-article-cta__copy {
    gap: var(--cie-article-cta-space);
}
/* The copy gap owns spacing, including the title's article-wide important margin. */
body:is(.single-news, .single-post) .cie-article-body .cie-article-cta__copy > *,
body:is(.single-news, .single-post) .cie-article-body .cie-article-contact > :is(h2, p) {
    margin-block: 0 !important;
}
body:is(.single-news, .single-post) .cie-article-body .cie-article-contact > :is(h2, p) + :is(h2, p) {
    margin-block-start: var(--cie-article-cta-space) !important;
}
/* The box spacing also owns the gap before the next editorial heading. */
body:is(.single-news, .single-post) .cie-article-body :is(.cie-article-cta, .cie-article-contact) + :is(h2, h3, h4) {
    margin-block-start: clamp(20px, 1.5625vw, 30px) !important;
}

/* Keep article CTA titles compact across screen sizes. */
body:is(.single-news, .single-post) .cie-article-body .cie-article-cta__title,
body:is(.single-news, .single-post) .cie-article-body .cie-article-contact h2 {
    font-size: clamp(22px, 1.5625vw, 30px) !important;
}

/* Shared News and Blog article/sidebar rows use one global page gutter. */
body.single-news .elementor-704 .elementor-element.elementor-element-c065d3e,
body.single-post .elementor-1410 .elementor-element.elementor-element-16d48c5 {
    --padding-left: var(--cie-section-padding-inline) !important;
    --padding-right: var(--cie-section-padding-inline) !important;
    padding-inline: var(--cie-section-padding-inline) !important;
}
/* The outer row owns the gutter; boxed inner containers must not add it again. */
body.single-news .elementor-704 .elementor-element-c065d3e > .e-con-inner,
body.single-post .elementor-1410 .elementor-element-16d48c5 > .e-con-inner {
    padding-inline: 0 !important;
}

/* Both article booking sidebars scale together without their own scroll area. */
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element {
    --cie-sidebar-heading-size: clamp(26px, 1.979167vw, 38px);
    --cie-sidebar-padding-block: clamp(16px, 1.302083vw, 25px);
    --cie-sidebar-padding-inline: clamp(20px, 2.083333vw, 40px);
    --padding-top: var(--cie-sidebar-padding-block) !important;
    --padding-bottom: var(--cie-sidebar-padding-block) !important;
    --padding-left: var(--cie-sidebar-padding-inline) !important;
    --padding-right: var(--cie-sidebar-padding-inline) !important;
    padding-block: var(--cie-sidebar-padding-block) !important;
    padding-inline: var(--cie-sidebar-padding-inline) !important;
    gap: clamp(10px, .78125vw, 15px);
    max-height: none !important;
    overflow: visible !important;
}
html body.single-post .elementor-1410 .elementor-element.elementor-element-f382b11 {
    --cie-sidebar-heading-size: clamp(26px, 1.5625vw, 30px);
}
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .elementor-heading-title {
    font-size: var(--cie-sidebar-heading-size) !important;
    line-height: 1.25 !important;
}
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .elementor-widget-text-editor {
    font-size: clamp(16px, 1.041667vw, 20px) !important;
    line-height: 1.45 !important;
}
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .elementor-widget-text-editor p {
    font-size: inherit;
    line-height: inherit;
    margin-block: 0;
}
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .book_form_row {
    margin-bottom: clamp(10px, 1.041667vw, 20px);
}
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .book_form_row label {
    gap: clamp(6px, .520833vw, 10px);
}
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .book_form_row input:is([type="text"], [type="email"], [type="tel"], [type="submit"]) {
    box-sizing: border-box;
    height: clamp(40px, 2.34375vw, 45px);
    min-height: 40px;
    padding-block: 8px;
    font-size: 16px;
    line-height: 22px;
}
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .book_form .cie-form-privacy {
    font-size: clamp(13px, .729167vw, 14px);
    line-height: 1.4;
    margin-block: clamp(8px, .625vw, 12px) clamp(10px, 1.041667vw, 20px) !important;
}
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .book_form,
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .book_form > :first-child {
    margin-top: 0;
}
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .book_form,
html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element .book_form > :last-child {
    margin-bottom: 0;
}
/* Short laptop viewports use normal page scrolling so the whole form stays reachable. */
@media (max-height: 800px) {
    html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element {
        position: relative !important;
        top: auto !important;
        left: auto !important;
        width: 100% !important;
    }
    html body:is(.single-news, .single-post) :is(.elementor-704 .elementor-element-255ba6e, .elementor-1410 .elementor-element-f382b11).elementor-element.elementor-sticky__spacer {
        display: none !important;
    }
}
