/* ===========================================================================
   SECTION — WILDLIFE SEASONALITY
   =========================================================================== */

.wildlife { background: var(--pale); padding-block: clamp(3.5rem, 7vw, 6rem); }

.wildlife__head {
    display: grid;
    gap: clamp(0.75rem, 2vw, 1.75rem);
    margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.wildlife__head .h2 { max-width: 28ch; text-wrap: balance; line-height: 1.28; }

.wildlife__hand { color: var(--blue); }

/* ---------------------------------------------------------------------------
   Wildlife photography band
   --------------------------------------------------------------------------- */
.wildlife__band {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.wildlife__shot {
    position: relative;
    margin: 0;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    border-radius: var(--r-sm);
    background: var(--pale-2);
}

.wildlife__shot img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s var(--ease);
}

.wildlife__shot:hover img { transform: scale(1.06); }

.wildlife__shot::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(5, 38, 61, 0.6) 0%, rgba(5, 38, 61, 0) 50%);
    pointer-events: none;
}

.wildlife__shot-cap {
    position: absolute;
    left: 0;
    bottom: 0;
    padding: 0.5rem 0.75rem;
    font-family: var(--font-ui);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--white);
    text-shadow: 0 2px 12px rgba(5, 38, 61, 0.8);
    z-index: 1;
}

/* ---------------------------------------------------------------------------
   The chart
   --------------------------------------------------------------------------- */
.calendar {
    padding: clamp(1.25rem, 3vw, 2.5rem);
    background: var(--white);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
}

.calendar:hover { transform: none; box-shadow: var(--shadow); }

/* --- header row --- */
.calendar__header {
    display: grid;
    gap: 0.5rem;
    padding-bottom: 0.875rem;
    margin-bottom: 0.5rem;
    border-bottom: 2px solid var(--pale-2);
}

.calendar__corner { display: none; }

.calendar__months {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 4px;
}

.calendar__month {
    text-align: center;
    font-family: var(--font-ui);
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--steel-2);
    padding-bottom: 3px;
    border-radius: 4px;
}

.calendar__month.is-now {
    color: var(--white);
    background: var(--yellow);
    color: var(--navy);
}

/* --- species rows --- */
.calendar__row {
    display: grid;
    gap: 0.625rem;
    padding-block: clamp(0.75rem, 1.6vw, 1.125rem);
    border-bottom: 2px solid var(--pale-2);
}

.calendar__row:last-of-type { border-bottom: 0; }

.calendar__species { display: flex; flex-direction: column; gap: 0.125rem; }

.calendar__name {
    font-family: var(--font-display);
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    line-height: 1.2;
    color: var(--navy);
}

.calendar__latin {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-style: italic;
    color: var(--steel-2);
}

/* --- bars --- */
.calendar__cells {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 4px;
    align-items: end;
}

.calendar__cell {
    display: block;
    height: 38px;
    position: relative;
    border-radius: 5px;
    background: var(--pale-2);
    overflow: hidden;
    cursor: default;
}

.calendar__bar {
    position: absolute;
    inset: auto 0 0 0;
    display: block;
    border-radius: 5px;
    transform-origin: bottom;
    transform: scaleY(0);
    transition: transform 0.65s var(--ease), background 0.35s var(--ease);
    transition-delay: calc(var(--i) * 0.03s + var(--n, 0) * 0.05s);
}

.is-in .calendar__bar { transform: scaleY(1); }

.calendar__cell--0 .calendar__bar { height: 5px;  background: var(--steel); }
.calendar__cell--1 .calendar__bar { height: 44%;  background: var(--blue-l); }
.calendar__cell--2 .calendar__bar { height: 100%; background: var(--turq); }

/* Today's column */
.calendar__cell.is-now { box-shadow: inset 0 0 0 2px var(--yellow); }
.calendar__cell--2.is-now .calendar__bar { background: var(--yellow); }
.calendar__cell--1.is-now .calendar__bar { background: var(--amber); }

.calendar__cell:hover .calendar__bar,
.calendar__cell:focus-visible .calendar__bar { background: var(--blue); }

/* --- key --- */
.calendar__key {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    padding-top: 1.25rem;
    margin-top: 0.5rem;
    border-top: 2px solid var(--pale-2);
}

.calendar__key-item {
    display: inline-flex;
    align-items: center;
    gap: 0.4375rem;
    font-family: var(--font-ui);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--grey);
}

.calendar__swatch { width: 20px; height: 12px; border-radius: 4px; }

.calendar__swatch--0   { background: var(--steel); }
.calendar__swatch--1   { background: var(--blue-l); }
.calendar__swatch--2   { background: var(--turq); }
.calendar__swatch--now { background: var(--yellow); }

/* --- Book Whale Safari CTA --- */
.wildlife__cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.875rem 1.25rem;
    margin-top: clamp(1.75rem, 3vw, 2.5rem);
}

.wildlife__cta-note {
    font-family: var(--font-ui);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--turq-d);
}

/* --- honest note: highlighted info box --- */
.honest-note {
    display: flex;
    gap: 1.125rem;
    margin-top: clamp(1.75rem, 3vw, 2.5rem);
    padding: clamp(1.25rem, 2.5vw, 1.75rem);
    background: rgba(56, 225, 197, 0.12);
    border: 1px solid rgba(27, 191, 164, 0.35);
    border-left: 5px solid var(--turq-d);
    border-radius: var(--r);
}

.honest-note__icon {
    width: 30px;
    height: 30px;
    flex-shrink: 0;
    color: var(--turq-d);
    margin-top: 0.1rem;
}

.honest-note__label {
    margin: 0 0 0.25rem;
    font-family: var(--font-ui);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--turq-d);
}

.honest-note__text {
    margin: 0;
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--grey-d);
    max-width: 70ch;
}
