/* Existing Skole palette, with AA contrast for text and clear keyboard focus. */
@font-face {
    font-family: Sensei;
    src: url('/wp-content/uploads/2019/11/Sensei-Medium.woff') format('woff');
    font-weight: 400 900;
    font-style: normal;
    font-display: swap;
}
:root { --cmsj-accessible-coral: #bd3b1b; }
/* The swimming-area link uses the existing readable action colors in six translations. */
body:is(.page-id-987660, .page-id-992102, .page-id-992115, .page-id-992119, .page-id-992112, .page-id-992106) .elementor-element-1757c34 .elementor-button {
    background-image: none !important;
    background-color: var(--cmsj-accessible-coral) !important;
    color: #fff !important;
    text-shadow: none !important;
}
body:is(.page-id-987660, .page-id-992102, .page-id-992115, .page-id-992119, .page-id-992112, .page-id-992106) .elementor-element-1757c34 .elementor-button:is(:hover, :focus-visible) {
    background-color: #0a303a !important;
}
/* Keep the full introduction above Skole's 28px decorative bottom wave. */
body:is(.page-id-1093, .page-id-992201, .page-id-992222, .page-id-992228, .page-id-992218, .page-id-992205) .elementor-element.elementor-element-f4e3be9 {
    padding-bottom: 40px !important;
}
/* The original opaque coral artwork needs dark text, including its small label. */
body.home .elementor-element-839129f h1,
body.home .elementor-element-18cbcc6 .elementor-heading-title,
body.home .elementor-element-9d3314b .elementor-heading-title,
body.home .elementor-element-5834af4 .elementor-heading-title {
    color: #0a303a !important;
}
/* The footer spans cream and white artwork; keep link states legible on both. */
body .elementor-location-footer #menu-1-744eb46 a,
body .elementor-location-footer .elementor-element-24026b6 a {
    color: var(--cmsj-accessible-coral) !important;
}
/* The mobile menu keeps Elementor's white-on-dark active and interaction states. */
body .elementor-location-footer #menu-2-744eb46 .elementor-item:not(.elementor-item-active):not(.highlighted):not(:hover):not(:focus) {
    color: var(--cmsj-accessible-coral) !important;
}
body .elementor-location-footer .elementor-element-24026b6 a {
    text-decoration: underline;
    text-underline-offset: .16em;
}
.cmsj-skip-link {
    position: fixed;
    inset: 8px auto auto 8px;
    z-index: 100000;
    padding: 12px 18px;
    background: #0a303a;
    color: #fff;
    border-radius: 10px;
    transform: translateY(-180%);
}
.cmsj-skip-link:focus {
    transform: none;
    color: #fff;
}
body :where(a, button, input, select, textarea, [tabindex]):focus-visible {
    outline: 3px solid #0a303a !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 6px #fff !important;
}
#main:focus { outline: none; }
body .elementor-lightbox :focus-visible {
    outline-color: #fff !important;
}
/* Native slideshow auto-hide must not hide a focused keyboard control. */
.elementor-lightbox:focus-within .elementor-slideshow--ui-hidden .elementor-slideshow__header,
.elementor-lightbox:focus-within .elementor-slideshow--ui-hidden .elementor-slideshow__footer,
.elementor-lightbox:focus-within .elementor-slideshow--ui-hidden:not(.elementor-slideshow--zoom-mode) .elementor-swiper-button-prev,
.elementor-lightbox:focus-within .elementor-slideshow--ui-hidden:not(.elementor-slideshow--zoom-mode) .elementor-swiper-button-next {
    opacity: 1;
    pointer-events: auto;
}
#main .elementor-widget-text-editor p a:not(.elementor-button) {
    color: var(--cmsj-accessible-coral);
    text-decoration: underline;
    text-underline-offset: .16em;
}
body .elementor-element-47278a2 .elementor-button,
body .elementor-price-table__footer .elementor-price-table__button,
body .elementor-element-fef52ac .elementor-button {
    background-color: var(--cmsj-accessible-coral) !important;
    color: #fff !important;
}
body .elementor-button[href="#read"] {
    color: var(--cmsj-accessible-coral) !important;
}
body .elementor-element-47278a2 .elementor-button:hover,
body .elementor-price-table__footer .elementor-price-table__button:hover,
body .elementor-element-fef52ac .elementor-button:hover {
    background-color: #0a303a !important;
}
/* Keep the footer booking button clear of the adjacent address during interaction. */
body .elementor-location-footer [data-id="47278a2"] a.elementor-button:hover,
body .elementor-location-footer [data-id="47278a2"] a.elementor-button:focus,
body .elementor-location-footer [data-id="47278a2"] a.elementor-button:active {
    transform: none !important;
}
.elementor-form .elementor-field-label {
    color: #0a303a;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 600;
    margin-bottom: 5px;
}
.elementor-form .elementor-field-textual {
    border: 1px solid #617a7f !important;
    color: #0a303a;
}
.elementor-form .elementor-field-textual::placeholder {
    color: #4a6268;
    opacity: 1;
}
.elementor-form .elementor-message-danger { color: #9b2811; }
.cmsj-a11y-footer-phones .cmsj-a11y-phone {
    margin: .6em 0;
}
body .elementor-element.elementor-element-5462622.elementor-section-stretched {
    width: 100vw !important;
    left: calc(50% - 50vw) !important;
}
@media (min-width: 1025px) {
    body .elementor .elementor-element.elementor-element-b1f7bb4 .elementor-heading-title {
        font-size: clamp(5rem, 8.5vw, 8rem);
    }
}
@media (max-width: 1024px) {
    /* Three legacy homepage headings had an 80px desktop size on phones. */
    body .elementor .elementor-element.elementor-element-0269a39 .elementor-heading-title,
    body .elementor .elementor-element.elementor-element-b1f7bb4 .elementor-heading-title,
    body .elementor .elementor-element.elementor-element-df8ffa4 .elementor-heading-title {
        font-size: clamp(2rem, 6.8vw, 4rem);
        line-height: 1.15;
        overflow-wrap: anywhere;
    }
    body .elementor-widget-theme-page-title .elementor-heading-title {
        overflow-wrap: anywhere;
    }
    body .elementor .elementor-element.elementor-element-2b29631 .elementor-heading-title,
    body .elementor .elementor-element.elementor-element-b9266d8 .elementor-heading-title {
        letter-spacing: .15em;
    }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    /* Elementor must not leave headings or controls hidden when motion is reduced. */
    .elementor-invisible { visibility: visible !important; }
    .elementor-element.animated,
    .elementor-element[data-settings*="_animation"],
    .elementor-animation-grow,
    .elementor-motion-effects-element {
        animation: none !important;
        transition: none !important;
    }
    .elementor-motion-effects-element,
    .elementor-animation-grow:hover { transform: none !important; }
}

/* The twelve native overview introductions inherited an accidental 1px size.
   Restore their existing 18px/27px kit typography with scalable units. */
body:is(.page-id-992184, .page-id-1066, .page-id-992174, .page-id-992166, .page-id-992171, .page-id-992179,
        .page-id-992391, .page-id-987991, .page-id-992382, .page-id-992397, .page-id-992402, .page-id-992386)
    #main .elementor-element.elementor-element-54410f2,
body:is(.page-id-992184, .page-id-1066, .page-id-992174, .page-id-992166, .page-id-992171, .page-id-992179,
        .page-id-992391, .page-id-987991, .page-id-992382, .page-id-992397, .page-id-992402, .page-id-992386)
    #main .elementor-element.elementor-element-54410f2 p {
    font-size: 1.125rem !important;
    line-height: 1.5 !important;
}
/* Multisentence object summaries need enough room between their text lines. */
body .elementor .cmsj-object-intro .cmsj-summary p {
    font-size: 1.1875rem;
    line-height: 1.5;
}
@media (max-width: 767px) {
    body .elementor .cmsj-object-intro .cmsj-summary p { font-size: 1.125rem; }
}
/* Keep the existing phone size, but allow relative scaling and more line room. */
body .elementor-location-footer .elementor-element-24026b6 p.cmsj-a11y-phone.font-h3 {
    font-size: 1.6875rem;
    line-height: 1.5;
}
body .elementor .cmsj-eq-nav p {
    font-size: 1rem;
    line-height: 1.5;
}
body .elementor form.cmsj-booking-context p.cmsj-booking-context-help {
    font-size: 1rem;
}
