/*
Theme Name: SA Underwriters
Template: astra
Author: Fuzion Digital
Description: Astra child theme for the SA Underwriters build.
Version: 1.8.1
*/

/* ---------- Astra resets for a full width Elementor build ---------- */
.ast-container,
.site-content .ast-container,
.single .ast-container,
.single #primary,
.single #content { max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
.site-content #primary { margin: 0; padding: 0; }
.ast-separate-container .ast-article-single { padding: 0; border: 0; }
#content { padding: 0 !important; }
.single .site-main article { margin: 0; padding: 0; }
.elementor-location-single, .elementor-location-archive { width: 100%; }

/* ---------- Transparent header over the banner ---------- */
.sau-header { position: absolute; top: 0; left: 0; right: 0; z-index: 999; }
.sau-header .elementor-nav-menu a { letter-spacing: .2px; }
.sau-header .elementor-nav-menu--main .elementor-item:hover { color: #93B12C !important; }


/* ---------- Banners ---------- */
.sau-banner { max-height: 460px; }

/* ---------- Why Choose Us: the original's 33% bordered grid ---------- */
.sau-why-grid > .e-con { border-right: 1px solid rgba(255,255,255,0.2); border-bottom: 1px solid rgba(255,255,255,0.2); }
.sau-why-grid > .e-con:nth-of-type(3n) { border-right: none; }
.sau-why-grid > .e-con:nth-last-child(-n+3) { border-bottom: none; }
@media (max-width: 991px) {
  .sau-why-grid > .e-con { border-right: none; }
  .sau-why-grid > .e-con:last-child { border-bottom: none; }
}

/* ---------- Product cards ---------- */
.sau-navcard { cursor: pointer; opacity: .5; transition: opacity .25s; }
.sau-navcard:hover { opacity: 1; }
.sau-navcard h4 { line-height: 1; }

/* ---------- Footer ---------- */
.sau-connect, .sau-connect td, .sau-connect tr, .sau-connect tbody { border: 0 !important; background: transparent !important; }
.sau-connect { width: 100%; border-collapse: collapse; }
.sau-connect td { padding: 0 16px 0 0; vertical-align: middle; white-space: nowrap; }
.sau-connect td:first-child { width: 20px; color: #93B12C; padding-right: 10px; }
.sau-connect td:last-child { color: rgba(255,255,255,0.5); padding-right: 0; }
.sau-connect td:first-child i { font-size: 12px; }
.sau-fnav a, .sau-legal a { color: rgba(255,255,255,0.3); text-decoration: none; transition: color .2s; }
.sau-fnav a:hover, .sau-legal a:hover { color: #FFFFFF; }
.sau-legal { font-size: 13px; }
.elementor-location-footer .elementor-widget-image .elementor-widget-container { text-align: inherit; }

/* ---------- Dialable numbers ---------- */
.sau-connect a[href^="tel:"],
.sau-office a[href^="tel:"],
.sau-roadside a[href^="tel:"] { color: inherit; text-decoration: none; transition: color .2s; }
.sau-connect a[href^="tel:"]:hover,
.sau-office a[href^="tel:"]:hover,
.sau-roadside a[href^="tel:"]:hover { color: #93B12C; }
.sau-roadnum a { color: #93B12C; text-decoration: none; }
.sau-roadnum a:hover { text-decoration: underline; }

/* ---------- Contact map + office card ---------- */
.sau-mapwrap { position: relative; }
.sau-mapwrap > .elementor-widget-html:first-child { width: 100%; }
.sau-map { width: 100%; height: 620px; border: 0; display: block; }
.sau-mapwrap > .elementor-widget-html:last-child { position: absolute; top: 40px; left: 4%; width: 320px; max-width: 88%; z-index: 2; }
.sau-office { background: #FFFFFF; border-top: 4px solid #93B12C; padding: 28px 26px 30px; box-shadow: 0 0 50px 0 rgba(0,0,0,0.15); font-size: 13px; line-height: 1.75; color: #808080; text-align: center; }
.sau-office h4 { font-size: 20px; font-weight: 700; color: #262626; margin: 0 0 14px; font-family: Montserrat, Arial, sans-serif; }
.sau-office p { margin: 0 0 12px; }
.sau-office strong { color: #262626; font-weight: 700; }
.sau-office a { color: #808080; text-decoration: none; }
.sau-office a:hover { color: #93B12C; }
.sau-office-addr { font-size: 12px; }
.sau-office-cta { margin: 20px 0 0; }

/* ---------- Buttons rendered outside Elementor ---------- */
.sau-btn { display: inline-block; border: 2px solid #93B12C; color: #93B12C; padding: 10px 20px; border-radius: 4px; font-family: "Open Sans", Arial, sans-serif; font-size: 12px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; transition: background-color .2s, color .2s; }
.sau-btn:hover { background: #93B12C; color: #FFFFFF; }

/* ---------- News listing ---------- */
.sau-newslist .elementor-post__read-more { display: inline-block; border: 2px solid #93B12C; border-radius: 4px; padding: 10px 20px; margin-top: 4px; transition: background-color .2s, color .2s; }
.sau-newslist .elementor-post__read-more:hover { background: #93B12C; color: #FFFFFF !important; }
.sau-newslist .elementor-post { padding-bottom: 26px; }

/* ---------- Single post ---------- */
.elementor-location-single h3 { margin-top: 30px; margin-bottom: 10px; font-family: Montserrat, Arial, sans-serif; font-weight: 700; color: #262626; font-size: 24px; }
.sau-post-footer { margin-top: 34px; }
.sau-post-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.sau-post-published { margin: 30px 0 0; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: #A7AEB6; border-top: 1px solid #E7E9EB; padding-top: 26px; }

/* ---------- Home hero badge ---------- */
.sau-hero { position: relative; }

/* ---------- Responsive ---------- */
@media (max-width: 991px) {
  .sau-header { padding-top: 18px; }
}
@media (max-width: 767px) {
  .sau-header .elementor-element-hdrast0 { display: none !important; }
  .sau-header { padding-top: 14px !important; }
  .sau-header .elementor-nav-menu--dropdown { background: #2E3A41; }
  .sau-hero-badge { transform: scale(.72); }
  .sau-connect td { display: block; white-space: normal; padding-right: 0; }
  .sau-connect td:first-child { display: inline-block; width: auto; margin-right: 8px; }
  .sau-connect td:nth-child(2) { display: inline-block; }
  .sau-connect tr { display: block; margin-bottom: 10px; }
  .sau-map { height: 420px; }
  .sau-mapwrap > .elementor-widget-html:last-child { position: static; width: 100%; max-width: 100%; padding: 0 18px 28px; }
  .sau-mapwrap { flex-direction: column; }
}

/* ---------- Enquiry modal ---------- */
.sau-modal { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: flex-start; justify-content: center; padding: 40px 16px; overflow-y: auto; }
.sau-modal[hidden] { display: none !important; }
.sau-modal__backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.6); }
.sau-modal__dialog { position: relative; width: 100%; max-width: 600px; background: #FFFFFF; box-shadow: 0 10px 60px rgba(0,0,0,0.35); animation: sauModalIn .25s ease-out; }
.sau-modal__close { position: absolute; top: 10px; right: 14px; z-index: 2; background: none; border: 0; font-size: 30px; line-height: 1; color: #262626; cursor: pointer; padding: 4px 8px; }
.sau-modal__close:hover { color: #93B12C; }
.sau-modal__body { position: relative; }
body.sau-modal-open { overflow: hidden; }
@keyframes sauModalIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@media (max-width: 767px) { .sau-modal { padding: 16px 10px; } }

/* ---------- Hero scroll indicator (from the original .scroll-btn / .mouse) ---------- */
.sau-scroll-wrap { position: static !important; }
.sau-scroll-btn {
  display: block;
  position: absolute;
  left: 0; right: 0; bottom: 0;
  text-align: center;
  z-index: 15;
}
.sau-scroll-btn > a {
  display: inline-block;
  line-height: 18px;
  font-size: 13px;
  font-weight: normal;
  color: #ffffff;
  letter-spacing: 2px;
  text-decoration: none;
}
.sau-scroll-btn > a:hover { opacity: .8; color: #ffffff; }
.sau-scroll-btn .sau-mouse {
  position: relative;
  display: block;
  width: 30px;
  height: 45px;
  margin: 0 auto 20px;
  box-sizing: border-box;
  border: 2px solid #ffffff;
  border-radius: 23px;
}
.sau-scroll-btn .sau-mouse > span {
  position: absolute;
  display: block;
  top: 29%;
  left: 50%;
  width: 2px;
  height: 6px;
  margin: -2px 0 0 -1px;
  background: #ffffff;
  animation: sau-ani-mouse 2.5s linear infinite;
}
@keyframes sau-ani-mouse {
  0%   { opacity: 1; top: 29%; }
  15%  { opacity: 1; top: 50%; }
  50%  { opacity: 0; top: 50%; }
  100% { opacity: 0; top: 29%; }
}
@media (prefers-reduced-motion: reduce) {
  .sau-scroll-btn .sau-mouse > span { animation: none; }
}
@media (max-width: 767px) { .sau-scroll-btn { display: none; } }

/* ---------- Product card images: 200x182 circle, as the original ---------- */
.sau-prod-img .elementor-widget-container { text-align: center; }
.sau-prod-img img {
  width: 200px !important;
  height: 182px !important;
  max-width: 200px !important;
  object-fit: cover;
  border-radius: 50%;
  display: inline-block;
}

/* ---------- Header sits 40px down, as .fh5co-nav-style-1 { margin-top: 40px } ---------- */
.sau-header { top: 40px; }
body.admin-bar .sau-header { top: 72px; }
@media (max-width: 767px) { .sau-header { top: 16px; } body.admin-bar .sau-header { top: 62px; } }

/* ---------- Products tabs: match the original .btn-success.btn-outline ---------- */
.elementor-element-pbTabs .e-n-tab-title {
  background-color: transparent !important;
  border: 2px solid #93B12C !important;
  border-radius: 4px !important;
  color: #93B12C !important;
  transition: background-color .2s, color .2s;
}
.elementor-element-pbTabs .e-n-tab-title:hover,
.elementor-element-pbTabs .e-n-tab-title[aria-selected="true"] {
  background-color: #93B12C !important;
  color: #FFFFFF !important;
}
.elementor-element-pbTabs .e-n-tab-title-text { color: inherit !important; }

/* ---------- Mobile header: logo left, pill + burger right, one row ---------- */
@media (max-width: 767px) {
  .sau-header { top: 14px; }
  body.admin-bar .sau-header { top: 60px; }

  .sau-header .elementor-element-hdrtop0 {
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 10px !important;
  }
  .sau-header .elementor-element-hdrcol1,
  .sau-header .elementor-element-hdrcol2,
  .sau-header .elementor-element-hdrcol3 {
    padding: 0 !important;
  }
  .sau-header .elementor-element-hdrcol1 { width: auto !important; flex: 0 0 auto !important; }
  .sau-header .elementor-element-hdrcol3 { width: auto !important; flex: 1 1 auto !important; justify-content: flex-end !important; }
  .sau-header .elementor-element-hdrcol2 { width: auto !important; flex: 0 0 auto !important; justify-content: flex-end !important; }

  .sau-header .elementor-element-hdrbtn0 .elementor-button {
    padding: 5px 14px !important;
    font-size: 12px !important;
    white-space: nowrap;
  }

  /* burger */
  .sau-header .elementor-menu-toggle {
    background: transparent !important;
    color: #FFFFFF !important;
    padding: 4px !important;
  }

  /* dropdown panel spans the viewport under the header */
  .sau-header .elementor-nav-menu--dropdown {
    background-color: #2E3A41 !important;
    margin-top: 14px !important;
    box-shadow: 0 14px 40px rgba(0,0,0,0.35);
  }
  .sau-header .elementor-nav-menu--dropdown a {
    color: #FFFFFF !important;
    font-family: "Open Sans", Arial, sans-serif;
    font-size: 15px;
  }
  .sau-header .elementor-nav-menu--dropdown a:hover,
  .sau-header .elementor-nav-menu--dropdown a.elementor-item-active {
    background-color: #93B12C !important;
    color: #FFFFFF !important;
  }
}

@media (max-width: 400px) {
  .sau-header .elementor-element-hdrlogo img { width: 92px !important; }
  .sau-header .elementor-element-hdrbtn0 .elementor-button { padding: 5px 10px !important; font-size: 11px !important; }
}

@media (max-width: 767px) {
  .sau-header .elementor-element-hdrcol1 { order: 1; }
  .sau-header .elementor-element-hdrcol3 { order: 2; }
  .sau-header .elementor-element-hdrcol2 { order: 3; margin-left: 4px; }
}
