/*
 * Visiting a venue: getting here, parking, opening hours and accessibility (inc/visitor-info.php).
 *
 * Eoghan, 3 November 2026 (Teamwork comment 11931965, points 1 to 4). Loaded on the two venue
 * pages and on any page whose body uses one of the sections' shortcodes (the Contact page).
 * Tokens only (assets/css/tokens.css): navy on white and on --bh-surface-2, white on navy, blue
 * text only as --bh-blue-text.
 */

/* Every part has an address of its own (the menu, the footer and answers link to them). Each
   lands clear of the fixed header by the site's own rule for every anchor (refinements.css
   section 48), so none is set here. */

/* ---- The venue page's section ------------------------------------------------------------- */

.bh-visit {
    margin-top: var(--bh-space-16);
    padding-top: var(--bh-space-12);
    border-top: 1px solid var(--bh-line);
    color: var(--bh-on-white);
    font-family: var(--bh-font);
}

.bh-visit__title {
    margin: 0 0 var(--bh-space-2);
    color: var(--bh-on-white);
    font-family: var(--bh-font);
    font-size: var(--bh-text-xl);
    font-weight: var(--bh-weight-black);
    line-height: var(--bh-leading-tight);
}

.bh-visit__lede {
    margin: 0 0 var(--bh-space-8);
    color: var(--bh-muted);
    font-size: var(--bh-text-sm);
    font-weight: var(--bh-weight-medium);
}

.bh-visit__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--bh-space-6);
    align-items: start;
}

@media (min-width: 768px) {
    .bh-visit__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .bh-visit__card--where {
        grid-row: span 2;
    }
}

@media (min-width: 1200px) {
    .bh-visit__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .bh-visit__card--where {
        grid-row: auto;
    }
}

.bh-visit__card {
    padding: var(--bh-space-6);
    border: 1px solid var(--bh-line);
    border-radius: var(--bh-radius-md);
    background: var(--bh-white);
    color: var(--bh-on-white);
    font-size: var(--bh-text-sm);
    font-weight: var(--bh-weight-medium);
    line-height: var(--bh-leading-body);
}

.bh-visit__card > :last-child,
.bh-visit__card > div > :last-child {
    margin-bottom: 0;
}

/* Accessibility runs the full width, on the tinted surface, so its commitment reads first. */
.bh-visit__card--access {
    grid-column: 1 / -1;
    border-color: transparent;
    background: var(--bh-surface-2);
}

.bh-visit__card-title {
    margin: 0 0 var(--bh-space-4);
    color: var(--bh-on-white);
    font-family: var(--bh-font);
    font-size: var(--bh-text-sm);
    font-weight: var(--bh-weight-bold);
    letter-spacing: 0.06em;
    line-height: var(--bh-leading-body);
    text-transform: uppercase;
}

.bh-visit__subhead {
    margin: var(--bh-space-6) 0 var(--bh-space-2);
    color: var(--bh-on-white);
    font-family: var(--bh-font);
    font-size: var(--bh-text-xs);
    font-weight: var(--bh-weight-bold);
    letter-spacing: 0.06em;
    line-height: var(--bh-leading-body);
    text-transform: uppercase;
}

.bh-visit__card p,
.bh-visit-summary p,
.bh-visit-access p {
    margin: 0 0 var(--bh-space-3);
}

.bh-visit__address {
    font-size: var(--bh-text-md);
    font-weight: var(--bh-weight-semibold);
}

.bh-visit__eircode {
    white-space: nowrap;
}

.bh-visit__label {
    font-weight: var(--bh-weight-bold);
}

.bh-visit__note,
.bh-visit__aside {
    color: var(--bh-muted);
    font-size: var(--bh-text-xs);
}

.bh-visit__aside a,
.bh-visit__more a,
.bh-visit__reach a,
.bh-visit__email a,
.bh-visit__or a {
    color: var(--bh-blue-text);
    font-weight: var(--bh-weight-semibold);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* On the tinted card the deeper blue keeps small link text above 4.5:1 (5.09:1 on #F1F4F7). */
.bh-visit__card--access a:not(.bh-visit__btn) {
    color: var(--bh-blue-text-deep);
}

.bh-visit__list {
    margin: 0 0 var(--bh-space-3);
    padding-left: 1.25em;
}

.bh-visit__list li + li {
    margin-top: var(--bh-space-1);
}

/* The button: navy, white text (15.04:1), ALL CAPS and bold as the brand's buttons are. */
.bh-visit__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--bh-space-3) var(--bh-space-4);
}

/* Two classes, so the site's 24px rule for every mailto and tel link (refinements.css 5)
   does not shrink the button. */
.bh-visit__actions .bh-visit__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--bh-target-comfortable);
    padding: 0 var(--bh-space-5);
    border: 2px solid var(--bh-navy);
    border-radius: 6px;
    background: var(--bh-navy);
    color: var(--bh-on-navy);
    font-size: var(--bh-text-xs);
    font-weight: var(--bh-weight-bold);
    letter-spacing: 0.03em;
    text-decoration: none;
    text-transform: uppercase;
}

.bh-visit__actions .bh-visit__btn:hover,
.bh-visit__actions .bh-visit__btn:focus {
    background: var(--bh-white);
    color: var(--bh-on-white);
    text-decoration: none;
}

.bh-visit__btn:focus-visible {
    outline: var(--bh-focus-width) solid var(--bh-focus-color);
    outline-offset: var(--bh-focus-offset);
}

/* ---- Opening hours ------------------------------------------------------------------------- */

.bh-visit-hours__list {
    margin: 0 0 var(--bh-space-4);
}

.bh-visit-hours__row {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0 var(--bh-space-4);
    padding: var(--bh-space-2) 0;
    border-bottom: 1px solid var(--bh-line);
}

.bh-visit-hours__row dt,
.bh-visit-hours__row dd {
    margin: 0;
    font-weight: var(--bh-weight-semibold);
}

/* ---- Accessibility ------------------------------------------------------------------------- */

.bh-visit-access__lead {
    max-width: 52rem;
    font-size: var(--bh-text-md);
    font-weight: var(--bh-weight-semibold);
    line-height: var(--bh-leading-body);
}

.bh-visit-access__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: var(--bh-space-6);
    margin-top: var(--bh-space-4);
}

@media (min-width: 992px) {
    .bh-visit-access__grid {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
        gap: var(--bh-space-8);
    }
}

.bh-visit-access__venues {
    display: grid;
    gap: var(--bh-space-4);
}

.bh-visit-access__venue .bh-visit__subhead {
    margin-top: 0;
}

.bh-visit-access .bh-visit__aside {
    margin-top: var(--bh-space-4);
    margin-bottom: 0;
}

/* Both venues (the Contact page): the two venues side by side, and the contact under them. */
.bh-visit-access--both .bh-visit-access__venues {
    gap: var(--bh-space-6);
}

@media (min-width: 768px) {
    .bh-visit-access--both .bh-visit-access__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .bh-visit-access--both .bh-visit-access__venues {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ---- The Contact page's per-venue summary --------------------------------------------------- */

.bh-visit-summary {
    margin: 0 0 var(--bh-space-6);
}

.bh-visit-summary__facts {
    margin: var(--bh-space-4) 0 var(--bh-space-3);
}

.bh-visit-summary__facts > div + div {
    margin-top: var(--bh-space-3);
}

.bh-visit-summary__facts dt {
    font-weight: var(--bh-weight-bold);
}

.bh-visit-summary__facts dd {
    margin: 0;
}

/* ---- In a page's own text (the Contact page) ------------------------------------------------ */

/* Each shortcode sits in a div of this class (apply-visitor-info-1103b.php), at a reading width. */
.bh-visit-block {
    max-width: 60rem;
    margin: 0 0 var(--bh-space-8);
}

.bh-visit-block .bh-visit-hours__list {
    max-width: 30rem;
}

.bh-visit-block .bh-visit-hours > :last-child,
.bh-visit-block .bh-visit-summary,
.bh-visit-block .bh-visit-access > :last-child {
    margin-bottom: 0;
}

.bh-visit-camp {
    margin-bottom: var(--bh-space-8);
}

/* ---- The way down from the top of a venue page ---------------------------------------------- */

.bh-destination__address--top {
    margin: var(--bh-space-8) 0;
}

.bh-visit-jump {
    display: inline-block;
}
