/* Puget Sound Appliance — fixes on top of the original Divi build.
   Loaded last on every page so these rules win. */

/* ---- Header phone numbers: one link per number ---- */
.phone_top_header .et_pb_text_inner h3 { margin: 0; padding: 0; line-height: 1.25; }
.phone_top_header .et_pb_text_inner h3 + h3 { margin-top: 2px; }
html body .phone_top_header .et_pb_text_inner h3,
html body .phone_top_header .et_pb_text_inner h3 a { color: #1E73BE !important; text-decoration: none; }
.phone_top_header .et_pb_text_inner h3 a:hover { text-decoration: underline; }

/* ---- Laptops (1024–1280px): show the full menu instead of a centred hamburger.
   Divi Toolbox switches to the mobile menu at 1280px; the six items need ~591px
   at 16px, so tighten type and spacing until they fit the column. ---- */
@media (min-width: 1024px) and (max-width: 1280px) {
  .et_pb_menu_0_tb_header .et_pb_menu__menu { display: flex !important; }
  .et_pb_menu_0_tb_header .et_mobile_nav_menu { display: none !important; }
  .et_pb_menu_0_tb_header .et-menu > li { padding-left: 6px !important; padding-right: 6px !important; }
  .et_pb_menu_0_tb_header .et-menu > li > a { font-size: 15px !important; }
}
@media (min-width: 1024px) and (max-width: 1099px) {
  .et_pb_menu_0_tb_header .et-menu > li { padding-left: 4px !important; padding-right: 4px !important; }
  .et_pb_menu_0_tb_header .et-menu > li > a { font-size: 14px !important; }
}

/* ---- 981–1023px: smallest desktop-header width; fit the full menu here too,
   so the desktop header never falls back to a centred hamburger. ---- */
@media (min-width: 981px) and (max-width: 1023px) {
  .et_pb_menu_0_tb_header .et_pb_menu__menu { display: flex !important; }
  .et_pb_menu_0_tb_header .et_mobile_nav_menu { display: none !important; }
  .et_pb_menu_0_tb_header .et-menu > li { padding-left: 3px !important; padding-right: 3px !important; }
  .et_pb_menu_0_tb_header .et-menu > li > a { font-size: 13px !important; }
}

/* ---- Hamburger menu sub-menus (Services = menu-item-354, Service Area = menu-item-353).
   The agency's desktop mega-menu rule (li.menu-item-353 > ul.sub-menu: 448px grid,
   left:50%, translateX(-50%)) also hit the mobile menu and slid the city list
   off-screen; its link rule (padding:0 14px; height:100%) collapsed rows to 17px. ---- */
html body .et_mobile_menu li.menu-item-353 > ul.sub-menu,
html body .et_mobile_menu li.menu-item-354 > ul.sub-menu {
  transform: none !important;
  left: auto !important;
  width: 100% !important;
  position: static !important;
}
html body .et_mobile_menu li.menu-item-353 > ul.sub-menu > li > a,
html body .et_mobile_menu li.menu-item-354 > ul.sub-menu > li > a {
  padding: 12px 15px 12px 30px !important;
  line-height: 1.3 !important;
  height: auto !important;
}

/* ---- Phones and tablets: bigger logo (was ~70px wide) ---- */
@media (max-width: 980px) {
  html body .et-l--header .et_pb_menu_1_tb_header .et_pb_menu__logo img { width: 110px !important; max-width: 110px !important; height: auto !important; max-height: none !important; }
  html body .et-l--header .et_pb_menu_1_tb_header .et_pb_menu__logo-wrap,
  html body .et-l--header .et_pb_menu_1_tb_header .et_pb_menu__logo,
  html body .et-l--header .et_pb_menu_1_tb_header .et_pb_menu__logo a { max-height: none !important; height: auto !important; width: auto !important; max-width: none !important; }
}

/* ---- Tablets (768–980px): the theme pulled the mobile header up 86px,
   hiding the "Serving Seattle…" bar and jamming the logo against the top. ---- */
@media (min-width: 768px) and (max-width: 980px) {
  html body .et-l--header .et_pb_section_1_tb_header { margin-top: 0 !important; }
}

/* ---- Phones and tablets: the two numbers sit in the logo row, between
   the logo and the menu button (the desktop phone column is hidden here). ---- */
.psa-callbar { display: none; }
@media (max-width: 980px) {
  .psa-callbar {
    position: absolute; z-index: 4; bottom: 0; height: 115px; /* the logo row: the section ends where it ends */
    left: 136px; right: 64px;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  }
  .psa-callbar a {
    display: flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 6px;
    color: #1E73BE !important; text-decoration: none;
    font: 700 16px/1.2 'Roboto', Helvetica, Arial, sans-serif; white-space: nowrap;
  }
  .psa-callbar a:hover, .psa-callbar a:focus-visible { color: #0A2540 !important; text-decoration: underline; }
  .psa-callbar svg { width: 16px; height: 16px; flex: none; fill: currentColor; }
}
@media (min-width: 600px) and (max-width: 980px) {
  .psa-callbar { flex-direction: row; gap: 20px; }
  .psa-callbar a { font-size: 18px; }
}
@media (max-width: 359px) {
  .psa-callbar { left: 128px; right: 52px; }
  .psa-callbar a { font-size: 14px; gap: 4px; padding: 0 2px; }
  .psa-callbar svg { width: 13px; height: 13px; }
}

/* ================= Section B polish (2026-10-04) ================= */

/* 1. Top tagline bar: 3 lines on phones -> 2 */
@media (max-width: 767px) {
  html body .et-l--header .et_pb_text_0_tb_header p { font-size: 14px !important; line-height: 1.4 !important; }
}
@media (min-width: 768px) and (max-width: 980px) {
  html body .et-l--header .et_pb_text_0_tb_header p { font-size: 16px !important; line-height: 1.4 !important; }
}

/* 3. Blog list thumbnails: show the whole image (titles are printed in them) */
@media (max-width: 1024px) {
  html body .psa-divi-blog .et_pb_post > a.entry-featured-image-url { height: auto !important; }
  html body .psa-divi-blog .et_pb_post > a.entry-featured-image-url img { height: auto !important; object-fit: contain !important; width: 100% !important; }
}

/* 4. Blog articles on phones: wider text column, readable heading spacing */
@media (max-width: 767px) {
  html body.single-post article.et_pb_post { padding-left: 16px !important; padding-right: 16px !important; }
  html body.single-post article.et_pb_post h2 { line-height: 1.25 !important; }
  html body.single-post article.et_pb_post h3 { line-height: 1.3 !important; }
}

/* 5. Orange "We service all major brands" strip: remove the big empty band on top */
/* (an agency rule "body.page .et_pb_section:first-of-type {padding-top:150/170px}",
   meant to clear the header on the first page section, also caught the footer's first section) */
@media (max-width: 980px) {
  html body #et-main-area .et-l--footer .et_pb_section.cta_bottom { padding-top: 24px !important; padding-bottom: 24px !important; }
}

/* 6. Footer phone: keep the number on one line, and make it tap-to-call */
html body .et-l--footer .psa-footer-phone { color: inherit; text-decoration: none; white-space: nowrap; }
html body .et-l--footer .psa-footer-phone:hover { text-decoration: underline; }
@media (min-width: 981px) and (max-width: 1180px) {
  html body .et-l--footer .psa-footer-phone { font-size: 17px; }
}
@media (min-width: 1181px) and (max-width: 1366px) {
  html body .et-l--footer .psa-footer-phone { font-size: 22px; }
}

/* 7. Phones: the fixed Call/Text bar (46px) covered the copyright line */
@media (max-width: 980px) {
  html body { padding-bottom: 56px !important; }
}

/* 8. Service card grid: 3 per row on tablets (Divi rows hold 3 cards each), equal heights on laptops and up */
@media (min-width: 768px) {
  html body .et_pb_row:has(> .et_pb_column .et_pb_code_inner > a[href*="/services/"]) { display: flex !important; flex-wrap: wrap; align-items: stretch; }
  html body .et_pb_row:has(> .et_pb_column .et_pb_code_inner > a[href*="/services/"]) > .et_pb_column { display: flex; flex-direction: column; }
  html body .et_pb_row:has(> .et_pb_column .et_pb_code_inner > a[href*="/services/"]) > .et_pb_column > .et_pb_code,
  html body .et_pb_row:has(> .et_pb_column .et_pb_code_inner > a[href*="/services/"]) > .et_pb_column > .et_pb_code > .et_pb_code_inner { flex: 1 1 auto; height: 100%; }
}
@media (min-width: 768px) and (max-width: 980px) {
  html body .et_pb_row:has(> .et_pb_column .et_pb_code_inner > a[href*="/services/"]) { gap: 16px; flex-wrap: nowrap; }
  html body .et_pb_row:has(> .et_pb_column .et_pb_code_inner > a[href*="/services/"]) > .et_pb_column { width: calc((100% - 32px) / 3) !important; margin: 0 !important; }
  html body .et_pb_code_inner > a[href*="/services/"] { padding: 22px 18px !important; }
}

/* 9. Privacy / terms on phones: inner headings no bigger than section headings */
@media (max-width: 767px) {
  html body.psa-legal #main-content h3 { font-size: 24px !important; line-height: 1.25 !important; }
  html body.psa-legal #main-content h4 { font-size: 20px !important; line-height: 1.25 !important; }
}

/* 10. Footer: each office shows its own number (Jordan, 2026-10-04: 425 Seattle, 253 Tacoma) */
html body .et-l--footer .psa-office-phone { color: inherit; text-decoration: none; white-space: nowrap; }
html body .et-l--footer .psa-office-phone:hover { text-decoration: underline; }
