/* LOADMATE H1 extraction v2 — from inline <style> in tpl-service.php */

/* ====================================================================
   LM SERVICE — self-sufficient tokens (engineering rule #1)
   ==================================================================== */
:root {
    --lm-blue: #000000;
    --lm-blue-dark: #000000;
    --lm-blue-deep: #000000;
    --lm-yellow: #ffb600;
    --lm-yellow-deep: #ffb600;
    --lm-white: #ffffff;
    --lm-charcoal: #000000;
    --lm-grey-800: #000000;
    --lm-grey-700: #000000;
    --lm-grey-600: #000000;
    --lm-font-heading: 'Montserrat', system-ui, sans-serif;
    --lm-font-body: 'Lato', system-ui, sans-serif;
}
/* v1.0.2 — flatten ALL theme wrappers around this template:
   full width, single column, no sidebar, no flex/grid offset */
body[class*="tpl-service"] .ast-container,
body[class*="tpl-service"] #content .ast-container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: block !important;   /* kills Astra's sidebar flex/grid columns */
}
body[class*="tpl-service"] #secondary,
body[class*="tpl-service"] .widget-area.secondary { display: none !important; }
body[class*="tpl-service"] #primary,
body[class*="tpl-service"] .content-area.primary,
body[class*="tpl-service"] .site-main {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body[class*="tpl-service"] .entry-header { display: none; }
body[class*="tpl-service"] .entry-content { margin: 0 !important; padding: 0 !important; max-width: 100% !important; }
body[class*="tpl-service"] { overflow-x: hidden; }
#lm-service { font-family: var(--lm-font-body); color: #000000; overflow-x: hidden; }
#lm-service * { box-sizing: border-box; }
#lm-service img { max-width: 100%; height: auto; }

/* v1.0.2 — plain full-width sections, NO positional breakout. The container
   itself is flattened below; breakout math displaced the page on this
   page's default Astra layout. */
.lm-sv-section { width: 100%; max-width: 100%; padding: 3.5rem clamp(16px, 3vw, 48px); }
@media (min-width: 768px) { .lm-sv-section { padding: 4.5rem clamp(16px, 3vw, 48px); } }

.lm-sv-eyebrow { display: block; font-family: var(--lm-font-heading); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #ffb600; margin: 0 0 0.875rem; text-align: center; }
.lm-sv-h2 { font-family: var(--lm-font-heading); font-weight: 800; font-size: clamp(1.5rem, 2.8vw, 2.125rem); color: #000000; margin: 0 0 1rem; text-align: center; line-height: 1.25; }

/* canonical button — hardcoded (engineering rule #1) */
#lm-service .lm-sv-btn {
    display: inline-flex; align-items: center; gap: 0.5rem;
    background: #ffb600 !important; color: #ffffff !important;
    border: none !important; border-radius: 8px; padding: 0.85rem 1.5rem;
    font-family: var(--lm-font-heading); font-size: 0.9rem; font-weight: 700;
    text-decoration: none !important; line-height: 1.4; cursor: pointer;
    transition: background-color 0.18s ease-out, transform 0.18s ease-out !important;
}
#lm-service .lm-sv-btn:hover { background: #ffb600 !important; color: #ffffff !important; transform: translateY(-1px); }
#lm-service .lm-sv-btn svg { stroke: #ffffff !important; color: #ffffff !important; }

/* HERO — home-page style split-screen (v1.1.0) */
.lm-sv-hero { position: relative; padding: 0 !important; background: #ffffff; border-bottom: 1px solid rgba(0,0,0,0.10); }
.lm-sv-hero__grid { display: grid; grid-template-columns: 1fr; min-height: 58vh; }
@media (min-width: 1024px) { .lm-sv-hero__grid { grid-template-columns: 1.08fr 1fr; min-height: 66vh; } }
.lm-sv-hero__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(4.5rem, 8vh, 6.5rem) clamp(16px, 3vw, 48px) 3rem; background: linear-gradient(100deg, rgba(255,255,255,0.97) 0%, rgba(255,255,255,0.94) 60%, rgba(255,255,255,0.88) 100%), url('/wp-content/uploads/2025/03/Double-Girder-EOT-Crane-2.jpg') center/cover no-repeat; }
.lm-sv-hero .lm-sv-eyebrow, .lm-sv-hero__title, .lm-sv-hero__lede { text-align: left; }
.lm-sv-hero__title { font-family: var(--lm-font-heading); font-weight: 800; font-size: clamp(1.875rem, 3.6vw, 2.875rem); color: #000000; line-height: 1.18; margin: 0 0 1.125rem; max-width: 640px; }
.lm-sv-hero__title-accent { color: #ffb600; }
.lm-sv-hero__lede { font-size: clamp(1rem, 1.3vw, 1.0938rem); line-height: 1.75; color: #000000; max-width: 600px; margin: 0 0 1.75rem; }
.lm-sv-hero__ctas { display: flex; flex-wrap: wrap; gap: 0.875rem; margin: 0 0 1.25rem; }
.lm-sv-hero__lines { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; font-size: 0.9375rem; color: #000000; }
.lm-sv-hero__lines a { color: #000000; font-weight: 700; text-decoration: none; }
.lm-sv-hero__lines span { display: inline-flex; align-items: center; gap: 6px; flex-wrap: nowrap; }
.lm-sv-hero__lines svg { margin-right: 0; color: #ffb600; flex: none; }
.lm-sv-hero__media { position: relative; min-height: 320px; border-left: 5px solid #ffb600; overflow: hidden; }
@media (max-width: 1023.5px) { .lm-sv-hero__media { border-left: none; border-top: 5px solid #ffb600; } }
#lm-service .lm-sv-hero__media img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; max-width: none; object-fit: contain; background: #ffffff; padding: 12px; box-sizing: border-box; } /* audit fix: full product visible, never cropped */
.lm-sv-hero__photo-tag { position: absolute; left: 16px; bottom: 14px; z-index: 2; font-family: var(--lm-font-heading); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #ffffff; background: rgba(255,255,255,0.612); border-left: 3px solid #ffb600; padding: 0.4375rem 0.75rem; border-radius: 4px; }
/* 24/7 badge */
.lm-sv-247 { display: inline-flex; align-items: center; gap: 8px; background: rgba(255,182,0,0.14); border: 1px solid rgba(255,182,0,0.35); color: #ffb600; border-radius: 999px; padding: 0.4375rem 1rem; font-family: var(--lm-font-heading); font-weight: 800; font-size: 0.8125rem; letter-spacing: 0.06em; text-transform: uppercase; margin: 0 0 1.125rem; width: max-content; }
.lm-sv-247 svg { color: #ffb600; }

/* QUICK ANSWER (GEO) */
.lm-sv-qa { border: 1px solid rgba(0,0,0,0.10); border-left: 4px solid #ffb600; border-radius: 12px; background: #f1f1f1; padding: 1.5rem 1.75rem; max-width: 980px; margin: 0 auto; }
.lm-sv-qa p { margin: 0; font-size: 1rem; line-height: 1.75; color: #000000; }
.lm-sv-qa strong { color: #000000; }

/* OFFERINGS — one main bordered box, cards inside (locked pattern) */
.lm-sv-box { border: 1px solid rgba(0,0,0,0.10); border-radius: 18px; padding: clamp(1.5rem, 3vw, 2.5rem); background: #ffffff; }
.lm-sv-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 640px)  { .lm-sv-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .lm-sv-grid { grid-template-columns: 1fr 1fr 1fr 1fr; } }
.lm-sv-card { background: #ffffff; border: 1px solid rgba(0,0,0,0.12); border-top: 4px solid rgba(0,0,0,.12); border-radius: 10px; padding: 1.375rem 1.25rem; transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.lm-sv-card:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(0,0,0,0.12); border-top-color: #ffb600; }
.lm-sv-card__icon { color: #000000; margin-bottom: 0.75rem; display: inline-flex; }
.lm-sv-card__title { font-family: var(--lm-font-heading); font-weight: 700; font-size: 1rem; color: #000000; margin: 0 0 0.5rem; }
.lm-sv-card__desc { font-size: 0.875rem; line-height: 1.6; color: #000000; margin: 0; }

/* COVERAGE */
.lm-sv-cover { background: #f1f1f1; }
.lm-sv-cover__states { display: flex; flex-wrap: wrap; gap: 0.625rem; justify-content: center; margin: 1.5rem 0 1rem; padding: 0; list-style: none; }
.lm-sv-cover__state { display: inline-flex; padding: 0.5rem 1rem; background: #ffffff; color: #000000; border: 1px solid rgba(0,0,0,0.18); border-radius: 999px; font-family: var(--lm-font-heading); font-weight: 600; font-size: 0.8438rem; }
.lm-sv-cover__note { text-align: left; max-width: 100%; margin: 0; font-size: 1.0625rem; line-height: 1.8; color: #000000; }

/* WHY strip */
.lm-sv-why { display: grid; grid-template-columns: 1fr; gap: 1rem; }
@media (min-width: 900px) { .lm-sv-why { grid-template-columns: 1fr 1fr 1fr; } }
.lm-sv-why__item { border: 1px solid rgba(0,0,0,0.10); border-radius: 12px; padding: 1.5rem; background: #ffffff; }
.lm-sv-why__item h3 { font-family: var(--lm-font-heading); font-weight: 700; font-size: 1.0313rem; color: #000000; margin: 0 0 0.5rem; }
.lm-sv-why__item p { margin: 0; font-size: 0.9063rem; line-height: 1.65; color: #000000; }

/* FORM */
.lm-sv-form-wrap { background: #f1f1f1; border: 1px solid rgba(0,0,0,0.10); border-radius: 18px; padding: clamp(1.5rem, 3vw, 2.5rem); max-width: 980px; margin: 0 auto; }
.lm-sv-form { display: grid; grid-template-columns: 1fr; gap: 1.125rem; }
@media (min-width: 700px) { .lm-sv-form { grid-template-columns: 1fr 1fr; } .lm-sv-form .lm-sv-field--full { grid-column: 1 / -1; } }
.lm-sv-field label { display: block; font-family: var(--lm-font-heading); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #000000; margin: 0 0 0.4375rem; }
.lm-sv-field input, .lm-sv-field select, .lm-sv-field textarea {
    width: 100%; padding: 0.8125rem 1rem; border: 1px solid rgba(0,0,0,0.22);
    border-radius: 6px; background: #ffffff; color: #000000;
    font-family: var(--lm-font-body); font-size: 0.9375rem; line-height: 1.4;
}
.lm-sv-field input::placeholder, .lm-sv-field textarea::placeholder { color: #000000; }
.lm-sv-field textarea { min-height: 120px; resize: vertical; }
.lm-sv-form__note { grid-column: 1 / -1; font-size: 0.8438rem; color: #000000; margin: 0.25rem 0 0; }

/* FAQ */
.lm-sv-faq { max-width: 980px; margin: 0 auto; }
.lm-sv-faq details { border: 1px solid rgba(0,0,0,0.12); border-radius: 10px; background: #ffffff; padding: 0; margin: 0 0 0.75rem; overflow: hidden; }
.lm-sv-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.0625rem 1.25rem; font-family: var(--lm-font-heading); font-weight: 700; font-size: 0.9688rem; color: #000000; }
.lm-sv-faq summary::-webkit-details-marker { display: none; }
.lm-sv-faq summary::after { content: '+'; font-size: 1.25rem; color: #ffb600; flex: 0 0 auto; }
.lm-sv-faq details[open] summary::after { content: '\2212'; }
.lm-sv-faq .lm-sv-faq__a { padding: 0 1.25rem 1.125rem; font-size: 0.9375rem; line-height: 1.7; color: #000000; }

/* ============================================================
   LM SERVICE — UNIFIED DESIGN OVERRIDE
   Poppins + #ffb600 gold come from lm-unify (loaded globally).
   This block adds the alternating white / #115C88 bands, converts
   pale tints to clean white, and recolours text on the blue bands.
   Scoped to #lm-service; this <style> only loads on the service page.
   ============================================================ */
#lm-service { --lm-yellow:#ffb600; }

/* hairline dividers between bands */
#lm-service .lm-sv-section { border-top:1px solid rgba(0,0,0,0.10); }
#lm-service .lm-sv-hero + .lm-sv-section { border-top:0; }

/* pale tints -> clean white (locked spec: white or #115C88 only) */
#lm-service .lm-sv-qa { background:#ffffff !important; }
#lm-service .lm-sv-cover { background:#ffffff !important; }
#lm-service .lm-sv-cover .lm-sv-eyebrow, #lm-service .lm-sv-cover .lm-sv-h2 { text-align: center; }
#lm-service .lm-sv-form-wrap { background:#ffffff !important; }

/* ---------- BLUE bands (#115C88): What we service · Why · FAQs ---------- */
#lm-service .lm-sv-section--blue { background:#f1f1f1 !important; border-top:1px solid rgba(255,255,255,0.16); }
#lm-service .lm-sv-section--blue .lm-sv-eyebrow { color:#ffb600 !important; }
#lm-service .lm-sv-section--blue .lm-sv-h2 { color:#ffffff !important; }
/* dissolve the white box wrapper so the white cards float directly on the blue band */
#lm-service .lm-sv-section--blue .lm-sv-box { background:transparent !important; border:0 !important; padding:0 !important; }
/* card top accent must read against the blue band -> gold */
#lm-service .lm-sv-section--blue .lm-sv-card { border-top-color:#ffb600 !important; }

/* ---------- footer full-width safety net (page-local, mirrors steel) ---------- */
#content .ast-container { display:block !important; }
.lm-footer { display:block !important; width:100% !important; background:#f1f1f1 !important; }

.lm-sv-faq .lm-sv-faq__a p { margin: 0; }

/* ===== TESTIMONIALS — ported from home page (continuous marquee) ===== */
#lm-service { --lm-grey-900: #000000; --lm-ease: cubic-bezier(0.4, 0, 0.2, 1); }
#lm-service .lm-testimonials { background:#ffffff; color:#000000; padding:2.75rem 0 2.25rem; width:100vw; position:relative; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw; box-sizing:border-box; overflow:hidden; }
#lm-service .lm-testimonials__container { max-width:1280px; margin:0 auto; padding:0 1.25rem; position:relative; z-index:1; box-sizing:border-box; }
#lm-service .lm-testimonials__container .lm-tmarq { width:100vw; position:relative; left:50%; right:50%; margin-left:-50vw; margin-right:-50vw; }
@media (min-width:768px){ #lm-service .lm-testimonials__container { padding:0 2rem; } }
#lm-service .lm-testimonials__header { text-align:center; max-width:820px; margin:0 auto 1.25rem; }
@media (min-width:768px){ #lm-service .lm-testimonials__header { margin-bottom:1.5rem; } }
@media (min-width:1024px){ #lm-service .lm-testimonials__header { margin-bottom:1.75rem; } }
#lm-service .lm-testimonials__eyebrow { display:inline-block; font-family:var(--lm-font-heading); font-size:0.75rem; font-weight:700; line-height:1.4; letter-spacing:0.12em; text-transform:uppercase; color:#ffb600; margin:0 0 1rem; }
#lm-service .lm-testimonials__heading { color:#000000 !important; font-family:var(--lm-font-heading); font-size:clamp(1.625rem, 3vw + 0.5rem, 2.5rem); font-weight:700; line-height:1.2; letter-spacing:-0.01em; margin:0 0 1.25rem !important; background:none !important; position:relative; }
#lm-service .lm-testimonials__heading::after { content:''; display:block; width:64px; height:3px; background:#ffb600; margin:1.25rem auto 0; }
#lm-service .lm-testimonials__intro { color:#000000; font-size:1rem; line-height:1.6; margin:0; }
@media (min-width:768px){ #lm-service .lm-testimonials__intro { font-size:1.0625rem; line-height:1.65; } }
#lm-service .lm-tmarq { overflow:hidden; position:relative; padding:0.5rem 0 0.25rem; }
#lm-service .lm-tmarq::before, #lm-service .lm-tmarq::after { content:''; position:absolute; top:0; bottom:0; width:12vw; max-width:170px; z-index:2; pointer-events:none; }
#lm-service .lm-tmarq::before { left:0; background:linear-gradient(90deg, #ffffff, rgba(255,255,255,0)); }
#lm-service .lm-tmarq::after { right:0; background:linear-gradient(270deg, #ffffff, rgba(255,255,255,0)); }
#lm-service .lm-tmarq__track { display:flex; gap:2.5rem; width:max-content; will-change:transform; align-items:stretch; padding:2.25rem 2rem 0.5rem; }
#lm-service .lm-tcard { flex:0 0 auto; width:376px; max-width:84vw; min-height:300px; position:relative; margin-top:40px; background:linear-gradient(180deg, #ffffff, #f1f1f1); border:1px solid rgba(0,0,0,0.10); border-radius:22px; padding:4.25rem 2.25rem 2rem; box-shadow:0 16px 42px rgba(0,0,0,0.10); display:flex; flex-direction:column; align-items:center; text-align:center; gap:0.85rem; transition:transform .3s var(--lm-ease), box-shadow .3s var(--lm-ease); }
#lm-service .lm-tcard:hover { transform:translateY(-6px); box-shadow:0 26px 58px rgba(0,0,0,0.17); }
#lm-service .lm-tcard__medallion { box-sizing:border-box; position:absolute; top:-40px; left:50%; transform:translateX(-50%); width:80px; height:80px; border-radius:50%; background:#ffffff; border:1px solid rgba(0,0,0,0.12); box-shadow:0 10px 24px rgba(0,0,0,0.18); display:flex; align-items:center; justify-content:center; padding:12px; }
#lm-service .lm-tcard__medallion img { max-width:100%; max-height:100%; object-fit:contain; }
#lm-service .lm-tcard__medallion-initials { font-family:var(--lm-font-heading); font-weight:800; font-size:1.0625rem; color:#000000; }
#lm-service .lm-tcard__quote { color:#000000; font-size:1.0625rem; line-height:1.65; margin:0 0 0.5rem; flex:1 1 auto; }
#lm-service .lm-tcard__name { font-family:var(--lm-font-heading); font-weight:700; font-size:1.0312rem; color:#000000; margin:0.25rem 0 0; padding-top:0.75rem; border-top:1px solid rgba(0,0,0,0.08); width:100%; }
#lm-service .lm-tcard__pos { font-weight:500; color:#000000; }
#lm-service .lm-tcard__company { margin:-0.65rem 0 0; font-family:var(--lm-font-heading); font-weight:800; font-size:1.0625rem; color:#000000 !important; line-height:1.3; letter-spacing:-0.01em; }

/* ===== NEW BLUE BANDS — trust stats + closing CTA ===== */
#lm-service .lm-sv-stats { list-style:none; margin:1.75rem auto 0; padding:0; max-width:900px; display:flex; flex-wrap:wrap; justify-content:center; gap:1.5rem 2.75rem; }
#lm-service .lm-sv-stats li { display:flex; flex-direction:column; align-items:center; min-width:118px; }
#lm-service .lm-sv-stats strong { font-family:var(--lm-font-heading); font-weight:800; font-size:1.9rem; line-height:1; color:#ffb600; }
#lm-service .lm-sv-stats span { margin-top:0.4rem; font-size:0.84rem; color:rgba(255,255,255,0.85); letter-spacing:0.02em; }
#lm-service .lm-sv-cta__line { text-align:center; max-width:680px; margin:1rem auto 0; font-size:1.0625rem; line-height:1.7; color:#000000; }
#lm-service .lm-sv-cta__btns { display:flex; flex-wrap:wrap; justify-content:center; gap:0.875rem; margin-top:1.75rem; }
#lm-service .lm-sv-btn--ghost { background:transparent !important; border:1.5px solid rgba(0,0,0,0.45) !important; color:#000000 !important; }
#lm-service .lm-sv-btn--ghost:hover { background:rgba(255,255,255,0.051) !important; border-color:rgba(0,0,0,.12) !important; }
