/*
Theme Name: All Service — Trusted Professional
Theme URI: https://allserviceelectricalcontractors.net
Author: All Service Electrical Contractors
Description: Professional navy and white electrician theme with prominent calling links and native WordPress latest posts.
Version: 1.0.2
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: all-service-trusted-professional
Tags: blog, custom-menu, featured-images, wide-blocks, one-column
*/
:root {
  --background: oklch(1 0 0); --foreground: oklch(.25 .03 252); --card: var(--background);
  --primary: oklch(.49 .16 254); --primary-foreground: oklch(1 0 0);
  --secondary: oklch(.96 .009 247); --muted: oklch(.96 .009 247); --muted-foreground: oklch(.51 .02 251);
  --accent: oklch(.95 .014 250); --border: oklch(.9 .011 251); --destructive: oklch(.58 .2 28);
  --signal: oklch(.85 .17 85); --ink: oklch(.25 .04 251); --on-ink: oklch(.99 0 0);
  --hero-overlay: linear-gradient(90deg, oklch(.98 .006 245 / .98) 0%, oklch(.98 .006 245 / .93) 32%, oklch(.98 .006 245 / .35) 59%, transparent 78%);
  --hero-text: var(--foreground); --hero-muted: var(--muted-foreground); --hero-accent: var(--primary);
  --section-surface: oklch(.968 .007 248); --toolbar-surface: oklch(.97 .003 250); --toolbar-ink: oklch(.38 .01 250);
  --shadow: 0 6px 22px oklch(.2 .02 250 / .08); --radius: 6px;
}
* { border-color: var(--border); box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 25px; }
body { margin: 0; background: var(--background); color: var(--foreground); font-family: 'DM Sans', sans-serif; letter-spacing: 0; }
button, a { -webkit-tap-highlight-color: transparent; }
a { text-decoration: none; } button { font-family: inherit; }
.design-toolbar { background: var(--toolbar-surface); padding: 12px 24px; border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.design-toolbar-label { font-size: 10px; font-weight: 700; color: var(--toolbar-ink); display: flex; align-items: center; gap: 8px; white-space: nowrap; letter-spacing: 1px; }
.concept-dot { height: 6px; width: 6px; border-radius: 50%; background: var(--primary); }.toolbar-divider { opacity:.3; }.toolbar-count { font-weight:400; }
.concept-tabs { display: flex; gap: 4px; flex: 1; justify-content:center; }.concept-tab { font-size: 11px; height: 34px; padding: 0 10px; color: var(--muted-foreground); border: 1px solid transparent; }.concept-tab.is-active { color: var(--primary); background: var(--background); border-color: var(--border); box-shadow: var(--shadow); }.concept-number { font-size: 10px; opacity:.65; }.choose-design { font-size:11px; height:34px; }.choose-design svg { width:14px; }
.electrical-site { background:var(--background); color:var(--foreground); --hero-accent:var(--primary); }
.site-container { max-width: 1200px; margin: 0 auto; padding-left: 40px; padding-right: 40px; }
.utility-bar { background: var(--ink); color:var(--on-ink); font-size:11px; }.utility-inner { min-height: 33px; display:flex; justify-content:space-between; align-items:center; gap:16px; }.utility-inner span, .utility-inner a { display:flex; align-items:center; gap:7px; }.utility-inner a { color:inherit; }.utility-inner strong { margin-left:8px; }.utility-inner svg { color:var(--signal); }
.site-header { background:var(--background); }.nav-inner { height:95px; display:flex; align-items:center; justify-content:space-between; gap:24px; }.brand { display:flex; align-items:center; gap:10px; color:var(--foreground); flex-shrink:0; }.brand-icon { width:44px; height:47px; background:var(--primary); color:var(--primary-foreground); display:grid; place-items:center; border-radius:5px; }.brand strong { display:block; font-size:23px; line-height:1.05; font-weight:800; }.brand small { display:block; font-size:8px; letter-spacing:1.7px; font-weight:700; margin-top:6px; }.desktop-nav { display:flex; gap:25px; }.desktop-nav a { color:var(--foreground); font-size:12px; font-weight:500; display:flex; align-items:center; gap:6px; }.desktop-nav a:hover { color:var(--primary); }.nav-contact { display:flex; gap:18px; align-items:center; }.nav-phone { color:var(--foreground); }.nav-phone small { display:block; font-size:7px; letter-spacing:.7px; color:var(--muted-foreground); margin-bottom:5px; }.nav-phone strong { font-size:19px; }.call-button { min-height:45px; height:auto; padding:13px 20px; font-weight:700; font-size:13px; border-radius:4px; gap:9px; }.mobile-menu-button, .mobile-call { display:none; }
.hero { position:relative; min-height:550px; overflow:hidden; background:var(--secondary); }.hero-image { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center 42%; }.hero-shade { position:absolute; inset:0; background:var(--hero-overlay); }.hero-inner { position:relative; min-height:550px; display:flex; align-items:center; padding-top:56px; padding-bottom:66px; }.hero-copy { max-width:570px; }.eyebrow { display:flex; align-items:center; gap:9px; font-size:10px; letter-spacing:1.4px; font-weight:700; color:var(--hero-text); margin-bottom:22px; }.eyebrow>span { width:7px; height:7px; background:var(--hero-accent); border-radius:50%; }.hero h1 { margin:0 0 22px; font-size:55px; line-height:1.12; font-weight:750; color:var(--hero-text); }.hero h1>span { display:block; }.hero h1 .hero-brand-name { font-size:15px; line-height:1.5; font-weight:600; margin-bottom:11px; }.headline-accent { color:var(--hero-accent); }.hero-copy>p { font-size:15px; line-height:1.8; color:var(--hero-muted); max-width:405px; margin-bottom:26px; }.hero-actions { display:flex; gap:24px; align-items:center; flex-wrap:wrap; }.text-link { color:var(--hero-text); display:flex; align-items:center; gap:8px; font-size:12px; font-weight:600; }.hero-reassurance { display:flex; gap:22px; margin-top:27px; color:var(--hero-muted); font-size:10px; }.hero-reassurance span { display:flex; gap:6px; align-items:center; }.hero-reassurance svg { color:var(--hero-accent); }.hero-caption { position:absolute; bottom:30px; right:48px; display:flex; align-items:center; gap:12px; color:var(--on-ink); font-size:14px; font-weight:600; text-shadow:0 1px 7px var(--ink); }.hero-caption small { display:block; font-size:7px; letter-spacing:1.1px; margin-top:5px; }.caption-line { width:30px; height:2px; background:var(--signal); }
.trust-strip { background:var(--background); border-bottom:1px solid var(--border); }.trust-grid { display:grid; grid-template-columns:repeat(4,1fr); padding-top:26px; padding-bottom:26px; }.trust-item { display:flex; align-items:center; gap:13px; border-right:1px solid var(--border); padding-left:25px; }.trust-item:first-child { padding-left:0; }.trust-item:last-child { border:none; }.trust-item>svg { color:var(--primary); flex-shrink:0; }.trust-item strong { display:block; font-size:12px; font-weight:650; }.trust-item span { display:block; margin-top:4px; font-size:10px; color:var(--muted-foreground); }
.services-section { padding-top:64px; padding-bottom:68px; }.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:30px; }.section-eyebrow { font-size:9px; letter-spacing:1.5px; font-weight:700; color:var(--primary); display:block; margin-bottom:12px; } h2 { font-size:32px; line-height:1.2; font-weight:700; margin:0; }.section-heading>p { max-width:290px; color:var(--muted-foreground); font-size:12px; line-height:1.8; margin:0; }.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }.service-card { padding:25px; border:1px solid var(--border); border-radius:6px; background:var(--background); transition:border-color .2s, transform .2s; }.service-card:hover { border-color:var(--primary); transform:translateY(-3px); }.service-card-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:19px; }.service-icon { width:46px; height:46px; display:grid; place-items:center; color:var(--primary); background:var(--secondary); border-radius:5px; }.service-number { font-size:11px; color:var(--muted-foreground); opacity:.6; }.service-card h3 { margin:0 0 10px; font-size:16px; font-weight:700; }.service-card p { font-size:12px; color:var(--muted-foreground); line-height:1.8; min-height:44px; margin:0 0 12px; }.service-link { padding:0; height:27px; font-size:11px; text-decoration:none; font-weight:600; gap:8px; }
.why-section { background:var(--section-surface); padding:64px 0; }.why-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:65px; }.why-image-wrap { position:relative; height:405px; }.why-image-wrap img { width:100%; height:100%; object-fit:cover; border-radius:5px; }.image-label { position:absolute; bottom:22px; left:22px; right:22px; background:var(--background); color:var(--foreground); padding:17px; font-size:12px; font-weight:600; display:flex; gap:10px; align-items:center; border-radius:4px; }.image-label svg { color:var(--primary); }.why-copy h2 { font-size:39px; margin-bottom:19px; }.why-copy p { font-size:12px; line-height:1.9; color:var(--muted-foreground); }.why-copy ul { list-style:none; padding:0; margin:22px 0; }.why-copy li { display:flex; align-items:center; gap:10px; font-size:11px; margin:11px 0; }.why-copy li svg { color:var(--primary); }
.call-band { background:var(--ink); color:var(--on-ink); padding:43px 0; }.call-band-inner { display:flex; align-items:center; justify-content:space-between; gap:35px; }.call-band .section-eyebrow { color:var(--signal); }.call-band h2 { font-size:27px; }.call-band p { font-size:12px; margin:10px 0 0; opacity:.75; }.big-phone { display:flex; align-items:center; gap:15px; color:var(--on-ink); flex-shrink:0; }.phone-circle { border:1px solid color-mix(in oklab, var(--on-ink) 25%, transparent); border-radius:50%; height:61px; width:61px; display:grid; place-items:center; color:var(--signal); }.big-phone small { display:block; font-size:8px; letter-spacing:1px; margin-bottom:5px; opacity:.7; }.big-phone strong { font-size:29px; font-weight:600; }.big-phone>svg { color:var(--signal); }
.insights-section { padding-top:64px; padding-bottom:68px; }.insights-note { font-size:11px; color:var(--muted-foreground); }.articles-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }.article-image-button { display:block; position:relative; height:190px; width:100%; padding:0; overflow:hidden; border-radius:5px; }.article-image-button img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }.article-image-button:hover img { transform:scale(1.04); }.article-image-button>span { position:absolute; bottom:12px; right:12px; background:var(--background); color:var(--foreground); height:34px; width:34px; display:grid; place-items:center; border-radius:3px; }.article-meta { display:flex; justify-content:space-between; align-items:center; gap:8px; margin:17px 0 8px; font-size:8px; color:var(--primary); font-weight:600; letter-spacing:.7px; }.article-meta>span:last-child { display:flex; gap:4px; color:var(--muted-foreground); letter-spacing:0; font-weight:400; }.article-card h3 { margin:0; }.article-card h3 button { white-space:normal; height:auto; padding:0; font-size:17px; text-align:left; justify-content:flex-start; line-height:1.4; font-weight:650; color:var(--foreground); }
.site-footer { border-top:1px solid var(--border); background:var(--section-surface); }.footer-main { display:flex; justify-content:space-between; align-items:center; gap:25px; padding-top:35px; padding-bottom:30px; }.footer-main .brand strong { font-size:19px; }.footer-main .brand small { font-size:7px; }.footer-main .brand-icon { width:39px; height:41px; }.footer-location { display:flex; gap:6px; align-items:center; font-size:11px; color:var(--muted-foreground); }.footer-phone { display:flex; align-items:center; gap:9px; font-size:19px; color:var(--primary); font-weight:700; }.footer-bottom { display:flex; justify-content:space-between; gap:20px; font-size:9px; color:var(--muted-foreground); padding-top:17px; padding-bottom:20px; border-top:1px solid var(--border); }
.electrical-dialog { max-height:90vh; overflow-y:auto; background:var(--background); color:var(--foreground); }.detail-image { width:100%; height:190px; object-fit:cover; border-radius:4px; }.detail-paragraph { font-size:13px; color:var(--muted-foreground); line-height:1.8; margin:0; }
.theme-premium .hero { min-height:610px; }.theme-premium .hero-inner { min-height:610px; }.theme-premium .hero h1 { font-family:'Manrope',sans-serif; font-weight:500; font-size:59px; }.theme-premium .services-grid { grid-template-columns:repeat(3,1fr); gap:0; }.theme-premium .service-card { border-radius:0; border-width:0 0 1px; padding:30px 24px; }.theme-premium .why-copy h2 { font-weight:500; }
@media(min-width:1500px) { .hero-inner,.hero { min-height:580px; }.hero-image { object-position:center 43%; }.site-container { max-width:1300px; }.design-toolbar { gap:30px; } }
@media(max-width:1150px) { .design-toolbar { gap:10px; padding:10px 15px; }.design-toolbar-label { width:100%; justify-content:center; }.concept-tab { padding:0 8px; }.nav-inner { gap:20px; }.nav-phone { display:none; }.desktop-nav { gap:18px; }.site-container { padding-left:30px; padding-right:30px; }.hero h1 { font-size:49px; }.hero-copy { max-width:540px; }.call-band h2 { font-size:24px; }.big-phone strong { font-size:26px; } }
@media(max-width:800px) { .concept-tabs { width:100%; order:2; justify-content:flex-start; overflow-x:auto; }.design-toolbar { flex-wrap:wrap; }.design-toolbar-label { width:auto; flex:1; justify-content:flex-start; }.toolbar-count { display:none; }.choose-design { font-size:10px; }.concept-tab { flex-shrink:0; }.desktop-nav { display:none; }.nav-inner { height:80px; }.hero,.hero-inner,.theme-premium .hero,.theme-premium .hero-inner { min-height:560px; }.hero-image { object-position:60% center; }.hero-copy { max-width:510px; }.hero h1 { font-size:44px; }.theme-premium .hero h1 { font-size:49px; }.theme-rapid .hero h1 { font-size:61px; }.theme-neighbor .hero h1 { font-size:44px; }.hero-caption { display:none; }.trust-grid { grid-template-columns:repeat(2,1fr); gap:25px 15px; }.trust-item,.trust-item:first-child { padding-left:0; border:0; }.services-grid,.theme-premium .services-grid { grid-template-columns:repeat(2,1fr); }.section-heading { align-items:flex-start; flex-direction:column; gap:13px; }.section-heading>p { max-width:450px; }.why-grid { gap:30px; }.why-image-wrap { height:410px; }.why-copy h2 { font-size:32px; }.call-band-inner { flex-direction:column; align-items:flex-start; }.article-meta { flex-wrap:wrap; }.article-image-button { height:150px; }.footer-main { flex-wrap:wrap; }.footer-location { order:3; width:100%; }.mobile-menu-button { display:inline-flex; } }
@media(max-width:540px) { .site-container { padding-left:22px; padding-right:22px; }.utility-inner { justify-content:center; min-height:31px; }.utility-inner>span { display:none; }.utility-inner a>span { display:none; }.utility-inner strong { margin-left:0; }.nav-inner { height:77px; gap:10px; }.brand strong { font-size:20px; }.brand small { font-size:6.5px; letter-spacing:1.3px; }.brand-icon { width:36px; height:41px; }.nav-contact { display:none; }.mobile-nav { padding:10px 22px 20px; border-top:1px solid var(--border); }.mobile-nav a { display:flex; justify-content:space-between; padding:13px 0; color:var(--foreground); font-size:13px; border-bottom:1px solid var(--border); }.hero,.hero-inner,.theme-premium .hero,.theme-premium .hero-inner { min-height:570px; }.hero-inner { padding-top:42px; padding-bottom:45px; align-items:flex-start; }.hero-image { object-position:65% center; }.hero-shade { background:linear-gradient(90deg,color-mix(in oklab,var(--background) 97%,transparent),color-mix(in oklab,var(--background) 90%,transparent) 45%,color-mix(in oklab,var(--background) 60%,transparent)); }.theme-premium .hero-shade,.theme-rapid .hero-shade,.theme-industrial .hero-shade { background:linear-gradient(90deg,oklch(.17 .014 180 / .94),oklch(.17 .014 180 / .88) 50%,oklch(.17 .014 180 / .5)); }.hero h1,.theme-neighbor .hero h1 { font-size:37px; }.theme-premium .hero h1 { font-size:42px; }.theme-rapid .hero h1 { font-size:55px; }.hero h1 .hero-brand-name { font-size:12px; max-width:280px; }.eyebrow { font-size:8px; letter-spacing:.8px; margin-bottom:22px; }.hero-copy>p { font-size:14px; max-width:310px; }.hero-actions { gap:18px; flex-direction:column; align-items:flex-start; }.hero-reassurance { flex-direction:column; gap:10px; margin-top:24px; font-size:11px; }.trust-grid { padding-top:22px; padding-bottom:22px; gap:22px 10px; }.trust-item { gap:9px; }.trust-item strong { font-size:10px; }.trust-item span { font-size:9px; }.trust-item>svg { width:22px; }.services-section,.insights-section { padding-top:44px; padding-bottom:44px; } h2 { font-size:28px; }.services-grid,.theme-premium .services-grid,.theme-neighbor .services-grid { grid-template-columns:1fr; }.service-card { padding:22px; }.service-card p { min-height:0; }.why-section { padding:44px 0; }.why-grid { grid-template-columns:1fr; gap:30px; }.why-image-wrap { height:310px; }.why-copy h2 { font-size:35px; }.why-copy p { font-size:13px; }.why-copy li { font-size:12px; }.call-band { padding:36px 0; }.call-band h2 { font-size:27px; }.big-phone { gap:12px; }.big-phone strong { font-size:27px; }.phone-circle { width:48px; height:48px; }.articles-grid { grid-template-columns:1fr; gap:30px; }.article-image-button { height:215px; }.article-meta { font-size:9px; }.article-card h3 button { font-size:19px; }.footer-main { gap:22px; }.footer-phone { font-size:18px; }.footer-bottom { flex-direction:column; gap:8px; padding-bottom:86px; }.mobile-call { display:block; position:fixed; z-index:20; bottom:0; left:0; right:0; padding:10px 16px; background:var(--background); border-top:1px solid var(--border); }.mobile-call .call-button { width:100%; }.design-toolbar-label { font-size:8px; letter-spacing:.5px; }.concept-tabs { gap:3px; }.concept-tab { font-size:10px; height:32px; }.choose-design { padding:0 9px; height:30px; }.section-eyebrow { font-size:8px; } }
@media(max-width:800px) { .concept-tabs { flex-basis:100%; min-width:0; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; animation:none!important; } }

/* Standalone controls and WordPress content */
a { color:inherit; } img { max-width:100%; } svg { flex-shrink:0; }
.call-button { display:inline-flex; align-items:center; justify-content:center; background:var(--primary); color:var(--primary-foreground); border:1px solid var(--primary); gap:9px; cursor:pointer; text-decoration:none; }
.call-button:hover { background:color-mix(in oklab,var(--primary) 85%,var(--foreground)); }
.service-link { color:var(--primary); display:inline-flex; align-items:center; cursor:pointer; }
.service-card details p { margin-top:14px; } .service-card details[open] summary { margin-bottom:8px; }
.article-card h3 a { font-size:17px; line-height:1.4; font-weight:650; display:block; color:var(--foreground); }
.article-card h3 a:hover { color:var(--primary); }
.mobile-menu-button { border:0; background:transparent; color:var(--foreground); align-items:center; justify-content:center; width:40px; height:40px; cursor:pointer; }
.mobile-nav[hidden] { display:none; }
.mobile-nav { padding:10px 30px 20px; border-top:1px solid var(--border); }
.mobile-nav a { display:block; padding:13px 0; border-bottom:1px solid var(--border); }
:focus-visible { outline:2px solid var(--primary); outline-offset:4px; }
.skip-link { position:fixed; left:16px; top:-80px; z-index:10000; padding:12px; color:var(--primary-foreground); background:var(--primary); }
.skip-link:focus { top:16px; }
.content-section { padding-top:60px; padding-bottom:70px; min-height:60vh; }
.content-section h1 { font-size:42px; line-height:1.15; overflow-wrap:anywhere; margin:0 0 24px; }
.reading-content { max-width:900px; }.entry-content { font-size:17px; line-height:1.8; overflow-wrap:anywhere; }
.entry-content a,.post-navigation a,.pagination a { color:var(--primary); text-decoration:underline; }
.entry-content h2,.entry-content h3 { margin-top:30px; }.entry-content img { height:auto; }
.post-cover { display:block; width:100%; height:auto; margin-bottom:30px; border-radius:4px; }
.post-date,.empty-posts { color:var(--muted-foreground); }.archive-grid { margin-top:32px; row-gap:40px; }
.post-navigation,.pagination { margin-top:40px; border-top:1px solid var(--border); padding-top:24px; }
.nav-links { display:flex; justify-content:space-between; flex-wrap:wrap; gap:20px; }
.search-form { margin-top:30px; }.search-form label { display:block; margin-bottom:9px; }
.search-form>div { display:flex; gap:12px; } input,textarea { background:var(--secondary); color:var(--foreground); border:1px solid var(--border); padding:12px; font:inherit; max-width:100%; } textarea { width:100%; }
.comments-area { margin-top:50px; }.comment-list { padding-left:22px; }.comment-body { padding:20px 0; border-bottom:1px solid var(--border); }.comment-form label { display:block; }.comment-form-cookies-consent label { display:inline; }.submit { background:var(--primary); color:var(--primary-foreground); cursor:pointer; }
.wp-block-table { overflow-x:auto; } table { border-collapse:collapse; width:100%; } td,th { border:1px solid var(--border); padding:10px; }.alignwide { width:100%; }.alignfull { max-width:100%; }.screen-reader-text { clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px; overflow:hidden; position:absolute; }
@media(max-width:540px) { .content-section h1 { font-size:32px; }.article-card h3 a { font-size:19px; }.search-form>div { flex-wrap:wrap; }.hero-copy { width:100%; }.hero h1 { overflow-wrap:normal; } }

/* 1.0.1 — keep text readable when page builders (e.g. Elementor) apply global heading styles */
html body .service-card h3 { color:var(--foreground) !important; font-family:inherit !important; font-size:17px !important; font-weight:700 !important; line-height:1.4 !important; margin:18px 0 8px !important; text-transform:none !important; letter-spacing:0 !important; opacity:1 !important; visibility:visible !important; }
html body .service-number { color:var(--muted-foreground) !important; font-size:12px !important; font-weight:700 !important; opacity:1 !important; }
html body .call-band h2 { color:var(--on-ink) !important; opacity:1 !important; }
html body .call-band p { color:var(--on-ink) !important; font-size:13px !important; opacity:.9 !important; }
html body .big-phone small { color:var(--on-ink) !important; font-size:12px !important; letter-spacing:.08em !important; opacity:.95 !important; }
html body .hero .text-link { color:var(--hero-text) !important; opacity:1 !important; }
