/*
Theme Name: Plumber Service Boise Blog - Kadence Child
Theme URI: https://plumberserviceboise.com/
Description: Branded Kadence child theme for the Plumber Service Boise blog.
Author: Plumber Service Boise
Template: kadence
Version: 1.0.0
Text Domain: psb-blog
*/

:root {
  --psb-navy: #0b1220;
  --psb-navy-deep: #090e19;
  --psb-blue: #5378e1;
  --psb-blue-dark: #466bd0;
  --psb-text: #111827;
  --psb-muted: #5f6b7a;
  --psb-border: #e5e7eb;
  --psb-light: #f5f7fb;
  --psb-white: #fff;
}

html { scroll-behavior:smooth; }
body { margin:0; color:var(--psb-text); background:#fff; font-family:"Poppins",Arial,Helvetica,sans-serif; font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased; }
*,*:before,*:after { box-sizing:border-box; }
img { max-width:100%; height:auto; }
button,input,textarea,select { font:inherit; }
::selection { background:var(--psb-blue); color:#fff; }

/* Header */
.psb-site-header { position:sticky; top:0; z-index:9999; width:100%; background:#fff; box-shadow:0 1px 0 rgba(11,18,32,.12); }
.psb-topbar { height:30px; background:var(--psb-navy); color:#dbe5ff; font-size:11px; font-weight:500; }
.psb-topbar-inner { max-width:1100px; height:30px; margin:0 auto; padding:0 18px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.psb-topbar-right { display:flex; align-items:center; gap:18px; }
.psb-topbar a { color:#fff; text-decoration:none; }
.psb-topbar a:hover { color:#b9caff; }
.psb-nav { height:69px; background:#fff; }
.psb-nav-inner { max-width:1100px; height:69px; margin:0 auto; padding:0 18px; display:flex; align-items:center; }
.psb-brand { display:inline-flex; align-items:center; min-width:260px; text-decoration:none; color:var(--psb-navy); }
.psb-brand:hover { color:var(--psb-navy); text-decoration:none; }
.psb-brand-mark { width:37px; height:37px; flex:0 0 37px; border-radius:10px; background:var(--psb-blue); color:var(--psb-navy); display:flex; align-items:center; justify-content:center; font-size:19px; font-weight:800; line-height:1; }
.psb-brand-copy { margin-left:9px; line-height:1; }
.psb-brand-name { display:block; font-size:17px; font-weight:800; letter-spacing:-.35px; white-space:nowrap; }
.psb-brand-sub { display:block; margin-top:3px; color:var(--psb-blue); font-size:9px; font-weight:800; letter-spacing:.15px; }
.psb-menu { margin-left:auto; display:flex; align-items:center; gap:25px; }
.psb-menu a { color:var(--psb-navy); font-size:12px; font-weight:700; line-height:1; text-decoration:none; white-space:nowrap; }
.psb-menu a:hover,.psb-menu a[aria-current="page"] { color:var(--psb-blue); }
.psb-call-btn { margin-left:27px; min-width:177px; height:42px; padding:0 17px; border-radius:7px; background:var(--psb-blue); color:var(--psb-navy); display:inline-flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; text-decoration:none; white-space:nowrap; }
.psb-call-btn:hover { background:var(--psb-blue-dark); color:var(--psb-navy); text-decoration:none; }
.psb-mobile-toggle { display:none; margin-left:auto; width:44px; height:44px; border:0; border-radius:8px; background:var(--psb-navy); color:#fff; cursor:pointer; align-items:center; justify-content:center; }
.psb-mobile-toggle span,.psb-mobile-toggle span:before,.psb-mobile-toggle span:after { width:18px; height:2px; background:#fff; display:block; position:relative; }
.psb-mobile-toggle span:before,.psb-mobile-toggle span:after { content:""; position:absolute; left:0; }
.psb-mobile-toggle span:before { top:-6px; }
.psb-mobile-toggle span:after { top:6px; }
.psb-mobile-panel { display:none; background:#fff; border-top:1px solid var(--psb-border); box-shadow:0 8px 18px rgba(9,14,25,.12); }
.psb-mobile-panel.is-open { display:block; }
.psb-mobile-panel a { display:block; padding:13px 20px; color:var(--psb-navy); border-bottom:1px solid #edf0f4; font-size:15px; font-weight:700; text-decoration:none; }
.psb-mobile-panel a:hover { color:var(--psb-blue); }
.psb-mobile-panel .psb-mobile-call { margin:14px 15px; padding:13px 18px; border:0; border-radius:7px; background:var(--psb-blue); text-align:center; }

/* Main content */
#inner-wrap,.psb-content-wrap { width:100%; max-width:1120px; margin:0 auto; padding:55px 20px 70px; }
.entry-content,.wp-block-post-content,.single-content { color:var(--psb-text); font-size:16px; line-height:1.75; }
.entry-title,.single-entry-title,.wp-block-post-title { color:var(--psb-navy); font-weight:800; line-height:1.2; letter-spacing:-.4px; }
.entry-content h1,.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5,.entry-content h6,
.wp-block-post-content h1,.wp-block-post-content h2,.wp-block-post-content h3,.wp-block-post-content h4,.wp-block-post-content h5,.wp-block-post-content h6,
.single-content h1,.single-content h2,.single-content h3,.single-content h4,.single-content h5,.single-content h6 {
  color:var(--psb-navy); font-weight:800; line-height:1.25; letter-spacing:-.25px; margin-top:0;
}
.entry-content h1,.wp-block-post-content h1,.single-content h1 { font-size:40px; margin:0 0 22px; }
.entry-content h2,.wp-block-post-content h2,.single-content h2 { font-size:32px; margin:38px 0 17px; }
.entry-content h3,.wp-block-post-content h3,.single-content h3 { font-size:26px; margin:31px 0 14px; }
.entry-content h4,.wp-block-post-content h4,.single-content h4 { font-size:22px; margin:27px 0 12px; }
.entry-content h5,.wp-block-post-content h5,.single-content h5 { font-size:19px; margin:24px 0 10px; }
.entry-content h6,.wp-block-post-content h6,.single-content h6 { font-size:17px; margin:20px 0 9px; }
.entry-content p,.wp-block-post-content p,.single-content p { margin:0 0 18px; color:var(--psb-text); font-size:16px; line-height:1.75; }
.entry-content strong,.wp-block-post-content strong,.single-content strong { font-weight:700; }
.entry-content a,.wp-block-post-content a,.single-content a { color:var(--psb-blue-dark); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:2px; }
.entry-content a:hover,.wp-block-post-content a:hover,.single-content a:hover { color:var(--psb-navy); }
.entry-content ul,.entry-content ol,.wp-block-post-content ul,.wp-block-post-content ol,.single-content ul,.single-content ol { margin:0 0 22px; padding-left:28px; }
.entry-content ul,.wp-block-post-content ul,.single-content ul { list-style:disc; }
.entry-content ol,.wp-block-post-content ol,.single-content ol { list-style:decimal; }
.entry-content li,.wp-block-post-content li,.single-content li { margin:0 0 8px; padding-left:3px; line-height:1.65; }
.entry-content li::marker,.wp-block-post-content li::marker,.single-content li::marker { color:var(--psb-blue); }
.entry-content ul ul,.entry-content ol ol,.entry-content ul ol,.entry-content ol ul,.wp-block-post-content ul ul,.wp-block-post-content ol ol,.wp-block-post-content ul ol,.wp-block-post-content ol ul { margin-top:8px; margin-bottom:8px; }
.entry-content blockquote,.wp-block-post-content blockquote,.single-content blockquote,.wp-block-quote { margin:30px 0; padding:20px 24px; border-left:4px solid var(--psb-blue); background:var(--psb-light); color:var(--psb-navy); font-size:18px; line-height:1.7; font-style:italic; }
.entry-content blockquote p,.wp-block-post-content blockquote p,.single-content blockquote p { margin-bottom:10px; }
blockquote cite,.wp-block-quote cite { display:block; margin-top:10px; color:var(--psb-muted); font-size:13px; font-style:normal; font-weight:600; }
.wp-block-pullquote { margin:35px 0; padding:25px 0; border-top:3px solid var(--psb-blue); border-bottom:3px solid var(--psb-blue); }
.wp-block-pullquote blockquote { margin:0; padding:0; border:0; background:transparent; font-size:22px; }
.entry-content img,.wp-block-post-content img,.single-content img { max-width:100%; height:auto; }
.wp-block-image { margin:25px 0 30px; }
.wp-block-image img { display:block; }
.wp-block-image figcaption,.wp-element-caption,.wp-caption-text { margin-top:9px; color:var(--psb-muted); font-size:13px; line-height:1.5; text-align:center; }
.entry-content hr,.wp-block-post-content hr,.single-content hr,.wp-block-separator { margin:35px 0; border:0; border-top:1px solid var(--psb-border); }
.entry-content table,.wp-block-post-content table,.single-content table,.wp-block-table table { width:100%; margin:25px 0 30px; border-collapse:collapse; font-size:15px; }
.entry-content th,.entry-content td,.wp-block-post-content th,.wp-block-post-content td,.single-content th,.single-content td,.wp-block-table th,.wp-block-table td { padding:12px 14px; border:1px solid #dfe4eb; text-align:left; vertical-align:top; }
.entry-content th,.wp-block-post-content th,.single-content th,.wp-block-table th { background:var(--psb-light); color:var(--psb-navy); font-weight:700; }
.entry-content code,.wp-block-post-content code,.single-content code { padding:2px 6px; border-radius:3px; background:#eef1f6; font-family:Consolas,Monaco,"Courier New",monospace; font-size:14px; }
.entry-content pre,.wp-block-post-content pre,.single-content pre,.wp-block-code { margin:25px 0; padding:20px; overflow:auto; border:1px solid var(--psb-border); border-radius:6px; background:#f3f5f8; font-family:Consolas,Monaco,"Courier New",monospace; font-size:14px; line-height:1.6; }
.entry-content pre code,.wp-block-post-content pre code,.single-content pre code { padding:0; background:transparent; }
.wp-block-button__link,.wp-element-button,.entry-content .button { border-radius:7px; background:var(--psb-blue); color:var(--psb-navy) !important; font-weight:800; text-decoration:none !important; padding:11px 22px; }
.wp-block-button__link:hover,.wp-element-button:hover,.entry-content .button:hover { background:var(--psb-blue-dark); color:var(--psb-navy) !important; }
.wp-block-embed,.wp-block-video { margin:25px 0; }
.wp-block-embed iframe,.wp-block-video video { max-width:100%; }
.wp-block-file { margin:20px 0; }
.entry-content input,.entry-content textarea,.entry-content select { max-width:100%; border:1px solid #d9dfe7; border-radius:5px; padding:10px 12px; background:#fff; color:var(--psb-text); }
.entry-content input:focus,.entry-content textarea:focus,.entry-content select:focus { border-color:var(--psb-blue); outline:2px solid rgba(83,120,225,.15); }
.entry-meta,.posted-on,.byline,.cat-links,.tags-links { color:var(--psb-muted); font-size:13px; }
.entry-meta a,.posted-on a,.byline a,.cat-links a,.tags-links a { color:var(--psb-blue-dark); }

/* Footer */
.psb-footer { background:var(--psb-navy-deep); color:#dbe5ff; }
.psb-footer-main { max-width:1100px; margin:0 auto; padding:52px 18px 42px; display:grid; grid-template-columns:1.55fr .95fr 1.35fr 1fr; gap:44px; }
.psb-footer-brand-mark { width:37px; height:37px; border-radius:9px; background:var(--psb-blue); color:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; font-weight:800; }
.psb-footer-brand h2 { margin:10px 0 18px; color:#fff; font-size:17px; line-height:1.3; font-weight:800; }
.psb-footer-brand p { max-width:295px; margin:0; color:#cbd6eb; font-size:13px; line-height:1.65; }
.psb-footer-col h3 { margin:0 0 12px; color:#fff; font-size:12px; line-height:1.2; font-weight:800; text-transform:uppercase; }
.psb-footer-col ul { margin:0; padding:0; list-style:none; }
.psb-footer-col li { margin:0 0 9px; padding:0; line-height:1.45; }
.psb-footer-col a { color:#dbe5ff; font-size:13px; text-decoration:none; }
.psb-footer-col a:hover { color:var(--psb-blue); }
.psb-contact-item { margin:0 0 13px; color:#dbe5ff; font-size:13px; line-height:1.55; }
.psb-contact-item a { color:#dbe5ff; }
.psb-contact-item a:hover { color:var(--psb-blue); }
.psb-footer-bottom { max-width:1100px; margin:0 auto; border-top:1px solid rgba(255,255,255,.14); padding:20px 18px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.psb-footer-bottom p { margin:0; color:#dbe5ff; font-size:11px; }
.psb-footer-legal { display:flex; gap:17px; }
.psb-footer-legal a { color:#dbe5ff; font-size:11px; text-decoration:none; }
.psb-footer-legal a:hover { color:var(--psb-blue); }
.psb-mobile-call-bar { display:none; }

/* Responsive */
@media (max-width:1100px) {
  .psb-menu { gap:18px; }
  .psb-call-btn { margin-left:18px; min-width:165px; }
  .psb-brand { min-width:225px; }
  .psb-footer-main { gap:28px; }
}
@media (max-width:900px) {
  .psb-topbar { display:none; }
  .psb-nav,.psb-nav-inner { height:72px; }
  .psb-nav-inner { padding:0 16px; }
  .psb-brand { min-width:0; }
  .psb-brand-mark { width:43px; height:43px; flex-basis:43px; border-radius:10px; font-size:20px; }
  .psb-brand-name { font-size:18px; }
  .psb-brand-sub { font-size:9px; }
  .psb-menu,.psb-call-btn { display:none; }
  .psb-mobile-toggle { display:flex; }
  .psb-footer-main { grid-template-columns:1.3fr 1fr 1.25fr 1fr; }
}
@media (max-width:700px) {
  #inner-wrap,.psb-content-wrap { padding:36px 18px 85px; }
  .entry-content h1,.wp-block-post-content h1,.single-content h1 { font-size:32px; }
  .entry-content h2,.wp-block-post-content h2,.single-content h2 { font-size:27px; }
  .entry-content h3,.wp-block-post-content h3,.single-content h3 { font-size:23px; }
  .entry-content h4,.wp-block-post-content h4,.single-content h4 { font-size:20px; }
  .entry-content h5,.wp-block-post-content h5,.single-content h5 { font-size:18px; }
  .entry-content h6,.wp-block-post-content h6,.single-content h6 { font-size:16px; }
  .entry-content p,.wp-block-post-content p,.single-content p { font-size:16px; }
  .entry-content blockquote,.wp-block-post-content blockquote,.single-content blockquote { padding:17px 18px; font-size:17px; }
  .psb-footer-main { display:block; padding:40px 17px 90px; }
  .psb-footer-col,.psb-footer-brand { margin-bottom:34px; }
  .psb-footer-brand p { max-width:none; }
  .psb-footer-col h3 { font-size:13px; margin-bottom:15px; }
  .psb-footer-col li { margin-bottom:11px; }
  .psb-footer-col a,.psb-contact-item { font-size:16px; }
  .psb-footer-bottom { display:block; padding:18px 17px 25px; }
  .psb-footer-bottom p { font-size:12px; }
  .psb-footer-legal { margin-top:10px; gap:16px; }
  .psb-footer-legal a { font-size:12px; }
  .psb-mobile-call-bar { position:fixed; z-index:10000; left:0; right:0; bottom:0; display:block; padding:10px 15px 12px; background:#fff; border-top:1px solid #d9dde5; }
  .psb-mobile-call-bar a { height:48px; border-radius:7px; background:var(--psb-blue); color:var(--psb-navy); display:flex; align-items:center; justify-content:center; gap:9px; font-size:15px; font-weight:800; text-decoration:none; }
  .psb-mobile-call-bar a:hover { background:var(--psb-blue-dark); color:var(--psb-navy); }
}
@media (max-width:420px) {
  .psb-brand-mark { width:43px; flex-basis:43px; }
  .psb-brand-name { font-size:17px; }
  .psb-brand-copy { margin-left:8px; }
}
