/* ==============================================
   FONT FACE
   ============================================== */
@font-face {
    font-family: "Special Gothic Expanded One";
    src: url("../fonts/SpecialGothicExpandedOne-Regular.ttf") format("truetype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* ==============================================
   BASE STYLES
   ============================================== */
.bio {
    line-height: 1.25em;
    border-top: 1px solid #111;
    padding-top: 10px;
    font-size: 1.25em;
}
.brackets a:hover,
a .subtitle:hover {
    color: #99120f;
    text-shadow: none;
}
#calendar .full-day-view,
#calendar .full-week-view,
#calendar .full-month-view,
#calendar .full-year-view,
#calendar .ib-arrow-expand-left-right,
#calendar .ib-close,
#calendar .ib-hamburger,
#calendar .ib-minus,
#calendar .ib-plus,
#calendar .ib-refresh,
#calendar .left-divider-line-events,
#calendar .right-divider-line,
#calendar .right-divider-line-full-screen-mode {
    display: none;
}
#calendar div.all-events-view {
    background: none;
}
#calendar .duration {
    display: none;
}
#calendar .event {
    pointer-events: none;
    user-select: none;
}
#calendar .year-header {
    margin: -10px -10px 10px -10px;
    padding-left: 10px;
    padding-bottom: 5px;
    border: var(--calendar-js-spacing-border-size) solid var(--calendar-js-dark-color);;
    border-radius: 0 0 .25em .25em;
}
#calendar .year-header .line {
    display: none;
}
.d-none {
    display: none;
}
div#calendar {
    border: none;
}
h1.main-title,
.intro {
    font-weight: 800;
    opacity: 90%;
}
.inner-divider,
.inner-divider-half {
    height: 30px;
}
.main-title.main-title-all {
    color: #99120f;
    text-shadow: none;
}
nav.navigation-menu a {
    font-weight: 500!important;
    opacity: 80%;
}
button {
    text-align: center;
    border: 1px solid #111;
    border-radius: 4px;
}
.film-grain-97 {
    position: absolute;
    width: 97%;
    height: 100%;
    top: 0;
    background: url(../img/film-grain.gif) repeat top left;
    opacity: 0.1;
    -moz-opacity: 0.1;
    -webkit-opacity: 0.1;
    filter: alpha(opacity = 10);
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=10)";
    -webkit-pointer-events: none;
    -moz-pointer-events: none;
    pointer-events: none;
    overflow: hidden;
    z-index: 1;
}
.float-right {
    float: right;
}
h1.main-title {
    font-family: "Special Gothic Expanded One", sans-serif;
    text-shadow: -1px -1px 0 #99120f, 1px -1px 0 #99120f, -1px 1px 0 #99120f, 1px 1px 0 #99120f;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
.swiper-slide-inner-txt {
    left: 50% !important;
    top: 50% !important;
    bottom: auto !important;
    width: auto !important;
    transform: translate(-50%, -50%) !important;
    text-align: center !important;
}
.hero {
    padding-left: 0;
    padding-right: 0;
}
.intro {
    color: #fffffb;
    font-family: "Special Gothic Expanded One", sans-serif;
}
.ion-ios-arrow-left,
.ion-ios-arrow-right,
.ion-ios-play {
    color: #fffffb;
}
.logo-img::before {
    width: 200px;
    height: 237px;
}

.mistify__slide-description,
.mistify__slide-title,
.mistify__slide-title span,
.mistify__info-description,
.mistify__info-title,
.mistify__info-title span {
    font-family: "Special Gothic Expanded One", sans-serif;
}
.navigation-icon .line {
    background-color:#fffffb;
}
.navigation-icon:hover .line {
    background-color:#99120f;
}
nav.navigation-menu a {
    font-family: "Special Gothic Expanded One", sans-serif;
}
.page-intro {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: white;
    background: rgba(0, 0, 0, 0.4);
    padding: 20px 60px;
    border-radius: 8px;
    width: 100%;
    font-size: 2rem;
    box-sizing: border-box;
}
.panel-title {
    font-family: "Special Gothic Expanded One", sans-serif;
}
.post-heading {
    font-family: "Special Gothic Expanded One", sans-serif;
}
.section-txt.card {
    padding: 0;
    display: flex;
    flex-direction: row;
    gap: 0;
    align-items: stretch;
    overflow: hidden;
    border-radius: 4px;
    margin-bottom: 20px;
    min-height: 280px;
}
.section-txt.card.card-reverse {
    flex-direction: row-reverse;
}
.section-txt.card > .card-img {
    flex: 0 0 50%;
    max-width: 50%;
    min-width: 0;
    overflow: hidden;
    position: relative;
}
.section-txt.card > .card-body {
    flex: 1 1 50%;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 35px;
}
.section-txt.card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    position: absolute;
    top: 0;
    left: 0;
}
.section-txt p {
    font-size: 18px;
    font-weight: 400;
    letter-spacing: normal;
}
.showcase-img-full {
    position: relative;
    overflow: hidden;
}
.social-media {
    text-align: center;
}
.social-media a {
    color: #444;
    font-size: 2em;
    text-align: center;
    margin: 0 15px;
}
.social-media-cover a {
    color: #fff;
    opacity: 90%;
}
.social-media a:hover,
.social-media-cover a:hover {
    color: #99120f;
}
.subtitle {
    color: #fffffb;
    opacity: 90%;
    font-weight: 600;
    font-family: "Special Gothic Expanded One", sans-serif;
    text-shadow: -1px -1px 0 #99120f, 1px -1px 0 #99120f, -1px 1px 0 #99120f, 1px 1px 0 #99120f;
}
.subtitle.subtitle-light {
    display: inline-block;
    background: #99120f;
    color: #fffffb;
    text-shadow: none;
    text-align: center;
    font-size: 20px;
    padding: 12px 32px;
    border-radius: 4px;
    transition: background 0.2s ease, color 0.2s ease;
}
a:hover .subtitle.subtitle-light,
.subtitle.subtitle-light:hover {
    background: #fffffb;
    color: #99120f;
    text-shadow: none;
}
.subtitle.subtitle-contrast {
    color: #99120f;
    text-shadow: none;
    text-align: center;
    font-size: 24px;
    padding: 0 15px;
}
.swiper-slide-pagination .swiper-pagination-bullet::before,
.swiper-slide-pagination .swiper-pagination-bullet::after,
.swiper-slide-controls {
    background: #99120f;
}
.swiper-slide-controls:hover {
    background:#fffffb;
}
.swiper-slide-controls:hover .ion-ios-arrow-left,
.swiper-slide-controls:hover .ion-ios-arrow-right {
    color:#99120f
}
table {
    width: 100%;
    border-collapse: collapse;
}
.text-center {
    text-align: center;
}
th, td {
    padding: 10px;
    text-align: left;
    border: none;
}
th {
    cursor: pointer;
}
th.subtitle.subtitle-light {
    text-align: left;
    background: none;
    padding: 10px;
    border-radius: 0;
    color: #99120f;
}

/* Ensure all images are responsive by default */
.showcase-img-full img,
.showcase-img-inline img {
    max-width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

/* Contact form: ensure touch-friendly sizing */
#form input,
#form textarea {
    font-size: 16px;
}
button.default__button,
button[type="submit"] {
    min-height: 44px;
    min-width: 120px;
    padding: 12px 36px;
    cursor: pointer;
    background: #99120f;
    color: #fffffb;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.03em;
    transition: background 0.2s ease;
}
button.default__button:hover,
button[type="submit"]:hover {
    background: #fffffb;
    color: #99120f;
}
button.default__button:disabled,
button[type="submit"]:disabled {
    background: #999;
    cursor: not-allowed;
}
.form-messege {
    margin-top: 15px;
    font-size: 16px;
    font-weight: 600;
}
.form-messege.success {
    color: #2e7d32;
}
.form-messege.error {
    color: #99120f;
}
#form .error {
    display: block;
    color: #99120f;
    font-size: 13px;
    margin-top: 4px;
}
#form .inputError {
    border-color: #99120f;
}

/* ==============================================
   RESPONSIVE BREAKPOINTS
   ============================================== */

/* Large desktop override (1920px+) - scale back expanded font */
@media all and (min-width: 1920px) {
    h1.main-title {
        font-size: 85px;
    }
    nav.navigation-menu a {
        font-size: 45px;
    }
}

/* Logo shrink starts early (1350px) to avoid covering subpage titles */
@media only screen and (max-width: 1350px) {
    .logo-img::before {
        width: 120px;
        height: 142px;
    }
}

/* Smaller desktop (1200px) - expanded font needs earlier reduction */
@media only screen and (max-width: 1200px) {
    h1.main-title {
        font-size: 55px;
    }
    nav.navigation-menu a {
        font-size: 30px;
    }
    .page-intro {
        font-size: 1.6rem;
        padding: 20px 40px;
    }
}

/* Tablet landscape and below (995px) */
@media only screen and (max-width: 995px) {
    h1.main-title {
        font-size: 38px;
    }
    .main-title.main-title-all {
        font-size: 34px;
    }
    nav.navigation-menu a {
        font-size: 22px;
    }
    .section-txt.card,
    .section-txt.card.card-reverse {
        flex-direction: column;
        min-height: 0;
    }
    .section-txt.card > .card-img {
        flex: none;
        max-width: 100%;
        height: 300px;
        position: relative;
    }
    .section-txt.card img {
        position: absolute;
        top: 0;
        left: 0;
    }
    .section-txt.card > .card-body {
        flex: none;
        padding: 25px;
    }
    .page-intro {
        position: relative;
        top: auto;
        left: auto;
        transform: none;
        font-size: 1.2rem;
        padding: 20px 25px;
        border-radius: 0;
        width: 100%;
        background: rgba(0, 0, 0, 0.6);
    }
    .subtitle.subtitle-contrast {
        font-size: 20px;
        text-align: center;
    }
    .logo-img::before {
        width: 80px;
        height: 95px;
    }
    .logo {
        top: 25px;
        left: 25px;
    }
}

/* Tablet portrait and below (768px) */
@media only screen and (max-width: 768px) {
    h1.main-title {
        font-size: 30px;
        letter-spacing: -0.02em;
    }
    .main-title.main-title-all {
        font-size: 26px;
    }
    nav.navigation-menu a {
        font-size: 18px;
    }
    nav.navigation-menu li {
        margin-bottom: 8px;
    }
    .page-intro {
        font-size: 1rem;
        padding: 15px 20px;
    }
    .section-txt.card > .card-img {
        height: 250px;
    }
    .section-txt.card > .card-body {
        padding: 20px 15px;
    }
    .section-txt p {
        font-size: 16px;
    }
    .subtitle.subtitle-light {
        font-size: 16px;
        padding: 10px 24px;
    }
    .subtitle.subtitle-contrast {
        font-size: 18px;
        padding: 0 10px;
        text-align: center;
    }
    .float-right {
        float: none;
        display: block;
        margin-top: 10px;
    }
    .logo-img::before {
        width: 60px;
        height: 71px;
    }
    .logo {
        top: 20px;
        left: 20px;
    }
    .hero {
        padding-left: 0;
        padding-right: 0;
    }
    .inner-divider {
        height: 20px;
    }
    .inner-divider-half {
        height: 15px;
    }
}

/* Small phones (480px) */
@media only screen and (max-width: 480px) {
    h1.main-title {
        font-size: 24px;
        letter-spacing: -0.02em;
    }
    .main-title.main-title-all {
        font-size: 22px;
    }
    nav.navigation-menu a {
        font-size: 16px;
    }
    .page-intro {
        font-size: 0.9rem;
        padding: 12px 15px;
    }
    .section-txt.card > .card-img {
        height: 200px;
    }
    .section-txt.card > .card-body {
        padding: 15px 10px;
    }
    .section-txt p {
        font-size: 15px;
    }
    .subtitle.subtitle-light {
        font-size: 14px;
        padding: 8px 20px;
    }
    .subtitle.subtitle-contrast {
        font-size: 16px;
        padding: 0 5px;
        text-align: center;
    }
    .logo-img::before {
        width: 45px;
        height: 53px;
    }
    .logo {
        top: 15px;
        left: 15px;
    }
    .inner-divider {
        height: 15px;
    }
    .inner-divider-half {
        height: 10px;
    }
}