/*=========================================================
    MaryJo Buzzanco Fine Art
    Calendar Page
=========================================================*/

/*=========================================================
    PAGE HERO
=========================================================*/

.page-hero {

    background: linear-gradient(
        135deg,
        #f9f7f3,
        #ffffff
    );

    padding: 5rem 0;

    text-align: center;

}

.page-hero .container {

    max-width: 900px;

    margin: 0 auto;

}

.page-hero .eyebrow {

    display: inline-block;

    margin-bottom: .75rem;

    font-size: .9rem;

    font-weight: 700;

    letter-spacing: .12em;

    text-transform: uppercase;

    color: #8b6f47;

}

.page-hero h1 {

    margin-bottom: 1.5rem;

    font-size: clamp(2.3rem,5vw,4rem);

    line-height: 1.15;

}

.page-hero p {

    max-width: 720px;

    margin: 0 auto 2rem;

    font-size: 1.15rem;

    line-height: 1.8;

    color: #555;

}

.page-hero .button {

    display: inline-block;

    padding: 14px 34px;

    border-radius: 999px;

    background: #333;

    color: #fff;

    text-decoration: none;

    transition: .3s;

}

.page-hero .button:hover {

    background: #8b6f47;

}

/*=========================================================
    CALENDAR SECTION
=========================================================*/

.calendar-section {

    padding: 5rem 0;

}

.calendar-section .container {

    display: grid;

    grid-template-columns: 2fr 1fr;

    gap: 3rem;

    align-items: start;

}

/*=========================================================
    CALENDAR WRAPPER
=========================================================*/

.calendar-wrapper {

    background: #ffffff;

    border-radius: 20px;

    box-shadow:
        0 12px 35px rgba(0,0,0,.08);

    overflow: hidden;

}

/*=========================================================
    CALENDAR HEADER
=========================================================*/

.calendar-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 1.5rem 2rem;

    background: #faf8f5;

    border-bottom: 1px solid #ece8df;

}

.calendar-header h2 {

    margin: 0;

    font-size: 1.75rem;

    font-weight: 600;

    color: #333;

}

/*=========================================================
    NAVIGATION BUTTONS
=========================================================*/

.calendar-nav {

    width: 46px;

    height: 46px;

    border: none;

    border-radius: 50%;

    background: #ffffff;

    color: #333;

    font-size: 1.25rem;

    cursor: pointer;

    transition: all .25s ease;

    box-shadow:
        0 4px 12px rgba(0,0,0,.08);

}

.calendar-nav:hover {

    background: #8b6f47;

    color: #ffffff;

    transform: translateY(-2px);

}

/*=========================================================
    WEEKDAY ROW
=========================================================*/

.weekday-row {

    display: grid;

    grid-template-columns: repeat(7, 1fr);

    background: #f7f5f2;

    border-bottom: 1px solid #ece8df;

}

.weekday-row div {

    padding: 1rem .5rem;

    text-align: center;

    font-size: .9rem;

    font-weight: 700;

    text-transform: uppercase;

    letter-spacing: .05em;

    color: #777;

}

/*=========================================================
    CALENDAR GRID
=========================================================*/

.calendar-grid {

    display: grid;

    grid-template-columns: repeat(7, 1fr);

    gap: 1px;

    background: #ece8df;

}

/*=========================================================
    EMPTY CELLS
=========================================================*/

.calendar-empty {

    min-height: 130px;

    background: #fafafa;

}

/*=========================================================
    CALENDAR DAYS
=========================================================*/

.calendar-day {

    position: relative;

    min-height: 130px;

    padding: .75rem;

    background: #ffffff;

    cursor: pointer;

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        background .25s ease;

}

.calendar-day:hover {

    transform: translateY(-3px);

    box-shadow: inset 0 0 0 2px #8b6f47;

    z-index: 2;

}

/*=========================================================
    DAY NUMBER
=========================================================*/

.day-number {

    font-size: 1.1rem;

    font-weight: 700;

    color: #333;

    margin-bottom: .5rem;

}

/*=========================================================
    TODAY
=========================================================*/

.calendar-day.today {

    box-shadow: inset 0 0 0 3px #8b6f47;

}

.calendar-day.today .day-number {

    color: #8b6f47;

}

/*=========================================================
    EVENT PREVIEW
=========================================================*/

.day-preview {

    margin-top: .75rem;

    font-size: .8rem;

    line-height: 1.4;

    color: #444;

    word-break: break-word;

}

.day-preview small {

    display: block;

    font-size: .8rem;

    line-height: 1.4;

}

/*=========================================================
    AVAILABLE
=========================================================*/

.calendar-day.available {

    background: #ffffff;

}

.calendar-day.available:hover {

    background: #f8fcf8;

}

/*=========================================================
    PUBLIC WORKSHOP
=========================================================*/

.calendar-day.public {

    background: #eef6ff;

    border-left: 6px solid #4a7ebb;

}

.calendar-day.public:hover {

    background: #e5f1ff;

}

/*=========================================================
    LIMITED AVAILABILITY
=========================================================*/

.calendar-day.limited {

    background: #fff9e8;

    border-left: 6px solid #d8a500;

}

.calendar-day.limited:hover {

    background: #fff3d2;

}

/*=========================================================
    BOOKED
=========================================================*/

.calendar-day.booked {

    background: #f8f2f2;

    border-left: 6px solid #b54a4a;

}

.calendar-day.booked:hover {

    background: #f3e5e5;

}

/*=========================================================
    STATUS LABELS
=========================================================*/

.status {

    display: inline-block;

    padding: .45rem 1rem;

    margin-bottom: 1rem;

    border-radius: 999px;

    font-size: .85rem;

    font-weight: 700;

}

.status.available {

    background: #edf8ee;

    color: #2f7d3f;

}

.status.public {

    background: #e8f2ff;

    color: #2d5d9c;

}

.status.limited {

    background: #fff5d9;

    color: #996f00;

}

.status.booked {

    background: #fdeaea;

    color: #9d3030;

}

/*=========================================================
    EVENT DETAILS PANEL
=========================================================*/

.event-details {

    position: sticky;

    top: 2rem;

}

.event-panel {

    background: #ffffff;

    border-radius: 20px;

    padding: 2rem;

    box-shadow:
        0 12px 35px rgba(0,0,0,.08);

}

.event-panel .eyebrow {

    display: inline-block;

    margin-bottom: .75rem;

    font-size: .85rem;

    font-weight: 700;

    letter-spacing: .12em;

    text-transform: uppercase;

    color: #8b6f47;

}

.event-panel h2 {

    margin: 0 0 1rem;

    font-size: 2rem;

    line-height: 1.2;

    color: #222;

}

.event-panel p {

    margin: 0 0 1.25rem;

    color: #555;

    line-height: 1.8;

}

.event-panel strong {

    color: #222;

}

.event-panel hr {

    margin: 2rem 0;

    border: 0;

    border-top: 1px solid #ece8df;

}

/*=========================================================
    BUTTONS
=========================================================*/

.event-panel .button {

    display: inline-block;

    margin-top: 1rem;

    padding: .9rem 1.8rem;

    border-radius: 999px;

    background: #333;

    color: #ffffff;

    text-decoration: none;

    font-weight: 600;

    transition: all .3s ease;

}

.event-panel .button:hover {

    background: #8b6f47;

    transform: translateY(-2px);

}

/*=========================================================
    CALENDAR LEGEND
=========================================================*/

.calendar-legend {

    display: grid;

    gap: .75rem;

    margin: 1.5rem 0;

}

.legend-item {

    display: flex;

    align-items: center;

    gap: .75rem;

}

.legend {

    width: 16px;

    height: 16px;

    border-radius: 50%;

    flex-shrink: 0;

}

.legend.available {

    background: #5ca86c;

}

.legend.public {

    background: #4a7ebb;

}

.legend.limited {

    background: #d8a500;

}

.legend.booked {

    background: #b54a4a;

}

/*=========================================================
    EVENT INFORMATION
=========================================================*/

.event-panel p strong {

    display: inline-block;

    margin-bottom: .2rem;

}

.event-panel h2 + .status {

    margin-top: .25rem;

}

/*=========================================================
    PRIVATE WORKSHOP CTA
=========================================================*/

.calendar-cta {

    padding: 5rem 0;

    background: #f9f7f3;

}

.calendar-cta .container {

    max-width: 900px;

    margin: 0 auto;

}

.cta-content {

    text-align: center;

    background: #ffffff;

    border-radius: 20px;

    padding: 3rem;

    box-shadow:
        0 12px 35px rgba(0,0,0,.08);

}

.cta-content .eyebrow {

    display: inline-block;

    margin-bottom: .75rem;

    font-size: .85rem;

    font-weight: 700;

    letter-spacing: .12em;

    text-transform: uppercase;

    color: #8b6f47;

}

.cta-content h2 {

    margin-bottom: 1.5rem;

    font-size: clamp(2rem,4vw,3rem);

    color: #222;

}

.cta-content p {

    max-width: 650px;

    margin: 0 auto 2rem;

    line-height: 1.8;

    color: #555;

}

.cta-content .button {

    display: inline-block;

    padding: .9rem 2rem;

    border-radius: 999px;

    background: #333;

    color: #fff;

    text-decoration: none;

    font-weight: 600;

    transition: all .3s ease;

}

.cta-content .button:hover {

    background: #8b6f47;

    transform: translateY(-2px);

}

/*=========================================================
    FAQ
=========================================================*/

.faq-section {

    padding: 5rem 0;

}

.faq-section .container {

    max-width: 1100px;

    margin: 0 auto;

}

.faq-section h2 {

    text-align: center;

    margin-bottom: 3rem;

    font-size: clamp(2rem,4vw,3rem);

}

.faq-grid {

    display: grid;

    grid-template-columns: repeat(auto-fit,minmax(260px,1fr));

    gap: 2rem;

}

.faq-item {

    background: #ffffff;

    border-radius: 18px;

    padding: 2rem;

    box-shadow:
        0 10px 30px rgba(0,0,0,.08);

}

.faq-item h3 {

    margin-bottom: 1rem;

    font-size: 1.2rem;

}

.faq-item p {

    margin: 0;

    line-height: 1.8;

    color: #555;

}

/*=========================================================
    RESPONSIVE
=========================================================*/

@media (max-width: 992px) {

    .calendar-section .container {

        grid-template-columns: 1fr;

    }

    .event-details {

        position: static;

    }

}

@media (max-width: 768px) {

    .page-hero {

        padding: 3.5rem 0;

    }

    .calendar-section {

        padding: 3rem 0;

    }

    .calendar-header {

        padding: 1rem;

    }

    .calendar-header h2 {

        font-size: 1.35rem;

    }

    .calendar-day,
    .calendar-empty {

        min-height: 90px;

    }

    .day-preview {

        font-size: .65rem;

    }

    .event-panel {

        padding: 1.5rem;

    }

    .cta-content {

        padding: 2rem;

    }

}

@media (max-width: 576px) {

    .weekday-row div {

        padding: .65rem 0;

        font-size: .75rem;

    }

    .calendar-day {

        padding: .35rem;

        min-height: 75px;

    }

    .calendar-empty {

        min-height: 75px;

    }

    .day-number {

        font-size: .9rem;

    }

    .day-preview {

        display: none;

    }

    .calendar-nav {

        width: 38px;

        height: 38px;

    }

    .event-panel h2 {

        font-size: 1.5rem;

    }

}