/* ==========================================================================
   NorthWest Computers – refinements on top of Fluida
   Palette (from the Fluida settings): page #504556 · panels #393745 · alt panel #4f4557
   footer #222226 · accent lime #81d742 · text white
   ========================================================================== */

:root {
	--nwc-lime: #81d742;
	--nwc-lime-hover: #9be563;
	--nwc-ink: #1d1b24;          /* dark text on lime: 10:1 contrast */
	--nwc-panel: #393745;
	--nwc-panel-2: #4f4557;
	--nwc-panel-3: #2c2a36;
	--nwc-soft: #ddd8e6;
	--nwc-muted: #b9b1c6;
	--nwc-radius: 4px;
}

/* ---------- Readability ---------- */
body { -webkit-font-smoothing: antialiased; }
.entry-content, .lp-text-content, .widget-container { font-weight: 400; }
.entry-content p, .entry-content li { line-height: 1.75; }
.entry-content h2, .entry-content h3, .entry-content h4,
.lp-text-content h2, .lp-text-content h3, .lp-text-content h4 { color: #fff; line-height: 1.3; }
.entry-content h2 { margin-top: 1.6em; }
.entry-content a:not([class]), .lp-text-content a:not([class]) { text-decoration: underline; text-underline-offset: 2px; }
.entry-content ul:not([class]) li::marker { color: var(--nwc-lime); }
.entry-content strong { font-weight: 600; }
.entry-content img { max-width: 100%; height: auto; border-radius: var(--nwc-radius); }
:focus-visible { outline: 2px solid var(--nwc-lime); outline-offset: 2px; }

/* Long lines are hard to read: the home page stays full width, inner pages are centered and narrower. */
#container:not(.fluida-landing-page), #breadcrumbs-container-inside { max-width: 1340px; margin-left: auto; margin-right: auto; }
#container:not(.fluida-landing-page) #main { max-width: 100%; }
#container:not(.fluida-landing-page) .entry-content > * { max-width: 52rem; }
#container:not(.fluida-landing-page) .entry-content > .nwc-wide { max-width: none; }

/* ---------- Buttons ---------- */
.nwc-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .45em;
	padding: .8em 1.35em; border: 2px solid var(--nwc-lime); border-radius: var(--nwc-radius);
	font-family: inherit; font-weight: 600; font-size: 1rem; line-height: 1.2; letter-spacing: .02em;
	text-decoration: none !important; cursor: pointer; transition: background-color .15s, color .15s, transform .15s;
}
.nwc-btn-primary, a.nwc-btn-primary, button.nwc-btn-primary { background: var(--nwc-lime); color: var(--nwc-ink) !important; }
.nwc-btn-primary:hover, .nwc-btn-primary:focus { background: var(--nwc-lime-hover); border-color: var(--nwc-lime-hover); color: var(--nwc-ink) !important; transform: translateY(-1px); }
.nwc-btn-ghost, a.nwc-btn-ghost { background: transparent; color: #fff !important; }
.nwc-btn-ghost:hover, .nwc-btn-ghost:focus { background: rgba(129, 215, 66, .14); color: #fff !important; }

/* ---------- Contact bar above the header ---------- */
.nwc-topbar { background: var(--nwc-panel-3); color: var(--nwc-soft); font-size: 13px; line-height: 1.4; position: relative; z-index: 102; }
.nwc-topbar-inside { display: flex; gap: 1.5em; align-items: center; justify-content: flex-end; height: 32px; padding: 0 2%; max-width: 1920px; margin: 0 auto; }
/* Fluida's menu is fixed to the top of the screen: the contact bar rides with it, so the phone number is always visible. */
@media (min-width: 801px) {
	.fluida-fixed-menu .nwc-topbar { position: fixed; top: 0; left: 0; right: 0; }
	.fluida-fixed-menu #masthead #site-header-main { top: 32px; }
	.fluida-fixed-menu #header-image-main { margin-top: 132px; }
	.admin-bar.fluida-fixed-menu .nwc-topbar { top: 32px; }
	.admin-bar.fluida-fixed-menu #masthead #site-header-main { top: 64px; }
	body:not(.fluida-fixed-menu) .nwc-topbar { position: relative; }
}
.nwc-topbar-local { margin-right: auto; }
.nwc-topbar a { color: var(--nwc-lime); text-decoration: none; font-weight: 600; }
.nwc-topbar a:hover { color: #fff; }
.nwc-topbar svg { vertical-align: -2px; }
@media (max-width: 1100px) { .nwc-topbar-local { display: none; } .nwc-topbar-inside { justify-content: space-between; } }
@media (max-width: 800px) { .nwc-topbar { display: none; } }

/* ---------- "Request Service" in the main menu ---------- */
#access .nwc-menu-cta > a > span {
	display: inline-block; padding: .65em 1.1em; line-height: 1.2; margin-left: .4em;
	background: var(--nwc-lime); color: var(--nwc-ink); border-radius: var(--nwc-radius); font-weight: 400;
}
#access .nwc-menu-cta > a:hover > span { background: var(--nwc-lime-hover); }
#access > div > ul > li.nwc-menu-cta > a { border: 0 !important; }
#access > div > ul > li.nwc-menu-cta > a::before, #access > div > ul > li.nwc-menu-cta > a::after { display: none !important; }
#mobile-menu .nwc-menu-cta > a > span { background: var(--nwc-lime); color: var(--nwc-ink); padding: .4em 1em; border-radius: var(--nwc-radius); }

/* ---------- Home page hero ---------- */
.nwc-hero {
	display: grid; grid-template-columns: 1fr minmax(360px, 1fr) 1fr; align-items: stretch;
	background: var(--nwc-panel); padding: clamp(14px, 2vw, 38px) 0;
	min-height: clamp(420px, 43vw, 640px);
}
.nwc-hero-photo { position: relative; overflow: hidden; }
.nwc-hero-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.nwc-hero-photo-left img { object-position: 0 50%; }
.nwc-hero-photo-right img { object-position: 30% 50%; }
.nwc-hero-body {
	display: flex; flex-direction: column; justify-content: center; align-items: center;
	text-align: center; padding: 2em clamp(1.2em, 2.5vw, 2.8em); color: var(--nwc-soft);
}
.nwc-hero-eyebrow {
	margin: 0 0 .9em; color: var(--nwc-lime); font-size: .82rem; font-weight: 600;
	letter-spacing: .16em; text-transform: uppercase;
}
.nwc-hero-title {
	margin: 0 0 .45em; color: #eceaf7; font-family: 'Open Sans Condensed', 'Open Sans', sans-serif; font-weight: 300;
	font-size: clamp(2.1rem, 3.3vw, 3.5rem); line-height: 1.12; letter-spacing: .005em; text-transform: none;
}
.nwc-hero-text { margin: 0 auto 1.6em; max-width: 34em; font-size: clamp(1rem, 1.05vw, 1.13rem); line-height: 1.6; }
.nwc-hero-actions { display: flex; flex-wrap: wrap; gap: .8em; justify-content: center; margin: 0 0 1.5em; }
.nwc-hero-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: .4em 1.4em; margin: 0; padding: 0; list-style: none; font-size: .88rem; color: var(--nwc-muted); }
.nwc-hero-trust li { margin: 0; padding-left: 1.25em; position: relative; }
.nwc-hero-trust li::before {
	content: ""; position: absolute; left: 0; top: .32em; width: .45em; height: .8em;
	border: solid var(--nwc-lime); border-width: 0 2px 2px 0; transform: rotate(45deg);
}
@media (max-width: 1100px) {
	.nwc-hero { grid-template-columns: .6fr minmax(360px, 1.4fr) .6fr; }
}
@media (max-width: 800px) {
	.nwc-hero {
		grid-template-columns: 1fr; min-height: 0; padding: 0;
		background: linear-gradient(rgba(57, 55, 69, .9), rgba(57, 55, 69, .94)), url(img/hero-right.webp) 30% 50% / cover no-repeat;
	}
	.nwc-hero-photo { display: none; }
	.nwc-hero-body { padding: 3em 1.4em 2.6em; }
	.nwc-hero-actions .nwc-btn { flex: 1 1 100%; }
}

/* ---------- Landing page sections ---------- */
.lp-section-header .lp-section-title { color: #fff; }
.lp-blocks .lp-block-text { color: var(--nwc-soft); }
.lp-block .lp-block-readmore { color: var(--nwc-lime); }

/* Text area 1 – "Why Experience Matters" with the Idaho's Best awards. */
#lp-text-one { background-color: var(--nwc-panel-2); }
#lp-text-one .lp-text-overlay { display: none; }

/* Idaho's Best award badges ([nwc_awards]) */
.nwc-awards { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .6em clamp(.6em, 2.2vw, 2.2em); max-width: 1180px; margin: 0 auto 1.6em; padding: 0; list-style: none; }
.nwc-awards li { margin: 0; padding: 0; list-style: none; }
.nwc-awards li::before, .nwc-awards li::marker { content: none; }
.nwc-awards img { display: block; width: auto; height: clamp(120px, 13vw, 200px); max-width: none; border-radius: 0; }
.nwc-awards .nwc-awards-logo img { height: clamp(112px, 12vw, 186px); }
@media (max-width: 640px) {
	.nwc-awards { gap: .6em .4em; }
	.nwc-awards .nwc-awards-logo { flex-basis: 100%; order: -1; }
	.nwc-awards .nwc-awards-logo img { margin: 0 auto; height: 104px; }
	.nwc-awards img { height: 90px; } /* the four shields fit on one row */
}
.nwc-awards-small { justify-content: flex-start; gap: .4em; margin: .4em 0 .8em; }
.nwc-awards-small img { height: 60px; }
.nwc-why { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 1.2em 2em; text-align: left; margin: 1.6em auto 0; max-width: 1100px; padding: 0; list-style: none; }
.nwc-why li { margin: 0; padding: 1.1em 1.2em; background: rgba(0, 0, 0, .14); border-top: 3px solid var(--nwc-lime); border-radius: var(--nwc-radius); }
.nwc-why strong { display: block; color: #fff; font-size: 1.05em; margin-bottom: .25em; }
.nwc-lead { font-size: 1.15em; line-height: 1.65; }
.lp-text .nwc-lead { max-width: 46em; margin-left: auto; margin-right: auto; }

/* Text area 2 – how it works */
.nwc-steps { counter-reset: step; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1.4em; max-width: 1100px; margin: 1.4em auto 0; padding: 0; list-style: none; text-align: left; }
.nwc-steps li { counter-increment: step; position: relative; margin: 0; padding: 1.2em 1.2em 1.2em 4.2em; background: var(--nwc-panel-2); border-radius: var(--nwc-radius); }
.nwc-steps li::before {
	content: counter(step); position: absolute; left: 1em; top: 1em; width: 2.2em; height: 2.2em; border-radius: 50%;
	background: var(--nwc-lime); color: var(--nwc-ink); font-weight: 700; display: grid; place-items: center;
}
.nwc-steps strong { display: block; color: #fff; margin-bottom: .2em; }

/* Image boxes, section 2: titles sit on photos, so darken the photos enough to read them. */
.lp-boxes-2 .lp-box-overlay { background: linear-gradient(180deg, rgba(29, 27, 36, .35), rgba(29, 27, 36, .72)) !important; opacity: 1 !important; }
.lp-boxes-2 .lp-box:hover .lp-box-overlay { background: rgba(29, 27, 36, .85) !important; }
.lp-boxes-2 .lp-box-title, .lp-boxes-2 .lp-box-title a { color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, .8); }
.lp-boxes-2 .lp-box-text-inside { text-shadow: 0 1px 2px rgba(0, 0, 0, .7); }

/* Text area 4 – closing call to action */
#lp-text-four { background: var(--nwc-panel-3); }
#lp-text-four .lp-text-content, #lp-text-one .lp-text-content > p { text-align: center; }
.nwc-band-actions { display: flex; flex-wrap: wrap; gap: .8em; justify-content: center; margin-top: 1.4em; }
.nwc-areas-inline { color: var(--nwc-muted); font-size: .95em; }

/* ---------- Call-to-action box (end of service pages) ---------- */
.nwc-cta {
	clear: both; margin: 2.4em 0 1.6em; padding: 1.6em 1.8em; background: var(--nwc-panel-3);
	border-left: 4px solid var(--nwc-lime); border-radius: var(--nwc-radius); max-width: 52rem;
}
.nwc-cta-title { margin: 0 0 .35em; color: #fff; font-size: 1.5em; }
.nwc-cta p { margin: 0 0 1em; }
.nwc-cta-actions { display: flex; flex-wrap: wrap; gap: .7em; margin: 0 !important; }

/* ---------- Cards & grids used in page content ---------- */
.nwc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.2em; margin: 1.2em 0 2em; padding: 0; list-style: none; }
.nwc-card { margin: 0; padding: 1.3em 1.4em; background: var(--nwc-panel-2); border-radius: var(--nwc-radius); border-top: 3px solid transparent; transition: border-color .15s, transform .15s; }
.nwc-card:hover { border-top-color: var(--nwc-lime); transform: translateY(-2px); }
.nwc-card h3 { margin: 0 0 .4em; font-size: 1.2em; }
.nwc-card h3 a { color: #fff; text-decoration: none; }
.nwc-card h3 a:hover { color: var(--nwc-lime); }
.nwc-card p { margin: 0; font-size: .95em; color: var(--nwc-soft); }
.nwc-card .nwc-more { display: inline-block; margin-top: .6em; color: var(--nwc-lime); font-weight: 600; text-decoration: none; }

.nwc-checklist { list-style: none; padding-left: 0; }
.nwc-checklist li { position: relative; padding-left: 1.7em; margin-bottom: .45em; }
.nwc-checklist li::before {
	content: ""; position: absolute; left: .2em; top: .45em; width: .5em; height: .9em;
	border: solid var(--nwc-lime); border-width: 0 2px 2px 0; transform: rotate(45deg);
}

/* Support plan */
.nwc-plan { background: var(--nwc-panel-2); border-radius: var(--nwc-radius); padding: 1.6em 1.8em; border-top: 4px solid var(--nwc-lime); margin: 1.4em 0; }
.nwc-plan h3 { margin-top: 0; }
.nwc-plan .nwc-plan-price { font-size: 1.15em; color: var(--nwc-lime); font-weight: 600; }
.nwc-rates { width: 100%; border-collapse: collapse; margin: 1em 0 2em; }
.nwc-rates th, .nwc-rates td { padding: .7em .9em; border-bottom: 1px solid rgba(255, 255, 255, .12); text-align: left; }
.nwc-rates th { color: #fff; font-weight: 600; }

/* FAQ */
.nwc-faq details { background: var(--nwc-panel-2); border-radius: var(--nwc-radius); margin: 0 0 .7em; padding: 0 1.2em; }
.nwc-faq summary { cursor: pointer; padding: 1em 0; color: #fff; font-weight: 600; list-style: none; position: relative; padding-right: 2em; }
.nwc-faq summary::-webkit-details-marker { display: none; }
.nwc-faq summary::after { content: "+"; position: absolute; right: 0; top: .75em; font-size: 1.4em; color: var(--nwc-lime); line-height: 1; }
.nwc-faq details[open] summary::after { content: "–"; }
.nwc-faq details > *:not(summary) { margin: 0 0 1em; }

.nwc-areas { columns: 2 12em; padding-left: 1.2em; }
.nwc-note { font-size: .92em; color: var(--nwc-muted); }

/* ---------- Contact details card (sidebar, footer, contact page) ---------- */
.nwc-contact-card p { margin: 0 0 .5em; }
.nwc-contact-card .nwc-label { display: block; font-size: .78em; letter-spacing: .08em; text-transform: uppercase; color: var(--nwc-muted); }
.nwc-contact-card .nwc-phone { font-size: 1.3em; font-weight: 600; color: var(--nwc-lime); text-decoration: none; }
.nwc-contact-actions { display: flex; flex-wrap: wrap; gap: .5em; margin-top: 1em !important; }
.nwc-contact-actions .nwc-btn { padding: .6em 1em; font-size: .92em; }

/* ---------- Service-request form ---------- */
.nwc-form-wrap { max-width: 52rem; scroll-margin-top: 110px; }
.nwc-form { margin-top: 1em; }
.nwc-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2em; }
@media (max-width: 640px) { .nwc-form-row { grid-template-columns: 1fr; } }
.nwc-field { margin: 0 0 1.1em; }
.nwc-field label, .nwc-field legend { display: block; margin-bottom: .35em; font-weight: 600; color: #fff; font-size: .95em; }
.nwc-field .req { color: var(--nwc-lime); }
.nwc-form input[type=text], .nwc-form input[type=email], .nwc-form input[type=tel], .nwc-form select, .nwc-form textarea {
	width: 100%; padding: .75em .9em; background: var(--nwc-panel-3); color: #fff;
	border: 1px solid #6e6480; border-radius: var(--nwc-radius); font: inherit; font-weight: 400;
}
.nwc-form select { appearance: auto; }
.nwc-form input:focus, .nwc-form select:focus, .nwc-form textarea:focus { border-color: var(--nwc-lime); outline: 2px solid rgba(129, 215, 66, .35); outline-offset: 0; }
.nwc-form ::placeholder { color: #9c93ab; }
.nwc-contact-pref { border: 0; padding: 0; }
.nwc-contact-pref label { display: inline-flex; align-items: center; gap: .4em; margin-right: 1.4em; font-weight: 400; }
.nwc-form-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 1em; margin-top: .4em; }
.nwc-form-privacy { font-size: .85em; color: var(--nwc-muted); }
.nwc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.nwc-form-notice { padding: 1em 1.2em; border-radius: var(--nwc-radius); margin: 0 0 1.2em; }
.nwc-form-notice ul { margin: .4em 0 0 1.2em; }
.nwc-form-success { background: rgba(129, 215, 66, .12); border: 1px solid var(--nwc-lime); }
.nwc-form-error { background: rgba(220, 60, 60, .14); border: 1px solid #e06666; }

/* ---------- Share links ---------- */
.nwc-share { display: flex; flex-wrap: wrap; align-items: center; gap: .4em .9em; margin: 1.2em 0; font-size: .92em; }
.nwc-share-label { color: var(--nwc-muted); }
.nwc-share a { color: var(--nwc-lime); text-decoration: none; border-bottom: 1px solid rgba(129, 215, 66, .4); }
.nwc-share a:hover { color: #fff; }

/* ---------- Sidebar & footer ---------- */
.widget-container .nwc-btn { margin-top: .3em; }
.nwc-side-services { list-style: none; margin: 0; padding: 0; }
.nwc-side-services li { margin: 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.nwc-side-services a { display: block; padding: .5em 0; text-decoration: none; }
#colophon .widget-title { color: #fff; }
#colophon .nwc-footer-about p { color: #c9c2d4; }
#colophon ul.nwc-footer-links { list-style: none; margin: 0; padding: 0; columns: 2 10em; }
#colophon ul.nwc-footer-links li { margin: 0 0 .4em; }
#site-copyright { float: none; text-align: center; width: 100%; }
#footer .footermenu { text-align: center; float: none; width: 100%; margin-bottom: .6em; }

/* Hide post author/date details on service pages (they read like brochures, not blog posts). */
.category-services .entry-meta .author, .category-specialties .entry-meta .author { display: none; }

/* ---------- Phone: bottom call bar ---------- */
.nwc-mobilebar { display: none; }
@media (max-width: 800px) {
	.nwc-mobilebar {
		display: grid; grid-template-columns: 1fr 1fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
		box-shadow: 0 -2px 12px rgba(0, 0, 0, .35);
	}
	.nwc-mobilebar a {
		display: flex; align-items: center; justify-content: center; gap: .45em; padding: .95em .5em;
		font-weight: 600; text-decoration: none; font-size: 1rem;
	}
	.nwc-mobilebar-call { background: var(--nwc-lime); color: var(--nwc-ink); }
	.nwc-mobilebar-request { background: var(--nwc-panel-3); color: #fff; }
	body { padding-bottom: 56px; }
	#toTop { bottom: 70px !important; }
}

/* Print: no bars or buttons */
@media print { .nwc-topbar, .nwc-mobilebar, .nwc-cta, .nwc-share, #access, #toTop { display: none !important; } }
