/*
 * CPR WordPress shared site shell.
 *
 * Deliberately generic: no page IDs, Beaver Builder node IDs, or assumptions
 * about a particular content module. WordPress adds the cpr-site-refresh body
 * class on every public page; legacy content keeps its authored colors and
 * component treatment while headings share the homepage display system.
 */

.cpr-site-refresh {
  --cpr-ink: #090a0b;
  --cpr-paper: #fff;
  --cpr-cream: #f3f0ea;
  --cpr-teal: #41c1d0;
  --cpr-teal-deep: #107481;
  --cpr-red: #db211f;
  --cpr-muted: #625f5a;
  --cpr-display: "Oswald", "Arial Narrow", sans-serif;
  --cpr-text: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  color: var(--cpr-ink);
  background: var(--cpr-paper);
  -webkit-font-smoothing: antialiased;
}

.cpr-site-refresh *,
.cpr-site-refresh *::before,
.cpr-site-refresh *::after {
  box-sizing: border-box;
}

/* One native shell on every page. The navigation uses the same 1240px content
   rail as the homepage and company-information footer. */
.cpr-site-refresh header.fl-builder-content {
  background: var(--cpr-paper);
}

.cpr-site-refresh header.fl-builder-content .fl-row-content-wrap {
  padding-inline: 0;
}

.cpr-site-refresh header.fl-builder-content .fl-row-content.fl-row-fixed-width {
  width: calc(100% - clamp(48px, 8.4vw, 152px));
  max-width: 1240px;
  padding-inline: 0;
}

.cpr-site-refresh header.fl-builder-content .fl-module-content {
  margin-inline: 0;
}

.cpr-site-refresh header.fl-builder-content a,
.cpr-site-refresh header.fl-builder-content .menu-item-text {
  font-family: var(--cpr-text);
}

.cpr-site-refresh .fl-page-footer-container {
  width: 100%;
  max-width: 1800px;
  padding-inline: clamp(24px, 4.2vw, 76px);
}

/* Give legacy fixed-width rows a little more room without changing their
   columns, imagery, galleries, maps, or full-bleed sections. */
.cpr-site-refresh:not(.home) .fl-page-content .fl-row-content.fl-row-fixed-width {
  width: calc(100% - clamp(48px, 8.4vw, 152px));
  max-width: 1240px;
}

/* Template 1196 is embedded directly on some legacy pages and wrapped by the
   integration on others. Give every rendered copy the same content rail. */
.cpr-site-refresh .cpr-site-footer .fl-row-content.fl-row-fixed-width {
  width: calc(100% - clamp(48px, 8.4vw, 152px));
  max-width: 1240px;
}

/* The company-information footer is one shared component, whether WordPress
   inserts template 1196 or a legacy page already contains its linked copy.
   Keep its typography independent from route-specific content rules. */
.cpr-site-refresh .cpr-site-footer {
  font-family: var(--cpr-text);
}

/* Let the shared outer rail breathe on wide monitors while keeping the
   ordinary desktop and laptop layout unchanged. */
@media (min-width: 1600px) {
  .cpr-site-refresh header.fl-builder-content .fl-row-content.fl-row-fixed-width,
  .cpr-site-refresh:not(.home) .fl-page-content .fl-row-content.fl-row-fixed-width,
  .cpr-site-refresh .cpr-site-footer .fl-row-content.fl-row-fixed-width {
    max-width: clamp(1240px, calc(100vw - 320px), 1440px);
  }
}

.cpr-site-refresh .cpr-site-footer h2,
.cpr-site-refresh .cpr-site-footer h3,
.cpr-site-refresh .cpr-site-footer h4,
.cpr-site-refresh .cpr-site-footer h5,
.cpr-site-refresh .cpr-site-footer h6,
.cpr-site-refresh .cpr-site-footer .fl-heading-text,
.cpr-site-refresh .cpr-site-footer .uabb-heading,
.cpr-site-refresh .cpr-site-footer .uabb-heading-text {
  font-family: var(--cpr-display) !important;
  font-size: clamp(24px, 2vw, 30px) !important;
  font-weight: 600 !important;
  letter-spacing: -.012em;
  line-height: 1.08 !important;
  text-transform: uppercase;
}

.cpr-site-refresh .cpr-site-footer p,
.cpr-site-refresh .cpr-site-footer p span,
.cpr-site-refresh .cpr-site-footer p a {
  font-family: var(--cpr-text) !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
}

.cpr-site-refresh .cpr-site-footer .menu-item-text {
  font-family: var(--cpr-text) !important;
  font-size: 15px !important;
}

.cpr-site-refresh .cpr-site-footer .fl-icon-group a {
  display: inline-flex;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
}

/* Carry the homepage display system into legacy headings without flattening
   their authored colors. Body copy, imagery, and form treatment remain local
   to each Beaver Builder page. */
.cpr-site-refresh:not(.home) .fl-page-content h1,
.cpr-site-refresh:not(.home) .fl-page-content h2,
.cpr-site-refresh:not(.home) .fl-page-content h3,
.cpr-site-refresh:not(.home) .fl-page-content h4,
.cpr-site-refresh:not(.home) .fl-page-content h5,
.cpr-site-refresh:not(.home) .fl-page-content h6 {
  font-family: var(--cpr-display);
  font-weight: 600;
  letter-spacing: -.012em;
  line-height: 1.02;
  text-transform: uppercase;
}

.cpr-site-refresh:not(.home) .fl-page-content .fl-heading-text,
.cpr-site-refresh:not(.home) .fl-page-content .uabb-heading,
.cpr-site-refresh:not(.home) .fl-page-content .uabb-heading-text,
.cpr-site-refresh:not(.home) .fl-page-content .uabb-divider-text {
  font-family: var(--cpr-display) !important;
  font-weight: 600 !important;
  letter-spacing: -.012em;
  line-height: 1.02;
  text-transform: uppercase;
}

/* Legacy page-title dividers use lines as decoration around the heading. Keep
   the heading and give it more air, but remove the black rules Mike rejected. */
.cpr-site-refresh:not(.home) .fl-page-content .fl-module-advanced-separator .uabb-separator-line {
  display: none;
}

.cpr-site-refresh:not(.home) .fl-page-content .fl-module-advanced-separator .uabb-separator-wrap {
  padding-block: clamp(16px, 2vw, 28px);
}

/* Rental Inquiries keeps its native Beaver Builder modules editable while
   using a quieter full-width contact section rather than a nested color panel. */
.cpr-site-refresh .cpr-rental-contact.fl-row-fixed-width {
  max-width: none;
}

.cpr-site-refresh .cpr-rental-contact > .fl-row-content-wrap {
  padding-block: clamp(64px, 6vw, 88px);
  background: var(--cpr-paper);
}

.cpr-site-refresh .cpr-rental-contact > .fl-row-content-wrap > .fl-row-content {
  width: min(100% - 48px, 1100px);
  max-width: 1100px;
  margin-inline: auto;
}

.cpr-site-refresh .cpr-rental-contact .fl-col-content {
  display: grid;
  grid-template-columns: minmax(0, .82fr) minmax(420px, 1.18fr);
  gap: clamp(48px, 7vw, 96px);
  align-items: center;
}

.cpr-site-refresh .cpr-rental-contact .fl-module-content {
  margin: 0;
}

.cpr-site-refresh .cpr-rental-contact .uabb-heading,
.cpr-site-refresh .cpr-rental-contact .uabb-heading-text {
  max-width: 14em;
  color: var(--cpr-ink) !important;
  font-size: clamp(42px, 4vw, 58px) !important;
  line-height: 1 !important;
}

.cpr-site-refresh .cpr-rental-contact .uabb-subheading,
.cpr-site-refresh .cpr-rental-contact .uabb-subheading p {
  max-width: 56ch;
  color: var(--cpr-muted) !important;
  font-family: var(--cpr-text) !important;
  font-size: clamp(17px, 1.3vw, 20px) !important;
  line-height: 1.65 !important;
}

.cpr-site-refresh .cpr-rental-contact .fl-contact-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.cpr-site-refresh .cpr-rental-contact .fl-input-group {
  position: relative;
  margin: 0;
}

.cpr-site-refresh .cpr-rental-contact .fl-phone,
.cpr-site-refresh .cpr-rental-contact .fl-message,
.cpr-site-refresh .cpr-rental-contact .fl-button-wrap,
.cpr-site-refresh .cpr-rental-contact .fl-send-error,
.cpr-site-refresh .cpr-rental-contact .fl-success-msg,
.cpr-site-refresh .cpr-rental-contact .fl-success-none {
  grid-column: 1 / -1;
}

.cpr-site-refresh .cpr-rental-contact input[type="text"],
.cpr-site-refresh .cpr-rental-contact input[type="email"],
.cpr-site-refresh .cpr-rental-contact input[type="tel"],
.cpr-site-refresh .cpr-rental-contact textarea {
  width: 100%;
  border: 1px solid rgba(5, 7, 8, .28);
  border-radius: 0;
  background: var(--cpr-paper);
  color: var(--cpr-ink);
  font-family: var(--cpr-text);
  font-size: 16px;
}

.cpr-site-refresh .cpr-rental-contact input[type="text"],
.cpr-site-refresh .cpr-rental-contact input[type="email"],
.cpr-site-refresh .cpr-rental-contact input[type="tel"] {
  min-height: 50px;
  padding: 0 15px;
}

.cpr-site-refresh .cpr-rental-contact textarea {
  min-height: 118px;
  padding: 14px 15px;
  resize: vertical;
}

.cpr-site-refresh .cpr-rental-contact input:focus,
.cpr-site-refresh .cpr-rental-contact textarea:focus {
  outline: 3px solid var(--cpr-ink);
  outline-offset: 2px;
}

.cpr-site-refresh .cpr-rental-contact .fl-button {
  display: inline-flex;
  min-height: 50px;
  padding: 0 24px;
  border: 0;
  border-radius: 0;
  align-items: center;
  justify-content: center;
  background: var(--cpr-red) !important;
  color: #fff !important;
  font-family: var(--cpr-text);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
}

.cpr-site-refresh .cpr-rental-contact .fl-button:hover {
  background: var(--cpr-ink) !important;
  color: #fff !important;
}

@media (max-width: 1080px) {
  .cpr-site-refresh .cpr-rental-contact .fl-col-content {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

@media (max-width: 720px) {
  .cpr-site-refresh .cpr-rental-contact > .fl-row-content-wrap > .fl-row-content {
    width: min(100% - 36px, 1100px);
  }

  .cpr-site-refresh .cpr-rental-contact .fl-contact-form {
    grid-template-columns: 1fr;
  }

  .cpr-site-refresh .cpr-rental-contact .fl-input-group,
  .cpr-site-refresh .cpr-rental-contact .fl-button-wrap {
    grid-column: 1;
  }
}

/* The actual global footer is only the copyright band on legacy pages. */
.cpr-site-refresh .fl-page-footer-wrap,
.cpr-site-refresh .fl-page-footer {
  border: 0;
  background: var(--cpr-ink);
  color: rgba(255, 255, 255, .68);
}

.cpr-site-refresh .fl-page-footer {
  padding-block: 22px;
  font-family: var(--cpr-text);
  font-size: 14px;
  letter-spacing: .04em;
}

.cpr-site-refresh .fl-page-footer-text,
.cpr-site-refresh .fl-page-footer-text * {
  color: rgba(255, 255, 255, .68);
}

@media (max-width: 720px) {
  /* Preserve the legacy white logo field, but keep the shell compact enough
     that the homepage proposition still owns the first screen. */
  .cpr-site-refresh header[data-post-id="27"] .fl-row-content-wrap {
    padding-top: 0 !important;
  }

  .cpr-site-refresh header[data-post-id="27"] .fl-row-content {
    min-height: 72px;
  }

  .cpr-site-refresh header[data-post-id="27"] .fl-module-photo .fl-module-content,
  .cpr-site-refresh header[data-post-id="27"] .fl-module-uabb-advanced-menu .fl-module-content {
    margin-block: 0 !important;
  }

  .cpr-site-refresh header[data-post-id="27"] .fl-module-photo img {
    width: 130px !important;
    height: auto !important;
  }

  .cpr-site-refresh .uabb-creative-menu-mobile-toggle {
    display: inline-flex;
    min-width: 44px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
  }

  .cpr-site-refresh .uabb-menu-close-btn {
    display: inline-flex !important;
    width: 44px !important;
    min-width: 44px;
    height: 44px !important;
    min-height: 44px;
    align-items: center;
    justify-content: center;
  }
}
