/* =========================================================================
   Group C — Visit, Visit detail (Tours / Know Before You Go), Careers, Legal
   Sizes in em (design px / 16, or / own font-size). Desktop design: 1440.
   ========================================================================= */

/* ------------------------- Shared ------------------------- */

.gc-wrap {
  padding-left: var(--gutter);
  padding-right: var(--gutter);
}

.gc-kicker {
  font-size: 0.75em;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.gc-kicker.is--gold {
  color: var(--color-gold);
}

.gc-btn {
  min-width: 16.6667em;
  min-height: 3.6667em;
  font-size: 0.75em;
  text-transform: uppercase;
  cursor: pointer;
}

.gc-btn.is--block {
  width: 100%;
  min-width: 0;
  margin-top: auto;
}

main a[href^="tel:"] {
  white-space: nowrap;
}

.gc-right {
  text-align: right;
}

/* Section head: title left, kicker right, rule below */
.gc-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1em;
  padding-bottom: 0.375em;
  margin-bottom: 1.875em;
  border-bottom: 1px solid var(--color-rule);
}

.gc-head__title {
  font-size: 1.5625em;
  line-height: 0.88;
  font-weight: 700;
}

/* ------------------------- Image hero ------------------------- */

.gc-hero {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  height: 37.5em;
  margin-top: calc(2em + 3px);
  padding: 0 var(--gutter) 2em;
  color: var(--color-cream);
}

/* Soft bottom scrim so cream copy stays legible over light archive photos */
.gc-hero .bleed__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(5, 0, 1, 0.55), rgba(5, 0, 1, 0) 60%);
  pointer-events: none;
}

.gc-hero.is--detail {
  height: 33.75em;
  margin-top: 3px;
}

.gc-hero.is--careers {
  height: 30em;
}

.gc-hero__kicker {
  margin-bottom: 1em;
}

.gc-hero__title {
  max-width: 12.5em;
  font-size: 5em;
  line-height: 0.875;
}

.gc-hero__lead {
  max-width: 35em;
  margin-top: 0.875em;
  font-size: 1em;
  line-height: 1.25;
  font-weight: 700;
}

/* ------------------------- Visit: intro ------------------------- */

.gc-intro {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2.5em;
  padding: 7.5em var(--gutter);
}

.gc-intro__title {
  font-size: 2.75em;
  line-height: 1;
}

.gc-intro__text {
  max-width: 44.7059em;
  font-size: 1.0625em;
  line-height: 1.3529;
  font-weight: 500;
}

/* ------------------------- Visit: alternating rows ------------------------- */

.gc-rows {
  display: flex;
  flex-direction: column;
  gap: 0.5625em;
}

.gc-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5625em;
  align-items: center;
  padding: 0 var(--gutter);
  scroll-margin-top: 2em;
}

.gc-row.is--flat {
  padding: 0;
}

.gc-row.is--rev > .gc-row__media {
  order: 2;
}

.gc-row__media {
  overflow: hidden;
}

.gc-row__media img {
  width: 100%;
  height: 35em;
  object-fit: cover;
}

.gc-row__media.is--private img {
  height: 32.5em;
}

.gc-row__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1em;
  padding: 2.5em 6.875em;
}

.gc-row__title {
  font-size: 3.5em;
  line-height: 0.9286;
}

.gc-row__text {
  max-width: 27.0588em;
  font-size: 1.0625em;
  line-height: 1.2941;
  font-weight: 500;
}

/* ------------------------- Visit: info strip ------------------------- */

.gc-info-wrap {
  padding: 8.75em var(--gutter) 10em;
}

.gc-info {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--color-line);
}

.gc-info__cell {
  padding: 1.5em;
  border-right: 1px solid var(--color-line);
}

.gc-info__cell:last-child {
  border-right: 0;
}

.gc-info__cell.is--cta {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75em;
}

.gc-info__value {
  margin-top: 0.3077em;
  font-size: 1.625em;
  line-height: 1.0769;
}

.gc-info__value a {
  text-decoration: none;
}

/* ------------------------- Detail: breadcrumb + section tabs ------------------------- */

.gc-crumbs {
  padding-bottom: 0.8333em;
}

.gc-tabs {
  padding: 1em var(--gutter);
  border-bottom: 1px solid var(--color-line);
}

.gc-tabs__track {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375em;
}

.gc-tab {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  text-decoration: none;
  white-space: nowrap;
}

.gc-tab[aria-current="page"],
.gc-tab[aria-current="page"]:hover {
  background: var(--color-dark);
  border-color: var(--color-dark);
  color: var(--color-cream);
}

/* ------------------------- Detail: experiences ------------------------- */

.gc-tours-sec {
  padding-top: 6.25em;
  scroll-margin-top: 2em;
}

.gc-tours {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5625em;
}

.gc-tour {
  display: flex;
  flex-direction: column;
  gap: 0.625em;
}

.gc-tour__img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.gc-tour__title {
  margin-top: 0.1875em;
  font-size: 2em;
  line-height: 1;
}

.gc-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375em;
}

.gc-pill {
  display: inline-flex;
  align-items: center;
  min-height: 2.1818em;
  padding: 0 0.9091em;
  border: 1px solid var(--color-rule);
  font-size: 0.6875em;
  font-weight: 700;
  text-transform: uppercase;
}

.gc-tour__text {
  font-size: 0.9375em;
  line-height: 1.2667;
  font-weight: 500;
}

/* ------------------------- Detail: private tours ------------------------- */

.gc-private {
  padding-top: 7.5em;
}

.gc-row__body.is--private {
  display: block;
  padding: 1.875em 6.875em;
}

.gc-private__title {
  margin-bottom: 0.28em;
  font-size: 3.125em;
  line-height: 0.96;
}

.gc-row__body.is--private .gc-row__text {
  max-width: none;
  margin-bottom: 1.1765em;
}

/* ------------------------- Detail: Know Before You Go ------------------------- */

.gc-faq {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 27.5em);
  gap: 3.75em;
  align-items: start;
  padding: 8.75em var(--gutter) 10em;
  scroll-margin-top: 0;
}

.gc-faq__title {
  margin-bottom: 0.4286em;
  font-size: 3.5em;
  line-height: 0.9286;
}

.gc-acc .pacc summary {
  min-height: 3.1429em;
  font-size: 0.875em;
}

.gc-acc .pacc p {
  max-width: 50.6667em;
  margin: 0 0 1.2em;
  font-size: 0.9375em;
  line-height: 1.3333;
}

.gc-card {
  position: sticky;
  top: 2.75em;
  display: flex;
  flex-direction: column;
  gap: 0.875em;
  padding: 1.25em;
  border: 1px solid var(--color-line);
}

.gc-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 4 / 3;
  background: var(--color-leaf);
  border: 1px solid var(--color-line);
  color: var(--color-gold);
  font-size: 0.75em;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
}

.gc-card__row {
  display: flex;
  justify-content: space-between;
  gap: 0.8571em;
  font-size: 0.875em;
  line-height: 1.2857;
  font-weight: 500;
}

.gc-card__row .gc-kicker {
  font-size: 0.8571em;
}

.gc-card__row a {
  text-decoration: none;
}

.gc-card .gc-btn {
  min-width: 0;
}

/* ------------------------- Detail: booking dialog ------------------------- */

.gc-dialog {
  width: min(40em, calc(100% - 2em));
  max-height: calc(100% - 4em);
  padding: 2em;
  background: var(--color-cream);
  color: var(--color-dark);
  border: 1px solid var(--color-line);
  font-size: inherit;
}

.gc-dialog::backdrop {
  background: rgba(5, 0, 1, 0.6);
}

.gc-dialog__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1em;
  margin-bottom: 1.5em;
}

.gc-dialog__title {
  font-size: 2.5em;
  line-height: 0.95;
}

.gc-dialog__close {
  padding: 0.5em 0;
  background: none;
  border: 0;
  font-size: 0.75em;
  font-weight: 700;
  text-transform: uppercase;
  cursor: pointer;
}

.gc-dialog__close:hover {
  color: var(--color-hover);
}

.gc-dialog select.form__input {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 1.5em;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23050001' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 0.25em center / 0.6em auto;
  cursor: pointer;
}

/* ------------------------- Careers ------------------------- */

.gc-values-sec {
  padding-top: 6.25em;
}

.gc-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.5em;
}

.gc-value {
  padding-top: 0.875em;
  border-top: 1px solid var(--color-dark);
}

.gc-value__title {
  margin-bottom: 0.25em;
  font-size: 2em;
  line-height: 1;
}

.gc-value__text {
  font-size: 0.9375em;
  line-height: 1.2667;
  font-weight: 500;
}

.gc-jobs-sec {
  padding-top: 7.5em;
  padding-bottom: 10em;
}

.gc-jobs__cols {
  display: grid;
  grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
  gap: 1.6667em;
  padding: 0 3.3333em 0.8333em 0;
}

.gc-job summary {
  min-height: 5.1429em;
  font-size: 0.875em;
}

.gc-job__grid {
  display: grid;
  flex: 1;
  grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr));
  gap: 1.4286em;
  align-items: center;
  padding-right: 1.4286em;
}

.gc-job__title {
  font-size: 2em;
  line-height: 1;
  font-weight: 400;
  text-transform: none;
}

.gc-job__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.875em;
  max-width: 47.5em;
  padding-bottom: 1.5em;
}

.gc-job__body p {
  margin: 0;
  font-size: 0.9375em;
  line-height: 1.3333;
}

.gc-jobs__note {
  margin-top: 2.6667em;
  font-size: 0.9375em;
  font-weight: 500;
}

/* ------------------------- Legal ------------------------- */

.gc-legal-head {
  margin: 0 var(--gutter);
  padding: 7em 0 2.5em;
  border-bottom: 1px solid var(--color-rule);
}

.gc-legal-docs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em 1.5em;
  margin-bottom: 2em;
}

.gc-legal-docs a {
  color: var(--color-gold);
}

.gc-legal-docs a[aria-current="page"],
.gc-legal-docs a:hover {
  color: var(--color-dark);
}

.gc-legal-head__title {
  font-size: 4.5em;
  line-height: 0.9167;
}

.gc-legal-head__date {
  margin-top: 1em;
}

.gc-legal {
  display: grid;
  grid-template-columns: 16.25em minmax(0, 47.5em);
  gap: 5em;
  padding: 3.75em var(--gutter) 10em;
}

.gc-legal__toc {
  position: sticky;
  top: 3.75em;
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 0.625em;
}

.gc-legal__toc a {
  font-size: 0.8125em;
  font-weight: 700;
  text-decoration: none;
}

.gc-prose h2 {
  margin: 1.2222em 0 0.3889em;
  font-size: 2.25em;
  line-height: 1.0556;
  scroll-margin-top: 1.5em;
}

.gc-prose h2:first-child {
  margin-top: 0;
}

.gc-prose p {
  margin: 0 0 1em;
  font-size: 1.125em;
  line-height: 1.5;
  font-weight: 500;
}

/* ------------------------- Tablet ------------------------- */

@media screen and (max-width: 991px) {
  .gc-hero__title {
    font-size: 4em;
  }

  .gc-row__media img {
    height: 26em;
  }

  .gc-row__body,
  .gc-row__body.is--private {
    padding: 2em 2.5em;
  }

  .gc-row__title {
    font-size: 2.75em;
  }

  .gc-private__title {
    font-size: 2.5em;
  }

  .gc-info {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gc-info__cell:nth-child(2) {
    border-right: 0;
  }

  .gc-info__cell:nth-child(-n + 2) {
    border-bottom: 1px solid var(--color-line);
  }

  .gc-tour__title {
    font-size: 1.625em;
  }

  .gc-faq {
    grid-template-columns: minmax(0, 1fr);
    gap: 3em;
  }

  .gc-card {
    position: static;
  }

  .gc-legal {
    grid-template-columns: 12em minmax(0, 1fr);
    gap: 3em;
  }

  .gc-job__title {
    font-size: 1.5714em;
  }
}

/* ------------------------- Mobile ------------------------- */

@media screen and (max-width: 767px) {
  .gc-wrap,
  .gc-hero,
  .gc-intro,
  .gc-row,
  .gc-info-wrap,
  .gc-tabs,
  .gc-faq,
  .gc-legal {
    padding-left: 0.5625em;
    padding-right: 0.5625em;
  }

  .gc-hero {
    height: 30em;
    margin-top: calc(2.3125em + 3px);
    padding-bottom: 1.5em;
  }

  .gc-hero.is--detail,
  .gc-hero.is--careers {
    height: 26em;
  }

  .gc-hero.is--detail {
    margin-top: 3px;
  }

  .gc-hero__title {
    font-size: 2.75em;
    line-height: 0.9091;
  }

  .gc-crumbs {
    margin-top: 3.0833em;
    padding: 1em 0.75em 0.8333em;
  }

  /* Visit */
  .gc-intro {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5em;
    padding-top: 5em;
    padding-bottom: 5em;
  }

  .gc-intro__title {
    font-size: 2.25em;
    line-height: 1;
  }

  .gc-rows {
    gap: 3em;
  }

  .gc-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
  }

  .gc-row.is--rev > .gc-row__media {
    order: 0;
  }

  .gc-row__media img,
  .gc-row__media.is--private img {
    height: 22em;
  }

  .gc-row__body,
  .gc-row__body.is--private {
    gap: 0.75em;
    padding: 1.25em 0 0;
  }

  .gc-row__title,
  .gc-private__title {
    font-size: 2.5em;
    line-height: 0.95;
  }

  .gc-info-wrap {
    padding-top: 6em;
    padding-bottom: 7em;
  }

  .gc-info {
    grid-template-columns: minmax(0, 1fr);
  }

  .gc-info__cell,
  .gc-info__cell:nth-child(2) {
    border-right: 0;
    border-bottom: 1px solid var(--color-line);
  }

  .gc-info__cell:last-child {
    border-bottom: 0;
  }

  .gc-info__cell.is--cta .gc-btn {
    width: 100%;
  }

  /* Detail: tabs + cards become horizontal scrollers */
  .gc-tabs {
    padding-top: 0.75em;
    padding-bottom: 0.75em;
  }

  .gc-tabs__track {
    flex-wrap: nowrap;
    margin: 0 -0.5625em;
    padding: 0 0.5625em;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .gc-tabs__track::-webkit-scrollbar {
    display: none;
  }

  .gc-tours-sec {
    padding-top: 4em;
  }

  .gc-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5em;
  }

  .gc-tours {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: 82%;
    margin: 0 -0.5625em;
    padding: 0 0.5625em 0.5em;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 0.5625em;
    scrollbar-width: none;
  }

  .gc-tours::-webkit-scrollbar {
    display: none;
  }

  .gc-tour {
    scroll-snap-align: start;
  }

  .gc-private {
    padding-top: 5em;
  }

  .gc-faq {
    padding-top: 6em;
    padding-bottom: 7em;
  }

  .gc-faq__title {
    font-size: 2.5em;
  }

  .gc-dialog {
    width: calc(100% - 1.125em);
    padding: 1.25em;
  }

  .gc-dialog .form__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5em;
  }

  .gc-dialog .btn-dark.is--submit {
    width: 100%;
  }

  /* Careers */
  .gc-values-sec {
    padding-top: 4em;
  }

  .gc-values {
    grid-template-columns: minmax(0, 1fr);
    gap: 2em;
  }

  .gc-jobs-sec {
    padding-top: 5em;
    padding-bottom: 7em;
  }

  .gc-jobs__cols {
    display: none;
  }

  .gc-job summary {
    min-height: 0;
    padding: 1.0714em 0;
    align-items: flex-start;
  }

  .gc-job__grid {
    grid-template-columns: repeat(3, auto);
    justify-content: start;
    gap: 0.5em 1.0714em;
    padding-right: 1.0714em;
  }

  .gc-job__title {
    grid-column: 1 / -1;
    font-size: 1.8571em;
  }

  .gc-job__meta {
    color: var(--color-hover);
    font-size: 0.8571em;
  }

  .gc-job__body .gc-btn {
    width: 100%;
  }

  /* Legal */
  .gc-legal-head {
    margin: 0 0.5625em;
    padding: 5.8125em 0 2em;
  }

  .gc-legal-docs {
    gap: 0.5em 1.25em;
    margin-bottom: 1.5em;
  }

  .gc-legal-head__title {
    font-size: 2.75em;
    line-height: 0.9091;
  }

  .gc-legal {
    grid-template-columns: minmax(0, 1fr);
    gap: 2.5em;
    padding-top: 2.5em;
    padding-bottom: 7em;
  }

  .gc-legal__toc {
    position: static;
  }

  .gc-prose h2 {
    font-size: 1.875em;
  }

  .gc-prose p {
    font-size: 1em;
  }
}
