/* Existing Skole components, scoped to the checked native guest-experience pages. */
@font-face {
    font-family: CMSJSensei;
    src: url('camping-swimming-hero/Sensei-Medium.woff') format('woff');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}
@font-face {
    font-family: CMSJCatamaran;
    src: url('camping-swimming-hero/Catamaran.ttf') format('truetype');
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}
body.cmsj-experience-page {
    --cmsj-experience-ink: #0a303a;
    --cmsj-experience-cream: #f4f1ea;
    --cmsj-experience-blue: #d5e6eb;
    --cmsj-experience-pink: #ffd9d2;
    --cmsj-experience-inline: 40px;
}
body.cmsj-experience-page #main .elementor .cmsj-experience-section {
    width: 100%;
    margin: 0;
    padding: 56px var(--cmsj-experience-inline);
    background: #fff;
    color: var(--cmsj-experience-ink);
}
body.cmsj-experience-page #main .cmsj-experience-section > .elementor-container {
    width: 100%;
    max-width: 1120px;
    min-height: 0;
    margin-inline: auto;
}
body.cmsj-experience-page #main .cmsj-experience-section .elementor-column {
    min-width: 0;
}
body.cmsj-experience-page #main .cmsj-experience-section > :where(.elementor-container) > :where(.elementor-column) > .elementor-widget-wrap {
    padding: 0;
    margin: 0;
    align-content: start;
    background: transparent;
}
body.cmsj-experience-page #main .cmsj-experience-section .elementor-widget {
    min-width: 0;
    margin-bottom: 0;
}
body.cmsj-experience-page #main .cmsj-experience-section .elementor-widget-container {
    margin: 0;
}
body.cmsj-experience-page #main .cmsj-experience-section :where(h1, h2, h3, .elementor-heading-title) {
    margin: 0;
    color: var(--cmsj-experience-ink);
    font: 400 34px/1.25 CMSJSensei, Sensei, sans-serif;
    letter-spacing: 0;
    text-transform: none;
    text-wrap: balance;
    overflow-wrap: anywhere;
}
body.cmsj-experience-page #main .cmsj-experience-section :where(p, li, .elementor-widget-text-editor) {
    color: var(--cmsj-experience-ink);
    font: 400 20px/1.6 CMSJCatamaran, Catamaran, sans-serif;
    overflow-wrap: anywhere;
}
body.cmsj-experience-page #main .cmsj-experience-section p {
    margin: 0;
}
body.cmsj-experience-page #main .cmsj-experience-section p + p {
    margin-top: 18px;
}
body.cmsj-experience-page #main .cmsj-experience-section > .elementor-motion-effects-container {
    display: none;
}
body.cmsj-experience-page #main .cmsj-experience-section :is(p, li) strong {
    font-weight: 750;
}
body.cmsj-experience-page #main .cmsj-experience-section a:focus-visible,
body.cmsj-experience-page #main .cmsj-experience-section .csj-comparison-wrap:focus-visible {
    outline: 3px solid #ad2a10;
    outline-offset: 4px;
}
body.cmsj-experience-page #main .cmsj-experience-section ::selection {
    color: var(--cmsj-experience-ink);
    background: #ffc1b9;
}
/* Keep the original title and lead, with a gallery photo replacing only theme decoration. */
body.cmsj-experience-page #main .elementor .cmsj-experience-hero {
    position: relative;
    padding-block: 58px 74px;
    background: var(--cmsj-experience-cream);
}
body.cmsj-experience-page #main .cmsj-experience-hero > .elementor-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 48px;
    align-items: center;
}
body.cmsj-experience-page #main .cmsj-experience-hero > .elementor-container > .elementor-column {
    width: 100%;
}
body.cmsj-experience-page #main .cmsj-experience-hero .cmsj-experience-hero-copy > .elementor-widget-wrap {
    gap: 26px;
}
body.cmsj-experience-page #main .cmsj-experience-hero h1 {
    font-size: clamp(38px, 4vw, 54px);
    line-height: 1.13;
}
body.cmsj-experience-page #main .cmsj-experience-hero :is(h2, h3) {
    font-size: 30px;
}
body.cmsj-experience-page #main .cmsj-experience-hero p {
    font-size: 21px;
    line-height: 1.5;
}
body.cmsj-experience-page #main .cmsj-experience-hero > .elementor-shape {
    display: none;
}
body.cmsj-experience-page #main .cmsj-experience-hero::after {
    position: absolute;
    inset: auto 0 -1px;
    height: 20px;
    content: '';
    background: #fff;
    mask: url('camping-object-intro/wave.svg') center / 100% 100% no-repeat;
    pointer-events: none;
}
body.cmsj-experience-page #main .cmsj-experience-hero .cmsj-experience-hero-art,
body.cmsj-experience-page #main .cmsj-experience-hero .cmsj-experience-hero-art > .elementor-widget-container {
    position: relative;
    inset: auto;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    transform: none !important;
}
body.cmsj-experience-page #main .cmsj-experience-hero-art .cmsj-experience-original-photo {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1.4;
    object-fit: cover;
    object-position: center;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    mask: url('camping-swimming-hero/photo-mask.svg') center / 100% 100% no-repeat;
}
body.cmsj-experience-page #main .cmsj-experience-hero-art:has(.cmsj-experience-original-photo) {
    isolation: isolate;
}
body.cmsj-experience-page #main .cmsj-experience-hero-art:has(.cmsj-experience-original-photo)::before {
    position: absolute;
    z-index: -1;
    inset: 8px -6px -12px 8px;
    content: '';
    background: var(--cmsj-experience-pink);
    mask: url('camping-swimming-hero/photo-mask.svg') center / 100% 100% no-repeat;
    pointer-events: none;
}
body.cmsj-experience-page #main .cmsj-experience-hero-compact > .elementor-container {
    grid-template-columns: minmax(0, 1fr) 170px;
}
body.cmsj-experience-page #main .cmsj-experience-hero-art .cmsj-experience-palmi {
    display: block;
    width: 140px;
    height: auto;
    max-height: 210px;
    object-fit: contain;
    margin-inline: auto;
}
/* Original programme pairs remain in place, including the two responsive Kids variants. */
body.cmsj-experience-page #main .elementor .cmsj-experience-lead-title {
    padding-block: 54px 18px;
}
body.cmsj-experience-page #main .elementor .cmsj-experience-lead {
    padding-block: 0 52px;
}
body.cmsj-experience-page #main :is(.cmsj-experience-lead, .cmsj-experience-lead-title) > .elementor-container {
    max-width: 900px;
}
body.cmsj-experience-page #main .elementor .cmsj-experience-programme {
    padding-block: 0 32px;
}
body.cmsj-experience-page #main .cmsj-experience-programme > .elementor-container {
    display: grid;
    grid-template-columns: minmax(230px, .42fr) minmax(0, 1fr);
    border-radius: 16px;
    box-shadow: 0 6px 18px rgb(10 48 58 / 8%);
    background: #fff;
}
body.cmsj-experience-page #main .cmsj-experience-programme.elementor-element-e5beef2 > .elementor-container {
    grid-template-columns: minmax(0, 1fr) minmax(230px, .42fr);
}
body.cmsj-experience-page #main .cmsj-experience-programme > .elementor-container > .elementor-column {
    width: 100%;
}
body.cmsj-experience-page #main .cmsj-experience-programme .cmsj-experience-programme-title > .elementor-widget-wrap {
    padding: 34px 30px;
    border-radius: 16px 0 0 16px;
    background: var(--cmsj-experience-pink);
    align-content: center;
}
body.cmsj-experience-page #main .cmsj-experience-programme-kids .cmsj-experience-programme-title > .elementor-widget-wrap {
    background: var(--cmsj-experience-cream);
}
body.cmsj-experience-page #main .cmsj-experience-programme-juniors .cmsj-experience-programme-title > .elementor-widget-wrap {
    background: var(--cmsj-experience-blue);
}
body.cmsj-experience-page #main .cmsj-experience-programme.elementor-element-e5beef2 .cmsj-experience-programme-title > .elementor-widget-wrap {
    border-radius: 0 16px 16px 0;
}
body.cmsj-experience-page #main .cmsj-experience-programme .cmsj-experience-programme-copy > .elementor-widget-wrap {
    padding: 34px 36px;
    gap: 14px;
}
body.cmsj-experience-page #main .cmsj-experience-programme-title h2 {
    font-size: 32px;
}
body.cmsj-experience-page #main .cmsj-experience-programme-copy .elementor-widget-heading .elementor-heading-title {
    font: 750 16px/1.45 CMSJCatamaran, Catamaran, sans-serif;
    letter-spacing: .02em;
}
body.cmsj-experience-page #main .cmsj-experience-programme ul {
    margin: 20px 0 0;
    padding-inline-start: 22px;
}
body.cmsj-experience-page #main .cmsj-experience-programme li {
    margin: 0 0 7px;
    padding-inline-start: 3px;
}
body.cmsj-experience-page #main .elementor .cmsj-experience-gallery {
    padding-block: 24px 64px;
}
body.cmsj-experience-page #main .elementor .cmsj-experience-articles {
    padding-block: 60px 76px;
    background: var(--cmsj-experience-cream);
}
body.cmsj-experience-page #main .cmsj-experience-articles > .elementor-shape {
    display: none;
}
body.cmsj-experience-page #main .cmsj-experience-articles > .elementor-container,
body.cmsj-experience-page #main .cmsj-experience-prose > .elementor-container,
body.cmsj-experience-page #main .cmsj-experience-section-heading > .elementor-container {
    max-width: 900px;
}
body.cmsj-experience-page #main .cmsj-experience-articles .elementor-widget-heading {
    margin-top: 40px;
    margin-bottom: 18px;
}
body.cmsj-experience-page #main .cmsj-experience-articles .elementor-widget-heading:first-child {
    margin-top: 0;
}
/* Reception, dining and excursions keep their existing reading and heading order. */
body.cmsj-experience-page #main .elementor .cmsj-experience-section-heading {
    padding-block: 60px 20px;
}
body.cmsj-experience-page #main .elementor :is(.cmsj-experience-reception-heading, .cmsj-experience-reception) {
    background: var(--cmsj-experience-blue);
}
body.cmsj-experience-page #main .elementor :is(.cmsj-experience-reception, .cmsj-experience-dining, .cmsj-experience-towns) {
    padding-top: 0;
}
body.cmsj-experience-page #main .cmsj-experience-prose p {
    max-width: 70ch;
}
body.cmsj-experience-page #main .elementor .cmsj-experience-map {
    padding-block: 16px 36px;
}
body.cmsj-experience-page #main .cmsj-experience-map iframe {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 460px;
    border: 0;
    border-radius: 16px;
    background: var(--cmsj-experience-blue);
}
body.cmsj-experience-page #main .elementor :is(.cmsj-experience-towns-heading, .cmsj-experience-towns) {
    background: var(--cmsj-experience-cream);
}
/* Preserve real tables, native captions, header scopes, statuses and scroll regions. */
body.cmsj-experience-page #main .elementor .cmsj-experience-table {
    padding-block: 56px 64px;
    background: var(--cmsj-experience-cream);
}
body.cmsj-experience-page #main .elementor .cmsj-experience-table-nearby {
    padding-top: 16px;
}
body.cmsj-experience-page #main .cmsj-experience-table .elementor-inner-section > .elementor-container {
    max-width: 100%;
}
body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison-wrap {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    border-radius: 16px;
    box-shadow: 0 6px 18px rgb(10 48 58 / 8%);
    scrollbar-color: #52727a var(--cmsj-experience-blue);
}
body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison {
    width: 100%;
    min-width: 700px;
    margin: 0;
    border-collapse: collapse;
    table-layout: fixed;
    background: #fff;
    color: var(--cmsj-experience-ink);
    font: 400 19px/1.5 CMSJCatamaran, Catamaran, sans-serif;
}
body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison :is(th, td) {
    padding: 17px 20px;
    border-bottom: 1px solid #d5e1e4;
}
body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison thead th {
    background: var(--cmsj-experience-blue);
    color: var(--cmsj-experience-ink);
    font-weight: 750;
}
body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison thead th:first-child {
    width: 40%;
}
body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison tbody tr:nth-child(even) > :is(th, td) {
    background: #f6f8f8;
}
body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison tbody th[scope='row'] {
    background: #fff;
    font-weight: 650;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: auto;
}
body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison :is(th, td):last-child {
    font-weight: 750;
}
body.cmsj-experience-page #main .cmsj-experience-table .csj-status {
    color: var(--cmsj-experience-ink);
}
/* Fees use the original site's euro marker. Empty visible cells mean no charge. */
body.cmsj-experience-page #main .cmsj-fee-table .cmsj-fee-heading,
body.cmsj-experience-page #main .cmsj-fee-table .cmsj-fee-cell {
    position: relative;
    width: 100px;
    text-align: center;
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
}
body.cmsj-experience-page #main .cmsj-fee-symbol {
    display: inline-block;
    font-size: 24px;
    font-weight: 750;
    line-height: 1.25;
}
body.cmsj-experience-page #main .cmsj-fee-cell .csj-sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}
body.cmsj-experience-page #main .cmsj-fee-legend {
    font-weight: 650;
}
body.cmsj-experience-page #main .cmsj-experience-table p.csj-table-scroll-hint {
    display: none;
    margin-bottom: 14px;
    font-size: 16px;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    body.cmsj-experience-page #main .cmsj-experience-programme > .elementor-container {
        transition: transform 180ms cubic-bezier(0.16, 1, 0.3, 1);
    }
    body.cmsj-experience-page #main .cmsj-experience-programme > .elementor-container:hover {
        transform: translateY(-3px);
    }
}
@media (max-width: 1024px) {
    body.cmsj-experience-page { --cmsj-experience-inline: 28px; }
    body.cmsj-experience-page #main .cmsj-experience-hero > .elementor-container { gap: 28px; }
    body.cmsj-experience-page #main .cmsj-experience-hero h1 { font-size: 40px; }
    body.cmsj-experience-page #main .cmsj-experience-programme > .elementor-container {
        grid-template-columns: minmax(210px, .6fr) minmax(0, 1fr);
    }
    body.cmsj-experience-page #main .cmsj-experience-programme .cmsj-experience-programme-title > .elementor-widget-wrap,
    body.cmsj-experience-page #main .cmsj-experience-programme .cmsj-experience-programme-copy > .elementor-widget-wrap { padding: 28px; }
}
@media (max-width: 767px) {
    body.cmsj-experience-page { --cmsj-experience-inline: 20px; }
    body.cmsj-experience-page #main .elementor .cmsj-experience-section { padding-block: 36px; }
    body.cmsj-experience-page #main .cmsj-experience-section :where(p, li, .elementor-widget-text-editor) { font-size: 18px; }
    body.cmsj-experience-page #main .cmsj-experience-section :where(h2, h3, .elementor-heading-title) { font-size: 29px; }
    body.cmsj-experience-page #main .cmsj-experience-hero > .elementor-container { grid-template-columns: minmax(0, 1fr); }
    body.cmsj-experience-page #main .cmsj-experience-hero h1 { font-size: clamp(32px, 9vw, 40px); }
    body.cmsj-experience-page #main .cmsj-experience-hero :is(h2, h3) { font-size: 27px; }
    body.cmsj-experience-page #main .cmsj-experience-hero p { font-size: 19px; }
    body.cmsj-experience-excursions #main .cmsj-experience-prose .elementor-widget-text-editor {
        width: 100%;
        max-width: 100%;
        --container-widget-width: 100%;
    }
    body.cmsj-experience-page #main .elementor .cmsj-experience-lead-title { padding-bottom: 18px; }
    body.cmsj-experience-page #main .elementor .cmsj-experience-lead { padding-top: 0; }
    body.cmsj-experience-page #main .elementor .cmsj-experience-programme { padding-block: 0 28px; }
    body.cmsj-experience-page #main .cmsj-experience-programme > .elementor-container { grid-template-columns: minmax(0, 1fr); }
    body.cmsj-experience-page #main .cmsj-experience-programme .cmsj-experience-programme-title > .elementor-widget-wrap {
        padding: 26px 24px;
        border-radius: 16px 16px 0 0;
    }
    body.cmsj-experience-page #main .cmsj-experience-programme .cmsj-experience-programme-copy > .elementor-widget-wrap { padding: 26px 24px; }
    body.cmsj-experience-page #main .cmsj-experience-programme-title h2 { font-size: 29px; }
    body.cmsj-experience-page #main .cmsj-experience-programme-copy .elementor-widget-heading .elementor-heading-title { font-size: 15px; }
    body.cmsj-experience-page #main .elementor .cmsj-experience-section-heading { padding-bottom: 18px; }
    body.cmsj-experience-page #main .elementor :is(.cmsj-experience-reception, .cmsj-experience-dining, .cmsj-experience-towns) { padding-top: 0; }
    body.cmsj-experience-page #main .cmsj-experience-map iframe { height: 340px; }
    body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison { font-size: 17px; }
    body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison :is(th, td) { padding: 14px 12px; }
    body.cmsj-experience-page #main .cmsj-experience-table p.csj-table-scroll-hint { display: block; }
    body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison thead th:first-child {
        position: sticky;
        inset-inline-start: 0;
        z-index: 2;
        width: 200px;
    }
    body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison tbody th[scope='row'] {
        position: sticky;
        inset-inline-start: 0;
        z-index: 1;
    }
}
@media (forced-colors: active) {
    body.cmsj-experience-page #main .cmsj-experience-programme > .elementor-container,
    body.cmsj-experience-page #main .cmsj-experience-table .csj-comparison-wrap { outline: 1px solid CanvasText; }
}

/* Current services reuse the approved photo/text pairs and information panels. */
body.cmsj-experience-facilities #main .cmsj-experience-dining-heading > .elementor-container,
body.cmsj-experience-facilities #main .cmsj-experience-dining > .elementor-container {
    max-width: 1120px;
}
body.cmsj-experience-facilities #main .cmsj-experience-dining > .elementor-container,
body.cmsj-experience-facilities #main .cmsj-services-groceries > .elementor-container,
body.cmsj-experience-facilities #main .cmsj-services-practical > .elementor-container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 40px;
    align-items: center;
}
body.cmsj-experience-facilities #main .cmsj-experience-dining > .elementor-container > .elementor-column,
body.cmsj-experience-facilities #main :is(.cmsj-services-groceries, .cmsj-services-practical) > .elementor-container > .elementor-column {
    width: 100%;
    min-width: 0;
}
body.cmsj-experience-facilities #main .cmsj-services-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1.5;
    object-fit: cover;
    border-radius: 16px;
    box-shadow: 0 6px 18px rgb(10 48 58 / 8%);
}
body.cmsj-experience-facilities #main .cmsj-experience-dining .elementor-widget-wrap,
body.cmsj-experience-facilities #main .cmsj-services-groceries .elementor-widget-wrap {
    padding: 0;
    gap: 20px;
    align-content: center;
}
body.cmsj-experience-facilities #main .cmsj-experience-dining > .elementor-container {
    align-items: start;
}
body.cmsj-experience-facilities #main .cmsj-experience-dining .elementor-widget-wrap {
    align-content: start;
}
body.cmsj-experience-facilities #main .cmsj-services-groceries {
    margin-block: 0 64px;
}
body.cmsj-experience-facilities #main .cmsj-services-practical {
    margin-block: 0 64px;
}
body.cmsj-experience-facilities #main .cmsj-services-practical > .elementor-container {
    gap: 24px;
    align-items: stretch;
}
body.cmsj-experience-facilities #main .cmsj-services-note > .elementor-widget-wrap {
    padding: 32px;
    gap: 18px;
    border-radius: 16px;
    background: var(--cmsj-experience-cream);
    box-shadow: 0 6px 18px rgb(10 48 58 / 8%);
    align-content: start;
}
body.cmsj-experience-facilities #main .cmsj-services-note + .cmsj-services-note > .elementor-widget-wrap {
    background: var(--cmsj-experience-blue);
}
body.cmsj-experience-facilities #main .cmsj-services-note :is(h2, h3) {
    color: #252b2e;
    font: 700 29px/1.15 CMSJCatamaran, Catamaran, sans-serif;
    letter-spacing: -.015em;
}
body.cmsj-experience-facilities #main .cmsj-experience-gallery > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget-heading {
    margin-bottom: 28px;
}
body.cmsj-experience-facilities #main .cmsj-services-fee-note {
    margin-top: 32px;
}
body.cmsj-experience-facilities #main .cmsj-services-fee-note p {
    font-size: 17px;
    max-width: 70ch;
}
body.cmsj-experience-kids #main .cmsj-club-schedule {
    margin-bottom: 24px;
}
body.cmsj-experience-kids #main .cmsj-club-schedule p {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.5;
}
body.cmsj-experience-kids #main .cmsj-club-schedule p + p {
    margin-top: 10px;
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
    body.cmsj-experience-facilities #main .cmsj-services-note > .elementor-widget-wrap {
        transition: transform 180ms ease-out;
    }
    body.cmsj-experience-facilities #main .cmsj-services-note:hover > .elementor-widget-wrap {
        transform: translateY(-3px);
    }
}
@media (max-width: 1100px) {
    body.cmsj-experience-facilities #main .cmsj-experience-dining > .elementor-container,
    body.cmsj-experience-facilities #main .cmsj-services-groceries > .elementor-container {
        gap: 28px;
    }
    body.cmsj-experience-facilities #main .cmsj-services-note > .elementor-widget-wrap {
        padding: 28px;
    }
}
@media (max-width: 767px) {
    body.cmsj-experience-facilities #main .cmsj-experience-dining > .elementor-container,
    body.cmsj-experience-facilities #main .cmsj-services-groceries > .elementor-container,
    body.cmsj-experience-facilities #main .cmsj-services-practical > .elementor-container {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }
    body.cmsj-experience-facilities #main .cmsj-services-groceries,
    body.cmsj-experience-facilities #main .cmsj-services-practical {
        margin-bottom: 40px;
    }
    body.cmsj-experience-facilities #main .cmsj-services-note > .elementor-widget-wrap {
        padding: 24px;
    }
    body.cmsj-experience-facilities #main .cmsj-services-note :is(h2, h3) {
        font-size: 27px;
    }
}
