:root {
    --otcal-gold: #d69212;
    --otcal-gold-dark: #a76508;
    --otcal-gold-light: #edc875;
    --otcal-brown: #744515;
    --otcal-text: #20242a;
    --otcal-red: #b82020;
    --otcal-blue: #126ac8;
    --otcal-paper: #fffdf7;
    --otcal-cream: #fff9ee;
}

/* =========================================================
   APPROVED ORTHODOX CALENDAR
   ========================================================= */

.otcal-approved,
.otcal-approved *,
.otcal-approved *::before,
.otcal-approved *::after {
    box-sizing: border-box;
}

.otcal-approved {
    width: 100%;
    max-width: 1710px;
    margin: 0 auto;
    padding: 0 28px 60px;
    color: var(--otcal-text);
    font-family: Georgia, "Times New Roman", serif;
}

.otcal-approved-title {
    position: relative;
    margin: 0 auto 22px;
    text-align: center;
}

.otcal-approved-title-cross {
    display: block;
    height: 14px;
    margin-bottom: 3px;
    color: #f2eadc;
    font-size: 16px;
    line-height: 1;
}

.otcal-approved-title h1 {
    margin: 0;
    color: var(--otcal-brown);
    font-family:
        var(--font-heading),
        var(--heading-font),
        "Cormorant Garamond",
        Georgia,
        serif;
    font-size: clamp(48px, 4.1vw, 72px);
    font-weight: 600;
    line-height: .95;
    letter-spacing: .015em;
}

/* =========================================================
   MAIN THREE-COLUMN LAYOUT
   ========================================================= */

.otcal-approved-layout {
    display: grid;
    grid-template-columns:
        minmax(310px, 365px)
        minmax(620px, 1fr)
        minmax(275px, 325px);
    gap: 42px;
    align-items: start;
}

.otcal-approved-left,
.otcal-approved-center,
.otcal-approved-right {
    min-width: 0;
}

.otcal-approved-right {
    display: grid;
    gap: 16px;
    align-content: start;
}

/* =========================================================
   DECORATIVE FRAMES
   ========================================================= */

.otcal-approved-frame {
    position: relative;
    border: 1.5px solid var(--otcal-gold);
    background:
        radial-gradient(
            circle at 50% 0,
            rgba(255,255,255,.98),
            rgba(255,255,255,0) 58%
        ),
        linear-gradient(
            180deg,
            #fffefa 0%,
            #fffaf0 100%
        );
    box-shadow:
        inset 0 0 0 7px rgba(255,255,255,.38);
}

.otcal-approved-frame::before {
    position: absolute;
    z-index: 1;
    inset: 7px;
    pointer-events: none;
    content: "";
    background:
        linear-gradient(
            var(--otcal-gold-light),
            var(--otcal-gold-light)
        ) top center / calc(100% - 105px) 1px no-repeat,

        linear-gradient(
            var(--otcal-gold-light),
            var(--otcal-gold-light)
        ) bottom center / calc(100% - 105px) 1px no-repeat,

        linear-gradient(
            var(--otcal-gold-light),
            var(--otcal-gold-light)
        ) left center / 1px calc(100% - 105px) no-repeat,

        linear-gradient(
            var(--otcal-gold-light),
            var(--otcal-gold-light)
        ) right center / 1px calc(100% - 105px) no-repeat;
}

.otcal-approved-frame::after {
    position: absolute;
    z-index: 4;
    inset: -10px;
    pointer-events: none;
    content: "";
    background:
        url("/assets/calendar/approved-v8/corner.svg")
            left top / 74px 74px no-repeat,

        url("/assets/calendar/approved-v8/corner.svg")
            right top / 74px 74px no-repeat,

        url("/assets/calendar/approved-v8/corner.svg")
            left bottom / 74px 74px no-repeat,

        url("/assets/calendar/approved-v8/corner.svg")
            right bottom / 74px 74px no-repeat;
}

.otcal-approved-frame > * {
    position: relative;
    z-index: 2;
}

/* =========================================================
   LEFT MONTH CALENDAR
   ========================================================= */

.otcal-approved-month {
    min-height: 520px;
    padding: 34px 27px 27px;
}

.otcal-approved-month-head {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) 36px;
    align-items: center;
    gap: 5px;
    margin-bottom: 18px;
    text-align: center;
}

.otcal-approved-month-head h2 {
    margin: 0;
    color: var(--otcal-brown);
    font-family:
        var(--font-heading),
        var(--heading-font),
        Georgia,
        serif;
    font-size: 30px;
    font-weight: 600;
    line-height: 1;
}

.otcal-approved-month-head a {
    display: grid;
    place-items: center;
    width: 36px;
    height: 42px;
    color: var(--otcal-brown);
    font-family: Georgia, serif;
    font-size: 39px;
    font-weight: 400;
    line-height: .8;
    text-decoration: none;
    transition: color .18s ease, transform .18s ease;
}

.otcal-approved-month-head a:hover {
    color: var(--otcal-gold-dark);
    transform: scale(1.08);
}

.otcal-approved-weekdays,
.otcal-approved-month-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.otcal-approved-weekdays {
    margin: 0 0 5px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(214,146,18,.30);
}

.otcal-approved-weekdays span {
    color: #26313b;
    font-family: Georgia, serif;
    font-size: 14px;
    text-align: center;
}

.otcal-approved-weekdays .is-weekend {
    color: var(--otcal-red);
}

.otcal-approved-month-grid {
    gap: 3px;
    margin-top: 4px;
}

.otcal-approved-day,
.otcal-approved-month-grid .is-empty {
    min-height: 43px;
}

.otcal-approved-day {
    display: grid;
    place-items: center;
    border: 1px solid rgba(196,151,79,.23);
    color: #24313d;
    background: rgba(255,255,255,.23);
    font-family: Georgia, serif;
    font-size: 19px;
    text-decoration: none;
    transition:
        border-color .15s ease,
        background .15s ease,
        color .15s ease,
        transform .15s ease;
}

.otcal-approved-day:hover {
    border-color: rgba(190,124,8,.56);
    background: #fff9e9;
    transform: translateY(-1px);
}

.otcal-approved-day.is-weekend {
    color: var(--otcal-red);
}

.otcal-approved-day.is-selected {
    border-color: #b87606;
    color: #fff;
    background:
        linear-gradient(
            145deg,
            #efbc38 0%,
            #d99513 55%,
            #be7405 100%
        );
    box-shadow:
        0 2px 7px rgba(116,71,21,.24),
        inset 0 1px 0 rgba(255,255,255,.45);
}

.otcal-approved-legend {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 35px 7px 34px;
}

.otcal-approved-legend > span {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    border-radius: 2px;
    background:
        linear-gradient(
            145deg,
            #efbc38,
            #c77c08
        );
    box-shadow: 0 1px 3px rgba(126,74,0,.18);
}

.otcal-approved-legend p {
    margin: 0;
    color: #3e454c;
    font-size: 16px;
}

.otcal-approved-today {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 0 7px;
    color: #2c353e;
    text-decoration: none;
}

.otcal-approved-today > span {
    color: var(--otcal-brown);
    font-family: Georgia, serif;
    font-size: 24px;
}

.otcal-approved-today strong {
    font-size: 16px;
    font-weight: 400;
}

/* =========================================================
   CENTER MAIN FRAME
   ========================================================= */

.otcal-approved-main {
    min-height: 700px;
    padding: 32px 40px 42px;
}

.otcal-approved-top-ornament {
    position: absolute !important;
    z-index: 7 !important;
    top: -17px;
    left: 50%;
    width: 325px;
    height: 50px;
    transform: translateX(-50%);
    pointer-events: none;
    background:
        url("/assets/calendar/approved-v8/top-center.svg")
        center top / 325px 50px no-repeat;
}

/* =========================================================
   ICON GALLERY
   ========================================================= */

.otcal-approved-gallery {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) 58px;
    align-items: center;
    gap: 10px;
    width: 100%;
    max-width: 850px;
    margin: 2px auto 0;
}

.otcal-approved-gallery-stage {
    position: relative;
    height: 270px;
    min-width: 0;
    overflow: hidden;
}

.otcal-approved-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    display: block;
    width: 170px;
    height: 225px;
    margin: 0;
    padding: 0;
    border: 0;
    visibility: hidden;
    opacity: 0;
    background: transparent;
    cursor: pointer;
    transform:
        translate(-50%, -50%)
        scale(.76);
    transition:
        opacity .22s ease,
        transform .22s ease,
        visibility .22s ease;
}

.otcal-approved-icon img {
    display: block;
    width: 100%;
    height: 100%;
    padding: 5px;
    border: 1px solid #ba7911;
    background: var(--otcal-paper);
    box-shadow: 0 5px 13px rgba(91,55,3,.18);
    object-fit: contain;
}

.otcal-approved-icon[data-position="0"] {
    z-index: 5;
    visibility: visible;
    opacity: 1;
    transform:
        translate(-50%, -50%)
        scale(1.04);
}

.otcal-approved-icon[data-position="-1"] {
    z-index: 3;
    visibility: visible;
    opacity: .88;
    transform:
        translate(calc(-50% - 190px), -50%)
        scale(.76);
}

.otcal-approved-icon[data-position="1"] {
    z-index: 3;
    visibility: visible;
    opacity: .88;
    transform:
        translate(calc(-50% + 190px), -50%)
        scale(.76);
}

.otcal-approved-icon[data-position="0"] img {
    border-color: #ad6808;
    box-shadow:
        0 7px 17px rgba(83,51,0,.20),
        0 0 0 3px #fff9ed,
        0 0 0 5px rgba(191,123,11,.57);
}

.otcal-approved-gallery-arrow {
    display: grid;
    place-items: center;
    width: 58px;
    height: 88px;
    padding: 0;
    border: 0;
    color: #bd790b;
    background: transparent;
    font-family: Georgia, serif;
    font-size: 68px;
    font-weight: 400;
    line-height: .7;
    cursor: pointer;
    transition: color .18s ease, transform .18s ease;
}

.otcal-approved-gallery-arrow:hover {
    color: var(--otcal-gold-dark);
    transform: scale(1.08);
}

.otcal-approved-dots {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 11px;
    min-height: 18px;
    margin: 6px auto 18px;
}

.otcal-approved-dots button {
    width: 13px;
    height: 13px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #ead8b5;
    cursor: pointer;
}

.otcal-approved-dots button.is-active {
    background: #d48b0b;
    box-shadow:
        0 0 0 2px #fff8e9,
        0 0 0 3px rgba(216,148,20,.22);
}

/* =========================================================
   DATE / OLD STYLE / NEW STYLE
   ========================================================= */

.otcal-approved-date-row {
    display: grid;
    grid-template-columns:
        minmax(105px, 1fr)
        120px
        minmax(230px, auto)
        120px
        minmax(105px, 1fr);
    align-items: center;
    gap: 7px;
    width: 100%;
    max-width: 900px;
    margin: 0 auto 16px;
    text-align: center;
}

.otcal-approved-neighbour {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    color: #7d551f;
    text-decoration: none;
}

.otcal-approved-neighbour.is-next {
    grid-template-columns: 1fr auto;
}

.otcal-approved-neighbour > span {
    grid-row: 1 / 3;
    color: #bd7b0c;
    font-family: Georgia, serif;
    font-size: 46px;
    line-height: .8;
}

.otcal-approved-neighbour small,
.otcal-approved-neighbour strong {
    display: block;
    font-weight: 400;
}

.otcal-approved-neighbour small {
    color: #7e7263;
    font-size: 14px;
}

.otcal-approved-neighbour strong {
    margin-top: 1px;
    color: #8b5a1a;
    font-size: 16px;
}

.otcal-approved-style-date small {
    display: block;
    margin-bottom: 6px;
    color: #7e7160;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

.otcal-approved-style-date strong {
    display: block;
    color: var(--otcal-brown);
    font-size: 20px;
    font-weight: 400;
}

.otcal-approved-weekday {
    margin: 0;
    color: var(--otcal-brown);
    font-family:
        var(--font-heading),
        var(--heading-font),
        Georgia,
        serif;
    font-size: clamp(36px, 3vw, 50px);
    font-weight: 600;
    line-height: .95;
    text-align: center;
}

/* =========================================================
   LITURGICAL INFO
   ========================================================= */

.otcal-approved-liturgical {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px 8px;
    margin: 0 auto 5px;
    color: var(--otcal-blue);
    font-size: 17px;
    text-align: center;
}

.otcal-approved-liturgical span + span::before {
    margin-right: 8px;
    color: var(--otcal-gold);
    content: "·";
}

.otcal-approved-food {
    margin: 0 0 11px;
    color: #45484b;
    font-size: 16px;
    text-align: center;
}

.otcal-approved-divider {
    height: 1px;
    margin: 0 auto 13px;
    background:
        linear-gradient(
            90deg,
            transparent,
            var(--otcal-gold-light) 14%,
            var(--otcal-gold) 50%,
            var(--otcal-gold-light) 86%,
            transparent
        );
}

/* =========================================================
   MAIN EVENT
   ========================================================= */

.otcal-approved-main-event {
    max-width: 850px;
    margin: 0 auto;
}

.otcal-approved-main-event h3 {
    margin: 5px 0 8px;
    color: var(--otcal-brown);
    font-family:
        var(--font-heading),
        var(--heading-font),
        Georgia,
        serif;
    font-size: 31px;
    font-weight: 600;
    line-height: 1.05;
    text-align: center;
}

.otcal-approved-main-event p {
    margin: 0;
    color: #25292d;
    font-size: 16px;
    line-height: 1.35;
}

/* =========================================================
   LOWER SECTIONS
   ========================================================= */

.otcal-approved-section {
    max-width: 850px;
    margin: 16px auto 0;
}

.otcal-approved-section h3 {
    position: relative;
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 8px;
    color: var(--otcal-brown);
    font-family:
        var(--font-heading),
        var(--heading-font),
        Georgia,
        serif;
    font-size: 27px;
    font-weight: 600;
    line-height: 1.05;
    text-align: center;
}

.otcal-approved-section h3::before,
.otcal-approved-section h3::after {
    flex: 1 1 auto;
    height: 1px;
    content: "";
    background:
        linear-gradient(
            90deg,
            transparent,
            var(--otcal-gold)
        );
}

.otcal-approved-section h3::after {
    background:
        linear-gradient(
            90deg,
            var(--otcal-gold),
            transparent
        );
}

.otcal-approved-section h3 span {
    flex: 0 1 auto;
}

.otcal-approved-events {
    margin: 0;
    padding: 0 0 0 26px;
}

.otcal-approved-events li {
    margin: 3px 0;
    padding-left: 2px;
    font-size: 15.5px;
    line-height: 1.28;
}

.otcal-approved-events li::marker {
    color: var(--otcal-gold);
    font-size: 1.15em;
}

.otcal-approved-section p {
    margin: 5px 0;
    font-size: 15.5px;
    line-height: 1.35;
}

/* =========================================================
   RIGHT CARDS
   ========================================================= */

.otcal-approved-card {
    min-height: 160px;
    padding: 21px 24px 20px;
    text-align: center;
}

.otcal-approved-card h2 {
    margin: 0 0 8px;
    color: var(--otcal-brown);
    font-family:
        var(--font-heading),
        var(--heading-font),
        Georgia,
        serif;
    font-size: 26px;
    font-weight: 600;
    line-height: 1;
}

.otcal-approved-card-rule {
    width: 80%;
    height: 1px;
    margin: 0 auto 12px;
    background:
        linear-gradient(
            90deg,
            transparent,
            var(--otcal-gold),
            transparent
        );
}

.otcal-approved-card p {
    max-width: 250px;
    margin: 0 auto;
    color: #34383c;
    font-size: 15px;
    line-height: 1.4;
}

.otcal-approved-cross,
.otcal-approved-book {
    display: block;
    margin-top: 11px;
    color: var(--otcal-gold);
    font-size: 26px;
    line-height: 1;
}

.otcal-approved-book {
    font-size: 36px;
}

/* =========================================================
   AUDIO
   ========================================================= */

.otcal-approved-audio {
    display: inline-grid;
    place-items: center;
    min-width: 54px;
    min-height: 42px;
    margin-top: 10px;
    padding: 0;
    border: 0;
    color: var(--otcal-gold);
    background: transparent;
    font-size: 29px;
    cursor: pointer;
}

.otcal-approved-audio:disabled {
    opacity: .35;
    cursor: default;
}

/* =========================================================
   RADIO BARS
   ========================================================= */

.otcal-approved-radio-bars {
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 5px;
    height: 38px;
    margin-top: 10px;
}

.otcal-approved-radio-bars i {
    display: block;
    width: 13px;
    background: var(--otcal-gold);
}

.otcal-approved-radio-bars i:nth-child(1) { height: 7px; }
.otcal-approved-radio-bars i:nth-child(2) { height: 13px; }
.otcal-approved-radio-bars i:nth-child(3) { height: 26px; }
.otcal-approved-radio-bars i:nth-child(4) { height: 34px; }
.otcal-approved-radio-bars i:nth-child(5) { height: 19px; }
.otcal-approved-radio-bars i:nth-child(6) { height: 12px; }
.otcal-approved-radio-bars i:nth-child(7) { height: 24px; }
.otcal-approved-radio-bars i:nth-child(8) { height: 16px; }
.otcal-approved-radio-bars i:nth-child(9) { height: 28px; }

/* =========================================================
   DONATION BUTTON
   ========================================================= */

.otcal-approved-donation {
    display: block;
    padding: 17px 20px;
    border: 1px solid #bd780a;
    border-radius: 11px;
    color: #fff;
    background:
        linear-gradient(
            180deg,
            #f5cc5c 0%,
            #df9f20 48%,
            #bf7606 100%
        );
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.62),
        0 4px 10px rgba(129,78,4,.16);
    font-family:
        var(--font-heading),
        var(--heading-font),
        Georgia,
        serif;
    font-size: 28px;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    text-decoration: none;
    text-shadow: 0 1px 1px rgba(95,51,0,.34);
}

/* =========================================================
   RESPONSIVE — TABLET
   ========================================================= */

@media (max-width: 1380px) {
    .otcal-approved {
        padding-right: 20px;
        padding-left: 20px;
    }

    .otcal-approved-layout {
        grid-template-columns:
            minmax(280px, 330px)
            minmax(520px, 1fr)
            minmax(245px, 285px);
        gap: 24px;
    }

    .otcal-approved-main {
        padding-right: 25px;
        padding-left: 25px;
    }

    .otcal-approved-icon[data-position="-1"] {
        transform:
            translate(calc(-50% - 160px), -50%)
            scale(.70);
    }

    .otcal-approved-icon[data-position="1"] {
        transform:
            translate(calc(-50% + 160px), -50%)
            scale(.70);
    }

    .otcal-approved-date-row {
        grid-template-columns:
            minmax(90px, 1fr)
            105px
            minmax(190px, auto)
            105px
            minmax(90px, 1fr);
    }
}

/* =========================================================
   RESPONSIVE — SMALL DESKTOP / TABLET
   ========================================================= */

@media (max-width: 1080px) {
    .otcal-approved-layout {
        grid-template-columns:
            minmax(270px, 320px)
            minmax(0, 1fr);
    }

    .otcal-approved-right {
        grid-column: 1 / -1;
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .otcal-approved-donation {
        grid-column: 1 / -1;
    }

    .otcal-approved-card {
        min-height: 175px;
    }
}

/* =========================================================
   RESPONSIVE — MOBILE
   ========================================================= */

@media (max-width: 720px) {
    .otcal-approved {
        padding-right: 12px;
        padding-left: 12px;
    }

    .otcal-approved-title {
        margin-bottom: 16px;
    }

    .otcal-approved-title h1 {
        font-size: clamp(38px, 11vw, 52px);
    }

    .otcal-approved-layout {
        display: block;
    }

    .otcal-approved-center,
    .otcal-approved-right {
        margin-top: 18px;
    }

    .otcal-approved-right {
        display: grid;
        grid-template-columns: 1fr;
    }

    .otcal-approved-month {
        min-height: 0;
        padding: 31px 19px 23px;
    }

    .otcal-approved-main {
        min-height: 0;
        padding: 28px 13px 31px;
    }

    .otcal-approved-gallery {
        grid-template-columns: 38px minmax(0, 1fr) 38px;
        gap: 2px;
    }

    .otcal-approved-gallery-stage {
        height: 230px;
    }

    .otcal-approved-icon {
        width: 145px;
        height: 195px;
    }

    .otcal-approved-icon[data-position="-1"] {
        transform:
            translate(calc(-50% - 102px), -50%)
            scale(.56);
    }

    .otcal-approved-icon[data-position="1"] {
        transform:
            translate(calc(-50% + 102px), -50%)
            scale(.56);
    }

    .otcal-approved-gallery-arrow {
        width: 38px;
        font-size: 50px;
    }

    .otcal-approved-date-row {
        grid-template-columns: 1fr 1.8fr 1fr;
        gap: 3px;
    }

    .otcal-approved-date-row .otcal-approved-style-date {
        display: none;
    }

    .otcal-approved-weekday {
        grid-column: 2;
        grid-row: 1;
        font-size: 31px;
    }

    .otcal-approved-neighbour.is-prev {
        grid-column: 1;
        grid-row: 1;
    }

    .otcal-approved-neighbour.is-next {
        grid-column: 3;
        grid-row: 1;
    }

    .otcal-approved-neighbour small {
        display: none;
    }

    .otcal-approved-neighbour strong {
        font-size: 13px;
    }

    .otcal-approved-neighbour > span {
        font-size: 31px;
    }

    .otcal-approved-liturgical {
        margin-top: 13px;
        font-size: 15px;
    }

    .otcal-approved-main-event h3 {
        font-size: 27px;
    }

    .otcal-approved-section h3 {
        font-size: 24px;
    }
}

/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 430px) {
    .otcal-approved-weekdays span {
        font-size: 12px;
    }

    .otcal-approved-day {
        min-height: 38px;
        font-size: 17px;
    }

    .otcal-approved-icon[data-position="-1"],
    .otcal-approved-icon[data-position="1"] {
        display: none;
    }

    .otcal-approved-gallery-stage {
        height: 220px;
    }

    .otcal-approved-weekday {
        font-size: 27px;
    }

    .otcal-approved-main-event p,
    .otcal-approved-section p,
    .otcal-approved-events li {
        font-size: 15px;
    }
}


/* =========================================================
   APPROVED MOCKUP GEOMETRY — 2026-09-15
   ========================================================= */

/*
 * Пропорции сняты с утверждённого макета:
 * левая ≈22%, центр ≈53%, правая ≈19%.
 */
.otcal-approved {
    max-width: 1774px;
    padding-right: 25px;
    padding-left: 25px;

    background:
        radial-gradient(
            circle at 50% 0,
            rgba(255,255,255,.72),
            transparent 58%
        ),
        #fffaf1;

    box-shadow:
        0 0 0 100vmax #fffaf1;

    clip-path: inset(0 -100vmax);
}

.otcal-approved-layout {
    grid-template-columns:
        22%
        minmax(0, 1fr)
        19.3%;

    column-gap: 2.7%;
    row-gap: 0;
}

/*
 * Убираем старые четыре одинаково ориентированных SVG.
 */
.otcal-approved-frame::after {
    display: none !important;
}

/*
 * Настоящие четыре угла с правильным зеркалированием.
 */
.otcal-approved-corner {
    position: absolute !important;
    z-index: 6 !important;

    width: 58px;
    height: 58px;

    pointer-events: none;

    background:
        url("/assets/calendar/approved-v8/corner.svg")
        left top / 58px 58px no-repeat;
}

.otcal-approved-corner.is-tl {
    top: -8px;
    left: -8px;
}

.otcal-approved-corner.is-tr {
    top: -8px;
    right: -8px;
    transform: scaleX(-1);
}

.otcal-approved-corner.is-bl {
    bottom: -8px;
    left: -8px;
    transform: scaleY(-1);
}

.otcal-approved-corner.is-br {
    right: -8px;
    bottom: -8px;
    transform: scale(-1, -1);
}

/*
 * Тонкие внутренние линии как на макете.
 */
.otcal-approved-frame::before {
    inset: 7px;

    background:
        linear-gradient(
            var(--otcal-gold-light),
            var(--otcal-gold-light)
        ) top center / calc(100% - 88px) 1px no-repeat,

        linear-gradient(
            var(--otcal-gold-light),
            var(--otcal-gold-light)
        ) bottom center / calc(100% - 88px) 1px no-repeat,

        linear-gradient(
            var(--otcal-gold-light),
            var(--otcal-gold-light)
        ) left center / 1px calc(100% - 88px) no-repeat,

        linear-gradient(
            var(--otcal-gold-light),
            var(--otcal-gold-light)
        ) right center / 1px calc(100% - 88px) no-repeat;
}

/* Заголовок страницы */
.otcal-approved-title {
    margin-bottom: 21px;
}

.otcal-approved-title h1 {
    font-size: clamp(50px, 4.05vw, 72px);
}

/* Левая колонка */
.otcal-approved-month {
    min-height: 515px;
    padding: 34px 25px 25px;
}

.otcal-approved-month-head {
    margin-bottom: 17px;
}

.otcal-approved-month-head h2 {
    font-size: clamp(23px, 1.75vw, 30px);
}

.otcal-approved-day,
.otcal-approved-month-grid .is-empty {
    min-height: 40px;
}

.otcal-approved-day {
    font-size: 18px;
}

.otcal-approved-legend {
    margin-top: 34px;
    margin-bottom: 33px;
}

/* Центральная колонка получает нужную ширину */
.otcal-approved-main {
    padding-right: 38px;
    padding-left: 38px;
}

/* Строка дат больше не сжимается */
.otcal-approved-date-row {
    grid-template-columns:
        minmax(105px, 1fr)
        112px
        minmax(205px, auto)
        112px
        minmax(105px, 1fr);

    gap: 9px;
    max-width: 100%;
}

.otcal-approved-weekday {
    white-space: nowrap;
}

/* Правая колонка — компактнее как на утверждённом макете */
.otcal-approved-right {
    gap: 15px;
}

.otcal-approved-card {
    min-height: 151px;
    padding: 20px 20px 18px;
}

.otcal-approved-card h2 {
    margin-bottom: 9px;
    font-size: clamp(20px, 1.55vw, 26px);
}

.otcal-approved-card p {
    max-width: 230px;
    font-size: 14px;
    line-height: 1.42;
}

.otcal-approved-donation {
    padding-top: 16px;
    padding-bottom: 16px;
    font-size: 26px;
}

/*
 * Для обычного ноутбука 1366 px сохраняем именно
 * пропорции утверждённого макета, а не старой V12.
 */
@media (min-width: 1081px) and (max-width: 1500px) {
    .otcal-approved-layout {
        grid-template-columns:
            22%
            minmax(0, 1fr)
            19.3%;

        gap: 2.7%;
    }

    .otcal-approved-main {
        padding-right: 26px;
        padding-left: 26px;
    }

    .otcal-approved-month {
        padding-right: 22px;
        padding-left: 22px;
    }

    .otcal-approved-card {
        padding-right: 18px;
        padding-left: 18px;
    }

    .otcal-approved-card h2 {
        font-size: 22px;
    }

    .otcal-approved-date-row {
        grid-template-columns:
            minmax(92px, 1fr)
            96px
            minmax(185px, auto)
            96px
            minmax(92px, 1fr);

        gap: 5px;
    }

    .otcal-approved-style-date strong {
        font-size: 17px;
    }

    .otcal-approved-neighbour small {
        font-size: 12px;
    }

    .otcal-approved-neighbour strong {
        font-size: 14px;
    }
}


/* ===== APPROVED VISUAL PASS 2 ===== */

/*
 * На полном макете 1728px размеры остаются крупными.
 * На рабочих экранах 1081–1500px весь первый экран
 * пропорционально уплотняется как в утверждённом макете.
 */
@media (min-width: 1081px) and (max-width: 1500px) {

    /* ---------- TYPOGRAPHY ---------- */

    .otcal-approved-title h1,
    .otcal-approved-month-head h2,
    .otcal-approved-weekday,
    .otcal-approved-main-event h3,
    .otcal-approved-section h3,
    .otcal-approved-card h2,
    .otcal-approved-donation {
        font-family:
            "Cormorant Garamond",
            "Times New Roman",
            Georgia,
            serif;
    }

    .otcal-approved-title h1 {
        font-size: 48px;
        font-weight: 600;
        line-height: 1;
        letter-spacing: .015em;
        white-space: nowrap;
    }

    /* ---------- DECORATIVE CORNERS ---------- */

    .otcal-approved-corner {
        width: 46px;
        height: 46px;

        background-size: 46px 46px;
    }

    .otcal-approved-corner.is-tl {
        top: -7px;
        left: -7px;
    }

    .otcal-approved-corner.is-tr {
        top: -7px;
        right: -7px;
    }

    .otcal-approved-corner.is-bl {
        bottom: -7px;
        left: -7px;
    }

    .otcal-approved-corner.is-br {
        right: -7px;
        bottom: -7px;
    }

    .otcal-approved-frame::before {
        background:
            linear-gradient(
                var(--otcal-gold-light),
                var(--otcal-gold-light)
            ) top center / calc(100% - 72px) 1px no-repeat,

            linear-gradient(
                var(--otcal-gold-light),
                var(--otcal-gold-light)
            ) bottom center / calc(100% - 72px) 1px no-repeat,

            linear-gradient(
                var(--otcal-gold-light),
                var(--otcal-gold-light)
            ) left center / 1px calc(100% - 72px) no-repeat,

            linear-gradient(
                var(--otcal-gold-light),
                var(--otcal-gold-light)
            ) right center / 1px calc(100% - 72px) no-repeat;
    }

    /* ---------- LEFT MONTH ---------- */

    .otcal-approved-month {
        min-height: 410px;
        padding: 27px 18px 18px;
    }

    .otcal-approved-month-head {
        grid-template-columns: 29px minmax(0, 1fr) 29px;
        margin-bottom: 11px;
    }

    .otcal-approved-month-head h2 {
        font-size: 23px;
        line-height: 1;
        white-space: nowrap;
    }

    .otcal-approved-month-head a {
        width: 29px;
        height: 32px;
        font-size: 31px;
    }

    .otcal-approved-weekdays {
        margin-bottom: 4px;
        padding-bottom: 6px;
    }

    .otcal-approved-weekdays span {
        font-size: 12px;
    }

    .otcal-approved-month-grid {
        gap: 3px;
    }

    .otcal-approved-day,
    .otcal-approved-month-grid .is-empty {
        min-height: 34px;
    }

    .otcal-approved-day {
        font-size: 16px;
    }

    .otcal-approved-legend {
        gap: 10px;
        margin: 23px 5px 23px;
    }

    .otcal-approved-legend > span {
        flex-basis: 16px;
        width: 16px;
        height: 16px;
    }

    .otcal-approved-legend p {
        font-size: 14px;
    }

    .otcal-approved-today {
        gap: 10px;
        padding: 0 5px;
    }

    .otcal-approved-today > span {
        font-size: 20px;
    }

    .otcal-approved-today strong {
        font-size: 14px;
    }

    /* ---------- MAIN CENTRAL FRAME ---------- */

    .otcal-approved-main {
        min-height: 0;
        padding: 26px 26px 32px;
    }

    .otcal-approved-top-ornament {
        top: -14px;
        width: 270px;
        height: 42px;

        background-size: 270px 42px;
    }

    /* ---------- ICONS ---------- */

    .otcal-approved-gallery {
        grid-template-columns: 45px minmax(0, 1fr) 45px;
        gap: 6px;
        max-width: 100%;
    }

    .otcal-approved-gallery-stage {
        height: 205px;
    }

    /*
     * Не растягиваем иконы по принудительному прямоугольнику.
     * Каждая сохраняет свои настоящие пропорции.
     */
    .otcal-approved-icon {
        width: 160px;
        height: 200px;
    }

    .otcal-approved-icon img {
        width: auto;
        height: auto;
        max-width: 100%;
        max-height: 100%;
        margin: auto;
        padding: 4px;

        object-fit: contain;
    }

    .otcal-approved-icon[data-position="0"] {
        transform:
            translate(-50%, -50%)
            scale(1);
    }

    .otcal-approved-icon[data-position="-1"] {
        transform:
            translate(calc(-50% - 150px), -50%)
            scale(.74);
    }

    .otcal-approved-icon[data-position="1"] {
        transform:
            translate(calc(-50% + 150px), -50%)
            scale(.74);
    }

    .otcal-approved-gallery-arrow {
        width: 45px;
        height: 66px;
        font-size: 55px;
    }

    /* ---------- FIVE DOTS LIKE APPROVED MOCKUP ---------- */

    .otcal-approved-dots {
        gap: 9px;
        min-height: 14px;
        margin: 3px auto 12px;
    }

    .otcal-approved-dots button {
        width: 11px;
        height: 11px;
    }

    /* ---------- DATE ROW ---------- */

    .otcal-approved-date-row {
        grid-template-columns:
            minmax(85px, 1fr)
            88px
            minmax(160px, auto)
            88px
            minmax(85px, 1fr);

        gap: 4px;
        margin-bottom: 10px;
    }

    .otcal-approved-weekday {
        font-size: 38px;
        line-height: .95;
        white-space: nowrap;
    }

    .otcal-approved-style-date small {
        margin-bottom: 4px;
        font-size: 9px;
    }

    .otcal-approved-style-date strong {
        font-size: 16px;
    }

    .otcal-approved-neighbour small {
        font-size: 11px;
    }

    .otcal-approved-neighbour strong {
        font-size: 13px;
    }

    .otcal-approved-neighbour > span {
        font-size: 35px;
    }

    /* ---------- LITURGICAL TEXT ---------- */

    .otcal-approved-liturgical {
        gap: 4px 7px;
        margin-bottom: 4px;
        font-size: 15px;
    }

    .otcal-approved-food {
        margin-bottom: 9px;
        font-size: 14px;
    }

    .otcal-approved-divider {
        margin-bottom: 9px;
    }

    .otcal-approved-main-event h3 {
        margin-top: 3px;
        margin-bottom: 6px;
        font-size: 25px;
    }

    .otcal-approved-main-event p {
        font-size: 14px;
        line-height: 1.28;
    }

    .otcal-approved-section {
        margin-top: 12px;
    }

    .otcal-approved-section h3 {
        margin-bottom: 6px;
        font-size: 23px;
    }

    .otcal-approved-events li,
    .otcal-approved-section p {
        font-size: 14px;
        line-height: 1.26;
    }

    /* ---------- RIGHT COLUMN ---------- */

    .otcal-approved-right {
        gap: 13px;
    }

    .otcal-approved-card {
        min-height: 126px;
        padding: 14px 16px 13px;
    }

    .otcal-approved-card h2 {
        margin-bottom: 6px;
        font-size: 20px;
        line-height: 1;
        white-space: nowrap;
    }

    .otcal-approved-card-rule {
        margin-bottom: 8px;
    }

    .otcal-approved-card p {
        max-width: 220px;
        font-size: 13px;
        line-height: 1.27;
    }

    .otcal-approved-cross {
        margin-top: 7px;
        font-size: 21px;
    }

    .otcal-approved-book {
        margin-top: 7px;
        font-size: 28px;
    }

    .otcal-approved-audio {
        min-width: 42px;
        min-height: 30px;
        margin-top: 6px;
        font-size: 23px;
    }

    .otcal-approved-radio-bars {
        gap: 4px;
        height: 29px;
        margin-top: 6px;
    }

    .otcal-approved-radio-bars i {
        width: 10px;
    }

    .otcal-approved-radio-bars i:nth-child(1) { height: 6px; }
    .otcal-approved-radio-bars i:nth-child(2) { height: 10px; }
    .otcal-approved-radio-bars i:nth-child(3) { height: 20px; }
    .otcal-approved-radio-bars i:nth-child(4) { height: 27px; }
    .otcal-approved-radio-bars i:nth-child(5) { height: 15px; }
    .otcal-approved-radio-bars i:nth-child(6) { height: 9px; }
    .otcal-approved-radio-bars i:nth-child(7) { height: 19px; }
    .otcal-approved-radio-bars i:nth-child(8) { height: 13px; }
    .otcal-approved-radio-bars i:nth-child(9) { height: 22px; }

    .otcal-approved-donation {
        padding: 13px 16px;
        font-size: 23px;
    }
}


/* ===== APPROVED VISUAL PASS 3 ===== */

/* ---------------------------------------------------------
   CHURCH TYPOGRAPHY
   --------------------------------------------------------- */

.otcal-approved-title h1,
.otcal-approved-month-head h2,
.otcal-approved-weekday,
.otcal-approved-main-event h3,
.otcal-approved-section h3,
.otcal-approved-card h2,
.otcal-approved-donation {
    font-family:
        "Ponomar",
        "Monomakh",
        Georgia,
        serif !important;

    font-weight: 400;
}

.otcal-approved-title h1 {
    color: #744313;
    letter-spacing: .01em;
}

.otcal-approved-month-head h2 {
    color: #704112;
}

.otcal-approved-weekday {
    color: #714313;
}

.otcal-approved-card h2 {
    color: #704112;
}

/* ---------------------------------------------------------
   TODAY CALENDAR ICON
   --------------------------------------------------------- */

.otcal-approved-calendar-mark {
    position: relative;

    display: inline-block;

    flex: 0 0 18px;

    width: 18px;
    height: 17px;

    border: 2px solid #784711;
    border-radius: 2px;
}

.otcal-approved-calendar-mark::before {
    position: absolute;

    top: 3px;
    left: 0;

    width: 100%;
    height: 2px;

    content: "";

    background: #784711;
}

.otcal-approved-calendar-mark::after {
    position: absolute;

    top: -5px;
    left: 3px;

    width: 2px;
    height: 6px;

    content: "";

    border-radius: 2px;

    background: #784711;

    box-shadow: 7px 0 0 #784711;
}


/* ---------------------------------------------------------
   DESKTOP 1366–1500: EXACT FIRST SCREEN PROPORTIONS
   --------------------------------------------------------- */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* PAGE TITLE */

    .otcal-approved-title {
        margin-bottom: 20px;
    }

    .otcal-approved-title h1 {
        font-size: 50px;
        line-height: .92;
    }


    /* MONTH CARD — already close to approved mockup */

    .otcal-approved-month-head h2 {
        font-size: 23px;
    }


    /* -----------------------------------------------------
       ICON AREA
       Approved mockup has a noticeably lower gallery.
       ----------------------------------------------------- */

    .otcal-approved-main {
        padding-top: 22px;
    }

    .otcal-approved-gallery-stage {
        height: 184px;
    }

    .otcal-approved-icon {
        width: 145px;
        height: 178px;
    }

    .otcal-approved-icon[data-position="0"] {
        transform:
            translate(-50%, -50%)
            scale(1);
    }

    .otcal-approved-icon[data-position="-1"] {
        transform:
            translate(calc(-50% - 132px), -50%)
            scale(.72);
    }

    .otcal-approved-icon[data-position="1"] {
        transform:
            translate(calc(-50% + 132px), -50%)
            scale(.72);
    }

    .otcal-approved-gallery-arrow {
        font-size: 50px;
    }

    .otcal-approved-dots {
        gap: 8px;
        margin-top: 1px;
        margin-bottom: 8px;
    }

    .otcal-approved-dots button {
        width: 10px;
        height: 10px;
    }


    /* -----------------------------------------------------
       DATE ROW
       ----------------------------------------------------- */

    .otcal-approved-date-row {
        margin-bottom: 7px;
    }

    .otcal-approved-weekday {
        font-size: 36px;
        line-height: .9;
    }

    .otcal-approved-style-date small {
        margin-bottom: 2px;
        font-size: 9px;
    }

    .otcal-approved-style-date strong {
        font-size: 14px;
    }

    .otcal-approved-neighbour small {
        font-size: 10px;
    }

    .otcal-approved-neighbour strong {
        font-size: 12px;
    }

    .otcal-approved-neighbour > span {
        font-size: 31px;
    }


    /* -----------------------------------------------------
       LITURGICAL DATA
       ----------------------------------------------------- */

    .otcal-approved-liturgical {
        margin-bottom: 2px;
        font-size: 13px;
    }

    .otcal-approved-food {
        margin-bottom: 7px;
        font-size: 12px;
    }

    .otcal-approved-divider {
        margin-bottom: 6px;
    }


    /* -----------------------------------------------------
       MAIN EVENT
       ----------------------------------------------------- */

    .otcal-approved-main-event h3 {
        margin-top: 2px;
        margin-bottom: 5px;

        font-size: 20px;
        line-height: 1;
    }

    .otcal-approved-main-event p {
        font-size: 12px;
        line-height: 1.22;
    }


    /* -----------------------------------------------------
       LOWER HEADINGS
       ----------------------------------------------------- */

    .otcal-approved-section {
        margin-top: 9px;
    }

    .otcal-approved-section h3 {
        gap: 8px;

        margin-bottom: 4px;

        font-size: 20px;
    }

    .otcal-approved-events li,
    .otcal-approved-section p {
        margin-top: 2px;
        margin-bottom: 2px;

        font-size: 12px;
        line-height: 1.2;
    }


    /* -----------------------------------------------------
       RIGHT COLUMN — dimensions from approved mockup
       ----------------------------------------------------- */

    .otcal-approved-right {
        gap: 11px;
    }

    .otcal-approved-card {
        min-height: 0;

        padding-right: 13px;
        padding-left: 13px;
    }

    .otcal-approved-quote-card {
        height: 100px;
        padding-top: 12px;
        padding-bottom: 8px;
    }

    .otcal-approved-audio-card {
        height: 85px;
        padding-top: 11px;
        padding-bottom: 8px;
    }

    .otcal-approved-radio-card {
        height: 82px;
        padding-top: 10px;
        padding-bottom: 7px;
    }

    .otcal-approved-history-card {
        height: 99px;
        padding-top: 11px;
        padding-bottom: 8px;
    }

    .otcal-approved-card h2 {
        margin-bottom: 5px;

        font-size: 17px;
        line-height: .95;

        white-space: nowrap;
    }

    .otcal-approved-card-rule {
        width: 76%;

        margin-bottom: 6px;
    }

    .otcal-approved-card p {
        max-width: 205px;

        font-size: 10.5px;
        line-height: 1.22;
    }

    .otcal-approved-cross {
        margin-top: 4px;

        font-size: 18px;
    }

    .otcal-approved-book {
        margin-top: 4px;

        font-size: 23px;
    }

    .otcal-approved-audio {
        min-width: 35px;
        min-height: 22px;

        margin-top: 3px;

        font-size: 20px;
    }

    .otcal-approved-radio-bars {
        gap: 4px;

        height: 24px;

        margin-top: 3px;
    }

    .otcal-approved-radio-bars i {
        width: 8px;
    }

    .otcal-approved-radio-bars i:nth-child(1) { height: 5px; }
    .otcal-approved-radio-bars i:nth-child(2) { height: 8px; }
    .otcal-approved-radio-bars i:nth-child(3) { height: 15px; }
    .otcal-approved-radio-bars i:nth-child(4) { height: 21px; }
    .otcal-approved-radio-bars i:nth-child(5) { height: 13px; }
    .otcal-approved-radio-bars i:nth-child(6) { height: 8px; }
    .otcal-approved-radio-bars i:nth-child(7) { height: 16px; }
    .otcal-approved-radio-bars i:nth-child(8) { height: 11px; }
    .otcal-approved-radio-bars i:nth-child(9) { height: 18px; }


    /* DONATION BUTTON */

    .otcal-approved-donation {
        padding: 7px 12px;

        border-radius: 8px;

        font-size: 20px;
        line-height: 1;
    }
}


/* ---------------------------------------------------------
   PAPER BACKGROUND
   --------------------------------------------------------- */

.otcal-approved {
    background:
        radial-gradient(
            circle at 18% 14%,
            rgba(211,154,39,.035) 0 1px,
            transparent 1.5px
        ) 0 0 / 14px 14px,

        radial-gradient(
            circle at 72% 62%,
            rgba(126,78,18,.028) 0 1px,
            transparent 1.5px
        ) 0 0 / 19px 19px,

        linear-gradient(
            180deg,
            #fffdf7 0%,
            #fffaf0 100%
        );

    box-shadow:
        0 0 0 100vmax #fffaf0;

    clip-path: inset(0 -100vmax);
}


/* ===== FIRST SCREEN WITH SITE HEADER — VISUAL PASS 4 ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       ШАПКА САЙТА НЕ ТРОГАЕТСЯ.
       Первый экран календаря начинается сразу под ней.
       ===================================================== */


    /* =====================================================
       TITLE
       ===================================================== */

    .otcal-approved-title {
        margin-top: 0;
        margin-bottom: 21px;
    }

    .otcal-approved-title h1 {
        font-family:
            "Ponomar",
            "Monomakh",
            Georgia,
            serif !important;

        font-size: 54px;
        font-weight: 400;
        line-height: .93;

        color: #744313;

        white-space: nowrap;
    }


    /* =====================================================
       MAIN THREE-COLUMN BLOCK
       ===================================================== */

    .otcal-approved-layout {
        grid-template-columns:
            22%
            minmax(0, 1fr)
            19.3%;

        column-gap: 2.7%;
    }


    /* =====================================================
       LEFT MONTH CALENDAR
       ===================================================== */

    .otcal-approved-month {
        min-height: 408px;
    }

    .otcal-approved-month-head h2 {
        font-size: 24px;
    }


    /* =====================================================
       ICON GALLERY
       Центральная икона остаётся главной.
       Боковые увеличиваем и раздвигаем как в макете.
       ===================================================== */

    .otcal-approved-main {
        padding-top: 24px;
    }

    .otcal-approved-gallery-stage {
        height: 192px;
    }

    .otcal-approved-icon {
        width: 150px;
        height: 184px;
    }

    .otcal-approved-icon[data-position="0"] {
        transform:
            translate(-50%, -50%)
            scale(1);
    }

    .otcal-approved-icon[data-position="-1"] {
        transform:
            translate(calc(-50% - 165px), -50%)
            scale(.84);
    }

    .otcal-approved-icon[data-position="1"] {
        transform:
            translate(calc(-50% + 165px), -50%)
            scale(.84);
    }

    .otcal-approved-gallery-arrow {
        width: 46px;
        height: 68px;

        font-size: 55px;
    }


    /* =====================================================
       DOTS
       ===================================================== */

    .otcal-approved-dots {
        gap: 9px;

        min-height: 14px;

        margin-top: 2px;
        margin-bottom: 12px;
    }

    .otcal-approved-dots button {
        width: 10px;
        height: 10px;
    }


    /* =====================================================
       DATE ROW
       ===================================================== */

    .otcal-approved-date-row {
        margin-bottom: 11px;
    }

    .otcal-approved-weekday {
        font-size: 38px;
        line-height: .92;
    }

    .otcal-approved-style-date small {
        margin-bottom: 3px;
    }


    /* =====================================================
       DECORATIVE ORNAMENTS ABOVE PREVIOUS / NEXT DAYS
       ===================================================== */

    .otcal-approved-neighbour {
        position: relative;

        padding-top: 11px;
    }

    .otcal-approved-neighbour::before {
        position: absolute;

        top: 0;
        left: 50%;

        width: 68px;
        height: 10px;

        content: "";

        background:
            url("/assets/calendar/approved-v8/top-center.svg")
            center top / 68px 10px no-repeat;

        opacity: .9;

        transform: translateX(-50%);
    }


    /* =====================================================
       LITURGICAL ROW
       ===================================================== */

    .otcal-approved-liturgical {
        margin-top: 2px;
        margin-bottom: 5px;

        font-size: 14px;
    }

    .otcal-approved-food {
        margin-bottom: 10px;

        font-size: 13px;
    }


    /* =====================================================
       CENTRAL DIVIDER
       ===================================================== */

    .otcal-approved-divider {
        position: relative;

        margin-bottom: 10px;
    }

    .otcal-approved-divider::after {
        position: absolute;

        top: -7px;
        left: 50%;

        width: 55px;
        height: 14px;

        content: "";

        background:
            #fffaf0
            url("/assets/calendar/approved-v8/top-center.svg")
            center / 55px 14px no-repeat;

        transform: translateX(-50%);
    }


    /* =====================================================
       MAIN EVENT
       ===================================================== */

    .otcal-approved-main-event h3 {
        margin-top: 3px;
        margin-bottom: 7px;

        font-size: 22px;
        line-height: 1;
    }

    .otcal-approved-main-event p {
        font-size: 12.5px;
        line-height: 1.24;
    }


    /* =====================================================
       LOWER SECTIONS
       ===================================================== */

    .otcal-approved-section {
        margin-top: 11px;
    }

    .otcal-approved-section h3 {
        margin-bottom: 6px;

        font-size: 21px;
    }

    .otcal-approved-events li,
    .otcal-approved-section p {
        font-size: 12.5px;
        line-height: 1.22;
    }


    /* =====================================================
       RIGHT COLUMN
       ПРОПОРЦИИ КАК НА УТВЕРЖДЁННОМ ПЕРВОМ ЭКРАНЕ
       ===================================================== */

    .otcal-approved-right {
        gap: 11px;
    }

    .otcal-approved-card {
        min-height: 0;

        padding-right: 17px;
        padding-left: 17px;
    }

    .otcal-approved-quote-card {
        height: 132px;

        padding-top: 16px;
        padding-bottom: 11px;
    }

    .otcal-approved-audio-card {
        height: 119px;

        padding-top: 15px;
        padding-bottom: 10px;
    }

    .otcal-approved-radio-card {
        height: 110px;

        padding-top: 14px;
        padding-bottom: 9px;
    }

    .otcal-approved-history-card {
        height: 122px;

        padding-top: 15px;
        padding-bottom: 10px;
    }


    /* =====================================================
       RIGHT TITLES / TEXT
       ===================================================== */

    .otcal-approved-card h2 {
        margin-bottom: 8px;

        font-family:
            "Ponomar",
            "Monomakh",
            Georgia,
            serif !important;

        font-size: 22px;
        font-weight: 400;
        line-height: 1;

        color: #704112;

        white-space: nowrap;
    }

    .otcal-approved-card-rule {
        width: 78%;

        margin-bottom: 8px;
    }

    .otcal-approved-card p {
        max-width: 225px;

        font-size: 12px;
        line-height: 1.28;
    }

    .otcal-approved-quote-card p {
        font-style: italic;
    }

    .otcal-approved-cross {
        margin-top: 6px;

        font-size: 21px;
    }


    /* =====================================================
       AUDIO ICON — GOLD, WITHOUT SYSTEM EMOJI
       ===================================================== */

    .otcal-approved-audio {
        position: relative;

        width: 42px;
        min-width: 42px;

        height: 31px;
        min-height: 31px;

        margin-top: 6px;

        overflow: hidden;

        color: transparent;

        font-size: 0;
    }

    .otcal-approved-audio::before {
        position: absolute;

        top: 7px;
        left: 5px;

        width: 18px;
        height: 17px;

        content: "";

        background: var(--otcal-gold);

        clip-path: polygon(
            0 34%,
            31% 34%,
            100% 0,
            100% 100%,
            31% 66%,
            0 66%
        );
    }

    .otcal-approved-audio::after {
        position: absolute;

        top: 5px;
        left: 21px;

        width: 11px;
        height: 21px;

        content: "";

        border-right: 2px solid var(--otcal-gold);
        border-radius: 0 100% 100% 0;
    }


    /* =====================================================
       RADIO
       ===================================================== */

    .otcal-approved-radio-bars {
        gap: 4px;

        height: 31px;

        margin-top: 6px;
    }

    .otcal-approved-radio-bars i {
        width: 10px;
    }

    .otcal-approved-radio-bars i:nth-child(1) { height: 6px; }
    .otcal-approved-radio-bars i:nth-child(2) { height: 11px; }
    .otcal-approved-radio-bars i:nth-child(3) { height: 19px; }
    .otcal-approved-radio-bars i:nth-child(4) { height: 29px; }
    .otcal-approved-radio-bars i:nth-child(5) { height: 17px; }
    .otcal-approved-radio-bars i:nth-child(6) { height: 10px; }
    .otcal-approved-radio-bars i:nth-child(7) { height: 21px; }
    .otcal-approved-radio-bars i:nth-child(8) { height: 14px; }
    .otcal-approved-radio-bars i:nth-child(9) { height: 24px; }


    /* =====================================================
       HISTORY BOOK
       ===================================================== */

    .otcal-approved-book {
        position: relative;

        display: block;

        width: 31px;
        height: 22px;

        margin: 8px auto 0;

        border: 2px solid var(--otcal-gold);
        border-radius: 3px 3px 5px 5px;

        overflow: hidden;

        color: transparent;

        font-size: 0;
    }

    .otcal-approved-book::before {
        position: absolute;

        top: -2px;
        bottom: -2px;
        left: 50%;

        width: 2px;

        content: "";

        background: var(--otcal-gold);

        transform: translateX(-50%);
    }

    .otcal-approved-book::after {
        position: absolute;

        top: 5px;
        left: 4px;

        width: 8px;
        height: 1px;

        content: "";

        background: var(--otcal-gold);

        box-shadow:
            0 4px 0 var(--otcal-gold),
            15px 0 0 var(--otcal-gold),
            15px 4px 0 var(--otcal-gold);
    }


    /* =====================================================
       DONATION BUTTON
       ===================================================== */

    .otcal-approved-donation {
        padding: 10px 14px;

        border-radius: 9px;

        font-size: 23px;
    }

}



/* ===== CALENDAR TYPOGRAPHY + DECOR PASS ===== */


/* =========================================================
   PAPER
   Убираем заметный повторяющийся точечный узор.
   Оставляем очень мягкий тёплый бумажный фон.
   ========================================================= */

.otcal-approved {
    background:
        radial-gradient(
            ellipse at 24% 8%,
            rgba(222,177,86,.055),
            transparent 34%
        ),
        radial-gradient(
            ellipse at 81% 35%,
            rgba(177,125,48,.035),
            transparent 38%
        ),
        linear-gradient(
            180deg,
            #fffdf8 0%,
            #fffaf1 100%
        ) !important;

    box-shadow:
        0 0 0 100vmax #fffaf1;

    clip-path: inset(0 -100vmax);
}


/* =========================================================
   HEADINGS

   Monomakh визуально ближе к утверждённому макету.
   Ponomar оставляем для крупного названия дня недели.
   ========================================================= */

.otcal-approved-title h1,
.otcal-approved-month-head h2,
.otcal-approved-main-event h3,
.otcal-approved-section h3,
.otcal-approved-card h2,
.otcal-approved-donation {
    font-family:
        "Monomakh",
        "Ponomar",
        Georgia,
        serif !important;

    font-weight: 400 !important;
}

.otcal-approved-weekday {
    font-family:
        "Ponomar",
        "Monomakh",
        Georgia,
        serif !important;

    font-weight: 400 !important;
}


/* =========================================================
   DESKTOP FIRST SCREEN
   ========================================================= */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* -----------------------------------------------------
       PAGE TITLE
       ----------------------------------------------------- */

    .otcal-approved-title {
        margin-top: 6px;
        margin-bottom: 17px;
    }

    .otcal-approved-title h1 {
        font-size: 57px;
        line-height: .94;
        letter-spacing: .005em;

        color: #704313;
    }


    /* -----------------------------------------------------
       MONTH TITLE
       ----------------------------------------------------- */

    .otcal-approved-month-head h2 {
        font-size: 25px;
        line-height: 1;

        color: #704313;
    }


    /* -----------------------------------------------------
       MAIN WEEKDAY
       ----------------------------------------------------- */

    .otcal-approved-weekday {
        font-size: 38px;
        line-height: .9;

        color: #704313;
    }


    /* -----------------------------------------------------
       PREVIOUS / NEXT DAY ORNAMENT
       ----------------------------------------------------- */

    .otcal-approved-neighbour {
        padding-top: 17px;
    }

    .otcal-approved-neighbour::before {
        top: 0;

        width: 82px;
        height: 17px;

        background:
            url("/assets/calendar/approved-v8/top-center.svg")
            center top / 82px 17px no-repeat;

        opacity: 1;
    }


    /* -----------------------------------------------------
       MAIN EVENT
       ----------------------------------------------------- */

    .otcal-approved-main-event h3 {
        font-size: 23px;
        line-height: 1.02;

        color: #704313;
    }


    /* -----------------------------------------------------
       EVENTS / READINGS HEADINGS
       ----------------------------------------------------- */

    .otcal-approved-section h3 {
        font-size: 22px;
        line-height: 1;

        color: #704313;
    }


    /* -----------------------------------------------------
       RIGHT CARD HEADINGS
       ----------------------------------------------------- */

    .otcal-approved-card h2 {
        font-size: 22px;
        line-height: .98;

        color: #704313;
    }

    .otcal-approved-card p {
        font-family:
            Georgia,
            "Times New Roman",
            serif;

        color: #292929;
    }


    /* Quote exactly behaves like a quote in the mockup */

    .otcal-approved-quote-card p {
        font-style: italic;
    }

    .otcal-approved-quote-card {
        position: relative;
    }

    .otcal-approved-quote-card .otcal-approved-cross {
        position: absolute !important;

        bottom: 7px;
        left: 50%;

        margin: 0;

        transform: translateX(-50%);
    }


    /* -----------------------------------------------------
       AUDIO ICON

       Если самого аудиофайла у источника нет, кнопка остаётся
       disabled функционально, но визуально не становится серой.
       ----------------------------------------------------- */

    .otcal-approved-audio:disabled {
        opacity: 1 !important;
        cursor: default;
    }

    .otcal-approved-audio::before {
        background: #d79006;
    }

    .otcal-approved-audio::after {
        border-color: #d79006;
    }


    /* -----------------------------------------------------
       DIVIDER UNDER FASTING INFO
       ----------------------------------------------------- */

    .otcal-approved-divider {
        background:
            linear-gradient(
                90deg,
                transparent 0%,
                #e5c37b 11%,
                #d79a27 50%,
                #e5c37b 89%,
                transparent 100%
            );
    }

    .otcal-approved-divider::after {
        width: 64px;
        height: 15px;

        background:
            #fffaf1
            url("/assets/calendar/approved-v8/top-center.svg")
            center / 64px 15px no-repeat;
    }


    /* -----------------------------------------------------
       LOWER SECTION DIVIDERS
       ----------------------------------------------------- */

    .otcal-approved-section h3::before,
    .otcal-approved-section h3::after {
        background:
            linear-gradient(
                90deg,
                transparent,
                #d79a27
            );
    }

    .otcal-approved-section h3::after {
        background:
            linear-gradient(
                90deg,
                #d79a27,
                transparent
            );
    }

}



/* ===== CALENDAR CENTER EXACT ALIGNMENT ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       PAGE TITLE
       Геометрию страницы не двигаем.
       Опускаем только сам текст к декоративной рамке.
       ===================================================== */

    .otcal-approved-title h1 {
        font-size: 54px;
        transform: translateY(10px);
    }


    /* =====================================================
       ICON AREA
       Иконы и рабочую карусель не меняем.
       Немного уплотняем только вертикальную сцену.
       ===================================================== */

    .otcal-approved-gallery-stage {
        height: 186px;
    }


    /* Стрелки в утверждённом макете находятся немного
       выше геометрического центра изображений. */

    .otcal-approved-gallery-arrow {
        transform: translateY(-17px);
    }

    .otcal-approved-gallery-arrow:hover {
        transform:
            translateY(-17px)
            scale(1.08);
    }


    /* =====================================================
       DOTS
       ===================================================== */

    .otcal-approved-dots {
        margin-top: 1px;
        margin-bottom: 3px;
    }


    /* =====================================================
       DATE ROW

       В макете старый и новый стиль значительно разнесены
       относительно центрального дня недели.
       Центральной колонке задаём стабильную ширину, чтобы
       геометрия не зависела от длины слова:
       Вторник / Понедельник / Воскресенье.
       ===================================================== */

    .otcal-approved-date-row {
        grid-template-columns:
            minmax(75px, 1fr)
            88px
            265px
            88px
            minmax(75px, 1fr);

        gap: 4px;

        max-width: 100%;

        margin-bottom: 4px;
    }

    .otcal-approved-weekday {
        width: 265px;

        font-size: 38px;
        line-height: .9;

        white-space: nowrap;
        text-align: center;
    }


    /* =====================================================
       OLD / NEW STYLE
       ===================================================== */

    .otcal-approved-style-date small {
        margin-bottom: 4px;

        font-size: 10px;
        line-height: 1;
    }

    .otcal-approved-style-date strong {
        font-size: 16px;
        line-height: 1.05;
    }


    /* =====================================================
       PREVIOUS / NEXT DAY
       ===================================================== */

    .otcal-approved-neighbour small {
        font-size: 11px;
        line-height: 1.05;
    }

    .otcal-approved-neighbour strong {
        margin-top: 2px;

        font-size: 13px;
        line-height: 1.05;
    }

    .otcal-approved-neighbour > span {
        font-size: 34px;
    }


    /* =====================================================
       COMPACT VERTICAL RHYTHM BELOW DATE
       ===================================================== */

    .otcal-approved-liturgical {
        margin-top: 0;
        margin-bottom: 2px;
    }

    .otcal-approved-food {
        margin-bottom: 7px;
    }

    .otcal-approved-divider {
        margin-bottom: 7px;
    }

}



/* ===== CALENDAR FINAL FIRST-SCREEN TUNING ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* -----------------------------------------------------
       MAIN TITLE — optical position from approved mockup
       ----------------------------------------------------- */

    .otcal-approved-title h1 {
        font-size: 55px;

        transform:
            translate(20px, 8px);
    }


    /* -----------------------------------------------------
       ICONS

       Height stays the same.
       Width limit is increased so landscape holiday icons
       can have the same proportions as in the mockup.
       Portrait icons remain constrained by their ratio.
       ----------------------------------------------------- */

    .otcal-approved-icon {
        width: 176px;
        height: 184px;
    }


    /* -----------------------------------------------------
       QUOTE

       Prevent the cross from touching the final line
       on dates with a longer quote.
       ----------------------------------------------------- */

    .otcal-approved-quote-card {
        height: 134px;
    }

    .otcal-approved-quote-card p {
        max-width: 218px;

        font-size: 11px;
        line-height: 1.18;
    }

    .otcal-approved-quote-card .otcal-approved-cross {
        bottom: 5px;

        font-size: 18px;
    }


    /* -----------------------------------------------------
       AUDIO ICON — two clean gold sound waves
       ----------------------------------------------------- */

    .otcal-approved-audio::after {
        top: 2px;
        left: 20px;

        width: 24px;
        height: 27px;

        border: 0;
        border-radius: 0;

        background:
            radial-gradient(
                circle at 0 50%,
                transparent 7px,
                #d79006 7px 9px,
                transparent 9px 12px,
                #d79006 12px 14px,
                transparent 14px
            );
    }


    /* -----------------------------------------------------
       MAIN EVENT — slightly closer to mockup weight
       ----------------------------------------------------- */

    .otcal-approved-main-event h3 {
        font-size: 22px;
    }

}



/* ===== CALENDAR CENTER DECOR FINAL PASS ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       LOCK APPROVED GEOMETRY
       Заголовок, колонки, рамки и иконы больше не двигаем.
       ===================================================== */


    /* =====================================================
       SPACE BETWEEN ICON DOTS AND DATE ROW
       В утверждённом макете здесь воздуха немного больше.
       ===================================================== */

    .otcal-approved-dots {
        margin-bottom: 11px;
    }


    /* =====================================================
       PREVIOUS / NEXT DAY DECORATION

       Вместо маленькой горизонтальной полоски используем
       декоративные завитки из уже утверждённого corner.svg.
       ===================================================== */

    .otcal-approved-neighbour {
        position: relative;

        padding-top: 10px;
        padding-bottom: 10px;
    }

    .otcal-approved-neighbour::before,
    .otcal-approved-neighbour::after {
        position: absolute;

        width: 45px;
        height: 23px;

        pointer-events: none;

        content: "";

        background:
            url("/assets/calendar/approved-v8/corner.svg")
            left top / 45px 45px no-repeat;

        opacity: .92;
    }

    .otcal-approved-neighbour.is-prev::before {
        top: -2px;
        left: 6px;
    }

    .otcal-approved-neighbour.is-prev::after {
        bottom: -2px;
        left: 6px;

        transform: scaleY(-1);
    }

    .otcal-approved-neighbour.is-next::before {
        top: -2px;
        right: 6px;

        transform: scaleX(-1);
    }

    .otcal-approved-neighbour.is-next::after {
        right: 6px;
        bottom: -2px;

        transform: scale(-1, -1);
    }


    /* =====================================================
       DATE TEXT
       ===================================================== */

    .otcal-approved-neighbour small {
        font-size: 11.5px;
    }

    .otcal-approved-neighbour strong {
        font-size: 13.5px;
    }

    .otcal-approved-style-date small {
        font-size: 10px;
    }

    .otcal-approved-style-date strong {
        font-size: 16px;
    }


    /* =====================================================
       MAIN EVENT / EVENTS
       Чуть крупнее, как на утверждённом макете.
       ===================================================== */

    .otcal-approved-main-event p {
        font-size: 13.5px;
        line-height: 1.28;
    }

    .otcal-approved-events li,
    .otcal-approved-section p {
        margin-top: 3px;
        margin-bottom: 3px;

        font-size: 13px;
        line-height: 1.25;
    }


    /* =====================================================
       AUDIO ICON
       Золотой динамик + две волны без системного emoji.
       ===================================================== */

    .otcal-approved-audio::before {
        top: 6px;
        left: 4px;

        width: 19px;
        height: 19px;

        content: "◖";

        color: #d79006;
        background: none;

        clip-path: none;

        font-family: Georgia, serif;
        font-size: 25px;
        line-height: 19px;
    }

    .otcal-approved-audio::after {
        top: 5px;
        left: 19px;

        width: auto;
        height: auto;

        content: "))";

        border: 0;
        border-radius: 0;

        color: #d79006;
        background: none;

        font-family: Georgia, serif;
        font-size: 18px;
        line-height: 20px;
        letter-spacing: -4px;
    }

}



/* ===== FIX DAY ORNAMENTS + AUDIO ICON ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       PREVIOUS / NEXT DAY

       Убираем неудачные corner.svg, которые налезали на текст.
       Оставляем один аккуратный золотой орнамент сверху.
       ===================================================== */

    .otcal-approved-neighbour {
        padding-top: 13px;
        padding-bottom: 0;
    }

    .otcal-approved-neighbour::after {
        display: none !important;
        content: none !important;
    }

    .otcal-approved-neighbour::before {
        display: block !important;

        top: 0 !important;
        left: 50% !important;
        right: auto !important;

        width: 58px !important;
        height: 10px !important;

        content: "" !important;

        background:
            url("/assets/calendar/approved-v8/top-center.svg")
            center top / 58px 10px no-repeat !important;

        opacity: .82;

        transform: translateX(-50%) !important;
    }

    .otcal-approved-neighbour.is-prev::before,
    .otcal-approved-neighbour.is-next::before {
        left: 50% !important;
        right: auto !important;

        transform: translateX(-50%) !important;
    }


    /* =====================================================
       CLEAN GOLD AUDIO SPEAKER
       ===================================================== */

    .otcal-approved-audio {
        width: 48px;
        min-width: 48px;

        height: 34px;
        min-height: 34px;

        overflow: visible;

        margin-top: 5px;
    }

    /* speaker body */

    .otcal-approved-audio::before {
        position: absolute;

        top: 8px;
        left: 5px;

        width: 19px;
        height: 18px;

        content: "" !important;

        color: transparent !important;

        background: #d79006 !important;

        clip-path: polygon(
            0 34%,
            32% 34%,
            100% 0,
            100% 100%,
            32% 66%,
            0 66%
        ) !important;

        font-size: 0 !important;
    }

    /* two sound waves */

    .otcal-approved-audio::after {
        position: absolute;

        top: 5px;
        left: 19px;

        display: block !important;

        width: 26px;
        height: 25px;

        content: "" !important;

        border: 0 !important;

        background:
            radial-gradient(
                circle at -2px 50%,
                transparent 0 9px,
                #d79006 9px 11px,
                transparent 11px 15px,
                #d79006 15px 17px,
                transparent 17px
            ) !important;

        font-size: 0 !important;
    }

}



/* ===== FINAL DECOR + MOVE RIGHT DAY ARROW ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       SIDE DATE ORNAMENTS
       ===================================================== */

    .otcal-approved-date-row {
        position: relative;
    }

    .otcal-approved-date-row::before,
    .otcal-approved-date-row::after {
        position: absolute;
        z-index: 1;
        top: 50%;

        width: 43px;
        height: 55px;

        pointer-events: none;
        content: "";

        background:
            url("/assets/calendar/approved-v8/corner.svg")
            left top / 52px 52px no-repeat;

        opacity: .88;
    }

    .otcal-approved-date-row::before {
        left: -8px;
        transform: translateY(-50%);
    }

    .otcal-approved-date-row::after {
        right: -8px;
        transform:
            translateY(-50%)
            scaleX(-1);
    }

    /*
     * Старые маленькие украшения над соседними днями выключаем.
     */

    .otcal-approved-neighbour::before,
    .otcal-approved-neighbour::after {
        display: none !important;
        content: none !important;
    }

    .otcal-approved-neighbour {
        z-index: 2;
        position: relative;

        padding-top: 0;
        padding-bottom: 0;
    }


    /* =====================================================
       RIGHT DAY ARROW

       В макете стрелка находится ПОСЛЕ блока следующего дня,
       ближе к правому краю центральной рамки.
       ===================================================== */

    .otcal-approved-neighbour.is-next {
        position: relative;

        display: block;

        min-height: 42px;

        padding-right: 29px;

        text-align: center;
    }

    .otcal-approved-neighbour.is-next > span {
        position: absolute;

        top: 50%;
        right: 0;

        display: block;

        margin: 0;

        font-size: 34px;
        line-height: 1;

        transform: translateY(-50%);
    }

    .otcal-approved-neighbour.is-next small,
    .otcal-approved-neighbour.is-next strong {
        display: block;

        width: 100%;

        text-align: center;
    }


    /* =====================================================
       GOLD AUDIO SPEAKER
       ===================================================== */

    .otcal-approved-audio {
        position: relative;

        width: 46px !important;
        min-width: 46px !important;

        height: 32px !important;
        min-height: 32px !important;

        margin-top: 5px;

        overflow: visible;

        color: transparent !important;
        font-size: 0 !important;
    }

    .otcal-approved-audio::before {
        position: absolute;

        inset: 0 !important;

        display: block !important;

        width: 46px !important;
        height: 32px !important;

        content: "" !important;

        background:
            url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='32' viewBox='0 0 46 32'%3E%3Cpath fill='%23d79006' d='M5 12h7l9-7v22l-9-7H5z'/%3E%3Cpath d='M25 10c3 3 3 9 0 12M30 6c6 5 6 15 0 20' fill='none' stroke='%23d79006' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E")
            center / 46px 32px no-repeat !important;

        clip-path: none !important;

        color: transparent !important;
        font-size: 0 !important;
    }

    .otcal-approved-audio::after {
        display: none !important;
        content: none !important;
    }

    .otcal-approved-audio:disabled {
        opacity: 1 !important;
    }

}



/* ===== APPROVED ORNAMENTS + CARD ALIGNMENT ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       1. TRUE APPROVED FRAME CORNERS
       ===================================================== */

    .otcal-approved-corner {
        width: 58px !important;
        height: 58px !important;

        background:
            url("/assets/calendar/approved-v8/corner-approved.svg")
            left top / 58px 58px no-repeat !important;
    }

    .otcal-approved-corner.is-tl {
        top: -7px !important;
        left: -7px !important;
    }

    .otcal-approved-corner.is-tr {
        top: -7px !important;
        right: -7px !important;

        transform: scaleX(-1) !important;
    }

    .otcal-approved-corner.is-bl {
        bottom: -7px !important;
        left: -7px !important;

        transform: scaleY(-1) !important;
    }

    .otcal-approved-corner.is-br {
        right: -7px !important;
        bottom: -7px !important;

        transform: scale(-1, -1) !important;
    }


    /*
     * На правых небольших карточках орнамент должен быть
     * компактнее, чем на основных колонках.
     */

    .otcal-approved-card .otcal-approved-corner {
        width: 43px !important;
        height: 43px !important;

        background-size: 43px 43px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-tl {
        top: -6px !important;
        left: -6px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-tr {
        top: -6px !important;
        right: -6px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-bl {
        bottom: -6px !important;
        left: -6px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-br {
        right: -6px !important;
        bottom: -6px !important;
    }


    /* =====================================================
       2. CORRECT ORNAMENT ABOVE AND BELOW DAY SWITCHES
       ===================================================== */

    /*
     * Полностью отключаем неправильные большие углы,
     * добавленные на всю строку дат.
     */

    .otcal-approved-date-row::before,
    .otcal-approved-date-row::after {
        display: none !important;
        content: none !important;
    }


    .otcal-approved-neighbour {
        position: relative !important;

        padding-top: 15px !important;
        padding-bottom: 15px !important;
    }


    .otcal-approved-neighbour::before,
    .otcal-approved-neighbour::after {
        position: absolute !important;

        display: block !important;

        left: 50% !important;
        right: auto !important;

        width: 58px !important;
        height: 15px !important;

        pointer-events: none;

        content: "" !important;

        background:
            url("/assets/calendar/approved-v8/day-nav-approved.svg")
            center / 58px 15px no-repeat !important;

        opacity: 1 !important;
    }


    .otcal-approved-neighbour::before {
        top: 0 !important;

        transform: translateX(-50%) !important;
    }


    .otcal-approved-neighbour::after {
        bottom: 0 !important;

        transform:
            translateX(-50%)
            scaleY(-1) !important;
    }


    /*
     * Учитываем место стрелки:
     * у предыдущего дня стрелка слева,
     * у следующего — справа.
     */

    .otcal-approved-neighbour.is-prev::before,
    .otcal-approved-neighbour.is-prev::after {
        left: calc(50% + 7px) !important;
    }

    .otcal-approved-neighbour.is-next::before,
    .otcal-approved-neighbour.is-next::after {
        left: calc(50% - 7px) !important;
    }


    /*
     * Правая стрелка остаётся справа от следующего дня.
     */

    .otcal-approved-neighbour.is-next {
        padding-right: 28px !important;
    }

    .otcal-approved-neighbour.is-next > span {
        position: absolute !important;

        top: 50% !important;
        right: 0 !important;

        margin: 0 !important;

        transform: translateY(-50%) !important;
    }


    /* =====================================================
       3. ROUNDED DAY BUTTONS
       ===================================================== */

    .otcal-approved-day {
        border-radius: 5px !important;
    }

    .otcal-approved-day.is-selected {
        border-radius: 6px !important;
    }


    /* =====================================================
       4. RIGHT CARD TITLE DIVIDER WITH ORNAMENT
       ===================================================== */

    .otcal-approved-card-rule {
        display: block !important;

        width: 78% !important;
        height: 13px !important;

        margin:
            0 auto 6px !important;

        background:
            url("/assets/calendar/approved-v8/card-divider-approved.svg")
            center / 100% 13px no-repeat !important;
    }


    /* =====================================================
       RIGHT CARDS — STRICT CONTENT ALIGNMENT
       ===================================================== */

    .otcal-approved-card {
        display: flex !important;

        flex-direction: column !important;

        align-items: center !important;

        text-align: center !important;
    }


    .otcal-approved-card h2 {
        flex: 0 0 auto;

        width: 100%;

        margin-right: auto !important;
        margin-left: auto !important;

        text-align: center !important;
    }


    .otcal-approved-card p {
        flex: 0 1 auto;

        width: 100%;

        margin-right: auto !important;
        margin-left: auto !important;

        text-align: center !important;
    }


    /* =====================================================
       QUOTE CROSS
       ===================================================== */

    .otcal-approved-quote-card .otcal-approved-cross {
        position: static !important;

        display: grid !important;
        place-items: center !important;

        flex: 0 0 auto;

        width: 30px;
        height: 22px;

        margin:
            auto auto 0 !important;

        color: #d79006;

        font-size: 20px;
        line-height: 1;

        text-align: center;

        transform: none !important;
    }


    /* =====================================================
       AUDIO ICON
       ===================================================== */

    .otcal-approved-audio {
        display: block !important;

        flex: 0 0 auto;

        margin:
            auto auto 0 !important;
    }


    /* =====================================================
       RADIO BARS
       ===================================================== */

    .otcal-approved-radio-bars {
        flex: 0 0 auto;

        margin:
            auto auto 0 !important;
    }


    /* =====================================================
       HISTORY BOOK
       ===================================================== */

    .otcal-approved-book {
        position: relative !important;

        display: block !important;

        flex: 0 0 auto;

        margin:
            auto auto 0 !important;
    }

}



/* ===== DAY SWITCH 2 LINES + NEW ORNAMENTS ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       NEW CORNER ORNAMENTS
       ===================================================== */

    .otcal-approved-corner {
        width: 56px !important;
        height: 56px !important;

        background:
            url("/assets/calendar/approved-v8/corner-approved.svg")
            left top / 56px 56px no-repeat !important;
    }

    .otcal-approved-corner.is-tl {
        top: -6px !important;
        left: -6px !important;
    }

    .otcal-approved-corner.is-tr {
        top: -6px !important;
        right: -6px !important;
        transform: scaleX(-1) !important;
    }

    .otcal-approved-corner.is-bl {
        bottom: -6px !important;
        left: -6px !important;
        transform: scaleY(-1) !important;
    }

    .otcal-approved-corner.is-br {
        right: -6px !important;
        bottom: -6px !important;
        transform: scale(-1,-1) !important;
    }

    .otcal-approved-card .otcal-approved-corner {
        width: 40px !important;
        height: 40px !important;
        background-size: 40px 40px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-tl {
        top: -5px !important;
        left: -5px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-tr {
        top: -5px !important;
        right: -5px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-bl {
        bottom: -5px !important;
        left: -5px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-br {
        right: -5px !important;
        bottom: -5px !important;
    }


    /* =====================================================
       NEW DAY SWITCH ORNAMENTS
       ===================================================== */

    .otcal-approved-neighbour {
        position: relative !important;
        padding-top: 16px !important;
        padding-bottom: 16px !important;
        min-width: 96px !important;
    }

    .otcal-approved-neighbour::before,
    .otcal-approved-neighbour::after {
        position: absolute !important;
        display: block !important;

        left: 50% !important;
        right: auto !important;

        width: 70px !important;
        height: 17px !important;

        pointer-events: none;
        content: "" !important;

        background:
            url("/assets/calendar/approved-v8/day-nav-approved.svg")
            center / 70px 17px no-repeat !important;

        opacity: 1 !important;
    }

    .otcal-approved-neighbour::before {
        top: 0 !important;
        transform: translateX(-50%) !important;
    }

    .otcal-approved-neighbour::after {
        bottom: 0 !important;
        transform: translateX(-50%) scaleY(-1) !important;
    }

    .otcal-approved-neighbour.is-prev::before,
    .otcal-approved-neighbour.is-prev::after {
        left: calc(50% + 8px) !important;
    }

    .otcal-approved-neighbour.is-next::before,
    .otcal-approved-neighbour.is-next::after {
        left: calc(50% - 8px) !important;
    }


    /* =====================================================
       DAY SWITCH TEXT MUST BE 2 LINES, NOT 3
       line 1: weekday
       line 2: day + month
       ===================================================== */

    .otcal-approved-neighbour small {
        display: block !important;

        margin: 0 0 2px !important;

        white-space: nowrap !important;

        font-size: 11px !important;
        line-height: 1.05 !important;

        text-align: center !important;
    }

    .otcal-approved-neighbour strong {
        display: block !important;

        margin: 0 !important;

        white-space: nowrap !important;

        font-size: 13px !important;
        line-height: 1.05 !important;

        text-align: center !important;
    }

    .otcal-approved-neighbour.is-prev {
        position: relative !important;
        min-height: 42px !important;
        padding-left: 28px !important;
        text-align: center !important;
    }

    .otcal-approved-neighbour.is-prev > span {
        position: absolute !important;
        top: 50% !important;
        left: 0 !important;

        margin: 0 !important;

        font-size: 34px !important;
        line-height: 1 !important;

        transform: translateY(-50%) !important;
    }

    .otcal-approved-neighbour.is-next {
        position: relative !important;
        min-height: 42px !important;
        padding-right: 28px !important;
        text-align: center !important;
    }

    .otcal-approved-neighbour.is-next > span {
        position: absolute !important;
        top: 50% !important;
        right: 0 !important;

        margin: 0 !important;

        font-size: 34px !important;
        line-height: 1 !important;

        transform: translateY(-50%) !important;
    }

}



/* ===== REBUILD CORNERS + DAY SWITCH DECOR V2 ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       NEW CORNERS — THIN VINE STYLE
       ===================================================== */

    .otcal-approved-corner {
        width: 62px !important;
        height: 62px !important;

        background:
            url("/assets/calendar/approved-v8/corner-approved-v2.svg")
            left top / 62px 62px no-repeat !important;
    }

    .otcal-approved-corner.is-tl {
        top: -7px !important;
        left: -7px !important;
    }

    .otcal-approved-corner.is-tr {
        top: -7px !important;
        right: -7px !important;
        transform: scaleX(-1) !important;
    }

    .otcal-approved-corner.is-bl {
        bottom: -7px !important;
        left: -7px !important;
        transform: scaleY(-1) !important;
    }

    .otcal-approved-corner.is-br {
        right: -7px !important;
        bottom: -7px !important;
        transform: scale(-1,-1) !important;
    }

    /* right cards use the same ornament, but smaller */

    .otcal-approved-card .otcal-approved-corner {
        width: 44px !important;
        height: 44px !important;

        background-size: 44px 44px !important;
    }


    /* =====================================================
       DATE ROW — GUARANTEED SPACE FOR 2-LINE NEIGHBOURS
       ===================================================== */

    .otcal-approved-date-row {
        grid-template-columns:
            minmax(106px, 1fr)
            88px
            220px
            88px
            minmax(106px, 1fr) !important;

        gap: 4px !important;

        align-items: center !important;
    }


    /* =====================================================
       NEIGHBOUR DAY — EXACTLY TWO LINES

       1: Понедельник
       2: 14 сентября
       ===================================================== */

    .otcal-approved-neighbour {
        position: relative !important;

        box-sizing: border-box !important;

        width: 100% !important;
        min-width: 106px !important;

        padding-top: 17px !important;
        padding-bottom: 17px !important;

        text-align: center !important;
    }

    .otcal-approved-neighbour small {
        display: block !important;

        width: 100% !important;

        margin: 0 0 3px !important;

        white-space: nowrap !important;
        word-break: keep-all !important;

        font-size: 11px !important;
        line-height: 1 !important;

        text-align: center !important;
    }

    .otcal-approved-neighbour strong {
        display: block !important;

        width: 100% !important;

        margin: 0 !important;

        white-space: nowrap !important;
        word-break: keep-all !important;

        font-size: 13px !important;
        line-height: 1 !important;

        text-align: center !important;
    }


    /* =====================================================
       NEW FLOURISH ABOVE / BELOW DATE SWITCH
       NO HORIZONTAL LINES
       ===================================================== */

    .otcal-approved-neighbour::before,
    .otcal-approved-neighbour::after {
        position: absolute !important;

        display: block !important;

        left: 50% !important;
        right: auto !important;

        width: 52px !important;
        height: 18px !important;

        pointer-events: none;

        content: "" !important;

        background:
            url("/assets/calendar/approved-v8/day-nav-approved-v2.svg")
            center / 52px 18px no-repeat !important;

        opacity: 1 !important;
    }

    .otcal-approved-neighbour::before {
        top: 0 !important;

        transform:
            translateX(-50%) !important;
    }

    .otcal-approved-neighbour::after {
        bottom: 0 !important;

        transform:
            translateX(-50%)
            scaleY(-1) !important;
    }


    /* =====================================================
       LEFT ARROW
       ===================================================== */

    .otcal-approved-neighbour.is-prev {
        padding-left: 24px !important;
    }

    .otcal-approved-neighbour.is-prev > span {
        position: absolute !important;

        top: 50% !important;
        left: 0 !important;

        margin: 0 !important;

        font-size: 34px !important;
        line-height: 1 !important;

        transform: translateY(-50%) !important;
    }

    .otcal-approved-neighbour.is-prev::before,
    .otcal-approved-neighbour.is-prev::after {
        left: calc(50% + 7px) !important;
    }


    /* =====================================================
       RIGHT ARROW
       ===================================================== */

    .otcal-approved-neighbour.is-next {
        padding-right: 24px !important;
    }

    .otcal-approved-neighbour.is-next > span {
        position: absolute !important;

        top: 50% !important;
        right: 0 !important;
        left: auto !important;

        margin: 0 !important;

        font-size: 34px !important;
        line-height: 1 !important;

        transform: translateY(-50%) !important;
    }

    .otcal-approved-neighbour.is-next::before,
    .otcal-approved-neighbour.is-next::after {
        left: calc(50% - 7px) !important;
    }

}



/* ===== EXACT CORNERS + EXACT DAY SWITCH V3 ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       CORNERS
       ===================================================== */

    .otcal-approved-corner {
        width: 58px !important;
        height: 58px !important;

        background:
            url("/assets/calendar/approved-v8/corner-approved-v3.svg")
            left top / 58px 58px no-repeat !important;
    }

    .otcal-approved-corner.is-tl {
        top: -7px !important;
        left: -7px !important;
    }

    .otcal-approved-corner.is-tr {
        top: -7px !important;
        right: -7px !important;
        transform: scaleX(-1) !important;
    }

    .otcal-approved-corner.is-bl {
        bottom: -7px !important;
        left: -7px !important;
        transform: scaleY(-1) !important;
    }

    .otcal-approved-corner.is-br {
        right: -7px !important;
        bottom: -7px !important;
        transform: scale(-1,-1) !important;
    }

    .otcal-approved-card .otcal-approved-corner {
        width: 40px !important;
        height: 40px !important;
        background-size: 40px 40px !important;
    }


    /* =====================================================
       DATE ROW

       Даём каждому блоку собственное место.
       Никаких наложений друг на друга.
       ===================================================== */

    .otcal-approved-date-row {
        grid-template-columns:
            94px
            92px
            minmax(210px, 1fr)
            92px
            94px !important;

        gap: 8px !important;

        align-items: center !important;
    }


    /* =====================================================
       NEIGHBOUR DAYS — STRICTLY TWO TEXT LINES
       ===================================================== */

    .otcal-approved-neighbour {
        position: relative !important;

        display: block !important;

        width: 94px !important;
        min-width: 94px !important;

        padding-top: 16px !important;
        padding-bottom: 16px !important;

        box-sizing: border-box !important;

        text-align: center !important;
    }

    .otcal-approved-neighbour small {
        display: block !important;

        width: 100% !important;

        margin: 0 0 3px !important;

        padding: 0 !important;

        white-space: nowrap !important;
        word-break: normal !important;

        font-size: 10.5px !important;
        line-height: 1 !important;

        text-align: center !important;
    }

    .otcal-approved-neighbour strong {
        display: block !important;

        width: 100% !important;

        margin: 0 !important;

        padding: 0 !important;

        white-space: nowrap !important;
        word-break: normal !important;

        font-size: 12px !important;
        line-height: 1 !important;

        text-align: center !important;
    }


    /* =====================================================
       SMALL FLOURISH ABOVE / BELOW
       ===================================================== */

    .otcal-approved-neighbour::before,
    .otcal-approved-neighbour::after {
        position: absolute !important;

        display: block !important;

        left: 50% !important;
        right: auto !important;

        width: 46px !important;
        height: 16px !important;

        pointer-events: none;

        content: "" !important;

        background:
            url("/assets/calendar/approved-v8/day-nav-approved-v3.svg")
            center / 46px 16px no-repeat !important;

        opacity: 1 !important;
    }

    .otcal-approved-neighbour::before {
        top: 0 !important;
        transform: translateX(-50%) !important;
    }

    .otcal-approved-neighbour::after {
        bottom: 0 !important;
        transform: translateX(-50%) scaleY(-1) !important;
    }


    /* =====================================================
       LEFT DAY
       Arrow is separate from text.
       ===================================================== */

    .otcal-approved-neighbour.is-prev {
        padding-left: 17px !important;
    }

    .otcal-approved-neighbour.is-prev > span {
        position: absolute !important;

        top: 50% !important;
        left: -4px !important;

        margin: 0 !important;

        font-size: 32px !important;
        line-height: 1 !important;

        transform: translateY(-50%) !important;
    }

    .otcal-approved-neighbour.is-prev::before,
    .otcal-approved-neighbour.is-prev::after {
        left: calc(50% + 7px) !important;
    }


    /* =====================================================
       RIGHT DAY
       Arrow is separate from text.
       ===================================================== */

    .otcal-approved-neighbour.is-next {
        padding-right: 17px !important;
    }

    .otcal-approved-neighbour.is-next > span {
        position: absolute !important;

        top: 50% !important;
        right: -4px !important;
        left: auto !important;

        margin: 0 !important;

        font-size: 32px !important;
        line-height: 1 !important;

        transform: translateY(-50%) !important;
    }

    .otcal-approved-neighbour.is-next::before,
    .otcal-approved-neighbour.is-next::after {
        left: calc(50% - 7px) !important;
    }


    /* =====================================================
       OLD / NEW STYLE
       Keep them clearly separated from neighbour days.
       ===================================================== */

    .otcal-approved-style-date {
        min-width: 0 !important;

        padding: 0 2px !important;

        text-align: center !important;
    }

    .otcal-approved-style-date small {
        font-size: 9.5px !important;
        white-space: nowrap !important;
    }

    .otcal-approved-style-date strong {
        font-size: 14px !important;
        white-space: nowrap !important;
    }

}



/* ===== FRAME CORNERS + TOP CENTER ORNAMENT V4 ===== */

@media (min-width: 1081px) and (max-width: 1500px) {

    /* =====================================================
       NEW CORNER ORNAMENT ON ALL FRAMES
       ===================================================== */

    .otcal-approved-corner {
        width: 64px !important;
        height: 64px !important;

        background:
            url("/assets/calendar/approved-v8/corner-approved-v4.svg")
            left top / 64px 64px no-repeat !important;
    }

    .otcal-approved-corner.is-tl {
        top: -8px !important;
        left: -8px !important;
    }

    .otcal-approved-corner.is-tr {
        top: -8px !important;
        right: -8px !important;

        transform: scaleX(-1) !important;
    }

    .otcal-approved-corner.is-bl {
        bottom: -8px !important;
        left: -8px !important;

        transform: scaleY(-1) !important;
    }

    .otcal-approved-corner.is-br {
        right: -8px !important;
        bottom: -8px !important;

        transform: scale(-1,-1) !important;
    }


    /* =====================================================
       SMALLER VERSION FOR RIGHT CARDS
       Same ornament, same style.
       ===================================================== */

    .otcal-approved-card .otcal-approved-corner {
        width: 45px !important;
        height: 45px !important;

        background:
            url("/assets/calendar/approved-v8/corner-approved-v4.svg")
            left top / 45px 45px no-repeat !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-tl {
        top: -6px !important;
        left: -6px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-tr {
        top: -6px !important;
        right: -6px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-bl {
        bottom: -6px !important;
        left: -6px !important;
    }

    .otcal-approved-card .otcal-approved-corner.is-br {
        right: -6px !important;
        bottom: -6px !important;
    }


    /* =====================================================
       NEW CENTRAL TOP ORNAMENT
       ===================================================== */

    .otcal-approved-top-ornament {
        position: absolute !important;

        z-index: 7 !important;

        top: -20px !important;
        left: 50% !important;

        width: 260px !important;
        height: 52px !important;

        pointer-events: none;

        background:
            url("/assets/calendar/approved-v8/top-center-approved-v4.svg")
            center top / 260px 52px no-repeat !important;

        transform: translateX(-50%) !important;
    }

}



/* ===== UNIFIED CALENDAR HEADINGS ===== */

/*
 * Канонический стиль всех заголовков:
 * такой же шрифт, начертание и цвет,
 * как у заголовка "Церковный календарь".
 *
 * Размеры сохраняются по иерархии.
 */

.otcal-approved-title h1,
.otcal-approved-month-head h2,
.otcal-approved-weekday,
.otcal-approved-main-event h3,
.otcal-approved-section h3,
.otcal-approved-card h2 {
    font-family:
        "Monomakh",
        "Ponomar",
        Georgia,
        serif !important;

    font-weight: 400 !important;
    font-style: normal !important;

    color: #704313 !important;

    letter-spacing: .005em;
}


/* День недели в центральной колонке
   теперь ТОЧНО тем же стилем */

.otcal-approved-weekday {
    font-family:
        "Monomakh",
        "Ponomar",
        Georgia,
        serif !important;

    font-weight: 400 !important;
    font-style: normal !important;

    color: #704313 !important;

    letter-spacing: .005em !important;
}


/* Заголовки правых карточек */

.otcal-approved-card h2 {
    font-family:
        "Monomakh",
        "Ponomar",
        Georgia,
        serif !important;

    font-weight: 400 !important;
}


/* Заголовки событий и разделов */

.otcal-approved-main-event h3,
.otcal-approved-section h3 {
    font-family:
        "Monomakh",
        "Ponomar",
        Georgia,
        serif !important;

    font-weight: 400 !important;
}



/* ===== VERIFIED USER ORNAMENTS — FINAL OVERRIDE ===== */


/* =========================================================
   USER CORNER ORNAMENT
   One source image, mirrored into all four corners.
   ========================================================= */

.otcal-approved-corner {
    width: 62px !important;
    height: 63px !important;

    background:
        transparent
        url("/assets/calendar/approved-v8/user-ornaments/corner-user.png")
        center / contain no-repeat !important;

    box-shadow: none !important;
}


/* TOP LEFT */

.otcal-approved-corner.is-tl {
    top: -8px !important;
    left: -8px !important;
    right: auto !important;
    bottom: auto !important;

    transform: none !important;
}


/* TOP RIGHT */

.otcal-approved-corner.is-tr {
    top: -8px !important;
    right: -8px !important;
    bottom: auto !important;
    left: auto !important;

    transform: scaleX(-1) !important;
}


/* BOTTOM LEFT */

.otcal-approved-corner.is-bl {
    bottom: -8px !important;
    left: -8px !important;
    top: auto !important;
    right: auto !important;

    transform: scaleY(-1) !important;
}


/* BOTTOM RIGHT */

.otcal-approved-corner.is-br {
    right: -8px !important;
    bottom: -8px !important;
    top: auto !important;
    left: auto !important;

    transform: scale(-1, -1) !important;
}


/* =========================================================
   RIGHT COLUMN CARDS
   Same user ornament, slightly smaller.
   ========================================================= */

.otcal-approved-card .otcal-approved-corner {
    width: 44px !important;
    height: 45px !important;

    background:
        transparent
        url("/assets/calendar/approved-v8/user-ornaments/corner-user.png")
        center / contain no-repeat !important;
}

.otcal-approved-card .otcal-approved-corner.is-tl {
    top: -6px !important;
    left: -6px !important;
}

.otcal-approved-card .otcal-approved-corner.is-tr {
    top: -6px !important;
    right: -6px !important;
}

.otcal-approved-card .otcal-approved-corner.is-bl {
    bottom: -6px !important;
    left: -6px !important;
}

.otcal-approved-card .otcal-approved-corner.is-br {
    right: -6px !important;
    bottom: -6px !important;
}


/* =========================================================
   USER TOP-CENTER ORNAMENT
   Exact supplied ornament above the central frame.
   ========================================================= */

.otcal-approved-top-ornament {
    position: absolute !important;

    z-index: 7 !important;

    top: -13px !important;
    left: 50% !important;

    width: 350px !important;
    height: 39px !important;

    pointer-events: none !important;

    background:
        transparent
        url("/assets/calendar/approved-v8/user-ornaments/top-center-user.png")
        center / contain no-repeat !important;

    border: 0 !important;
    box-shadow: none !important;

    transform: translateX(-50%) !important;
}


/* =========================================================
   DO NOT CHANGE DAY SWITCH DECOR
   V3 remains the approved date-switch ornament.
   ========================================================= */



/* ===== FINAL TOP CENTER ORNAMENT — AUTHORITATIVE OVERRIDE ===== */

.otcal-approved-top-ornament {
    position: absolute !important;

    z-index: 7 !important;

    top: -18px !important;
    left: 50% !important;

    width: 260px !important;
    height: 29px !important;

    pointer-events: none !important;

    background:
        transparent
        url("/assets/calendar/approved-v8/user-ornaments/top-center-user.png")
        center center / 260px 29px no-repeat !important;

    border: 0 !important;
    box-shadow: none !important;

    transform: translateX(-50%) !important;
}



/* ===== FINAL TOP CENTER ORNAMENT — SLIGHT LIFT ===== */
.otcal-approved-top-ornament {
    top: -22px !important;
}



/* ===== TOP CENTER ORNAMENT — 2PX LOWER ===== */
.otcal-approved-top-ornament {
    top: -20px !important;
}



/* ===== CALENDAR TITLE — 4PX HIGHER ===== */

@media (min-width: 1081px) {

    .otcal-approved-title h1 {
        position: relative !important;
        top: -4px !important;
    }

}



/* ===== CALENDAR TITLE — TRUE CENTER ===== */

/*
 * Убираем все накопленные смещения заголовка.
 * Сам блок страницы и центральную рамку НЕ двигаем.
 */

.otcal-approved-title {
    width: 100% !important;

    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;
}

.otcal-approved-title h1 {
    position: relative !important;

    top: 0 !important;
    left: 0 !important;
    right: auto !important;

    width: max-content !important;
    max-width: 100% !important;

    margin-left: auto !important;
    margin-right: auto !important;

    text-align: center !important;

    transform: none !important;
}



/* ===== CALENDAR TITLE — HORIZONTAL ALIGNMENT ===== */

@media (min-width: 1081px) {

    .otcal-approved-title h1 {
        transform: translateX(18px) !important;
    }

}



/* ===== EVENTS BODY TEXT — READABLE CYRILLIC + ACCENTS ===== */

/*
 * Только обычный текст раздела "События этого дня".
 * Заголовок и утверждённый дизайн не изменяются.
 */

.otcal-approved-events li {
    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-weight: 400 !important;
    font-style: normal !important;

    letter-spacing: 0 !important;
    word-spacing: 0 !important;

    word-break: normal !important;
    overflow-wrap: normal !important;
    hyphens: none !important;

    font-kerning: normal !important;
}



/* ===== TROPARIA / KONTAKIA — SACRED TEXT ACCENT ===== */

/*
 * Только непосредственно текст песнопения.
 * Название и глас остаются обычного цвета.
 */
.otcal-approved-chant-text {
    color: #7B3526 !important;
    font-style: italic !important;
}



/* ===== TROPARIA / KONTAKIA TEXT — BLACK ===== */

.otcal-approved-chant-text {
    color: #000000 !important;
    font-style: italic !important;
}



/* ===== TROPARIA / KONTAKIA TEXT — BLUE FINAL ===== */

.otcal-approved-chant-text {
    color: #1F5FAF !important;
    font-style: italic !important;
}



/* ===== SCRIPTURE AUDIO READINGS ===== */

.otcal-approved-scripture-audio {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px 16px;
    margin: 2px 0 4px;
}

.otcal-approved-scripture-audio-button {
    display: inline-flex;
    align-items: center;
    gap: 5px;

    margin: 0;
    padding: 0;

    border: 0;
    background: transparent;

    font: inherit;
    line-height: 1.3;

    color: #1f5faf;
    cursor: pointer;
}

.otcal-approved-scripture-audio-label {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

.otcal-approved-scripture-audio-icon {
    display: inline-block;
    font-style: normal;
    text-decoration: none;
}

.otcal-approved-scripture-audio-button:hover .otcal-approved-scripture-audio-label {
    text-decoration-thickness: 2px;
}

.otcal-approved-scripture-audio-button.is-playing {
    font-weight: 600;
}

.otcal-approved-scripture-audio-button:disabled {
    opacity: .45;
    cursor: default;
}



/* ===== DAILY AUDIO CALENDAR V2 ===== */

.otcal-approved-audio-all {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;

    margin: 1px auto 6px;
    padding: 0;

    border: 0;
    background: transparent;

    color: #704313;
    font: inherit;
    font-size: 12.5px;
    line-height: 1.2;

    cursor: pointer;
}

.otcal-approved-audio-all.is-playing {
    color: #1f5faf;
}

.otcal-approved-audio-calendar-list {
    display: grid;
    gap: 4px;
    width: 100%;
    text-align: left;
}

.otcal-approved-audio-calendar-item {
    display: flex;
    align-items: flex-start;
    gap: 4px;

    width: 100%;
    margin: 0;
    padding: 0;

    border: 0;
    background: transparent;

    color: #2d241d;

    font: inherit;
    font-size: 11.5px;
    line-height: 1.18;

    text-align: left;
    cursor: pointer;
}

.otcal-approved-audio-calendar-play {
    flex: 0 0 auto;
    color: #704313;
}

.otcal-approved-audio-calendar-item:hover,
.otcal-approved-audio-calendar-item.is-playing {
    color: #1f5faf;
}

.otcal-approved-audio-calendar-item.is-playing
.otcal-approved-audio-calendar-play {
    color: #1f5faf;
}



/* ===== RIGHT AUDIO CALENDAR — AUTO HEIGHT FINAL ===== */

/*
 * Аудиокалендарь теперь содержит переменное число записей.
 * Поэтому фиксированная высота 119px больше недопустима.
 *
 * Остальные карточки сохраняют свои утверждённые размеры,
 * но располагаются ниже по нормальному потоку.
 */

.otcal-approved-right {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 11px !important;
}

.otcal-approved-right > .otcal-approved-card {
    flex: 0 0 auto !important;
}

.otcal-approved-audio-card {
    height: auto !important;
    min-height: 119px !important;

    padding-top: 15px !important;
    padding-bottom: 14px !important;

    overflow: visible !important;
}

.otcal-approved-audio-calendar-list {
    flex: 0 0 auto !important;
    width: 100% !important;
}

.otcal-approved-radio-card {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
}

.otcal-approved-history-card {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
}



/* ===== QUOTE OF THE DAY — AUTO HEIGHT FINAL ===== */

/*
 * Цитаты имеют разную длину.
 * Базовую высоту 132px сохраняем как минимальную,
 * но длинной цитате разрешаем увеличить карточку.
 */

.otcal-approved-quote-card {
    height: auto !important;
    min-height: 132px !important;

    padding-top: 16px !important;
    padding-bottom: 14px !important;

    overflow: visible !important;
}

.otcal-approved-quote-card p {
    flex: 0 0 auto !important;

    width: 100% !important;
    max-width: 100% !important;

    margin-left: auto !important;
    margin-right: auto !important;
    margin-bottom: 6px !important;

    overflow: visible !important;

    word-break: normal !important;
    overflow-wrap: break-word !important;
}

.otcal-approved-quote-card .otcal-approved-cross {
    flex: 0 0 auto !important;
    position: static !important;
}



/* ===== THIS DAY IN HISTORY — AZBYKA STYLE ===== */

/*
 * Внешняя золотая карточка календаря сохраняется.
 * Внутри — светлая плашка, как у блока Азбуки.
 */

.otcal-approved-history-card {
    height: auto !important;
    min-height: 122px !important;

    padding-top: 14px !important;
    padding-bottom: 13px !important;

    overflow: visible !important;
}

.otcal-approved-history-box {
    width: 100% !important;

    margin: 3px 0 0 !important;
    padding: 10px 11px !important;

    border: 1px solid rgba(201, 149, 61, .18) !important;
    border-radius: 7px !important;

    background: #fff8e8 !important;

    box-sizing: border-box !important;
}

.otcal-approved-history-box p {
    margin: 0 !important;

    color: #231d18 !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size: 12.5px !important;
    font-style: normal !important;
    font-weight: 400 !important;

    line-height: 1.24 !important;
    text-align: left !important;

    word-break: normal !important;
    overflow-wrap: break-word !important;
}

.otcal-approved-history-box strong {
    font-weight: 700 !important;
    color: #111111 !important;
}

.otcal-approved-history-fallback {
    text-align: center !important;
}

.otcal-approved-history-card .otcal-approved-book {
    display: none !important;
}



/* ===== THIS DAY IN HISTORY — SELECTED DATE ===== */

.otcal-approved-history-date {
    margin: 0 0 7px !important;
    padding: 0 0 5px !important;

    border-bottom: 1px solid rgba(201,149,61,.32) !important;

    color: #704313 !important;

    font-family:
        Arial,
        Helvetica,
        sans-serif !important;

    font-size: 13px !important;
    font-weight: 700 !important;
    font-style: normal !important;

    line-height: 1.2 !important;
    text-align: center !important;
}



/* ===== DAILY AUDIO CALENDAR SEEK PLAYER V1 ===== */

.otcal-approved-audio-calendar-entry {
    width: 100%;
    min-width: 0;
}

.otcal-approved-audio-calendar-entry.is-expanded
> .otcal-approved-audio-calendar-item {
    color: #1f5faf;
}

.otcal-approved-audio-calendar-controls {
    display: grid;
    grid-template-columns:
        25px
        33px
        minmax(0, 1fr)
        38px;

    align-items: center;
    gap: 4px;

    width: calc(100% - 18px);
    margin: 4px 0 6px 18px;

    box-sizing: border-box;
}

.otcal-approved-audio-calendar-controls[hidden] {
    display: none !important;
}

.otcal-approved-audio-calendar-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 25px;
    height: 25px;
    padding: 0;

    border: 1px solid rgba(112, 67, 19, .32);
    border-radius: 50%;

    background: #fffaf0;
    color: #704313;

    font: inherit;
    font-size: 11px;
    line-height: 1;

    cursor: pointer;
}

.otcal-approved-audio-calendar-toggle:hover,
.otcal-approved-audio-calendar-entry.is-expanded
.otcal-approved-audio-calendar-toggle {
    color: #1f5faf;
    border-color: rgba(31, 95, 175, .45);
}

.otcal-approved-audio-calendar-time {
    min-width: 0;

    color: #704313;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 10.5px;
    font-weight: 600;
    line-height: 1;

    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    text-align: center;
}

.otcal-approved-audio-calendar-progress {
    display: block;

    min-width: 0;
    width: 100%;
    height: 18px;

    margin: 0;
    padding: 0;

    accent-color: #704313;
    cursor: pointer;
}

.otcal-approved-audio-calendar-progress:disabled {
    opacity: .45;
    cursor: default;
}

@media (max-width: 760px) {

    .otcal-approved-audio-calendar-controls {
        grid-template-columns:
            28px
            35px
            minmax(0, 1fr)
            40px;

        width: calc(100% - 16px);
        margin-left: 16px;
    }

    .otcal-approved-audio-calendar-toggle {
        width: 28px;
        height: 28px;
    }

    .otcal-approved-audio-calendar-time {
        font-size: 11px;
    }
}


/* ===== SCRIPTURE AUDIO SEEK PLAYER V1 ===== */

.otcal-approved-scripture-audio-entry {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;

    max-width: 100%;
    min-width: 0;
}

.otcal-approved-scripture-audio-entry.is-expanded {
    flex: 1 1 100%;
    width: 100%;
}

.otcal-approved-scripture-audio-entry.is-expanded
> .otcal-approved-scripture-audio-button {
    font-weight: 600;
}

.otcal-approved-scripture-audio-controls {
    display: grid;

    grid-template-columns:
        30px
        38px
        minmax(120px, 1fr)
        42px;

    align-items: center;
    gap: 6px;

    width: 100%;
    max-width: 460px;

    margin: 5px 0 5px 0;

    box-sizing: border-box;
}

.otcal-approved-scripture-audio-controls[hidden] {
    display: none !important;
}

.otcal-approved-scripture-audio-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 30px;
    height: 30px;

    margin: 0;
    padding: 0;

    border:
        1px solid
        rgba(31, 95, 175, .34);

    border-radius: 50%;

    background: #ffffff;

    color: #1f5faf;

    font: inherit;
    font-size: 12px;
    line-height: 1;

    cursor: pointer;
}

.otcal-approved-scripture-audio-toggle:hover,
.otcal-approved-scripture-audio-entry.is-expanded
.otcal-approved-scripture-audio-toggle {
    border-color:
        rgba(31, 95, 175, .62);
}

.otcal-approved-scripture-audio-time {
    min-width: 0;

    color: #704313;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 11px;
    font-weight: 600;
    line-height: 1;

    font-variant-numeric:
        tabular-nums;

    white-space: nowrap;
    text-align: center;
}

.otcal-approved-scripture-audio-progress {
    display: block;

    min-width: 0;
    width: 100%;
    height: 20px;

    margin: 0;
    padding: 0;

    accent-color: #1f5faf;

    cursor: pointer;
}

.otcal-approved-scripture-audio-progress:disabled {
    opacity: .45;
    cursor: default;
}

@media (max-width: 760px) {

    .otcal-approved-scripture-audio-controls {
        grid-template-columns:
            32px
            40px
            minmax(0, 1fr)
            44px;

        max-width: 100%;
        gap: 5px;
    }

    .otcal-approved-scripture-audio-toggle {
        width: 32px;
        height: 32px;
    }

    .otcal-approved-scripture-audio-time {
        font-size: 11px;
    }
}


/* ===== ORTHODOX RADIO LINK V1 ===== */

.otcal-approved-radio-open {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    margin: 2px auto 0;

    border:
        1px solid
        rgba(112, 67, 19, .26);

    border-radius: 50%;

    background: #fff8e8;

    color: #704313;

    text-decoration: none;

    transition:
        transform .15s ease,
        color .15s ease,
        border-color .15s ease;
}

.otcal-approved-radio-open svg {
    width: 24px;
    height: 24px;
}

.otcal-approved-radio-open:hover {
    color: #1f5faf;

    border-color:
        rgba(31, 95, 175, .45);

    transform: scale(1.05);
}

.otcal-approved-radio-open:focus-visible {
    outline:
        2px solid #1f5faf;

    outline-offset: 3px;
}
