/* --- Imports --- */
@import url('https://fonts.googleapis.com/css2?family=Titillium+Web:ital,wght@0,200;0,300;0,400;0,600;0,700;0,900;1,200;1,300;1,400;1,600;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&display=swap');

/* --- Variables --- */
:root {
    --classense-main-color: #016b58;
    --classense-secondary-dark-color: #17324d;
    --classense-text-color: #191919;
    --classense-header-grey: #f9f9f9;
    --classense-footer: #eceff1;
}


/* Accessibility */
header #search>form#search-form>input:nth-child(1):focus {
    outline: none !important;
    box-shadow: 0 2px var(--classense-main-color, #016b58);
}

button:focus-visible,
.slick-dots button:focus-visible,
.visit-classense-a:focus-visible,
.visit-classense-a:visited:focus-visible,
.visit-classense-a:link:focus-visible,
.visit-classense-a:active:focus-visible,
a:focus-visible {
    outline: var(--classense-main-color, rgba(1, 107, 88, 0.65));
    outline-style: solid;
    outline-width: 2px;
    outline-offset: 2px;
}


/* --- Base Styles --- */
* {
    box-sizing: border-box
}

html,
body {
    height: 100%;
    padding: 0;
    margin: 0;
}

body {
    background-color: #fff;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 300;
    font-family: "Titillium Web", sans-serif !important;
}

a {
    text-decoration: none;
    color: var(--classense-main-color, #016b58);
}

a:hover {
    text-decoration: underline;
}

img {
    max-width: 100%;
    height: auto;
}

b,
strong {
    color: var(--classense-main-color, #016b58);
    font-weight: 700 !important;
}

p.footer-info .footer-bold {
    font-weight: 600 !important;
}

.blocks p a b,
.blocks p a strong,
.blocks strong a,
.blocks b a {
    font-weight: 400 !important;
}

/* --- Placeholder Styles --- */
.red-placeholder::placeholder,
.red-placeholder::-webkit-input-placeholder,
.red-placeholder::-moz-placeholder,
.red-placeholder:-ms-input-placeholder,
.red-placeholder::-ms-input-placeholder {
    color: red;
}

/* --- Header --- */
nav.header-nav-content-wrapper a:visited {
    color: var(--classense-main-color, #016b58);
    text-decoration: none;
}

#header-slim-wrapper {
    padding: 6.5px 18px;
    background: var(--classense-main-color, #016b58);
    width: 100%;
}

.container {
    padding: 0 12px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
}

.row {
    margin: 0 -12px;
    display: flex;
    flex-wrap: wrap;
}

.row>* {
    flex-shrink: 0;
    width: 100%;
    max-width: 100%;
    padding: 0 12px;
    margin-top: 0;
}

.header-row-content {
    padding: 0 12px;
    width: 100%;
}

.header-link-container {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 48px;
}

.header-link-container a {
    color: #fff;
    font-size: .778em;
    padding: 0;
}

.navigation>li>a {
    font-weight: 600;
    color: var(--classense-main-color, #016b58);
}

ul.navigation {
    list-style: none;
}

#header-center-wrapper {
    background: var(--classense-header-grey, #f9f9f9);
    height: 80px;
    display: flex;
    align-items: center;
    padding: 0 18px;
}

.header-center-content-wrapper {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand-link {
    display: flex;
    align-items: center;
    text-decoration: none;
}

.brand-logo,
.brand-logo-biblio,
.brand-ue-logo,
.brand-comune-logo {
    height: 64px;
    background-size: contain;
    image-rendering: -webkit-optimize-contrast;
    background-repeat: no-repeat;
    background-color: transparent;
    opacity: 1;
}

.footer-logos-container {
    display: flex;
    flex-direction: row;
    gap: 24px;
}


.brand-logo {
    aspect-ratio: 3.45;
    background-image: url("../../img/loghi/logo_cdc.png");
}

.brand-ue-logo {
    aspect-ratio: 4.2;
    background-image: url("../../img/loghi/logo_eu.png");
}

.brand-comune-logo {
    aspect-ratio: 0.9;
    background-image: url("../../img/loghi/logo_comune.png");
}

.brand-comune-text {
    display: flex;
    flex-direction: row;
    flex-wrap: no-wrap;
    width: fit-content;
    align-items: center;
}

.brand-logo-biblio {
    aspect-ratio: 3.1;
    background-image: url("../../img/loghi/logo_classense.png");
}

.logo-wrapper>div:nth-child(2)>a:nth-child(1)>div:nth-child(1) {
    padding: 0;
}

.logo-wrapper>img:nth-child(1) {
    /* Overrides th eassigned img height -> it is the footer UE logo*/
    height: 64px;
}

.black-bold {
    font-weight: 600;
    color: var(--classense-text-color, #191919);
}

.comune-ravenna {
    font-size: 20px;
    font-weight: 400;
    color: var(--classense-text-color, #191919);
    letter-spacing: unset;
    line-height: 1.1;
    margin: 0;
}

.comune-ravenna:hover {
    color: var(--classense-text-color, #191919);
}

#nav-wrapper {
    background-color: var(--classense-header-grey, #f9f9f9);
}

header nav>ul ul:hover>li {
    height: auto;
}

nav.sub-menu,
.navigation>li.home,
.navigation>li.le-collezioni>ul:nth-child(2)>li>ul>li>ul,
.navigation>li.collezioni>ul:nth-child(2)>li>ul>li>ul {
    /* Removes the third level of the "le collezioni" link */
    display: none;
}

.navigation>li.le-collezioni>ul>li>a:nth-child(1), .navigation>li.collezioni>ul>li>a:nth-child(1) {
    font-weight: 600;
    color: var(--classense-secondary-dark-color, #17324d) !important;
    font-size: .833em;
    line-height: 1.2em;
    letter-spacing: 1px;
    text-align: left;
    pointer-events: none;
    cursor: default;
    text-transform: uppercase;
}

header nav {
    position: relative;
}

header nav.closed ul {
    height: 0;
    overflow: hidden;
    margin: 0
}

header nav:before {
    content: url("../../img/icone/hamburger.svg");
    display: block;
    width: 32px;
    height: 32px;
    text-align: center;
    position: absolute;
    right: 12px;
    top: -56px;
    cursor: pointer;
    line-height: 32px
}

header nav.open:before {
    content: url("../../img/icone/close.svg");
}

header nav ul {
    padding: 0;
    list-style: none;
    position: relative;
    margin: 0;
}

header nav ul li>ul:before {
    font-family: "Font Awesome 5 Free";
    content: "\f105";
    position: absolute;
    right: 12px;
    color: #016b58;
    width: 100%;
    top: -32px;
    height: 32px;
    line-height: 32px;
    text-align: right;
}

header nav ul li>ul:hover:before {
    content: "\f107"
}

header nav ul a:hover~ul:before {
    /* Probably can be removed */
    color: #ababab
}

header nav>ul ul li {
    height: 0;
    overflow: hidden;
    border: 0;
}

header nav>ul>li>ul>li a {
    padding-left: 30px;
}

header nav>ul>li>ul>li>ul>li a {
    padding-left: 60px;
}




#search form button[type="submit"]::before {
    content: url("../../img/icone/search.svg");
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    text-indent: 0;
    height: 24px;
    width: 24px;
}

#search>form#search-form>input:nth-child(1) {
    border: 0;
    background: transparent;
    width: 180px;
    font-size: 0.9rem;
}

#search>form#search-form>input:nth-child(1)::placeholder {
    font-weight: 500;
    font-size: 0.9rem;
}


#search>form>button {
    width: 2.67rem;
    height: 2.67rem;
    border-radius: 24px;
    text-indent: -9999px;
    position: relative;
}


/* --- Footer --- */
footer {
    background-color: var(--classense-footer, #eceff1);
}

.footer-info a {
    text-decoration: underline !important;
    color: var(--classense-text-color, #191919) !important;
}

footer a:hover {
    text-decoration: none !important;
    color: var(--classense-text-color, #191919) !important;
}

.footer-info {
    font-size: 1rem;
    line-height: 1.5;
    margin-bottom: 0.5rem;
    margin-top: 0;
    width: 90%;
}

.logo-wrapper {
    display: flex;
    flex-direction: column;
    gap: 30px;
    padding-top: 32px;
    padding-bottom: 32px;
    width: 100%;
    justify-content: space-between;
}

.footer-heading-title {
    font-size: .875rem;
    font-weight: 700;
    line-height: 1.5;
    text-transform: uppercase;
    margin-top: 0;
}

.footer-bottom {
    border-top: 1px solid #191919;
    margin-top: 1.667rem;
    padding-bottom: 16px !important;
    padding-top: 8px !important;
}

div.row:nth-child(3)>div:nth-child(1) {
    /* It overrides the width assigned to the items-wrapper */
    width: 100%;
}

.list-inline {
    margin: 0;
    padding: 0;
    list-style: none;
}

.text-end {
    text-align: right !important;
}

.list-inline-item {
    display: inline-block;
}

.list-inline-item:not(:last-child) {
    margin-right: .5rem;
}

.border-0 {
    border: none !important;
}

footer .footer-bottom svg.icon {
    fill: var(--classense-main-color, #016b58);
}

footer .footer-logos-heading {
    width: 100%;
    padding-top: 32px;
}

footer .logo-wrapper {
    display: flex;
    flex-direction: column;
    gap: 30px;
    padding-bottom: 64px;
    padding-top: 32px !important;
    width: 100%;
}

.visually-hidden,
.visually-hidden-focusable:not(:focus):not(:focus-within) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.icon.icon-sm {
    width: 24px;
    height: 24px;
}

.align-top {
    vertical-align: top !important;
}

li.list-inline-item {
    height: 40px;
    align-content: center;
}

li.list-inline-item>a {
    line-height: 1.5;
    padding: 8px !important;
}

/* --- Fascia break --- */
.break-band {
    background-color: var(--classense-main-color, #016b58);
    margin-top: 60px;
}

.break-container {
    padding: 1.5rem 0;
    display: flex;
    justify-content: center;
}


.break-content {
    display: block;
    background-color: #fff;
    box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15) !important;
    padding: 2.4rem;
    width: fit-content;
    max-width: 90%;
    text-align: center;
}

.visit-classense-a,
.visit-classense-a:visited,
.visit-classense-a:link,
.visit-classense-a:active,
.visit-classense-a:hover,
.visit-classense-a:visited:hover,
.visit-classense-a:link:hover,
.visit-classense-a:active:hover {
    color: var(--classense-text-color, #191919) !important;
}





.visit-classense-p {
    line-height: 1.25;
    font-size: 1.25rem;
    font-weight: 600;
    margin: 0;
}

.break-container .block-search {
    padding: 1.78rem 3.56rem;
    background-color: var(--classense-header-grey, #f9f9f9);
    width: 90%;
}

.break-container .block-search form button {
    border-radius: 0 4px 4px 0 !important;
}

.break-container .block-search form input {
    padding: 12px 24px !important;
}



/* --- Media Queries --- */
@media (max-width: 576px) {
    #header-nav-wrapper {
        padding: 0 18px;
    }

    .footer-items-wrapper {
        flex-direction: row;
        align-items: flex-start;
    }
}

@media (min-width: 576px) {

    html,
    body {
        font-size: 18px;
        line-height: 1.555;
    }

    .container {
        max-width: 540px;
    }

    footer .footer-heading-title {
        font-size: .7777777778rem;
    }

    .footer-info {
        font-size: .8888888889rem;
    }

    .break-container {
        padding: 1.33rem 0;
    }

    .visit-classense-p {
        font-size: 1.3333333333rem;
    }
}

@media (max-width: 767.8px) {
    footer .footer-items-wrapper+.footer-items-wrapper .footer-heading-title {
        margin-top: 1.5rem;
        padding-top: 1.5rem;
        border-top: 1px solid #191919;
    }

    .brand-logo,
    .brand-logo-biblio,
    .brand-ue-logo,
    .brand-comune-logo {
        height: 52px;
    }

    .logo-wrapper>img:nth-child(1) {
        /* Overrides th eassigned img height -> it is the footer UE logo*/
        height: 52px;
    }
}

@media (min-width: 768px) {
    .footer-items-wrapper {
        flex: 0 0 auto;
        width: 33.33333333%;
    }

    .footer-heading-title {
        border-bottom: 1px solid #191919;
        margin-bottom: .889rem;
        padding-bottom: .889rem;
    }

    li.list-inline-item:nth-child(1) {
        margin-bottom: .889rem;
    }

    .break-container .block-search {
        width: 70%
    }
}


@media (max-width: 800px) {
    .navigation>li {
        padding: 13px 0;
    }

    .navigation>li>a {
        line-height: 32px;
        display: inline-block;
        width: 100%;
    }

    .navigation ul:hover>li {
        margin: 6px 0;
    }

    .header-center-content-wrapper #search {
        display: none;
    }

    .navigation>li.la-biblioteca>a:nth-child(1),
    .navigation>li.biblioteca>a:nth-child(1),
    .navigation>li.le-collezioni>a:nth-child(1),
    .navigation>li.collezioni>a:nth-child(1) {
        width: fit-content;
    }

}

@media (min-width: 800px) {
    /* This media query determines style of default desktop header */

    .container {
        max-width: 768px;
    }

    .navigation {
        display: flex;
        flex-direction: row;
    }

    .navigation>li {
        display: flex;
    }

    .navigation>li>a {
        padding: 13px 18px;
    }

    .navigation>li>ul.navigation-clicked {
        max-width: 1700px;
        margin-left: auto;
        margin-right: auto;
        padding: 32px 24px;
        box-shadow: 0px 3px 15px 0px rgba(0, 0, 0, .1);
        left: 0;
        right: 0;
    }

    .navigation>li>ul>li {
        padding: 0 12px;
        margin-top: 12px;
        display: flex;
        flex-direction: column;
        gap: 12px;
    }

    .navigation>li.la-biblioteca>ul>li,
    .navigation>li.biblioteca>ul>li {
        min-width: 25%;
    }

    .navigation>li.le-collezioni>ul>li,
    .navigation>li.collezioni>ul>li {
        width: 25%;
    }


    .navigation>li>ul>li ul {
        padding: 0;
        list-style-type: none;
        height: auto;
        display: flex;
        flex-direction: column;
        gap: 16px;
    }

    .navigation>li.le-collezioni>ul>li>a:nth-child(1),
    .navigation>li.collezioni>ul>li>a:nth-child(1) {
        padding: 0 24px;
    }

    .navigation>li.la-biblioteca>ul>li,
    .navigation>li.biblioteca>ul>li,
    .navigation>li.le-collezioni>ul>li>ul>li>a,
    .navigation>li.collezioni>ul>li>ul>li>a {
        font-size: 0.889em;
        font-weight: 400;
        line-height: inherit;
    }

    .navigation>li.la-biblioteca>ul>li,
    .navigation>li.biblioteca>ul>li,
    .navigation>li.le-collezioni>ul>li>ul>li,
    .navigation>li.collezioni>ul>li>ul>li {
        padding: 0 24px;
    }

    header nav:before {
        /* hides the hamburger menu */
        content: "";
        border: 0;
        display: none;
    }

    header nav.closed ul,
    header nav ul ul li {
        height: auto;
        overflow: visible;
    }

    header nav ul.navigation li ul:before {
        display: none;
    }


    header nav ul.navigation>li>ul {
        position: absolute;
        top: 100%;
        left: -9999px;
        background-color: #fff;
        list-style: none;
        width: 100%;
        padding: 14px 0 6.5px;
        display: flex;
        flex-direction: row;
        flex-flow: row wrap;
        z-index: 1
    }

    header nav>ul>li>a:not(:only-child):after {
        font-family: "Font Awesome 5 Free";
        content: "\f107";
        display: inline-block;
        margin-left: 7.5px
    }

    header nav>ul>li>ul>li a,
    header nav>ul>li>ul>li>ul>li a {
        padding-left: 0
    }

    .break-content {
        max-width: 80%;
    }

    footer .logo-wrapper {
        flex-direction: row;
        align-items: flex-start;
    }

}



@media (min-width: 992px) {
    #header-slim-wrapper {
        height: 48px;
        padding: 0;
    }

    .container {
        max-width: 960px;
    }

    .header-link-container {
        padding: 0 18px;
        height: 48px;
    }

    #header-center-wrapper {
        height: 120px;
        padding-left: 0;
        padding-right: 0;
        padding-top: 6px;
    }

    .header-center-content-wrapper {
        padding-left: 18px;
        padding-right: 18px;
    }

    .break-container {
        padding: 80px 0;
    }

    .break-container .block-search {
        width: 50%
    }
}

@media (min-width: 1200px) {
    .container {
        max-width: 1184px;
    }

    .navigation>li>a {
        padding: .89rem 18px;
    }

    .break-content {
        max-width: 60%;
    }

}


@media (min-width: 1400px) {
    .container {
        max-width: 1320px;
    }
}