/****************************
Wine review
****************************/

/* Identity and score, in two columns. */
.wineHeadLayout {
    display: grid;
    gap: 32px;
    grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 800px) {
    .wineHeadLayout {
        align-items: start;
        column-gap: 48px;
        grid-template-columns: minmax(0, 1fr) auto;
    }
}

.wineHead {
    border-bottom: 1px solid var(--ink);
    padding-block: 40px 48px;
}

.wineHeadIdentityProducer {
    color: var(--ink-45);
    font-size: 32px;
    letter-spacing: 0.1em;
    margin-bottom: 16px;
    text-transform: uppercase;
}

/* the estate reads at the label's size, so it steps with it rather than staying put */
@media (min-width: 800px) {
    .wineHeadIdentityProducer {
        font-size: 44px;
    }
}

.wineHeadIdentityTitle {
    font-family: var(--font-serif);
    margin-bottom: 16px;
    font-size: 32px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.1;
    text-wrap: balance;
}

@media (min-width: 800px) {
    .wineHeadIdentityTitle {
        font-size: 44px;
    }
}

.wineHeadIdentityTitleLabel {
    display: block;
}

.wineHeadIdentityTitleVintage {
    color: var(--ink-45);
    display: block;
    font-variant-numeric: tabular-nums lining-nums;
    margin-top: 8px;
}

.wineHeadIdentityMeta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
    margin-top: 20px;
}

/****************************
Score block
****************************/

.wineHeadScore {
    border-top: 2px solid var(--claret);
    padding-top: 16px;
}

@media (min-width: 800px) {
    .wineHeadScore {
        min-width: 13rem;
    }
}

.wineHeadScore .score {
    color: var(--claret);
    font-weight: 700;
    line-height: 0.86;
}

.wineHeadScore .scoreBand {
    margin-top: 12px;
}

.wineHeadScoreAttribution {
    color: var(--ink-45);
    font-size: 12px;
    line-height: 1.5;
    margin-top: 16px;
}

.wineHeadScoreAttributionLink {
    border-bottom: 1px solid var(--rule-strong);
    color: var(--ink-70);
    font-weight: 600;
}

.wineHeadScoreAttributionLink:hover {
    border-color: var(--claret);
    color: var(--claret);
}

.wineHeadScoreAttributionDate {
    font-variant-numeric: tabular-nums lining-nums;
}

/* The other tasters the wine was assigned to, under the score that leads. */
.wineHeadScoreOthers {
    border-top: 1px solid var(--rule);
    list-style: none;
    margin: 16px 0 0;
    padding: 12px 0 0;
}

.wineHeadScoreOthersItem {
    align-items: baseline;
    display: flex;
    gap: 12px;
    margin-top: 8px;
}

.wineHeadScoreOthersItemScore {
    color: var(--ink-70);
    font-family: var(--font-display);
    font-size: 24px;
    font-weight: 700;
    line-height: 1;
}

.wineHeadScoreOthersItemLink {
    border-bottom: 1px solid var(--rule-strong);
    color: var(--ink-45);
    font-size: 12px;
    font-weight: 600;
}

.wineHeadScoreOthersItemLink:hover {
    border-color: var(--claret);
    color: var(--claret);
}

/****************************
Body: tasting note left, technical data right
****************************/

.wineBody {
    display: grid;
    gap: 48px;
    grid-template-columns: minmax(0, 1fr);
    padding-block: 48px;
}

@media (min-width: 1000px) {
    .wineBody {
        align-items: start;
        column-gap: 64px;
        grid-template-columns: minmax(0, 1fr) 17rem;
    }
}

.wineBodyMain {
    min-width: 0;
}

.wineBodyMainSubtitle {
    font-family: var(--font-serif);
    font-size: 20px;
    line-height: 1.5;
    margin-bottom: 24px;
    max-width: 40rem;
}

@media (min-width: 800px) {
    .wineBodyMainSubtitle {
        font-size: 22px;
    }
}

.wineBodyMainNote {
    max-width: 40rem;
}

.wineBodySide {
    min-width: 0;
}

@media (min-width: 1000px) {
    .wineBodySide {
        position: sticky;
        top: calc(68px + 32px);
    }
}

.wineDataHeading {
    border-bottom: 1px solid var(--ink);
    color: var(--ink);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    padding-bottom: 8px;
    text-transform: uppercase;
}

/* In the narrow data column the label and value always stack */
.wineData .dataListRow {
    grid-template-columns: minmax(0, 1fr);
}

/****************************
Related links
****************************/

@media (min-width: 700px) {
}

/****************************
Related wines, everything else from the same producer
****************************/

.wineRelatedInner {
    min-width: 0;
}

.wineRelatedTable {
    border-collapse: collapse;
    font-size: 15px;
    width: 100%;
}

.wineRelatedTableRow.active {
    background-color: var(--claret-tint);
}

/* The link is a wine name, so it wraps rather than forcing the table wide. */
.wineRelatedTableRowLink {
    font-family: var(--font-serif);
    font-size: 17px;
    font-weight: 600;
}

.wineRelatedTableRowLink:hover {
    color: var(--claret);
}

/****************************
Tasting: one visit, one date, the wines poured
****************************/

.pageHeadFacts {
    border-top: 1px solid var(--rule);
    display: flex;
    flex-wrap: wrap;
    gap: 24px 40px;
    margin: 32px 0 0;
    padding-top: 20px;
}

.pageHeadFactsItem {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pageHeadFactsItemLabel {
    color: var(--ink-45);
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.pageHeadFactsItemValue {
    font-family: var(--font-serif);
    font-size: 16px;
    font-variant-numeric: tabular-nums lining-nums;
    margin: 0;
}

.pageHeadFactsItemValueTime {
    font-variant-numeric: tabular-nums lining-nums;
}

.pageHeadFactsItemValueLink {
    border-bottom: 1px solid var(--rule-strong);
}

.pageHeadFactsItemValueLink:hover {
    border-color: var(--claret);
    color: var(--claret);
}

/****************************
Note page: the citation, and where it was drunk
****************************/

.wineHeadIdentityMetaTag {
    border: 1px solid var(--rule-strong);
    color: var(--ink-70);
    font-size: 12px;
    letter-spacing: 0.06em;
    padding: 4px 12px;
    text-transform: uppercase;
}

.wineBodyMainSource {
    border-top: 1px solid var(--rule);
    margin-top: 40px;
    max-width: 40rem;
    padding-top: 16px;
}

.wineBodyMainSourceLabel {
    color: var(--ink-45);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.wineBodyMainSourceTitle {
    font-family: var(--font-serif);
    font-size: 17px;
    line-height: 1.45;
    margin-top: 8px;
}

.wineBodyMainSourceTitleLink {
    border-bottom: 1px solid var(--rule-strong);
}

.wineBodyMainSourceTitleLink:hover {
    border-color: var(--claret);
    color: var(--claret);
}

/****************************
Article extras
****************************/

/* "Wines mentioned", the forward reference a guide carries. */
.guideRelated {
    padding-block: 64px;
}

/* "Other years", the sibling editions of a recurring event. */
.eventOtherList {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.eventOtherListItemLink {
    border: 1px solid var(--rule-strong);
    display: inline-block;
    font-size: 14px;
    font-variant-numeric: tabular-nums lining-nums;
    padding: 8px 16px;
}

.eventOtherListItemLink:hover {
    border-color: var(--claret);
    color: var(--claret);
}

.wineRelatedTableHeadCell,
.wineRelatedTableRowCell {
    border-bottom: 1px solid var(--rule);
    padding: 12px 16px 12px 0;
    text-align: left;
}

.wineRelatedTableHeadCell {
    border-bottom-color: var(--ink);
    color: var(--ink-45);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
}

.tastingBody {
    padding-block: 48px;
}

/****************************
Wines at an article
****************************/

.tastingWinesList {
    border-top: 1px solid var(--rule);
    list-style: none;
    margin: 0;
    padding: 0;
}

.tastingWinesListItem {
    border-bottom: 1px solid var(--rule);
    display: grid;
    gap: 12px 20px;
    grid-template-columns: 3rem minmax(0, 1fr);
    padding-block: 24px;
}

@media (min-width: 700px) {
    .tastingWinesListItem {
        column-gap: 32px;
        grid-template-columns: 4.5rem minmax(0, 1fr);
    }
}

.tastingWinesListItemScore {
    color: var(--claret);
    font-family: var(--font-display);
    font-size: 28px;
    font-variant-numeric: tabular-nums lining-nums;
    font-weight: 700;
    line-height: 1;
}

@media (min-width: 700px) {
    .tastingWinesListItemScore {
        font-size: 32px;
    }
}

.tastingWinesListItemBody {
    min-width: 0;
}

.tastingWinesListItemBodyName {
    font-family: var(--font-display);
    font-size: 20px;
    font-weight: 400;
    line-height: 1.28;
}

.tastingWinesListItemBodyNameLink:hover {
    color: var(--claret);
}

.tastingWinesListItemBodyNameVintage {
    color: var(--ink-45);
    font-variant-numeric: tabular-nums lining-nums;
}

.tastingWinesListItemBodyNote {
    color: var(--ink-70);
    font-family: var(--font-serif);
    font-size: 15px;
    line-height: 1.68;
    margin-top: 12px;
    max-width: 62ch;
}

.tastingWinesListItemBodyMeta {
    align-items: baseline;
    color: var(--ink-45);
    display: flex;
    flex-wrap: wrap;
    font-size: 12px;
    gap: 8px 20px;
    margin-top: 16px;
}

.tastingWinesListItemBodyMetaItem {
    font-variant-numeric: tabular-nums lining-nums;
    white-space: nowrap;
}
