/* Shared typography and readable, keyboard-friendly controls. */
body, input, select, textarea, button { font-family: 'Lexend Deca', Arial, sans-serif; }
.directorypress-listing-title, .directorypress-categories-wrapper, #colophon { font-family: 'Lexend Deca', Arial, sans-serif; }
a:focus-visible, button:focus-visible, [role="button"]:focus-visible {
    outline: 3px solid #2357a5;
    outline-offset: 3px;
}
body.home #main-content .directorypress-listing-item-holder .cat-wrapper a.listing-cat {
    color: #59616d !important;
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    min-width: 24px;
}
.kkt-dolmus-rozet { background-color: #bd302d !important; }
.directorypress-container-fluid > button.btn { color: #495365 !important; }
.wpfb-form-action > button.button { background-color: #2165cf !important; }
#colophon .gt_switcher-popup { color: #f5f6f8 !important; }
.elementor-button { color: #4d5560; }
body.home #main-content .elementor-button-text { color: #4d5560 !important; }
#colophon .hfb-nav-menu__toggle { display: none !important; }
body.home #main-content .elementor-element.elementor-element-41e5047d {
    background-image: url('images/kktc-aerial-coast-1600.webp') !important;
}

/* Keep the existing header widgets, but give both rows one common grid. */
#masthead { background: #fff; border-bottom: 1px solid #e6e9ed; }
/* This published Elementor container has no widgets. */
#masthead .elementor-element-f027dcf { display: none; }
#masthead .elementor-element-cf2b9ea {
    --min-height: 48px;
    --padding-top: 0px;
    --padding-bottom: 0px;
    --gap: 12px;
    padding: 0 24px !important;
    border-bottom: 1px solid #edf0f3;
}
#masthead .elementor-element-cf2b9ea > .e-con-inner {
    max-width: 1280px;
    min-height: 48px;
    padding: 0;
    align-items: center;
}
#masthead .elementor-element-07a8202 {
    --gap: 18px;
    width: auto;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    padding: 0;
}
#masthead .elementor-element-8091e0b,
#masthead .elementor-element-c2c73db {
    width: auto !important;
    margin: 0 !important;
    transform: none !important;
}
/* GTranslate inserts this control after first paint. Reserve its final size. */
#masthead .elementor-element-8091e0b { width: 100px !important; min-height: 25px; }
#masthead .elementor-element-50d21b6 { width: auto !important; margin: 0 auto 0 0 !important; }
#masthead .elementor-element-50d21b6 .elementor-widget-container,
#masthead .elementor-element-50d21b6 .hfb-nav-menu { margin: 0 !important; padding: 0 !important; }
#masthead .hfb-menu-item { padding: 0 12px !important; min-height: 48px; display: flex; align-items: center; }
#masthead .hfb-login-menu-link { min-height: 40px; display: inline-flex; align-items: center; gap: 8px; }
#masthead .hfb-user-menu img { width: 32px; height: 32px; border-radius: 50%; }
#masthead .hfb-user-menu { font-size: 13px; }
#masthead .hfb-user-menu .user-nicename { display: none; }
#masthead .gt_switcher-popup { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; font-size: 13px; color: #303845; }
#masthead .gt_switcher-popup img { width: 20px; height: 20px; object-fit: contain; }
#masthead .elementor-element-1263eb77 {
    padding: 12px 24px !important;
    margin: 0 !important;
    left: 0 !important;
    width: 100% !important;
}
#masthead .elementor-element-1263eb77 > .elementor-container {
    max-width: 1280px;
    align-items: center;
    gap: 24px;
}
#masthead .elementor-element-15fbc97d { width: 240px !important; flex: 0 0 240px; }
#masthead .elementor-element-7e57b730 { flex: 1 1 0; min-width: 0; width: auto !important; }
#masthead .elementor-element-6aa191e2 > .elementor-widget-container { padding: 0 !important; }
#masthead .elementor-element-a4166fc { width: 144px !important; flex: 0 0 144px; }
#masthead .elementor-column > .elementor-widget-wrap { padding: 0 !important; align-items: center; }
#masthead .elementor-widget { margin-bottom: 0 !important; }
#masthead .elementor-widget-site-logo img { width: 240px !important; height: auto !important; object-fit: contain; }
#masthead .elementor-element-5e7b5543 .elementor-widget-container { margin: 0 !important; padding: 0 !important; }
#masthead .directorypress-search-form,
#masthead .directorypress-search-holder,
#masthead .directorypress-search-form .search-form-field,
#masthead .directorypress-search-form .search-form-field-wrapper {
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
#masthead .directorypress-search-form { width: 100% !important; }
#masthead .directorypress-search-input-field-wrap,
#masthead .directorypress-search-form button { margin-top: 0 !important; margin-bottom: 0 !important; }
#masthead .directorypress-search-holder { min-height: 50px; }
#masthead .directorypress-form-control,
#masthead .select2-selection { min-height: 50px; border-radius: 8px !important; }
#masthead .directorypress-search-form button { min-height: 50px; border-radius: 8px !important; background: #2459c3; }
#masthead .directorypress-search-form .form-control,
#masthead .directorypress-search-form .directorypress-form-control,
#masthead .directorypress-search-form button { height: 50px; }
#masthead .elementor-element-5e7b5543 .hfb-button {
    width: 100%;
    height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    color: #202938 !important;
    font-weight: 600;
    padding: 0 14px;
    margin: 0 !important;
    padding-top: 0 !important;
    gap: 6px;
}
body.home #theme-page > .pacz-main-wrapper-holder { padding-top: 0; }
body.home #main-content .elementor-element-3a2afa89 { padding-top: 24px !important; }

@media (min-width: 992px) {
    /* Native editor field widths need a row even without Bootstrap float utilities. */
    #masthead .directorypress-search-holder .search-container { display: flex; align-items: center; }
    #masthead .search-container > .search-element-col { min-width: 0; }
    #masthead .search-container > .clear_float { display: none; }
}

@media (max-width: 1024px) {
    /* The saved header CSS also draws bars behind the existing SVG icon. */
    #masthead .elementor-element-50d21b6 .hfb-nav-menu-open .hfb-nav-menu-icon::before { display: none !important; }
}
@media (min-width: 992px) and (max-width: 1024px) {
    #masthead .elementor-element-15fbc97d { width: 190px !important; flex-basis: 190px; }
    #masthead .elementor-widget-site-logo img { width: 190px !important; }
    #masthead .elementor-element-5e7b5543 { display: block !important; width: 100% !important; }
    /* This viewport uses the native search row rather than the phone search shell. */
    #masthead .directorypress-search-form-button,
    #masthead .directorypress-search-form button {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    #masthead .directorypress-search-form button { font-size: 14px; padding: 0 8px; white-space: nowrap; }
}

@media (max-width: 991px) {
    /* Match the mobile search gutter; saved column padding was asymmetric. */
    body.home #main-content .elementor-element-3a2afa89 > .elementor-container > .elementor-column > .elementor-widget-wrap {
        padding: 0 16px !important;
    }
    body.home #main-content > .elementor > .e-con {
        --padding-left: 16px;
        --padding-right: 16px;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    body.home #main-content .elementor-element-5ef248f { padding: 0 !important; }
    /* The existing fixed footer owns this action and its submission URL. */
    .hfb-fixed-bottom .elementor-element-3a000493 > .elementor-widget-container { padding: 0 !important; }
    .hfb-fixed-bottom .elementor-element-3a000493 .hfb-button {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        gap: 6px;
        min-width: 0;
        min-height: 44px;
        padding: 0 18px !important;
        border-radius: 22px;
        background: #f7c948 !important;
        color: #202938 !important;
        font-size: 13px;
        font-weight: 700;
        line-height: 1.2;
        box-shadow: 0 2px 6px rgb(32 41 56 / 14%);
    }
    .hfb-fixed-bottom .elementor-element-3a000493 .hfb-button svg {
        display: block !important;
        width: 18px !important;
        height: 18px !important;
        margin: 0 !important;
        padding: 0 !important;
        color: inherit !important;
        fill: currentColor !important;
        flex-shrink: 0;
    }
    body.home #main-content .elementor-element.elementor-element-41e5047d { background-image: url('images/kktc-aerial-coast-800.webp') !important; }
    #masthead .elementor-element-cf2b9ea { padding: 0 16px !important; }
    #masthead .elementor-element-cf2b9ea > .e-con-inner { min-height: 48px; flex-wrap: nowrap; gap: 12px; }
    #masthead .elementor-element-07a8202 { gap: 12px; flex-direction: row; }
    /* Reserve the native toggle width before the navigation widget initializes. */
    #masthead .elementor-element-50d21b6 { width: var(--kkt-touch-target) !important; flex: 0 0 var(--kkt-touch-target); margin: 0 0 0 auto !important; }
    #masthead .hfb-nav-menu__toggle { width: var(--kkt-touch-target); height: var(--kkt-touch-target); display: flex; align-items: center; justify-content: center; }
    #masthead .elementor-element-1263eb77 { padding: 16px !important; }
    #masthead .elementor-element-1263eb77 > .elementor-container { flex-wrap: wrap; gap: 14px; }
    #masthead .elementor-element-15fbc97d { flex: 0 0 100%; width: 100% !important; }
    #masthead .elementor-widget-site-logo img { width: 190px !important; }
    #masthead .elementor-element-7e57b730 { flex: 0 0 100%; width: 100% !important; }
    #masthead .elementor-element-a4166fc { display: none; }
    #masthead .directorypress-search-holder { min-height: 50px; }
    body.home #main-content .elementor-element-3a2afa89 { padding-top: 16px !important; }
    /* The HMF search row replaces the native form on real mobile devices. */
    html.hmf-real-mobile-device body.home #masthead .elementor-element-7e57b730 { display: none !important; }
    html.hmf-real-mobile-device body.home #masthead { margin-bottom: 0 !important; }
    html.kkt-hmf-home-pre body.home #masthead { margin-bottom: 64px !important; }
    html.hmf-real-mobile-device body.home #hmf-mobile-search-shell {
        padding: 0 16px 16px !important;
        min-height: 64px;
    }
    html.hmf-real-mobile-device body.home .hmf-mobile-search-inner { border-radius: 8px !important; }
    #masthead .elementor-element-5feafbb7 { height: 64px !important; min-height: 64px !important; }
    #masthead .elementor-element-64abdfa0 { height: 64px !important; min-height: 64px !important; padding: 0 16px !important; }
    #masthead .elementor-element-64abdfa0 > .elementor-container { height: 64px; align-items: center; gap: 12px; }
    #masthead .elementor-element-71752e3 { width: auto !important; flex: 1; }
    #masthead .elementor-element-76d9c17f { display: none; }
    #masthead .elementor-element-11ea29f5 { width: auto !important; flex: 0 0 auto; }
    #masthead .elementor-element-11ea29f5 > .elementor-widget-wrap { flex-wrap: nowrap; gap: 8px; }
    #masthead .elementor-element-30ddfc7 img { width: 180px !important; height: auto !important; max-height: 40px; }
}

/* Keep the native hero document and actions over credited KKTC landscapes. */
body.home #main-content .elementor-element.elementor-element-41e5047d {
    isolation: isolate;
    overflow: hidden;
    background-color: var(--kkt-sea-dark);
    background-position: center !important;
    background-size: cover !important;
    border: 0 !important;
    border-radius: 16px;
}
body.home #main-content .elementor-element-41e5047d > .elementor-background-overlay {
    background: linear-gradient(100deg, rgb(5 30 42 / 82%) 0%, rgb(5 30 42 / 64%) 48%, rgb(5 30 42 / 12%) 100%) !important;
    opacity: 1 !important;
}
html[dir="rtl"] body.home #main-content .elementor-element-41e5047d > .elementor-background-overlay {
    background: linear-gradient(260deg, rgb(5 30 42 / 82%) 0%, rgb(5 30 42 / 64%) 48%, rgb(5 30 42 / 12%) 100%) !important;
}
body.home #main-content .elementor-element-41e5047d .elementor-heading-title {
    color: #fff !important;
    text-transform: none !important;
    text-align: start;
    text-shadow: none !important;
}
body.home #main-content .elementor-element-41e5047d h1 {
    max-width: 650px;
    font-size: clamp(30px, 3vw, 42px) !important;
    line-height: 1.15 !important;
    letter-spacing: -.035em !important;
}
body.home #main-content .elementor-element-a642e60 {
    max-width: 580px;
}
body.home #main-content .elementor-element-a642e60 .elementor-heading-title {
    font-size: 16px !important;
    line-height: 1.55 !important;
    font-weight: 400;
    letter-spacing: 0;
}
body.home #main-content .rotus-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; }
body.home #main-content .elementor-element-41e5047d .rotus-btn {
    min-height: 48px;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: 12px 18px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 600;
    text-decoration: none;
}
body.home #main-content .elementor-element-41e5047d .rotus-btn-primary {
    background: var(--kkt-sun) !important;
    border-color: var(--kkt-sun) !important;
    color: var(--kkt-ink) !important;
}
body.home #main-content .elementor-element-41e5047d .rotus-btn-ghost {
    background: #fff !important;
    border-color: #fff !important;
    color: var(--kkt-sea-dark) !important;
}
body.home #main-content .elementor-element-41e5047d .rotus-btn:hover { filter: brightness(.94); }
body.home #main-content .elementor-element-41e5047d a:focus-visible { outline-color: #fff; }
body.home #main-content .elementor-element-41e5047d .rotus-hero-chiplabel,
body.home #main-content .elementor-element-41e5047d .rotus-hero-chiplabel p,
body.home #main-content .elementor-element-41e5047d .rotus-hero-chips a { color: #fff !important; }
body.home #main-content .elementor-element-41e5047d .rotus-hero-chips a { background: rgb(5 30 42 / 65%); border-color: rgb(255 255 255 / 50%); }
/* Actions and the photo disclosure share one row; the disclosure wraps to its own line on phones. */
body.home #main-content .elementor-element-6343c41 { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
body.home #main-content .rotus-hero-cta { flex: 1 1 auto; }
body.home #main-content .elementor-element-41e5047d .kkt-home-photo-info {
    position: relative;
    width: var(--kkt-touch-target);
    margin: 0;
    margin-inline-start: auto;
}
/* A 44px target around a smaller visible disc keeps the credit control quiet over the photo. */
.kkt-home-photo-info > summary {
    display: flex; align-items: center; justify-content: center;
    width: var(--kkt-touch-target); height: var(--kkt-touch-target);
    list-style: none; cursor: pointer; border-radius: 50%;
    color: #fff; font-size: 18px; line-height: 1;
}
.kkt-home-photo-info > summary > span {
    display: flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 50%;
    background: rgb(5 30 42 / 65%); box-shadow: 0 0 0 1px rgb(255 255 255 / 40%);
}
.kkt-home-photo-info > summary::-webkit-details-marker { display: none; }
.kkt-home-photo-info > summary:hover > span, .kkt-home-photo-info[open] > summary > span { background: rgb(5 30 42 / 90%); }
.kkt-home-photo-info > summary:focus-visible { outline: 3px solid #fff; outline-offset: 0; }
body.home #main-content .elementor-element-41e5047d .kkt-home-photo-credit {
    position: absolute; z-index: 5; bottom: 100%; inset-inline-end: 0;
    width: min(300px, calc(100vw - 72px)); max-width: none;
    margin: 0; padding: 12px; border-radius: 10px;
    background: #123644; box-shadow: 0 6px 24px rgb(0 0 0 / 24%);
    color: #fff;
    font-size: 11px;
    line-height: 1.6;
    letter-spacing: 0;
    text-align: start;
}
.kkt-home-photo-credit a { color: inherit !important; text-decoration: underline; text-underline-offset: 2px; }
/*
 * Flag on a pole. The hoist (crescent side) stays on the pole and a wave travels to the fly edge.
 * 26 strips show adjacent slices of the same SVG; only transform and opacity animate.
 * The still image is the first paint (critical CSS sizes it) and is hidden once these rules load.
 */
.kkt-home-flag {
    --kkt-flag-w: 156px; --kkt-flag-h: 104px; --kkt-flag-wave: 4px; --kkt-flag-period: 3.4s;
    position: relative; float: right; display: block; width: 164px; height: 110px; margin: 0 0 16px 24px;
}
.kkt-home-flag img.kkt-home-flag-still { display: none; }
.kkt-home-flag-pole {
    position: absolute; top: 0; bottom: 0; left: 0; width: 4px; border-radius: 2px;
    background: linear-gradient(90deg, #6f7a84, #eef1f3 45%, #8c96a0);
}
.kkt-home-flag-pole::before {
    content: ''; position: absolute; top: -3px; left: -2px; width: 8px; height: 8px; border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #fff6c2, #d9a520 55%, #8f6500);
}
.kkt-home-flag-wave { position: absolute; top: 4px; left: 4px; display: flex; width: var(--kkt-flag-w); height: var(--kkt-flag-h); }
.kkt-home-flag-wave > span {
    --kkt-flag-amp: calc(var(--kkt-flag-wave) * var(--i) / 25);
    /* A 1 px overlap hides anti-aliased seams between strips at fractional offsets. */
    position: relative; flex: 0 0 auto; width: calc(var(--kkt-flag-w) / 26 + 1px); height: 100%; margin-right: -1px;
    background: var(--kkt-flag-src) no-repeat; background-size: var(--kkt-flag-w) var(--kkt-flag-h);
    background-position: calc(var(--kkt-flag-w) / -26 * var(--i)) 0;
    animation: kkt-home-flag-wave var(--kkt-flag-period) ease-in-out infinite;
    /* Strips nearer the fly lag behind, so the crest moves away from the pole (about one wavelength). */
    animation-delay: calc(var(--kkt-flag-period) * (var(--i) - 26) / 22);
}
.kkt-home-flag-wave > span::before, .kkt-home-flag-wave > span::after {
    content: ''; position: absolute; inset: 0; opacity: 0; pointer-events: none; animation: inherit; animation-delay: inherit;
}
.kkt-home-flag-wave > span::before { background: rgb(255 255 255 / 18%); animation-name: kkt-home-flag-light; }
.kkt-home-flag-wave > span::after { background: rgb(0 0 0 / 11%); animation-name: kkt-home-flag-shade; }
@keyframes kkt-home-flag-wave {
    0%, 100% { transform: translateY(calc(var(--kkt-flag-amp) * -1)); }
    50% { transform: translateY(var(--kkt-flag-amp)); }
}
/* Shading follows the slope, a quarter period after the height. */
@keyframes kkt-home-flag-shade { 0%, 50%, 100% { opacity: .3; } 25% { opacity: 1; } 75% { opacity: 0; } }
@keyframes kkt-home-flag-light { 0%, 50%, 100% { opacity: .3; } 25% { opacity: 0; } 75% { opacity: 1; } }
body.home #main-content .elementor-element-41e5047d::before {
    content: ''; position: absolute; inset: 0; z-index: 0; pointer-events: none;
    background-image: var(--kkt-home-next, none); background-size: cover; background-position: center;
    opacity: 0; transition: opacity 2.8s ease-in-out;
}
body.home #main-content .elementor-element-41e5047d.kkt-home-scene-alt::before { opacity: 1; }
body.home #main-content .elementor-element-41e5047d > .elementor-background-overlay { z-index: 1; }
body.home #main-content .elementor-element-41e5047d > .elementor-container { position: relative; z-index: 2; }
.kkt-home-motion { display: block; min-height: 44px; padding: 4px 8px; margin-top: 8px; border: 1px solid rgb(255 255 255 / 50%); border-radius: 6px; color: #fff; background: rgb(5 30 42 / 40%); font: inherit; cursor: pointer; }
.kkt-home-motion[hidden] { display: none !important; }
.kkt-home-motion:hover { background: rgb(5 30 42 / 70%); }
/* The phone 16px rule for form controls is important; it prevents input zoom, which a button does not trigger. */
body.home #main-content .elementor-element-41e5047d .kkt-home-motion { font-size: 12px !important; line-height: 1.3; }
[data-motion-paused="true"] .kkt-home-flag-wave > span,
[data-motion-paused="true"] .kkt-home-flag-wave > span::before,
[data-motion-paused="true"] .kkt-home-flag-wave > span::after { animation-play-state: paused; }
@media (min-width: 768px) {
    body.home #main-content .rotus-hero-cta { flex: 0 1 auto; }
    body.home #main-content .elementor-element-41e5047d .rotus-btn { flex: 0 0 auto; min-width: 176px; }
}
@media (max-width: 767px) {
    body.home #main-content .elementor-element.elementor-element-41e5047d { background-position: 58% center !important; border-radius: 12px; }
    body.home #main-content .elementor-element-41e5047d > .elementor-background-overlay {
        background: linear-gradient(100deg, rgb(5 30 42 / 78%), rgb(5 30 42 / 60%)) !important;
    }
    body.home #main-content .elementor-element-41e5047d h1 { font-size: clamp(26px, 6.8vw, 32px) !important; }
    body.home #main-content .elementor-element-a642e60 .elementor-heading-title { font-size: 14px !important; line-height: 1.5 !important; }
    body.home #main-content .rotus-hero-cta { gap: 8px; }
    body.home #main-content .elementor-element-41e5047d .rotus-btn { flex: 1 1 auto; padding-inline: 12px; font-size: 13px; }
    .kkt-home-flag { --kkt-flag-w: 104px; --kkt-flag-h: 69px; --kkt-flag-wave: 3px; width: 110px; height: 74px; margin: 0 0 12px 12px; }
    .kkt-home-flag img { width: 108px; height: 72px; }
    .kkt-home-flag-wave { top: 3px; }
}
@media (prefers-reduced-motion: reduce) {
    .kkt-home-flag-wave > span, .kkt-home-flag-wave > span::before, .kkt-home-flag-wave > span::after { animation: none; transform: none; }
    body.home #main-content .elementor-element-41e5047d::before { transition: none; }
}
