:root {
    color-scheme: light;
    font-family: system-ui, sans-serif;
    color: #172a25;
    background: #f8f6ef;
    --muted: #51635b;
    --green: #184d40;
    --line: #a3aea2;
}

* { box-sizing: border-box; }

body { margin: 0; }

.login {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    min-height: 100svh;
}

.atlas {
    display: grid;
    grid-template-rows: auto 1fr auto;
    min-width: 0;
    padding: clamp(2rem, 5vw, 6rem);
    background: #13362e;
    color: #fbf6e9;
}

.brand {
    display: flex;
    align-items: center;
    gap: .75rem;
    font-size: 1.15rem;
    font-weight: 750;
}

.brand-mark {
    display: grid;
    place-items: center;
    inline-size: 2.25rem;
    block-size: 2.25rem;
    border: 1px solid currentColor;
    border-radius: .55rem;
}

.atlas-route {
    width: min(100%, 39rem);
    max-height: 53vh;
    align-self: center;
    justify-self: center;
    color: #e3b777;
}

.atlas-route .grid { stroke: #f8f6ef; opacity: .12; }
.atlas-route .terrain { stroke: #f8f6ef; opacity: .27; }
.atlas-route .track { stroke: currentColor; stroke-width: 2.5; stroke-dasharray: 5 7; }
.atlas-route circle { fill: #13362e; stroke: currentColor; stroke-width: 2; }
.atlas-route circle:last-child { fill: currentColor; }

.eyebrow {
    margin: 0 0 .8rem;
    font-size: .77rem;
    font-weight: 780;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.atlas .eyebrow { color: #e3b777; }

.atlas-title, h1, h2 { margin: 0; line-height: 1.12; letter-spacing: -.035em; }

.atlas-title, h1 { font-size: clamp(2.2rem, 4vw, 4.5rem); font-weight: 760; }

.atlas-detail { max-width: 38ch; color: #d5e1d8; line-height: 1.6; margin-bottom: 0; }

.login-panel {
    display: grid;
    place-items: center;
    padding: clamp(1.5rem, 5vw, 6rem);
}

.login-form { width: min(100%, 27rem); }

.muted { color: var(--muted); line-height: 1.6; }

.login-form form { display: grid; gap: .55rem; margin-top: 2rem; }

label { font-size: .92rem; font-weight: 700; }

input, button { font: inherit; }

input:not([type="hidden"]) {
    min-width: 0;
    width: 100%;
    border: 1px solid var(--line);
    border-radius: .5rem;
    background: #fffdf8;
    color: inherit;
    padding: .85rem .9rem;
    margin-bottom: .85rem;
}

button {
    border: 1px solid transparent;
    border-radius: .5rem;
    background: var(--green);
    color: #fff;
    padding: .8rem 1.05rem;
    cursor: pointer;
    font-weight: 720;
}

.login-form button { display: flex; justify-content: space-between; gap: 1rem; }

button:hover { background: #103c31; }

:focus-visible { outline: 2px solid #985215; outline-offset: 3px; }

.form-error {
    background: #fae7dd;
    color: #763219;
    border-radius: .5rem;
    padding: .75rem .9rem;
    line-height: 1.5;
}

.workspace-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem clamp(1rem, 5vw, 5rem);
    border-bottom: 1px solid var(--line);
}

.workspace-header button { font-size: .9rem; }

.workspace {
    width: min(100%, 82rem);
    margin-inline: auto;
    padding: clamp(2rem, 6vw, 6rem) clamp(1rem, 4vw, 4rem);
}

.empty-state {
    margin-top: 2rem;
    border: 1px dashed var(--line);
    border-radius: .75rem;
    padding: clamp(1.25rem, 5vw, 4rem);
}

.empty-state p { margin-bottom: 0; }

@media (max-width: 740px) {
    .login { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; }
    .atlas { padding: 1.15rem 1.5rem; }
    .atlas-route, .atlas-copy { display: none; }
    .login-panel { place-items: start center; padding-block: 2.3rem; }
}

[hidden] { display: none !important; }

.workspace-header .brand { color: inherit; text-decoration: none; }
.workspace h1 { font-size: clamp(2rem, 3.4vw, 3.9rem); overflow-wrap: anywhere; }

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--green);
    border: 1px solid transparent;
    border-radius: .5rem;
    color: white;
    font-weight: 720;
    padding: .7rem .95rem;
    text-decoration: none;
}

.button:hover { background: #103c31; }

.secondary, .secondary:hover {
    background: #f4f8f3;
    border-color: #9aab9f;
    color: #184438;
}

.secondary:hover { background: #e6efe7; }

.small { font-size: .85rem; padding: .42rem .65rem; }

.section-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.section-title > * { min-width: 0; }
.section-title > :is(.button, .badge) { flex: none; }

.panel {
    background: #fffdf8;
    border: 1px solid #d4dad1;
    border-radius: .75rem;
    padding: clamp(.9rem, 2vw, 1.5rem);
    min-width: 0;
}

.step-heading h3, .stay-card summary strong {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    align-items: end;
}

.field-grid > * { min-width: 0; }
.field-grid .wide { grid-column: 1 / -1; }
.field-grid label { display: grid; gap: .28rem; }
.field-grid input:not([type="hidden"], [type="checkbox"]) { margin: 0; }
.field-grid button { justify-self: start; }

select, textarea {
    min-width: 0;
    width: 100%;
    font: inherit;
    border: 1px solid var(--line);
    border-radius: .5rem;
    background: #fffdf8;
    color: inherit;
    padding: .65rem .7rem;
}

textarea { resize: vertical; }

fieldset { border: 1px solid #d4dad1; border-radius: .5rem; padding: .7rem; }
legend { padding-inline: .25rem; color: var(--muted); font-size: .86rem; }
.replacements label { display: flex; align-items: start; margin-block: .4rem; }

.trip-workspace { width: min(100%, 105rem); padding-block: clamp(1.25rem, 3vw, 3rem); }
.trip-title { margin-block: 1.1rem .8rem; }
.trip-title .muted { margin: .45rem 0 0; }
.back-link { color: var(--green); }

.day-nav, .day-nav form, .variant-switch {
    display: flex;
    align-items: center;
    gap: .5rem;
    min-width: 0;
}
.day-nav { margin-block: 1rem; }
.day-nav label, .variant-switch label { flex: none; }
.day-nav form select { width: 12rem; }
.variant-switch { margin-block: .8rem; }
.variant-switch select { flex: 1; }

.itinerary-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 1rem;
    align-items: start;
}

.map-panel { position: sticky; top: .75rem; }
.map-title { margin-bottom: .75rem; }
.view-switch { display: flex; gap: .25rem; flex-wrap: wrap; justify-content: end; }
.view-switch a { color: #184438; padding: .38rem .58rem; border-radius: .35rem; font-size: .88rem; }
.view-switch a[aria-current="true"] { background: #e1eee2; text-decoration: none; font-weight: 700; }
#itinerary-map { height: clamp(20rem, 54vh, 41rem); background: #e4eee6; border-radius: .5rem; z-index: 0; }
#itinerary-map.is-picking { cursor: crosshair; }
.map-note, .map-status { font-size: .83rem; margin: .65rem 0 0; }
.map-status:empty { display: none; }
.map-popup { padding-left: 1rem; margin: .25rem 0; }
.map-focus { white-space: nowrap; }

.badge {
    color: #234e3d;
    background: #e6f0e5;
    border-radius: 2rem;
    padding: .25rem .55rem;
    font-weight: 700;
    font-size: .77rem;
    white-space: nowrap;
}

.timeline { list-style: none; padding: 0; margin-block: .7rem; }
.step { border-top: 1px solid #dce1d9; padding-block: .9rem; }
.step:target { background: #eef5ee; }
.step-head {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr) auto;
    gap: .65rem;
    align-items: start;
}
.step-time { color: #286051; font-variant-numeric: tabular-nums; font-weight: 750; font-size: .9rem; }
.step-heading h3 { font-size: 1.05rem; margin: 0 0 .18rem; }
.step-heading p, .step-notes { margin: 0; color: var(--muted); overflow-wrap: anywhere; }
.step-heading p { font-size: .85rem; }
.step-notes { margin-top: .55rem; line-height: 1.45; white-space: pre-wrap; }
.navigation-link, .offer-list a, .resource-list a { color: var(--green); overflow-wrap: anywhere; }
.navigation-link { display: inline-block; margin-top: .5rem; }

.subpanel { margin-top: .6rem; min-width: 0; }
.subpanel summary, .stay-card summary { color: #214c3e; cursor: pointer; font-weight: 700; }
.subpanel > form, .subpanel > .resource-list { margin-top: .7rem; }
.add-step { background: #eef5ed; border-radius: .5rem; padding: .65rem .75rem; }
.step-actions { display: flex; gap: .5rem; align-items: start; flex-wrap: wrap; margin-top: .7rem; }
.delete-step { color: #762d1c; font-size: .85rem; }
.danger { background: #832d1e; }
.danger:hover { background: #652116; }
.empty-note { color: var(--muted); padding: 1rem 0; }

.resource-list, .offer-list { list-style: none; padding: 0; margin: .6rem 0 0; }
.resource-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: .35rem .65rem; padding: .45rem 0; }
.resource-list li small { grid-column: 1; color: var(--muted); }
.resource-list li form { grid-column: 2; grid-row: 1; }
.resource-list img { display: block; width: min(100%, 22rem); aspect-ratio: 3 / 2; object-fit: cover; border-radius: .5rem; background: #e6efe7; margin-bottom: .4rem; }

.stays { margin-top: 1rem; }
.stay-card { border-top: 1px solid #dce1d9; padding-block: .6rem; }
.stay-card:first-of-type { margin-top: .8rem; }
.stay-card summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: .7rem; align-items: center; }
.stay-card summary strong::before { content: '▸ '; }
.stay-card[open] summary strong::before { content: '▾ '; }
.details-body { margin: .65rem 0 .35rem; }
.details-body > p { margin: .45rem 0; }
.offer-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(9rem, auto); gap: .65rem; padding: .5rem 0; border-top: 1px solid #e7ebe4; }

@media (max-width: 940px) {
    .itinerary-layout { grid-template-columns: minmax(0, 1fr); }
    .map-panel { position: static; }
}

@media (max-width: 540px) {
    .section-title { gap: .55rem; }
    .section-title .button { padding-inline: .6rem; font-size: .84rem; }
    .day-nav label { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); }
    .day-nav form select { width: min(38vw, 12rem); }
    .day-nav .button, .day-nav button { padding-inline: .55rem; }
    .step-head { grid-template-columns: 2.55rem minmax(0, 1fr); }
    .step-head .map-focus { grid-column: 2; justify-self: start; }
    .step-heading h3 { white-space: normal; overflow-wrap: anywhere; }
    .offer-list li { grid-template-columns: minmax(0, 1fr) auto; }
    .offer-list li .muted { grid-column: 1 / -1; }
    .stay-card summary { gap: .35rem; font-size: .84rem; }
    #itinerary-map { height: 23rem; }
}
.trip-jumps { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: end; }
@media (max-width: 540px) {
    .trip-title { align-items: start; flex-direction: column; }
    .trip-jumps { justify-content: start; }
}
.change-day { display: flex; gap: .65rem; align-items: end; margin-top: .8rem; }
.change-day label { display: grid; gap: .25rem; min-width: 0; }

/* Trip catalog */
.trip-catalog { width: min(100%, 88rem); }
.catalog-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.25rem; }
.catalog-kicker {
    display: flex;
    align-items: center;
    gap: .48rem;
    margin: 0 0 .55rem;
    color: #556859;
    font-size: .7rem;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .14em;
}
.catalog-kicker span { width: .42rem; aspect-ratio: 1; border-radius: 50%; background: #96652c; }
.trip-catalog h1, .trip-dialog h2 { font-family: Georgia, serif; font-weight: 500; letter-spacing: -.055em; }
.trip-catalog h1 { font-size: clamp(2.85rem, 5.1vw, 5.4rem); }
.catalog-add { gap: .55rem; padding-inline: 1.1rem; white-space: nowrap; }
.catalog-add span { font-size: 1.35rem; line-height: .8; font-weight: 500; }
.catalog-rule {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin: 2rem 0 .85rem;
    color: var(--muted);
    font-size: .85rem;
    font-weight: 700;
}
.catalog-rule::after { content: ''; height: 1px; flex: 1; background: #d7dcd1; }
.trip-list { display: grid; gap: .8rem; margin: 0; padding: 0; list-style: none; }
.trip-list li { position: relative; min-width: 0; }
.trip-card {
    display: grid;
    grid-template-columns: clamp(10rem, 19vw, 18rem) minmax(0, 1.35fr) minmax(0, 1.65fr) auto;
    align-items: center;
    gap: clamp(.8rem, 1.55vw, 1.65rem);
    min-height: 9rem;
    padding: .55rem 1.1rem .55rem .55rem;
    border: 1px solid #d9ded3;
    border-radius: 1rem;
    background: #fffdf8;
    color: inherit;
    text-decoration: none;
    transition: background-color .18s, border-color .18s;
}
.trip-card:hover { border-color: #9eafa2; background: #f6faf2; }
.trip-list li:target .trip-card { border-color: #4f8069; }
.trip-cover {
    position: relative;
    align-self: stretch;
    min-width: 0;
    min-height: 9rem;
    border-radius: .68rem;
    background: #23483c url('../images/trip-cover.svg') center / cover;
    overflow: clip;
}
.trip-cover img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.trip-cover-unavailable > * { display: none; }
.trip-list li:has(.trip-cover-unavailable) .cover-gallery-button { display: none; }
.cover-gallery-button { position: absolute; inset: .8rem auto auto .8rem; min-height: 2.5rem; }
.trip-cover-credit {
    position: absolute;
    right: .38rem;
    bottom: .35rem;
    max-width: calc(100% - .76rem);
    padding: .2rem .35rem;
    border-radius: .25rem;
    background: #172a25e8;
    color: white;
    font-size: .62rem;
    line-height: 1.2;
}
.trip-card-title { min-width: 0; display: grid; align-content: center; gap: .45rem; }
.trip-card-title strong, .trip-destination { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trip-card-title strong { font-family: Georgia, serif; font-size: clamp(1.3rem, 1.9vw, 2rem); font-weight: 500; letter-spacing: -.035em; }
.trip-destination {
    justify-self: start;
    max-width: 100%;
    padding: .23rem .52rem;
    border-radius: 2rem;
    background: #e9eee3;
    color: #294e3e;
    font-size: .73rem;
    font-weight: 700;
}
.trip-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(5.3rem, 1fr)) minmax(3.7rem, .75fr) minmax(6rem, 1.2fr);
    gap: .65rem;
    margin: 0;
    font-variant-numeric: tabular-nums;
}
.trip-meta div { min-width: 0; }
.trip-meta dt { margin-bottom: .24rem; color: var(--muted); font-size: .7rem; font-weight: 680; }
.trip-meta dd { margin: 0; font-size: .94rem; font-weight: 740; overflow-wrap: anywhere; }
.trip-budget-note { display: block; margin-top: .12rem; color: var(--muted); font-size: .7rem; }
.trip-open {
    display: grid;
    place-items: center;
    inline-size: 2.25rem;
    aspect-ratio: 1;
    border: 1px solid #c8d5c9;
    border-radius: 50%;
    color: var(--green);
    font-size: 1.1rem;
}
.trip-card:hover .trip-open { background: var(--green); border-color: var(--green); color: white; }

.trip-dialog {
    width: min(calc(100% - 2rem), 34rem);
    max-height: calc(100dvh - 2rem);
    overscroll-behavior: contain;
    margin: auto;
    padding: 0;
    border: 1px solid #d6ddcf;
    border-radius: 1rem;
    background: #fffdf8;
    color: #172a25;
    box-shadow: 0 1.2rem 4rem #172a2533;
}
.trip-dialog[open]:not(:modal) { position: fixed; inset: 0; z-index: 5; }
.trip-dialog::backdrop { background: #1528208c; }
.trip-dialog-inner { padding: clamp(1.1rem, 4vw, 2rem); }
.trip-dialog-header { display: flex; align-items: start; justify-content: space-between; gap: .75rem; margin-bottom: 1.4rem; }
.trip-dialog h2 { font-size: clamp(2rem, 5vw, 2.7rem); }
.trip-dialog-close {
    display: grid;
    place-items: center;
    flex: none;
    width: 2.35rem;
    aspect-ratio: 1;
    border-radius: 50%;
    border: 1px solid #d6ddcf;
    color: var(--green);
    font-size: 1.4rem;
    line-height: 1;
    text-decoration: none;
}
.trip-dialog-close:hover { background: #edf3eb; }
.trip-create input[type="date"] { max-width: 100%; }
.trip-dialog-actions { display: flex; flex-wrap: wrap; justify-content: end; gap: .55rem; margin-top: .6rem; }

@media (max-width: 1040px) {
    .trip-card { grid-template-columns: 11rem minmax(0, 1fr) auto; gap: .65rem 1rem; }
    .trip-cover { grid-row: span 2; }
    .trip-open { grid-area: 1 / 3 / 3 / 4; }
    .trip-meta { grid-column: 2; }
}

@media (max-width: 600px) {
    .trip-catalog { padding-block: 2.1rem; }
    .catalog-heading { align-items: start; flex-direction: column; gap: .9rem; }
    .catalog-rule { margin-top: 1.45rem; }
    .trip-card { grid-template-columns: minmax(0, 1fr) 1.8rem; gap: .6rem; padding: .5rem; }
    .trip-cover { grid-area: 1 / 1 / 2 / -1; min-height: 9rem; aspect-ratio: 2 / 1; border-radius: .45rem; }
    .trip-cover-credit { inset: auto .12rem .12rem; max-width: none; padding: .1rem .18rem; font-size: .52rem; }
    .trip-card-title strong {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 2;
        white-space: normal;
        overflow-wrap: anywhere;
        font-size: 1.25rem;
    }
    .trip-open { grid-area: 2 / 2; inline-size: 1.8rem; }
    .trip-meta {
        grid-column: 1 / -1;
        grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, .7fr) minmax(0, 1fr);
        gap: .4rem;
        padding: .6rem .25rem .35rem;
        border-top: 1px solid #e4e8df;
    }
    .trip-meta dd { font-size: .81rem; }
    .trip-meta dt, .trip-budget-note { font-size: .65rem; }
    .trip-dialog { width: 100%; max-width: 100%; max-height: calc(100dvh - .75rem); margin: auto 0 0; border-radius: 1rem 1rem 0 0; }
}

@media (min-width: 601px) and (max-width: 720px) {
    .trip-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.trip-journal { padding-top: 1.65rem; }
.trip-journal .back-link { display: inline-block; margin-bottom: .85rem; }
.journey-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(0, .65fr);
    border-radius: 1rem;
    overflow: clip;
    background: #1b3a31;
    color: #fffaf0;
}
.journey-hero-copy { padding: clamp(1.3rem, 3vw, 3rem); align-self: center; }
.journey-hero-copy .eyebrow { color: #e2ba77; margin-bottom: .6rem; }
.journey-hero-copy h1 { font-family: Georgia, serif; font-weight: 500; font-size: clamp(2rem, 3.75vw, 4.1rem); }
.journey-hero-copy p:last-child { margin: .8rem 0 0; color: #e0e9df; }
.journey-cover { position: relative; min-height: 15rem; background: #23483c url('../images/trip-cover.svg') center / cover; }
.journey-cover img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.journey-cover span { position: absolute; right: .5rem; bottom: .45rem; max-width: calc(100% - 1rem); padding: .18rem .4rem; border-radius: .25rem; background: #172a25e8; color: white; font-size: .66rem; }

.journey-days { margin-top: 1.55rem; }
.journey-days .eyebrow, .journey-overview .eyebrow, .day-section .eyebrow { color: #496359; margin-bottom: .36rem; }
.journey-day-arrows, .journey-jumps { display: flex; flex-wrap: wrap; gap: .5rem; }
.journey-days-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(4rem, 1fr));
    gap: .4rem;
    margin: .8rem 0 0;
    padding: 0;
    list-style: none;
}
.journey-days-list a {
    display: grid;
    text-align: center;
    gap: .15rem;
    padding: .42rem .15rem;
    border: 1px solid #d4ded0;
    border-radius: .48rem;
    background: #fffdf8;
    color: #244b3f;
    text-decoration: none;
}
.journey-days-list a:hover { background: #edf3e9; }
.journey-days-list a[aria-current="page"] { background: #184d40; border-color: #184d40; color: white; }
.journey-days-list span { font-size: .66rem; font-weight: 760; }
.journey-days-list time { font-size: .82rem; font-weight: 680; }
.journey-day-select { display: flex; gap: .6rem; align-items: end; margin-top: .7rem; }
.journey-day-select label { min-width: 0; flex: 1; }

.journey-overview {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
    gap: .9rem 1.65rem;
    align-items: center;
    margin-top: 1rem;
    padding: clamp(.9rem, 2vw, 1.5rem);
    border: 1px solid #d7e0d2;
    border-radius: .8rem;
    background: #edf2e9;
}
.journey-overview h2 { font-family: Georgia, serif; font-weight: 500; font-size: clamp(1.65rem, 3vw, 2.65rem); overflow-wrap: anywhere; }
.journey-overview p:not(.eyebrow) { margin: .5rem 0 0; color: #425d50; line-height: 1.45; }
.journey-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; margin: 0; }
.journey-facts div { padding: .55rem .65rem; border-left: 2px solid #91a997; }
.journey-facts dt { color: #466355; font-size: .77rem; font-weight: 700; }
.journey-facts dd { margin: .22rem 0 0; font-weight: 740; overflow-wrap: anywhere; }
.journey-jumps { margin-block: .95rem; }
.journey-jumps a, .step-links a, .restaurant-links a, .lodging-links a, .lodging-area, .all-stays a { color: #285344; text-underline-offset: .16em; }
.journey-jumps a { padding: .32rem .65rem; border-radius: 2rem; background: #e8efe4; font-size: .82rem; font-weight: 650; text-decoration: none; }
.journey-jumps a:hover { background: #dbe9da; }

.journey-main, .journey-aside { display: grid; min-width: 0; gap: 1rem; align-content: start; }
.journey-aside .map-panel { position: static; }
.journey-aside .stays { margin: 0; }
.trip-journal .itinerary-layout { grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr); }
.trip-journal #itinerary-map { height: clamp(19rem, 45vh, 34rem); }
.day-section { scroll-margin-top: 1rem; }
.step-period {
    margin: 0 0 .75rem;
    padding: .38rem .62rem;
    border-radius: .35rem;
    background: #eaf1e7;
    color: #214c3e;
    font-size: .76rem;
    font-weight: 770;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.step-links { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin-top: .42rem; font-size: .84rem; }
.step-links:empty { display: none; }
.section-intro { margin: .6rem 0; }
.restaurant-list, .lodging-offers { list-style: none; padding: 0; margin: .7rem 0 0; }
.restaurant-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .65rem; align-items: start; padding: .7rem 0; border-top: 1px solid #dce2d9; }
.restaurant-list h3, .lodging-offer-heading h3 { margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.restaurant-list p { margin: .25rem 0 0; color: var(--muted); line-height: 1.45; font-size: .88rem; }
.restaurant-links { display: flex; flex-wrap: wrap; align-items: center; justify-content: end; gap: .25rem .65rem; font-size: .82rem; }
.restaurant-links .badge { white-space: normal; }
.journey-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr)); gap: .65rem; margin-top: .75rem; }
.journey-gallery figure { min-width: 0; margin: 0; }
.journey-gallery img { display: block; width: 100%; aspect-ratio: 3 / 2; max-height: 14rem; object-fit: cover; background: #e6eee5; border-radius: .5rem; }
.journey-gallery figcaption { display: grid; margin-top: .35rem; font-size: .84rem; }
.journey-gallery small { color: var(--muted); }
.lodging-area { display: inline-block; margin-top: .4rem; font-size: .84rem; }
.lodging-offers li { padding: .75rem; margin-bottom: .55rem; border: 1px solid #dce2d9; border-radius: .55rem; }
.lodging-offers .lodging-selected { border-color: #5e8872; background: #f0f6ed; }
.lodging-offer-heading { display: flex; justify-content: space-between; gap: .5rem; align-items: start; }
.lodging-offers p { margin: .35rem 0 0; }
.lodging-price span, .lodging-meta { color: var(--muted); font-size: .81rem; }
.lodging-nightly { font-size: .85rem; }
.budget-outside { background: #f6e9d8; color: #724a24; white-space: normal; }
.lodging-links, .lodging-controls { display: flex; flex-wrap: wrap; align-items: start; gap: .45rem .75rem; margin-top: .55rem; font-size: .84rem; }
.lodging-controls details { margin: .25rem 0 0; flex: 1 1 auto; }
.availability-form { display: grid; gap: .45rem; }
.availability-form button { justify-self: start; }
.all-stays ul { padding-left: 1rem; }
.all-stays li + li { margin-top: .35rem; }

@media (max-width: 940px) {
    .trip-journal .itinerary-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 570px) {
    .trip-journal { padding-top: 1rem; }
    .journey-hero { grid-template-columns: minmax(0, 1fr); }
    .journey-cover { min-height: 6.5rem; }
    .journey-overview { grid-template-columns: minmax(0, 1fr); }
    .journey-days-list { grid-template-columns: repeat(auto-fit, minmax(3.35rem, 1fr)); }
    .restaurant-list li { grid-template-columns: minmax(0, 1fr); }
    .restaurant-links { justify-content: start; }
}

.journey-jumps .jump-ideas { background: #f3e7d2; color: #65451f; }
.journey-jumps .jump-ideas:hover { background: #eddfc4; }
.jump-ideas span { margin-left: .22rem; font-variant-numeric: tabular-nums; }
.idea-panel { border-top: 3px solid #c69857; }
.idea-list { list-style: none; margin: .8rem 0 0; padding: 0; display: grid; gap: .55rem; }
.idea-card { min-width: 0; border: 1px solid #e5ddcf; border-radius: .55rem; padding: .75rem .85rem; background: #fffdf7; }
.idea-card h3 { margin: .35rem 0 0; font-size: 1rem; overflow-wrap: anywhere; }
.idea-card p, .idea-variant p { margin: .28rem 0 0; color: var(--muted); font-size: .88rem; line-height: 1.5; overflow-wrap: anywhere; }
.idea-labels, .idea-links { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .65rem; color: var(--muted); font-size: .79rem; }
.idea-alternative .badge { background: #f3e7d2; color: #65451f; }
.idea-later .badge { background: #ece8f2; color: #514466; }
.idea-links { margin-top: .5rem; }
.idea-links:empty { display: none; }
.idea-links a { color: #285344; text-underline-offset: .16em; overflow-wrap: anywhere; }
.idea-edit, .step-manage { margin-top: .4rem; font-size: .8rem; }
.idea-edit > summary, .step-manage > summary { color: #4e675c; cursor: pointer; width: fit-content; }
.idea-edit .field-grid { margin-block: .5rem; }
.idea-variants { margin-top: .85rem; }
.idea-variants > h3 { margin: 0 0 .4rem; font-size: .88rem; }
.idea-variant { padding: .6rem .7rem; border: 1px solid #d9e3d8; border-radius: .5rem; background: #f3f7ef; }
.idea-variant + .idea-variant { margin-top: .45rem; }
.idea-variant summary { cursor: pointer; font-weight: 700; overflow-wrap: anywhere; }
.idea-variant summary .badge { margin-left: .35rem; }
.idea-variant-entries { margin: .55rem 0; padding-left: 1.15rem; font-size: .88rem; overflow-wrap: anywhere; }
.idea-variant-entries li + li { margin-top: .5rem; }
.idea-variant form { margin-top: .55rem; }
.step-manage .subpanel { margin-left: .7rem; }

@media (max-width: 570px) {
    .idea-card { padding: .65rem .7rem; }
    .step-manage .subpanel { margin-left: 0; }
}

.program-version {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline;
    gap: .25rem .75rem;
    margin: .65rem 0 0;
    color: var(--muted);
    font-size: .84rem;
    overflow-wrap: anywhere;
}
.program-version a { color: #285344; text-underline-offset: .16em; }

.compare-cta {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin-top: .85rem;
    padding: .45rem .75rem;
    border: 1px solid #e3c28b;
    border-radius: .45rem;
    color: #ffebc9;
    font-weight: 720;
    font-size: .85rem;
    text-decoration: none;
}
.compare-cta:hover { background: #294c40; }
.step-links { align-items: center; }
.research-panel { border-top: 3px solid #a36937; }
.activity-dialog {
    color: var(--ink, #172a25);
    background: #fffdf8;
    width: min(54rem, calc(100% - 2rem));
    max-height: min(88dvh, 52rem);
    box-sizing: border-box;
    padding: 0;
    border: 1px solid #d5dfd2;
    border-radius: 1rem;
    box-shadow: 0 1.25rem 4rem #14271d4d;
    overflow-wrap: anywhere;
}
.activity-dialog::backdrop { background: #172a25ab; }
.activity-dialog-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; }
.activity-dialog-header .eyebrow { margin: 0 0 .35rem; color: #536b60; }
.activity-dialog-header h2 { margin: 0; font-family: Georgia, serif; font-size: clamp(1.35rem, 3vw, 2rem); font-weight: 500; }
.activity-dialog-details { margin: .35rem 0 0; color: var(--muted); font-size: .9rem; }
.activity-dialog-header button { white-space: nowrap; }
.activity-dialog-photos { background: #f1f2e9; padding: .75rem clamp(.65rem, 3vw, 1.2rem); }
.activity-dialog-photos figure { margin: 0; }
.activity-dialog-photos img { display: block; width: 100%; height: auto; max-height: min(51dvh, 29rem); object-fit: contain; background: #243630; border-radius: .65rem; }
.activity-dialog-photos figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem .7rem; padding: .45rem .1rem; font-size: .82rem; color: var(--muted); }
.activity-gallery-controls { display: flex; justify-content: center; align-items: center; gap: .8rem; margin-top: .25rem; }
.activity-gallery-controls button { min-width: 2.6rem; min-height: 2.5rem; }
.activity-gallery-controls span { min-width: 3.5rem; text-align: center; font-size: .86rem; }
.activity-dialog-body { padding: .8rem 1.2rem 1.15rem; }
.activity-dialog-body p { margin: 0 0 .7rem; line-height: 1.5; }
.activity-dialog-body h3 { color: #285747; font-size: 1rem; margin: .75rem 0 .35rem; }
.activity-dialog-body h3:first-child { margin-top: 0; }
.activity-dialog-body ul { padding-left: 1.15rem; margin: .4rem 0 .85rem; }
.activity-dialog-large { width: min(92rem, calc(100% - 2rem)); max-width: none; max-height: 92dvh; }
.activity-dialog-large .activity-dialog-header { position: sticky; top: 0; z-index: 1; background: #fffdf8; }
.activity-dialog-large .activity-dialog-photos img { height: min(67dvh, 50rem); max-height: none; }
.activity-dialog-large .activity-dialog-body { padding: 1rem clamp(1rem, 2vw, 1.6rem) 1.25rem; }
.activity-dialog-large .activity-dialog-body p { max-width: 65ch; font-size: 1rem; }
.activity-dialog-large .activity-gallery-controls button { min-width: 2.75rem; min-height: 2.75rem; }
@media (min-width: 801px) {
    .activity-dialog-large .activity-dialog-content:has(> .activity-dialog-body):has(> .activity-dialog-photos) {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.9fr);
    }
}
@media (max-width: 640px) {
    .activity-dialog-large { width: calc(100% - 1rem); }
    .activity-dialog-large .activity-dialog-photos img { height: auto; aspect-ratio: 3 / 2; max-height: 55dvh; }
}

.route-workspace { --route-ink: #285747; padding-top: 1.65rem; }
.route-workspace .back-link { display: inline-block; margin-bottom: .75rem; }
.route-hero { padding: clamp(1.2rem, 3vw, 2.3rem); background: #1b3a31; color: #fff9ec; border-radius: .9rem; }
.route-hero .eyebrow { color: #e2ba77; margin-bottom: .55rem; }
.route-hero h1 { font: 500 clamp(2rem, 4vw, 3.75rem)/1.05 Georgia, serif; }
.route-hero h1 + p { margin: .7rem 0 0; color: #e0e9df; }
.route-versions { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .6rem; margin-top: .9rem; }
.route-v1 { --route-ink: #21604f; --route-tint: #e8f2e8; }
.route-v2 { --route-ink: #864618; --route-tint: #f5e8d6; }
.route-v3 { --route-ink: #275a83; --route-tint: #e6edf4; }
.route-version { display: grid; gap: .3rem; align-content: start; padding: .9rem; border: 1px solid #d6ded2; border-radius: .6rem; background: #fffdf8; color: #20362e; text-decoration: none; overflow-wrap: anywhere; }
.route-version[aria-current="page"] { border-color: var(--route-ink); background: var(--route-tint, #e9efe7); box-shadow: inset 0 -3px var(--route-ink); }
.route-version:hover { border-color: var(--route-ink); }
.route-version strong { font-size: 1.13rem; }
.route-version > span:last-child { color: #4b6358; font-size: .86rem; }
.route-chip { display: inline-block; width: fit-content; border-radius: 1rem; padding: .2rem .52rem; color: var(--route-ink); background: var(--route-tint, #e9efe7); font-size: .72rem; font-weight: 750; }
.route-tradeoff { margin: .75rem 0 0; padding: .65rem .8rem; background: #f0ece1; border-radius: .5rem; color: #4b4739; line-height: 1.45; }
.route-tradeoff strong { margin-right: .35rem; }
.route-days { margin: .85rem 0; }
.route-layout { display: grid; grid-template-columns: minmax(0, 1.13fr) minmax(0, 1fr); gap: .85rem; align-items: start; }
.route-day { min-width: 0; }
.route-day .eyebrow { margin: 0 0 .4rem; }
.route-compare-day { display: grid; gap: .6rem; margin-top: .8rem; }
.route-compare-day.has-proposal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.route-day-card { min-width: 0; border: 1px solid #d9dfd4; padding: .75rem; border-radius: .55rem; overflow-wrap: anywhere; }
.route-day-card h3 { font-size: 1rem; margin: .4rem 0; }
.route-day-card p { font-size: .85rem; margin: .3rem 0; line-height: 1.45; color: var(--muted); }
.route-day-card a { font-size: .83rem; }
.route-difference { margin: .65rem 0 0; padding: .58rem .7rem; background: #f4ede0; border-radius: .5rem; font-size: .9rem; line-height: 1.45; }
.route-stops { margin: .8rem 0 0; padding: 0; list-style: none; }
.route-stops > li { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: .45rem; padding: .7rem 0; border-top: 1px solid #dce2d9; scroll-margin-top: 1rem; }
.route-stops > li > div { min-width: 0; flex: 1 1 12rem; }
.route-stops h3 { font-size: 1rem; margin: 0; overflow-wrap: anywhere; }
.route-stops p { margin: .3rem 0 0; color: var(--muted); font-size: .88rem; overflow-wrap: anywhere; }
.route-map { min-width: 0; position: static; }
.route-map #itinerary-map { height: clamp(18rem, 49vh, 36rem); }
.route-overlay { font-size: .85rem; display: inline-block; margin: .35rem .55rem .65rem 0; }
.route-map-legend { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .3rem .6rem; color: var(--route-ink); font-size: .8rem; }
.route-map-legend > span { color: var(--route-ink); }
.route-map-legend i { display: inline-block; width: 1rem; height: .2rem; vertical-align: middle; background: var(--route-ink); border-radius: .3rem; }
.route-all-days { margin-top: .9rem; }
.route-day-list { list-style: none; padding: 0; margin: .65rem 0 0; }
.circuit-idea-jumps { display: flex; flex-wrap: wrap; gap: .35rem; }
.circuit-idea-jumps a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    min-height: 2.5rem;
    padding: .3rem .6rem;
    border: 1px solid #cbd7cb;
    border-radius: .45rem;
    color: var(--green);
    font-size: .83rem;
    font-weight: 700;
    text-decoration: none;
}
.circuit-idea-jumps a:hover { background: #eef4ef; }
.circuit-idea-group { margin-top: 1.1rem; scroll-margin-top: 1rem; }
.circuit-idea-group h3 { margin: 0 0 .45rem; color: #36574c; font-size: .95rem; }
.circuit-idea-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 17.5rem), 1fr));
    gap: .55rem;
    list-style: none;
    margin: 0;
    padding: 0;
}
.circuit-idea-grid > li { min-width: 0; }
.circuit-idea-card {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    height: 100%;
    padding: .65rem;
    border: 1px solid #cbd7cb;
    border-radius: .55rem;
    background: #fffdf8;
    color: #213e34;
    text-decoration: none;
}
.circuit-idea-card:hover { background: #eef4ef; border-color: #7b9b88; }
.circuit-idea-card:focus-visible { outline: 2px solid #2a6955; outline-offset: 2px; }
.circuit-idea-card > img { display: block; width: 100%; aspect-ratio: 3 / 2; border-radius: .35rem; object-fit: cover; }
.circuit-idea-copy { display: grid; align-content: start; grid-template-columns: minmax(0, 1fr); min-width: 0; flex: 1; gap: .24rem; }
.circuit-idea-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .95rem; }
.circuit-idea-kind { color: #49675b; font-size: .73rem; font-weight: 750; }
.circuit-idea-preview {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    overflow-wrap: anywhere;
    color: var(--muted);
    font-size: .83rem;
    line-height: 1.35;
}
.circuit-idea-action { margin-top: .15rem; color: var(--green); font-size: .79rem; font-weight: 700; }
.route-day-list a { display: flex; align-items: baseline; gap: .6rem; border-top: 1px solid #dce2d9; padding: .6rem .15rem; text-decoration: none; color: #2c5145; }
.route-day-list a:hover { background: #f1f5ee; }
.route-day-number { flex: 0 0 4.9rem; font-size: .82rem; font-weight: 740; }
.route-day-number time { color: #53685e; }
.route-overview-title { min-width: 0; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.route-overview-title small { background: #e6eee5; border-radius: .2rem; padding: .12rem .25rem; font-weight: 730; }
@media (max-width: 940px) {
    .route-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 570px) {
    .route-versions { grid-template-columns: minmax(0, 1fr); }
    .route-compare-day.has-proposal { grid-template-columns: minmax(0, 1fr); }
    .route-day-list a { display: grid; grid-template-columns: 4.3rem minmax(0, 1fr) auto; gap: .28rem .35rem; }
    .route-day-list .route-overview-title { grid-column: 2; }
    .route-day-list a > span:last-child { grid-column: 3; grid-row: 1; }
}

.route-quick { display: flex; flex-wrap: wrap; gap: .35rem .85rem; margin-top: .75rem; }
.route-quick a { color: #ffebc9; font-size: .86rem; text-underline-offset: .2em; }
.activity-dialog-body li a, .route-overlay, .route-day-card a, .route-map .map-note a {
    color: #285344;
    text-underline-offset: .16em;
}
@media (max-width: 570px) {
    .route-map .map-title { flex-wrap: wrap; }
    .route-map .map-title h2 { white-space: nowrap; }
    .route-map .view-switch { justify-content: flex-start; }
}

.route-v4 { --route-ink: #506b24; --route-tint: #eef1de; }
.route-v5 { --route-ink: #91433d; --route-tint: #f5e7e3; }
.route-v6 { --route-ink: #684e91; --route-tint: #eee8f5; }
.version-jumps { display: flex; flex-wrap: wrap; gap: .4rem; align-items: baseline; margin-top: .7rem; }
.version-jumps a { text-underline-offset: .16em; }
.personal-cta { background: #f4e1b9; border-color: #f4e1b9; color: #314136; }
.personal-cta:hover { background: #ffedc6; }
.personal-pick { display: flex; flex-wrap: wrap; align-items: end; gap: .4rem .6rem; padding: .55rem .65rem; margin: .7rem 0 0; border-radius: .5rem; background: #eff4ec; }
.personal-pick label { display: grid; gap: .2rem; min-width: 0; font-size: .8rem; font-weight: 650; }
.personal-pick select { width: 100%; margin: 0; }
.personal-note { font-size: .86rem; margin: .45rem 0; overflow-wrap: anywhere; }
.personal-success { padding: .55rem .7rem; background: #e3efe4; border-radius: .45rem; color: #21543f; margin: 0 0 .75rem; }
.personal-days small { font-size: .69rem; }
.personal-facts { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; margin: .6rem 0; }
.personal-facts dt { font-weight: 720; font-size: .81rem; color: var(--muted); }
.personal-facts dd { margin: .18rem 0 0; font-size: .92rem; }
.personal-tools { display: flex; flex-wrap: wrap; gap: .5rem .7rem; align-items: center; margin: .6rem 0; }
.personal-tools a { color: #285344; text-underline-offset: .16em; font-size: .87rem; }
.personal-subtitle { margin: .95rem 0 0; font-size: 1rem; }
.personal-workspace .route-stops { margin-top: .35rem; }
.personal-extra-badge { background: #f2e5ef; color: #70385f; margin-bottom: .27rem; }
.personal-pin { display: inline-block; width: .65rem; height: .65rem; border-radius: 50%; background: #8c3e74; margin-right: .15rem; }
.idea-coordinates { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; margin-top: .45rem; }
.idea-coordinates > label { flex: 1 1 8rem; min-width: 0; }

/* The journal is a continuous set of full-width sections. */
.day-dashboard { --day-border: #dce2e6; --day-paper: #fff; --day-link: #1758a5; }
.day-dashboard .journey-hero { grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); background: #183a39; }
.day-dashboard .journey-hero-copy { padding: clamp(1.3rem, 3vw, 2.65rem); }
.day-dashboard .journey-overview { background: #e9f3f4; border-color: #d4e2e4; }
.day-dashboard .journey-facts div { border-color: #8aadb1; }
.day-dashboard .journey-jumps {
    position: sticky; top: 0; z-index: 4; padding: .55rem .1rem;
    margin: .55rem 0 .65rem; background: #f7f5ed;
    border-bottom: 1px solid #d9ded8;
}
.day-dashboard .journey-jumps a { background: #e7eeec; }
.day-dashboard .journey-jumps .jump-ideas { background: #f4e8d2; }
.day-dashboard .journey-jumps a:hover { background: #dbe8e4; }
.day-dashboard .day-section { scroll-margin-top: 4.6rem; border-color: var(--day-border); background: var(--day-paper); }
.day-dashboard a[target="_blank"]:not(.journey-cover),
.personal-workspace a[target="_blank"], .route-workspace a[target="_blank"] { color: #1758a5; text-underline-offset: .2em; }
.day-dashboard a[target="_blank"]:hover, .route-workspace a[target="_blank"]:hover { color: #103c75; }
.day-sections { display: grid; gap: .9rem; min-width: 0; }
.day-dashboard .stays { margin: 0; }
.day-dashboard #itinerary-map { height: clamp(21rem, 49vh, 34rem); }
.day-dashboard #programme { border-top: 4px solid #377368; }
.day-dashboard #recommandations { border-top: 4px solid #b57a36; }
.day-dashboard #hebergements { border-top: 4px solid #6a769e; }
.day-dashboard #restaurants { border-top: 4px solid #a8665e; }
.day-dashboard .section-title h2 { font-size: clamp(1.3rem, 2vw, 1.85rem); }
.day-dashboard .section-title .eyebrow { color: #48625f; }

.schedule-head, .schedule-row {
    display: grid; grid-template-columns: 5rem minmax(0, 1.1fr) minmax(0, 1.35fr) 7rem;
    gap: .7rem; align-items: start;
}
.schedule-head {
    padding: .65rem .7rem; margin: .85rem 0 0; border-radius: .5rem;
    background: #eef3f5; color: #49616b; font-size: .79rem; font-weight: 750;
}
.day-dashboard .timeline { margin: .45rem 0 .75rem; }
.day-dashboard .step { padding: .65rem .7rem; border-top: 1px solid var(--day-border); }
.day-dashboard .step:first-child { border-top: 0; }
.day-dashboard .step-period { color: #285850; background: #e9f1ee; margin: 0 0 .55rem; }
.schedule-activity { display: flex; align-items: center; min-width: 0; gap: .65rem; }
.schedule-activity .step-heading { min-width: 0; }
.schedule-activity .step-heading h3 { white-space: normal; overflow-wrap: anywhere; }
.schedule-thumb { display: block; flex: 0 0 min(46%, 10rem); width: min(46%, 10rem); aspect-ratio: 3 / 2; padding: 0; border: 0; border-radius: .4rem; background: #ecf3ee; overflow: clip; }
.schedule-thumb img { width: 100%; height: 100%; display: block; object-fit: cover; }
.schedule-detail { min-width: 0; }
.schedule-detail .step-notes { margin-top: 0; font-size: .9rem; }
.schedule-detail .step-links { margin-top: .25rem; }
.schedule-map { justify-self: start; }
.schedule-manage { display: grid; grid-template-columns: minmax(0, 1fr); gap: .25rem; margin-left: 5.7rem; }
.schedule-manage .subpanel, .schedule-manage .step-manage { margin-top: .25rem; }
.schedule-manage > details > summary { color: #4d6570; font-size: .8rem; width: fit-content; }
.schedule-manage:empty { display: none; }

.day-dashboard .idea-list { grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); }

.day-table { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; margin-top: .65rem; }
.day-table thead { background: #eef3f5; color: #435c68; font-size: .79rem; }
.day-table :is(td, th) { text-align: left; vertical-align: top; padding: .65rem .7rem; overflow-wrap: anywhere; }
.day-table tbody :is(td, th) { border-bottom: 1px solid var(--day-border); font-size: .88rem; line-height: 1.42; }
.day-table tbody tr:nth-child(even) { background: #f8fafb; }
.day-table tbody tr.lodging-selected { background: #edf5ec; }
.day-table thead th:first-child { width: 19%; }
.lodging-table thead th:nth-child(4) { width: 18%; }
.restaurant-table thead th:nth-child(2) { width: 43%; }
.restaurant-table thead th:nth-child(3) { width: 17%; }
.table-links { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .65rem; }
.lodging-table .lodging-offer-heading { flex-wrap: wrap; justify-content: start; }
.lodging-table .lodging-price, .lodging-table .lodging-nightly, .lodging-table .lodging-meta { margin: 0 0 .2rem; }
.lodging-table .lodging-links { margin: 0; }
.lodging-table .lodging-controls { margin-top: .4rem; }
.lodging-table .availability-form { max-width: 100%; }
.lodging-table .availability-form select { width: 100%; }
.day-dashboard .journey-gallery { grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }

@media (max-width: 820px) {
    .schedule-head, .schedule-row { grid-template-columns: 3.45rem minmax(0, 1.05fr) minmax(0, 1.15fr) 6rem; gap: .4rem; }
    .schedule-manage { margin-left: 3.85rem; }
    .day-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
    .day-table, .day-table tbody { display: block; }
    .day-table tbody tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: .5rem; border: 1px solid var(--day-border); border-radius: .55rem; }
    .day-table tbody :is(td, th) { display: block; width: auto; border: 0; padding: .32rem .55rem; min-width: 0; }
    .day-table tbody th { grid-column: 1 / -1; background: #eef3f5; border-radius: .45rem .45rem 0 0; }
    .day-table tbody td[data-label]::before { content: attr(data-label); display: block; color: #526773; font-size: .7rem; font-weight: 750; margin-bottom: .12rem; }
    .day-table tbody td:last-child, .restaurant-table td:nth-child(2) { grid-column: 1 / -1; }
}
@media (max-width: 570px) {
    .day-dashboard .journey-hero { grid-template-columns: minmax(0, 1fr); }
    .day-dashboard .journey-cover { min-height: 12rem; }
    .day-dashboard .journey-jumps { gap: .28rem; }
    .day-dashboard .journey-jumps a { padding: .24rem .4rem; font-size: .74rem; }
    .day-dashboard .day-section { scroll-margin-top: 5.15rem; }
    .day-dashboard .schedule-head { display: none; }
    .schedule-row { grid-template-columns: 2.8rem minmax(0, 1fr); }
    .schedule-detail, .schedule-map { grid-column: 2; }
    .schedule-manage { margin-left: 3.2rem; }
    .day-dashboard .step { padding: .55rem .25rem; }
    .route-versions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; }
    .route-version { padding: .6rem; }
    .route-version strong { font-size: .95rem; }
    .route-version > span:last-child { font-size: .76rem; }
}
@media (max-width: 340px) { .route-versions { grid-template-columns: minmax(0, 1fr); } }

.day-dashboard .map-panel { position: static; }

.circuit-workspace .route-hero { background: #173b3d; }
.circuit-workspace .route-hero h1 { font-size: clamp(1.9rem, 4vw, 3.35rem); }
.circuit-picker { margin: .8rem 0 1rem; }
.circuit-version-card { position: relative; min-width: 0; }
.circuit-version-card .cover-gallery-button { inset: .45rem .45rem auto auto; }
.circuit-picker .route-version { display: grid; height: 100%; padding: 0; gap: 0; overflow: clip; background: #fff; }
.circuit-picker .route-version[aria-current="page"] { background: var(--route-tint); box-shadow: inset 0 -4px var(--route-ink); }
.circuit-version-picture { position: relative; display: block; height: 8rem; background: #2e4b46 url('../images/trip-cover.svg') center / cover; }
.circuit-version-picture img { display: block; width: 100%; height: 100%; object-fit: cover; }
.circuit-version-picture .route-chip { position: absolute; left: .5rem; top: .5rem; }
.circuit-version-copy { display: grid; padding: .6rem .7rem .7rem; gap: .2rem; color: #3b554d; }
.circuit-version-copy strong { color: #18352c; font-size: 1rem; }
.circuit-version-copy > span { font-size: .82rem; line-height: 1.35; }
.circuit-summary-layout { grid-template-columns: minmax(0, .78fr) minmax(0, 1.35fr); }
.circuit-summary { border-top: 4px solid #467e77; }
.circuit-summary h2 { font: 500 clamp(1.6rem, 2.5vw, 2.4rem)/1.1 Georgia, serif; }
.circuit-summary-copy { margin: .55rem 0; color: #455d55; }
.circuit-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; margin: .8rem 0; }
.circuit-stats > div { display: flex; flex-direction: column-reverse; padding: .55rem .6rem; background: #eaf2f1; border-radius: .4rem; }
.circuit-stats dt { color: #455f5c; font-size: .75rem; font-weight: 650; }
.circuit-stats dd { font-weight: 760; font-size: 1.45rem; margin: 0; }
.circuit-wadi-trigger:not([hidden]) {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .35rem .65rem;
    flex-wrap: wrap;
    width: 100%;
    min-height: 2.75rem;
    padding: .5rem .65rem;
    border: 1px solid #a5c6bd;
    border-radius: .4rem;
    background: #e6f1ec;
    color: #20483c;
    text-align: left;
}
.circuit-wadi-trigger:hover { background: #d6eae1; }
.circuit-wadi-trigger > span { font-size: .8rem; text-decoration: underline; text-underline-offset: .15em; }
.circuit-wadi-dialog { width: min(38rem, calc(100% - 1rem)); }
.circuit-summary .circuit-wadi-dialog h2 { font-size: clamp(1.3rem, 4vw, 1.85rem); }
.circuit-wadi-note { color: #455d55; font-size: .85rem; }
.activity-dialog-body .circuit-wadi-list { list-style: none; padding: 0; margin: 0; }
.circuit-wadi-list > li { padding: .55rem 0; border-top: 1px solid #d5dfd2; }
.circuit-wadi-heading, .circuit-wadi-visit { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2rem .55rem; }
.circuit-wadi-heading { justify-content: space-between; }
.circuit-summary .circuit-wadi-heading h3 { margin: 0; font-size: 1rem; }
.circuit-wadi-heading a { font-size: .75rem; }
.activity-dialog-body .circuit-wadi-visit { margin: .28rem 0 0; font-size: .83rem; }
.circuit-wadi-visit time { font-weight: 650; }
.circuit-wadi-detail { flex-basis: 100%; color: #455d55; }
.circuit-wadi-badge { border-radius: 1rem; padding: .06rem .45rem; font-size: .75rem; font-weight: 650; }
.circuit-wadi-badge-popular { background: #dcece3; color: #204b3d; }
.circuit-wadi-badge-remote { background: #f4e6ce; color: #684615; }
.circuit-wadi-badge-accessible { background: #e7edf0; color: #304956; }
.circuit-summary h3 { font-size: .95rem; margin: .8rem 0 .35rem; }
.circuit-nights { display: flex; flex-wrap: wrap; gap: .3rem; margin: 0; padding: 0; list-style: none; }
.circuit-nights li { background: #e8f0ec; border-radius: 1rem; padding: .16rem .5rem; color: #304f45; font-size: .76rem; }
.circuit-summary-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .75rem; }
.circuit-budget { margin-top: 1rem; scroll-margin-top: 1rem; }
.circuit-budget-heading {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: .35rem .75rem;
    padding: .6rem .75rem;
    border-radius: .4rem;
    background: #e8f0ec;
    color: #214c3e;
}
.circuit-budget .circuit-budget-heading h3, .circuit-budget-heading p { margin: 0; }
.circuit-budget-heading p { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem; }
.circuit-budget-heading span { font-size: .76rem; }
.circuit-budget-heading strong { font-size: 1.16rem; }
.circuit-budget-categories, .circuit-budget-items { padding: 0; margin: .3rem 0 0; list-style: none; }
.circuit-budget-categories > li { border-bottom: 1px solid var(--line); }
.circuit-budget-categories > li > details > summary, .circuit-budget-empty, .circuit-budget-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: .5rem;
    padding: .3rem .15rem;
    font-size: .85rem;
}
.circuit-budget summary { color: #214c3e; cursor: pointer; font-weight: 700; }
.circuit-budget-categories > li > details > summary > span::before { content: '▸ '; }
.circuit-budget-categories > li > details[open] > summary > span::before { content: '▾ '; }
.circuit-budget-empty > :last-child, .circuit-budget-items { color: #455d55; }
.circuit-budget-items { margin: 0 .15rem .35rem .85rem; }
.circuit-budget-items > li + li { border-top: 1px solid var(--line); }
.circuit-budget-item > :first-child { overflow-wrap: anywhere; }
.circuit-budget-item-label { display: flex; align-items: baseline; gap: .4rem; min-width: 0; }
.circuit-budget-item-label > * { min-width: 0; }
.circuit-budget-item-place { font-size: .8rem; }
.circuit-budget-item-place::before { content: '· '; }
@media (min-width: 601px) {
    .circuit-budget-item-label > * { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .circuit-budget-item-place { flex: 0 1 auto; max-width: 48%; }
}
@media (max-width: 600px) {
    .circuit-budget-item-label { display: inline; }
}
.circuit-budget-item-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: .1rem .65rem; padding-bottom: .2rem; }
.circuit-budget-item-nights { font-weight: 650; }
.circuit-lodging-link { margin-left: auto; font-size: .76rem; font-weight: 700; color: #214c3e; }
.lodging-comparison .lodging-comparison-notes { max-width: 100ch; }
.lodging-comparison-table { --day-border: #d5dfd2; }
.lodging-comparison-table thead th:first-child { width: 30%; }
.lodging-comparison-table thead th:last-child { width: 14%; }
.lodging-comparison-table tbody :is(td, th) { vertical-align: middle; }
.lodging-comparison-table small { display: block; color: var(--muted); }
.lodging-comparison-table .lodging-comparison-over { color: #8b391c; }
.lodging-comparison-photo { flex: none; width: clamp(3.5rem, 7vw, 6rem); height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: .4rem; }
.lodging-comparison-detail { display: inline-block; margin-top: .8rem; }
.circuit-budget-uncovered {
    margin: .15rem 0 .4rem;
    padding: .35rem .55rem;
    border-radius: .35rem;
    background: #fae7e5;
    color: #8b2525;
    font-size: .8rem;
}
.circuit-budget-uncovered a { color: inherit; }
.circuit-budget-control, .circuit-budget-items small { font-size: .76rem; }
.circuit-budget-add { margin-top: .55rem; font-size: .85rem; }
.circuit-budget-form { display: grid; gap: .35rem; margin: .4rem 0; }
.circuit-budget-form label { display: grid; gap: .2rem; font-size: .82rem; }
.circuit-budget-form input:not([type="hidden"]), .circuit-budget-form select { margin: 0; padding: .4rem .5rem; }
.circuit-budget-form > div { display: flex; flex-wrap: wrap; gap: .35rem; }
.route-quick { align-items: center; }
.route-quick .route-quick-highlight {
    padding: .35rem .6rem;
    border-radius: .35rem;
    color: #163d30;
    background: #ffebc9;
    font-weight: 750;
}
.circuit-driving table { width: 100%; table-layout: fixed; border-collapse: collapse; margin-top: .6rem; font-size: .88rem; }
.circuit-driving :is(th, td) { padding: .38rem .55rem; border-bottom: 1px solid var(--line); text-align: left; }
.circuit-driving :is(thead, tfoot) { color: #214c3e; background: #e8f0ec; }
.circuit-driving tfoot { font-weight: 750; }
.circuit-driving tfoot :is(th, td) { border-top: 2px solid #467e77; }
.circuit-driving .circuit-driving-icon { text-align: center; }
.circuit-driving tbody tr:hover { background: #f1f5ee; }
.circuit-driving-day { width: 34%; }
.circuit-driving-time { width: 30%; }
.circuit-driving-vehicle { width: 3.5rem; }
.circuit-driving-night { width: 20%; }
.circuit-driving-mobile-night { display: none; }
.circuit-driving th a { display: flex; align-items: baseline; gap: .55rem; color: #214c3e; }
.circuit-driving time { flex: none; font-variant-numeric: tabular-nums; }
.circuit-driving-km { white-space: nowrap; font-variant-numeric: tabular-nums; }
.circuit-driving tbody td.circuit-driving-icon { padding-block: 0; }
.circuit-driving-trigger {
    min-width: 1.95rem;
    min-height: 1.85rem;
    padding: 0;
    border: 1px solid #dfc8d8;
    border-radius: .35rem;
    background: #f7edf4;
    color: #703365;
}
.circuit-driving-trigger:hover { background: #ebd8e6; }
.circuit-driving-trigger:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.circuit-driving-trigger svg { vertical-align: middle; }
.activity-dialog-body .circuit-4x4-options { list-style: none; padding: 0; }
.circuit-4x4-options li { padding: .6rem 0; border-bottom: 1px solid var(--line); }
.circuit-4x4-options li p { margin: .18rem 0 .25rem; }
.circuit-4x4-options a { display: block; width: fit-content; }
@media (min-width: 641px) {
    .circuit-driving th a span, .circuit-driving tbody td:first-of-type, .circuit-driving td.circuit-driving-night { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
@media (min-width: 801px) {
    .circuit-driving .activity-dialog-large .activity-dialog-content:has(> .activity-dialog-photos) {
        grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    }
}
@media (max-width: 640px) {
    .circuit-driving table { font-size: .8rem; }
    .circuit-driving :is(th, td) { padding: .35rem .25rem; overflow-wrap: anywhere; }
    .circuit-driving-day { width: 34%; }
    .circuit-driving-time { width: 25%; }
    .circuit-driving-vehicle { width: 2.35rem; }
    .circuit-driving th a { display: block; }
    .circuit-driving th a span { display: block; }
    .circuit-driving-night { display: none; }
    .circuit-driving-mobile-night { display: block; margin-top: .22rem; color: #455d55; font-size: .74rem; font-weight: 500; }
    .circuit-driving tfoot .circuit-driving-km { white-space: normal; }
}
.circuit-highlights {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: start;
    gap: .75rem;
    margin: .65rem 0 0;
    padding: 0;
    list-style: none;
}
.circuit-highlight-day { min-width: 0; border: 1px solid var(--line); border-radius: .55rem; }
.circuit-highlight-day > h3 { margin: 0; font-size: .91rem; }
.circuit-highlight-day > h3 a {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    padding: .55rem .65rem;
    border-radius: .5rem .5rem 0 0;
    background: #e8f0ec;
    color: #214c3e;
}
.circuit-highlight-day time { flex: none; font-variant-numeric: tabular-nums; }
.circuit-highlight-stops { margin: 0; padding: 0 .65rem; list-style: none; }
.circuit-highlight-stop + li { border-top: 1px solid var(--line); }
.circuit-highlight-name { display: flex; align-items: center; gap: .65rem; min-height: 2.6rem; padding: .4rem 0; color: #285344; font-size: .9rem; }
.circuit-highlight-photo { position: relative; display: block; flex: none; width: min(55%, 240px); border-radius: .45rem; }
.circuit-highlight-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: inherit; }
.circuit-highlight-photo span {
    position: absolute;
    inset: auto .3rem .3rem auto;
    padding: .15rem .4rem;
    border-radius: .3rem;
    background: #152d26e8;
    color: #fff;
    font-size: .73rem;
    line-height: 1.25;
}
.circuit-highlight-name:focus-visible { outline: 2px solid #285344; outline-offset: 2px; }
.circuit-highlight-day > h3 span, .circuit-highlight-title { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.circuit-day-variants { padding: .55rem .65rem; border-top: 1px solid var(--line); background: #edf4ef; border-radius: 0 0 .5rem .5rem; color: #214c3e; }
.circuit-day-variants > p { margin: 0 0 .2rem; font-size: .76rem; font-weight: 700; }
.circuit-day-variant { display: flex; justify-content: space-between; align-items: center; gap: .5rem; min-height: 2.25rem; color: inherit; font-size: .86rem; font-weight: 650; }
.circuit-day-variant > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.variant-dialog-body { min-width: 0; overflow-wrap: anywhere; }
.variant-dialog-body ol { padding-left: 1.3rem; }
.variant-dialog-body li { padding: .45rem 0; }
.variant-dialog-body li + li { border-top: 1px solid var(--line); }
.variant-dialog-body li > div:first-child { display: flex; align-items: baseline; flex-wrap: wrap; gap: .25rem .55rem; }
.variant-dialog-body time { font-variant-numeric: tabular-nums; }
.variant-dialog-body .variant-changed p { margin: .35rem 0; }
@media (min-width: 801px) {
    .variant-dialog-body { grid-column: 1; grid-row: 1; }
    .activity-dialog-photos:has(+ .variant-dialog-body) { grid-column: 2; grid-row: 1; }
}
@media (max-width: 1050px) { .circuit-highlights { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
    .circuit-highlights { grid-template-columns: minmax(0, 1fr); }
    .circuit-highlight-day > h3 span, .circuit-highlight-title { overflow-wrap: anywhere; white-space: normal; }
    .circuit-day-variant > span:first-child { overflow-wrap: anywhere; white-space: normal; }
}
.activity-upload { margin-top: .8rem; padding-top: .55rem; border-top: 1px solid #dce2dd; }
.activity-upload summary { cursor: pointer; font-weight: 740; color: #285344; }
.activity-upload form { margin-top: .55rem; }
.activity-upload small { color: var(--muted); }
.activity-upload input[type="file"] { max-width: 100%; }
.day-dashboard .step { padding-block: .43rem; }
.day-dashboard .step-period { padding-block: .3rem; margin-bottom: .42rem; }
.schedule-head, .schedule-row { grid-template-columns: 4.25rem minmax(0, 1.14fr) minmax(0, 1.17fr) minmax(0, .8fr) 6.3rem; gap: .55rem; }
.schedule-row .schedule-links { margin: 0; }
.schedule-manage { display: flex; flex-wrap: wrap; gap: .3rem .85rem; margin-left: 4.8rem; }
.schedule-manage > details[open] { flex: 1 1 100%; }
.schedule-detail .step-notes { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
.day-table :is(td, th) { padding-block: .48rem; }
.lodging-table .lodging-price, .lodging-table .lodging-meta { margin-bottom: .12rem; }
@media (max-width: 940px) {
    .circuit-summary-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 820px) {
    .schedule-head, .schedule-row { grid-template-columns: 3rem minmax(0, .95fr) minmax(0, 1fr) minmax(0, .8fr) 5.5rem; gap: .35rem; }
    .schedule-manage { margin-left: 3.35rem; }
}
@media (max-width: 570px) {
    .circuit-version-picture { height: 6.8rem; }
    .circuit-version-card .cover-gallery-button { inset: 4rem .35rem auto auto; min-height: 2.25rem; }
    .circuit-version-copy { padding: .5rem .55rem; }
    .circuit-version-copy > span { font-size: .74rem; }
    .schedule-row { grid-template-columns: 2.55rem minmax(0, 1fr); gap: .3rem; }
    .schedule-links { grid-column: 2; }
    .schedule-manage { margin-left: 2.85rem; }
    .schedule-detail .step-notes { display: block; }
    .day-table tbody :is(td, th) { padding-block: .27rem; }
}

.research-table thead th:first-child { width: 14rem; }
.research-table thead th:nth-child(3) { width: 18%; }
.research-table thead th:nth-child(4) { width: 26%; }
.research-table thead { background: #f6ede0; color: #624526; }
.research-thumb {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
    padding: 0;
    border: 0;
    border-radius: .5rem;
    background: #eeeade;
    cursor: zoom-in;
}
.research-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; }
.research-no-photo { display: grid; place-items: center; min-height: 6rem; background: #f2efe7; border-radius: .5rem; font-size: .72rem; }
.research-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .98rem; }
.research-story .idea-labels { margin-top: .18rem; }
.research-description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    font-weight: 400;
    margin: .18rem 0 0;
}
.research-links .table-links { gap: .35rem .65rem; }
.research-pick .personal-pick { margin: 0; padding: 0; background: transparent; }
.research-pick .personal-pick button { max-width: 100%; }
.research-pick .personal-pick select { padding: .36rem .48rem; }

@media (max-width: 820px) {
    .research-table tbody tr { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); padding: .45rem; }
    .research-table tbody .research-story { grid-column: 2; background: transparent; }
    .research-table tbody .research-links { grid-column: 1 / -1; }
    .research-name { white-space: normal; }
}

.schedule-thumb, .journey-photo, .lodging-thumb { cursor: zoom-in; }
.journey-photo, .lodging-thumb { display: block; width: 100%; padding: 0; border: 0; background: transparent; }
.day-dashboard .journey-gallery { grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: 1rem; }
.journey-gallery img { max-height: 23rem; }
.lodging-table thead th:first-child { width: 24%; }
.lodging-table thead th:nth-child(2) { width: 16%; }
.lodging-table thead th:nth-child(3) { width: 15%; }
.lodging-table :is(td, th), .research-table :is(td, th) { padding-block: .65rem; }
.lodging-property { display: flex; gap: .7rem; align-items: center; min-width: 0; }
.lodging-property .lodging-offer-heading { min-width: 0; }
.lodging-property strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lodging-thumb, .lodging-no-photo { position: relative; flex: 0 0 min(50%, 11rem); width: min(50%, 11rem); aspect-ratio: 3 / 2; }
.lodging-thumb img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: .55rem; }
.lodging-no-photo { display: grid; place-items: center; padding: .35rem; border-radius: .55rem; background: #eef1ec; font-size: .75rem; text-align: center; }
.lodging-count { display: flex; flex-wrap: wrap; gap: .25rem .65rem; margin: .85rem 0 .35rem; font-size: .88rem; }
.thumbnail-count { position: absolute; right: .25rem; bottom: .25rem; padding: .14rem .3rem; border-radius: .25rem; background: #243630; color: #fff; font-size: .68rem; }

@media (max-width: 820px) {
    .lodging-property strong { white-space: normal; }
    .lodging-table :is(td, th), .research-table :is(td, th) { padding-block: .42rem; }
}
@media (max-width: 570px) {
    .route-stops > li > .schedule-thumb { width: min(100%, 16rem); flex-basis: 100%; }
}
