/* Homepage-only account and returning-traveller experience. */
body[data-homepage-experience="story"]:not(.home-account-ready) #homepageStory {
  visibility: hidden;
}

body[data-homepage-experience="story"].home-account-resolving #homepageStory,
body[data-homepage-experience="story"].home-account-resolving #personalHomepage {
  display: none !important;
}

body.home-panel-open > nav.site-header-shell,
body.home-panel-open > nav.site-header {
  z-index: 90;
}

.home-auth-root,
.home-account-root {
  position: relative;
}

.home-auth-trigger,
.home-account-trigger {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
  transition: color 160ms ease, transform 160ms ease;
}

.home-auth-trigger:hover,
.home-account-trigger:hover,
.home-auth-trigger:focus-visible,
.home-account-trigger:focus-visible {
  color: #f25c05;
}

.home-auth-trigger:focus-visible,
.home-account-trigger:focus-visible,
.home-auth-panel button:focus-visible,
.home-auth-panel input:focus-visible,
.home-account-panel button:focus-visible,
.home-account-panel input:focus-visible,
.home-account-panel textarea:focus-visible,
.personal-homepage button:focus-visible {
  outline: 2px solid #f25c05;
  outline-offset: 3px;
}

.home-account-chevron {
  color: #aaa294;
  font-size: 11px;
  transition: transform 180ms ease;
}

[aria-expanded="true"] .home-account-chevron {
  transform: rotate(180deg);
}

.home-auth-panel,
.home-account-panel {
  position: absolute;
  z-index: 80;
  top: calc(100% + 13px);
  right: 0;
  width: min(390px, calc(100vw - 32px));
  padding: 27px 27px 22px;
  border: 2px solid #1a1a1a;
  border-radius: 2px 2px 13px 13px;
  background:
    radial-gradient(circle at 12% 22%, rgba(242, 92, 5, .045) 0 1px, transparent 2px),
    #fffdf9;
  box-shadow: 8px 9px 0 rgba(31, 78, 91, .12);
  color: #1a1a1a;
  text-align: left;
  text-transform: none;
  letter-spacing: normal;
}

.home-account-panel {
  width: min(410px, calc(100vw - 32px));
}

.home-auth-panel::before,
.home-account-panel::before {
  content: "";
  position: absolute;
  inset: 9px 8px auto;
  border-top: 1px dashed #cfc7b9;
}

.home-auth-ticket-label,
.home-account-ticket-label {
  position: absolute;
  top: -13px;
  left: 22px;
  padding: 5px 10px 4px;
  border: 2px solid #1a1a1a;
  background: #f25c05;
  color: white;
  font: 700 10px/1 "Courier Prime", "Anonymous Pro", monospace;
  letter-spacing: .16em;
  transform: rotate(-1.5deg);
}

.home-auth-panel h2,
.home-account-panel h2 {
  margin: 7px 0 8px;
  color: #1f4e5b;
  font: 400 29px/1.04 "DM Serif Display", "Playfair Display", serif;
}

.home-auth-intro,
.home-account-subtitle {
  margin: 0 0 20px;
  color: #625d55;
  font: 400 14px/1.5 "Space Grotesk", "Golos Text", sans-serif;
}

.home-auth-field,
.home-account-field {
  display: grid;
  gap: 7px;
  margin: 0 0 13px;
}

.home-auth-field label,
.home-account-field label,
.home-account-section-label {
  color: #777067;
  font: 700 9px/1.2 "Courier Prime", "Anonymous Pro", monospace;
  letter-spacing: .15em;
  text-transform: uppercase;
}

/* The three editable account details need a clearer visual hierarchy than ticket metadata. */
.home-account-panel .home-account-field > label {
  color: #5f5850;
  font-size: 11px;
  letter-spacing: .13em;
}

.home-auth-field input,
.home-account-field input,
.home-account-field textarea {
  width: 100%;
  min-height: 45px;
  padding: 10px 12px;
  border: 1px solid #cfc7b9;
  border-radius: 3px;
  background: #fffdf9;
  color: #1a1a1a;
  font: 500 16px/1.2 "Space Grotesk", "Golos Text", sans-serif;
}

.home-account-field textarea {
  min-height: 104px;
  resize: vertical;
  line-height: 1.45;
}

.home-account-field-note {
  margin: -2px 0 1px;
  color: #928b81;
  font: 400 10px/1.4 "Space Grotesk", "Golos Text", sans-serif;
}

.home-auth-submit,
.home-account-save {
  display: inline-flex;
  width: 100%;
  min-height: 45px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 2px solid #1a1a1a;
  border-radius: 3px;
  background: #f25c05;
  color: white;
  font: 700 12px/1 "Courier Prime", "Anonymous Pro", monospace;
  letter-spacing: .08em;
  cursor: pointer;
  box-shadow: 3px 3px 0 #1a1a1a;
  transition: transform 140ms ease, box-shadow 140ms ease, opacity 140ms ease;
}

.home-auth-submit:hover,
.home-account-save:hover {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 #1a1a1a;
}

.home-auth-submit:disabled,
.home-account-save:disabled {
  cursor: wait;
  opacity: .58;
}

.home-auth-note,
.home-auth-legal,
.home-auth-status {
  color: #777067;
  font: 400 11px/1.45 "Space Grotesk", "Golos Text", sans-serif;
}

.home-auth-note { margin: 12px 0 0; }
.home-auth-status { min-height: 17px; margin: 8px 0 0; color: #8f3d16; }
.home-auth-legal { margin: 15px 0 0; }
.home-auth-legal a { color: #1f4e5b; text-decoration: underline; text-underline-offset: 2px; }

.home-auth-sent {
  display: grid;
  gap: 13px;
}

.home-auth-sent-stamp {
  justify-self: start;
  padding: 6px 12px 4px;
  border: 2px solid #f25c05;
  color: #f25c05;
  font: 700 12px/1 "Courier Prime", "Anonymous Pro", monospace;
  letter-spacing: .16em;
  transform: rotate(-4deg);
}

.home-auth-sent-email { font-weight: 700; overflow-wrap: anywhere; }
.home-auth-inline-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.home-auth-link-button,
.home-account-link-button {
  border: 0;
  padding: 0;
  background: none;
  color: #1f4e5b;
  font: 700 11px/1.3 "Space Grotesk", "Golos Text", sans-serif;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.home-auth-backdrop {
  position: fixed;
  z-index: 70;
  inset: 0;
  background: rgba(26, 26, 26, .22);
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease;
}

.home-auth-backdrop.is-open { opacity: 1; pointer-events: auto; }

.home-account-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.home-account-email { margin: -2px 0 17px; color: #777067; font: 400 11px/1.4 "Space Grotesk", "Golos Text", sans-serif; overflow-wrap: anywhere; }
.home-account-section { padding: 13px 0; border-top: 1px dashed #cfc7b9; }
.home-account-value { margin-top: 6px; color: #1a1a1a; font: 600 14px/1.45 "Space Grotesk", "Golos Text", sans-serif; }
.home-account-empty { color: #928b81; font-weight: 400; }
.home-account-home-prompt { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.home-account-context { display: flex; gap: 6px; margin: 6px 0 2px; color: #827b71; font: 400 10px/1.4 "Space Grotesk", "Golos Text", sans-serif; }
.home-account-context span { color: #f25c05; font-family: "Courier Prime", "Anonymous Pro", monospace; }
.home-account-preference-empty { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 7px; }
.home-account-preference-empty p { flex: 1; margin: 0; color: #777067; font: 400 12px/1.5 "Space Grotesk", "Golos Text", sans-serif; }
.home-account-preference-empty .home-account-link-button { flex: 0 0 auto; }
.home-account-preference-note { margin-top: 8px; padding: 11px 12px; border-left: 2px solid #f25c05; background: rgba(242, 92, 5, .045); color: #4b463f; font: 500 13px/1.5 "Space Grotesk", "Golos Text", sans-serif; white-space: pre-wrap; overflow-wrap: anywhere; }
.home-account-alerts { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.home-account-alert { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border: 1px solid #ded8cc; border-radius: 9px; background: #fffdf7; }
.home-account-alert-main { flex: 1; min-width: 0; }
.home-account-alert-main b { display: block; color: #1a1a1a; font: 600 13px/1.3 "Space Grotesk", "Golos Text", sans-serif; }
.home-account-alert-main span { display: block; margin-top: 2px; color: #827b71; font: 400 11px/1.35 "Space Grotesk", "Golos Text", sans-serif; overflow-wrap: anywhere; }
.home-account-alert-remove { flex: 0 0 auto; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #a49c8f; font: 400 17px/1 "Space Grotesk", "Golos Text", sans-serif; cursor: pointer; transition: color .15s, background .15s; }
.home-account-alert-remove:hover { color: #f25c05; background: rgba(242, 92, 5, .09); }
.home-account-footer { display: flex; justify-content: flex-end; padding-top: 12px; border-top: 1px dashed #cfc7b9; }
.home-account-edit-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 15px; }
.home-account-edit-actions .home-account-save { width: auto; min-width: 112px; }

.personal-homepage {
  width: min(100%, 1000px);
  margin: 54px auto 70px;
  color: #1a1a1a;
}

.personal-homepage[hidden] { display: none !important; }
.personal-homepage-heading { max-width: 690px; margin-bottom: 27px; }
.personal-homepage-kicker,
.personal-older-heading {
  color: #f25c05;
  font: 700 10px/1.2 "Courier Prime", "Anonymous Pro", monospace;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.personal-homepage-heading h2 { margin: 8px 0 7px; color: #1f4e5b; font: 400 clamp(34px, 4vw, 51px)/1.03 "DM Serif Display", "Playfair Display", serif; }
.personal-homepage-heading p { margin: 0; color: #6f6960; font: 400 15px/1.5 "Space Grotesk", "Golos Text", sans-serif; }

/* "Продолжите с того места, где остановились" is 41 characters against the
 * English 26, so at the shared size it measures 1056px — wider than the 1000px
 * section, let alone the 690px the heading box allows — and broke across two
 * lines. Give it the full section width and step the size down to 46px, where
 * it measures 953px and clears the section with room to spare. The paragraph
 * keeps the original 690px measure: it is body copy and wants a short line. */
html[lang="ru"] .personal-homepage-heading { max-width: none; }
/* 600 for the same reason the hero headline takes it — Playfair's regular puts
   18% less ink on the line than DM Serif Display's, so matching the English
   colour takes a heavier weight, not a bold. This heading is pure Cyrillic; see
   site_navigation.css for why that matters. */
html[lang="ru"] .personal-homepage-heading h2 { font-size: clamp(30px, 3.6vw, 46px); font-weight: 600; }
html[lang="ru"] .personal-homepage-heading p { max-width: 690px; }
.personal-searches-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px; }

.personal-search-card {
  position: relative;
  min-height: 264px;
  padding: 24px 21px 20px;
  overflow: visible;
  border: 2px solid #1a1a1a;
  border-radius: 2px 2px 12px 12px;
  background: #fffdf9;
  box-shadow: 5px 6px 0 rgba(31, 78, 91, .13);
}
.personal-search-card::before { content: ""; position: absolute; left: 10px; right: 10px; top: 11px; border-top: 1px dashed #d8d0c2; }
.personal-card-menu-button { position: absolute; top: 17px; right: 15px; width: 30px; height: 30px; border: 0; border-radius: 50%; background: transparent; color: #777067; font-size: 20px; line-height: 1; cursor: pointer; }
.personal-card-menu-button:hover { background: #f2efe5; color: #f25c05; }
.personal-card-menu { position: absolute; z-index: 5; top: 50px; right: 13px; width: 146px; padding: 8px; border: 1px solid #1a1a1a; background: #fffdf9; box-shadow: 3px 3px 0 rgba(26,26,26,.14); }
.personal-card-delete { width: 100%; border: 0; padding: 8px; background: transparent; color: #8f3d16; text-align: left; font: 600 12px/1.2 "Space Grotesk", "Golos Text", sans-serif; cursor: pointer; }
.personal-card-ticket-label { display: inline-flex; margin-bottom: 15px; padding: 4px 7px 3px; background: #1f4e5b; color: white; font: 700 8px/1 "Courier Prime", "Anonymous Pro", monospace; letter-spacing: .13em; }
.personal-card-route { padding-right: 28px; color: #1a1a1a; font: 400 27px/1 "DM Serif Display", "Playfair Display", serif; }
.personal-card-meta { min-height: 36px; margin-top: 8px; color: #6f6960; font: 500 12px/1.45 "Space Grotesk", "Golos Text", sans-serif; }
.personal-card-divider { margin: 15px 0 12px; border-top: 1px dashed #cfc7b9; }
.personal-card-fit { color: #4b463f; font: 500 12px/1.4 "Space Grotesk", "Golos Text", sans-serif; }
.personal-card-fit strong { display: block; margin-top: 3px; color: #1f4e5b; font-size: 14px; }
.personal-card-price { margin-top: 10px; color: #1f4e5b; font: 400 25px/1 "DM Serif Display", "Playfair Display", serif; }
.personal-card-price small { display: block; margin-top: 5px; color: #6f6a62; font: 700 10px/1.2 "Courier Prime", "Anonymous Pro", monospace; letter-spacing: 0.02em; }
.personal-card-time { margin-top: 6px; color: #928b81; font: 700 8px/1.2 "Courier Prime", "Anonymous Pro", monospace; letter-spacing: .08em; text-transform: uppercase; }
.personal-card-actions { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; margin-top: 17px; }
.personal-card-continue { border: 0; padding: 0; background: transparent; color: #f25c05; font: 700 12px/1.2 "Space Grotesk", "Golos Text", sans-serif; cursor: pointer; text-align: left; }
.personal-card-live-note { max-width: 90px; color: #928b81; font: 400 9px/1.25 "Space Grotesk", "Golos Text", sans-serif; text-align: right; }
.personal-delete-confirm { position: absolute; z-index: 7; inset: auto 12px 12px; padding: 12px; border: 1px solid #1a1a1a; background: #fff7ef; font: 500 12px/1.4 "Space Grotesk", "Golos Text", sans-serif; box-shadow: 3px 3px 0 rgba(26,26,26,.14); }
.personal-delete-actions { display: flex; gap: 12px; margin-top: 9px; }
.personal-delete-actions button { border: 0; padding: 0; background: none; font: 700 11px/1.2 "Space Grotesk", "Golos Text", sans-serif; cursor: pointer; }
.personal-delete-confirm-button { color: #a23f18; }
.personal-delete-cancel-button { color: #1f4e5b; }

.personal-older-searches { margin-top: 31px; padding-top: 22px; border-top: 1px dashed #bbb3a6; }
.personal-older-heading { color: #777067; margin-bottom: 11px; }
.personal-older-row { display: flex; gap: 10px; overflow-x: auto; padding: 2px 2px 8px; scrollbar-width: thin; }
.personal-older-card { min-width: 180px; padding: 13px 14px; border: 1px solid #cfc7b9; border-radius: 4px; background: rgba(255,253,249,.75); cursor: pointer; }
.personal-older-card strong { display: block; color: #1a1a1a; font: 700 13px/1.2 "Space Grotesk", "Golos Text", sans-serif; }
.personal-older-card span { display: block; margin-top: 5px; color: #777067; font: 400 10px/1.35 "Space Grotesk", "Golos Text", sans-serif; }
.personal-history-expand,
.personal-story-toggle,
.homepage-story-collapse { align-items: center; gap: 7px; border: 0; background: transparent; cursor: pointer; }
.personal-history-expand,
.personal-story-toggle { display: inline-flex; }
.homepage-story-collapse { display: none; }
body.home-returning-user .homepage-story-collapse { display: inline-flex; }
.personal-history-expand { margin-top: 17px; color: #1f4e5b; font: 700 11px/1.2 "Courier Prime", "Anonymous Pro", monospace; text-decoration: underline; text-underline-offset: 4px; }
.personal-local-results-preview { display: flex; width: max-content; margin: 24px 0 0; padding: 0; border: 0; background: transparent; color: #928b81; font: 700 10px/1.2 "Courier Prime", "Anonymous Pro", monospace; letter-spacing: .07em; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.personal-local-results-preview[hidden] { display: none !important; }
.personal-local-results-preview:hover { color: #f25c05; }
.personal-story-toggle { display: flex; width: max-content; margin: 92px auto 0; color: #777067; font: 700 10px/1.2 "Courier Prime", "Anonymous Pro", monospace; letter-spacing: .09em; text-transform: uppercase; }
.personal-story-toggle:hover { color: #f25c05; }
.homepage-story-collapse { margin: 26px auto -12px; color: #777067; font: 700 10px/1.2 "Courier Prime", "Anonymous Pro", monospace; letter-spacing: .09em; text-transform: uppercase; }

.results-auth-invitation { width: min(100%, 920px); margin: 18px auto 0; padding: 12px 15px; border-top: 1px dashed #cfc7b9; border-bottom: 1px dashed #cfc7b9; color: #6f6960; font: 500 12px/1.4 "Space Grotesk", "Golos Text", sans-serif; text-align: right; }
.results-auth-invitation[hidden] { display: none !important; }
.results-auth-invitation button { margin-left: 9px; border: 0; background: transparent; color: #f25c05; font: 700 12px/1.2 "Space Grotesk", "Golos Text", sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }

.homepage-welcome-toast { position: fixed; z-index: 100; right: 24px; bottom: 24px; max-width: min(390px, calc(100vw - 32px)); padding: 13px 17px; border: 2px solid #1a1a1a; background: #fffdf9; color: #1f4e5b; font: 700 13px/1.35 "Space Grotesk", "Golos Text", sans-serif; box-shadow: 4px 4px 0 #f25c05; }
.homepage-welcome-toast[hidden] { display: none !important; }

@media (max-width: 900px) {
  .personal-searches-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .personal-search-card:nth-child(3) { grid-column: span 2; }
}

@media (max-width: 640px) {
  .home-auth-backdrop { display: block; }
  .home-auth-panel,
  .home-account-panel {
    position: fixed;
    z-index: 81;
    inset: auto 0 0;
    width: 100%;
    max-height: min(calc(100dvh - max(18px, env(safe-area-inset-top))), 680px);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 58px 22px calc(22px + env(safe-area-inset-bottom));
    border-radius: 16px 16px 0 0;
    box-shadow: 0 -12px 32px rgba(26, 26, 26, .18);
  }
  .home-auth-panel::before,
  .home-account-panel::before { inset: 50px 8px auto; }
  .home-auth-panel::after,
  .home-account-panel::after { content: ""; position: absolute; top: 7px; left: 50%; width: 42px; height: 4px; border-radius: 99px; background: #cfc7b9; transform: translateX(-50%); }
  .home-auth-ticket-label,
  .home-account-ticket-label {
    top: 20px;
    left: 22px;
  }
  .personal-homepage { margin-top: 38px; }
  .personal-searches-grid {
    display: flex;
    gap: 14px;
    width: calc(100vw - 24px);
    margin-left: calc((100vw - 100%) / -2 + 12px);
    padding: 2px 18px 12px 6px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }
  .personal-search-card { min-width: min(84vw, 330px); scroll-snap-align: start; }
  .personal-search-card:nth-child(3) { grid-column: auto; }
  .results-auth-invitation { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .home-auth-trigger,
  .home-account-trigger,
  .home-auth-submit,
  .home-account-save,
  .home-account-chevron,
  .home-auth-backdrop { transition: none !important; }
}
