/* Travel Network Canada — final alignment and responsive stabilization layer */
:root {
  --tnc-container: 1280px;
  --tnc-gutter: clamp(1rem, 3vw, 2rem);
  --tnc-control-height: 3rem;
  --tnc-radius: .75rem;
  --tnc-border: #dbe3ec;
  --tnc-text: #172033;
  --tnc-muted: #5c6778;
  --tnc-surface: #ffffff;
  --tnc-surface-soft: #f6f8fb;
  --tnc-primary: #c9252d;
  --tnc-primary-dark: #9f1d24;
}

html { overflow-x: clip; scroll-behavior: smooth; }
body.tnc-site { min-width: 0; overflow-x: clip; }
*, *::before, *::after { box-sizing: border-box; }
img, picture, video, canvas, svg, iframe { display: block; max-width: 100%; }

.container,
.site-container,
.page-content > .container,
.site-main > .container {
  width: min(100% - (2 * var(--tnc-gutter)), var(--tnc-container));
  margin-inline: auto;
}

.site-main,
.page-content {
  width: 100%;
  min-width: 0;
}

.site-header {
  position: relative;
  z-index: 1000;
  width: 100%;
}

.header-inner {
  min-height: 5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}

.logo {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-width: 0;
}
.logo img {
  width: auto;
  height: clamp(2.75rem, 5vw, 4rem);
  object-fit: contain;
}

.main-nav { min-width: 0; margin-left: auto; }
.nav-list {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(.15rem, .75vw, .75rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.nav-item { position: relative; min-width: 0; }
.nav-item > a,
.nav-link,
.dropdown-toggle {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .65rem .75rem;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 650;
  line-height: 1.15;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}
.dropdown-menu {
  top: calc(100% + .4rem);
  margin: 0;
}
.dropdown-mega {
  left: 50%;
  width: min(72rem, calc(100vw - 2rem));
  transform: translateX(-50%);
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.25rem;
}
.dropdown-column { min-width: 0; }
.dropdown-column ul { margin: 0; padding: 0; list-style: none; }

.travel-search-panel,
.tp-search-form {
  width: 100%;
  max-width: var(--tnc-container);
  margin-inline: auto;
  padding: clamp(1rem, 2.5vw, 1.5rem);
  border: 1px solid rgba(15, 23, 42, .1);
  border-radius: clamp(.85rem, 2vw, 1.25rem);
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 1rem 3rem rgba(15, 23, 42, .12);
}

.travel-search-form,
.search-form { width: 100%; min-width: 0; }

.search-fields {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: end;
  gap: .875rem;
}

.form-group,
.search-field {
  grid-column: span 3;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .4rem;
  margin: 0;
}
.search-field--destination { grid-column: span 3; }
.search-field--airport { grid-column: span 3; }
.search-field--date { grid-column: span 2; }
.search-field--compact { grid-column: span 2; }
.search-field--class { grid-column: span 2; }

.form-group label,
.search-field label {
  margin: 0;
  color: var(--tnc-text);
  font-size: .8125rem;
  font-weight: 700;
  line-height: 1.25;
}

.form-group input,
.form-group select,
.search-field input,
.search-field select {
  width: 100%;
  min-width: 0;
  height: var(--tnc-control-height);
  margin: 0;
  padding: .7rem .8rem;
  border: 1px solid var(--tnc-border);
  border-radius: .625rem;
  background: var(--tnc-surface);
  color: var(--tnc-text);
  font: inherit;
  line-height: 1.2;
  box-shadow: none;
}
.form-group input:focus,
.form-group select:focus,
.search-field input:focus,
.search-field select:focus {
  border-color: var(--tnc-primary);
  outline: 3px solid rgba(201, 37, 45, .15);
  outline-offset: 0;
}

.search-buttons {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  gap: .75rem;
  margin-top: 1rem;
}
.search-buttons .btn-primary,
.search-buttons .btn-secondary,
.search-action {
  min-height: var(--tnc-control-height);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  margin: 0;
  padding: .75rem 1.1rem;
  border-radius: .625rem;
  font-weight: 750;
  line-height: 1.15;
  text-align: center;
  white-space: normal;
}
.search-buttons .btn-primary { background: var(--tnc-primary); color: #fff; }
.search-buttons .btn-primary:hover { background: var(--tnc-primary-dark); }
.search-results { width: 100%; min-width: 0; margin-top: 1rem; }
.search-results[hidden] { display: none !important; }

.adsense-slot-container {
  width: 100%;
  max-width: var(--tnc-container);
  min-width: 0;
  margin: clamp(1.5rem, 4vw, 3rem) auto;
  padding: .75rem;
  overflow: hidden;
  text-align: center;
}
.adsense-slot-container .ad-label {
  display: block;
  margin-bottom: .4rem;
  color: var(--tnc-muted);
  font-size: .6875rem;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.adsense-slot-container .adsbygoogle { max-width: 100%; overflow: hidden; }

@media (max-width: 1100px) {
  .header-inner { gap: .75rem; }
  .nav-item > a, .nav-link, .dropdown-toggle { padding-inline: .5rem; font-size: .9rem; }
  .dropdown-mega { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-group, .search-field, .search-field--destination, .search-field--airport { grid-column: span 6; }
  .search-field--date, .search-field--compact, .search-field--class { grid-column: span 3; }
}

@media (max-width: 860px) {
  .header-inner { min-height: 4.5rem; flex-wrap: wrap; }
  .nav-toggle { display: inline-flex; margin-left: auto; }
  .main-nav { flex: 0 0 100%; width: 100%; margin: 0; }
  .main-nav:not(.is-open):not([data-open="true"]) { display: none; }
  .nav-list { width: 100%; align-items: stretch; flex-direction: column; gap: .2rem; padding-bottom: 1rem; }
  .nav-item > a, .nav-link, .dropdown-toggle { width: 100%; justify-content: space-between; text-align: left; }
  .dropdown-menu,
  .dropdown-mega {
    position: static;
    width: 100%;
    max-width: none;
    transform: none;
    box-shadow: none;
  }
  .dropdown-mega { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .search-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-group, .search-field, .search-field--destination, .search-field--airport,
  .search-field--date, .search-field--compact, .search-field--class { grid-column: span 1; }
}

@media (max-width: 600px) {
  :root { --tnc-gutter: 1rem; }
  .header-inner { min-height: 4rem; }
  .logo img { height: 3rem; }
  .dropdown-mega { grid-template-columns: 1fr; }
  .travel-search-panel, .tp-search-form { padding: 1rem; border-radius: .875rem; }
  .search-fields { grid-template-columns: 1fr; gap: .75rem; }
  .form-group, .search-field, .search-field--destination, .search-field--airport,
  .search-field--date, .search-field--compact, .search-field--class { grid-column: 1; }
  .search-buttons { flex-direction: column; }
  .search-buttons > * { width: 100%; }
}
