/* Theme-owned overrides for Icalviz shortcodes, independent of plugin updates. */
.icalviz-wrap.icalviz-wrap {
    --av-font: var(--font-family-text);
    --av-radius: 0;
    --av-radius-sm: 0;
    --av-bg: var(--color-background);
    --av-border: var(--color-border);
    --av-text: var(--color-text);
    --av-header-text: var(--color-text);
    --av-dow-color: var(--color-text-muted);
    --av-shadow: none;

    border: var(--line-width, 1px) solid var(--color-border);
    font-size: var(--font-size-body);
    font-weight: 300;
    line-height: 1.4;
    margin-inline: auto;
    padding: var(--box-spacing);
}

.icalviz-wrap.icalviz-wrap,
.icalviz-wrap.icalviz-wrap *,
.icalviz-wrap.icalviz-wrap *::before,
.icalviz-wrap.icalviz-wrap *::after {
    border-radius: 0;
    box-shadow: none;
}

.icalviz-wrap .icalviz-nav-label {
    font-size: 1rem;
    font-weight: 300;
}

.icalviz-wrap .icalviz-dow {
    font-size: var(--font-size-body-small);
    font-weight: 300;
}

.icalviz-wrap .icalviz-day-num {
    font-size: 1.125rem;
    font-weight: 300;
}

.icalviz-wrap .icalviz-nav-btn {
    align-items: center;
    border: var(--line-width, 1px) solid var(--color-border);
    block-size: 44px;
    display: flex;
    font-size: 0;
    inline-size: 44px;
    justify-content: center;
    line-height: 0;
    padding: 0;
}

/* Draw centred chevrons instead of relying on the font's glyph baseline. */
.icalviz-wrap .icalviz-nav-btn::before {
    block-size: 10px;
    border-block-start: var(--line-width, 1px) solid currentColor;
    border-inline-end: var(--line-width, 1px) solid currentColor;
    content: '';
    inline-size: 10px;
    transform: translateX(-25%) rotate(45deg);
}

.icalviz-wrap .icalviz-nav-prev::before {
    transform: translateX(25%) rotate(-135deg);
}

.icalviz-wrap .icalviz-nav-btn:hover:not(:disabled) {
    background: var(--color-background-secondary);
}

.icalviz-wrap .icalviz-nav-btn:focus-visible {
    outline: 2px solid var(--color-text);
    outline-offset: 3px;
}

.icalviz-wrap .icalviz-days-grid {
    gap: 0;
}

/* Each shared edge is drawn once, including the incomplete final week. */
.icalviz-wrap .icalviz-day {
    background: transparent;
    border: var(--line-width, 1px) solid var(--color-border);
    border-block-start-width: 0;
    border-inline-start-width: 0;
    cursor: default;
    transform: none;
}

.icalviz-wrap .icalviz-day:nth-child(-n + 7) {
    border-block-start-width: var(--line-width, 1px);
}

.icalviz-wrap .icalviz-day:nth-child(7n + 1) {
    border-inline-start-width: var(--line-width, 1px);
}

/* Display availability only; keep the separate month navigation interactive. */
.icalviz-wrap .icalviz-day,
.icalviz-wrap .icalviz-day * {
    pointer-events: none;
}

.icalviz-wrap .icalviz-day--clickable:hover {
    box-shadow: none;
    transform: none;
}

.icalviz-wrap .icalviz-day--free .icalviz-day-num,
.icalviz-wrap .icalviz-day--partial .icalviz-day-num,
.icalviz-wrap .icalviz-day--full .icalviz-day-num {
    color: var(--color-text);
}

.icalviz-wrap .icalviz-day--full {
    opacity: .5;
}

/* A single diagonal stroke replaces the booking fill. */
.icalviz-wrap .icalviz-day--full::before,
.icalviz-wrap .icalviz-day--partial::before {
    background: currentColor;
    content: '';
    width: 141.4%;
    height: var(--line-width, 1px);
    rotate: -45deg;
    pointer-events: none;
    position: absolute;
}

/* Keep the date legible where the stroke passes through the centre. */
.icalviz-wrap .icalviz-day--full .icalviz-day-num,
.icalviz-wrap .icalviz-day--partial .icalviz-day-num {
    background: var(--av-bg);
    padding: 0.15em;
    position: relative;
}

.icalviz-wrap .icalviz-day-dot,
.icalviz-wrap .icalviz-legend {
    display: none;
}

#icalviz-modal-overlay {
    display: none !important;
}

@container icalviz (max-width: 640px) {
    .icalviz-wrap .icalviz-day-num {
        font-size: 1rem;
    }
}

/* The fork opts into interaction; legacy display-only calendars stay inert. */
.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--free,
.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--free * {
    pointer-events: auto;
}

.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--free:hover,
.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--selected {
    background: var(--color-background-secondary);
}

.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--range-start,
.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--range-end {
    background: var(--color-text);
}

.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--selected:hover {
    background: color-mix(in srgb, var(--color-text) 18%, var(--color-background));
}

.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--range-start:hover,
.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--range-end:hover {
    background: var(--color-text-muted);
}

.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--range-start .icalviz-day-num,
.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--range-end .icalviz-day-num {
    color: var(--color-background);
}

.icalviz-wrap .icalviz-range-controls {
    border-block-start: var(--line-width, 1px) solid var(--color-border);
    font-size: var(--font-size-body-small);
    padding-block-start: 1rem;
}

.icalviz-wrap .icalviz-range-status {
    margin: 0;
}

.icalviz-wrap[data-range-picker="1"] .icalviz-day[aria-disabled="true"]:not(.icalviz-day--unavailable) {
    opacity: 1;
}

.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--minimum-disabled,
.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--minimum-disabled:hover {
    background: transparent;
    cursor: not-allowed;
}

.icalviz-wrap.icalviz-wrap[data-range-picker="1"] .icalviz-day--minimum-disabled .icalviz-day-num {
    color: var(--color-text-muted);
    opacity: 0.4;
}

/* Keep the completed selection announcement available to screen readers. */
.icalviz-wrap .icalviz-range-status--complete {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.icalviz-wrap .icalviz-range-dates {
    display: block;
}

.icalviz-wrap .icalviz-range-selection[hidden] {
    display: none;
}

.icalviz-wrap .icalviz-range-reset {
    padding: 0;
}
