/* WordPress integration and responsive enhancement layer. */
:root {
    --cisce-page-width: 992px;
    --cisce-primary: #424242;
    --cisce-accent: #fe7200;
    --cisce-text: #3e3e3e;
    --cisce-menu: #ffffff;
    --cisce-footer: #303030;
    --cisce-body-font: 'Dosis', Arial, sans-serif;
    --cisce-heading-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --cisce-menu-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

html { box-sizing: border-box; scroll-behavior: smooth; }
*, *::before, *::after { box-sizing: inherit; }
body { color: var(--cisce-text); font-family: var(--cisce-body-font); }
h1, h2, h3, h4, h5, h6 { font-family: var(--cisce-heading-font); }
a:hover, a:focus { color: var(--cisce-accent) !important; }
img { max-width: 100%; height: auto; }

.page-wrapper,
.header-content-wrapper,
.footer-content-wrapper {
    width: min(var(--cisce-page-width), calc(100% - 32px));
}

.header-wrapper {
    background-color: #e8e8e8;
    background-image: url(../images/header-bg.jpg);
    background-position: 0 0;
    background-repeat: repeat-x;
    height: 160px;
    min-height: 160px;
}
.header-content-wrapper {
    height: 160px;
    min-height: 160px;
    overflow: visible;
    position: relative;
}
.header-content-wrapper .site-logo { max-width: 150px; }
.header-content-wrapper .site-logo img { display: block; max-height: 128px; width: auto; }
.header-content-wrapper .custom-logo-link { display: block; }
.header-content-wrapper .site-title-group {
    float: none;
    max-width: calc(100% - 170px);
    padding: 38px 0 0;
    position: absolute;
    right: 0;
    top: 0;
}
.header-content-wrapper .site-title-group h1 {
    color: var(--cisce-primary);
    font-size: clamp(22px, 3.15vw, 32px);
    font-weight: 500;
    margin: 15px 0;
}

.nav-wrapper {
    background: transparent;
    bottom: 0;
    clear: both;
    height: 32px;
    left: 0;
    min-height: 32px;
    overflow: visible;
    padding: 0;
    position: absolute;
    width: 100%;
}
.nav-wrapper ul li { position: relative; }
.nav-wrapper ul li a,
.nav-wrapper ul li a:link,
.nav-wrapper ul li a:visited {
    color: var(--cisce-menu) !important;
    font-family: var(--cisce-menu-font);
    opacity: 1 !important;
    text-shadow: 0 1px 1px rgba(0, 0, 0, .35);
    visibility: visible !important;
}
.nav-wrapper ul li a:hover,
.nav-wrapper ul li a:focus { color: var(--cisce-accent) !important; }
.nav-wrapper .current-menu-item > a,
.nav-wrapper .current-menu-ancestor > a { color: var(--cisce-accent) !important; }
.nav-wrapper .sub-menu {
    background: var(--cisce-primary);
    box-shadow: 0 8px 20px rgba(0,0,0,.18);
    display: none;
    float: none;
    left: 0;
    min-width: 220px;
    padding: 8px 0;
    position: absolute;
    top: 100%;
    z-index: 100000;
}
.nav-wrapper li:hover > .sub-menu,
.nav-wrapper li:focus-within > .sub-menu { display: block; }
.nav-wrapper .sub-menu li { float: none; width: 100%; }
.nav-wrapper .sub-menu li a { background: none; display: block; line-height: 1.35; margin: 0; padding: 9px 15px; }

.top-nav { display: flex; align-items: flex-start; gap: 4px; }
.top-nav > ul { display: flex; align-items: flex-start; }
.top-nav ul li a,
.top-nav ul li a:link,
.top-nav ul li a:visited {
    color: var(--cisce-primary) !important;
    opacity: 1 !important;
    visibility: visible !important;
}
.top-nav ul li a:hover,
.top-nav ul li a:focus { color: var(--cisce-accent) !important; }
.top-nav .cisce-social-search li:first-child { background: none; }
.top-nav .cisce-social-search li a { padding: 0 3px; }
.top-nav li.search { padding-top: 8px; }
.top-nav li.search input {
    background: transparent;
    border: 0;
    font-family: var(--cisce-body-font);
    max-width: 82px;
    outline-offset: 3px;
}

.cisce-menu-toggle {
    align-items: center;
    background: var(--cisce-primary);
    border: 0;
    border-radius: 4px;
    color: #fff;
    cursor: pointer;
    display: none;
    gap: 8px;
    padding: 9px 12px;
}
.cisce-menu-toggle-icon,
.cisce-menu-toggle-icon::before,
.cisce-menu-toggle-icon::after {
    background: currentColor;
    content: '';
    display: block;
    height: 2px;
    position: relative;
    width: 20px;
}
.cisce-menu-toggle-icon::before { position: absolute; top: -6px; }
.cisce-menu-toggle-icon::after { position: absolute; top: 6px; }

.cisce-imported-content { min-height: 1px; }
#primary-content.cisce-home-main,
.cisce-home-content {
    display: block !important;
    height: auto !important;
    min-height: 480px;
    opacity: 1 !important;
    overflow: visible !important;
    visibility: visible !important;
}
.cisce-home-content > .content-wrapper,
.cisce-home-content > .home-page-dropdown {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}
/* Hide stale markup immediately on sites upgraded from theme version 1.0.0. */
.floating-results-container { display: none !important; }
.cisce-content-card {
    background: #fff;
    border-radius: 5px;
    box-shadow: 0 4px 18px rgba(0,0,0,.06);
    margin: 28px 0;
    overflow: hidden;
    padding: clamp(22px, 4vw, 44px);
}
.cisce-content-card > h1,
.cisce-content-card .entry-header h1,
.cisce-standard-page .page-header h1 {
    border-bottom: 1px solid #ddd;
    color: var(--cisce-primary);
    font-size: clamp(30px, 5vw, 44px);
    margin: 0 0 24px;
    padding: 0 0 16px;
}
.cisce-post-summary,
.cisce-search-result { border-bottom: 1px solid #e1e1e1; padding: 16px 0 24px; }
.cisce-post-summary h2,
.cisce-search-result h2 { color: var(--cisce-primary); font-size: 26px; margin: 0; }
.cisce-featured-image { margin-bottom: 24px; }
.cisce-button {
    background: var(--cisce-primary);
    border-radius: 4px;
    color: #fff;
    display: inline-block;
    padding: 10px 18px;
}

.footer-left-block p,
.footer-right-block ul li a { color: var(--cisce-footer); }

.widget { background: #f3f3f3; margin-bottom: 20px; padding: 18px; }
.widget-title { color: var(--cisce-primary); font-size: 24px; }
.cisce-layout-with-sidebar { display: grid; gap: 30px; grid-template-columns: minmax(0, 1fr) 280px; }
.cisce-main-column { min-width: 0; }
.cisce-widget-area { padding: 28px 0; }

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}
.screen-reader-text:focus {
    background: #fff;
    clip: auto !important;
    clip-path: none;
    color: #111;
    display: block;
    height: auto;
    left: 8px;
    padding: 14px 18px;
    top: 8px;
    width: auto;
    z-index: 1000000;
}

@media (max-width: 1024px) {
    .header-content-wrapper .site-title-group { max-width: calc(100% - 170px); }
    .home-affi-wrapper { width: 100%; }
    .dropdown-base-wrapper { width: calc(100vw - 32px); }
    .left-column-wrapper { margin-right: 3%; width: 72%; }
    .right-column-wrapper { width: 25%; }
    .banner-wrapper { width: calc(75% - 8px); }
    .banner-right-block-wrapper { width: 25%; }
    .banner-wrapper img { width: 100%; object-fit: cover; }
    .notice-board-wrapper { width: calc(50% - 8px); }
    .testimonial-wrapper, .news-wrapper { width: 25%; }
    .location-form-block, .location-map-block { width: calc(50% - 4px); }
    .gallery-wrapper { width: 31%; }
    .concessions-wrapper { width: calc(44% - 16px); }
    .publication-wrapper { width: 25%; }
}

@media (max-width: 820px) {
    body { background-position: 0 -22px; }
    .header-wrapper { height: 190px; min-height: 190px; }
    .header-content-wrapper { height: 190px; min-height: 190px; overflow: visible; padding-top: 44px; }
    .header-content-wrapper .site-logo { float: left; max-width: 108px; }
    .header-content-wrapper .site-logo img { max-height: 100px; }
    .header-content-wrapper .site-title-group {
        float: right;
        max-width: calc(100% - 120px);
        padding-top: 4px;
        position: static;
    }
    .header-content-wrapper .site-title-group h1 { line-height: 1.18; }
    .top-nav { left: 0; right: auto; width: 100%; }
    .top-nav .cisce-social-search { margin-left: auto; }
    .cisce-menu-toggle { bottom: 5px; display: flex; position: absolute; right: 0; z-index: 100002; }
    .nav-wrapper {
        background: var(--cisce-primary);
        border-radius: 5px;
        bottom: auto;
        box-shadow: 0 12px 30px rgba(0,0,0,.28);
        display: none;
        height: auto;
        left: 0;
        min-height: 0;
        padding: 8px;
        position: absolute;
        top: 178px;
        width: 100%;
        z-index: 100001;
    }
    .nav-wrapper.is-open { display: block; }
    .nav-wrapper ul { float: none; width: 100%; }
    .nav-wrapper ul li { float: none; width: 100%; }
    .nav-wrapper ul li a,
    .nav-wrapper ul li:first-child a { background: none; display: block; margin: 0; padding: 9px 12px; }
    .nav-wrapper .sub-menu { box-shadow: none; display: block; padding-left: 18px; position: static; }
    ul.home-dropdown-wrapper { display: grid; gap: 8px; grid-template-columns: repeat(2, 1fr); height: auto; }
    ul.home-dropdown-wrapper li { margin: 0; min-height: 90px; width: auto; }
    .dropdown-base-wrapper { display: none !important; }
    .left-column-wrapper,
    .right-column-wrapper,
    .banner-wrapper,
    .banner-right-block-wrapper,
    .testimonial-wrapper,
    .notice-board-wrapper,
    .news-wrapper,
    .location-form-block,
    .location-map-block,
    .gallery-wrapper,
    .concessions-wrapper,
    .publication-wrapper {
        float: none;
        height: auto;
        margin: 8px 0;
        min-height: 0;
        width: 100%;
    }
    .inner-content-wrapper { background-position: center 100px; padding: 24px 0; }
    .location-block-wrapper ul,
    .location-block-wrapper ul li,
    .faq-wrapper,
    .contact-map-wrapper,
    .contact-map-wrapper img { width: 100%; }
    .footer-left-block, .footer-right-block { float: none; text-align: center; width: 100%; }
    .footer-right-block ul { float: none; justify-content: center; display: flex; }
    .cisce-layout-with-sidebar { display: block; }
}

@media (max-width: 560px) {
    .page-wrapper, .header-content-wrapper, .footer-content-wrapper { width: calc(100% - 20px); }
    .top-nav .cisce-social-search { display: none; }
    .top-nav ul li a { font-size: 13px; padding: 0 7px; }
    .header-content-wrapper .site-title-group h1 { font-size: 19px; }
    .inner-content-wrapper h2 { font-size: 30px; }
    ul.home-dropdown-wrapper { grid-template-columns: 1fr; }
    .content-wrapper table { display: block; max-width: 100%; overflow-x: auto; }
}

@media print {
    .top-nav, .nav-wrapper, .cisce-menu-toggle, .footer-wrapper { display: none !important; }
    .page-wrapper, .header-content-wrapper { width: 100%; }
}
