.itinerary-page {
    max-width:1280px;
    margin:0 auto;
    padding:48px 24px 72px;
    color:#243e30
}
.itinerary-page [hidden] {
    display:none!important
}
.itinerary-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    margin-bottom:24px
}
.itinerary-heading h1 {
    font-size:32px;
    margin:8px 0
}
.itinerary-eyebrow {
    letter-spacing:2px;
    font-size:12px;
    color:#7e6540;
    font-weight:700
}
.itinerary-actions {
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    align-items:center
}
.itinerary-actions a,.itinerary-link-button {
    color:#28543c;
    text-decoration:underline;
    text-underline-offset:4px
}
.itinerary-button,.itinerary-page button.itinerary-button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:12px 20px;
    background:#28543c;
    color:white!important;
    border:1px solid #28543c;
    border-radius:8px;
    font:inherit;
    font-weight:600;
    text-decoration:none;
    cursor:pointer;
    gap:8px
}
.itinerary-page button:disabled {
    opacity:.55;
    cursor:wait
}
.itinerary-panel,.itinerary-card {
    padding:24px;
    background:white;
    border:1px solid #e1e7e1;
    border-radius:12px;
    margin-bottom:20px;
    box-shadow:0 3px 14px #263e3006
}
.itinerary-panel h2 {
    font-size:21px;
    margin:0 0 12px;
    color:#28543c
}
.itinerary-storage-note {
    padding:16px 20px;
    background:#edf3ee;
    border-radius:8px;
    font-size:14px
}
.itinerary-storage-note a {
    font-weight:700;
    text-decoration:underline
}
.itinerary-message {
    padding:16px;
    background:#fff4da;
    border:1px solid #e4d0a2;
    border-radius:8px;
    margin-bottom:20px
}
.itinerary-fields {
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:20px
}
.itinerary-page label {
    display:block;
    font-weight:600;
    font-size:14px
}
.itinerary-page input,.itinerary-page textarea {
    display:block;
    width:100%;
    box-sizing:border-box;
    border:1px solid #cdd9cf;
    padding:11px;
    border-radius:6px;
    background:#fff;
    color:#243e30;
    font:inherit;
    margin-top:6px
}
.itinerary-page :focus-visible {
    outline:3px solid #b8cfb9;
    outline-offset:2px
}
.itinerary-description {
    grid-column:1/-1
}
.itinerary-columns {
    display:grid;
    grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);
    gap:24px;
    align-items:start
}
.itinerary-muted {
    font-size:13px;
    color:#687b6d;
    line-height:1.7
}
.itinerary-stop {
    position:relative;
    border:1px solid #dce5dd;
    border-radius:10px;
    padding:18px;
    margin:16px 0;
    background:#fcfdfb
}
.itinerary-stop.drag-over {
    outline:2px dashed #28543c
}
.itinerary-stop-top {
    display:flex;
    gap:14px;
    align-items:center
}
.itinerary-stop img,.itinerary-place img {
    width:76px;
    height:64px;
    object-fit:cover;
    border-radius:6px;
    background:#edf3ee
}
.itinerary-stop h3 {
    margin:0 0 4px;
    font-size:17px
}
.itinerary-stop p {
    margin:4px 0
}
.itinerary-stop-actions {
    display:flex;
    gap:8px;
    justify-content:flex-end;
    margin-top:10px
}
.itinerary-stop-actions button,.itinerary-place button,.itinerary-outline-button {
    background:#fff;
    border:1px solid #bccdbd;
    padding:7px 12px;
    border-radius:6px;
    color:#28543c;
    font:inherit;
    cursor:pointer
}
.itinerary-stop-fields {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
    margin-top:15px
}
.itinerary-stop-fields .itinerary-stop-note {
    grid-column:1/-1
}
.itinerary-link-button {
    border:0;
    background:none;
    padding:12px 0;
    cursor:pointer;
    font:inherit
}
.itinerary-picker {
    max-height:850px;
    overflow:auto
}
.itinerary-place {
    display:flex;
    gap:12px;
    align-items:center;
    padding:14px 0;
    border-top:1px solid #e6ece6
}
.itinerary-place div {
    flex:1;
    min-width:0
}
.itinerary-place h3 {
    font-size:15px;
    margin:0
}
.itinerary-place p {
    font-size:12px;
    color:#687b6d;
    margin:5px 0
}
.itinerary-place button[aria-pressed=true] {
    background:#edf3ee
}
.itinerary-save-bar {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:18px 24px;
    border:1px solid #dce5dd;
    border-radius:10px;
    background:#f4f7f1;
    position:sticky;
    bottom:12px;
    z-index:2
}
.itinerary-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px
}
.itinerary-card {
    margin:0;
    display:flex;
    flex-direction:column;
    gap:12px
}
.itinerary-card h3 {
    font-size:20px;
    margin:0
}
.itinerary-card p {
    margin:0;
    overflow-wrap:anywhere
}
.itinerary-card .itinerary-actions {
    margin-top:auto
}
.itinerary-list-heading {
    margin:32px 0 18px;
    font-size:24px
}
.itinerary-empty {
    padding:36px;
    text-align:center;
    border:1px dashed #bccdbd;
    background:#fafbf8;
    border-radius:10px
}
.itinerary-detail-heading {
    display:flex;
    justify-content:space-between;
    gap:20px;
    align-items:center
}
.itinerary-detail-heading p {
    white-space:pre-wrap
}
.itinerary-day-title {
    font-size:23px;
    margin:24px 0 14px
}
.itinerary-timeline-stop {
    border-left:3px solid #b0c4b2
}
.itinerary-order {
    min-width:32px;
    height:32px;
    border-radius:50%;
    display:grid;
    place-items:center;
    background:#28543c;
    color:white;
    font-weight:700
}
.itinerary-stop-note-text {
    white-space:pre-wrap;
    background:#f0f5ee;
    padding:12px;
    border-radius:5px
}
.itinerary-unavailable {
    color:#9b541e;
    font-size:13px
}
.itinerary-map {
    position:sticky;
    top:90px
}
.itinerary-map iframe {
    width:100%;
    height:330px;
    border:1px solid #dce5dd;
    border-radius:8px;
    margin:12px 0
}
.itinerary-sr-only {
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0)
}
@media(max-width:960px) {
    .itinerary-heading,.itinerary-detail-heading {
        align-items:flex-start;
        flex-direction:column
    }
    .itinerary-columns {
        grid-template-columns:1fr
    }
    .itinerary-grid {
        grid-template-columns:repeat(2,minmax(0,1fr))
    }
    .itinerary-map {
        position:static
    }
    .itinerary-picker {
        max-height:480px
    }
}
@media(max-width:600px) {
    .itinerary-page {
        padding:28px 16px 48px
    }
    .itinerary-heading h1 {
        font-size:26px
    }
    .itinerary-panel {
        padding:16px
    }
    .itinerary-fields,.itinerary-grid {
        grid-template-columns:1fr
    }
    .itinerary-stop {
        padding:13px
    }
    .itinerary-stop-fields {
        grid-template-columns:1fr 1fr
    }
    .itinerary-stop-top {
        align-items:flex-start
    }
    .itinerary-save-bar {
        padding:12px;
        bottom:6px
    }
    .itinerary-save-bar span {
        font-size:12px
    }
    .itinerary-actions {
        gap:14px;
        font-size:14px
    }
}
.itinerary-stop-top>img {
    width:76px;
    height:64px;
    object-fit:cover;
    flex:0 0 76px;
    max-width:76px;
    border-radius:6px;
    background:#edf3ee
}
.itinerary-stop-top>div {
    min-width:0;
    flex:1
}
.itinerary-stop-top h3 {
    overflow-wrap:anywhere;
    font-size:17px;
    line-height:1.5;
    margin:0 0 4px
}
.itinerary-page {
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif
}
.itinerary-page select{display:block;width:100%;box-sizing:border-box;border:1px solid #cdd9cf;padding:11px;border-radius:6px;background:#fff;color:#243e30;font:inherit;margin:6px 0 12px}.tour-tool-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.tour-day-summary{padding:14px 0;border-top:1px solid #dce5dd}.tour-day-summary h3{font-size:16px;margin:0 0 8px}.tour-route-link{display:block;margin:10px 0;color:#28543c;text-decoration:underline;overflow-wrap:anywhere}.tour-warning{color:#9b541e;font-size:13px}.tour-stop-map{margin:12px 0}
@media(max-width:600px){.tour-tool-fields{grid-template-columns:1fr}}
@media(max-width:600px){.itinerary-save-bar{flex-wrap:wrap}.itinerary-save-bar>span{flex-basis:100%}.itinerary-save-bar>button{flex:1;min-width:0}.itinerary-stop-actions{flex-wrap:wrap}}
.tour-sign-in{max-width:760px;margin:0 auto}.tour-sign-in h1{font-size:28px;line-height:1.4}.tour-sign-in .itinerary-actions{margin-top:24px}.tour-sign-in p{line-height:1.7}.tour-add-actions{padding-top:20px;border-top:1px solid #dce5dd}.tour-sign-in form .itinerary-button{margin:20px 0}
