
/* Travelloravessique audit refinements */
html { scroll-behavior: smooth; overflow-x: clip; }
body {
  margin: 0;
  min-width: 0;
  overflow-x: clip;
  font-family: var(--font-family-body);
  font-size: var(--font-size-base);
  background: var(--color-surface);
  color: var(--color-on-surface);
}
*, *::before, *::after { box-sizing: border-box; }
a { color: inherit; text-decoration: none; }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}
img { max-width: 100%; height: auto; }
.hero-title { font-size: var(--font-size-4xl); }
.section-title { font-size: var(--font-size-3xl); }

.skip-link {
  position: fixed; left: 1rem; top: -5rem; z-index: 3000;
  padding: .7rem 1rem; background: var(--color-accent); color: var(--color-on-accent);
  border-radius: 0 0 var(--border-radius-md) var(--border-radius-md);
  font-weight: 700;
}
.skip-link:focus { top: 0; }

.site-header {
  position: sticky; top: 0; z-index: 2000; width: 100%;
  background: color-mix(in srgb, var(--color-primary) 94%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--color-accent) 34%, transparent);
  box-shadow: 0 8px 28px color-mix(in srgb, #000 18%, transparent);
  backdrop-filter: blur(14px);
}
.site-header-inner {
  width: min(100% - 2rem, var(--content-max-width));
  margin-inline: auto; min-height: 4.7rem;
  display: grid; grid-template-columns: auto 1fr auto; gap: clamp(1rem, 2vw, 2rem); align-items: center;
}
.site-brand { display: inline-flex; gap: .75rem; align-items: center; min-width: 0; color: #fff; }
.site-brand-mark { width: 2rem; height: 2rem; flex: 0 0 2rem; color: var(--color-accent); }
.site-brand-name { font-family: var(--font-family-heading); font-weight: 700; font-size: 1.08rem; white-space: nowrap; }
.site-nav { display: flex; align-items: center; justify-content: center; gap: clamp(.85rem, 2vw, 1.75rem); min-width: 0; }
.site-nav a {
  position: relative; padding: .45rem 0; color: rgba(255,255,255,.88); font-size: .78rem;
  font-weight: 650; letter-spacing: .065em; text-transform: uppercase; white-space: nowrap;
}
.site-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:.1rem; height:2px; background:var(--color-accent); transition:right .2s ease; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--color-accent); }
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { right:0; }
.site-header-actions { display:flex; align-items:center; gap:.75rem; }
.site-header-cta {
  display:inline-flex; align-items:center; justify-content:center; min-height:2.7rem; padding:.65rem 1.15rem;
  color:var(--color-on-accent); background:var(--color-accent); border-radius:999px; font-size:.82rem; font-weight:750;
  box-shadow: var(--shadow-level-1); transition: transform .2s ease, filter .2s ease;
}
.site-header-cta:hover { transform: translateY(-2px); filter: brightness(1.04); }
.site-menu-toggle {
  display:none; width:2.75rem; height:2.75rem; align-items:center; justify-content:center; color:#fff; cursor:pointer;
  border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(255,255,255,.04);
}
.site-menu-toggle svg { width:1.35rem; height:1.35rem; }
.site-mobile-menu {
  display:none; position:absolute; top:100%; left:0; right:0; z-index:1999; padding:1rem;
  background:linear-gradient(180deg, var(--color-primary), color-mix(in srgb, var(--color-primary) 88%, #000));
  border-bottom:1px solid color-mix(in srgb, var(--color-accent) 35%, transparent); box-shadow:0 18px 30px rgba(0,0,0,.3);
}
.site-mobile-menu.is-open { display:block; }
.site-mobile-menu-inner { width:min(100%, 38rem); margin-inline:auto; display:grid; gap:.5rem; }
.site-mobile-menu a { display:flex; align-items:center; min-height:3rem; padding:.55rem .75rem; color:#fff; border-radius:var(--border-radius-md); font-weight:650; }
.site-mobile-menu a:hover, .site-mobile-menu a[aria-current="page"] { color:var(--color-accent); background:rgba(255,255,255,.055); }
body.menu-open { overflow-x:clip; }

.page-shell { min-width:0; }
main { min-width: 0; }

/* The home event rail is intentionally native-scroll, swipeable and mouse-draggable. */
.events-rail-track { -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain; cursor: grab; user-select: none; }
.events-rail-track.is-dragging { cursor: grabbing; scroll-behavior: auto; }
.events-rail-track a, .events-rail-track img { -webkit-user-drag: none; }

/* Shared editorial pages */
.simple-hero {
  position:relative; min-height:38rem; display:flex; align-items:flex-end; overflow:hidden; background:var(--color-primary); color:#fff;
}
.simple-hero-media { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.simple-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(5,17,34,.92) 0%, rgba(5,17,34,.68) 52%, rgba(5,17,34,.48) 100%); }
.simple-hero-inner { position:relative; z-index:2; width:min(100% - 2rem, var(--content-max-width)); margin-inline:auto; padding:clamp(4rem,9vw,7rem) 0 clamp(3rem,7vw,5rem); }
.simple-eyebrow { color:var(--color-accent); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; font-weight:750; }
.simple-hero h1 { max-width:55rem; margin:.8rem 0 1rem; font-family:var(--font-family-heading); line-height:1.08; }
.simple-hero p { max-width:48rem; font-size:clamp(1rem,1.5vw,1.18rem); color:rgba(255,255,255,.82); }
.content-section { padding:clamp(3rem,7vw,6rem) 1rem; }
.content-inner { width:min(100%, var(--content-max-width)); margin-inline:auto; }
.editorial-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.25rem; margin-top:2rem; }
.editorial-card { overflow:hidden; border:1px solid var(--color-outline); border-radius:var(--border-radius-card); background:var(--color-surface-elevated); box-shadow:var(--shadow-level-1); }
.editorial-card-media { aspect-ratio:16/10; overflow:hidden; }
.editorial-card-media img { width:100%; height:100%; object-fit:cover; }
.editorial-card-body { padding:1.35rem; }
.editorial-card h2, .editorial-card h3 { color:var(--color-primary); font-family:var(--font-family-heading); margin:0 0 .7rem; }
.editorial-card p { color:var(--color-on-surface-secondary); }
.editorial-card ul { margin:.9rem 0 0; padding-left:1.1rem; color:var(--color-on-surface-secondary); }
.editorial-band { background:var(--color-surface-tint); }
.two-col { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2rem,6vw,5rem); align-items:center; }
.two-col-media { overflow:hidden; border-radius:var(--border-radius-card); box-shadow:var(--shadow-level-2); }
.two-col-media img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.copy-stack { display:grid; gap:1rem; }
.copy-stack h2 { color:var(--color-primary); font-family:var(--font-family-heading); font-size:var(--font-size-3xl); line-height:1.15; }
.copy-stack p { color:var(--color-on-surface-secondary); }
.inline-cta { display:inline-flex; width:max-content; margin-top:.5rem; padding:.75rem 1.1rem; border-radius:999px; background:var(--color-primary); color:#fff !important; font-weight:700; }
.inline-cta:hover { background:var(--color-secondary); }

/* Legal pages */
.legal-main { background:var(--color-surface); min-height:60vh; }
.legal-hero { padding:clamp(3.5rem,7vw,6rem) 1rem 2.5rem; background:linear-gradient(135deg,var(--color-primary),color-mix(in srgb,var(--color-primary) 78%, var(--color-secondary))); color:#fff; }
.legal-hero-inner, .legal-content { width:min(100%, var(--content-max-width)); margin-inline:auto; }
.legal-hero h1 { margin:.65rem 0 .75rem; font-family:var(--font-family-heading); font-size:var(--font-size-4xl); line-height:1.1; }
.legal-hero p { max-width:48rem; color:rgba(255,255,255,.8); }
.legal-content { padding:clamp(2.5rem,5vw,4.5rem) 1rem; display:grid; gap:1.4rem; }
.legal-content section { max-width:60rem; }
.legal-content h2 { color:var(--color-primary); font-family:var(--font-family-heading); font-size:var(--font-size-2xl); margin:1rem 0 .55rem; }
.legal-content h3 { color:var(--color-primary); font-size:1.05rem; margin:.8rem 0 .4rem; }
.legal-content p, .legal-content li { color:var(--color-on-surface-secondary); }
.legal-content ul, .legal-content ol { padding-left:1.25rem; margin:.6rem 0; }
.legal-content a { color:var(--color-primary); border-bottom:1px solid color-mix(in srgb,var(--color-accent) 70%, transparent); }
.legal-content a:visited { color:var(--color-primary); }
.legal-content a:hover { color:var(--color-secondary); }
.legal-content a:focus-visible { color:var(--color-primary); }
.legal-content a:active { color:var(--color-secondary); }
.back-home { display:inline-flex; margin-top:.8rem; color:#fff !important; border-bottom:1px solid var(--color-accent); }

.legal-business-block {
  display:grid; gap:.8rem; padding:1rem 1.1rem; border:1px solid color-mix(in srgb,var(--color-accent) 42%, transparent);
  border-radius:var(--border-radius-md); background:color-mix(in srgb,var(--color-primary) 94%, #fff); color:#fff;
}
.legal-business-block strong { color:var(--color-accent); }
.legal-business-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem 1rem; font-size:.82rem; line-height:1.45; }
.legal-business-grid a { color:#fff; }
.legal-main .legal-business-block { width:min(100% - 2rem,var(--content-max-width)); margin:2rem auto 0; }
.travell-footer-legal-wrap { padding-top:var(--spacing-lg); border-top:1px solid rgba(255,255,255,.12); }
.travell-footer-legal-links { display:flex; flex-wrap:wrap; gap:.75rem 1.15rem; margin-top:.8rem; }
.travell-footer-legal-links a { color:rgba(255,255,255,.78); font-size:.82rem; }
.travell-footer-legal-links a:hover { color:var(--color-accent); }
.travell-footer-contact-item a { color:inherit; }

.error-main { min-height:65vh; display:grid; place-items:center; padding:4rem 1rem; text-align:center; }
.error-card { width:min(100%,40rem); padding:3rem 1.5rem; border:1px solid var(--color-outline); border-radius:var(--border-radius-card); background:var(--color-surface-elevated); box-shadow:var(--shadow-level-1); }
.error-code { color:var(--color-accent); font:700 clamp(4rem,14vw,8rem)/1 var(--font-family-heading); }
.error-card h1 { margin:.4rem 0 1rem; color:var(--color-primary); font-family:var(--font-family-heading); }

@media (max-width: 991px) {
  .site-nav { gap:.8rem; }
  .site-nav a { font-size:.72rem; }
  .site-header-cta { padding-inline:.9rem; }
  .editorial-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767px) {
  .hero-section, .hero-title, .section-title { overflow-wrap:anywhere; word-break:break-word; white-space:normal; }
  .site-header-inner { width:min(100% - 1.25rem,var(--content-max-width)); min-height:4.25rem; grid-template-columns:1fr auto; }
  .site-nav, .site-header-cta { display:none; }
  .site-menu-toggle { display:inline-flex; }
  .site-mobile-menu { top:100%; left:0; right:0; }
  .site-brand-name { max-width:min(62vw,17rem); overflow:hidden; text-overflow:ellipsis; }
  .editorial-grid, .two-col, .legal-business-grid { grid-template-columns:1fr; }
  .simple-hero { min-height:31rem; }
  .travell-footer-inner { padding-inline:1rem; }
  .travell-footer-legal-links { flex-direction:column; gap:.55rem; }
  .events-rail-track { touch-action:pan-x pan-y; scrollbar-width:none; }
  .events-rail-track::-webkit-scrollbar { display:none; }
  .legal-content { padding-inline:1rem; }
}
@media (max-width: 479px) {
  .site-brand-mark { width:1.75rem; height:1.75rem; flex-basis:1.75rem; }
  .site-brand-name { font-size:1rem; }
  .site-mobile-menu { padding:.75rem; }
}
