.itinerary-admin {
    padding-bottom: 56px;
}

.itinerary-admin-header {
    align-items: flex-end;
    gap: 24px;
}

.itinerary-admin-header + .itinerary-editor {
    margin-top: 18px;
}

.itinerary-icon-actions button:focus-visible,
.itinerary-leg-stepper button:focus-visible,
.itinerary-icon-button:focus-visible,
.itinerary-create-mode button:focus-visible {
    outline: 3px solid rgba(8, 127, 122, 0.22);
    outline-offset: 2px;
}

.itinerary-crop-presets {
    display: flex;
    margin-top: 12px;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
}

.itinerary-crop-presets button {
    min-width: 58px;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid #aebdba;
    border-radius: var(--cb-radius-control);
    background: var(--cb-color-white);
    color: #244048;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
}

.itinerary-crop-presets button:hover,
.itinerary-crop-presets button:focus-visible,
.itinerary-crop-presets button.is-active {
    border-color: var(--cb-color-brand-strong);
    background: #e8f4f2;
    color: var(--cb-color-brand-hover);
    outline: 0;
}

.itinerary-crop-presets button:focus-visible {
    box-shadow: 0 0 0 3px rgba(8, 127, 122, 0.16);
}

.itinerary-admin-header p:not(.destination-city-heading-context),
.itinerary-panel-heading p,
.itinerary-subsection-heading p {
    margin: 5px 0 0;
    color: #617177;
}

.itinerary-header-actions,
.itinerary-form-actions,
.itinerary-icon-actions,
.itinerary-map-toolbar,
.itinerary-language-switch {
    display: flex;
    align-items: center;
    gap: 10px;
}

.itinerary-header-actions {
    justify-content: flex-end;
    flex-wrap: wrap;
}

.itinerary-button-icon {
    display: inline-flex;
    width: 18px;
    height: 18px;
}

.itinerary-button-icon svg,
.itinerary-icon-button svg,
.itinerary-icon-actions svg,
.itinerary-filter-form button svg {
    width: 100%;
    height: 100%;
}


.itinerary-admin-directory,
.itinerary-editor {
    border-radius: 0;
    box-shadow: 0 4px 16px rgba(24, 51, 57, 0.06);
    overflow: visible;
}




.itinerary-admin input[type="file"] {
    min-width: 0;
    width: 100%;
    padding: 5px;
}

.itinerary-admin input[type="file"]::file-selector-button {
    min-height: 30px;
    margin-right: 10px;
    padding: 5px 10px;
    border: 1px solid #aebdba;
    border-radius: 3px;
    background: #edf3f2;
    color: #244048;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 600;
}

.itinerary-create-mode {
    display: grid;
    grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.6fr);
}

.itinerary-create-modal .swal2-actions .swal2-styled {
    min-height: 42px;
    margin: 0 0 0 8px;
    padding: 9px 16px;
    border-radius: 6px;
    font-size: 14px;
    line-height: 1.2;
}

.destination-create-form [data-itinerary-create-panel][hidden] {
    display: none;
}

.destination-create-form [data-itinerary-create-panel] textarea {
    width: 100%;
    min-height: 220px;
    resize: vertical;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 13px;
    line-height: 1.45;
}

.itinerary-form-actions {
    justify-content: flex-end;
    margin-top: 22px;
}

.itinerary-autosave-status {
    min-width: 110px;
}

.itinerary-filter-form {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(190px, 1fr);
    align-items: flex-end;
    gap: 12px;
}

.itinerary-filter-form > label {
    width: auto;
}

.itinerary-filter-form > .itinerary-filter-search {
    grid-column: span 2;
    width: auto;
}

.itinerary-filter-form .catalog-mapping-search-field input,
.itinerary-filter-form select {
    min-height: var(--cb-control-height);
}

.itinerary-filter-form .catalog-mapping-search-field button {
    width: var(--cb-control-height);
    min-height: var(--cb-control-height);
    padding: 10px;
}

.itinerary-overview-tools {
    grid-template-columns: minmax(0, 1fr);
    margin: 0 0 18px;
}

.itinerary-overview-tools .itinerary-filter-form {
    grid-column: 1;
}

.itinerary-filter-summary {
    display: flex;
    align-items: center;
    align-self: stretch;
    gap: 14px;
    min-width: 0;
}

.itinerary-filter-summary .destination-overview-result-count {
    align-self: center;
}

.itinerary-media-info-form [data-itinerary-media-day-field][hidden] {
    display: none;
}

.itinerary-list-table .itinerary-row-subtitle {
    display: block;
    margin-top: 3px;
    color: #6b797e;
    font-size: 13px;
}

.itinerary-list-table {
    table-layout: fixed;
}

.itinerary-list-table .itinerary-list-col-status {
    width: 46px;
}

.itinerary-list-table .itinerary-list-col-title {
    width: 34%;
}

.itinerary-list-table .itinerary-list-col-duration {
    width: 82px;
}

.itinerary-list-table .itinerary-list-col-early-boarding {
    width: 78px;
}

.itinerary-list-table .itinerary-list-col-updated {
    width: 82px;
}

.itinerary-list-table .itinerary-list-col-action {
    width: 60px;
}

.itinerary-list-table .itinerary-title-column,
.itinerary-list-table .itinerary-route-column {
    min-width: 0;
    overflow-wrap: anywhere;
}

.itinerary-list-table .itinerary-status-column,
.itinerary-list-table .itinerary-duration-column,
.itinerary-list-table .itinerary-early-boarding-column,
.itinerary-list-table .itinerary-updated-column {
    text-align: center;
}

.itinerary-row-title-line {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.itinerary-early-boarding-column .itinerary-early-boarding-badge {
    justify-content: center;
    margin-left: 0;
    text-align: center;
}

.itinerary-empty-value {
    color: #9aa5a8;
}

.itinerary-checkbox-field > span {
    display: flex;
    align-items: center;
    min-height: 42px;
    gap: 8px;
    color: #24312d;
    font-weight: 400;
}

.itinerary-checkbox-field input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #19715c;
}

.itinerary-list-table .catalog-mapping-actions-column {
    width: 1%;
    min-width: 0;
    padding-right: 10px;
    padding-left: 10px;
    white-space: nowrap;
}

.itinerary-filter-reset {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding: 0 4px;
    color: #52666b;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.itinerary-filter-reset:hover,
.itinerary-filter-reset:focus-visible {
    color: var(--cb-color-brand-strong);
    text-decoration: underline;
}

.itinerary-destination-group + .itinerary-destination-group {
    border-top: 8px solid #edf2f1;
}

.itinerary-destination-group-heading,
.itinerary-region-group-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}

.itinerary-destination-group-heading {
    padding: 18px 20px 14px;
    background: var(--cb-color-ink-deep);
    color: var(--cb-color-white);
}

.itinerary-destination-group-heading h2,
.itinerary-region-group-heading h3 {
    margin: 0;
    letter-spacing: 0;
}

.itinerary-destination-group-heading h2 {
    color: inherit;
    font-size: 20px;
}

.itinerary-destination-group-heading span,
.itinerary-region-group-heading span {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 600;
}

.itinerary-destination-group-heading span {
    color: #d7e2e0;
}

.itinerary-region-group + .itinerary-region-group {
    border-top: 1px solid #c8d4d2;
}

.itinerary-region-group-heading {
    padding: 12px 20px;
    background: #eef4f2;
    color: #244048;
}

.itinerary-region-group-heading h3 {
    font-size: 16px;
}

.itinerary-region-group-heading span {
    color: #62757a;
}

.itinerary-route-endpoints {
    display: grid;
    grid-template-columns: minmax(0, auto) auto minmax(0, auto);
    align-items: center;
    justify-content: start;
    gap: 6px;
}

.itinerary-route-endpoints strong {
    font-size: 13px;
    font-weight: 600;
}

.itinerary-route-endpoints small {
    grid-column: 1 / -1;
    color: #6b797e;
    font-size: 12px;
}

.itinerary-route-arrow {
    color: var(--cb-color-brand-strong);
    font-size: 16px;
    font-weight: 700;
}

.itinerary-status-light {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid var(--cb-color-white);
    border-radius: 50%;
    background: var(--cb-color-warning);
    box-shadow: 0 0 0 1px #b65f05, 0 1px 3px rgba(15, 23, 42, 0.18);
    vertical-align: middle;
}

.itinerary-status-light.is-published {
    background: #2563eb;
    box-shadow: 0 0 0 1px #1d4ed8, 0 1px 3px rgba(15, 23, 42, 0.18);
}

.itinerary-status-light.is-draft_ai_reviewed {
    background: #7c3aed;
    box-shadow: 0 0 0 1px #6d28d9, 0 1px 3px rgba(15, 23, 42, 0.18);
}

.itinerary-status-light.is-published_reviewed {
    background: #218c5a;
    box-shadow: 0 0 0 1px #176d45, 0 1px 3px rgba(15, 23, 42, 0.18);
}

.itinerary-status-light.is-archived {
    background: #c53b3b;
    box-shadow: 0 0 0 1px #9f2929, 0 1px 3px rgba(15, 23, 42, 0.18);
}

.itinerary-editor {
    overflow: visible;
}

.itinerary-overview-form,
.itinerary-route-form,
.itinerary-media-editor {
    padding: 24px;
}

.itinerary-subsection-heading,
.itinerary-day-heading,
.itinerary-stop-topline {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.itinerary-panel-heading {
    margin-bottom: 22px;
}

.itinerary-panel-heading h2,
.itinerary-subsection-heading h4,
.itinerary-day-heading h3 {
    margin: 0;
}

.itinerary-language-switch {
    gap: 0;
    border: 1px solid #b9c7c5;
    border-radius: var(--cb-radius-control);
    overflow: hidden;
}

.itinerary-language-switch a {
    min-width: 44px;
    padding: 7px 10px;
    color: #41565c;
    text-align: center;
    text-decoration: none;
}

.itinerary-language-switch a + a {
    border-left: 1px solid #b9c7c5;
}

.itinerary-language-switch a.is-active {
    background: var(--cb-color-brand-strong);
    color: var(--cb-color-white);
}

.itinerary-form-grid,
.itinerary-day-fields,
.itinerary-stop-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px 18px;
}

.itinerary-form-grid .span-2,
.itinerary-day-fields .span-2,
.itinerary-stop-grid .span-2 {
    grid-column: 1 / -1;
}

.itinerary-copy-grid textarea {
    min-height: 96px;
}

.itinerary-route-workspace {
    display: grid;
    grid-template-columns: 190px minmax(430px, 1.1fr) minmax(370px, 0.9fr);
    align-items: stretch;
    border: 1px solid #d5dfdc;
}

.itinerary-day-list {
    min-width: 0;
    padding: 10px;
    border-right: 1px solid #d5dfdc;
    background: #f3f6f5;
}

.itinerary-day-list-item {
    display: flex;
    width: 100%;
    min-height: 82px;
    margin: 0 0 7px;
    padding: 11px 12px;
    flex-direction: column;
    align-items: flex-start;
    border: 1px solid transparent;
    border-radius: var(--cb-radius-control);
    background: transparent;
    color: var(--cb-color-ink-deep);
    cursor: pointer;
    text-align: left;
}

.itinerary-day-list-item:hover,
.itinerary-day-list-item:focus-visible {
    border-color: #a8c3c0;
    background: var(--cb-color-white);
}

.itinerary-day-list-item.is-active {
    border-color: var(--cb-color-brand-strong);
    background: var(--cb-color-white);
    box-shadow: inset 3px 0 0 var(--cb-color-brand-strong);
}

.itinerary-day-list-item span,
.itinerary-day-list-item small {
    color: #68777c;
    font-size: 12px;
}

.itinerary-day-list-item strong {
    display: -webkit-box;
    margin: 3px 0;
    overflow: hidden;
    font-size: 14px;
    line-height: 1.25;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.itinerary-day-editor {
    min-width: 0;
    padding: 20px;
    overflow: visible;
}

.itinerary-day-heading {
    align-items: center;
    margin-bottom: 18px;
}

.itinerary-day-heading > div:first-child > span {
    display: block;
    margin-bottom: 3px;
    color: #68777c;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.itinerary-day-heading h3 {
    font-size: 20px;
}

.itinerary-day-heading-actions,
.itinerary-leg-stepper {
    display: flex;
    align-items: center;
}

.itinerary-day-heading-actions {
    gap: 10px;
}

.itinerary-leg-stepper {
    gap: 0;
    padding-right: 10px;
    border-right: 1px solid #d5dfdc;
}

.itinerary-leg-stepper-position {
    min-width: 42px;
    color: #53666a;
    font-size: 12px;
    font-weight: 700;
    text-align: center;
}

.itinerary-icon-actions,
.itinerary-icon-button {
    flex: 0 0 auto;
}

.itinerary-icon-actions button,
.itinerary-leg-stepper button,
.itinerary-icon-button {
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    padding: 8px;
    border: 1px solid #b9c7c5;
    border-radius: 6px;
    background: var(--cb-color-white);
    color: #3d555b;
    cursor: pointer;
}

.itinerary-icon-actions button:hover,
.itinerary-leg-stepper button:hover,
.itinerary-icon-button:hover {
    border-color: var(--cb-color-brand-strong);
    color: var(--cb-color-brand-strong);
}

.itinerary-icon-actions button:disabled,
.itinerary-leg-stepper button:disabled {
    cursor: default;
    opacity: 0.32;
}

.itinerary-leg-stepper button {
    width: 32px;
    border-color: transparent;
    background: transparent;
}

.itinerary-leg-stepper button:hover,
.itinerary-leg-stepper button:focus-visible {
    background: #edf5f3;
}

.itinerary-icon-actions .is-danger,
.itinerary-icon-button.is-danger {
    border-color: #d9b4aa;
    color: #a23e27;
}

.itinerary-editor-subsection {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #d5dfdc;
}

.itinerary-subsection-heading {
    align-items: center;
    margin-bottom: 12px;
}

.itinerary-subsection-heading h4 {
    font-size: 17px;
}

.itinerary-subsection-heading p {
    font-size: 13px;
}

.itinerary-stop-editor,
.itinerary-section-editor {
    border-top: 1px solid #dce4e2;
}

.itinerary-stop-editor {
    padding: 14px 0 18px;
}

.itinerary-stop-editor:first-child,
.itinerary-section-editor:first-child {
    border-top: 0;
}

.itinerary-stop-topline {
    align-items: center;
    margin-bottom: 12px;
}

.itinerary-stop-topline select {
    width: 150px;
    min-height: 36px;
    padding-block: 5px;
}

.itinerary-stop-number {
    display: inline-flex;
    width: 28px;
    height: 28px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--cb-color-ink-deep);
    color: var(--cb-color-white);
    font-size: 12px;
    font-weight: 700;
}

.itinerary-source-state {
    margin-right: auto;
    color: #7c898d;
    font-size: 12px;
}

.itinerary-source-state.is-linked {
    color: #176441;
    font-weight: 700;
}

.itinerary-create-location-button:not(:disabled) {
    border-color: #73a49d;
    background: #edf7f6;
    color: var(--cb-color-brand-strong);
}

.itinerary-create-location-button:disabled {
    cursor: not-allowed;
    opacity: 0.38;
}

.itinerary-create-location-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
    text-align: left;
}

.itinerary-create-location-modal {
    width: min(620px, calc(100vw - 24px));
}

.itinerary-create-location-form .field,
.itinerary-create-location-form input,
.itinerary-create-location-form select {
    min-width: 0;
    width: 100%;
}

.itinerary-create-location-form .field:first-child,
.itinerary-create-location-form .field:nth-child(2),
.itinerary-create-location-coordinates {
    grid-column: 1 / -1;
}

.itinerary-create-location-coordinates {
    margin: 0;
    color: #637579;
    font-size: 12px;
}

.itinerary-source-magic-search {
    min-height: 42px;
}

.itinerary-source-magic-field {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 6px;
}

.itinerary-source-magic-field > label {
    display: block;
}

.itinerary-source-magic-control {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    align-items: center;
}

.itinerary-source-magic-control.has-admin-link {
    grid-template-columns: minmax(0, 1fr) 42px;
}

.itinerary-source-magic-control .select2-container {
    display: block;
    width: 100% !important;
    min-width: 0;
}

.itinerary-source-admin-link {
    display: inline-flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid #aeb8bd;
    border-radius: var(--cb-radius-control);
    background: var(--cb-color-white);
    color: #315760;
    text-decoration: none;
}

.itinerary-source-admin-link:hover,
.itinerary-source-admin-link:focus-visible {
    border-color: var(--cb-color-brand-strong);
    background: #edf7f6;
    color: #075f5b;
}

.itinerary-source-admin-link svg {
    width: 18px;
    height: 18px;
}

.itinerary-source-magic-search .select2-selection--single {
    box-sizing: border-box;
    height: 42px;
    min-height: 42px;
    padding: 0;
    border: 1px solid #b9c7c5;
    border-radius: var(--cb-radius-control);
    background: var(--cb-color-white);
}

.itinerary-source-magic-search .select2-selection--single .select2-selection__rendered {
    height: 40px;
    padding: 0 42px 0 11px;
    color: var(--cb-color-ink-deep);
    font-size: 15px;
    line-height: 40px;
}

.itinerary-source-magic-search .select2-selection--single.select2-selection--clearable .select2-selection__rendered {
    padding-right: 74px;
}

.itinerary-source-magic-search .select2-selection--single .select2-selection__clear {
    position: absolute;
    z-index: 2;
    top: 50%;
    right: 32px;
    width: 32px;
    height: 40px;
    margin: 0;
    line-height: 1;
    transform: translateY(-50%);
}

.itinerary-source-magic-search .select2-selection--single .select2-selection__arrow {
    display: block;
    width: 32px;
    height: 40px;
    top: 1px;
    right: 0;
}

.itinerary-source-magic-search .select2-selection--single .select2-selection__arrow b {
    display: none;
}

.itinerary-source-magic-search .select2-selection--single .select2-selection__arrow::before {
    position: absolute;
    top: 14px;
    right: 11px;
    width: 7px;
    height: 7px;
    border-right: 2px solid var(--cb-color-text-secondary);
    border-bottom: 2px solid var(--cb-color-text-secondary);
    content: '';
    transform: rotate(45deg);
}

.itinerary-source-magic-search.select2-container--open .select2-selection--single,
.itinerary-source-magic-search.select2-container--focus .select2-selection--single {
    border-color: var(--cb-color-brand-strong);
    box-shadow: 0 0 0 3px rgba(8, 127, 122, 0.16);
}

.itinerary-source-magic-search.select2-container--open .select2-selection--single .select2-selection__arrow::before {
    top: 18px;
    transform: rotate(225deg);
}

.destination-magic-search-dropdown .itinerary-source-magic-search-result {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2px 10px;
}

.destination-magic-search-dropdown .itinerary-source-magic-search-result .optiontype {
    margin-left: 0;
}

.destination-magic-search-dropdown .itinerary-source-magic-search-result small {
    grid-column: 1 / -1;
    color: #6b797e;
    font-size: 12px;
}

.itinerary-source-magic-search-dropdown .select2-results__option--highlighted .itinerary-source-magic-search-result small {
    color: rgba(255, 255, 255, 0.86);
}

.itinerary-admin .leaflet-control-layers label,
.itinerary-map-modal .leaflet-control-layers label {
    display: block;
    color: #344b51;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.6;
}

.itinerary-admin .leaflet-control-layers-base,
.itinerary-admin .leaflet-control-layers-overlays {
    display: grid;
    gap: 2px;
}

.itinerary-admin .leaflet-control-layers input.leaflet-control-layers-selector {
    width: 14px !important;
    height: 14px;
    min-width: 0;
    min-height: 0;
    margin: 0 5px 0 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    accent-color: var(--cb-color-brand-strong);
}

.itinerary-linked-url {
    display: flex;
    gap: 6px;
}

.itinerary-linked-url a {
    display: inline-flex;
    width: 42px;
    min-width: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid #b9c7c5;
    border-radius: var(--cb-radius-control);
    color: var(--cb-color-brand-strong);
    text-decoration: none;
}

.itinerary-section-editor {
    padding: 16px 0 18px;
}

.itinerary-section-editor-heading {
    display: grid;
    grid-template-columns: minmax(120px, 0.32fr) minmax(220px, 1fr) 36px;
    gap: 12px;
    align-items: end;
    margin-bottom: 10px;
}

.itinerary-section-editor-heading label,
.itinerary-section-editor-body {
    gap: 5px;
}

.itinerary-section-editor-heading label > span,
.itinerary-section-editor-body > span {
    color: #53666b;
    font-size: 12px;
    font-weight: 700;
}

.itinerary-section-editor-body {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.itinerary-section-editor-body textarea {
    width: 100%;
    min-height: 92px;
}

.itinerary-section-editor-body .tox-tinymce {
    border-color: #b9c7c5;
    border-radius: var(--cb-radius-control);
}

.itinerary-map-column {
    position: relative;
    min-width: 0;
    align-self: start;
    border-left: 1px solid #d5dfdc;
    background: #f3f6f5;
}

.itinerary-route-day-media {
    padding: 16px;
    border-top: 1px solid #d5dfdc;
    background: var(--cb-color-white);
}

.itinerary-route-day-media-heading {
    display: flex;
    min-height: 30px;
    margin-bottom: 10px;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.itinerary-route-day-media-heading h4 {
    margin: 0;
    color: var(--cb-color-ink-deep);
    font-size: 17px;
}

.itinerary-route-day-media-heading span {
    overflow: hidden;
    color: #617177;
    font-size: 12px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.itinerary-route-day-media .destination-media-grid {
    grid-template-columns: minmax(0, 1fr);
}

.itinerary-route-day-media .destination-media-card {
    max-width: none;
}

.itinerary-route-day-media .destination-media-card.is-inherited {
    border-color: #8ebdb7;
    background: #f4faf9;
}

.itinerary-route-day-media .destination-media-card-actions {
    flex-wrap: wrap;
}

.itinerary-route-day-media .destination-media-card-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
}

.itinerary-route-available-media {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #d5dfdc;
}

.itinerary-route-available-media h5 {
    margin: 0;
    color: #37575c;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.35;
}

.itinerary-route-available-media > p {
    margin: 3px 0 10px;
    color: #718087;
    font-size: 11px;
    line-height: 1.45;
}

.itinerary-route-available-media .destination-media-grid {
    margin-top: 0;
}

.itinerary-related-media-image {
    position: relative;
}

.itinerary-related-media-nav {
    position: absolute;
    top: 50%;
    display: inline-flex;
    width: 36px;
    height: 36px;
    align-items: center;
    justify-content: center;
    transform: translateY(-50%);
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    background: rgba(20, 37, 42, 0.72);
    color: var(--cb-color-white);
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
}

.itinerary-related-media-nav.is-previous {
    left: 10px;
}

.itinerary-related-media-nav.is-next {
    right: 10px;
}

.itinerary-related-media-nav:disabled {
    display: none;
}

.itinerary-related-media-counter {
    min-width: 38px;
    margin-right: auto;
    color: #617177;
    font-size: 12px;
    font-weight: 700;
    line-height: 30px;
    text-align: center;
}

.itinerary-route-day-media .destination-media-dropzone.is-disabled {
    border-style: solid !important;
    opacity: 0.7;
}

.itinerary-route-day-media .destination-media-dropzone.is-disabled .dz-message {
    cursor: default;
}

.itinerary-map-toolbar {
    min-height: 54px;
    justify-content: space-between;
    padding: 8px 10px;
    border-bottom: 1px solid #d5dfdc;
    background: var(--cb-color-white);
}

.itinerary-map-toolbar span {
    font-size: 13px;
    font-weight: 700;
}

.itinerary-route-map {
    z-index: 1;
    width: 100%;
    min-height: 605px;
}

.itinerary-route-progress {
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: itinerary-route-spin 0.75s linear infinite;
}

@keyframes itinerary-route-spin {
    to { transform: rotate(360deg); }
}



.itinerary-source-content-action {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 14px;
    border: 1px solid #c9ddda;
    background: #f2f8f7;
}

.itinerary-source-content-action strong,
.itinerary-source-content-action span {
    display: block;
}

.itinerary-source-content-action span {
    margin-top: 3px;
    color: #63777c;
    font-size: 12px;
}

.itinerary-source-content-preview {
    max-height: 52vh;
    overflow: auto;
    text-align: left;
}

.itinerary-source-content-preview img,
.itinerary-source-content-preview iframe {
    display: none;
}







































@media (max-width: 1320px) {
    .itinerary-route-workspace {
        grid-template-columns: 180px minmax(420px, 1fr);
    }

    .itinerary-map-column {
        grid-column: 1 / -1;
        border-top: 1px solid #d5dfdc;
        border-left: 0;
    }

    .itinerary-route-map {
        min-height: 480px;
    }

}

@media (max-width: 900px) {
    .itinerary-route-workspace {
        grid-template-columns: 1fr;
    }

    .itinerary-day-list {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        border-right: 0;
        border-bottom: 1px solid #d5dfdc;
    }

    .itinerary-day-list-item {
        min-width: 160px;
        margin-bottom: 0;
    }

    .itinerary-map-column {
        grid-column: auto;
    }

    .itinerary-filter-form {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .itinerary-filter-summary {
        grid-column: span 2;
    }

    .itinerary-overview-tools {
        grid-template-columns: 1fr;
    }

    .itinerary-section-editor-heading {
        grid-template-columns: minmax(120px, 0.35fr) minmax(220px, 1fr) 36px;
    }
}

@media (max-width: 1100px) {
    .itinerary-overview-layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .itinerary-overview-layout > .itinerary-overview-main,
    .itinerary-overview-layout > .destination-admin-context {
        grid-column: 1;
        grid-row: auto;
    }

    .itinerary-overview-layout > .destination-admin-context {
        order: 2;
        position: static;
    }

    .itinerary-list-table .itinerary-list-col-updated,
    .itinerary-list-table .itinerary-updated-column {
        display: none;
    }

    .itinerary-list-table {
        min-width: 0;
        table-layout: fixed;
    }

    .itinerary-list-table .itinerary-list-col-status {
        width: 42px;
    }

    .itinerary-list-table .itinerary-list-col-title {
        width: 34%;
    }

    .itinerary-list-table .itinerary-list-col-duration {
        width: 74px;
    }

    .itinerary-list-table .itinerary-list-col-early-boarding {
        width: 72px;
    }

    .itinerary-list-table .itinerary-list-col-action,
    .itinerary-list-table .catalog-mapping-actions-column {
        width: 52px;
    }
}

@media (max-width: 749px) {
    .itinerary-list-table tr {
        display: grid;
        grid-template-columns: auto auto minmax(0, 1fr) auto;
        gap: 8px 12px;
        padding: 13px 16px 14px;
    }

    .itinerary-list-table colgroup {
        display: none;
    }

    .itinerary-list-table td,
    .itinerary-list-table .itinerary-status-column,
    .itinerary-list-table .itinerary-title-column,
    .itinerary-list-table .itinerary-route-column,
    .itinerary-list-table .itinerary-duration-column,
    .itinerary-list-table .itinerary-early-boarding-column,
    .itinerary-list-table .catalog-mapping-actions-column {
        display: block;
        box-sizing: border-box;
        width: auto;
        min-width: 0;
        padding: 0;
    }

    .itinerary-list-table .itinerary-row-title-line,
    .itinerary-list-table .itinerary-row-subtitle,
    .itinerary-list-table .itinerary-route-endpoints {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .itinerary-list-table td::before {
        display: none;
    }

    .itinerary-list-table .itinerary-title-column {
        grid-column: 1 / -1;
        grid-row: 1;
        padding-right: 52px;
    }

    .itinerary-list-table .itinerary-row-title-line {
        align-items: flex-start;
    }

    .itinerary-list-table .itinerary-row-title-line > strong {
        font-size: 15px;
        line-height: 1.3;
    }

    .itinerary-list-table .itinerary-row-subtitle {
        margin-top: 4px;
        font-size: 12px;
        line-height: 1.3;
    }

    .itinerary-list-table .itinerary-route-column {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .itinerary-list-table .itinerary-route-endpoints {
        display: flex;
        align-items: baseline;
        gap: 4px;
        flex-wrap: wrap;
        line-height: 1.25;
    }

    .itinerary-list-table .itinerary-route-endpoints small {
        margin-top: 0;
    }

    .itinerary-list-table .itinerary-route-endpoints small::before {
        margin-right: 4px;
        content: "·";
    }

    .itinerary-list-table .itinerary-status-column,
    .itinerary-list-table .itinerary-duration-column,
    .itinerary-list-table .itinerary-early-boarding-column {
        align-self: center;
        white-space: nowrap;
    }

    .itinerary-list-table .itinerary-status-column {
        grid-column: 1;
        grid-row: 3;
    }

    .itinerary-list-table .itinerary-duration-column {
        grid-column: 2;
        grid-row: 3;
    }

    .itinerary-list-table .itinerary-early-boarding-column {
        grid-column: 3;
        grid-row: 3;
        justify-self: start;
    }

    .itinerary-list-table .catalog-mapping-actions-column {
        position: absolute;
        top: 13px;
        right: 16px;
        width: 40px;
    }
}

@media (max-width: 640px) {
    .itinerary-admin-header,
    .itinerary-panel-heading,
    .itinerary-subsection-heading,
    .itinerary-day-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .itinerary-day-heading-actions {
        width: 100%;
        justify-content: space-between;
    }

    .itinerary-header-actions {
        display: grid;
        width: 100%;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px;
    }

    .itinerary-header-actions .itinerary-header-form,
    .itinerary-header-actions .itinerary-action-button {
        width: 100%;
    }

    .itinerary-admin .button {
        min-height: 44px;
        padding-inline: 11px;
        font-size: 13px;
    }

    .itinerary-create-modal .swal2-actions .swal2-styled {
        min-height: 44px;
    }

    .itinerary-create-mode button {
        min-height: 44px;
    }

    .itinerary-filter-form .catalog-mapping-search-field input,
    .itinerary-filter-form .catalog-mapping-search-field button,
    .itinerary-filter-form select {
        min-height: var(--cb-control-height);
    }

    .itinerary-filter-form {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .itinerary-filter-form > .itinerary-filter-search {
        grid-column: 1 / -1;
    }

    .itinerary-filter-summary {
        grid-column: auto;
        align-items: flex-start;
        flex-direction: column;
        justify-content: center;
        gap: 1px;
    }

    .itinerary-filter-summary .destination-overview-result-count {
        align-self: flex-start;
    }

    .itinerary-icon-actions button,
    .itinerary-leg-stepper button,
    .itinerary-icon-button {
        width: 44px;
        height: 44px;
    }

    .itinerary-source-content-action {
        align-items: stretch;
        flex-direction: column;
    }

    .itinerary-source-content-action .button {
        width: 100%;
    }

    .itinerary-overview-form,
    .itinerary-route-form,
    .itinerary-media-editor{
        padding: 16px;
    }

    .itinerary-form-grid,
    .itinerary-day-fields,
    .itinerary-stop-grid {
        grid-template-columns: 1fr;
    }

    .itinerary-list-table .catalog-mapping-actions-column {
        width: 44px;
    }

    .itinerary-form-grid .span-2,
    .itinerary-day-fields .span-2,
    .itinerary-stop-grid .span-2 {
        grid-column: auto;
    }

    .itinerary-section-editor-heading {
        grid-template-columns: minmax(0, 1fr) 36px;
    }

    .itinerary-section-editor-heading .itinerary-section-title {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .itinerary-section-editor-heading .itinerary-icon-button {
        grid-column: 2;
        grid-row: 1;
    }

    .itinerary-stop-topline {
        flex-wrap: wrap;
    }

    .itinerary-source-state {
        order: 4;
        width: 100%;
    }

    .itinerary-create-location-form {
        grid-template-columns: 1fr;
    }

    .itinerary-create-location-form .field:first-child,
    .itinerary-create-location-form .field:nth-child(2),
    .itinerary-create-location-coordinates {
        grid-column: auto;
    }

    .itinerary-route-map {
        min-height: 360px;
    }

    .itinerary-map-toolbar {
        align-items: center;
    }

    .itinerary-map-toolbar .button {
        min-width: 0;
    }

    .itinerary-copy-grid .tox-menubar {
        display: none !important;
    }

    .itinerary-copy-grid .tox-editor-header {
        overflow: hidden;
    }




}

/* Shared public and PDF itinerary presentation. */
.itinerary-preview-tools {
    display: flex;
    box-sizing: border-box;
    width: min(1120px, calc(100% - 40px));
    margin: 20px auto 0;
    padding: 10px 12px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    border: 1px solid #d5dfdc;
    border-radius: 8px;
    background: var(--cb-color-white);
    box-shadow: 0 5px 18px rgba(23, 51, 58, 0.08);
}

.itinerary-preview-label,
.itinerary-preview-actions {
    display: flex;
    align-items: center;
}

.itinerary-preview-label {
    gap: 8px;
    color: var(--cb-color-ink-deep);
    font-size: 15px;
}

.itinerary-preview-actions {
    gap: 10px;
    flex-wrap: wrap;
}

.itinerary-inline-save-group {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.itinerary-inline-save-group[hidden],
.itinerary-inline-guidance[hidden],
.itinerary-preview-actions [data-itinerary-inline-standard-action][hidden] {
    display: none !important;
}

.itinerary-preview-tools.is-inline-editing {
    position: sticky;
    z-index: 80;
    top: 8px;
    border-color: #72aaa5;
    box-shadow: 0 8px 26px rgba(23, 51, 58, 0.16);
}

.itinerary-preview-tools .button.is-active {
    border-color: var(--cb-color-brand-strong);
    background: #e8f4f2;
    color: var(--cb-color-brand-hover) !important;
}

.itinerary-inline-guidance {
    display: flex;
    box-sizing: border-box;
    width: min(1120px, calc(100% - 40px));
    margin: 10px auto 0;
    padding: 10px 13px;
    align-items: center;
    gap: 12px;
    border: 1px solid #b7d8d5;
    border-radius: 7px;
    background: #edf7f6;
    color: #244048;
    font-size: 13px;
    line-height: 1.4;
}

.itinerary-inline-guidance strong {
    flex: 0 0 auto;
    color: var(--cb-color-brand-hover);
}

.itinerary-public-shell.is-inline-editing [data-itinerary-inline-key] {
    position: relative;
    min-width: 36px;
    border-radius: var(--cb-radius-control);
    cursor: text;
    transition: outline-color 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.itinerary-public-shell.is-inline-editing [data-itinerary-inline-key]:hover,
.itinerary-public-shell.is-inline-editing [data-itinerary-inline-key]:focus {
    outline: 2px dashed #0b8d87;
    outline-offset: 4px;
    box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.82), 0 0 0 9px rgba(8, 127, 122, 0.18);
}

.itinerary-public-shell.is-inline-editing .itinerary-hero [data-itinerary-inline-key]:hover,
.itinerary-public-shell.is-inline-editing .itinerary-hero [data-itinerary-inline-key]:focus {
    background: rgba(11, 36, 42, 0.72);
    box-shadow: 0 0 0 6px rgba(11, 36, 42, 0.72), 0 0 0 9px rgba(126, 213, 204, 0.72);
}

.itinerary-public-shell.is-inline-editing [data-itinerary-inline-key].is-inline-changed {
    outline: 2px solid #d58a00;
    outline-offset: 4px;
    background-color: rgba(255, 243, 214, 0.72);
    box-shadow: 0 0 0 6px rgba(255, 243, 214, 0.72);
}

.itinerary-public-shell.is-inline-editing .itinerary-hero [data-itinerary-inline-key].is-inline-changed {
    background: rgba(117, 69, 0, 0.76);
    box-shadow: 0 0 0 6px rgba(117, 69, 0, 0.76);
}

.itinerary-public-shell.is-inline-editing .itinerary-briefing-decisions[data-itinerary-inline-key] {
    outline-offset: 8px;
}

.itinerary-preview-tools .cb-button {
    width: auto;
    min-width: 0;
    height: auto !important;
    margin: 0 !important;
    padding: 9px 15px !important;
    float: none !important;
    white-space: nowrap;
}

.itinerary-preview-tools .itinerary-button-icon {
    display: inline-flex;
    width: 18px;
    height: 18px;
}

.itinerary-preview-tools .itinerary-button-icon svg {
    width: 100%;
    height: 100%;
}

.itinerary-website-section {
    margin-top: 0;
    padding-top: 0;
}

.itinerary-website-layout .mainArea {
    min-width: 0;
}

.itinerary-website-layout.is-full-width .mainArea {
    max-width: 100%;
    width: 100%;
    margin: 0 auto;
    padding-right: 0;
}

.itinerary-website-layout .itinerary-public-shell {
    padding: 0;
    background: transparent;
}

.itinerary-website-layout .itinerary-document {
    width: 100%;
    margin: 0;
}

.itinerary-public-shell {
    padding: 24px 0 56px;
    background: #edf1f0;
    color: var(--cb-color-ink-deep);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.58;
}

.itinerary-document {
    width: min(1120px, calc(100% - 40px));
    margin: 0 auto;
    overflow: hidden;
    background: var(--cb-color-white);
    box-shadow: 0 12px 36px rgba(23, 51, 58, 0.12);
}

img.is-itinerary-image-fallback {
    color: transparent;
}

.itinerary-public-day-image img.is-itinerary-image-fallback {
    width: 100%;
    aspect-ratio: var(--itinerary-image-fallback-ratio, 1 / 1);
}

.itinerary-hero {
    --itinerary-hero-overlay: rgba(8, 32, 37, 0.76);
    --itinerary-hero-text: var(--cb-color-white);
    position: relative;
    display: flex;
    min-height: 570px;
    align-items: flex-end;
    overflow: hidden;
    background: var(--cb-color-ink-deep);
}

.itinerary-hero > img,
.itinerary-hero > picture,
.itinerary-hero > picture > img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.itinerary-hero > img,
.itinerary-hero > picture > img {
    object-fit: cover;
}

.itinerary-hero.has-no-image {
    min-height: 360px;
}

.itinerary-hero.uses-light-overlay {
    --itinerary-hero-overlay: rgba(244, 248, 246, 0.84);
    --itinerary-hero-text: var(--cb-color-ink-deep);
}

.itinerary-hero-brand {
    position: absolute;
    z-index: 2;
    top: 30px;
    left: 34px;
    padding: 13px 17px 12px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 5px 18px rgba(8, 32, 37, 0.16);
}

.itinerary-hero-brand img {
    display: block;
    width: 230px;
    height: auto;
}

.itinerary-hero-copy {
    position: relative;
    z-index: 2;
    box-sizing: border-box;
    width: 100%;
    padding: 54px 64px 58px;
    background: var(--itinerary-hero-overlay);
    color: var(--itinerary-hero-text);
}

.itinerary-kicker {
    margin: 0 0 10px;
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
}

.itinerary-hero-copy > .itinerary-early-boarding-badge {
    min-height: 28px;
    margin: 0 0 12px;
    padding: 5px 8px;
    background: rgba(17, 24, 39, 0.68);
    color: #ffe29a;
    font-size: 12px;
}

.itinerary-hero h1 {
    max-width: 780px;
    margin: 0 0 16px;
    color: var(--itinerary-hero-text);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 52px;
    font-weight: 700;
    line-height: 1.04;
    letter-spacing: 0;
}

.itinerary-hero.has-long-title h1 {
    font-size: 46px;
}

.itinerary-hero.has-extra-long-title h1 {
    font-size: 40px;
}

.itinerary-hero-lead {
    max-width: 700px;
    margin: 0;
    font-size: 20px;
    line-height: 1.5;
}

.itinerary-content-band {
    padding: 46px 64px;
}

.itinerary-content-band + .itinerary-content-band {
    border-top: 1px solid #d6e1df;
}

.itinerary-content-band h2 {
    margin: 0 0 14px;
    color: var(--cb-color-ink-deep);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 34px;
    line-height: 1.2;
    letter-spacing: 0;
}

.itinerary-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.6fr);
    gap: 54px;
    align-items: start;
}

.itinerary-overview-copy {
    font-size: 17px;
}

.itinerary-rich-text > :first-child {
    margin-top: 0;
}

.itinerary-rich-text > :last-child {
    margin-bottom: 0;
}

.itinerary-rich-text p,
.itinerary-rich-text ul,
.itinerary-rich-text ol {
    margin: 0 0 14px;
}

.itinerary-rich-text h3,
.itinerary-rich-text h4 {
    margin: 18px 0 8px;
    color: var(--cb-color-ink-deep);
    font-size: 20px;
    line-height: 1.25;
}

.itinerary-planning-notice {
    grid-column: 1 / -1;
    margin-top: 0;
    padding: 18px 20px;
    border-left: 4px solid #f2c14e;
    background: #fff5df;
    font-size: 14px;
}

.itinerary-facts {
    margin: 0;
    border-top: 3px solid var(--cb-color-brand-strong);
}

.itinerary-facts div {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 14px;
    padding: 12px 0;
    border-bottom: 1px solid #d6e1df;
}

.itinerary-facts dt {
    color: #607177;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
}

.itinerary-facts dd {
    margin: 0;
    font-weight: 700;
}

.itinerary-route-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin-top: 30px;
    border: 1px solid #d6e1df;
}

.itinerary-route-summary-stop {
    position: relative;
    display: block;
    min-height: 126px;
    padding: 20px;
    border-right: 1px solid #d6e1df;
    border-bottom: 1px solid #d6e1df;
    color: inherit;
    text-decoration: none;
}

.itinerary-route-summary-stop:nth-child(3n) {
    border-right: 0;
}

.itinerary-route-summary-stop span,
.itinerary-route-summary-stop strong,
.itinerary-route-summary-stop small {
    display: block;
}

.itinerary-route-summary-stop span {
    margin-bottom: 8px;
    color: #d05d3e;
    font-size: 14px;
    font-weight: 700;
}

.itinerary-route-summary-stop strong {
    margin-bottom: 3px;
    color: var(--cb-color-brand-hover);
    font-size: 18px;
}

.itinerary-route-summary-stop small {
    color: #607177;
    font-size: 14px;
}

a.itinerary-route-summary-stop {
    padding-right: 54px;
    transition: background-color 0.18s ease, box-shadow 0.18s ease;
}

a.itinerary-route-summary-stop:hover,
a.itinerary-route-summary-stop:focus-visible {
    background: #f2f8f7;
    box-shadow: inset 0 0 0 2px #87bdb8;
    outline: none;
}

.itinerary-route-summary-action {
    position: absolute;
    right: 18px;
    bottom: 18px;
    display: inline-flex !important;
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    color: var(--cb-color-brand-strong);
}

.itinerary-route-summary-action svg {
    width: 18px;
    height: 18px;
}

.itinerary-route-map-action {
    display: flex;
    margin-top: 18px;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.itinerary-map-button {
    min-height: 42px;
    padding: 9px 14px;
    border-color: var(--cb-color-brand-strong);
    background: var(--cb-color-white);
    color: #075f5b !important;
    font-size: 14px;
}

.itinerary-map-button:hover,
.itinerary-map-button:focus-visible {
    background: var(--cb-color-brand-strong);
    color: var(--cb-color-white) !important;
}

.itinerary-map-button:focus-visible {
    outline: 3px solid rgba(8, 127, 122, 0.2);
    outline-offset: 2px;
}

.itinerary-map-button > span {
    display: inline-flex;
    width: 18px;
    height: 18px;
}

.itinerary-map-button svg {
    width: 100%;
    height: 100%;
}

.itinerary-map-button.is-compact {
    min-height: 36px;
    padding: 6px 10px;
    font-size: 13px;
}

.itinerary-map-modal {
    padding: 22px !important;
    border-radius: 6px !important;
}

.itinerary-map-modal .swal2-title {
    padding: 2px 48px 14px 4px;
    color: var(--cb-color-ink-deep);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 28px;
    line-height: 1.2;
    text-align: left;
}

.itinerary-map-modal-content {
    margin: 0 !important;
    padding: 0 !important;
}

.itinerary-map-modal-canvas {
    width: 100%;
    height: min(70vh, 720px);
    min-height: 480px;
    border: 1px solid #c9d6d3;
}

.itinerary-map-modal .leaflet-control-layers label {
    text-align: left;
}

.itinerary-public-days {
    padding: 0;
}

.itinerary-public-day-body {
    display: block;
}

.itinerary-public-days.is-access-preview {
    position: relative;
}

.itinerary-public-days.is-access-preview::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 120px;
    background: linear-gradient(to bottom, rgba(244, 248, 246, 0), #f4f8f6 88%);
    content: '';
    pointer-events: none;
}

.itinerary-access-gate {
    position: relative;
    z-index: 2;
    padding: 42px clamp(24px, 7vw, 96px) 52px;
    background: #f4f8f6;
    text-align: center;
}

.itinerary-access-gate > div {
    max-width: 820px;
    margin: 0 auto;
}

.itinerary-access-gate h2 {
    margin: 0 0 14px;
    color: var(--cb-color-ink-deep);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(27px, 3vw, 38px);
    line-height: 1.18;
    letter-spacing: 0;
}

.itinerary-access-gate p {
    margin: 0 auto 24px;
    color: #425c62;
    font-size: 17px;
    line-height: 1.6;
}

.itinerary-access-action {
    display: inline-flex;
    min-height: 46px;
    padding: 11px 20px;
    align-items: center;
    justify-content: center;
    background: var(--cb-color-brand-strong);
    color: var(--cb-color-white);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
}

.itinerary-access-action:hover,
.itinerary-access-action:focus-visible {
    background: #075f5c;
    color: var(--cb-color-white);
}

.itinerary-public-day {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    border-top: 1px solid #d6e1df;
    break-inside: avoid;
    scroll-margin-top: 86px;
}

.itinerary-public-day:first-child {
    border-top: 0;
}

.itinerary-public-day.is-even .itinerary-public-day-media {
    order: 0;
}

.itinerary-public-day.has-no-visual {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
}

.itinerary-public-day.has-no-visual.is-even {
    background: #f4f8f6;
}

.itinerary-public-day.has-no-visual .itinerary-public-day-copy {
    width: min(960px, 100%);
    margin: 0 auto;
    align-self: start;
}

.itinerary-public-day-media {
    position: relative;
    min-height: 0;
    overflow: hidden;
    background: #edf3f1;
}

.itinerary-public-day-image {
    position: relative;
    display: grid;
    grid-template-rows: auto auto;
    width: 100%;
    height: auto;
    min-width: 0;
    overflow: hidden;
}

.itinerary-public-day-image picture {
    display: flex;
    width: 100%;
    align-items: center;
    justify-content: center;
}

.itinerary-public-day-image img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: min(780px, 78vh);
    object-fit: contain;
}

.itinerary-public-day-map {
    z-index: 1;
    width: 100%;
    height: 100%;
    min-width: 0;
    background: #dbeae7;
}

.itinerary-public-day-map[hidden] {
    display: none !important;
}



.itinerary-image-caption {
    display: flex;
    width: 100%;
    box-sizing: border-box;
    flex-wrap: wrap;
    gap: 6px 16px;
    align-items: baseline;
    justify-content: space-between;
    padding: 7px 10px 8px;
    background: var(--cb-color-white);
    color: #4e6066;
    font-size: 11px;
    line-height: 1.35;
}

.itinerary-image-caption-text {
    flex: 1 1 260px;
    min-width: 0;
}

.itinerary-image-credit {
    flex: 0 0 auto;
    margin-left: auto;
    color: #334c52;
    font-size: inherit;
    white-space: nowrap;
    text-decoration: none;
}

a.itinerary-image-credit:hover,
a.itinerary-image-credit:focus-visible {
    color: var(--cb-color-brand-hover);
    text-decoration: underline;
}

.itinerary-public-day-copy {
    box-sizing: border-box;
    width: min(960px, 100%);
    margin: 0 auto;
    align-self: center;
    padding: 48px 54px;
}

.itinerary-day-label,
.itinerary-local-dish-kicker {
    margin: 0 0 8px;
    color: #d05d3e;
    font-weight: 700;
    text-transform: uppercase;
}

.itinerary-day-label {
    font-size: 14px;
}

.itinerary-public-day-copy > h3 {
    margin: 0 0 16px;
    color: var(--cb-color-ink-deep);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 30px;
    line-height: 1.18;
    letter-spacing: 0;
}

.itinerary-day-summary {
    margin: 0 0 14px;
    font-size: 17px;
}

.itinerary-day-metrics {
    display: inline-block;
    margin: 0 0 16px;
    padding-bottom: 4px;
    border-bottom: 2px solid #f2c14e;
    font-size: 14px;
    font-weight: 700;
}

.itinerary-day-meta {
    display: flex;
    margin-bottom: 16px;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
}

.itinerary-day-meta .itinerary-day-metrics {
    margin-bottom: 0;
}

.itinerary-day-section {
    margin-top: 16px;
}

.itinerary-day-section h4 {
    margin: 0 0 6px;
    color: var(--cb-color-ink-deep);
    font-size: 17px;
}

.itinerary-day-section.is-tip,
.itinerary-day-section.is-warning {
    padding: 14px 16px;
    border-left: 3px solid var(--cb-color-brand-strong);
    background: #edf6f4;
}

.itinerary-day-section.is-warning {
    border-left-color: #f2c14e;
    background: #fff5df;
}

.itinerary-day-links {
    display: flex;
    margin-top: 20px;
    flex-wrap: wrap;
    gap: 8px 14px;
}

.itinerary-harbour-contacts {
    display: grid;
    margin-top: 18px;
    gap: 10px;
}

.itinerary-harbour-contact {
    display: flex;
    padding: 9px 12px;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 14px;
    border-left: 3px solid var(--cb-color-brand-strong);
    background: #edf6f4;
    break-inside: avoid;
}

.itinerary-harbour-contact > strong {
    color: var(--cb-color-ink-deep);
    font-size: 14px;
}

.itinerary-harbour-contact small {
    margin-left: auto;
    color: #607177;
    font-size: 11px;
}

.itinerary-harbour-contact a {
    color: var(--cb-color-brand-hover);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.itinerary-harbour-contact a:hover,
.itinerary-harbour-contact a:focus-visible {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.itinerary-day-links a {
    display: inline-flex;
    min-height: 36px;
    padding: 7px 11px;
    align-items: center;
    border: 1px solid #a9cbc7;
    border-radius: var(--cb-radius-control);
    background: #f4f9f8;
    color: var(--cb-color-brand-hover);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    text-decoration: none;
}

.itinerary-day-links a:hover,
.itinerary-day-links a:focus-visible {
    border-color: var(--cb-color-brand-strong);
    background: #e8f4f2;
    color: #064d4a;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.itinerary-public-leg-navigation {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin-top: 26px;
    padding-top: 16px;
    border-top: 1px solid #d6e1df;
}

.itinerary-public-leg-navigation button {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    gap: 7px;
    justify-self: start;
    padding: 8px 12px;
    border: 1px solid #aebfbc;
    border-radius: 6px;
    background: var(--cb-color-white);
    color: var(--cb-color-brand-hover);
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.itinerary-public-leg-navigation button:last-child {
    justify-self: end;
}

.itinerary-public-leg-navigation button:hover,
.itinerary-public-leg-navigation button:focus-visible {
    border-color: var(--cb-color-brand-strong);
    color: var(--cb-color-brand-strong);
}

.itinerary-public-leg-navigation button:disabled {
    visibility: hidden;
}

.itinerary-public-leg-navigation svg {
    width: 17px;
    height: 17px;
}

.itinerary-public-leg-position {
    color: #68777c;
    font-size: 12px;
    font-weight: 700;
}

.itinerary-alternatives {
    columns: 2;
    column-gap: 44px;
}

.itinerary-alternatives h3 {
    break-after: avoid;
}

.itinerary-briefing-band {
    background: var(--cb-color-white);
}

.itinerary-briefing-decisions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.itinerary-briefing-decision {
    min-width: 0;
    padding: 18px 20px 19px;
    border-left: 4px solid var(--cb-color-brand-strong);
    border-radius: var(--cb-radius-control);
    background: #f1f6f4;
}

.itinerary-briefing-decision h3,
.itinerary-briefing-reference h3 {
    margin: 0 0 8px;
    color: var(--cb-color-ink-deep);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    line-height: 1.3;
    letter-spacing: 0;
}

.itinerary-briefing-decision .itinerary-rich-text {
    color: #29434a;
    font-size: 14px;
    line-height: 1.5;
}

.itinerary-briefing-reference {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
    gap: 28px;
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid #d6e1df;
    align-items: start;
}

.itinerary-briefing-stops ol,
.itinerary-briefing-check ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.itinerary-briefing-stops ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 24px;
}

.itinerary-briefing-stops li {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 2px 10px;
    min-width: 0;
    padding: 8px 0;
    border-bottom: 1px solid #e1e8e6;
}

.itinerary-briefing-stop-day {
    grid-row: 1 / span 2;
    color: var(--cb-color-brand-strong);
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
    text-transform: uppercase;
}

.itinerary-briefing-stops strong,
.itinerary-briefing-stops small {
    min-width: 0;
    overflow-wrap: anywhere;
}

.itinerary-briefing-stops strong {
    color: var(--cb-color-ink-deep);
    font-size: 13px;
    line-height: 1.3;
}

.itinerary-briefing-stops small {
    color: #68777c;
    font-size: 11px;
    line-height: 1.3;
}

.itinerary-briefing-check {
    padding: 18px 20px 20px;
    border-radius: var(--cb-radius-control);
    background: var(--cb-color-ink-deep);
    color: var(--cb-color-white);
}

.itinerary-briefing-check h3 {
    color: var(--cb-color-white);
}

.itinerary-briefing-check li {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 9px;
    padding: 6px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    font-size: 12px;
    line-height: 1.4;
}

.itinerary-briefing-check li:last-child {
    border-bottom: 0;
}

.itinerary-briefing-check li > span {
    display: inline-flex;
    width: 17px;
    height: 17px;
    color: #72c8b7;
}

.itinerary-briefing-check svg {
    width: 100%;
    height: 100%;
}

.itinerary-briefing-decision-rule {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid rgba(255, 255, 255, 0.32);
}

.itinerary-briefing-decision-rule strong,
.itinerary-briefing-decision-rule p {
    margin: 0;
}

.itinerary-briefing-decision-rule strong {
    display: block;
    margin-bottom: 4px;
    color: #72c8b7;
    font-size: 12px;
}

.itinerary-briefing-decision-rule p {
    font-size: 11px;
    line-height: 1.45;
}

.itinerary-local-dish {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    align-items: start;
    background: #f4f8f6;
}

.itinerary-local-dish:not(.has-no-media) {
    padding: 0;
}

.itinerary-local-dish-copy {
    grid-row: 2;
    padding: 46px 64px;
}

.itinerary-local-dish.has-no-media {
    grid-template-columns: minmax(0, 1fr);
}

.itinerary-local-dish.has-no-media .itinerary-local-dish-copy {
    grid-row: 1;
    max-width: 860px;
    padding: 0;
}

.itinerary-local-dish-kicker {
    font-size: 13px;
}

.itinerary-local-dish-intro {
    margin: 0 0 20px;
    font-size: 17px;
    line-height: 1.6;
}

.itinerary-local-dish-recipe {
    font-size: 15px;
}

.itinerary-local-dish-media {
    position: relative;
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
    grid-row: 1;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-radius: 0;
    background: #dfe9e6;
}

.itinerary-local-dish-media picture,
.itinerary-local-dish-media img {
    display: block;
    width: 100%;
    height: 100%;
}

.itinerary-local-dish-media picture,
.itinerary-local-dish-media > img {
    grid-row: 1;
}

.itinerary-local-dish-media img {
    object-fit: cover;
}

.itinerary-sources-band {
    color: #4e6066;
    font-size: 14px;
}

.itinerary-sources-band h3 {
    margin: 30px 0 8px;
    color: var(--cb-color-ink-deep);
    font-size: 20px;
}

.itinerary-sources-band ul {
    margin: 0;
    padding-left: 20px;
}

.itinerary-harbour-contact-sources li,
.itinerary-harbour-contact-sources a {
    overflow-wrap: anywhere;
}

.itinerary-document-signature {
    padding: 0;
    background: var(--cb-color-brand-strong);
    color: var(--cb-color-white);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.5;
}

.itinerary-signature-main {
    display: grid;
    grid-template-columns: 142px minmax(0, 1fr);
    gap: 28px;
    align-items: end;
    padding: 34px 54px 0;
}

.itinerary-signature-portrait {
    display: block;
    width: 142px;
    height: 202px;
    object-fit: cover;
    object-position: center top;
}

.itinerary-signature-copy {
    display: flex;
    padding-bottom: 28px;
    flex-direction: column;
    align-items: flex-start;
}

.itinerary-signature-copy p,
.itinerary-signature-copy strong,
.itinerary-signature-copy span,
.itinerary-signature-copy a {
    margin: 0;
    color: var(--cb-color-white);
    font: inherit;
}

.itinerary-signature-copy .itinerary-signature-greeting {
    width: 100%;
    margin-bottom: 18px;
    font-size: 15px;
    font-weight: 700;
}

.itinerary-signature-copy strong {
    font-weight: 700;
}

.itinerary-signature-company {
    display: flex;
    width: 100%;
    padding: 15px 54px;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.35);
    font: inherit;
}

.itinerary-signature-company > * {
    white-space: nowrap;
}

.itinerary-pdf-document-meta {
    display: flex;
    padding: 8px 54px;
    align-items: center;
    justify-content: center;
    gap: 18px;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    color: rgba(255, 255, 255, 0.88);
    font-size: 10px;
    line-height: 1.35;
}

.itinerary-pdf-copyright {
    padding: 9px 54px 11px;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    color: rgba(255, 255, 255, 0.82);
    font-size: 10px;
    line-height: 1.35;
    text-align: center;
}

@media (max-width: 760px) {
    .itinerary-preview-tools {
        width: calc(100% - 24px);
        margin-top: 12px;
        padding: 10px;
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .itinerary-preview-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .itinerary-inline-save-group {
        display: contents;
    }

    .itinerary-preview-actions [data-itinerary-inline-save] {
        grid-column: 1 / -1;
    }

    .itinerary-inline-guidance {
        width: calc(100% - 24px);
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }

    .itinerary-preview-actions form,
    .itinerary-preview-actions .button {
        width: 100% !important;
    }

    .itinerary-preview-actions > form:not([hidden]) {
        grid-column: 1 / -1;
    }

    .itinerary-preview-tools .button {
        min-height: 44px;
        padding-inline: 11px !important;
        font-size: 13px;
    }

    .itinerary-website-section {
        margin-top: 0;
        padding-top: 4px;
    }

    .itinerary-public-shell {
        padding-top: 0;
    }

    .itinerary-document {
        width: 100%;
        box-shadow: none;
    }

    .itinerary-document a::after {
        display: none !important;
        content: none !important;
    }

    .itinerary-document a[href]::after {
        display: none !important;
        margin: 0 !important;
        content: none !important;
    }

    .itinerary-route-map-action {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
    }

    .itinerary-route-map-action .itinerary-map-button {
        width: 100%;
    }

    .itinerary-hero {
        min-height: min(680px, 88vh);
    }

    .itinerary-hero.has-no-image {
        min-height: 300px;
    }

    .itinerary-hero-brand {
        top: 18px;
        left: 18px;
        padding: 10px 12px;
    }

    .itinerary-hero-brand img {
        width: 178px;
    }

    .itinerary-hero-copy {
        padding: 42px 24px 34px;
    }

    .itinerary-hero h1 {
        font-size: 40px;
    }

    .itinerary-hero-lead {
        font-size: 17px;
    }

    .itinerary-content-band {
        padding: 34px 24px;
    }

    .itinerary-content-band h2 {
        font-size: 29px;
    }

    .itinerary-overview-grid,
    .itinerary-public-day {
        grid-template-columns: 1fr;
    }

    .itinerary-overview-grid {
        gap: 30px;
    }

    .itinerary-route-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .itinerary-route-summary-stop,
    .itinerary-route-summary-stop:nth-child(3n) {
        border-right: 1px solid #d6e1df;
    }

    .itinerary-route-summary-stop:nth-child(even) {
        border-right: 0;
    }

    .itinerary-public-day:first-child {
        border-top: 1px solid #d6e1df;
    }

    .itinerary-public-day.is-even .itinerary-public-day-media {
        order: 0;
    }



    .itinerary-public-day.has-no-visual .itinerary-public-day-copy {
        width: 100%;
        margin: 0;
    }

    .itinerary-public-day-copy {
        padding: 34px 24px 42px;
    }

    .itinerary-public-day-copy > h3 {
        font-size: 28px;
    }

    .itinerary-hero.has-long-title h1,
    .itinerary-hero.has-extra-long-title h1 {
        font-size: 36px;
    }

    .itinerary-map-modal {
        padding: 14px !important;
    }

    .itinerary-map-modal .swal2-title {
        padding: 2px 42px 12px 2px;
        font-size: 23px;
    }

    .itinerary-map-modal-canvas {
        height: 68vh;
        min-height: 360px;
    }

    .itinerary-alternatives {
        columns: 1;
    }

    .itinerary-briefing-decisions,
    .itinerary-briefing-reference,
    .itinerary-briefing-stops ol {
        grid-template-columns: 1fr;
    }

    .itinerary-briefing-reference {
        gap: 24px;
    }

    .itinerary-local-dish {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .itinerary-local-dish-copy {
        padding: 34px 24px;
    }

    .itinerary-local-dish.has-no-media .itinerary-local-dish-copy {
        padding: 0;
    }

    .itinerary-signature-main {
        grid-template-columns: 96px minmax(0, 1fr);
        gap: 18px;
        padding: 28px 24px 0;
    }

    .itinerary-signature-portrait {
        width: 96px;
        height: 150px;
    }

    .itinerary-signature-company {
        padding: 14px 24px;
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }
}

@media (max-width: 460px) {
    .itinerary-public-leg-navigation button span {
        display: none;
    }

    .itinerary-public-leg-navigation button {
        width: 42px;
        min-width: 42px;
        justify-content: center;
        padding: 8px;
    }

    .itinerary-create-mode {
        grid-template-columns: 1fr;
    }

    .itinerary-route-summary {
        grid-template-columns: 1fr;
    }

    .itinerary-route-summary-stop,
    .itinerary-route-summary-stop:nth-child(even),
    .itinerary-route-summary-stop:nth-child(3n) {
        min-height: 0;
        border-right: 0;
    }

    .itinerary-signature-main {
        grid-template-columns: 1fr;
    }

    .itinerary-signature-portrait {
        display: none;
    }
}

@media print {
    @page {
        size: A4;
        margin: 8mm;
    }

    body {
        background: var(--cb-color-white) !important;
    }

    .site-header,
    .quick-links,
    .footer,
    .itinerary-preview-tools {
        display: none !important;
    }

    .itinerary-public-shell {
        padding: 0;
        background: var(--cb-color-white);
    }

    .itinerary-document {
        width: 100%;
        box-shadow: none;
    }

    .itinerary-document a::after,
    .itinerary-document a[href]::after {
        display: none !important;
        margin: 0 !important;
        content: none !important;
    }

    .itinerary-hero {
        height: 281mm;
        min-height: 281mm;
        break-after: page;
    }

    .itinerary-pdf-render .itinerary-hero-copy {
        padding-top: 36px;
        padding-bottom: 42px;
    }

    .itinerary-hero h1,
    .itinerary-hero.has-long-title h1,
    .itinerary-hero.has-extra-long-title h1 {
        max-width: 170mm;
        margin-bottom: 4mm;
        font-size: 32px;
        line-height: 1.12;
    }

    .itinerary-kicker {
        margin-bottom: 2.5mm;
        font-size: 11px;
    }

    .itinerary-hero-copy > .itinerary-early-boarding-badge {
        min-height: 0;
        margin-bottom: 3mm;
        padding: 1.4mm 2.4mm;
        font-size: 9px;
    }

    .itinerary-hero-lead {
        max-width: 165mm;
        font-size: 14px;
        line-height: 1.45;
    }

    .itinerary-overview-band {
        box-sizing: border-box;
        height: auto;
        min-height: 265mm;
        overflow: visible;
        padding: 12mm;
        break-inside: auto;
        break-after: page;
    }

    .itinerary-overview-grid {
        grid-template-columns: minmax(0, 1.35fr) minmax(58mm, 0.65fr);
        gap: 8mm;
    }

    .itinerary-content-band h2,
    .itinerary-public-day-copy > h3,
    .itinerary-local-dish-copy h2 {
        margin-bottom: 3mm;
        font-size: 24px;
        line-height: 1.2;
    }

    .itinerary-overview-copy,
    .itinerary-day-summary,
    .itinerary-local-dish-intro {
        font-size: 14px;
        line-height: 1.48;
    }

    .itinerary-rich-text p,
    .itinerary-rich-text ul,
    .itinerary-rich-text ol {
        margin-bottom: 2.5mm;
    }

    .itinerary-facts div {
        grid-template-columns: 26mm minmax(0, 1fr);
        gap: 3mm;
        padding: 2.3mm 0;
    }

    .itinerary-facts dt {
        font-size: 9px;
    }

    .itinerary-facts dd {
        font-size: 12px;
        line-height: 1.35;
    }

    .itinerary-planning-notice {
        padding: 3mm 3.5mm;
        font-size: 10px;
        line-height: 1.4;
        break-inside: avoid;
    }

    .itinerary-route-summary {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        margin-top: 4mm;
        break-inside: avoid;
    }

    .itinerary-route-summary-stop {
        min-height: 0;
        padding: 3mm;
    }

    .itinerary-route-summary-stop:nth-child(3n) {
        border-right: 1px solid #d6e1df;
    }

    .itinerary-route-summary-stop:nth-child(4n) {
        border-right: 0;
    }

    .itinerary-route-summary-stop span {
        margin-bottom: 1mm;
        font-size: 9px;
    }

    .itinerary-route-summary-stop strong {
        margin-bottom: 0.5mm;
        font-size: 11px;
        line-height: 1.25;
    }

    .itinerary-route-summary-stop small {
        font-size: 9px;
    }

    .itinerary-pdf-route-page {
        box-sizing: border-box;
        display: grid;
        grid-template-rows: auto minmax(0, 1fr) auto;
        height: 265mm;
        padding: 8mm 10mm 6mm;
        background: var(--cb-color-white);
        break-after: page;
    }

    .itinerary-pdf-route-page header {
        margin-bottom: 4mm;
    }

    .itinerary-pdf-route-page h2 {
        margin: 0;
        color: var(--cb-color-ink-deep);
        font-family: Georgia, 'Times New Roman', serif;
        font-size: 24px;
        line-height: 1.2;
    }

    .itinerary-pdf-route-map {
        width: 100%;
        min-height: 0;
        border: 0.3mm solid #d6e1df;
        background: #dbeae7;
    }

    .itinerary-pdf-route-page > p {
        margin: 2mm 0 0;
        color: #718083;
        font-size: 8px;
        text-align: right;
    }

    .itinerary-pdf-route-map .leaflet-control-attribution {
        padding: 0.5mm 1mm;
        font-size: 5.5px;
    }

    .itinerary-public-day {
        --itinerary-print-image-height: 82mm;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: var(--itinerary-print-image-height) auto;
        height: auto;
        min-height: 265mm;
        overflow: visible;
        break-inside: auto;
        break-after: page;
    }

    .itinerary-public-day.is-even .itinerary-public-day-media {
        order: 0;
    }

    .itinerary-public-day-media {
        display: flex;
        width: 100%;
        height: var(--itinerary-print-image-height);
        min-height: 0;
        align-items: flex-start;
        justify-content: center;
        background: var(--cb-color-white);
    }

    .itinerary-public-day-image {
        display: grid;
        grid-template-rows: minmax(0, 1fr) auto;
        width: 100%;
        max-width: 100%;
        height: 100%;
        max-height: 100%;
        min-height: 0;
        background: var(--cb-color-white);
    }

    .itinerary-public-day-image > img {
        width: 100%;
        max-width: none;
        height: 100%;
        max-height: none;
        min-height: 0;
        grid-row: 1;
        object-fit: cover;
    }

    .itinerary-local-dish-media > img {
        min-height: 0;
        grid-row: 1;
    }

    .itinerary-public-day-map {
        display: block;
        float: right;
        width: 72mm;
        height: 58mm;
        min-height: 0;
        margin: 4mm 0 4mm 5mm;
        border: 0.3mm solid #d6e1df;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .itinerary-public-day-map-page-break {
        display: none;
        width: 0;
        height: 0;
        break-before: auto;
        page-break-before: auto;
    }

    .itinerary-public-day-map .leaflet-control-attribution {
        padding: 0.5mm 1mm;
        font-size: 5.5px;
    }

    .itinerary-public-day-map .itinerary-print-map-label {
        padding: 0.8mm 1.2mm;
        border: 0;
        border-radius: 1mm;
        background: rgba(255, 255, 255, 0.9);
        box-shadow: 0 0.4mm 1.2mm rgba(0, 0, 0, 0.28);
        color: var(--cb-color-ink-deep);
        font-family: Arial, Helvetica, sans-serif;
        font-size: 6.5px;
        font-weight: 700;
        line-height: 1.15;
        white-space: nowrap;
    }

    .itinerary-public-day-map .itinerary-print-map-label::before {
        display: none;
    }

    .itinerary-image-caption {
        grid-row: 2;
        margin: 0;
        padding: 0.6mm 0 0;
        background: var(--cb-color-white);
        color: #718083;
        font-size: 7px;
        line-height: 1.15;
    }

    .itinerary-image-credit {
        color: inherit;
    }

    .itinerary-public-day-body {
        display: block;
        min-width: 0;
        min-height: 0;
    }

    .itinerary-public-day-body.has-route-map {
        display: block;
        padding: 0;
    }

    .itinerary-public-day-copy {
        width: auto;
        height: auto;
        margin: 0;
        align-self: start;
        overflow: visible;
        padding: 8mm 10mm;
    }

    .itinerary-public-day-body.has-route-map .itinerary-public-day-copy {
        height: auto;
        overflow: visible;
        padding: 8mm 10mm 0;
    }

    .itinerary-public-day.has-no-visual {
        grid-template-rows: auto;
    }

    .itinerary-public-day.has-no-media {
        grid-template-rows: auto;
    }

    .itinerary-public-day.has-no-visual .itinerary-public-day-copy {
        height: auto;
    }

    .itinerary-day-summary {
        margin-bottom: 3mm;
    }

    .itinerary-day-metrics {
        margin-bottom: 3mm;
        font-size: 12px;
    }

    .itinerary-day-meta {
        margin-bottom: 3mm;
    }

    .itinerary-day-section {
        margin-top: 3mm;
        font-size: 12.5px;
        line-height: 1.46;
        break-inside: auto;
        page-break-inside: auto;
        orphans: 3;
        widows: 3;
    }

    .itinerary-day-section h4 {
        margin-bottom: 1mm;
        font-size: 14px;
        break-after: avoid;
        page-break-after: avoid;
    }

    .itinerary-day-section.is-tip,
    .itinerary-day-section.is-warning {
        padding: 3mm;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .itinerary-day-links {
        clear: both;
        margin-top: 3mm;
        break-inside: avoid;
    }

    .itinerary-harbour-contacts {
        clear: both;
        margin-top: 3mm;
    }

    .itinerary-harbour-contact {
        padding: 1.8mm 2.5mm;
    }

    .itinerary-harbour-contact > strong,
    .itinerary-harbour-contact a {
        font-size: 10px;
    }

    .itinerary-content-band,
    .itinerary-document-signature {
        break-inside: avoid;
    }

    .itinerary-local-dish {
        --itinerary-print-image-height: 82mm;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        min-height: 265mm;
        padding: 0;
        align-items: start;
        background: var(--cb-color-white);
        break-before: page;
    }

    .itinerary-local-dish:not(.has-no-media) {
        grid-template-rows: var(--itinerary-print-image-height) auto;
    }

    .itinerary-local-dish-copy {
        grid-row: 2;
        padding: 8mm 12mm 12mm;
        background: #f4f8f6;
    }

    .itinerary-local-dish.has-no-media .itinerary-local-dish-copy {
        grid-row: 1;
        min-height: 265mm;
        padding: 12mm;
    }

    .itinerary-local-dish-media {
        display: grid;
        grid-row: 1;
        grid-template-rows: minmax(0, 1fr) auto;
        width: 100%;
        max-width: none;
        height: var(--itinerary-print-image-height);
        max-height: none;
        aspect-ratio: auto;
        border-radius: 0;
        background: var(--cb-color-white);
    }

    .itinerary-local-dish-media > img {
        width: 100%;
        max-width: none;
        height: 100%;
        max-height: none;
        min-height: 0;
        grid-row: 1;
        object-fit: cover;
    }

    .itinerary-local-dish-recipe,
    .itinerary-alternatives,
    .itinerary-sources-band {
        font-size: 12.5px;
        line-height: 1.46;
    }

    .itinerary-local-dish-recipe h3,
    .itinerary-local-dish-recipe h4,
    .itinerary-alternatives h3,
    .itinerary-alternatives h4,
    .itinerary-sources-band h3,
    .itinerary-sources-band h4 {
        margin: 3mm 0 1mm;
        font-size: 14px;
        line-height: 1.3;
    }

    .itinerary-briefing-band {
        box-sizing: border-box;
        min-height: 265mm;
        padding: 10mm 12mm;
        break-before: page;
        break-inside: auto;
    }

    .itinerary-briefing-band > h2 {
        margin-bottom: 5mm;
    }

    .itinerary-briefing-decisions {
        gap: 3mm;
    }

    .itinerary-briefing-decision {
        padding: 4.5mm 5mm;
        border-left-width: 1mm;
        break-inside: avoid;
    }

    .itinerary-briefing-decision h3,
    .itinerary-briefing-reference h3 {
        margin-bottom: 1.5mm;
        font-size: 12.5px;
    }

    .itinerary-briefing-decision .itinerary-rich-text {
        font-size: 11px;
        line-height: 1.45;
    }

    .itinerary-briefing-reference {
        grid-template-columns: minmax(0, 1.25fr) minmax(56mm, 0.75fr);
        gap: 6mm;
        margin-top: 6mm;
        padding-top: 5mm;
    }

    .itinerary-briefing-stops ol {
        column-gap: 5mm;
    }

    .itinerary-briefing-stops li {
        grid-template-columns: 20mm minmax(0, 1fr);
        gap: 0.5mm 2mm;
        padding: 1.5mm 0;
    }

    .itinerary-briefing-stop-day {
        font-size: 7.5px;
    }

    .itinerary-briefing-stops strong {
        font-size: 9px;
    }

    .itinerary-briefing-stops small {
        font-size: 7.5px;
    }

    .itinerary-briefing-check {
        padding: 4mm 4.5mm;
    }

    .itinerary-briefing-check li {
        grid-template-columns: 4mm minmax(0, 1fr);
        gap: 2mm;
        padding: 1.4mm 0;
        font-size: 8.5px;
        line-height: 1.35;
    }

    .itinerary-briefing-check li > span {
        width: 4mm;
        height: 4mm;
    }

    .itinerary-briefing-decision-rule {
        margin-top: 3mm;
        padding-top: 3mm;
    }

    .itinerary-briefing-decision-rule strong {
        margin-bottom: 1mm;
        font-size: 9px;
    }

    .itinerary-briefing-decision-rule p {
        font-size: 8px;
        line-height: 1.4;
    }

    .itinerary-document-signature {
        font-size: 11px;
        line-height: 1.45;
    }

    .itinerary-signature-copy .itinerary-signature-greeting {
        font-size: 12.5px;
    }

    .itinerary-signature-company {
        font-size: 10px;
    }

    .itinerary-pdf-copyright {
        font-size: 8px;
    }
}
