/* PUBLICUI1: shared visual finish using the current HOMEPORTAL1 identity.
   Loaded only on explicit public surfaces. No home, private partner, print, auth callback,
   routing, content, search ranking, form contract or JavaScript changes. */
.ec-public-visual {
  --ec-shell: 88rem; --ec-gutter: clamp(1rem,2.2vw,2rem);
  --ec-ink: #102c49; --ec-sea: #1260bf; --ec-soft: #4e637a;
  --ec-stone: #dce6f1; --ec-paper: #fff; --ec-sun: #ffcc42;
  background: var(--ec-paper); color: var(--ec-ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.ec-public-visual [hidden] { display: none !important; }
.ec-public-visual :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 3px solid var(--ec-sea); outline-offset: 3px; }
.ec-public-visual :is(h1,h2,h3) { letter-spacing: -.035em; overflow-wrap: anywhere; }
.ec-public-visual :is(p,label,legend) { overflow-wrap: anywhere; }
.ec-public-visual :is(button,input,select,textarea) { font: inherit; }
.ec-public-visual .ec-site-header { background: #fff; border-bottom: 1px solid #e5edf5; }
.ec-public-visual .ec-site-header__inner { min-height: 4.75rem; padding-block: .5rem; }
.ec-public-visual .ec-brand { min-height: 44px; }
.ec-public-visual .ec-brand__name { font-size: clamp(1.4rem,2vw,1.8rem); font-weight: 750; color: #0754b5; letter-spacing: -.07em; }
.ec-public-visual .ec-brand__by { font-size: .7rem; color: var(--ec-sea); margin-top: .4rem; }
.ec-public-visual :is(.ec-primary-nav,.ec-utility-nav) a { font-size: .875rem; }
.ec-public-visual .ec-primary-nav { margin-inline-start: 0; }
.ec-public-visual .ec-site-header .ec-menu-toggle { border-color: transparent; }
.ec-public-visual .ec-menu-toggle::before { content: ''; width: 19px; height: 1.5px; background: currentColor; box-shadow: 0 -6px currentColor,0 6px currentColor; }
.ec-public-visual .ec-menu-toggle span { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.ec-public-visual .ec-site-header a:hover { color: var(--ec-sea); }
.ec-public-visual .ec-utility-nav a[href$="/trips/"] { padding-inline: .8rem; border-radius: 10px; background: var(--ec-sun); color: var(--ec-ink); font-weight: 700; }
.ec-public-visual .ec-page-header { padding-block: clamp(1.75rem,4vw,3.25rem) 1.35rem; gap: .6rem; }
.ec-public-visual .ec-page-header h1 { font-size: clamp(1.9rem,4.5vw,3.1rem); font-weight: 750; line-height: 1.1; max-width: 25ch; text-wrap: balance; }
.ec-public-visual .ec-kicker { color: var(--ec-sea); font-size: .72rem; font-weight: 700; letter-spacing: .12em; }
.ec-public-visual .ec-dek { color: var(--ec-soft); margin-block: 0; max-width: 62ch; }
.ec-public-visual .ec-main > .ec-shell { min-width: 0; }
.ec-public-visual .ec-main a:not(.ec-button):not(.ec-card__link):not(.ec-event-profile__button):not(:where(.ec-place-profile__button,.ec-trips-button,.ec-my-dashboard__button)) { color: var(--ec-sea); text-underline-offset: .2em; }
.ec-public-visual .ec-main .ec-my-dashboard[data-ec-my-dashboard] .ec-my-dashboard__cover-caption>strong>a { color: #fff; }
.ec-public-visual .ec-main button, .ec-public-visual .ec-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 44px; max-width: 100%; padding: .65rem 1rem; border: 1px solid #cbdced;
  border-radius: 10px; background: #f2f7fe; color: var(--ec-ink); font-weight: 650;
  text-decoration: none; white-space: normal; overflow-wrap: anywhere; cursor: pointer;
}
.ec-public-visual .ec-main button[type="submit"], .ec-public-visual .ec-button--primary {
  background: var(--ec-sun); border-color: var(--ec-sun); color: var(--ec-ink); font-weight: 750;
}
.ec-public-visual .ec-main :is(button,.ec-button):hover { border-color: var(--ec-sea); }
.ec-public-visual .ec-main :is(button:disabled,button[aria-disabled="true"]) { opacity: .6; cursor: not-allowed; }
.ec-public-visual .ec-main :is(input[type="text"],input[type="search"],input[type="email"],input[type="password"],input[type="number"],input[type="url"],select,textarea) {
  box-sizing: border-box; min-width: 0; max-width: 100%; min-height: 48px; padding: .7rem .85rem;
  border: 1px solid #cad9eb; border-radius: 9px; background: #fff; color: var(--ec-ink);
}
.ec-public-visual .ec-main input[type="search"] { -webkit-appearance: none; appearance: none; }
.ec-public-visual .ec-main ::placeholder { color: #536980; opacity: 1; }
.ec-public-visual :is(.ec-search-form,.ec-filter-bar) > label { font-size: .875rem; font-weight: 650; }
.ec-public-visual .ec-search-page { gap: 1.35rem; padding-bottom: 2.5rem; }
.ec-public-visual .ec-search-page > .ec-search-form {
  width: 100%; padding: clamp(1rem,2.4vw,1.5rem); border: 1px solid #d6e4f4;
  border-radius: 18px; background: #f2f7fe; gap: .65rem;
}
.ec-public-visual .ec-search-form__row { grid-template-columns: minmax(0,1fr) auto; gap: .65rem; align-items: stretch; }
.ec-public-visual .ec-search-form__row > button { min-width: 6.25rem; }
.ec-public-visual .ec-search-page .ec-zero-results { margin: 0; }
.ec-public-visual .ec-zero-results, .ec-public-visual .ec-empty-state--saved, .ec-public-visual .ec-contributors-empty {
  padding: clamp(1.25rem,3vw,2rem); border: 1px solid var(--ec-stone); border-radius: 18px;
  background: #f8faff; max-width: 100%;
}
.ec-public-visual .ec-zero-results h2 { margin: 0 0 .65rem; font-size: clamp(1.25rem,2.4vw,1.75rem); line-height: 1.25; }
.ec-public-visual .ec-zero-results p { color: var(--ec-soft); max-width: 65ch; margin: .5rem 0 0; }
.ec-public-visual .ec-zero-results a { display: inline-flex; align-items: center; min-height: 44px; margin-top: .35rem; font-weight: 650; }
.ec-public-visual .ec-filter-bar { padding: 1.2rem; border: 1px solid var(--ec-stone); border-radius: 18px; background: #f2f7fe; }
.ec-public-visual .ec-filter-bar > * { min-width: 0; }
.ec-public-visual .ec-filter-dialog { border: 1px solid var(--ec-stone); border-radius: 18px; color: var(--ec-ink); }
.ec-public-visual .ec-filter-dialog::backdrop { background: #102c4970; }
.ec-public-visual .ec-section__heading h2 { margin: 0; font-size: clamp(1.4rem,2.5vw,2rem); line-height: 1.2; }
.ec-public-visual .ec-card-grid { gap: 1.1rem; }
.ec-public-visual .ec-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ec-stone); border-radius: 16px; background: #fff; }
.ec-public-visual .ec-card__link { min-height: 0; flex: 1 1 auto; }
.ec-public-visual .ec-card__body { padding: 1rem; }
.ec-public-visual .ec-card__title { font-size: 1.22rem; line-height: 1.2; }
.ec-public-visual .ec-card__body p, .ec-public-visual .ec-card__meta { color: var(--ec-soft); font-size: .9rem; }
.ec-public-visual .ec-card__actions { padding: 0 1rem 1rem; }
.ec-public-visual .ec-card__actions button { font-size: .85rem; }
.ec-public-visual .ec-signal { color: var(--ec-sea); font-size: .78rem; font-weight: 650; }
.ec-public-visual .ec-tabs button[aria-selected="true"] { background: var(--ec-ink); border-color: var(--ec-ink); color: #fff; }
.ec-public-visual .ec-site-footer { margin-top: 2rem; padding-block: 2rem; border-color: var(--ec-stone); background: #f2f7fe; color: var(--ec-soft); font-size: .875rem; }
.ec-public-visual .ec-site-footer :is(strong,h2) { color: var(--ec-ink); }
.ec-public-visual .ec-site-footer a { color: var(--ec-sea); }
@media (max-width: 24rem) {
  .ec-public-visual .ec-search-form__row { grid-template-columns: minmax(0,1fr); }
  .ec-public-visual .ec-search-form__row > button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ec-public-visual * { scroll-behavior: auto; }
}
@media (forced-colors: active) {
  .ec-public-visual { background: Canvas; color: CanvasText; }
  .ec-public-visual :is(.ec-site-header,.ec-site-footer,.ec-search-page > .ec-search-form,.ec-zero-results,.ec-card,.ec-filter-bar,.ec-filter-dialog) { background: Canvas; color: CanvasText; border-color: CanvasText; }
  .ec-public-visual .ec-main :is(button,input,select,textarea), .ec-public-visual .ec-button { background: ButtonFace; color: ButtonText; border-color: ButtonText; }
  .ec-public-visual :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline-color: Highlight; }
}
