/* PORTAL 4.0 Saved + My Trips palette refinement — local candidate only.
   Load after saved.css, saved-sharing.css and trips.css. Other routes are untouched. */
.ec-saved-page,
.ec-trips-page {
  --tc-ink: #263a33;
  --tc-green: #285d49;
  --tc-green-dark: #214c3d;
  --tc-muted: #53665c;
  --tc-line: #d8dfd5;
  --tc-cream: #f7f5ed;
  --tc-sage: #edf3eb;
  background-color: var(--tc-cream);
}

/* Replace the page-local vivid accent tokens so existing interactive states stay native. */
.ec-saved-page {
  --sv-ink: var(--tc-ink);
  --sv-blue: var(--tc-green);
  --sv-muted: var(--tc-muted);
  --sv-line: var(--tc-line);
  --sv-cream: var(--tc-cream);
  --share-blue: var(--tc-green);
  --shared-blue: var(--tc-green);
  --bd-blue: var(--tc-green);
}
.ec-trips-page {
  --tw-ink: var(--tc-ink);
  --tw-blue: var(--tc-green);
  --tw-muted: var(--tc-muted);
  --tw-line: var(--tc-line);
  --tw-cream: var(--tc-cream);
  --tw-dark: #263a33;
  padding-inline: clamp(1rem, 2vw, 1.5rem);
  border-radius: .25rem;
}

.ec-saved-page :is(a, button, input, select, [role="tabpanel"]):focus-visible,
.ec-trips-page :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible,
.ec-saved-page .ec-saved-share :is(a, button, input, summary):focus-visible {
  outline: 3px solid var(--tc-green);
  outline-offset: 3px;
}
.ec-saved-page :is(input, select, textarea),
.ec-trips-page :is(input, select, textarea) { accent-color: var(--tc-green); }

/* Saved actions, tabs, filters and the share dialog. */
.ec-saved-page .ec-saved-button--explore,
.ec-saved-page .ec-saved-eyebrow,
.ec-saved-page .ec-saved-search__field svg,
.ec-saved-page .ec-saved-reset:hover,
.ec-saved-page .ec-saved-tabs button:hover,
.ec-saved-page .ec-card__actions button:hover,
.ec-saved-page .ec-card__actions button[data-ec-add-trip] {
  color: var(--tc-green);
}
.ec-saved-page .ec-saved-tabs button[aria-selected="true"] {
  color: #fff;
  border-color: var(--tc-green);
  background: var(--tc-green);
}
.ec-saved-page .ec-card__actions button[data-ec-add-trip] { background: var(--tc-sage); }
.ec-saved-page .ec-saved-share {
  --share-ink: var(--tc-ink);
  --share-muted: var(--tc-muted);
  --share-blue: var(--tc-green);
  --shared-ink: var(--tc-ink);
  --shared-muted: var(--tc-muted);
  --shared-blue: var(--tc-green);
  --share-line: var(--tc-line);
  --shared-line: var(--tc-line);
}
.ec-saved-page .ec-saved-share .ec-saved-share__button--primary,
.ec-saved-page .ec-saved-sharing-launch .ec-saved-share__button--primary {
  color: #fff;
  border-color: var(--tc-green);
  background: var(--tc-green);
}
.ec-saved-page .ec-saved-share .ec-saved-share__button--primary:hover,
.ec-saved-page .ec-saved-sharing-launch .ec-saved-share__button--primary:hover {
  border-color: var(--tc-green-dark);
  background: var(--tc-green-dark);
}
.ec-saved-page .ec-saved-share :is(.ec-saved-share__choice,.ec-saved-share__mode):has(input:checked),
.ec-saved-page .ec-saved-share .ec-saved-share__privacy,
.ec-saved-page .ec-saved-share .ec-saved-share__mode:has(input:checked) {
  border-color: var(--tc-green);
  background: var(--tc-sage);
}
.ec-saved-page .ec-saved-share .ec-saved-share__choice:has(input:checked) {
  box-shadow: inset 0 0 0 1px var(--tc-green);
}
.ec-saved-page .ec-saved-share :is(.ec-saved-share__choice,.ec-saved-share__mode) input {
  accent-color: var(--tc-green);
}

/* If the shared-choice preview is mounted inside either account surface, keep it
   in the same palette. Standalone recipient/share pages remain outside this scope. */
:is(.ec-saved-page,.ec-trips-page) .ec-shared-saved {
  --shared-ink: var(--tc-ink);
  --shared-muted: var(--tc-muted);
  --shared-blue: var(--tc-green);
  --shared-line: var(--tc-line);
}
:is(.ec-saved-page,.ec-trips-page) .ec-shared-saved :is(.ec-shared-saved__notice,.ec-shared-choice__response,.ec-shared-call__privacy) {
  border-color: var(--tc-green);
  background: var(--tc-sage);
}
:is(.ec-saved-page,.ec-trips-page) .ec-shared-saved .ec-shared-saved__languages a[aria-current="page"] {
  border-color: var(--tc-green);
  background: var(--tc-sage);
}
:is(.ec-saved-page,.ec-trips-page) .ec-shared-saved--call .ec-shared-saved__card.is-picked {
  border-color: var(--tc-green);
  box-shadow: 0 0 0 3px #d8e5d8;
}
:is(.ec-saved-page,.ec-trips-page) .ec-shared-saved [data-ec-shared-save] {
  border-color: var(--tc-green);
  background: #fff;
  color: var(--tc-green);
}
:is(.ec-saved-page,.ec-trips-page) .ec-shared-saved :is(.ec-shared-call__pick,.ec-shared-choice__copy) {
  border-color: var(--tc-green);
  background: var(--tc-green);
  color: #fff;
}
:is(.ec-saved-page,.ec-trips-page) .ec-shared-saved [data-ec-shared-save]:hover {
  border-color: var(--tc-green-dark);
  background: var(--tc-sage);
  color: var(--tc-green-dark);
}
:is(.ec-saved-page,.ec-trips-page) .ec-shared-saved :is(.ec-shared-call__pick,.ec-shared-choice__copy):hover {
  border-color: var(--tc-green-dark);
  background: var(--tc-green-dark);
  color: #fff;
}
:is(.ec-saved-page,.ec-trips-page) .ec-shared-saved :is(a,button):focus-visible {
  outline: 3px solid var(--tc-green);
  outline-offset: 3px;
}

/* Trip builder, trip selection and intent states. */
.ec-trips-page :is(.ec-trips-eyebrow,.ec-trips-heading__links a,.ec-trip-summary__status,
  .ec-trip-summary button,.ec-trip-detail [data-ec-trip-count],.ec-trip-settings > summary,
  .ec-trip-share > summary,.ec-trip-day-nav button,.ec-trip-item__meta time,
  .ec-trip-item__editor > summary) { color: var(--tc-green); }
.ec-trips-page :is(.ec-trips-app,.ec-trips-guest) button:hover,
.ec-trips-page .ec-trips-button:hover,
.ec-trips-page .ec-trips-app .ec-button:hover {
  color: var(--tc-green);
  border-color: var(--tc-green);
}
.ec-trips-page :is(.ec-trips-app,.ec-trips-guest) button[type="submit"],
.ec-trips-page .ec-trips-guest .ec-trips-button--primary,
.ec-trips-page .tcgt-actions button[type="submit"] {
  color: #fff;
  border-color: var(--tc-green);
  background: var(--tc-green);
}
.ec-trips-page :is(.ec-trips-app,.ec-trips-guest) button[type="submit"]:hover,
.ec-trips-page .ec-trips-guest .ec-trips-button--primary:hover,
.ec-trips-page .tcgt-actions button[type="submit"]:hover {
  color: #fff;
  border-color: var(--tc-green-dark);
  background: var(--tc-green-dark);
}
.ec-trips-page .ec-trip-intent:not(:empty) {
  border-color: #cbd8cc;
  border-left-color: var(--tc-green);
  background: var(--tc-sage);
}
.ec-trips-page .ec-trip-summary[data-active="true"] {
  border-color: #cbd8cc;
  border-left-color: var(--tc-green);
  background: var(--tc-sage);
}
.ec-trips-page .ec-trip-day-nav button {
  border-color: #cbd8cc;
  background: var(--tc-sage);
}
.ec-trips-page .ec-trip-day-nav button:hover { background: #e3ece2; }
.ec-trips-page :is(.tcgt-share-settings,.ec-trip-share) { background-color: var(--tc-sage); }

@media (max-width: 44rem) {
  .ec-trips-page { padding-inline: 1rem; border-radius: 0; }
  .ec-saved-page { background-color: var(--tc-cream); }
}
@media (forced-colors: active) {
  .ec-saved-page :is(a,button,input,select,[role="tabpanel"]):focus-visible,
  .ec-trips-page :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
    outline-color: Highlight;
  }
}

/* Saved collection: each photograph, description and removal action belongs to one bounded row.
   All new rules target the private Saved page or its uniquely named sharing dialog. */
.ec-saved-page {
  max-width: 76rem;
  margin-inline: auto;
  padding-inline: clamp(1rem, 2vw, 1.5rem);
}
.ec-saved-page .ec-saved-heading { display: block; padding-bottom: 1.3rem; }
.ec-saved-page .ec-saved-heading__intro { max-width: 48rem; }
.ec-saved-page .ec-saved-button--explore { margin-top: .8rem; padding: .55rem .85rem; border: 1px solid var(--tc-line); background: transparent; gap: .75rem; }
.ec-saved-page .ec-saved-sharing-launch { justify-content: flex-start; margin-bottom: 1rem; }
.ec-saved-page .ec-card-grid { grid-template-columns: minmax(0, 1fr); gap: .85rem; }
.ec-saved-page .ec-saved-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .8rem 1.25rem;
  padding: 1rem;
  border: 1px solid var(--tc-line);
  border-radius: .5rem;
  background: #fffefa;
}
.ec-saved-page .ec-saved-card > .ec-card__link {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1.25rem;
  min-width: 0;
}
.ec-saved-page .ec-saved-card .ec-card__media {
  flex: 0 0 12rem;
  width: 12rem;
  aspect-ratio: 4 / 3;
  margin: 0;
  border-radius: .3rem;
  background: transparent;
}
.ec-saved-page .ec-saved-card .ec-card__media img { object-fit: contain; }
.ec-saved-page .ec-saved-card .ec-card__link:hover .ec-card__media img { transform: none; }
.ec-saved-page .ec-saved-card .ec-card__body { min-width: 0; padding: 0; gap: .35rem; }
.ec-saved-page .ec-saved-card .ec-card__title { font-size: clamp(1.7rem, 2.6vw, 2.15rem); }
.ec-saved-page .ec-saved-card .ec-card__body > p { max-width: 64ch; }
.ec-saved-page .ec-saved-card > .ec-card__actions {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: .5rem;
  margin: 0;
  padding: .5rem 0 .5rem 1rem;
  border-top: 0;
  border-left: 1px solid var(--tc-line);
}
.ec-saved-page .ec-saved-card > .ec-saved-preview-credit {
  grid-column: 1 / -1;
  grid-row: 2;
  margin: 0;
  color: var(--tc-muted);
  font-size: .7rem;
  line-height: 1.5;
}
/* The global public-card rule intentionally hides save labels; Saved needs its native Remove label. */
.ec-public #main-content .ec-saved-page .ec-saved-card > .ec-card__actions button[data-ec-save] {
  flex: 0 1 auto !important;
  width: auto !important;
  height: auto !important;
  min-width: 44px !important;
  min-height: 44px !important;
  max-width: 100% !important;
  max-height: none !important;
  padding: .6rem .85rem !important;
  border: 1px solid var(--tc-line) !important;
  border-radius: .3rem !important;
  background: var(--tc-sage) !important;
  color: var(--tc-green) !important;
  font-size: .8125rem !important;
  line-height: 1.35 !important;
  white-space: normal;
}
.ec-public #main-content .ec-saved-page .ec-saved-card > .ec-card__actions button[data-ec-save]::before { display: none !important; }
.ec-public #main-content .ec-saved-page .ec-saved-card > .ec-card__actions button[data-ec-save]:hover { border-color: var(--tc-green) !important; background: #e3ece2 !important; }
.ec-public #main-content .ec-saved-page .ec-saved-card > .ec-card__actions button[data-ec-save]:focus-visible { outline-color: var(--tc-green) !important; }

/* The sharing dialog is appended to body, so it cannot inherit page-local brand tokens. */
.ec-saved-share {
  --tc-ink: #263a33;
  --tc-green: #285d49;
  --tc-green-dark: #214c3d;
  --tc-muted: #53665c;
  --tc-line: #d8dfd5;
  --tc-sage: #edf3eb;
  --share-ink: var(--tc-ink);
  --share-muted: var(--tc-muted);
  --share-blue: var(--tc-green);
  --share-line: var(--tc-line);
}
.ec-saved-share .ec-saved-share__button--primary { color: #fff; border-color: var(--tc-green); background: var(--tc-green); }
.ec-saved-share .ec-saved-share__button--primary:hover { border-color: var(--tc-green-dark); background: var(--tc-green-dark); }
.ec-saved-share .ec-saved-share__choice:has(input:checked),
.ec-saved-share .ec-saved-share__mode:has(input:checked),
.ec-saved-share .ec-saved-share__privacy { border-color: var(--tc-green); background: var(--tc-sage); }
.ec-saved-share :is(a, button, input, select, summary):focus-visible { outline-color: var(--tc-green); }
.ec-saved-share .ec-saved-share__picture--empty { display: none; }
.ec-saved-share .ec-saved-share__choice:has(> .ec-saved-share__picture--empty) { grid-template-columns: 1.2rem minmax(0, 1fr); }
.ec-saved-share .ec-saved-share__preview-card { padding: .75rem; border: 1px solid var(--tc-line); border-radius: .4rem; }

@media (max-width: 44rem) {
  .ec-saved-page .ec-saved-card { grid-template-columns: minmax(0, 1fr); gap: .8rem; }
  .ec-saved-page .ec-saved-card > .ec-card__link { flex-direction: column; align-items: stretch; gap: .85rem; }
  .ec-saved-page .ec-saved-card .ec-card__media { flex-basis: auto; width: 100%; aspect-ratio: auto; max-height: 18rem; }
  .ec-saved-page .ec-saved-card .ec-card__media img { height: auto; max-height: 18rem; object-fit: contain; }
  .ec-saved-page .ec-saved-card > .ec-card__actions {
    grid-column: 1;
    grid-row: 2;
    flex-direction: row;
    justify-content: flex-start;
    padding: .75rem 0 0;
    border-left: 0;
    border-top: 1px solid var(--tc-line);
  }
  .ec-saved-page .ec-saved-card > .ec-saved-preview-credit { grid-row: 3; }
  .ec-saved-page .ec-saved-sharing-launch .ec-saved-share__button { width: auto; max-width: 100%; }
}
@media (forced-colors: active) {
  .ec-saved-page .ec-saved-card { border-color: CanvasText; background: Canvas; }
  .ec-public #main-content .ec-saved-page .ec-saved-card > .ec-card__actions button[data-ec-save] { color: ButtonText !important; background: ButtonFace !important; border-color: ButtonText !important; }
  .ec-public #main-content .ec-saved-page .ec-saved-card > .ec-card__actions button[data-ec-save]:focus-visible,
  .ec-saved-share :is(a, button, input, select, summary):focus-visible { outline-color: Highlight !important; }
  .ec-saved-share .ec-saved-share__button--primary { color: ButtonText; background: ButtonFace; border-color: ButtonText; }
}

/* Trips header and form: keep the useful controls beside the introductory copy. */
html body.ec-public #main-content .ec-trips-page {
  max-width: 76rem;
  margin-inline: auto;
  padding-block: 1.3rem 2.5rem;
}
html body.ec-public #main-content .ec-trips-page .ec-trips-heading {
  display: block;
  padding-bottom: 1.1rem;
}
html body.ec-public #main-content .ec-trips-page .ec-trips-heading h1 {
  font-size: clamp(2.2rem, 3.3vw, 2.8rem);
  line-height: 1.08;
}
html body.ec-public #main-content .ec-trips-page .ec-trips-heading__intro { margin-top: .55rem; }
html body.ec-public #main-content .ec-trips-page .ec-trips-heading__links {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: .4rem 1.1rem;
  margin-top: .7rem;
  min-width: 0;
}
html body.ec-public #main-content .ec-trips-page .ec-trips-app.tcgt-app {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: .5rem 0 0;
}
html body.ec-public #main-content .ec-trips-page .ec-trips-app.tcgt-app > h2:first-child {
  margin-top: 0;
  margin-bottom: .5rem;
  font-size: 2rem;
}
/* A language URL also ends in /trips/. Undo the global trip-link button treatment
   only for the language switcher on this route; the Trips navigation CTA stays native. */
html body.ec-public:has(#main-content .ec-trips-page) .ec-site-header .ec-language-switcher a.ec-language {
  background: transparent;
  color: var(--ec-ink, #203b33);
  border-radius: 0;
  padding-inline: .25rem;
  font-weight: 650;
}
html body.ec-public:has(#main-content .ec-trips-page) .ec-site-header .ec-language-switcher a.ec-language:hover {
  background: transparent;
  color: var(--ec-sea, #285d49);
}
