/* Native replacements for the JotForm embeds, styled with the captured Bootstrap bundle. */
.legacy-page-root {
  display: contents;
}

.tp-native-form {
  margin: 0 auto;
  max-width: 720px;
  text-align: left;
}

.tp-native-form .tp-form-eyebrow {
  color: #6c757d;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  margin: 0 0 0.35rem;
  text-transform: uppercase;
}

.tp-native-form .tp-form-grid {
  display: grid;
  gap: 0 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tp-native-form .tp-form-grid .tp-field-full {
  grid-column: 1 / -1;
}

.tp-native-form .form-group {
  margin-bottom: 1rem;
}

.tp-native-form label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.35rem;
}

.tp-native-form label .tp-required {
  color: #dc3545;
  margin-left: 0.15rem;
}

.tp-native-form .form-control {
  width: 100%;
  min-height: 44px;
}

.tp-native-form textarea.form-control {
  min-height: 120px;
  resize: vertical;
}

.tp-native-form .tp-consent {
  align-items: flex-start;
  display: flex;
  font-size: 0.9rem;
  gap: 0.6rem;
  margin: 0.25rem 0 1rem;
}

.tp-native-form .tp-consent input {
  flex: none;
  margin-top: 0.3rem;
}

.tp-native-form .tp-consent label {
  font-weight: 400;
  margin: 0;
}

.tp-native-form .tp-legal-links {
  font-size: 0.85rem;
  margin: -0.5rem 0 1rem;
}

.tp-native-form .tp-turnstile {
  margin: 0 0 1rem;
  min-height: 65px;
}

.tp-native-form .tp-honeypot {
  height: 0;
  left: -9999px;
  opacity: 0;
  position: absolute;
  width: 0;
}

.tp-native-form .tp-form-status {
  border-radius: 4px;
  margin: 1rem 0 0;
  padding: 0.85rem 1rem;
}

.tp-native-form .tp-form-status[data-state="error"] {
  background: #f8d7da;
  color: #721c24;
}

.tp-native-form .tp-form-status[data-state="success"] {
  background: #d4edda;
  color: #155724;
}

.tp-native-form .tp-form-actions {
  text-align: center;
}

.tp-native-form .tp-form-files {
  font-size: 0.9rem;
}

.tp-native-form .tp-form-files ul {
  margin: 0.5rem 0 0;
  padding-left: 1.2rem;
}

@media (max-width: 767px) {
  .tp-native-form .tp-form-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .tp-native-form .form-group {
    margin-bottom: 0.6rem;
  }

  .tp-native-form label {
    margin-bottom: 0.2rem;
  }

  .tp-native-form textarea.form-control {
    min-height: 88px;
  }

  .tp-native-form .tp-consent,
  .tp-native-form .tp-turnstile {
    margin-bottom: 0.6rem;
  }
}

/* Each mount reserves the height the legacy JotForm iframe auto-sized to at that
   width, so everything after the form sits where it does on the legacy site. */
.tp-native-form-mount[data-native-form="contact-inquiry"] { min-height: 694px; }
.tp-native-form-mount[data-native-form="dealer-signup"] { min-height: 924px; }
.tp-native-form-mount[data-native-form="warranty-claim"] { min-height: 1898px; }

@media (min-width: 576px) {
  .tp-native-form-mount[data-native-form="contact-inquiry"] { min-height: 702px; }
  .tp-native-form-mount[data-native-form="dealer-signup"] { min-height: 880px; }
  .tp-native-form-mount[data-native-form="warranty-claim"] { min-height: 1833px; }
}

@media (min-width: 768px) {
  .tp-native-form-mount[data-native-form="contact-inquiry"] { min-height: 670px; }
  .tp-native-form-mount[data-native-form="dealer-signup"] { min-height: 840px; }
  .tp-native-form-mount[data-native-form="warranty-claim"] { min-height: 1702px; }
}

@media (min-width: 992px) {
  .tp-native-form-mount[data-native-form="contact-inquiry"] { min-height: 598px; }
  .tp-native-form-mount[data-native-form="dealer-signup"] { min-height: 768px; }
  .tp-native-form-mount[data-native-form="warranty-claim"] { min-height: 1808px; }
}

@media (min-width: 1200px) {
  .tp-native-form-mount[data-native-form="contact-inquiry"] { min-height: 558px; }
  .tp-native-form-mount[data-native-form="dealer-signup"] { min-height: 728px; }
}

/* Legacy JotForm look. Measurements come from the live timberlineportable.com embeds. */
@font-face {
  font-display: swap;
  font-family: "TP Inter";
  font-style: normal;
  font-weight: 400 600;
  src: url("/fonts/inter-latin-variable.woff2") format("woff2");
}

.tp-visually-hidden,
.tp-jot-classic .form-group > label {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.tp-native-form.tp-jot .form-control {
  margin: 0;
  min-height: 0;
}

.tp-native-form .tp-jot-submit {
  cursor: pointer;
  display: inline-block;
  letter-spacing: normal;
  text-transform: none;
}

.tp-native-form .tp-jot-submit:disabled {
  cursor: default;
  opacity: 0.6;
}

/* Contact and dealer forms: classic theme, labels inside the boxes. */
.tp-native-form.tp-jot-classic {
  color: #555;
  font-family: Merriweather, serif;
  max-width: 690px;
  padding: 10px 10px 34px 0;
}

.tp-jot-classic .tp-form-grid {
  gap: 0 28px;
}

.tp-jot-classic .form-group {
  margin-bottom: 48px;
}

.tp-jot-classic .form-group.tp-field-message {
  margin: -16px 0 36px;
}

.tp-jot-classic[data-form-type="dealer_signup"] .form-group:nth-child(-n + 2) {
  margin-bottom: 44px;
}

.tp-jot-classic .tp-form-actions {
  margin-right: -10px;
}

.tp-jot-classic .form-control {
  background: rgba(223, 215, 195, 0.21);
  border: 1px solid #ccc;
  border-radius: 0;
  box-shadow: inset 0 1px 2px #eee;
  color: #000;
  font: 400 16px/17.136px Merriweather, serif;
  height: 40px;
  padding: 4px 8px 2px;
}

.tp-jot-classic textarea.form-control {
  height: 111px;
  min-height: 111px;
}

.tp-jot-classic .form-control::placeholder {
  color: #757575;
  opacity: 1;
}

.tp-jot-classic .form-control:focus {
  border-color: #997642;
  box-shadow: none;
  outline: 0;
}

.tp-jot-classic .tp-consent {
  color: #6f6f6f;
  font-size: 14px;
  margin: 0 0 8px;
}

.tp-jot-classic .tp-legal-links {
  font-size: 13px;
  margin: 0 0 36px;
}

.tp-jot .tp-turnstile-label {
  color: #555;
  font: 700 16px/20px Merriweather, serif;
  margin: 0 0 9px;
}

.tp-jot .tp-turnstile-label .tp-required {
  color: #f00;
  margin-left: 4px;
}

.tp-jot-classic .tp-turnstile {
  margin: 0 0 44px;
  min-height: 78px;
}

.tp-native-form.tp-jot-classic .tp-jot-submit {
  background: #fff;
  border: 2px solid #0c7741;
  border-radius: 1px;
  box-shadow: 0 1px 0 #ddd;
  color: #0c7741;
  font: 700 16px/normal Merriweather, serif;
  min-width: 200px;
  padding: 16px 24px;
}

.tp-native-form.tp-jot-classic .tp-jot-submit:hover:not(:disabled) {
  background: #0c7741;
  color: #fff;
}

/* Warranty claim: JotForm's newer theme, labels above and hints below. */
.tp-native-form.tp-jot-claim {
  color: #2c3344;
  font-family: "TP Inter", Inter, sans-serif;
  left: -8px;
  max-width: 648px;
  padding: 40px 0 40px;
  position: relative;
}

.tp-jot-claim .tp-jot-header {
  border-bottom: 1px solid #e6e6e6;
  font: 500 16px/25.6px "TP Inter", Inter, sans-serif;
  margin: 0 -60px 40px;
  padding: 0 104px 40px;
  text-align: center;
}

.tp-jot-claim .form-group {
  margin-bottom: 48px;
}

.tp-jot-claim .form-group.tp-field-half {
  max-width: 310px;
}

.tp-jot-claim .form-group > label,
.tp-jot-claim .tp-group-label {
  color: #2c3344;
  display: block;
  font: 500 16px/20px "TP Inter", Inter, sans-serif;
  margin: 0 2px 14px;
}

.tp-jot-claim .tp-required {
  color: #dc2626;
  margin-left: 2px;
}

.tp-jot-claim .form-control {
  background: #fff;
  border: 1px solid #b8bdc9;
  border-radius: 4px;
  box-shadow: none;
  color: #2c3345;
  font: 400 16px/normal "TP Inter", Inter, sans-serif;
  height: 40px;
  padding: 0 10px;
}

.tp-jot-claim textarea.form-control {
  height: 163px;
  min-height: 163px;
  padding: 10px;
}

.tp-jot-claim .form-control::placeholder {
  color: #8894ab;
  opacity: 1;
}

.tp-jot-claim .form-control:focus {
  border-color: #2e69ff;
  box-shadow: 0 0 0 3px #e3e8f9;
  outline: 0;
}

.tp-jot-claim .tp-field-hint {
  color: #2c3344;
  display: block;
  font: 400 12px/15px "TP Inter", Inter, sans-serif;
  margin: 11px 2px 0;
}

.tp-jot-claim .tp-field-group-inputs {
  display: grid;
  gap: 24px;
}

.tp-jot-claim .tp-field-columns .tp-field-group-inputs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tp-jot-claim .tp-dropzone {
  align-items: center;
  background: #fbfcff;
  border: 1px dashed #2c3345;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
  height: 132px;
  justify-content: center;
  position: relative;
}

.tp-jot-claim .tp-dropzone:focus-within {
  border-color: #2e69ff;
  box-shadow: 0 0 0 3px #e3e8f9;
}

.tp-jot-claim .tp-dropzone-icon {
  fill: #b8bdc9;
  height: 24px;
  margin-bottom: 8px;
  position: static;
  width: 24px;
}

.tp-jot-claim .tp-dropzone-title {
  font: 600 18px/22px "TP Inter", Inter, sans-serif;
}

.tp-jot-claim .tp-dropzone-hint {
  color: #57647e;
  font: 400 14px/20px "TP Inter", Inter, sans-serif;
  margin-top: 4px;
}

.tp-jot-claim .tp-dropzone-hint[data-pointer="coarse"] {
  display: none;
}

@media (pointer: coarse) {
  .tp-jot-claim .tp-dropzone-hint[data-pointer="fine"] { display: none; }
  .tp-jot-claim .tp-dropzone-hint[data-pointer="coarse"] { display: inline; }
}

.tp-jot-claim .tp-dropzone-input {
  cursor: pointer;
  height: 100%;
  inset: 0;
  opacity: 0;
  position: absolute;
  width: 100%;
}

.tp-jot-claim .tp-form-files {
  font-size: 14px;
  margin-bottom: 24px;
}

.tp-jot-claim .tp-consent {
  font-size: 14px;
}

.tp-jot-claim .tp-legal-links {
  font-size: 13px;
  margin: 0 0 24px;
}

.tp-jot-claim .tp-turnstile[data-appearance="interaction-only"] {
  margin: 0;
  min-height: 0;
}

.tp-jot-claim .tp-form-actions {
  border-top: 1px solid #e6e6e6;
  margin: 0 -60px;
  padding: 30px 60px 0 70px;
}

.tp-native-form.tp-jot-claim .tp-jot-submit {
  background: #0c3d24;
  border: 1px solid #0c3d24;
  border-radius: 4px;
  color: #fff;
  font: 400 16px/normal "TP Inter", Inter, sans-serif;
  height: 48px;
  min-width: 180px;
  padding: 0 12px;
}

.tp-native-form.tp-jot-claim .tp-jot-submit:hover:not(:disabled) {
  background: #145a36;
}

@media (max-width: 575px) {
  .tp-native-form.tp-jot-classic {
    max-width: none;
    padding: 36px 24px 12px 2px;
  }

  .tp-jot-classic .form-group {
    margin-bottom: 48px;
  }

  .tp-jot-classic .form-group:first-child,
  .tp-jot-classic[data-form-type="dealer_signup"] .form-group:first-child {
    margin-bottom: 12px;
  }

  /* Dealer pages' "Visit our lot" line: the captured row and column have no padding. */
  .bg-cream .row.text-center.p-0 > .col-lg-12.p-0 > p.mb-5 {
    padding: 0 15px;
  }

  .tp-jot-classic[data-form-type="dealer_signup"] .form-group:nth-child(2) {
    margin-bottom: 48px;
  }

  .tp-jot-classic[data-form-type="contact_inquiry"] .form-group:nth-child(2) {
    margin-bottom: 52px;
  }

  .tp-jot-classic .tp-form-actions {
    margin-right: 0;
  }

  .tp-jot-classic .form-group.tp-field-message {
    margin: -12px 0 36px;
  }

  .tp-jot-classic .tp-turnstile {
    margin-bottom: 36px;
  }

  .tp-jot-classic .tp-form-actions {
    text-align: left;
  }

  .tp-native-form.tp-jot-claim {
    left: 0;
    max-width: none;
    padding: 28px 68px 30px 52px;
  }

  .tp-jot-claim .tp-jot-header {
    border-bottom: 0;
    margin: 0 0 69px;
    padding: 0;
  }

  .tp-jot-claim .form-group > label,
  .tp-jot-claim .tp-group-label {
    max-width: 170px;
  }

  .tp-jot-claim .tp-field-group-inputs {
    gap: 8px;
  }

  .tp-jot-claim .tp-form-actions {
    border-top: 0;
    margin: 0;
    padding: 31px 0 0;
  }

  .tp-native-form.tp-jot-claim .tp-jot-submit {
    width: 100%;
  }
}

.tp-error {
  font-family: "Merriweather Sans", "Helvetica Neue", Arial, sans-serif;
  margin: 12vh auto;
  max-width: 640px;
  padding: 0 20px;
  text-align: center;
}

/* Outdoor pages share the captured site's fonts, Bootstrap grid, buttons and footer. */
.tp-website-header .navbar { height:auto; min-height:90px; }
.tp-website-header .navbar > .container { flex-wrap:wrap; padding-top:12px; padding-bottom:12px; }
.tp-website-header .navbar-brand img { width:200px; height:auto; }
.tp-website-header .navbar .navbar-nav { margin-left:0; }
.tp-website-header .navbar .navbar-nav .nav-link { margin:0; padding:8px 12px; font-size:15px; }
.tp-website-header .navbar .navbar-nav .btn { margin-left:16px; }
.tp-website-header [aria-current=page] { color:#997642 !important; }
.tp-contact-bar, .tp-contact-bar > div { display:flex; justify-content:space-between; gap:24px; }
.tp-contact-bar a { color:white; }
.tp-menu-toggle, .tp-mobile-contact { display:none; }
.tp-sale-banner { display:none; background:#cebfa4; color:#0C3D24; font-weight:700; line-height:1.4; text-align:center; }
.tp-sale-on .tp-sale-banner { display:block; animation:tp-sale-drop .5s ease-out; }
.tp-sale-on .header-appear .tp-sale-banner { display:none; }
.tp-sale-banner .container { padding-top:10px; padding-bottom:10px; }
.tp-sale-banner p { margin:0; font-size:16px; color:inherit; }
.tp-sale-banner a { color:inherit; text-decoration:underline; text-underline-offset:3px; margin-left:6px; white-space:nowrap; }
.tp-sale-banner a:focus-visible { outline:3px solid #0C3D24; outline-offset:2px; }
@keyframes tp-sale-drop { from { transform:translateY(-100%); } }
@media (prefers-reduced-motion:reduce) { .tp-sale-on .tp-sale-banner { animation:none; } }
@media (max-width:575px) { .tp-sale-banner p { font-size:14px; } }
.tp-skip-link { position:absolute; left:16px; top:-100px; z-index:200; background:white; padding:12px; }
.tp-skip-link:focus { top:12px; }
.tp-website :focus-visible { outline:3px solid #997642; outline-offset:4px; }
.tp-outdoor-hero { position:relative; background:linear-gradient(#0006,#0006),url('/images/bg-contact.jpg') center 55% / cover; text-align:center; padding:110px 0 130px; }
.tp-outdoor-hero h1 { color:white; font-size:clamp(36px,5vw,60px); }
.tp-outdoor-hero p { color:white; margin:20px 0 0; font-size:18px; }
.tp-hero-edge { position:absolute; bottom:-1px; left:0; width:100%; height:60px; }
.tp-catalog-content { padding:64px 0 80px; background:white; }
.tp-catalog-message { text-align:center; max-width:680px; margin:auto; }
.tp-catalog h2 { font-size:clamp(24px,3vw,34px); margin-bottom:24px; }
.tp-catalog-message p { margin:0 auto 28px; line-height:1.8; }
.tp-catalog-actions { display:flex; gap:24px; justify-content:center; align-items:center; flex-wrap:wrap; }
.tp-catalog-actions form { margin:0; }
.tp-text-link { color:#0C3D24; text-decoration:underline; text-underline-offset:4px; }
.tp-catalog-intro { text-align:center; margin-bottom:32px; }
.tp-catalog label { display:block; margin:16px 0; }
.tp-catalog input:not([type=checkbox]), .tp-catalog select, .tp-catalog textarea { display:block; width:100%; font:inherit; color:inherit; border:1px solid #adb9b0; border-radius:0; padding:12px; margin-top:8px; background:white; }
.tp-catalog-search { max-width:440px; margin-bottom:32px !important; }
.tp-catalog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); gap:32px; }
.tp-catalog-product { min-width:0; }
.tp-catalog-card { display:flex; flex-direction:column; border:1px solid #dce3dd; border-radius:8px; overflow:hidden; }
.tp-catalog-cover { width:100%; aspect-ratio:4/3; object-fit:cover; background:#f2f4f0; }
.tp-catalog-tile { background:#eef1ec url('/images/logo.png') center / 50% auto no-repeat; }
.tp-catalog-card-body { display:flex; flex:1; flex-direction:column; align-items:flex-start; padding:24px; }
.tp-catalog-card h2 { font-size:26px; margin:8px 0 16px; }
.tp-catalog-description { line-height:1.7; }
.tp-catalog-card .tp-catalog-price { margin-top:auto; padding-top:16px; }
.tp-catalog-price { font-size:20px; font-weight:600; }
.tp-catalog-count { margin-bottom:24px; color:#53645a; }
.tp-catalog-back { display:inline-block; border:0; background:none; padding:0; margin-bottom:32px; font:inherit; }
.tp-catalog-detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; }
.tp-catalog-details { min-width:0; }
.tp-catalog-inquiry h2 { font-size:23px; }
.tp-catalog-title { font-size:clamp(28px,4vw,40px); margin:8px 0 20px; }
.tp-catalog-detail.tp-catalog-detail-text { grid-template-columns:minmax(0,1fr); max-width:760px; }
.tp-catalog-supplier { font-size:14px; margin:0; }
.tp-catalog button.btn-cta { color:white; }
.tp-catalog button:disabled { opacity:.45; cursor:default; }
.tp-catalog-inquiry { margin-top:24px; border-top:1px solid #ddd; padding-top:24px; }
.tp-catalog .tp-native-form .tp-form-grid { grid-template-columns:1fr; }
.tp-catalog-media { display:flex; flex-direction:column; align-self:start; gap:16px; }
.tp-catalog-media img { width:100%; height:auto; border-radius:8px; }
@media (max-width:767px) { .tp-catalog-detail { grid-template-columns:minmax(0,1fr); gap:24px; } }
.tp-outdoor-footer { text-align:center; padding:16px; margin:0; }
.tp-outdoor-footer a { color:inherit; text-decoration:underline; }
@media (max-width:1199px) {
 .tp-website-header .navbar .navbar-nav .nav-link { padding:8px; font-size:14px; }
 .tp-website-header .navbar-brand img { width:170px; }
 .tp-website-header .navbar .navbar-nav .btn { margin-left:8px; padding:12px; }
}
@media (max-width:1199px) {
 .tp-menu-toggle { display:block; background:white; border:1px solid #0C3D24; color:#0C3D24; padding:10px 14px; }
 .tp-website-navigation { display:none; flex-basis:100%; }
 .tp-website-navigation.is-open { display:block; }
 .tp-website-header .navbar .navbar-nav { align-items:stretch !important; flex-direction:column; padding:16px 0; }
 .tp-website-header .navbar .navbar-nav .nav-link { font-size:16px; padding:12px 0; }
 .tp-website-header .navbar .navbar-nav .btn { margin:8px 0; }
 .tp-mobile-contact { display:block; }
 .tp-contact-bar > div a:last-child { display:none; }
}
@media (max-width:575px) {
 .tp-contact-bar { gap:12px; font-size:11px; }
 .tp-outdoor-hero { padding:76px 0 94px; }
 .tp-outdoor-hero p { font-size:16px; }
 .tp-hero-edge { height:36px; }
 .tp-catalog-content { padding:40px 0 56px; }
 .tp-catalog-actions { gap:20px; }
 .tp-website footer .contact-section a { overflow-wrap:anywhere; }
}
.tp-legal { padding:64px 0 80px; background:white; }
.tp-legal .container { max-width:760px; }
.tp-legal h1 { font-size:clamp(32px,4vw,44px); margin-bottom:24px; }
.tp-legal h2 { font-size:22px; margin:32px 0 12px; }
.tp-legal p { line-height:1.8; }
.tp-legal-updated { margin-top:40px; color:#53645a; }

/* The Shed App inventory scrolls inside its own frame, cannot report its height, and only loads more
   listings when scrolled inside. So the inventory page is one screen: top bar, menu, and the
   listings filling the rest, with no page scroll (changes/CHANGES.md). The captured CSS pulls the
   frame up 90px to hide the storefront's top spacing. */
html:has(.legacy-page-root[data-route="/inventory.html"]),
html:has(.legacy-page-root[data-route="/inventory.html"]) body { height:100%; overflow:hidden; }
.legacy-page-root[data-route="/inventory.html"] { display:flex; flex-direction:column; height:100vh; height:100dvh; }
.legacy-page-root[data-route="/inventory.html"] > *,
.legacy-page-root[data-route="/inventory.html"] > main > * { flex:none; }
.legacy-page-root[data-route="/inventory.html"] > .about-banner,
.legacy-page-root[data-route="/inventory.html"] > footer,
.legacy-page-root[data-route="/inventory.html"] > .go-top,
.legacy-page-root[data-route="/inventory.html"] > main > .about-banner { display:none; }
.legacy-page-root[data-route="/inventory.html"] > section.inventory,
.legacy-page-root[data-route="/inventory.html"] > main > section.inventory { flex:1 1 auto; height:auto; min-height:0; }
.legacy-page-root[data-route="/inventory.html"] section.inventory :is(.container-fluid, .row, .col-12) { height:100%; }
.legacy-page-root[data-route="/inventory.html"] section.inventory iframe { display:block; height:calc(100% + 90px); }

/* Slider Revolution gives each hero its height only when its script runs, so until then the hero
   is empty and everything below it jumps down. Reserve the height the slider will set (gridheight
   scaled by width / gridwidth at the level it picks; public/js/script.js) only until the slider
   initialises, so the final layout stays the slider's own. Some dealer pages captured a fixed
   wrapper height that the slider replaces; it would override the reserved one. */
.rev_slider_wrapper:has(> .rev_slider:not(.revslider-initialised)) { height:auto !important; }
@media (min-width:1024px) {
  .rev_slider_wrapper:has(> #rev_slider_home:not(.revslider-initialised)) { aspect-ratio:1140/800; max-height:800px; }
  .rev_slider_wrapper:has(> :is(#rev_slider_single, #rev_slider_19_1):not(.revslider-initialised)) { aspect-ratio:1140/750; max-height:750px; }
  .rev_slider_wrapper:has(> #rev_slider_dealer:not(.revslider-initialised)) { aspect-ratio:1140/650; max-height:650px; }
}
@media (min-width:778px) and (max-width:1023.98px) {
  .rev_slider_wrapper:has(> #rev_slider_home:not(.revslider-initialised)) { aspect-ratio:1024/650; max-height:650px; }
  .rev_slider_wrapper:has(> :is(#rev_slider_single, #rev_slider_19_1):not(.revslider-initialised)) { aspect-ratio:1024/500; max-height:500px; }
  .rev_slider_wrapper:has(> #rev_slider_dealer:not(.revslider-initialised)) { aspect-ratio:1024/650; max-height:650px; }
}
@media (min-width:480px) and (max-width:777.98px) {
  .rev_slider_wrapper:has(> #rev_slider_home:not(.revslider-initialised)) { aspect-ratio:750/550; max-height:550px; }
  .rev_slider_wrapper:has(> :is(#rev_slider_single, #rev_slider_19_1):not(.revslider-initialised)) { aspect-ratio:750/500; max-height:500px; }
  .rev_slider_wrapper:has(> #rev_slider_dealer:not(.revslider-initialised)) { aspect-ratio:750/550; max-height:550px; }
}
@media (max-width:479.98px) {
  .rev_slider_wrapper:has(> #rev_slider_home:not(.revslider-initialised)) { aspect-ratio:480/450; max-height:450px; }
  .rev_slider_wrapper:has(> :is(#rev_slider_single, #rev_slider_19_1):not(.revslider-initialised)) { aspect-ratio:480/350; max-height:350px; }
  .rev_slider_wrapper:has(> #rev_slider_dealer:not(.revslider-initialised)) { aspect-ratio:480/450; max-height:450px; }
}

/* The first slide's photo shows from the first paint, as it looks once the slider's opening fade
   ends (changes/CHANGES.md); public/js/hero.js takes over after the page loads. Size containment
   keeps the slides' content from stretching the reserved height; the photo is drawn against
   section.about-banner, so it is not clipped. */
.rev_slider:not(.revslider-initialised) { display:block !important; contain:size; }
.rev_slider:not(.revslider-initialised) > .tp-revslider-mainul > li:first-child .tp-bgimg { opacity:1 !important; }

/* A dealer page's buildings for sale, from Corland (src/client/dealers.ts). */
/* The closed side menu waits just past the right edge; on phones the legacy body rule alone lets the
   page pan sideways to it. clip (not hidden) on both keeps body from becoming a scroll container. */
@media (max-width:767px) { html, html body { overflow-x:clip; } }
/* The legacy CSS hides the white point triangles on phones, but where a triangle has an id
   (#bigTriangleColor1-3) that rule loses and it shows, covering the bottom 88px of its box; keep
   titles above the triangle's edges. */
@media (max-width:767px) { .vStack .col-md-4:has(> svg[id^="bigTriangleColor"]) .service-box { padding-bottom:60px; } }
/* Side by side, the columns share the tallest box's height and each triangle sits at its column's
   bottom, so a box with a one-line title would stop short of its tip; fill the column instead. */
@media (min-width:768px) {
  .vStack .col-md-4:has(> svg[id^="bigTriangleColor"]) { display:flex; flex-direction:column; }
  .vStack .col-md-4:has(> svg[id^="bigTriangleColor"]) > .service-box { flex:1 0 auto; }
}
/* The box's bottom edge sits on the triangle's tip and shows as a hairline at fractional pixel
   ratios (2.625x phones); 1px higher, the triangle's solid band covers it. */
.vStack .col-md-4 > svg#bigTriangleColor1, .vStack .col-md-4 > svg#bigTriangleColor2, .vStack .col-md-4 > svg#bigTriangleColor3 { bottom:-11px; }
.tp-dealer-inventory { padding:56px 0 64px; background:#f7f5f0; scroll-margin-top:90px; }
.tp-dealer-inventory-more-row { text-align:center; margin-top:32px; }
.tp-dealer-inventory-storefront { text-align:center; margin-top:16px; }
.tp-dealer-inventory-storefront .btn { margin-top:0; }
.tp-dealer-inventory .btn.tp-dealer-inventory-more, .tp-dealer-inventory .btn.tp-dealer-inventory-more:hover, .tp-dealer-inventory .btn.tp-dealer-inventory-more:focus { color:#fff; }
.tp-dealer-inventory-card[hidden] { display:none; }
.tp-dealer-inventory h2 { font-size:clamp(26px,3vw,36px); margin-bottom:8px; text-align:center; }
.tp-dealer-inventory-count, .tp-dealer-inventory-help { text-align:center; margin:0 auto 32px; }
.tp-dealer-inventory-help { margin:32px auto 0; }
.tp-dealer-inventory-help a { color:#0C3D24; text-decoration:underline; text-underline-offset:4px; }
.tp-dealer-inventory-grid { display:flex; flex-wrap:wrap; justify-content:center; gap:24px; list-style:none; margin:0; padding:0; }
@media (max-width:575px) { .tp-dealer-inventory-grid .tp-dealer-inventory-card { flex-basis:100%; } }
.tp-dealer-inventory-card { flex:0 1 calc(25% - 18px); min-width:min(100%,240px); background:white; border:1px solid #dce3dd; border-top:4px solid #0C3D24; border-radius:8px; padding:20px 24px; }
.tp-dealer-inventory-card h3 { font-size:22px; margin:0 0 8px; }
.tp-dealer-inventory-card p { margin:0 0 8px; }
.tp-dealer-inventory-price { font-size:20px; font-weight:600; color:#0C3D24; }
.tp-dealer-inventory-serial { font-size:14px; color:#53645a; margin-bottom:0 !important; }

/* The <main> landmark added by src/lib/agent-markup.ts must not create a box, or the captured
   layout (and the inventory page's flex column) would change. */
.legacy-page-root > main#main-content { display:contents; }

/* Off the customer's domain the bundled Font Awesome 5 Free glyph would draw under the fallback. */
[data-tp-icon-fallback]::before, [data-tp-icon-fallback]::after { content:none !important; }
