/*
Theme Name: Track Time Sim Racing
Theme URI: https://tracktimesimracing.com
Author: NexGen IT Solutions
Author URI: https://nexgenitsolutions.net
Description: A red-and-black, motorsport-themed full-site-editing block theme built for Track Time Sim Racing, a mobile sim-racing rental company based in Fenton, Michigan. Includes a home page, a Services landing page, and dedicated pages for Corporate Events, Private Parties, Community Gatherings, and Standalone Installations.
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.2.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tracktime
Tags: full-site-editing, block-patterns, custom-colors, custom-menu, featured-images, one-page

This theme, including all code, is licensed under the GPL v2 or later.
Photography and the Track Time Sim Racing wordmark are property of Track Time Sim Racing
and are included for that business's own use only.
*/

/* -----------------------------------------------------------------------
   Everything below is presentational sugar that theme.json can't express:
   the hazard-stripe dividers, the pit-wall ticker, dashed spec rows, card
   hover states, and the navigation submenu skin. Core block spacing,
   color and type all come from theme.json so the editor stays in sync
   with the front end.
   ----------------------------------------------------------------------- */

html {
  scroll-behavior: smooth;
  /* Deliberately NOT setting overflow-x here. Setting overflow-x to anything
     other than "visible" on html/body forces the other axis (overflow-y) to
     compute to a non-"visible" value too, which turns html/body into a new
     scroll container in its own right. On this host that produced a
     documentElement.scrollHeight of 0 and made the whole page unscrollable,
     which in turn breaks position:sticky on the header (confirmed live on
     https://ttsm.dream.press/ — removing this line restored scrolling and
     the sticky header immediately). If full-bleed sections ever need
     horizontal-overflow protection, scope it to that specific section
     (e.g. .ttsr-ticker below) instead of html/body.
  */
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  background-color: var(--wp--preset--color--asphalt);
}

::selection {
  background: var(--wp--preset--color--racing-red);
  color: #fff;
}

/* ---------- hazard / chevron divider ---------- */
.ttsr-chevrons {
  height: 14px;
  background-image: repeating-linear-gradient(
    -45deg,
    var(--wp--preset--color--racing-red) 0 10px,
    var(--wp--preset--color--asphalt) 10px 20px
  );
  background-size: 28px 28px;
}

.ttsr-chevrons.is-thin {
  height: 6px;
}

/* ---------- eyebrow / sector tag ---------- */
.ttsr-sector-tag {
  font-family: var(--wp--preset--font-family--label);
  font-size: 12.5px;
  letter-spacing: 1px;
  color: var(--wp--preset--color--asphalt-faint);
  display: flex;
  align-items: center;
  gap: 10px;
  text-transform: uppercase;
}

.ttsr-sector-tag .ttsr-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--wp--preset--color--racing-red-bright);
  box-shadow: 0 0 8px rgba(255, 59, 46, 0.8);
  flex: none;
}

.ttsr-eyebrow {
  font-family: var(--wp--preset--font-family--label);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--wp--preset--color--racing-red-bright);
  display: flex;
  align-items: center;
  gap: 10px;
}

.ttsr-eyebrow::before {
  content: "";
  width: 26px;
  height: 2px;
  background: var(--wp--preset--color--racing-red-bright);
  display: inline-block;
}

/* ---------- cards ---------- */
.ttsr-card {
  border: 1px solid var(--wp--preset--color--hairline);
  border-radius: 4px;
  transition: border-color 0.2s ease, transform 0.2s ease, background-color 0.2s ease;
}

.ttsr-card:hover {
  border-color: var(--wp--preset--color--racing-red);
  transform: translateY(-4px);
}

.ttsr-service-num {
  font-family: var(--wp--preset--font-family--mono);
  color: var(--wp--preset--color--racing-red-bright);
  font-size: 13px;
  letter-spacing: 1px;
  display: block;
  margin-bottom: 6px;
}

/* ---------- spec rows (equipment / rig cards) ---------- */
.ttsr-spec-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-family: var(--wp--preset--font-family--mono);
  font-size: 12px;
  color: var(--wp--preset--color--asphalt-faint);
  padding: 8px 0;
  border-top: 1px dashed var(--wp--preset--color--hairline);
}

.ttsr-spec-row b {
  color: var(--wp--preset--color--chalk);
  font-weight: 600;
  font-size: 12px;
}

.ttsr-rig-photo {
  aspect-ratio: 1/1;
  background: radial-gradient(ellipse at 50% 40%, #1b1b1f 0%, #0a0a0c 72%);
  border-bottom: 1px solid var(--wp--preset--color--hairline);
}

.ttsr-rig-photo img {
  object-fit: contain;
  max-height: 82%;
  width: auto;
  margin: 0 auto;
  filter: drop-shadow(0 18px 26px rgba(0, 0, 0, 0.55));
}

/* ---------- pricing / package cards ---------- */
.ttsr-pkg-name {
  font-family: var(--wp--preset--font-family--label);
  font-size: 13px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--wp--preset--color--stone);
}

.ttsr-pkg-price {
  font-family: var(--wp--preset--font-family--mono);
  font-size: 40px;
  font-weight: 600;
  color: var(--wp--preset--color--chalk);
  font-variant-numeric: tabular-nums;
}

.ttsr-pkg-price sup {
  font-size: 15px;
  color: var(--wp--preset--color--asphalt-faint);
  margin-left: 2px;
}

.ttsr-pkg-feature {
  border-color: var(--wp--preset--color--racing-red) !important;
  position: relative;
  background: linear-gradient(160deg, var(--wp--preset--color--racing-red-deep), #2a0705) !important;
}

.ttsr-pkg-flag {
  position: absolute;
  top: 0;
  right: 0;
  background: var(--wp--preset--color--racing-red);
  color: #fff;
  font-family: var(--wp--preset--font-family--label);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 1.5px;
  padding: 6px 14px;
  border-bottom-left-radius: 4px;
}

/* ---------- ticker ---------- */
.ttsr-ticker {
  background: var(--wp--preset--color--racing-red);
  border-top: 1px solid var(--wp--preset--color--racing-red-deep);
  border-bottom: 1px solid var(--wp--preset--color--racing-red-deep);
  overflow: hidden;
  white-space: nowrap;
  /* This lives inside a Custom HTML block, so WordPress's own "alignfull"
     layout CSS (which only targets direct children of layout-aware
     blocks) never reaches it — bleed it to the viewport edges by hand
     instead of relying on the (inert, here) .alignfull class. */
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}

.ttsr-ticker-track {
  display: inline-flex;
  align-items: center;
  animation: ttsr-ticker 32s linear infinite;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .ttsr-ticker-track {
    animation: none;
  }
}

.ttsr-ticker-track span {
  font-family: var(--wp--preset--font-family--label);
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  font-size: 13px;
  color: #fff;
  padding: 13px 26px;
  display: inline-flex;
  align-items: center;
  gap: 26px;
}

.ttsr-ticker-track span::after {
  content: "\2726";
  color: rgba(255, 255, 255, 0.6);
  font-size: 10px;
}

@keyframes ttsr-ticker {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* ---------- header / navigation ---------- */
.ttsr-header {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  width: 100%;
  background: rgba(10, 10, 12, 0.86);
  backdrop-filter: blur(10px) saturate(140%);
  border-bottom: 1px solid var(--wp--preset--color--hairline);
}

.ttsr-header .wp-block-site-logo {
  margin: 0;
}

.ttsr-header .wp-block-site-logo img {
  height: 26px;
  width: auto;
  object-fit: contain;
}

.ttsr-nav-cta {
  margin: 0;
}

@media (max-width: 599px) {
  .ttsr-nav-cta {
    display: none;
  }
}

.ttsr-header .wp-block-navigation {
  font-family: var(--wp--preset--font-family--label);
}

.ttsr-header .wp-block-navigation-item > a,
.ttsr-header .wp-block-navigation-submenu > .wp-block-navigation-item__content {
  font-family: var(--wp--preset--font-family--label);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--wp--preset--color--stone) !important;
}

.ttsr-header .wp-block-navigation-item > a:hover,
.ttsr-header .wp-block-navigation-submenu > .wp-block-navigation-item__content:hover {
  color: var(--wp--preset--color--chalk) !important;
}

.ttsr-header .wp-block-navigation__submenu-container {
  background: var(--wp--preset--color--surface) !important;
  border: 1px solid var(--wp--preset--color--hairline);
  border-radius: 4px;
  padding: 6px;
}

.ttsr-header .wp-block-navigation__submenu-container .wp-block-navigation-item > a {
  padding: 10px 14px !important;
}

.ttsr-header .wp-block-navigation__responsive-container.is-menu-open {
  background: var(--wp--preset--color--asphalt) !important;
}

.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg {
  fill: var(--wp--preset--color--chalk);
}

/* ---------- hero media ---------- */
.ttsr-hero-media {
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid var(--wp--preset--color--hairline-strong);
}

.ttsr-hero-media img {
  aspect-ratio: 800/560;
  object-fit: cover;
  filter: saturate(1.08) contrast(1.04);
}

.ttsr-hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10, 10, 12, 0) 55%, rgba(10, 10, 12, 0.75) 100%);
  pointer-events: none;
}

.ttsr-hero-tag {
  position: absolute;
  left: 16px;
  bottom: 14px;
  z-index: 2;
  font-family: var(--wp--preset--font-family--mono);
  font-size: 11.5px;
  color: var(--wp--preset--color--stone);
  background: rgba(10, 10, 12, 0.55);
  border: 1px solid var(--wp--preset--color--hairline-strong);
  padding: 6px 10px;
  border-radius: 2px;
  backdrop-filter: blur(4px);
}

/* ---------- page hero (service pages) ---------- */
.ttsr-page-hero {
  background:
    radial-gradient(ellipse 90% 70% at 78% 0%, rgba(226, 35, 26, 0.24), transparent 60%),
    var(--wp--preset--color--asphalt);
}

/* ---------- crew photo frame ---------- */
.ttsr-crew-frame {
  position: relative;
}

.ttsr-crew-frame::before {
  content: "";
  position: absolute;
  inset: -14px 14px 14px -14px;
  border: 1px solid var(--wp--preset--color--racing-red);
  border-radius: 4px;
  z-index: 0;
}

.ttsr-crew-frame > figure {
  position: relative;
  z-index: 1;
  margin: 0;
  background: linear-gradient(160deg, #1b1b1f, #0a0a0c);
  border-radius: 4px;
  border: 1px solid var(--wp--preset--color--hairline);
  overflow: hidden;
}

.ttsr-crew-photo.wp-block-image {
  aspect-ratio: 4/5;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-top: 20px;
}

.ttsr-crew-photo.wp-block-image img {
  width: 82%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}

/* ---------- contact / CTA band ---------- */
.ttsr-contact {
  position: relative;
  overflow: hidden;
  background: radial-gradient(ellipse 80% 60% at 20% 0%, rgba(255, 59, 46, 0.22), transparent 60%),
    var(--wp--preset--color--racing-red-deep);
}

.ttsr-contact::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(-45deg, rgba(0, 0, 0, 0.18) 0 10px, transparent 10px 20px);
  opacity: 0.5;
  pointer-events: none;
}

.ttsr-contact .wp-block-group,
.ttsr-contact p,
.ttsr-contact .ttsr-sector-tag {
  position: relative;
}

/* ---------- footer ---------- */
.ttsr-footer .wp-block-site-logo img {
  height: 20px;
  width: auto;
  opacity: 0.8;
}

.ttsr-footer {
  font-family: var(--wp--preset--font-family--mono);
  font-size: 12.5px;
  color: var(--wp--preset--color--asphalt-faint);
}

.ttsr-footer a {
  color: var(--wp--preset--color--stone);
  text-decoration: none;
}

.ttsr-footer a:hover {
  color: var(--wp--preset--color--chalk);
}

/* ---------- misc ---------- */
.ttsr-form input,
.ttsr-form textarea {
  width: 100%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 2px;
  padding: 11px 12px;
  color: #fff;
  font-family: var(--wp--preset--font-family--body);
  font-size: 14.5px;
}

.ttsr-form label {
  display: block;
  font-family: var(--wp--preset--font-family--label);
  font-size: 11.5px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 7px;
}

.ttsr-form-card {
  background: rgba(10, 10, 12, 0.72);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 4px;
  backdrop-filter: blur(6px);
}

/* =======================================================================
   1.1.0 additions: business-first layout, pricing, trust, gallery, FAQ,
   working quote form, footer.
   ======================================================================= */

/* ---------- small type helpers ---------- */
.ttsr-lede {
  font-size: 17.5px;
  color: var(--wp--preset--color--stone);
  max-width: 60ch;
}

.ttsr-muted {
  color: var(--wp--preset--color--stone);
}

.ttsr-fine {
  font-family: var(--wp--preset--font-family--mono);
  font-size: 12.5px;
  color: var(--wp--preset--color--asphalt-faint);
}

/* ---------- trust row (hero) ---------- */
.ttsr-trust-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 22px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-family: var(--wp--preset--font-family--label);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--wp--preset--color--stone);
}

.ttsr-trust-row li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.ttsr-trust-row li::before {
  content: "";
  width: 14px;
  height: 14px;
  flex: none;
  border-radius: 50%;
  background: var(--wp--preset--color--racing-red)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M3.5 7.2l2.2 2.2 4.8-4.8' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / 14px 14px no-repeat;
}

/* ---------- licensed & insured badge ---------- */
.ttsr-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--wp--preset--color--hairline-strong);
  border-radius: 999px;
  padding: 6px 14px 6px 10px;
  font-family: var(--wp--preset--font-family--label);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--wp--preset--color--chalk);
}

.ttsr-badge svg {
  width: 16px;
  height: 16px;
  flex: none;
}

/* ---------- chips ---------- */
.ttsr-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ttsr-chips li {
  font-family: var(--wp--preset--font-family--label);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 1.2px;
  text-transform: uppercase;
  color: var(--wp--preset--color--chalk);
  background: var(--wp--preset--color--surface-2);
  border: 1px solid var(--wp--preset--color--hairline);
  border-radius: 2px;
  padding: 7px 12px;
}

/* ---------- benefits grid ---------- */
.ttsr-benefits {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1px;
  background: var(--wp--preset--color--hairline);
  border: 1px solid var(--wp--preset--color--hairline);
  border-radius: 4px;
  overflow: hidden;
}

.ttsr-benefits > div {
  background: var(--wp--preset--color--asphalt);
  padding: 22px 22px 24px;
}

.ttsr-benefits h3 {
  font-size: 22px !important;
  margin: 0 0 6px;
}

.ttsr-benefits p {
  margin: 0;
  font-size: 15px;
  color: var(--wp--preset--color--stone);
}

.ttsr-benefits > div::before {
  content: "";
  display: block;
  width: 22px;
  height: 3px;
  background: var(--wp--preset--color--racing-red-bright);
  margin-bottom: 16px;
}

/* ---------- numbered steps (real sequence) ---------- */
.ttsr-steps {
  counter-reset: ttsr-step;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ttsr-steps li {
  counter-increment: ttsr-step;
  border-top: 2px solid var(--wp--preset--color--racing-red);
  padding-top: 16px;
}

.ttsr-steps li::before {
  content: "STEP " counter(ttsr-step, decimal-leading-zero);
  display: block;
  font-family: var(--wp--preset--font-family--mono);
  font-size: 12px;
  letter-spacing: 1px;
  color: var(--wp--preset--color--racing-red-bright);
  margin-bottom: 8px;
}

.ttsr-steps strong {
  display: block;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 400;
  font-size: 24px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  line-height: 1;
  margin-bottom: 8px;
}

.ttsr-steps span {
  color: var(--wp--preset--color--stone);
  font-size: 15px;
}

/* ---------- photo frames ---------- */
.ttsr-photo {
  margin: 0;
  position: relative;
  border-radius: 4px;
  overflow: hidden;
  border: 1px solid var(--wp--preset--color--hairline-strong);
  background: var(--wp--preset--color--surface);
}

.ttsr-photo img,
.ttsr-photo video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ttsr-photo.is-landscape {
  aspect-ratio: 4 / 3;
}

.ttsr-photo.is-portrait {
  aspect-ratio: 4 / 5;
}

.ttsr-photo.is-wide {
  aspect-ratio: 16 / 9;
}

.ttsr-photo figcaption {
  position: absolute;
  left: 12px;
  bottom: 12px;
  font-family: var(--wp--preset--font-family--mono);
  font-size: 11.5px;
  color: var(--wp--preset--color--chalk);
  background: rgba(10, 10, 12, 0.7);
  border: 1px solid var(--wp--preset--color--hairline-strong);
  padding: 5px 9px;
  border-radius: 2px;
}

.ttsr-hero-media video {
  display: block;
  width: 100%;
  aspect-ratio: 800/560;
  object-fit: cover;
}

/* ---------- split rows ---------- */
.ttsr-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
}

.ttsr-split.is-flipped > :first-child {
  order: 2;
}

@media (max-width: 781px) {
  .ttsr-split {
    grid-template-columns: minmax(0, 1fr);
  }
  .ttsr-split.is-flipped > :first-child {
    order: 0;
  }
}

.ttsr-split h2,
.ttsr-split h3 {
  margin: 14px 0 14px;
}

.ttsr-list {
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.ttsr-list li {
  position: relative;
  padding-left: 26px;
  color: var(--wp--preset--color--stone);
  font-size: 15.5px;
}

.ttsr-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.62em;
  width: 12px;
  height: 2px;
  background: var(--wp--preset--color--racing-red-bright);
}

/* ---------- placement options ---------- */
.ttsr-terms {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}

.ttsr-terms > div {
  border: 1px solid var(--wp--preset--color--hairline);
  border-radius: 4px;
  padding: 18px;
  background: var(--wp--preset--color--asphalt);
}

.ttsr-terms b {
  display: block;
  font-family: var(--wp--preset--font-family--display);
  font-weight: 400;
  font-size: 30px;
  letter-spacing: 0.5px;
  line-height: 1;
  text-transform: uppercase;
}

.ttsr-terms span {
  display: block;
  margin-top: 6px;
  font-size: 14px;
  color: var(--wp--preset--color--stone);
}

/* ---------- pricing ---------- */
.ttsr-price-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}

.ttsr-price-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.ttsr-price-card .ttsr-price-head {
  padding: 28px 26px 22px;
  border-bottom: 1px solid var(--wp--preset--color--hairline);
}

.ttsr-price-card .ttsr-price-from {
  font-family: var(--wp--preset--font-family--mono);
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--wp--preset--color--stone);
  margin-top: 10px;
}

.ttsr-price-card .ttsr-pkg-price {
  font-size: 52px;
  line-height: 1.05;
}

.ttsr-price-card .ttsr-price-body {
  padding: 22px 26px 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1;
}

.ttsr-price-card .ttsr-price-body p {
  margin: 0;
  color: var(--wp--preset--color--stone);
  font-size: 15px;
}

.ttsr-price-card .ttsr-list {
  margin: 0;
}

.ttsr-price-card .wp-block-button {
  margin-top: auto;
}

.ttsr-pkg-feature .ttsr-price-from,
.ttsr-pkg-feature .ttsr-price-body p,
.ttsr-pkg-feature .ttsr-list li {
  color: rgba(255, 255, 255, 0.82);
}

.ttsr-note {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  border: 1px solid var(--wp--preset--color--hairline);
  border-left: 3px solid var(--wp--preset--color--amber);
  border-radius: 4px;
  padding: 18px 20px;
  background: var(--wp--preset--color--surface);
}

.ttsr-note strong {
  display: block;
  font-family: var(--wp--preset--font-family--label);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--wp--preset--color--amber);
  margin-bottom: 4px;
}

.ttsr-note p {
  margin: 0;
  color: var(--wp--preset--color--stone);
  font-size: 15px;
}

/* ---------- gallery ---------- */
.ttsr-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}

.ttsr-gallery .ttsr-photo {
  aspect-ratio: 4 / 3;
}

.ttsr-gallery .ttsr-photo.is-tall {
  grid-row: span 2;
  aspect-ratio: auto;
}

.ttsr-gallery-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 12px 24px;
  margin-bottom: 18px;
}

.ttsr-gallery-head h2 {
  margin: 0;
  font-size: clamp(1.75rem, 3.4vw, 2.5rem) !important;
}

.ttsr-gallery-head a {
  font-family: var(--wp--preset--font-family--label);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
}

.ttsr-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 781px) {
  .ttsr-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ttsr-strip .ttsr-photo {
  aspect-ratio: 1 / 1;
}

/* ---------- more services ---------- */
.ttsr-more {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}

.ttsr-more > div {
  overflow: hidden;
  background: var(--wp--preset--color--surface);
}

.ttsr-more .ttsr-photo {
  border: 0;
  border-bottom: 1px solid var(--wp--preset--color--hairline);
  border-radius: 0;
  aspect-ratio: 16 / 10;
}

.ttsr-more .ttsr-more-body {
  padding: 20px 22px 24px;
}

.ttsr-more h3 {
  font-size: 24px !important;
  margin: 0 0 8px;
}

.ttsr-more p {
  margin: 0;
  color: var(--wp--preset--color--stone);
  font-size: 15px;
}

/* ---------- trust strip ---------- */
.ttsr-trust-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
}

.ttsr-trust-strip .ttsr-logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 16px;
}

.ttsr-trust-strip .ttsr-logo-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 84px;
  padding: 8px 16px;
  border-radius: 4px;
  background: #ffffff;
}

.ttsr-trust-strip .ttsr-logo-tile.is-dark {
  background: #000000;
  border: 1px solid var(--wp--preset--color--hairline);
}

.ttsr-trust-strip .ttsr-logo-tile img {
  max-height: 68px;
  width: auto;
}

.ttsr-trust-strip p {
  margin: 0;
}

/* ---------- FAQ ---------- */
.ttsr-faq {
  border-top: 1px solid var(--wp--preset--color--hairline);
}

.ttsr-faq details {
  border-bottom: 1px solid var(--wp--preset--color--hairline);
}

.ttsr-faq summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 18px 2px;
  font-weight: 600;
  font-size: 16.5px;
}

.ttsr-faq summary::-webkit-details-marker {
  display: none;
}

.ttsr-faq summary::after {
  content: "+";
  font-family: var(--wp--preset--font-family--mono);
  font-size: 20px;
  color: var(--wp--preset--color--racing-red-bright);
  flex: none;
}

.ttsr-faq details[open] summary::after {
  content: "\2212";
}

.ttsr-faq summary:focus-visible {
  outline: 2px solid var(--wp--preset--color--racing-red-bright);
  outline-offset: 2px;
}

.ttsr-faq details > div {
  padding: 0 2px 20px;
  color: var(--wp--preset--color--stone);
  max-width: 70ch;
}

.ttsr-faq details > div p {
  margin: 0 0 10px;
}

/* ---------- quote form ---------- */
.ttsr-form {
  padding: 30px;
  display: grid;
  gap: 16px;
}

.ttsr-form-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
}

@media (max-width: 599px) {
  .ttsr-form {
    padding: 22px 18px;
  }
  .ttsr-form-row {
    grid-template-columns: minmax(0, 1fr);
  }
}

.ttsr-form select {
  width: 100%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 2px;
  padding: 11px 12px;
  color: #fff;
  font-family: var(--wp--preset--font-family--body);
  font-size: 14.5px;
  color-scheme: dark;
}

.ttsr-form select option {
  background: var(--wp--preset--color--surface);
  color: #fff;
}

.ttsr-form input:focus,
.ttsr-form select:focus,
.ttsr-form textarea:focus {
  outline: 2px solid var(--wp--preset--color--racing-red-bright);
  outline-offset: 1px;
  border-color: transparent;
}

.ttsr-form input::placeholder,
.ttsr-form textarea::placeholder {
  color: rgba(255, 255, 255, 0.38);
}

.ttsr-form textarea {
  resize: vertical;
}

.ttsr-form .ttsr-form-submit {
  width: 100%;
  background: var(--wp--preset--color--racing-red);
  color: #fff;
  border: none;
  padding: 14px 22px;
  font-family: var(--wp--preset--font-family--label);
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  font-size: 13.5px;
  border-radius: 2px;
  cursor: pointer;
}

.ttsr-form .ttsr-form-submit:hover {
  background: var(--wp--preset--color--racing-red-bright);
}

.ttsr-form-alt {
  margin: 0;
  font-size: 13.5px;
  color: rgba(255, 255, 255, 0.65);
  text-align: center;
}

.ttsr-form-alt a {
  color: #fff;
}

.ttsr-hp {
  position: absolute !important;
  left: -9999px !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.ttsr-form-notice {
  border-radius: 2px;
  padding: 12px 14px;
  font-size: 14.5px;
}

.ttsr-form-notice.is-ok {
  background: rgba(46, 160, 67, 0.16);
  border: 1px solid rgba(46, 160, 67, 0.55);
  color: #d9f7df;
}

.ttsr-form-notice.is-error {
  background: rgba(255, 180, 0, 0.12);
  border: 1px solid rgba(255, 180, 0, 0.5);
  color: #ffe7b0;
}

/* ---------- contact details ---------- */
.ttsr-contact-lines {
  display: grid;
  gap: 6px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
  font-family: var(--wp--preset--font-family--mono);
  font-size: 14px;
  position: relative;
}

.ttsr-contact-lines a {
  color: #fff;
}

.ttsr-contact-lines .ttsr-big {
  font-family: var(--wp--preset--font-family--display);
  font-size: 34px;
  letter-spacing: 1px;
  line-height: 1;
}

.ttsr-contact-lines .ttsr-big a {
  text-decoration: none;
}

/* ---------- reviews ---------- */
.ttsr-reviews {
  padding: var(--wp--preset--spacing--60) 0;
}

.ttsr-reviews h2 {
  margin: 14px 0 26px;
}

.ttsr-reviews-actions {
  margin-top: 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* ---------- section intro ---------- */
.ttsr-intro {
  max-width: 760px;
}

.ttsr-intro h2 {
  margin: 14px 0 14px;
}

/* ---------- footer (1.1.0) ---------- */
.ttsr-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 32px;
}

@media (max-width: 781px) {
  .ttsr-footer-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }
}

.ttsr-footer h2 {
  font-family: var(--wp--preset--font-family--label);
  font-size: 12px !important;
  font-weight: 600;
  letter-spacing: 1.6px;
  color: var(--wp--preset--color--chalk);
  margin: 0 0 12px;
}

.ttsr-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}

.ttsr-footer p {
  margin: 0 0 10px;
  line-height: 1.6;
}

.ttsr-footer .ttsr-badge {
  margin-top: 6px;
}

.ttsr-footer-base {
  margin-top: 30px;
  padding-top: 18px;
  border-top: 1px solid var(--wp--preset--color--hairline);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 20px;
}

.ttsr-google-links .ttsr-sep {
  color: var(--wp--preset--color--asphalt-faint);
}

/* ---------- mobile spacing ---------- */
@media (max-width: 599px) {
  .ttsr-hero-media {
    margin-top: 8px;
  }
  .ttsr-price-card .ttsr-pkg-price {
    font-size: 44px;
  }
}

.ttsr-contact > * {
  position: relative;
}

.ttsr-google-links.is-contact {
  display: block;
  margin-top: 10px;
  font-family: var(--wp--preset--font-family--mono);
  font-size: 14px;
}

.ttsr-google-links.is-contact a {
  color: #fff;
}

/* ---------- 1.1.0 polish ---------- */
.ttsr-form input,
.ttsr-form select,
.ttsr-form textarea {
  box-sizing: border-box;
  max-width: 100%;
  display: block;
}

.ttsr-form label {
  margin-bottom: 7px;
}

.ttsr-trust-row {
  margin-top: 22px;
}

.ttsr-benefits {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 960px) {
  .ttsr-benefits {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 599px) {
  .ttsr-benefits {
    grid-template-columns: minmax(0, 1fr);
  }
}

.ttsr-split .ttsr-photo.is-portrait {
  aspect-ratio: 1 / 1;
}

.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button {
  background: transparent;
  color: var(--wp--preset--color--chalk);
  border: 2px solid currentColor;
}

.wp-block-button.is-style-outline > .wp-block-button__link.wp-element-button:hover {
  background: var(--wp--preset--color--chalk);
  color: var(--wp--preset--color--asphalt);
}

.ttsr-contact .wp-block-columns {
  align-items: flex-start !important;
}

.ttsr-contact .wp-block-column {
  align-self: flex-start !important;
}

.ttsr-gallery {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.ttsr-gallery .ttsr-photo.is-feature {
  grid-column: span 2;
  grid-row: span 2;
  aspect-ratio: auto;
}

.ttsr-gallery .ttsr-photo.is-top img {
  object-position: 50% 15%;
}

@media (max-width: 781px) {
  .ttsr-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ttsr-gallery .ttsr-photo.is-feature {
    grid-row: span 1;
    aspect-ratio: 4 / 3;
  }
}

@media (max-width: 479px) {
  .ttsr-gallery {
    grid-template-columns: minmax(0, 1fr);
  }
  .ttsr-gallery .ttsr-photo.is-feature {
    grid-column: auto;
  }
}

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

.ttsr-form > p:empty,
.ttsr-form > br,
.ttsr-reviews-inner > p:empty {
  display: none;
}

.ttsr-gallery .ttsr-photo.is-feature img {
  position: absolute;
  inset: 0;
}

.ttsr-footer .ttsr-credit a {
  color: var(--wp--preset--color--chalk);
  text-decoration: underline;
  text-underline-offset: 3px;
}
/* ---------- 1.2.0: mobile menu fix ----------
   backdrop-filter on the sticky header made it the containing block for the
   navigation overlay (position:fixed), trapping the phone menu inside the
   80px header. The blur now lives on a pseudo-element instead. */
.ttsr-header {
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.ttsr-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(10, 10, 12, 0.86);
  backdrop-filter: blur(10px) saturate(140%);
  -webkit-backdrop-filter: blur(10px) saturate(140%);
  pointer-events: none;
}

.ttsr-header .wp-block-navigation__responsive-container.is-menu-open {
  position: fixed;
  inset: 0;
  z-index: 100000;
  padding: 24px 24px 40px;
  background: var(--wp--preset--color--asphalt) !important;
  overflow-y: auto;
}

.ttsr-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
  padding-top: 56px;
  align-items: flex-start;
}

.ttsr-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  gap: 4px;
  align-items: flex-start;
  width: 100%;
}

.ttsr-header .is-menu-open .wp-block-navigation-item {
  width: 100%;
  align-items: flex-start;
}

.ttsr-header .is-menu-open .wp-block-navigation-item > a,
.ttsr-header .is-menu-open .wp-block-navigation-submenu > .wp-block-navigation-item__content {
  font-family: var(--wp--preset--font-family--display) !important;
  font-size: 34px !important;
  font-weight: 400 !important;
  letter-spacing: 0.5px !important;
  line-height: 1.1;
  color: var(--wp--preset--color--chalk) !important;
  padding: 8px 0 !important;
}

.ttsr-header .is-menu-open .wp-block-navigation__submenu-container {
  background: transparent !important;
  border: 0 !important;
  padding: 0 0 8px 14px !important;
  border-left: 2px solid var(--wp--preset--color--racing-red) !important;
  margin: 2px 0 8px;
}

.ttsr-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item > a {
  font-family: var(--wp--preset--font-family--label) !important;
  font-size: 15px !important;
  letter-spacing: 1.4px !important;
  text-transform: uppercase;
  color: var(--wp--preset--color--stone) !important;
  padding: 7px 0 !important;
}

.ttsr-header .wp-block-navigation__responsive-container-close {
  top: 22px;
  right: 22px;
}

.ttsr-header .wp-block-navigation__responsive-container-close svg {
  width: 32px;
  height: 32px;
}

.ttsr-header .wp-block-navigation__responsive-container.is-menu-open,
.ttsr-header .is-menu-open .wp-block-navigation__responsive-container-content,
.ttsr-header .is-menu-open .wp-block-navigation__container,
.ttsr-header .is-menu-open .wp-block-navigation-item {
  --navigation-layout-justification-setting: flex-start;
  --navigation-layout-justify: flex-start;
  --navigation-layout-align: flex-start;
  align-items: flex-start !important;
  justify-content: flex-start !important;
  text-align: left;
}

.ttsr-header .is-menu-open .wp-block-navigation__submenu-container {
  align-items: flex-start !important;
}

/* ---------- 1.2.0: home "two ways to race" cards ---------- */
.ttsr-paths {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

@media (max-width: 781px) {
  .ttsr-paths {
    grid-template-columns: minmax(0, 1fr);
  }
}

.ttsr-path {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: var(--wp--preset--color--surface);
  color: inherit;
  text-decoration: none;
}

.ttsr-path .ttsr-photo {
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid var(--wp--preset--color--hairline);
  aspect-ratio: 16 / 10;
}

.ttsr-path .ttsr-path-body {
  padding: 24px 26px 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}

.ttsr-path h3 {
  font-size: clamp(1.75rem, 3vw, 2.25rem) !important;
  margin: 0;
}

.ttsr-path p {
  margin: 0;
  color: var(--wp--preset--color--stone);
  font-size: 15.5px;
}

.ttsr-path .ttsr-path-price {
  font-family: var(--wp--preset--font-family--mono);
  font-size: 12.5px;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--wp--preset--color--racing-red-bright);
}

.ttsr-path .ttsr-path-go {
  margin-top: auto;
  padding-top: 8px;
  font-family: var(--wp--preset--font-family--label);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--wp--preset--color--chalk);
}

.ttsr-path:hover .ttsr-path-go,
.ttsr-path:focus-visible .ttsr-path-go {
  color: var(--wp--preset--color--racing-red-bright);
}

.ttsr-path:focus-visible {
  outline: 2px solid var(--wp--preset--color--racing-red-bright);
  outline-offset: 3px;
}

/* ---------- 1.2.0: CTA band ---------- */
.ttsr-cta-band {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px 32px;
}

.ttsr-cta-band h2 {
  color: #fff;
  margin: 10px 0 8px;
}

.ttsr-cta-band p {
  color: rgba(255, 255, 255, 0.85);
  margin: 0;
}

.ttsr-cta-band .ttsr-cta-phone {
  font-family: var(--wp--preset--font-family--display);
  font-size: 34px;
  letter-spacing: 1px;
  color: #fff;
  text-decoration: none;
}
