/* Frannies Logistics visual polish
   Visual refinements only. Existing page structure, content and layout are preserved. */

:root {
  --fr-red: #d80017;
  --fr-red-dark: #b60014;
  --fr-black: #0a0a0a;
  --fr-ink: #171717;
  --fr-muted: #5b5b5b;
  --fr-line: #e7e7e7;
  --fr-soft: #f7f7f7;
  --fr-white: #ffffff;
  --fr-shadow-sm: 0 6px 18px rgba(0, 0, 0, 0.07);
  --fr-shadow-md: 0 14px 36px rgba(0, 0, 0, 0.10);
  --fr-shadow-red: 0 10px 24px rgba(216, 0, 23, 0.22);
  --fr-radius-sm: 8px;
  --fr-radius-md: 12px;
  --fr-radius-lg: 16px;
}

html {
  scroll-behavior: smooth;
}

body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  background: var(--fr-white);
}

body,
button,
input,
select,
textarea,
.ast-button,
.ast-custom-button {
  font-family: "Open Sans", Arial, sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6,
.elementor-heading-title,
.widget-title {
  font-family: "Barlow", Arial, sans-serif;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.elementor-widget-text-editor,
.elementor-icon-box-description,
.elementor-image-box-description,
.site-footer p,
.site-footer li {
  line-height: 1.72;
}

.elementor-widget-text-editor p:last-child,
.elementor-icon-box-description:last-child,
.elementor-image-box-description:last-child {
  margin-bottom: 0;
}

/* Links and keyboard focus */
a {
  text-underline-offset: 3px;
  transition: color 0.2s ease, opacity 0.2s ease;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 2px solid var(--fr-red) !important;
  outline-offset: 3px !important;
}

/* Header refinement. Keeps the transparent header requested earlier. */
#masthead .custom-logo {
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.12));
}

@media (min-width: 769px) {
  #masthead .main-header-menu > .menu-item > .menu-link {
    position: relative;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.2px;
    background-image: linear-gradient(var(--fr-red), var(--fr-red));
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: 0 2px;
    transition: color 0.22s ease, background-size 0.22s ease;
  }

  #masthead .main-header-menu > .menu-item > .menu-link:hover,
  #masthead .main-header-menu > .menu-item > .menu-link:focus,
  #masthead .main-header-menu > .current-menu-item > .menu-link {
    background-size: 70% 2px;
  }

  #masthead .ast-header-social-wrap .ast-builder-social-element {
    transition: transform 0.2s ease, opacity 0.2s ease;
  }

  #masthead .ast-header-social-wrap .ast-builder-social-element:hover {
    transform: translateY(-2px);
  }
}

/* Buttons: same placement and dimensions, cleaner finish. */
.elementor-button,
.ast-button,
button:not(.menu-toggle):not(.ast-menu-toggle),
input[type="submit"] {
  border-radius: var(--fr-radius-sm) !important;
  font-weight: 700 !important;
  letter-spacing: 0.15px;
  box-shadow: var(--fr-shadow-red);
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
}

.elementor-button:hover,
.elementor-button:focus,
.ast-button:hover,
.ast-button:focus,
button:not(.menu-toggle):not(.ast-menu-toggle):hover,
button:not(.menu-toggle):not(.ast-menu-toggle):focus,
input[type="submit"]:hover,
input[type="submit"]:focus {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.16);
}

/* Keep button icons tidy. */
.elementor-button .elementor-button-icon,
.elementor-button svg {
  transition: transform 0.2s ease;
}

.elementor-button:hover .elementor-button-icon,
.elementor-button:hover svg {
  transform: translateX(2px);
}

/* Dividers */
.elementor-widget-divider .elementor-divider-separator {
  border-radius: 999px;
}

/* Content images. Hero/background images and the logo are untouched. */
.elementor-widget-image:not(.site-logo-img) img,
.elementor-image-box-img img {
  border-radius: var(--fr-radius-md);
  box-shadow: var(--fr-shadow-sm);
  transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.elementor-widget-image:not(.site-logo-img):hover img,
.elementor-widget-image-box:hover .elementor-image-box-img img {
  transform: translateY(-3px);
  box-shadow: var(--fr-shadow-md);
}

/* Icon and image content blocks. No grid/flex/layout rules changed. */
.elementor-widget-icon-box .elementor-icon,
.elementor-widget-icon .elementor-icon {
  transition: transform 0.24s ease, box-shadow 0.24s ease, background-color 0.24s ease;
}

.elementor-widget-icon-box:hover .elementor-icon,
.elementor-widget-icon:hover .elementor-icon {
  transform: translateY(-3px) scale(1.03);
}

.elementor-icon-box-title,
.elementor-image-box-title {
  letter-spacing: -0.01em;
}

.elementor-widget-image-box .elementor-image-box-wrapper,
.elementor-widget-icon-box .elementor-icon-box-wrapper {
  transition: transform 0.24s ease;
}

.elementor-widget-image-box:hover .elementor-image-box-wrapper,
.elementor-widget-icon-box:hover .elementor-icon-box-wrapper {
  transform: translateY(-2px);
}

/* Testimonials */
.elementor-widget-testimonial .elementor-testimonial-wrapper {
  border-radius: var(--fr-radius-md);
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.elementor-widget-testimonial:hover .elementor-testimonial-wrapper {
  transform: translateY(-3px);
  box-shadow: var(--fr-shadow-sm);
}

.elementor-testimonial-content {
  line-height: 1.7;
}

/* Home counters retain the requested red background and white text. */
.elementor-1895 .elementor-element.elementor-element-b63211c .elementor-counter-number-wrapper,
.elementor-1895 .elementor-element.elementor-element-b63211c .elementor-counter-number {
  font-family: "Barlow", Arial, sans-serif;
  font-weight: 700;
  letter-spacing: -0.025em;
}

.elementor-1895 .elementor-element.elementor-element-b63211c .elementor-counter-title {
  font-weight: 600;
  letter-spacing: 0.15px;
}

/* Standard forms across the site */
input[type="text"],
input[type="number"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="tel"],
input[type="date"],
input[type="time"],
select,
textarea {
  border: 1px solid #d8d8d8 !important;
  border-radius: var(--fr-radius-sm) !important;
  background: #ffffff !important;
  color: #111111 !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease !important;
}

input[type="text"]:hover,
input[type="number"]:hover,
input[type="email"]:hover,
input[type="url"]:hover,
input[type="password"]:hover,
input[type="search"]:hover,
input[type="tel"]:hover,
input[type="date"]:hover,
input[type="time"]:hover,
select:hover,
textarea:hover {
  border-color: #bfbfbf !important;
}

input[type="text"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="date"]:focus,
input[type="time"]:focus,
select:focus,
textarea:focus {
  border-color: var(--fr-red) !important;
  box-shadow: 0 0 0 3px rgba(216, 0, 23, 0.10) !important;
  outline: none !important;
}

::placeholder {
  color: #8a8a8a;
  opacity: 1;
}

/* Request a Quote: visual finish only, all fields and details remain unchanged. */
.request-quote-page .quote-hero__content h1 {
  letter-spacing: -0.025em;
  text-shadow: 0 3px 22px rgba(0, 0, 0, 0.26);
}

.request-quote-page .quote-hero__content p {
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.24);
}

.request-quote-page .frannies-quote-form fieldset {
  border-top-color: #e5e5e5 !important;
  border-right-color: #e5e5e5 !important;
  border-bottom-color: #e5e5e5 !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.055) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.request-quote-page .frannies-quote-form fieldset:hover {
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.075) !important;
}

.request-quote-page .frannies-quote-form legend {
  letter-spacing: -0.01em;
}

.request-quote-page .quote-grid--checks label,
.request-quote-page .quote-consent {
  transition: border-color 0.2s ease, background-color 0.2s ease;
}

.request-quote-page .quote-grid--checks label:hover,
.request-quote-page .quote-consent:hover {
  border-color: rgba(216, 0, 23, 0.28);
  background: #fffafa;
}

.request-quote-page .quote-submit-row button {
  border-radius: var(--fr-radius-sm) !important;
}

/* Contact page */
.elementor-widget-google_maps iframe {
  border-radius: var(--fr-radius-md);
  box-shadow: var(--fr-shadow-sm);
}

.elementor-social-icon {
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease !important;
}

.elementor-social-icon:hover {
  transform: translateY(-3px);
  box-shadow: var(--fr-shadow-sm);
}

/* Footer refinement. Keeps the exact existing columns, alignment and colors. */
.site-primary-footer-wrap .widget-title {
  font-weight: 700;
  letter-spacing: -0.01em;
}

.site-primary-footer-wrap .menu,
.site-primary-footer-wrap ul {
  margin-top: 0;
}

.site-primary-footer-wrap a {
  transition: color 0.2s ease, padding-left 0.2s ease;
}

.site-primary-footer-wrap .widget_nav_menu a:hover,
.site-primary-footer-wrap .widget_nav_menu a:focus {
  color: var(--fr-red) !important;
  padding-left: 3px;
}

.site-primary-footer-wrap .widget_text a:hover,
.site-primary-footer-wrap .widget_text a:focus {
  color: var(--fr-red) !important;
}

.site-below-footer-wrap {
  border-top: 1px solid #ededed !important;
}

.site-below-footer-wrap p {
  margin-bottom: 0;
  font-size: 14px;
}

.site-below-footer-wrap .design-heart {
  color: var(--fr-red) !important;
  display: inline-block;
  transform: translateY(1px);
}

/* Small-screen polish without changing the existing mobile layout. */
@media (max-width: 768px) {
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  .elementor-heading-title {
    overflow-wrap: anywhere;
  }

  .elementor-widget-image:not(.site-logo-img) img,
  .elementor-image-box-img img,
  .elementor-widget-google_maps iframe {
    border-radius: 10px;
  }

  .elementor-button,
  .ast-button,
  input[type="submit"] {
    box-shadow: 0 8px 18px rgba(216, 0, 23, 0.18);
  }

  .site-below-footer-wrap p {
    font-size: 13px;
  }
}

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

  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Header alignment adjustment requested 2026-09-03. */
@media (min-width: 769px) {
  #masthead #ast-desktop-header .site-primary-header-wrap {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
  }

  #masthead #ast-desktop-header .ast-builder-grid-row {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(178px, 1fr) auto minmax(178px, 1fr) !important;
    align-items: center !important;
  }

  #masthead #ast-desktop-header .site-header-primary-section-left {
    grid-column: 1 !important;
    justify-self: start !important;
    justify-content: flex-start !important;
    transform: translateX(72px);
  }

  #masthead #ast-desktop-header .site-header-primary-section-right {
    display: contents !important;
  }

  #masthead #ast-desktop-header [data-section="section-hb-menu-1"] {
    grid-column: 2 !important;
    justify-self: center !important;
  }

  #masthead #ast-desktop-header [data-section="section-hb-social-icons-1"] {
    grid-column: 3 !important;
    justify-self: end !important;
  }
}

@media (max-width: 768px) {
  #masthead #ast-mobile-header .ast-primary-header-bar {
    padding-left: 26px !important;
    padding-right: 10px !important;
  }

  #masthead #ast-mobile-header .site-header-primary-section-left {
    transform: translateX(4px);
  }
}
