/* =====================================================================
   Chauffeur Austin: homepage, "Grand Touring" hybrid (October 2026)
   70% modern automotive luxury · 20% hospitality arrival · 10% studio
   composition. Loaded only on the homepage, after site.css. Inner pages
   keep site.css until this direction is approved for them.
   Type: Archivo (variable width + weight: expanded for the automotive
   voice, condensed for event numerals) and Cormorant Garamond for the
   hospitality voice. Colours below are WCAG-checked for the pairs used.
   ===================================================================== */

@font-face { font-family: "Archivo"; src: url("/assets/fonts/archivo-latin-wdth-normal.woff2") format("woff2"); font-weight: 100 900; font-stretch: 62% 125%; font-style: normal; font-display: swap; }

.page-home {
  --carbon: #0d0c0b;
  --graphite: #181614;
  --steel: #27231f;
  --titanium: #8b9097;      /* decorative / large text on carbon */
  --alu: #d4d6d9;
  --porcelain: #f3f2ef;
  --studio: #e8e7e3;
  --white: #fbfaf8;
  --limestone: #ece4d6;
  --travertine: #d9ccb5;
  --walnut: #5d4836;        /* text/buttons on limestone (6.8:1) */
  --espresso: #2b241d;
  --night: #0f1424;
  --night-2: #182038;
  --copper: #b5683a;        /* button fill, carbon text (4.7:1) */
  --copper-hi: #c97a4a;
  --copper-ink: #8f4a22;    /* accent text on light (5.9:1) */
  --copper-lt: #dc9a6a;     /* accent text on dark (8.3:1) */
  --ink: #121316;
  --ink-2: #4c4f55;         /* 7.3:1 on porcelain */
  --on-dark: #eceae5;
  --on-dark-2: #a9adb3;     /* 8.7:1 on carbon */
  --hair: rgba(18, 19, 22, .14);
  --hair-dark: rgba(236, 234, 229, .16);

  --gt-sans: "Archivo", "Helvetica Neue", Arial, sans-serif;
  --gt-serif: "Cormorant Garamond", "Iowan Old Style", Georgia, serif;
  --gt-sec: clamp(5rem, 10vw, 9.5rem);
  --gt-ease: cubic-bezier(.22, .7, .12, 1);
  --header-h: 84px;
}

body.page-home { font-family: var(--gt-sans); font-stretch: 100%; font-size: 1.0625rem; line-height: 1.65; color: var(--ink); background: var(--porcelain); }
.page-home ::selection { background: var(--copper); color: var(--carbon); }
.page-home :focus-visible { outline: 2px solid var(--copper-ink); outline-offset: 3px; }
.page-home .gt-hero :focus-visible, .page-home .site-header :focus-visible, .page-home .trust :focus-visible, .page-home .gt-manifesto :focus-visible,
.page-home .gt-corp :focus-visible, .page-home .gt-events :focus-visible, .page-home .gt-vista :focus-visible, .page-home .gt-finale :focus-visible,
.page-home .gt-spot :focus-visible, .page-home .site-footer :focus-visible { outline-color: var(--copper-lt); }
.page-home .wrap { max-width: calc(1320px + 2 * var(--gutter)); }

/* ---------- Shared type ---------- */
.gt-kicker { display: flex; align-items: center; gap: 1rem; margin: 0 0 1.6rem; font-family: var(--gt-sans); font-stretch: 125%; font-size: .74rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--on-dark-2); }
.gt-kicker::before { content: ""; width: 2.2rem; height: 1px; background: var(--copper); flex: none; }
.gt-kicker--ink { color: var(--copper-ink); }
.gt-kicker--warm { color: var(--walnut); }
.gt-kicker--warm::before { background: var(--walnut); }
.gt-h2 { margin: 0; font-family: var(--gt-sans); font-stretch: 112%; font-weight: 300; font-size: clamp(2.25rem, 4.4vw, 4rem); line-height: 1.04; letter-spacing: -.02em; color: var(--ink); text-wrap: balance; }
.gt-h2 em, .gt-hero__title em, .gt-manifesto__h em, .gt-finale__h em { font-family: var(--gt-serif); font-style: italic; font-weight: 500; font-stretch: normal; font-size: 1.12em; letter-spacing: -.005em; line-height: .9; color: var(--copper-ink); }
.gt-h2--light { color: var(--white); }
.gt-h2--light em { color: var(--copper-lt); }
.gt-h2--serif { font-family: var(--gt-serif); font-stretch: normal; font-weight: 500; font-size: clamp(2.6rem, 5vw, 4.6rem); line-height: 1; letter-spacing: -.01em; color: var(--espresso); }
.gt-h2--serif em { font-size: 1em; color: var(--walnut); }
.gt-lede { margin: 1.6rem 0 0; max-width: 34em; font-size: 1.125rem; line-height: 1.7; color: var(--ink-2); }
.gt-lede--dark { color: var(--on-dark-2); }
.gt-small { font-size: .9rem; color: var(--ink-2); margin: 1.4rem 0 0; }
.gt-small--dark { color: var(--on-dark-2); }

/* ---------- Buttons & links ---------- */
.gt-btn { display: inline-flex; align-items: center; justify-content: center; gap: .9rem; min-height: 3.5rem; padding: 0 1.9rem; font-family: var(--gt-sans); font-stretch: 112%; font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; border: 1px solid transparent; border-radius: 0; cursor: pointer; transition: background-color .4s var(--gt-ease), color .4s var(--gt-ease), border-color .4s var(--gt-ease); }
.gt-btn .icon { transition: transform .4s var(--gt-ease); }
.gt-btn:hover .icon, .gt-link:hover .icon { transform: translateX(5px); }
.gt-btn--lg { min-height: 4rem; padding: 0 2.4rem; }
.gt-btn--copper { background: var(--copper); color: var(--carbon); }
.gt-btn--copper:hover { background: var(--copper-hi); color: var(--carbon); }
.gt-btn--ink { background: var(--carbon); color: var(--white); }
.gt-btn--ink:hover { background: var(--steel); color: var(--white); }
.gt-btn--walnut { background: var(--walnut); color: var(--white); }
.gt-btn--walnut:hover { background: var(--espresso); color: var(--white); }
.gt-btn--ghost { color: var(--white); border-color: rgba(251, 250, 248, .5); background: transparent; }
.gt-btn--ghost:hover { background: var(--white); color: var(--carbon); }
.gt-link { display: inline-flex; align-items: center; gap: .7rem; padding-bottom: .35rem; font-stretch: 112%; font-size: .74rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; text-decoration: none; color: var(--ink); border-bottom: 1px solid currentColor; }
.gt-link .icon { transition: transform .4s var(--gt-ease); }
.gt-link:hover { color: var(--copper-ink); }
.gt-link--light { color: var(--white); }
.gt-link--light:hover { color: var(--copper-lt); }

/* ---------- Header on the homepage ---------- */
.page-home .site-header { --header-h: 84px; height: var(--header-h); margin-bottom: calc(-1 * var(--header-h)); background: linear-gradient(180deg, rgba(10, 9, 8, .62), rgba(10, 9, 8, 0)); border-bottom: 1px solid transparent; }
.page-home .site-header.is-solid, .page-home.nav-open .site-header { background: rgba(13, 12, 11, .96); border-bottom-color: var(--hair-dark); }
.page-home .site-header__in { max-width: calc(1440px + 2 * var(--gutter)); }
.page-home .wordmark { font-family: var(--gt-sans); font-stretch: 125%; font-weight: 600; font-size: .9rem; letter-spacing: .34em; text-transform: uppercase; color: var(--white); }
.page-home .wordmark span { font-style: normal; font-weight: 300; color: var(--white); }
.page-home .nav-link { font-family: var(--gt-sans); font-stretch: 112%; font-size: .7rem; font-weight: 500; letter-spacing: .2em; color: var(--on-dark); }
.page-home .nav-link::after { background: var(--copper); }
.page-home .nav-tel { font-stretch: 112%; font-size: .82rem; letter-spacing: .06em; }
.page-home .nav-actions .btn { font-family: var(--gt-sans); font-stretch: 112%; background: transparent; color: var(--white); border-color: rgba(251, 250, 248, .55); letter-spacing: .2em; font-size: .68rem; padding: .85rem 1.25rem; }
.page-home .nav-actions .btn:hover { background: var(--copper); border-color: var(--copper); color: var(--carbon); }
.page-home .subnav { font-family: var(--gt-sans); background: var(--white); border-top-color: var(--copper); }
.page-home .subnav a:hover, .page-home .subnav a[aria-current="page"] { background: var(--studio); }
@media (max-width: 1179.98px) {
  .page-home .site-nav { background: linear-gradient(rgba(13, 12, 11, .94), rgba(13, 12, 11, .94)), url("/assets/images/texture-contours.svg") center / cover no-repeat, var(--carbon); }
  .page-home .nav-link { font-family: var(--gt-sans); font-stretch: 112%; font-weight: 300; font-size: 1.9rem; letter-spacing: -.01em; text-transform: none; }
  .page-home .nav-link:hover, .page-home .nav-item.is-current > .nav-link { color: var(--copper-lt); }
  .page-home .nav-item { border-bottom-color: var(--hair-dark); }
  .page-home .nav-toggle { font-family: var(--gt-sans); font-stretch: 112%; border-color: rgba(251, 250, 248, .35); }
  .page-home .nav-actions .btn { background: var(--copper); border-color: var(--copper); color: var(--carbon); padding: 1.1rem; }
}

/* =====================================================================
   A. HERO
   ===================================================================== */
.gt-hero { position: relative; isolation: isolate; overflow: clip; background: var(--carbon); color: var(--white); }
.gt-hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.gt-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 72% 62%; transform: scale(1.03); transform-origin: 80% 75%; animation: gt-settle 2.6s var(--gt-ease) both; }
@keyframes gt-settle { from { transform: scale(1.1); } to { transform: scale(1.03); } }
.gt-hero__shade { position: absolute; inset: 0; z-index: -1; pointer-events: none; background:
  linear-gradient(90deg, rgba(10, 9, 8, .8) 0%, rgba(10, 9, 8, .45) 30%, rgba(10, 9, 8, 0) 56%),
  linear-gradient(0deg, rgba(10, 9, 8, .92) 0%, rgba(10, 9, 8, .35) 22%, rgba(10, 9, 8, 0) 40%),
  linear-gradient(180deg, rgba(10, 9, 8, .55) 0%, rgba(10, 9, 8, 0) 18%); }
.gt-hero__inner { position: relative; min-height: clamp(44rem, 100svh, 68rem); display: flex; flex-direction: column; justify-content: flex-start; padding-top: calc(var(--header-h) + clamp(3rem, 10vh, 7rem)); padding-bottom: 15.5rem; }
.gt-hero__copy { max-width: 34rem; }
.gt-hero__copy > * { animation: gt-rise 1.2s var(--gt-ease) both; }
.gt-hero__copy > h1 { animation: none; }
.gt-hero__copy > :nth-child(3) { animation-delay: .15s; }
.gt-hero__copy > :nth-child(4) { animation-delay: .3s; }
@keyframes gt-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
.gt-hero .gt-kicker { color: var(--alu); }
.gt-hero__title { margin: 0; font-family: var(--gt-sans); font-stretch: 116%; font-weight: 250; font-size: clamp(2.5rem, 4.4vw, 4.5rem); line-height: 1.02; letter-spacing: -.03em; color: var(--white); text-wrap: balance; }
.gt-hero__title em { color: var(--copper-lt); }
.gt-hero__lede { margin: 1.8rem 0 0; max-width: 31em; font-size: 1.08rem; line-height: 1.7; color: #c9cbcf; }
.gt-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin: 2.2rem 0 0; }
.gt-hero__scroll { position: absolute; right: var(--gutter); bottom: 15.5rem; display: none; flex-direction: column; align-items: center; gap: .9rem; margin: 0; font-stretch: 125%; font-size: .68rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: rgba(236, 234, 229, .7); writing-mode: vertical-rl; }
.gt-hero__scroll span { width: 1px; height: 4rem; background: linear-gradient(180deg, transparent, rgba(236, 234, 229, .7)); }

/* Reservation console (the hero quote bar): one white panel, title + vehicle choice above the fields. */
.gt-hero__console { position: absolute; left: 0; right: 0; bottom: clamp(1.5rem, 3vw, 2.75rem); margin-inline: auto; z-index: 2; animation: gt-rise 1.2s .45s var(--gt-ease) both; }
.gt-console { position: relative; background: var(--white); color: var(--ink); border-top: 2px solid var(--copper); box-shadow: 0 50px 90px -45px rgba(0, 0, 0, .75); }
.gt-console__title { position: absolute; left: 1.5rem; top: .95rem; margin: 0; font-stretch: 112%; font-size: .98rem; font-weight: 400; letter-spacing: -.005em; color: var(--ink); pointer-events: none; }
.gt-console__title em { font-family: var(--gt-serif); font-style: italic; font-weight: 500; font-size: 1.45rem; letter-spacing: 0; color: var(--copper-ink); }
.page-home .quote-bar { display: grid; grid-template-columns: 1.35fr 1.35fr .85fr .75fr auto; background: none; border: 0; box-shadow: none; color: var(--ink); animation: none; }
.page-home .quote-bar__veh { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: .1rem 1.5rem; margin: 0; padding: .55rem 1.5rem; min-height: 3.4rem; border: 0; border-bottom: 1px solid var(--hair); min-width: 0; }
.page-home .quote-bar__legend { float: left; margin: 0 .4rem 0 0; padding: 0; width: auto; font-stretch: 125%; font-size: .66rem; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--ink-2); }
.page-home .quote-bar__opt { position: relative; display: inline-flex; cursor: pointer; }
.page-home .quote-bar__opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.page-home .quote-bar__opt span { display: inline-block; padding: .6rem 0 .5rem; font-stretch: 112%; font-size: .76rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); border-bottom: 2px solid transparent; transition: color .3s, border-color .3s; }
.page-home .quote-bar__opt:hover span { color: var(--ink); }
.page-home .quote-bar__opt input:checked + span { color: var(--ink); border-bottom-color: var(--copper); }
.page-home .quote-bar__opt input:focus-visible + span { outline: 2px solid var(--copper-ink); outline-offset: 4px; }
.page-home .quote-bar__field { position: relative; background: transparent; padding: 1.15rem 1.5rem 1.05rem; border: 0; border-right: 1px solid var(--hair); min-width: 0; transition: background-color .3s; }
.page-home .quote-bar__field:nth-of-type(4) { border-right: 0; }
.page-home .quote-bar__field::after { content: ""; position: absolute; left: 1.5rem; right: 1.5rem; bottom: 0; height: 2px; background: var(--copper); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--gt-ease); }
.page-home .quote-bar__field:focus-within::after { transform: scaleX(1); }
.page-home .quote-bar label:not(.quote-bar__opt) { display: block; font-stretch: 125%; font-size: .66rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--copper-ink); }
.page-home .quote-bar input[type="text"], .page-home .quote-bar input[type="date"], .page-home .quote-bar input[type="time"] { width: 100%; border: 0; background: transparent; padding: .45rem 0 0; font-family: var(--gt-sans); font-size: 1.06rem; color: var(--ink); min-height: 2.2rem; }
.page-home .quote-bar input::placeholder { color: #6a6e75; }
.page-home .quote-bar input:focus-visible { outline: 0; box-shadow: none; }
.page-home .quote-bar__field:focus-within { background: #fff; }
.page-home .quote-bar__go { grid-column: auto; min-height: 5.4rem; padding: 0 2.6rem; display: inline-flex; align-items: center; justify-content: center; gap: .9rem; background: var(--copper); color: var(--carbon); border: 0; font-family: var(--gt-sans); font-stretch: 112%; font-size: .8rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; transition: background-color .4s var(--gt-ease); }
.page-home .quote-bar__go:hover { background: var(--copper-hi); color: var(--carbon); }
.page-home .quote-bar__go:focus-visible { outline: 2px solid var(--carbon); outline-offset: -6px; }

@media (max-width: 1199.98px) {
  /* Phones/tablets: the vehicle gets the top of the screen; the copy starts where the image fades to carbon. */
  .gt-hero__media { inset: 0 0 auto 0; height: min(64svh, 34rem); }
  .gt-hero__media img { object-position: 74% 78%; transform: none; animation: none; }
  .gt-hero__shade { inset: 0 0 auto 0; height: min(64svh, 34rem); background: linear-gradient(0deg, var(--carbon) 0%, rgba(13, 12, 11, .55) 28%, rgba(13, 12, 11, 0) 55%), linear-gradient(180deg, rgba(10, 9, 8, .6) 0%, rgba(10, 9, 8, 0) 25%); }
  .gt-hero__inner { min-height: auto; padding-top: calc(min(64svh, 34rem) - 7.5rem); padding-bottom: 2.2rem; }
  .gt-hero__copy { max-width: 40rem; }
  .gt-hero__console { position: relative; bottom: auto; padding-bottom: 2.4rem; }
  .gt-console__title { position: static; padding: 1.1rem 1.25rem 0; }
  .page-home .quote-bar { grid-template-columns: 1fr 1fr; }
  .page-home .quote-bar__veh { justify-content: flex-start; padding: .3rem 1.25rem .5rem; gap: 0 1.2rem; }
  .page-home .quote-bar__legend { width: 100%; float: none; margin: 0; padding-top: .6rem; }
  .page-home .quote-bar__field { padding-inline: 1.25rem; border-right: 0; border-bottom: 1px solid var(--hair); }
  .page-home .quote-bar__field::after { left: 1.25rem; right: 1.25rem; }
  .page-home .quote-bar__field:nth-of-type(3) { border-right: 1px solid var(--hair); }
  .page-home .quote-bar__field:nth-of-type(1), .page-home .quote-bar__field:nth-of-type(2) { grid-column: 1 / -1; }
  .page-home .quote-bar__go { grid-column: 1 / -1; min-height: 3.8rem; }
}

/* ---------- Credentials strip (trust) ---------- */
.page-home .trust { background: var(--carbon); color: var(--on-dark); border: 0; }
.page-home .trust .gt-trust__row { display: flex; flex-wrap: wrap; gap: 0; border-top: 1px solid var(--hair-dark); }
.page-home .gt-trust__cell { display: flex; align-items: baseline; gap: 1rem; padding: 1.35rem 2.2rem 1.35rem 0; margin-right: 2.2rem; border-right: 1px solid var(--hair-dark); }
.page-home .gt-trust__cell:last-child { border-right: 0; }
.page-home .gt-trust__k { font-stretch: 125%; font-size: .66rem; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: var(--copper-lt); }
.page-home .gt-trust__v { font-size: .95rem; color: var(--on-dark); }
.page-home .gt-trust__v a { color: inherit; text-decoration: none; }
@media (max-width: 767.98px) { .page-home .gt-trust__cell { flex-direction: column; gap: .3rem; padding-right: 0; margin-right: 0; border-right: 0; width: 100%; } .page-home .gt-trust__cell + .gt-trust__cell { border-top: 1px solid var(--hair-dark); } }

/* =====================================================================
   C. SERVICES: image-led navigation
   ===================================================================== */
.gt-svc { position: relative; z-index: 1; padding-block: var(--gt-sec); background: var(--porcelain); }
.gt-svc__grid { display: grid; grid-template-columns: 1fr; gap: 0 clamp(3rem, 6vw, 7rem); }
.gt-svc__head { margin-bottom: clamp(2.4rem, 4vw, 3.5rem); }
.gt-svc__head .gt-kicker { color: var(--copper-ink); }
.gt-svc__list { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--hair); counter-reset: none; }
.gt-svc__item { position: relative; display: grid; grid-template-columns: 3.2rem 1fr auto; align-items: center; gap: .3rem 1.2rem; padding: 1.35rem 0; border-top: 1px solid var(--hair); text-decoration: none; color: var(--ink-2); transition: color .35s, padding-left .5s var(--gt-ease); }
.gt-svc__item::before { content: ""; position: absolute; left: 0; top: -1px; width: 0; height: 1px; background: var(--copper); transition: width .7s var(--gt-ease); }
.gt-svc__no { align-self: start; padding-top: .3rem; font-family: var(--gt-serif); font-style: italic; font-weight: 500; font-size: 1.2rem; color: var(--copper-ink); }
.gt-svc__text { display: flex; flex-direction: column; gap: .3rem; min-width: 0; }
.gt-svc__name { font-stretch: 112%; font-weight: 300; font-size: clamp(1.55rem, 2.4vw, 2.15rem); line-height: 1.1; letter-spacing: -.015em; color: var(--ink-2); transition: color .35s; }
.gt-svc__desc { font-size: .95rem; line-height: 1.55; color: var(--ink-2); max-width: 30rem; }
.gt-svc__thumb { display: none; }
.gt-svc__go { display: inline-grid; place-items: center; width: 2.9rem; height: 2.9rem; border: 1px solid var(--hair); border-radius: 50%; color: var(--ink); transition: background-color .35s, color .35s, border-color .35s, transform .45s var(--gt-ease); }
.gt-svc__item:hover, .gt-svc__item.is-active { color: var(--ink); }
.gt-svc__item:hover .gt-svc__name, .gt-svc__item.is-active .gt-svc__name { color: var(--ink); }
.gt-svc__item:hover::before, .gt-svc__item.is-active::before { width: 100%; }
.gt-svc__item:hover .gt-svc__go, .gt-svc__item.is-active .gt-svc__go { background: var(--carbon); border-color: var(--carbon); color: var(--white); }
.gt-svc__stage { display: none; }
@media (min-width: 992px) {
  .gt-svc__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); grid-template-rows: auto 1fr; }
  .gt-svc__head { grid-column: 1; }
  .gt-svc__list { grid-column: 1; }
  .gt-svc__item:hover, .gt-svc__item.is-active { padding-left: .9rem; }
  .gt-svc__stage { display: block; grid-column: 2; grid-row: 1 / span 2; position: sticky; top: calc(var(--header-h) + 1.5rem); align-self: start; height: min(78vh, 46rem); overflow: hidden; background: var(--carbon); }
  .gt-svc__slide { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .8s var(--gt-ease); }
  .gt-svc__slide img { width: 100%; height: 100%; object-fit: cover; object-position: 65% 50%; transform: scale(1.06); transition: transform 1.6s var(--gt-ease); }
  .gt-svc__slide.is-active { opacity: 1; }
  .gt-svc__slide.is-active img { transform: scale(1); }
  .gt-svc__slide figcaption { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: baseline; gap: 1.2rem; padding: 4rem 2rem 1.8rem; background: linear-gradient(0deg, rgba(10, 9, 8, .78), rgba(10, 9, 8, 0)); color: var(--white); font-stretch: 112%; font-weight: 300; font-size: 1.6rem; letter-spacing: -.01em; }
  .gt-svc__slide figcaption span { font-family: var(--gt-serif); font-style: italic; font-weight: 500; font-size: 1.3rem; color: var(--copper-lt); }
}
@media (max-width: 991.98px) {
  .gt-svc__item { grid-template-columns: 2.2rem 1fr 6.5rem; }
  .gt-svc__thumb { display: block; width: 6.5rem; aspect-ratio: 1; overflow: hidden; background: var(--studio); }
  .gt-svc__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: 65% 50%; }
  .gt-svc__go { display: none; }
  .gt-svc__name { color: var(--ink); }
}

/* =====================================================================
   E. AIRPORT: five-star arrival (hospitality voice)
   ===================================================================== */
.gt-arrive { position: relative; overflow-x: clip; padding-block: var(--gt-sec); background: var(--limestone); color: var(--espresso); }
.gt-arrive__grid { display: grid; grid-template-columns: 1fr; gap: 3.5rem clamp(3rem, 7vw, 8rem); align-items: center; }
.gt-arrive__arch { position: relative; margin: 0; isolation: isolate; max-width: 34rem; width: 100%; }
.gt-arrive__arch picture, .gt-arrive__arch img { display: block; width: 100%; }
.gt-arrive__arch img { aspect-ratio: 4 / 5; height: auto; object-fit: cover; border-radius: 999px 999px 0 0; }
.gt-arrive__arch::after { content: ""; position: absolute; inset: 1.4rem -1.4rem -1.4rem 1.4rem; border: 1px solid var(--walnut); border-radius: 999px 999px 0 0; opacity: .45; z-index: -1; }
.gt-arrive__copy { max-width: 38rem; }
.gt-arrive .gt-lede { color: var(--walnut); }
.gt-itin { list-style: none; margin: 2.6rem 0 0; padding: 0; position: relative; }
.gt-itin::before { content: ""; position: absolute; left: .9rem; top: 1rem; bottom: 1rem; width: 1px; background: repeating-linear-gradient(180deg, var(--walnut) 0 3px, transparent 3px 9px); opacity: .55; }
.gt-itin__step { position: relative; display: grid; grid-template-columns: 2rem 1fr; gap: 1.4rem; padding: .9rem 0 1.3rem; }
.gt-itin__no { position: relative; z-index: 1; display: inline-grid; place-items: center; width: 1.85rem; height: 1.85rem; border-radius: 50%; background: var(--limestone); border: 1px solid var(--walnut); font-family: var(--gt-serif); font-style: italic; font-weight: 500; font-size: .95rem; color: var(--walnut); }
.gt-itin__body { display: flex; flex-direction: column; gap: .3rem; padding-top: .1rem; }
.gt-itin__t { font-weight: 600; font-size: 1.02rem; color: var(--espresso); }
.gt-itin__d { color: var(--walnut); font-size: .98rem; line-height: 1.6; }
.gt-arrive__cta { margin: 2.2rem 0 0; }
@media (min-width: 992px) {
  .gt-arrive__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); }
  .gt-arrive__arch { margin-top: calc(-1 * var(--gt-sec) - 2rem); }
}

/* =====================================================================
   B. MANIFESTO (why)
   ===================================================================== */
.gt-manifesto { position: relative; isolation: isolate; overflow: clip; padding-block: calc(var(--gt-sec) * 1.1); background: var(--carbon); color: var(--on-dark); }
.gt-manifesto::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(60% 70% at 85% 10%, rgba(181, 104, 58, .16), transparent 60%), url("/assets/images/texture-contours.svg") center / cover no-repeat; opacity: .9; }
.gt-manifesto::after { content: ""; position: absolute; inset: 0; z-index: -1; background: rgba(13, 12, 11, .82); }
.gt-manifesto__h { margin: 0; max-width: 15em; font-stretch: 118%; font-weight: 200; font-size: clamp(2.7rem, 7vw, 7rem); line-height: .98; letter-spacing: -.035em; color: var(--white); text-wrap: balance; }
.gt-manifesto__h em { color: var(--copper-lt); }
.gt-reasons { list-style: none; margin: clamp(3.5rem, 7vw, 6rem) 0 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 0 3rem; }
.gt-reasons__item { display: grid; grid-template-columns: 3.4rem 1fr; gap: .4rem 1rem; padding: 1.8rem 0; border-top: 1px solid var(--hair-dark); }
.gt-reasons__no { grid-row: span 2; font-family: var(--gt-serif); font-style: italic; font-weight: 500; font-size: 2.2rem; line-height: 1; color: var(--copper-lt); }
.gt-reasons__t { font-weight: 600; font-size: 1.08rem; color: var(--white); }
.gt-reasons__d { font-size: .98rem; line-height: 1.65; color: var(--on-dark-2); }
@media (min-width: 900px) { .gt-reasons { grid-template-columns: repeat(3, minmax(0, 1fr)); } .gt-reasons__item { grid-template-columns: 1fr; padding-top: 2.2rem; } .gt-reasons__no { grid-row: auto; font-size: 3rem; margin-bottom: 1rem; } }

/* =====================================================================
   D. FLEET: the showroom. Each vehicle class has its own studio identity:
   sedan = porcelain + copper, SUV = graphite night + copper light,
   van = limestone + walnut. The section follows the active tab (site.js).
   ===================================================================== */
.gt-show { --show-bg: radial-gradient(80% 70% at 60% 40%, var(--white) 0%, var(--studio) 75%); --show-ink: var(--ink); --show-ink-2: var(--ink-2); --show-accent: var(--copper-ink); --show-hair: var(--hair); --show-ghost: rgba(18, 19, 22, .06);
  position: relative; padding-block: var(--gt-sec); background: var(--show-bg); color: var(--show-ink); overflow: clip; transition: background-color .8s var(--gt-ease); }
.gt-show[data-theme="suv"], .gt-show__panel--suv { --show-bg: radial-gradient(80% 70% at 60% 40%, #24211d 0%, #121110 75%); --show-ink: var(--white); --show-ink-2: var(--on-dark-2); --show-accent: var(--copper-lt); --show-hair: var(--hair-dark); --show-ghost: rgba(236, 234, 229, .05); }
.gt-show[data-theme="van"], .gt-show__panel--van { --show-bg: radial-gradient(80% 70% at 60% 40%, #f4eee4 0%, var(--limestone) 75%); --show-ink: var(--espresso); --show-ink-2: var(--walnut); --show-accent: var(--walnut); --show-hair: rgba(93, 72, 54, .25); --show-ghost: rgba(93, 72, 54, .07); }
.gt-show .gt-h2 { color: var(--show-ink); transition: color .6s; }
.gt-show .gt-h2 em { color: var(--show-accent); }
.gt-show .gt-kicker { color: var(--show-accent); }
.gt-show .gt-kicker::before { background: var(--show-accent); }
.gt-show__head { display: grid; grid-template-columns: 1fr; gap: 2rem 3rem; align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.gt-show__tabs { display: flex; flex-wrap: wrap; gap: .2rem 2.2rem; }
.gt-show__tabs[hidden] { display: none; }
.gt-show__tab { flex: none; display: inline-flex; align-items: baseline; gap: .55rem; min-height: 2.9rem; padding: .7rem 0 .6rem; background: none; border: 0; border-bottom: 2px solid transparent; font-family: var(--gt-sans); font-stretch: 112%; font-size: .8rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--show-ink-2); cursor: pointer; transition: color .3s, border-color .3s; }
.gt-show__tab:hover { color: var(--show-ink); }
.gt-show__tab[aria-selected="true"] { color: var(--show-ink); border-bottom-color: var(--copper); }
.gt-show__tab:focus-visible { outline: 2px solid var(--show-accent); outline-offset: 4px; }
.gt-show__tabno { font-family: var(--gt-serif); font-style: italic; font-weight: 500; font-size: 1.05rem; letter-spacing: 0; text-transform: none; color: var(--show-accent); }
.gt-show__panel { position: relative; }
.gt-show__panel + .gt-show__panel { margin-top: clamp(4rem, 8vw, 6rem); }
.has-tabs .gt-show__panel + .gt-show__panel { margin-top: 0; }
.gt-show__panel[hidden] { display: none; }
/* Without JS every panel carries its own studio band */
.gt-show:not(.has-tabs) .gt-show__panel { background: var(--show-bg); color: var(--show-ink); padding-block: 3rem; }
.gt-show__panel.is-shown .gt-show__img img { animation: gt-roll-in 1.1s var(--gt-ease) both; }
.gt-show__panel.is-shown .gt-show__spec > * { animation: gt-rise .9s var(--gt-ease) both; }
.gt-show__panel.is-shown .gt-show__spec > :nth-child(2) { animation-delay: .06s; }
.gt-show__panel.is-shown .gt-show__spec > :nth-child(3) { animation-delay: .12s; }
.gt-show__panel.is-shown .gt-show__spec > :nth-child(n+4) { animation-delay: .18s; }
@keyframes gt-roll-in { from { opacity: 0; transform: translateX(2.5%) scale(1.015); } to { opacity: 1; transform: none; } }
.gt-show__grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem clamp(3rem, 6vw, 6rem); align-items: center; }
.gt-show__stage { position: relative; }
.gt-show__spec { position: relative; isolation: isolate; }
.gt-show__ghost { position: absolute; left: -.06em; top: -.42em; z-index: -1; margin: 0; font-stretch: 125%; font-weight: 800; font-size: clamp(4.5rem, 11vw, 10rem); line-height: 1; letter-spacing: -.035em; text-transform: uppercase; color: var(--show-ghost); pointer-events: none; white-space: nowrap; }
.gt-show__img { position: relative; overflow: hidden; background: var(--carbon); box-shadow: 0 60px 90px -55px rgba(13, 12, 11, .8); }
.gt-show__img img { display: block; width: 100%; aspect-ratio: 3 / 2; height: auto; object-fit: cover; }
.gt-show__lens { position: absolute; right: clamp(-1rem, -1.5vw, -.5rem); bottom: -2.6rem; width: clamp(8.5rem, 15vw, 12.5rem); aspect-ratio: 1; overflow: hidden; border-radius: 50%; border: 5px solid var(--show-ink); box-shadow: 0 30px 50px -25px rgba(0, 0, 0, .6); background: var(--carbon); }
.gt-show__lens picture, .gt-show__lens img { display: block; width: 100%; height: 100%; }
.gt-show__lens img { object-fit: cover; transform: scale(2.6); transform-origin: var(--lens-x, 30%) var(--lens-y, 62%); }
.gt-show__lens span { position: absolute; left: 0; right: 0; bottom: .9rem; text-align: center; font-stretch: 125%; font-size: .68rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: rgba(255, 255, 255, .85); text-shadow: 0 1px 6px rgba(0, 0, 0, .6); }
.gt-show__panel--sedan .gt-show__lens { --lens-x: 22%; --lens-y: 64%; }
.gt-show__panel--suv .gt-show__lens { --lens-x: 34%; --lens-y: 62%; }
.gt-show__panel--van .gt-show__lens { --lens-x: 70%; --lens-y: 50%; }
.gt-show__spec { display: flex; flex-direction: column; align-items: flex-start; }
.gt-show__no { margin: 0 0 .6rem; font-family: var(--gt-serif); font-style: italic; font-weight: 500; font-size: 1.3rem; color: var(--show-accent); }
.gt-show__name { margin: 0; font-stretch: 116%; font-weight: 250; font-size: clamp(2.3rem, 3.8vw, 3.6rem); line-height: 1; letter-spacing: -.03em; color: var(--show-ink); }
.gt-show__class { margin: 1rem 0 0; font-stretch: 125%; font-size: .7rem; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--show-ink-2); }
.gt-show__desc { margin: 1.6rem 0 0; max-width: 30rem; font-size: 1.05rem; line-height: 1.7; color: var(--show-ink-2); }
.gt-show__dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr)); gap: 0 1.5rem; width: 100%; margin: 1.8rem 0 0; border-top: 1px solid var(--show-hair); }
.gt-show__dl > div { padding: .9rem 0; border-bottom: 1px solid var(--show-hair); }
.gt-show__dl dt { font-stretch: 125%; font-size: .66rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--show-ink-2); }
.gt-show__dl dd { margin: .35rem 0 0; font-stretch: 112%; font-weight: 300; font-size: 1.3rem; color: var(--show-ink); font-variant-numeric: tabular-nums; }
.gt-show__features { margin: 1.4rem 0 0; padding: 0; list-style: none; color: var(--show-ink-2); }
.gt-show__features li { padding: .35rem 0 .35rem 1.4rem; position: relative; }
.gt-show__features li::before { content: ""; position: absolute; left: 0; top: 1rem; width: .7rem; height: 1px; background: var(--show-accent); }
.gt-show__gallery { display: flex; gap: .8rem; margin-top: 1.6rem; }
.gt-show__gallery img { width: 7rem; height: 5rem; object-fit: cover; }
.gt-show__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 2rem; margin: 2.2rem 0 0; }
.gt-show[data-theme="suv"] .gt-btn--ink, .gt-show__panel--suv .gt-btn--ink { background: var(--copper); color: var(--carbon); }
.gt-show[data-theme="suv"] .gt-btn--ink:hover, .gt-show__panel--suv .gt-btn--ink:hover { background: var(--copper-hi); }
.gt-show[data-theme="van"] .gt-btn--ink, .gt-show__panel--van .gt-btn--ink { background: var(--walnut); }
.gt-show .gt-link { color: var(--show-ink); }
.gt-show__more { margin-top: clamp(3.5rem, 6vw, 5rem); display: flex; justify-content: center; }
@media (min-width: 992px) {
  .gt-show__head { grid-template-columns: minmax(0, 1fr) auto; }
  .gt-show__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
}
@media (max-width: 767.98px) {
  .gt-show__tabs { gap: 0 1.3rem; }
  .gt-show__lens { right: .8rem; bottom: -2.2rem; width: 7.5rem; border-width: 4px; }
  .gt-show__spec { padding-top: 1.2rem; }
}

/* =====================================================================
   CORPORATE: graphite, the day as a route
   ===================================================================== */
.gt-corp { display: grid; grid-template-columns: 1fr; background: var(--graphite); color: var(--on-dark); }
.gt-corp__media { position: relative; min-height: 22rem; overflow: hidden; }
.gt-corp__media picture, .gt-corp__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gt-corp__body { padding: clamp(3.5rem, 8vw, 8rem) var(--gutter); max-width: 44rem; }
.gt-stops { list-style: none; margin: 2.6rem 0 0; padding: 0; }
.gt-stops__item { position: relative; display: flex; flex-direction: column; gap: .25rem; padding: 0 0 1.7rem 2.2rem; }
.gt-stops__item::before { content: ""; position: absolute; left: 0; top: .45rem; width: 9px; height: 9px; border-radius: 50%; border: 1px solid var(--copper-lt); background: var(--graphite); z-index: 1; }
.gt-stops__item::after { content: ""; position: absolute; left: 4px; top: 1rem; bottom: -.2rem; width: 1px; background: repeating-linear-gradient(180deg, var(--copper-lt) 0 2px, transparent 2px 7px); opacity: .6; }
.gt-stops__item:last-child::after { display: none; }
.gt-stops__t { font-weight: 600; color: var(--white); }
.gt-stops__d { color: var(--on-dark-2); font-size: .98rem; }
.gt-corp__cta { margin: 1.4rem 0 0; }
@media (min-width: 992px) {
  .gt-corp { grid-template-columns: 1fr 1fr; }
  .gt-corp__media { min-height: 44rem; }
  .gt-corp__body { align-self: center; padding-left: clamp(3rem, 6vw, 7rem); padding-right: max(var(--gutter), calc((100vw - 1320px) / 2)); max-width: none; }
  .gt-corp--noimg { grid-template-columns: 1fr; }
}

/* =====================================================================
   F. EVENTS: night programme (studio composition, kept readable)
   ===================================================================== */
.gt-events { position: relative; isolation: isolate; padding-block: var(--gt-sec); background: var(--night); color: var(--on-dark); overflow: clip; }
.gt-events::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url("/assets/images/texture-contours.svg") center / cover no-repeat; opacity: .07; }
.gt-events__head { display: grid; grid-template-columns: 1fr; gap: 2.5rem 5rem; align-items: end; margin-bottom: clamp(3.5rem, 7vw, 6rem); }
.gt-events__index ol { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--hair-dark); }
.gt-events__index a { display: grid; grid-template-columns: 6.5rem 1fr auto; align-items: center; gap: 1rem; min-height: 3.2rem; padding: .7rem 0; border-bottom: 1px solid var(--hair-dark); color: var(--on-dark); text-decoration: none; font-size: 1rem; transition: color .3s, padding-left .4s var(--gt-ease); }
.gt-events__m { font-stretch: 62%; font-weight: 600; font-size: 1.05rem; letter-spacing: .08em; text-transform: uppercase; color: var(--copper-lt); }
.gt-events__index .icon { color: var(--copper-lt); transition: transform .4s var(--gt-ease); }
.gt-events__index a:hover { color: var(--white); padding-left: .5rem; }
.gt-events__index a:hover .icon { transform: translateX(4px); }
.gt-events__list { display: flex; flex-direction: column; gap: clamp(4.5rem, 9vw, 8rem); }
.gt-ev { display: grid; grid-template-columns: 1fr; gap: 1.8rem; scroll-margin-top: calc(var(--header-h) + 1.5rem); }
.gt-ev__media { display: block; overflow: hidden; aspect-ratio: 3 / 2; background: var(--night-2); }
.gt-ev__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--gt-ease); }
.gt-ev:hover .gt-ev__media img { transform: scale(1.04); }
.gt-ev__month { margin: 0 0 .4rem; font-stretch: 62%; font-weight: 700; font-size: clamp(4rem, 8vw, 7.5rem); line-height: .92; letter-spacing: -.005em; text-transform: uppercase; color: transparent; -webkit-text-stroke: 1.5px var(--copper-lt); }
.gt-ev__name { margin: 0; font-stretch: 112%; font-weight: 300; font-size: clamp(2rem, 3.2vw, 2.9rem); line-height: 1.06; letter-spacing: -.02em; }
.gt-ev__name a { color: var(--white); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .6s var(--gt-ease); }
.gt-ev__name a:hover { background-size: 100% 1px; }
.gt-ev__when { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); margin: .9rem 0 0; font-stretch: 125%; font-size: .72rem; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--copper-lt); }
.gt-ev__desc { margin: 1rem 0 0; max-width: 28rem; font-size: 1.04rem; line-height: 1.7; color: #c3c6cc; }
.gt-ev__go { margin: 1.8rem 0 0; }
.gt-events__all { margin: clamp(4rem, 8vw, 6rem) 0 0; display: flex; justify-content: center; }
@supports not (-webkit-text-stroke: 1px black) { .gt-ev__month { color: var(--copper-lt); } }
@media (min-width: 992px) {
  .gt-events__head { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); }
  .gt-ev { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 0 clamp(3rem, 6vw, 6rem); align-items: center; }
  .gt-ev:nth-child(even) { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .gt-ev:nth-child(even) .gt-ev__media { order: 2; }
}

/* =====================================================================
   ROUTES: navigation display + departure board
   ===================================================================== */
.gt-routes { padding-block: var(--gt-sec); background: var(--white); }
.gt-routes__grid { display: grid; grid-template-columns: 1fr; gap: 3rem clamp(3rem, 6vw, 6rem); align-items: center; }
.gt-routes__display { position: relative; margin: 0; isolation: isolate; }
.gt-routes__display img { width: 100%; height: auto; box-shadow: 0 50px 80px -50px rgba(13, 12, 11, .7); }
.gt-routes__display::before { content: ""; position: absolute; inset: -1.2rem 1.2rem 1.2rem -1.2rem; border: 1px solid var(--copper); opacity: .4; z-index: -1; }
.gt-board { list-style: none; margin: 2.4rem 0 0; padding: 0; border-bottom: 1px solid var(--hair); }
.gt-board__row { display: grid; grid-template-columns: 1fr; gap: .45rem;  padding: 1.25rem .2rem; border-top: 1px solid var(--hair); text-decoration: none; color: var(--ink); transition: background-color .35s var(--gt-ease), color .35s, padding .45s var(--gt-ease); }
.gt-board__route { font-stretch: 112%; font-weight: 300; font-size: clamp(1.35rem, 2.1vw, 1.75rem); letter-spacing: -.01em; }
.gt-board__arrow { color: var(--copper-ink); margin: 0 .35rem; }
.gt-board__meta { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: .2rem 1.1rem; font-stretch: 112%; font-size: .72rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.gt-board__row:hover { background: var(--carbon); color: var(--white); padding-inline: 1.2rem; }
.gt-board__row:hover .gt-board__meta { color: var(--alu); }
.gt-board__row:hover .gt-board__arrow { color: var(--copper-lt); }
.gt-routes__board > p:last-child { margin-top: 2rem; }
@media (min-width: 992px) { .gt-routes__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }

/* =====================================================================
   AREAS: full-bleed vista (signature transition)
   ===================================================================== */
.gt-vista { position: relative; isolation: isolate; overflow: clip; background: var(--carbon); color: var(--white); }
.gt-vista__media { position: absolute; inset: 0; z-index: -2; }
.gt-vista__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }
.gt-vista::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(10, 9, 8, .8) 0%, rgba(10, 9, 8, .15) 50%, rgba(10, 9, 8, 0) 100%), linear-gradient(90deg, rgba(10, 9, 8, .45) 0%, rgba(10, 9, 8, 0) 55%); }
.gt-vista__in { min-height: clamp(34rem, 82vh, 52rem); display: flex; align-items: flex-end; padding-block: clamp(4rem, 8vw, 6.5rem); }
.gt-vista__card { max-width: 38rem; }
.gt-vista .gt-kicker { color: var(--alu); }
.gt-vista .gt-lede { color: #cfd1d4; }
.gt-vista .gt-small { color: #c3c6ca; }
.gt-vista__card > p:last-child { margin-top: 2rem; }

/* =====================================================================
   G. REVIEWS (verified only)
   ===================================================================== */
.gt-reviews { padding-block: var(--gt-sec); background: var(--limestone); color: var(--espresso); }
.gt-reviews__list { display: grid; grid-template-columns: 1fr; gap: 3rem 4rem; margin-top: 3rem; }
.gt-quote { margin: 0; padding-top: 1.6rem; border-top: 1px solid rgba(93, 72, 54, .35); }
.gt-quote blockquote { margin: 0 0 1.2rem; font-family: var(--gt-serif); font-weight: 500; font-size: 1.6rem; line-height: 1.3; }
.gt-quote--lead blockquote { font-size: clamp(2rem, 3.4vw, 2.9rem); line-height: 1.18; }
.gt-quote figcaption { font-stretch: 112%; font-size: .74rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--walnut); }
.gt-quote figcaption span { font-weight: 500; letter-spacing: .06em; text-transform: none; }
.gt-reviews__more { margin-top: 2.6rem; }
@media (min-width: 992px) { .gt-reviews__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } .gt-quote--lead { grid-column: 1 / -1; max-width: 58rem; } }

/* =====================================================================
   GUIDES: journal
   ===================================================================== */
.gt-journal { padding-block: var(--gt-sec); background: var(--porcelain); }
.gt-journal__grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem 5rem; }
.gt-post { display: grid; grid-template-columns: 1fr; gap: 1.5rem 3rem; padding: 2rem 0; border-top: 1px solid var(--hair); text-decoration: none; color: var(--ink); }
.gt-post:last-child { border-bottom: 1px solid var(--hair); }
.gt-post__img { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--studio); }
.gt-post__img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--gt-ease); }
.gt-post:hover .gt-post__img img { transform: scale(1.04); }
.gt-post__body { display: flex; flex-direction: column; gap: .8rem; }
.gt-post__cat { font-stretch: 125%; font-size: .68rem; font-weight: 600; letter-spacing: .28em; text-transform: uppercase; color: var(--copper-ink); }
.gt-post__t { font-stretch: 112%; font-weight: 300; font-size: clamp(1.7rem, 2.8vw, 2.4rem); line-height: 1.08; letter-spacing: -.02em; }
.gt-post__d { color: var(--ink-2); max-width: 34rem; }
.gt-post__go { display: inline-flex; align-items: center; gap: .6rem; margin-top: .4rem; font-stretch: 112%; font-size: .72rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }
.gt-post__go .icon { transition: transform .4s var(--gt-ease); }
.gt-post:hover .gt-post__go .icon { transform: translateX(5px); }
@media (min-width: 768px) { .gt-post { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; } }
@media (min-width: 992px) { .gt-journal__grid { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); } }

/* =====================================================================
   FAQ: concierge desk (hospitality voice)
   ===================================================================== */
.gt-faq { padding-block: var(--gt-sec); background: var(--limestone); color: var(--espresso); }
.gt-faq__grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem 6rem; }
.gt-faq__help { margin: 1.4rem 0 1.8rem; max-width: 24rem; color: var(--walnut); }
.gt-faq__item { border-top: 1px solid rgba(93, 72, 54, .3); }
.gt-faq__item:last-child { border-bottom: 1px solid rgba(93, 72, 54, .3); }
.gt-faq__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; padding: 1.5rem 0; font-stretch: 105%; font-weight: 500; font-size: 1.15rem; color: var(--espresso); transition: color .3s; }
.gt-faq__item summary::-webkit-details-marker { display: none; }
.gt-faq__item summary:hover { color: var(--walnut); }
.gt-faq__mark { flex: none; display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; border: 1px solid rgba(93, 72, 54, .45); border-radius: 50%; transition: transform .4s var(--gt-ease), background-color .3s, color .3s; }
.gt-faq__item[open] .gt-faq__mark { transform: rotate(45deg); background: var(--walnut); color: var(--white); border-color: var(--walnut); }
.gt-faq__a { padding: 0 3.6rem 1.6rem 0; color: var(--walnut); max-width: 40rem; }
.gt-faq__a p:last-child { margin-bottom: 0; }
.gt-faq__a a { color: var(--espresso); }
@media (min-width: 992px) { .gt-faq__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); } .gt-faq__aside { position: sticky; top: calc(var(--header-h) + 2rem); align-self: start; } }

/* =====================================================================
   H. FINALE: cinematic close
   ===================================================================== */
.gt-finale { position: relative; isolation: isolate; overflow: clip; background: #090b10 url("/assets/images/home-finale-map-1800.webp") 100% 50% / cover no-repeat; color: var(--white); }
.gt-finale::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(9, 11, 16, .75) 0%, rgba(9, 11, 16, .2) 55%, rgba(9, 11, 16, 0) 100%); }
.gt-finale__in { min-height: clamp(30rem, 70vh, 44rem); display: flex; flex-direction: column; justify-content: center; padding-block: var(--gt-sec); }
.gt-finale__h { margin: 0; max-width: 9.5em; font-stretch: 112%; font-weight: 200; font-size: clamp(2.8rem, 6.4vw, 6.2rem); line-height: .98; letter-spacing: -.035em; text-wrap: balance; }
.gt-finale__h em { color: var(--copper-lt); }
.gt-finale__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.2rem 2.4rem; margin: 2.6rem 0 0; }
.gt-finale__tel { font-stretch: 112%; font-weight: 300; font-size: 1.7rem; letter-spacing: .02em; color: var(--white); text-decoration: none; border-bottom: 1px solid rgba(251, 250, 248, .35); }
.gt-finale__tel:hover { color: var(--copper-lt); }
@media (max-width: 767.98px) { .gt-finale { background-image: url("/assets/images/home-finale-map-1200.webp"); background-position: 78% 50%; } .gt-finale::before { background: linear-gradient(0deg, rgba(10, 9, 8, .92) 30%, rgba(10, 9, 8, .55) 100%); } }

/* ---------- Campaign sections on the homepage ---------- */
.gt-spot { position: relative; display: grid; grid-template-columns: 1fr; background: var(--night); color: var(--on-dark); overflow: clip; }
.gt-spot__media { position: relative; min-height: 20rem; }
.gt-spot__media picture, .gt-spot__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gt-spot__in { padding-block: clamp(3.5rem, 7vw, 6rem); }
.gt-spot__card { max-width: 36rem; }
.gt-spot__when { margin: 1rem 0 0; font-stretch: 62%; font-weight: 700; font-size: 2.4rem; letter-spacing: .02em; text-transform: uppercase; color: var(--copper-lt); }
.gt-spot__card > p:last-child { margin-top: 2rem; }
@media (min-width: 992px) {
  .gt-spot { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  .gt-spot__media { order: 2; min-height: 38rem; }
  .gt-spot__in { order: 1; align-self: center; padding-left: max(var(--gutter), calc((100vw - 1320px) / 2)); padding-right: clamp(2rem, 5vw, 5rem); width: 100%; max-width: none; margin: 0; }
  .gt-spot--noimg { grid-template-columns: 1fr; }
}
.gt-feature { padding-block: clamp(4rem, 8vw, 7rem); background: var(--white); border-top: 1px solid var(--hair); }
.gt-feature__in { display: grid; grid-template-columns: 1fr; gap: 1.5rem 5rem; align-items: end; }
.gt-feature__in .gt-lede { margin-top: 0; }
.gt-feature__in p:last-child { margin: 1.6rem 0 0; }
@media (min-width: 992px) { .gt-feature__in { grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); } }
.gt-mini-fleet { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin: 2.5rem 0; }
.gt-mini-fleet__item { display: flex; flex-direction: column; gap: .4rem; text-decoration: none; color: var(--ink); }
.gt-mini-fleet__img { display: block; aspect-ratio: 3 / 2; overflow: hidden; margin-bottom: .6rem; }
.gt-mini-fleet__img img { width: 100%; height: 100%; object-fit: cover; }
.gt-mini-fleet__name { font-stretch: 112%; font-weight: 300; font-size: 1.5rem; }
.gt-mini-fleet__meta { font-size: .9rem; color: var(--ink-2); }
@media (min-width: 768px) { .gt-mini-fleet { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.gt-prose { max-width: 40rem; color: var(--ink-2); }

/* ---------- I. Footer on the homepage ---------- */
.page-home .site-footer { background: var(--carbon); font-family: var(--gt-sans); }
.page-home .site-footer::before { opacity: .05; }
.page-home .footer__h { font-family: var(--gt-sans); font-stretch: 125%; font-size: .68rem; letter-spacing: .3em; color: var(--copper-lt); }
.page-home .wordmark--lg { font-size: clamp(1rem, 1.6vw, 1.2rem); letter-spacing: .34em; }
.page-home .footer__col a::after { background: var(--copper); }
.page-home .site-footer a:hover { color: var(--copper-lt); }
.page-home .footer__bottom { border-top-color: var(--hair-dark); }

/* ---------- Sticky mobile action bar on the homepage ---------- */
@media (max-width: 767.98px) {
  .page-home .sticky-bar { background: var(--carbon); }
  .page-home .sticky-bar a { font-family: var(--gt-sans); font-stretch: 112%; }
  .page-home .sticky-bar a.sticky-bar__quote { background: var(--copper); color: var(--carbon); }
}

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
  .gt-hero__media img { animation: none; transform: scale(1.1); }
  .gt-svc__slide img, .gt-svc__slide.is-active img { transform: none; }
}

@media (max-width: 767.98px) {
  .gt-arrive__arch::after { inset: 1rem -.7rem -1rem .7rem; }
}
@media (max-width: 479.98px) { .page-home .wordmark { font-size: .74rem; letter-spacing: .22em; } .page-home .nav-toggle__label { display: none; } .page-home .site-header__in { gap: 1rem; } }
@media (min-width: 768px) and (max-width: 1199.98px) {
  .gt-hero__media, .gt-hero__shade { height: 56.25vw; }
  .gt-hero__media img { object-position: 60% 60%; }
  .gt-hero__inner { padding-top: calc(56.25vw - 6rem); }
}
@media (min-width: 1200px) { .gt-hero__lede { max-width: 27em; } }
@media (min-width: 1600px) { .gt-hero__copy { max-width: 40rem; } }

/* ---------- Phone refinements (reviewed section by section at 320/375/390/430) ---------- */
@media (max-width: 767.98px) {
  .page-home .quote-bar__veh { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: .4rem 1.25rem .9rem; }
  .page-home .quote-bar__legend { grid-column: 1 / -1; padding: .5rem 0 .5rem; }
  .page-home .quote-bar__opt span { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 2.9rem; padding: 0 .4rem; border: 1px solid var(--hair); margin: 0 -1px -1px 0; letter-spacing: .1em; text-align: center; }
  .page-home .quote-bar__opt { display: flex; }
  .page-home .quote-bar__opt input:checked + span { background: var(--carbon); color: var(--white); border-color: var(--carbon); }
  .gt-show__ghost { display: none; }
  .gt-routes__display::before { inset: -.7rem .7rem .7rem -.7rem; }
  .gt-btn { letter-spacing: .15em; padding-inline: 1.4rem; }
  .gt-finale { background-position: 72% 50%; }
}
@media (max-width: 359.98px) { .page-home .quote-bar__field:nth-of-type(3), .page-home .quote-bar__field:nth-of-type(4) { grid-column: 1 / -1; border-right: 0; } }
@media (max-width: 767.98px) { .gt-show:not(.has-tabs) .gt-show__panel { padding-block: 3.5rem 4.5rem; } .gt-show__panels { margin-inline: 0; } .gt-show:not(.has-tabs) .gt-show__panel + .gt-show__panel { margin-top: 0; } }
@media (max-width: 419.98px) {
  .gt-svc__item { grid-template-columns: 1.7rem minmax(0, 1fr) 4.6rem; gap: .3rem .9rem; }
  .gt-svc__thumb { width: 4.6rem; }
  .gt-svc__name { font-size: 1.32rem; overflow-wrap: anywhere; hyphens: auto; }
}
/* Touch targets: text links and the menu button reach 44px without changing their look */
.gt-link { min-height: 2.75rem; align-items: flex-end; }
.page-home .nav-toggle { min-height: 2.75rem; min-width: 2.75rem; justify-content: center; }
