/* Diligence — page components, matched to the homepage + landing-page canon.
   Dark hero + form card, stat band, alternating sections, brand cards, dark final-CTA. */

/* ---- Section system ---- */
.sec{padding:clamp(44px,8vw,80px) 0}
.sec-white{background:#fff}
.sec-grey{background:var(--grey)}
.sec-green{background:var(--green-bg)}
.eyebrow{display:inline-block;font-family:var(--font-display);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--primary);margin-bottom:12px}
.eyebrow.lt{color:var(--accent)}
.sec-h2{font-family:var(--font-display);font-weight:800;font-size:var(--fs-h2);line-height:1.2;color:var(--dark);margin:0 0 16px;text-wrap:balance}
.sec-h2 .gr{color:var(--primary)}
.sec-h2.lt{color:#fff}
.sec-p{font-size:clamp(16px,2vw,18px);line-height:1.65;color:var(--text-muted);max-width:none;text-wrap:pretty}

/* ---- Breadcrumbs ---- */
.dl-breadcrumbs{font-size:var(--fs-small);color:rgba(255,255,255,.55)}
.dl-breadcrumbs a{color:rgba(255,255,255,.7)}
.dl-breadcrumbs a:hover{color:var(--accent)}
.dl-breadcrumbs .sep{margin:0 .5em;opacity:.5}
.sec-white .dl-breadcrumbs,.sec-grey .dl-breadcrumbs{color:var(--text-light)}
.sec-white .dl-breadcrumbs a,.sec-grey .dl-breadcrumbs a{color:var(--text-muted)}

/* ---- Hero (dark navy + glow + dots + split grid) ---- */
.svc-hero{position:relative;overflow:hidden;background:var(--black);color:#fff;padding:40px 0 56px}
@media(min-width:1024px){.svc-hero{padding:72px 0 88px}}
.svc-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 65% 80% at 0% 60%,rgba(116,140,12,.18),transparent 60%),radial-gradient(ellipse 45% 45% at 100% 5%,rgba(144,200,36,.07),transparent 50%)}
.svc-hero-dots{position:absolute;inset:0;background-image:radial-gradient(rgba(144,200,36,.1) 1px,transparent 1px);background-size:30px 30px;pointer-events:none}
.svc-hero .container{position:relative;z-index:2;display:grid;gap:32px;align-items:start}
@media(min-width:1024px){.svc-hero .container{grid-template-columns:1fr 380px;gap:48px}}
.svc-hero h1{color:#fff;margin:14px 0 0;max-width:18ch}
.svc-hero h1 .hl{background:linear-gradient(135deg,var(--accent),#b3e64c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent)}
.svc-hero .hero-sub{font-size:clamp(15px,4vw,18px);color:rgba(255,255,255,.65);line-height:1.65;max-width:560px;margin:18px 0 24px}
.svc-hero .hero-actions{display:flex;gap:12px;flex-wrap:wrap}
/* Equal-size CTA buttons (hero + final-cta), symmetric on desktop + mobile */
.hero-actions .btn{min-width:210px;justify-content:center}
@media(max-width:560px){.hero-actions{flex-direction:column}.hero-actions .btn{width:100%;min-width:0}}

/* blinking badge */
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);padding:7px 14px;border-radius:var(--radius-full);font-size:13px;color:#fff}
.hero-badge .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);position:relative}
.hero-badge .dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(144,200,36,.5);animation:dl-pulse 2s infinite}
@keyframes dl-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(3);opacity:0}}

/* hero trust stats strip */
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1)}
.hero-stats .n{font-family:var(--font-display);font-weight:800;font-size:clamp(22px,3vw,30px);color:var(--accent);line-height:1}
.hero-stats .l{font-size:12px;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.05em;margin-top:4px}

/* ---- Lead form card (signature) ---- */
.hero-form{background:#fff;border-radius:var(--radius-md);border-top:4px solid var(--primary);box-shadow:var(--shadow-form);padding:24px 18px}
@media(min-width:1024px){.hero-form{padding:32px 28px;position:sticky;top:24px}}
.hero-form .form-ttl{font-family:var(--font-display);font-weight:700;font-size:22px;color:var(--dark);margin:0}
.hero-form .form-sub{font-size:14px;color:var(--text-muted);margin:4px 0 20px}
.hero-form .fg{margin-bottom:12px}
.hero-form label{display:block;font-family:var(--font-display);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--dark);margin-bottom:5px}
.hero-form input,.hero-form select,.hero-form textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--border-olive);border-radius:var(--radius-sm);background:var(--grey);color:var(--dark)}
.hero-form input:focus,.hero-form select:focus,.hero-form textarea:focus{outline:none;border-color:var(--primary);background:#fff;box-shadow:var(--ring)}
.hero-form .lf-hp{position:absolute;left:-9999px}
.hero-form .btn-form{width:100%;padding:15px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:700;font-size:16px;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:transform 160ms var(--ease-out),background 160ms var(--ease-out),box-shadow 160ms var(--ease-out)}
.hero-form .btn-form:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(116,140,12,.3)}
.hero-form .btn-form:active{transform:scale(.98)}
@media (hover:none){.hero-form .btn-form:hover{transform:none}}
.hero-form .lf-trust{font-size:12px;color:var(--text-light);text-align:center;margin:12px 0 0}
.lead-form-disclosure{width:100%;min-width:0}
.lead-form-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:14px 18px;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-md);background:rgba(255,255,255,.07);color:#fff;font-family:var(--font-display);font-weight:700;cursor:pointer;list-style:none}
.lead-form-disclosure>summary::-webkit-details-marker{display:none}
.lead-form-disclosure[open]>summary{display:none}
.lead-form-disclosure>summary::after{content:'+';color:var(--accent);font-size:22px;line-height:1}
.lead-form-disclosure[open]>summary::after{content:'\2212'}
.lead-form-disclosure[open]>.hero-form{margin-top:12px}
@media(min-width:769px){
 .lead-form-disclosure>summary{display:none}
 .lead-form-disclosure:not([open])>.hero-form{display:block}
 .lead-form-disclosure[open]>.hero-form{margin-top:0}
}
.hero-support-disclosure{width:100%;min-width:0}
.hero-support-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:14px 18px;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-md);background:rgba(255,255,255,.07);color:#fff;font-family:var(--font-display);font-weight:700;cursor:pointer;list-style:none}
.hero-support-disclosure>summary::-webkit-details-marker{display:none}
.hero-support-disclosure>summary::after{content:'+';color:var(--accent);font-size:22px;line-height:1}
.hero-support-disclosure[open]>summary::after{content:'\2212'}
.hero-support-disclosure[open]>.about-hero-card,.hero-support-disclosure[open]>.cs-hero-card{margin-top:12px}
@media(min-width:769px){
 .hero-support-disclosure>summary{display:none}
 .hero-support-disclosure:not([open])>.about-hero-card,.hero-support-disclosure:not([open])>.cs-hero-card{display:block}
 .hero-support-disclosure[open]>.about-hero-card,.hero-support-disclosure[open]>.cs-hero-card{margin-top:0}
}

/* ---- Authority / recognition strip (social proof under hero) ---- */
.auth-strip-sec{background:var(--grey);border-bottom:1px solid var(--border-olive)}
.auth-label{text-align:center;font-family:var(--font-display);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-light);margin:0 0 18px}
.auth-strip{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 30px}
.auth-strip .auth{font-family:var(--font-display);font-weight:800;font-size:clamp(16px,2.4vw,22px);letter-spacing:.02em;color:var(--ink-700);opacity:.5;transition:opacity 160ms var(--ease-out),color 160ms var(--ease-out)}
.auth-strip .auth:hover{opacity:1;color:var(--primary)}
@media (hover:none){.auth-strip .auth:hover{opacity:.5;color:var(--ink-700)}}

/* ---- Social proof, ported from the homepage (real client logos / testimonials / field photos) ---- */
/* Client-logo marquee (dark bar, sits directly under the hero like the homepage) */
.trust-bar{background:var(--darker);padding:28px 0 24px;border-top:1px solid rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.05);overflow:hidden}
.trust-marquee-heading{text-align:center;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:rgba(255,255,255,.55);line-height:1.45;max-width:36em;margin:0 auto 20px}
.trust-marquee-outer{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.trust-marquee-track{display:flex;align-items:center;gap:clamp(20px,3vw,40px);width:max-content;animation:trustMarqueeScroll 55s linear infinite}
.trust-marquee-track:hover{animation-play-state:paused}
.trust-logo-cell{flex-shrink:0;width:108px;height:68px;background:var(--white);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;padding:10px 12px;box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:box-shadow .25s ease,transform .25s ease}
@media(min-width:768px){.trust-logo-cell{width:132px;height:80px;padding:12px 16px;border-radius:var(--radius-lg)}}
.trust-logo-cell:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.trust-logo-cell img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;display:block}
@keyframes trustMarqueeScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.trust-marquee-track{animation:none;justify-content:center;flex-wrap:wrap;max-width:100%;width:100%;margin:0 auto;padding:0 16px;gap:20px 24px}.trust-marquee-track .trust-logo-cell:nth-child(n+13){display:none}}

/* Testimonials — horizontal-scroll screenshot cards */
.testi-hscroll{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px 0 24px;margin-top:8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.testi-hscroll::-webkit-scrollbar{display:none}
.testi-item{flex-shrink:0;width:min(280px,85vw);scroll-snap-align:start;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md);background:var(--white);transition:transform .25s ease,box-shadow .25s ease}
@media(min-width:768px){.testi-item{width:300px}}
@media(min-width:1024px){.testi-item{width:320px}}
.testi-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.testi-item img{width:100%;height:auto;display:block;vertical-align:top}

/* Field / on-site visit gallery — real client-meeting photos */
.audit-track{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:8px 0 24px;margin-top:20px}
.audit-track::-webkit-scrollbar{display:none}
.audit-slide{flex-shrink:0;width:min(280px,85vw);scroll-snap-align:start;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md);background:var(--grey);transition:transform .2s ease,box-shadow .2s ease}
@media(min-width:768px){.audit-slide{width:300px}}
@media(min-width:1024px){.audit-slide{width:340px}}
.audit-slide:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.audit-slide img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center;display:block;vertical-align:top}
/* touch-gating, consistent with the theme canon */
@media (hover:none){.trust-logo-cell:hover,.testi-item:hover,.audit-slide:hover{transform:none}}

/* ---- About hero vision card (hero-right slot) ---- */
.about-hero-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-lg);padding:32px}
.about-hero-card .ahc-label{text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:600;color:var(--accent);margin:0 0 10px}
.about-hero-card h3{color:#fff;font-size:1.5rem;margin:0 0 12px}
.about-hero-card p{color:rgba(255,255,255,.78);margin:0;line-height:1.7}

/* ---- Contact: hero quick-links + embedded map ---- */
.contact-quick{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}
.contact-quick li{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.85)}
.contact-quick i{color:var(--accent);width:18px;text-align:center}
.contact-quick a{color:#fff}
.contact-quick a:hover{color:var(--accent)}
.contact-map{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid var(--border)}
.contact-map iframe{display:block}

/* ---- Careers: openings grid ---- */
.job-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:24px;margin-top:28px}
.job-card{display:flex;flex-direction:column;gap:14px;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:26px;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),border-color .2s}
.job-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
.job-card-top h3{font-family:var(--font-display);font-size:1.2rem;color:var(--dark);margin:0 0 10px}
.job-meta{display:flex;flex-wrap:wrap;gap:8px}
.job-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--primary-dark);background:var(--green-bg);border-radius:var(--radius-full);padding:5px 12px}
.job-tag i{font-size:11px}
.job-desc{color:var(--text-muted);line-height:1.6;margin:0;flex:1}
.job-skills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:7px}
.job-skills li{font-size:12px;color:var(--text-muted);background:var(--grey);border:1px solid var(--border);border-radius:var(--radius-full);padding:4px 11px}
.job-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:4px}
.job-detail-link{font-weight:600;color:var(--primary);font-size:14px;white-space:nowrap}
.job-detail-link:hover{color:var(--primary-dark)}
@media (hover:none){.job-card:hover{transform:none}}

/* ---- Team grid (About) ---- */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px;margin-top:28px}
.team-lead.team-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.team-card{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 16px;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),border-color .2s}
.team-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:transparent}
.team-photo{width:96px;height:96px;border-radius:50%;object-fit:cover;background:var(--green-bg);margin-bottom:14px;border:3px solid var(--green-bg)}
.team-lead .team-photo{width:120px;height:120px}
.team-name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--dark);line-height:1.25}
.team-role{font-size:12.5px;color:var(--text-muted);margin-top:4px;line-height:1.35}
.team-li{margin-top:10px;color:var(--primary);font-size:15px}
.team-li:hover{color:var(--primary-dark)}
@media (hover:none){.team-card:hover{transform:none}}

/* ---- Stat band ---- */
.stats-band{position:relative;overflow:hidden;background:var(--primary);padding:48px 0;color:#fff}
.stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;position:relative;z-index:2}
@media(min-width:641px){.stats-row{grid-template-columns:repeat(4,1fr)}}
.stat .stat-num{font-family:var(--font-display);font-weight:800;font-size:clamp(30px,5vw,48px);color:#fff;line-height:1}
.stat .stat-label{font-size:13px;color:rgba(255,255,255,.75);text-transform:uppercase;letter-spacing:.06em;margin-top:6px}

/* ---- Cards ---- */
.dl-cards{display:grid;gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.svc-card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--border-olive);border-radius:var(--radius-lg);padding:28px;box-shadow:var(--shadow-sm);transition:transform 220ms var(--ease-out),box-shadow 220ms var(--ease-out),border-color 220ms var(--ease-out);text-decoration:none}
.svc-card:hover{transform:translateY(-6px);border-color:var(--primary);box-shadow:var(--shadow-hover-olive)}
.svc-card:active{transform:scale(.985)}
@media (hover:none){.svc-card:hover{transform:none}}
.svc-card .ic{width:48px;height:48px;border-radius:var(--radius-sm);background:var(--green-bg);color:var(--primary);display:grid;place-items:center;font-size:20px;margin-bottom:8px}
.svc-card h3{font-size:19px;margin:0;color:var(--dark)}
.svc-card p{font-size:14px;color:var(--text-muted);margin:0;flex:1;line-height:1.6}
.svc-card .more{font-family:var(--font-display);font-weight:600;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--primary)}

/* ---- Process steps (olive numbered) ---- */
.proc-list{list-style:none;counter-reset:step;margin:0;padding:0;display:grid;gap:16px}
.proc-list li{counter-increment:step;position:relative;padding:24px 24px 24px 76px;background:#fff;border:1px solid var(--border-olive);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}
.proc-list li::before{content:counter(step);position:absolute;left:20px;top:22px;width:42px;height:42px;border-radius:50%;background:var(--primary);color:#fff;font-family:var(--font-display);font-weight:700;display:flex;align-items:center;justify-content:center}
.proc-list li h3{font-size:18px;margin:0 0 6px;color:var(--dark)}
.proc-list li p{margin:0;font-size:15px;color:var(--text-muted)}

/* ---- Key-facts card ---- */
.facts-card{border:1px solid var(--border-olive);border-radius:var(--radius-md);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}
.facts-card .row{display:grid;grid-template-columns:38% 1fr;border-bottom:1px solid var(--border-olive)}
.facts-card .row:last-child{border-bottom:0}
.facts-card .k{background:var(--green-bg);font-family:var(--font-display);font-weight:600;color:var(--dark);padding:14px 18px}
.facts-card .v{padding:14px 18px;color:var(--text-muted)}

/* ---- FAQ accordion ---- */
.dl-faq{display:grid;gap:12px}
.dl-faq details{border:1px solid var(--border-olive);border-radius:var(--radius-md);background:#fff;overflow:hidden}
.dl-faq summary{cursor:pointer;list-style:none;padding:18px 22px;font-family:var(--font-display);font-weight:600;color:var(--dark);display:flex;justify-content:space-between;align-items:center;gap:16px}
.dl-faq summary::-webkit-details-marker{display:none}
.dl-faq summary::after{content:"+";font-size:1.4em;color:var(--primary);line-height:1}
.dl-faq details[open] summary::after{content:"\2212"}
.dl-faq .dl-faq-a{padding:0 22px 18px;color:var(--text-muted)}
.dl-faq .dl-faq-a p{margin:0}

/* Single-post FAQ — make Rank Math's plain FAQ block a fancy accordion that matches
   the .dl-faq look (olive +/- toggle, rounded cards). Rank Math RENDERS items as
   .rank-math-list-item (the editor block is .rank-math-faq-item). JS in single.php
   toggles .is-open. */
.rank-math-block .rank-math-list{display:grid;gap:12px;margin:24px 0}
.rank-math-list-item,.rank-math-faq-item{border:1px solid var(--border-olive);border-radius:var(--radius-md);background:#fff;overflow:hidden}
.rank-math-list-item .rank-math-question,.rank-math-faq-item .rank-math-question{cursor:pointer;margin:0;padding:18px 22px;font-family:var(--font-display);font-size:1.02rem;font-weight:600;color:var(--dark);display:flex;justify-content:space-between;align-items:center;gap:16px;transition:color .15s}
.rank-math-list-item .rank-math-question:hover,.rank-math-faq-item .rank-math-question:hover{color:var(--primary-dark)}
.rank-math-list-item .rank-math-question::after,.rank-math-faq-item .rank-math-question::after{content:"+";font-size:1.5em;color:var(--primary);line-height:1;flex-shrink:0}
.rank-math-list-item.is-open .rank-math-question,.rank-math-faq-item.is-open .rank-math-question{color:var(--primary-dark)}
.rank-math-list-item.is-open .rank-math-question::after,.rank-math-faq-item.is-open .rank-math-question::after{content:"\2212"}
.rank-math-list-item .rank-math-answer,.rank-math-faq-item .rank-math-answer{max-height:0;overflow:hidden;padding:0 22px;color:var(--text-muted);line-height:1.65;transition:max-height .35s ease,padding .35s ease}
.rank-math-list-item.is-open .rank-math-answer,.rank-math-faq-item.is-open .rank-math-answer{max-height:1500px;padding:0 22px 18px}
.rank-math-list-item .rank-math-answer p,.rank-math-faq-item .rank-math-answer p{margin:0 0 10px}
.rank-math-list-item .rank-math-answer :last-child,.rank-math-faq-item .rank-math-answer :last-child{margin-bottom:0}

/* ---- Final CTA (dark, mirrors hero) ---- */
.final-cta{position:relative;overflow:hidden;background:var(--black);color:#fff;padding:48px 0;text-align:center}
@media(min-width:1024px){.final-cta{padding:80px 0}}
.final-cta::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 65% 80% at 0% 60%,rgba(116,140,12,.18),transparent 60%),radial-gradient(ellipse 45% 45% at 100% 5%,rgba(144,200,36,.07),transparent 50%)}
.final-cta .svc-hero-dots{opacity:1}
.final-cta .inner{position:relative;z-index:2}
.final-cta h2{color:#fff;margin-bottom:14px}
.final-cta h2 .hl{color:var(--accent)}
.final-cta p{color:rgba(255,255,255,.65);max-width:600px;margin:0 auto 24px}
.final-cta .hero-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* ---- 2-column blog post layout (single.php) — matches the current blog design ----
   Centred title on top → [ main content | sticky sidebar ] → related full-width. */
/* headline lives in the LEFT content column (left-aligned) so the sticky sidebar
   starts from the very top of the row and gets the title's height as extra space. */
.dl-post-title{font-family:var(--font-display);font-weight:800;font-size:clamp(26px,3vw,38px);line-height:1.25;color:var(--dark);text-align:left;margin:0 0 var(--space-5);text-wrap:balance}
/* NOTE: do NOT use align-items:start here — the sidebar column must stretch to the full
   row height so position:sticky on .dl-aside-inner has room to travel. */
.dl-post-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:44px;align-items:stretch}
@media(max-width:992px){.dl-post-grid{grid-template-columns:1fr;gap:40px}}
.dl-post-main{min-width:0}
.dl-crumbs-box{background:var(--grey);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 14px;margin-bottom:var(--space-5);font-size:13px;color:var(--text-light)}
.dl-crumbs-box .current{color:var(--text-light)}

/* sticky sidebar — only the form sticks; it sits in its own row so it never overlaps the
   the WHOLE sidebar is sticky (all widgets follow the scroll as one unit). It's taller
   than the viewport, so it scrolls internally to keep every widget reachable. */
.dl-post-aside .dl-aside-inner{display:flex;flex-direction:column;gap:24px}
@media(min-width:993px){
  .dl-post-aside{height:100%}
  .dl-post-aside .dl-aside-inner{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-olive) transparent}
  .dl-post-aside .dl-aside-inner::-webkit-scrollbar{width:7px}
  .dl-post-aside .dl-aside-inner::-webkit-scrollbar-thumb{background:var(--border-olive);border-radius:10px}
}
/* olive-box lead form in the sidebar — titled, 3 placeholder fields, dark button.
   position:static cancels the base .hero-form sticky (the whole sidebar already sticks;
   the inner sticky was shifting the form over the trust line below it). */
.dl-post-aside .hero-form{position:static;background:var(--primary);border-top:none;border-radius:var(--radius-lg);padding:22px 20px;box-shadow:0 12px 26px rgba(116,140,12,.22)}
/* show a clear white title; hide the sub, Service field and the form's own small trust line */
.dl-post-aside .hero-form .form-ttl{color:#fff;text-align:center;font-size:18px;margin:0 0 4px}
.dl-post-aside .hero-form .form-sub,
.dl-post-aside .hero-form .lf-trust,
.dl-post-aside .hero-form .fg:has(#lf-service){display:none}
.dl-post-aside .hero-form .fg:first-of-type{margin-top:14px}
/* labels are screen-reader-only; the placeholder is the visible label (a11y kept) */
.dl-post-aside .hero-form label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.dl-post-aside .hero-form input{background:#fff;border:1px solid #fff;color:var(--dark);font-size:15px;padding:13px 16px}
.dl-post-aside .hero-form input::placeholder{color:#6b7280}
.dl-post-aside .hero-form .btn-form{background:var(--black);color:#fff;font-size:14px;letter-spacing:.02em;white-space:nowrap;padding:14px}
.dl-post-aside .hero-form .btn-form:hover{background:#000}
/* sidebar social-proof blocks */
.dl-side-h{text-align:center;font-family:var(--font-display);font-weight:800;font-size:1.3rem;color:var(--dark);margin:0 0 16px}
/* sliders (testimonials + BIS audits) */
.dl-slider{position:relative;overflow:hidden;border-radius:var(--radius-md)}
.dl-slider-track{display:flex;transition:transform .5s var(--ease-out)}
.dl-slide{min-width:100%;box-sizing:border-box}
.dl-slide img{width:100%;display:block;border-radius:var(--radius-md)}
.dl-slide .dl-slide-photo{aspect-ratio:4/3;object-fit:cover;box-shadow:var(--shadow-sm)}
.dl-slider-dots{display:flex;justify-content:center;gap:7px;margin-top:12px}
.dl-slider-dots button{width:8px;height:8px;padding:0;border:none;border-radius:50%;background:var(--border-olive);cursor:pointer;transition:background .2s,transform .2s}
.dl-slider-dots button.active{background:var(--primary);transform:scale(1.25)}
/* client-logo marquee */
.dl-marquee{overflow:hidden;-webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.dl-marquee-track{display:flex;align-items:center;gap:14px;width:max-content;animation:dlLogoMarquee 24s linear infinite}
.dl-marquee:hover .dl-marquee-track{animation-play-state:paused}
@keyframes dlLogoMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.dl-side-logo{flex:0 0 auto;width:84px;height:54px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px}
.dl-side-logo img{max-width:100%;max-height:100%;object-fit:contain}
@media(prefers-reduced-motion:reduce){.dl-marquee-track{animation:none}}

/* ---- Article reading layout (single.php) ---- */
.dl-article h1{color:var(--dark)}
.entry-content{max-width:none;font-size:1.0625rem;line-height:1.75}
.entry-content>p{margin:0 0 var(--space-5)}
.entry-content p.lead{font-size:1.25rem;line-height:1.6;color:var(--dark);font-weight:500;margin-bottom:var(--space-6)}
.entry-content h2{margin-top:var(--space-7);margin-bottom:var(--space-4);color:var(--dark)}
.entry-content h3{margin-top:var(--space-6);margin-bottom:var(--space-3)}
.entry-content img{border-radius:var(--radius-md);margin-block:var(--space-4)}
/* links — readable underline in body copy */
.entry-content a{color:var(--primary);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:rgba(116,140,12,.4)}
.entry-content a:hover{color:var(--primary-dark);text-decoration-color:currentColor}
.entry-content strong{color:var(--dark);font-weight:700}
/* lists */
.entry-content ul,.entry-content ol{margin:0 0 var(--space-5);padding-left:1.4em}
.entry-content li{margin-bottom:var(--space-2)}
.entry-content li::marker{color:var(--primary)}
.entry-content ol li::marker{font-weight:700}
/* blockquote — olive accent callout */
.entry-content blockquote{margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);border-left:4px solid var(--primary);background:var(--green-bg);border-radius:0 var(--radius-md) var(--radius-md) 0;color:var(--dark)}
.entry-content blockquote p:last-child{margin-bottom:0}
/* inline code + code blocks */
.entry-content code{font-family:var(--font-mono);font-size:.875em;background:var(--grey);color:var(--primary-dark);padding:.12em .45em;border-radius:6px;border:1px solid var(--border)}
.entry-content pre{background:var(--black);color:#e6edf3;padding:var(--space-4);border-radius:var(--radius-md);overflow:auto;margin:0 0 var(--space-5)}
.entry-content pre code{background:none;border:none;color:inherit;padding:0}
/* tables — branded header, zebra rows */
.entry-content table{width:100%;border-collapse:collapse;margin:var(--space-5) 0;font-size:.95rem}
.entry-content th,.entry-content td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--border)}
.entry-content thead th{background:var(--primary);color:#fff;font-family:var(--font-display);font-weight:600;border-bottom:none}
.entry-content tbody tr:nth-child(even){background:var(--grey)}
.entry-content tbody td:first-child{font-weight:600;color:var(--dark)}
/* figure / caption / rule */
.entry-content figure{margin:var(--space-6) 0}
.entry-content figcaption{font-size:var(--fs-small);color:var(--text-light);text-align:center;margin-top:var(--space-3)}
.entry-content hr{border:none;border-top:1px solid var(--border);margin:var(--space-7) 0}
.dl-meta{display:flex;gap:18px;align-items:center;flex-wrap:wrap;color:var(--text-muted);font-size:14px;margin-bottom:var(--space-5)}
.dl-article-wrap .dl-breadcrumbs{color:var(--text-light)}
.dl-article-wrap .dl-breadcrumbs a{color:var(--text-muted)}
.dl-article-wrap .dl-breadcrumbs a:hover{color:var(--primary)}

/* author box — avatar left + name + bio (matches the current design) */
.dl-author{display:flex;gap:18px;align-items:flex-start;background:var(--grey);border:1px solid var(--border);border-radius:var(--radius-md);padding:22px 24px;margin-top:var(--space-7)}
.dl-author-av{flex-shrink:0}
.dl-author-av img{width:72px;height:72px;border-radius:50%;display:block;object-fit:cover}
.dl-author-text .nm{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--dark)}
.dl-author-text .bio{font-size:14px;line-height:1.6;color:var(--text-muted);margin:6px 0 0}

/* prev / next post navigation — minimal, centre divider (matches current design) */
.dl-postnav{display:grid;grid-template-columns:1fr 1fr;margin-top:var(--space-7);border-top:1px solid var(--border);padding-top:18px}
.dl-postnav-prev{border-right:1px solid var(--border);padding-right:20px}
.dl-postnav-next{padding-left:20px;text-align:right}
.dl-postnav a{display:flex;flex-direction:column;gap:4px;text-decoration:none}
.dl-postnav .dir{font-family:var(--font-display);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-light)}
.dl-postnav .ttl{font-size:14px;color:var(--dark);line-height:1.4}
.dl-postnav a:hover .ttl{color:var(--primary)}

/* ---- Article: header, featured image, TOC, related (matches the current blog) ---- */
.dl-article-wrap{margin-block:var(--space-7)}
.dl-article-head{max-width:960px;margin:0 0 var(--space-6)}
.dl-article-head h1{margin:12px 0 14px}
.dl-meta span{display:inline-flex;align-items:center;gap:6px}
.dl-meta i{color:var(--primary)}
.dl-featured{margin:0 0 var(--space-7)}
.dl-featured img{width:100%;border-radius:var(--radius-lg);display:block}
/* table of contents — collapsible box (matches current design) */
.dl-toc{display:block;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:var(--space-6)}
.dl-toc-h{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--dark);padding:18px 22px}
.dl-toc-h::-webkit-details-marker{display:none}
.dl-toc-h::after{content:"\f078";font-family:"Font Awesome 6 Free";font-weight:900;font-size:.85rem;color:var(--text-muted);transition:transform .2s}
.dl-toc[open] .dl-toc-h::after{transform:rotate(180deg)}
.dl-toc ul{list-style:disc;margin:0;padding:0 24px 20px 44px;display:flex;flex-direction:column;gap:11px}
.dl-toc li{color:var(--dark)}
.dl-toc li.lvl3{margin-left:18px;list-style:circle}
.dl-toc a{color:var(--dark);font-size:15px;line-height:1.45;text-decoration:none;transition:color .15s}
.dl-toc a:hover,.dl-toc a.active{color:var(--primary);text-decoration:underline}
.entry-content :is(h2,h3){scroll-margin-top:90px}
/* related posts — full-width, dark cards (matches current design) */
.dl-related{margin-block:var(--space-8) var(--space-7)}
.dl-related-h{text-align:center;font-family:var(--font-display);font-weight:800;font-size:clamp(22px,3vw,32px);color:var(--dark);margin-bottom:var(--space-6)}
.dl-related .dl-cards{grid-template-columns:repeat(3,1fr)}
@media(max-width:768px){.dl-related .dl-cards{grid-template-columns:1fr}}
.dl-related .post-card{background:var(--black);border-color:transparent}
.dl-related .post-card .post-card-img{aspect-ratio:2/1;background:#0b1121}
.dl-related .post-card-body{padding:16px 18px}
.dl-related .post-card h3{color:#fff;font-size:1rem}
.dl-related .post-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.post-card{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;text-decoration:none;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),border-color .2s}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent}
/* 2:1 to match the featured-image aspect; `contain` so the full graphic (which
   often contains text) is never cropped — letterboxed onto the tint if off-ratio. */
.post-card-img{display:block;aspect-ratio:2/1;background:var(--green-bg);overflow:hidden}
.post-card-img img{width:100%;height:100%;object-fit:contain;display:block}
.post-card-body{padding:18px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.post-card h3{font-family:var(--font-display);font-size:1.05rem;line-height:1.35;color:var(--dark);margin:0}
.post-card .more{margin-top:auto;color:var(--primary-dark);font-weight:600;font-size:14px}
@media (hover:none){.post-card:hover{transform:none}}

/* ---- Prose (full container width per brand: logo edge → form edge) ---- */
.prose{max-width:none}
.prose p{font-size:16px;line-height:1.75;color:var(--text-muted);margin:0 0 16px}
.prose>p:first-of-type{font-size:17px}

/* ---- Key-takeaways callout ---- */
.callout{background:var(--green-bg);border-left:4px solid var(--primary);border-radius:var(--radius-md);padding:24px 28px}
.callout h3{font-size:18px;margin:0 0 14px;color:var(--dark)}

/* ---- Check list ---- */
.check-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.check-list li{position:relative;padding-left:30px;color:var(--text-muted);line-height:1.6}
.check-list li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:0;top:3px;color:var(--primary);font-size:13px}
.check-list li strong{color:var(--dark);font-weight:600;font-family:var(--font-display)}
.check-list.cols{grid-template-columns:1fr}
@media(min-width:700px){.check-list.cols{grid-template-columns:1fr 1fr;gap:12px 32px}}

/* ---- Feature / benefit grid ---- */
.feature-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:24px}
.feature{background:#fff;border:1px solid var(--border-olive);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-sm);transition:transform 220ms var(--ease-out),box-shadow 220ms var(--ease-out)}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover-olive)}
@media (hover:none){.feature:hover{transform:none}}
.feature .fi{width:42px;height:42px;border-radius:var(--radius-sm);background:var(--green-bg);color:var(--primary);display:grid;place-items:center;font-size:17px;margin-bottom:14px}
.feature h3{font-size:16px;margin:0 0 8px;color:var(--dark)}
.feature p{font-size:14px;color:var(--text-muted);margin:0;line-height:1.6}

/* ---- Branded table ---- */
.dl-table{width:100%;border-collapse:collapse;border:1px solid var(--border-olive);border-radius:var(--radius-md);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm)}
.dl-table th{background:var(--primary);color:#fff;font-family:var(--font-display);font-weight:600;text-align:left;padding:12px 16px;font-size:14px}
.dl-table td{padding:11px 16px;border-top:1px solid var(--border-olive);color:var(--text-muted);font-size:15px}
.dl-table tr:nth-child(even) td{background:var(--green-bg)}
.dl-table td:first-child{font-family:var(--font-mono);font-weight:600;font-size:14px;letter-spacing:.01em;color:var(--primary-dark);white-space:nowrap}
@media(max-width:640px){.svc-body .dl-table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}
.svc-body .eyebrow{display:none}
.svc-body>section:nth-of-type(3n+1) .eyebrow{display:inline-block}

/* Inline technical code (IS numbers, etc.) */
.code{font-family:var(--font-mono);font-weight:600;font-size:.94em;letter-spacing:.01em;color:var(--primary-dark)}

/* ---- Inline CTA (mid-content, e.g. cost/quote prompt) ---- */
.inline-cta{position:relative;overflow:hidden;background:var(--black);color:#fff;border-radius:var(--radius-md);padding:22px 26px;margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.inline-cta::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 70% 120% at 100% 0%,rgba(116,140,12,.30),transparent 60%)}
.inline-cta .ic-text{position:relative;z-index:1;max-width:48ch}
.inline-cta .ic-text strong{color:#fff;font-family:var(--font-display)}
.inline-cta .ic-text span{display:block;color:rgba(255,255,255,.7);font-size:14px;margin-top:4px}
.inline-cta .btn{position:relative;z-index:1;flex-shrink:0}

/* ---- Two-column ---- */
.two-col{display:grid;gap:28px}
@media(min-width:860px){.two-col{grid-template-columns:1fr 1fr}}
.col-head{font-family:var(--font-display);font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.05em;font-size:13px;margin:0 0 16px;display:flex;align-items:center;gap:8px}

/* ---- Reveal on scroll ----
   Gated on html.reveal-on (added by JS only when motion is allowed). So with no JS,
   no IntersectionObserver, or reduced-motion, nothing is ever hidden — content stays
   fully visible and crawlable. */
.reveal{transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out)}
html.reveal-on .reveal{opacity:0;transform:translateY(24px)}
html.reveal-on .reveal.visible{opacity:1;transform:none}
/* optional staggered children (add .reveal-children to a grid/list) */
html.reveal-on .reveal-children>*{opacity:0;transform:translateY(20px);transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-out)}
html.reveal-on .reveal-children.visible>*{opacity:1;transform:none}
html.reveal-on .reveal-children.visible>:nth-child(2){transition-delay:70ms}
html.reveal-on .reveal-children.visible>:nth-child(3){transition-delay:140ms}
html.reveal-on .reveal-children.visible>:nth-child(4){transition-delay:210ms}
html.reveal-on .reveal-children.visible>:nth-child(5){transition-delay:280ms}
html.reveal-on .reveal-children.visible>:nth-child(6){transition-delay:350ms}
@media (prefers-reduced-motion:reduce){html.reveal-on .reveal,html.reveal-on .reveal-children>*{opacity:1!important;transform:none!important;transition:none!important}}

/* ============================================================
   Phase 4 — archives, search, 404, pagination  (brand canon)
   ============================================================ */

/* Light outline button for use on the dark hero */
.btn-outline-lt{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.4)}
.btn-outline-lt:hover{background:#fff;color:var(--primary);border-color:#fff;transform:translateY(-2px)}

/* --- Archive / search shared hero (slim dark header) --- */
.arc-hero{position:relative;overflow:hidden;background:var(--black);color:#fff;padding:clamp(32px,5vw,52px) 0}
.arc-hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 65% 80% at 0% 60%,rgba(116,140,12,.18),transparent 60%),radial-gradient(ellipse 45% 45% at 100% 5%,rgba(144,200,36,.07),transparent 50%)}
.arc-hero .container{position:relative;z-index:2}
.arc-hero h1{color:#fff;margin:10px 0 0;font-size:var(--fs-h2)}
.arc-hero h1 .hl{color:var(--accent)}
.arc-hero .arc-sub{color:rgba(255,255,255,.65);margin-top:12px;max-width:60ch;line-height:1.6}
.arc-hero .arc-count{color:rgba(255,255,255,.5);font-size:14px;margin-top:10px}

/* --- Post grid (archive/search/category) --- */
.arc-grid{display:grid;gap:var(--space-5);grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.arc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.arc-grid{grid-template-columns:1fr}}
.post-card .post-card-cat{font-family:var(--font-display);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--primary-dark)}
.post-card .post-card-excerpt{font-size:14px;line-height:1.6;color:var(--text-muted);margin:0}
.post-card .post-card-meta{margin-top:auto;font-size:12.5px;color:var(--text-muted);display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.post-card .post-card-meta i{color:var(--primary-dark);margin-right:4px}

/* --- Pagination --- */
.dl-pager{margin-top:var(--space-6,40px)}
.dl-pager ul.page-numbers{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;list-style:none;padding:0;margin:0;align-items:center}
.dl-pager li{margin:0;list-style:none}
.dl-pager li>.page-numbers,.dl-pager>.page-numbers{display:inline-flex;min-width:42px;height:42px;padding:0 14px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:600;font-size:14px;color:var(--dark);text-decoration:none;background:#fff;transition:background .15s,color .15s,border-color .15s}
.dl-pager a.page-numbers:hover{background:var(--green-bg);border-color:var(--border-olive);color:var(--primary-dark)}
.dl-pager .page-numbers.current{background:var(--primary);border-color:var(--primary);color:#fff}
.dl-pager .page-numbers.dots{border-color:transparent;background:transparent}

/* --- Search form (results page) --- */
.arc-search{display:flex;gap:0;max-width:560px;margin-top:18px;background:#fff;border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.arc-search input{flex:1;border:0;padding:14px 18px;font-size:15px;color:var(--dark);background:#fff}
.arc-search input:focus{outline:2px solid var(--accent);outline-offset:-2px}
.arc-search button{border-radius:0}

/* --- No results --- */
.no-results{text-align:center;max-width:560px;margin:0 auto;padding:24px 0}
.no-results .nr-ic{width:64px;height:64px;border-radius:50%;background:var(--green-bg);color:var(--primary);display:grid;place-items:center;font-size:24px;margin:0 auto 18px}
.no-results h2{margin-bottom:10px}
.no-results p{color:var(--text-muted);margin-bottom:20px}

/* --- 404 --- */
.e404-hero{padding:clamp(44px,6vw,72px) 0;text-align:center}
/* override the inherited .svc-hero 2-col grid — 404 content is a single centred column */
.e404-hero .container{display:block}
.e404-inner{max-width:680px;margin:0 auto}
.e404-code{font-family:var(--font-display);font-weight:800;font-size:clamp(76px,16vw,150px);line-height:.9;margin:6px 0 4px;background:linear-gradient(135deg,var(--accent),#b3e64c);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent)}
.e404-hero h1{color:#fff;margin:0 auto}
.e404-hero .hero-sub{margin:14px auto 26px}
.e404-search{display:flex;align-items:center;gap:8px;max-width:520px;margin:0 auto 22px;background:#fff;border-radius:var(--radius-sm);padding:6px 6px 6px 16px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.e404-search i{color:var(--text-light)}
.e404-search input{flex:1;border:0;padding:10px 6px;font-size:15px;color:var(--dark);background:transparent}
.e404-search input:focus{outline:none}
.e404-hero .hero-actions{justify-content:center}

/* link cards (404 popular) */
.link-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 18px;text-decoration:none;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),border-color .2s}
.link-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--border-olive)}
.link-card-ic{width:44px;height:44px;flex:0 0 auto;border-radius:12px;background:var(--green-bg);color:var(--primary);display:grid;place-items:center;font-size:18px}
.link-card-body{display:flex;flex-direction:column;min-width:0}
.link-card-title{font-family:var(--font-display);font-weight:700;color:var(--dark);font-size:15px;line-height:1.3}
.link-card-cat{font-size:12px;color:var(--text-muted);margin-top:2px}
.link-card-arrow{margin-left:auto;color:var(--primary);transition:transform .2s}
.link-card:hover .link-card-arrow{transform:translateX(4px)}
@media (hover:none){.link-card:hover,.post-card:hover{transform:none}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:2000;background:var(--primary);color:#fff;padding:10px 16px;font-family:var(--font-display);font-weight:600;font-size:14px;border-radius:0 0 var(--radius-sm) 0}
.skip-link:focus{left:0}

/* ============================================================
   Container width fix + service-body safety net (review WP-1/WP-2)
   ============================================================ */

/* Pin the theme container to canon width + gutter. Bootstrap (enqueued after base
   for the ported header) redefines bare .container, capping it at 1140px on
   1200-1399px laptops and forcing a 12px gutter. Higher specificity (html .container,
   0,1,1) beats Bootstrap's .container (0,1,0) regardless of load order. The ported
   header/footer don't use .container, so this only governs the new section templates. */
html .container{max-width:var(--container);padding-inline:var(--gutter)}

/* Safety net: loose (non-pattern) service-page content stays inside the canon container.
   The "Service body" pattern emits its own full-bleed <section class="sec"> blocks, so
   only NON-section element children of .svc-body are constrained; inert when the pattern
   is used (its top-level children are all <section>). */
.svc-body > :not(section){max-width:1320px;margin-inline:auto;padding-inline:var(--gutter)}
.svc-body > :not(section):first-child{padding-top:clamp(44px,8vw,80px)}

/* ============================================================
   Article design elevation (design-taste pass): reading craft,
   reading progress, TL;DR, E-E-A-T meta, inline CTA, rail polish.
   Appended last so it wins over earlier .dl-article rules.
   ============================================================ */

/* 1. Reading craft — larger measure-bound body, a lede, lime H2 tick */
.entry-content{font-size:18px;line-height:1.8;color:#283142}
.entry-content>p:first-of-type{font-size:1.18rem;line-height:1.7;color:var(--dark)}
.entry-content h2{border-top:1px solid var(--border);padding-top:.55em;margin-top:var(--space-7)}
.entry-content h2::before{content:"";display:block;width:38px;height:3px;background:var(--accent);border-radius:2px;margin-bottom:14px}

/* 2. Reading progress bar (top of viewport) */
.dl-progress{position:fixed;top:0;left:0;height:3px;width:100%;background:linear-gradient(90deg,var(--primary),var(--accent));z-index:80;transform:scaleX(0);transform-origin:left center}
@supports(animation-timeline:scroll()){
 .dl-progress{animation:dl-reading-progress linear both;animation-timeline:scroll(root block)}
 @keyframes dl-reading-progress{to{transform:scaleX(1)}}
}
@supports not (animation-timeline:scroll()){.dl-progress{display:none}}
@media(prefers-reduced-motion:reduce){.dl-progress{display:none}}

/* 3. Key-takeaways / TL;DR callout (answer-first, AEO-friendly) */
.dl-tldr{background:var(--green-bg);border:1px solid var(--border-olive);border-left:4px solid var(--primary);border-radius:0 12px 12px 0;padding:18px 22px;margin:0 0 28px}
.dl-tldr-h{font-family:var(--font-display);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--primary-dark);margin:0 0 10px;display:flex;align-items:center;gap:8px}
.dl-tldr ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:7px}
.dl-tldr li{color:var(--dark);font-size:15px;line-height:1.55}

/* 4. E-E-A-T meta — visible author + read time */
.dl-meta .by{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--dark)}
.dl-meta .by img{width:26px;height:26px;border-radius:50%;display:block}

/* 5. Auto inline mid-article CTA (injected by functions.php on single posts) */
.entry-content .dl-inline-cta{background:var(--black);color:#fff;border-radius:14px;padding:22px 26px;margin:34px 0;display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.dl-inline-cta .dl-ic-copy b{font-family:var(--font-display);font-weight:700;font-size:1.12rem;display:block;color:#fff}
.dl-inline-cta .dl-ic-copy span{color:rgba(255,255,255,.72);font-size:14px}
.dl-inline-cta .btn{background:var(--accent);color:var(--dark);flex-shrink:0}
.dl-inline-cta .btn:hover{background:var(--accent-dark);color:var(--dark)}

/* 6. Sidebar rail polish — frame testimonial cards, add a trust strip */
.dl-slide img{border:1px solid var(--border-olive);box-shadow:0 6px 18px rgba(116,140,12,.10)}
.dl-side-trust{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;color:var(--text-muted);margin-top:14px}
.dl-side-trust i{color:var(--primary)}

/* clickable author (meta + author box) */
.dl-meta .by a{color:var(--dark);text-decoration:none}
.dl-meta .by a:hover{color:var(--primary);text-decoration:underline}
.dl-author-av{display:block}
.dl-author-text .nm a{color:var(--dark);text-decoration:none}
.dl-author-text .nm a:hover{color:var(--primary)}
.dl-author-more{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-family:var(--font-display);font-weight:600;font-size:13px;color:var(--primary);text-decoration:none}
.dl-author-more:hover{color:var(--primary-dark)}
.dl-author-more i{transition:transform .2s}
.dl-author-more:hover i{transform:translateX(3px)}

/* end-of-article CTA band (dark, full width) */
.dl-article-cta{position:relative;overflow:hidden;background:var(--black);color:#fff;border-radius:20px;padding:clamp(26px,4vw,38px);margin:var(--space-7) 0}
.dl-article-cta::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 80% at 0% 50%,rgba(116,140,12,.22),transparent 60%),radial-gradient(ellipse 45% 45% at 100% 0%,rgba(144,200,36,.10),transparent 55%)}
.dl-article-cta-inner{position:relative;z-index:2;display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.dl-article-cta h2{font-family:var(--font-display);font-weight:800;font-size:clamp(20px,2.4vw,28px);color:#fff;margin:0 0 8px}
.dl-article-cta h2 .hl{color:var(--accent)}
.dl-article-cta p{color:rgba(255,255,255,.7);margin:0;font-size:15px;max-width:48ch}
.dl-article-cta-actions{display:flex;gap:12px;flex-wrap:wrap;flex-shrink:0}
/* never let a button label (e.g. the phone number) wrap to two lines */
.dl-article-cta .btn{white-space:nowrap}
/* tablet/narrow: copy stacks above actions; buttons grow but keep their content width */
@media(max-width:768px){
  .dl-article-cta-inner{flex-direction:column;align-items:stretch;gap:18px}
  .dl-article-cta-actions{width:100%}
  .dl-article-cta-actions .btn{flex:1 1 auto;min-width:max-content;justify-content:center}
}
/* phone-width: stack the two buttons full-width so the number always fits one line */
@media(max-width:480px){
  .dl-article-cta-actions{flex-direction:column}
  .dl-article-cta-actions .btn{width:100%}
}

/* FIX: the auto inline-CTA button is an <a> inside .entry-content, whose link styling
   (olive + underline) was overriding the button text → invisible on the lime button.
   Force dark text + no underline with higher specificity. */
.entry-content .dl-inline-cta .btn,
.entry-content .dl-inline-cta .btn:hover{color:#0b1121;text-decoration:none}
.entry-content .dl-inline-cta a{text-decoration:none}

/* FIX (site-wide): Bootstrap is enqueued AFTER the theme CSS for the ported header,
   and its base .btn resets background-color/color to transparent/#212529 — which blanked
   the theme button variants (invisible on dark bands like the end-CTA). Re-assert them
   with `html .x` (specificity 0,1,1) so they beat Bootstrap's `.btn` (0,1,0). */
html .btn-primary{background:var(--primary);color:#fff}
html .btn-accent{background:var(--accent);color:var(--dark)}
html .btn-white{background:#fff;color:var(--primary)}
html .btn-outline{background:transparent;color:var(--primary)}
html .btn-outline-lt{background:transparent;color:#fff}
html .btn-whatsapp{background:var(--whatsapp);color:#fff}

/* ============================================================
   Clients & Success Stories page (page-projects.php)
   ============================================================ */
/* hero-right "a few brands" card */
.cs-hero-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-lg);padding:24px}
.cs-hero-card-h{text-transform:uppercase;letter-spacing:.1em;font-size:12px;font-weight:600;color:var(--accent);margin:0 0 16px}
.cs-hero-logos{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cs-hero-logo{background:#fff;border-radius:9px;height:50px;display:flex;align-items:center;justify-content:center;padding:7px}
.cs-hero-logo img{max-width:100%;max-height:100%;object-fit:contain}
.cs-hero-card-f{color:rgba(255,255,255,.72);font-size:13px;line-height:1.6;margin:16px 0 0}

/* logo wall */
.logo-wall{margin-top:28px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(min-width:560px){.logo-wall{grid-template-columns:repeat(3,1fr)}}
@media(min-width:900px){.logo-wall{grid-template-columns:repeat(6,1fr)}}
.logo-cell{background:#fff;border:1px solid var(--border);border-radius:12px;height:96px;display:flex;align-items:center;justify-content:center;padding:18px;transition:box-shadow .2s var(--ease-out),transform .2s var(--ease-out),border-color .2s}
.logo-cell img{max-width:100%;max-height:100%;object-fit:contain;filter:grayscale(1);opacity:.72;transition:filter .25s,opacity .25s}
.logo-cell:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:var(--border-accent,#d8e8a0)}
.logo-cell:hover img{filter:grayscale(0);opacity:1}

/* case-study cards */
.case-grid{margin-top:28px;display:grid;grid-template-columns:1fr;gap:24px}
@media(min-width:760px){.case-grid{grid-template-columns:repeat(3,1fr)}}
.case-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-sm);transition:box-shadow .25s var(--ease-out),transform .25s var(--ease-out)}
.case-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.case-media{aspect-ratio:16/10;overflow:hidden;background:#eef2e0}
.case-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease-out)}
.case-card:hover .case-media img{transform:scale(1.05)}
.case-body{padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.case-tag{align-self:flex-start;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--primary);background:var(--green-bg,#F6FFD0);border:1px solid var(--border-accent,#d8e8a0);border-radius:999px;padding:5px 11px}
.case-body h3{font-size:1.2rem;margin:2px 0 0;color:var(--dark)}
.case-body p{margin:0;color:#4b5563;line-height:1.65;font-size:.95rem}
.case-out{margin-top:auto!important;display:flex;align-items:flex-start;gap:8px;font-weight:600;color:var(--primary)!important;padding-top:12px;border-top:1px dashed var(--border)}
.case-out i{color:var(--accent);margin-top:3px}

/* full client roster */
.roster{margin:26px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 24px}
@media(min-width:640px){.roster{grid-template-columns:repeat(3,1fr)}}
@media(min-width:980px){.roster{grid-template-columns:repeat(4,1fr)}}
.roster li{position:relative;padding-left:20px;color:#374151;font-size:.95rem;line-height:1.5}
.roster li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:2px;background:var(--accent)}

/* ---- Case-study featured block (page-projects.php, from projects-data) ---- */
.cs-feature{margin-top:28px;display:grid;grid-template-columns:1fr;gap:0;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
@media(min-width:860px){.cs-feature{grid-template-columns:1fr 320px}}
.cs-feature + .cs-feature{margin-top:22px}
.cs-feature-main{padding:30px 32px}
.cs-feature-top .case-tag{margin-bottom:14px}
.cs-feature-top h3{font-size:1.5rem;margin:0 0 8px;color:var(--dark)}
.cs-feature-meta{margin:0 0 4px;color:#6b7280;font-size:.92rem;display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cs-code{display:inline-block;font-family:var(--font-mono,monospace);font-size:.78rem;font-weight:600;color:var(--primary);background:var(--green-bg,#F6FFD0);border:1px solid var(--border-accent,#d8e8a0);border-radius:6px;padding:2px 8px}
.cs-story{margin-top:22px;display:grid;gap:18px}
.cs-story h4{margin:0 0 5px;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);font-weight:700}
.cs-story p{margin:0;color:#3a4250;line-height:1.65;font-size:.96rem}
.cs-feature-facts{background:linear-gradient(160deg,var(--green-bg,#F6FFD0),#fff);border-top:1px solid var(--border);padding:28px 26px;display:flex;flex-direction:column;gap:16px}
@media(min-width:860px){.cs-feature-facts{border-top:none;border-left:1px solid var(--border)}}
.cs-facts-h{margin:0;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:var(--primary);font-weight:700}
.cs-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cs-stat b{display:block;font-family:var(--font-display);font-weight:800;font-size:1.5rem;line-height:1;color:var(--primary)}
.cs-stat span{display:block;margin-top:4px;font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}
.cs-cert{margin:0;font-size:.8rem;color:#5b6472;display:flex;align-items:flex-start;gap:7px;line-height:1.45}
.cs-cert i{color:var(--primary);margin-top:2px}
.cs-cta{margin-top:auto;text-align:center}
.cs-more-note{margin:22px 0 0;text-align:center;color:#6b7280;font-size:.9rem;display:flex;align-items:center;justify-content:center;gap:8px}
.cs-more-note i{color:var(--accent)}

/* ============================================================
   Project / case-study DETAIL view (template-parts/project-detail.php)
   ============================================================ */
.pd-back-bar{background:var(--dark);border-bottom:1px solid rgba(255,255,255,.08)}
.pd-back-bar .container{padding-top:12px;padding-bottom:12px}
.pd-back{color:rgba(255,255,255,.8);font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:8px}
.pd-back:hover{color:var(--accent)}
.pd-back i{transition:transform .2s var(--ease-out)}
.pd-back:hover i{transform:translateX(-3px)}

/* hero extras */
.pd-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.pd-tag{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:rgba(255,255,255,.85);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:5px 12px}
.pd-tag i{color:var(--accent)}
.pd-tag-svc{background:var(--accent);color:var(--black);border-color:var(--accent)}
.pd-tag-svc i{color:var(--black)}
.pd-status-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:22px}
.pd-status{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:#fff;background:rgba(144,200,36,.18);border:1px solid rgba(144,200,36,.5);border-radius:8px;padding:8px 14px}
.pd-status i{color:var(--accent)}
.pd-certno{color:rgba(255,255,255,.7);font-size:.9rem}
.pd-certno strong{color:#fff;font-family:var(--font-mono,monospace)}
.pd-hero-badge{position:relative;width:128px;height:128px;border-radius:28px;background:linear-gradient(150deg,var(--primary),var(--accent));display:flex;align-items:center;justify-content:center;margin-left:auto;box-shadow:0 18px 40px rgba(116,140,12,.4)}
.pd-hero-badge>i{font-size:52px;color:#fff}
.pd-hero-check{position:absolute;right:-10px;bottom:-10px;width:42px;height:42px;border-radius:50%;background:#fff;color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:var(--shadow-md)}
@media(max-width:1023px){.pd-hero-badge{display:none}}

/* stats band */
.pd-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:-44px;position:relative;z-index:3}
@media(min-width:760px){.pd-stats{grid-template-columns:repeat(4,1fr)}}
.pd-stat{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:22px;text-align:center}
.pd-stat>i{font-size:20px;color:var(--accent);margin-bottom:8px}
.pd-stat b{display:block;font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:var(--primary);line-height:1.1}
.pd-stat span{display:block;margin-top:4px;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}

/* details: story + snapshot */
.pd-grid{display:grid;grid-template-columns:1fr;gap:36px}
@media(min-width:920px){.pd-grid{grid-template-columns:1fr 320px;align-items:start}}
.pd-story{display:grid;gap:22px}
.pd-step{display:flex;gap:18px;align-items:flex-start}
.pd-step-n{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:var(--green-bg,#F6FFD0);border:1px solid var(--border-accent,#d8e8a0);color:var(--primary);font-family:var(--font-display);font-weight:800;font-size:1.1rem;display:flex;align-items:center;justify-content:center}
.pd-step-win .pd-step-n{background:var(--primary);border-color:var(--primary);color:#fff}
.pd-step-b h2{font-size:1.2rem;margin:6px 0 6px;color:var(--dark)}
.pd-step-b p{margin:0;color:#3a4250;line-height:1.7}
.pd-snapshot{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px;position:sticky;top:24px}
.pd-snapshot h3{margin:0 0 14px;font-size:1.05rem;color:var(--dark)}
.pd-snapshot dl{margin:0;display:grid;gap:0}
.pd-snapshot dl>div{display:grid;grid-template-columns:96px 1fr;gap:10px;padding:9px 0;border-top:1px solid var(--border)}
.pd-snapshot dl>div:first-child{border-top:none}
.pd-snapshot dt{color:#8a93a2;font-size:.8rem;font-weight:600}
.pd-snapshot dd{margin:0;color:#283142;font-size:.86rem;font-weight:600}
.pd-snap-cta{margin-top:18px;width:100%;justify-content:center;text-align:center;font-size:.85rem}

/* testimonial */
.pd-quote-card{max-width:760px;margin:0 auto;text-align:center}
.pd-quote-mark{font-size:34px;color:var(--accent)}
.pd-quote-card blockquote{margin:16px 0 0;font-size:clamp(1.1rem,2.4vw,1.5rem);line-height:1.5;color:var(--dark);font-weight:500}
.pd-quote-by{margin:18px 0 0;color:#5b6472}
.pd-quote-by strong{color:var(--dark)}

/* related */
.pd-related{margin-top:26px;display:grid;grid-template-columns:1fr;gap:18px}
@media(min-width:760px){.pd-related{grid-template-columns:repeat(3,1fr)}}
.pd-rel-card{display:flex;flex-direction:column;gap:8px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;box-shadow:var(--shadow-sm);transition:box-shadow .25s var(--ease-out),transform .25s var(--ease-out)}
.pd-rel-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.pd-rel-cat{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--primary)}
.pd-rel-card h3{margin:0;font-size:1.05rem;color:var(--dark)}
.pd-rel-cta{margin-top:auto;color:var(--primary);font-weight:600;font-size:.85rem;display:inline-flex;align-items:center;gap:6px}
.pd-rel-card:hover .pd-rel-cta{color:var(--accent)}

/* ============================================================
   Services index (page-services.php)
   ============================================================ */
.svc-hero-jump{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.svc-hero-jump a{display:flex;align-items:center;gap:10px;color:rgba(255,255,255,.9);font-weight:600;padding:11px 14px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:rgba(255,255,255,.05);transition:background .2s,border-color .2s}
.svc-hero-jump a:hover{background:rgba(144,200,36,.16);border-color:rgba(144,200,36,.5);color:#fff}
.svc-hero-jump i{color:var(--accent);width:20px;text-align:center}
.hero-jump-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;padding:14px 18px;border:1px solid rgba(255,255,255,.18);border-radius:var(--radius-md);background:rgba(255,255,255,.07);color:#fff;font-family:var(--font-display);font-weight:700;cursor:pointer;list-style:none}
.hero-jump-disclosure>summary::-webkit-details-marker{display:none}
.hero-jump-disclosure>summary::after{content:'+';color:var(--accent);font-size:22px;line-height:1}
.hero-jump-disclosure[open]>summary::after{content:'\2212'}
.hero-jump-disclosure[open]>.cs-hero-card{margin-top:12px}
@media(min-width:769px){.hero-jump-disclosure>summary{display:none}.hero-jump-disclosure:not([open])>.cs-hero-card{display:block}.hero-jump-disclosure[open]>.cs-hero-card{margin-top:0}}

.svc-cat-grid{margin-top:30px;display:grid;grid-template-columns:1fr;gap:22px}
@media(min-width:640px){.svc-cat-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.svc-cat-grid{grid-template-columns:repeat(3,1fr)}}
.svc-cat-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px;transition:box-shadow .25s var(--ease-out),transform .25s var(--ease-out)}
.svc-cat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}
.svc-cat-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:12px;border-bottom:1px solid var(--border)}
.svc-cat-ic{flex:0 0 auto;width:42px;height:42px;border-radius:11px;background:var(--green-bg,#F6FFD0);border:1px solid var(--border-accent,#d8e8a0);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:17px}
.svc-cat-head h3{margin:0;font-size:1.08rem;color:var(--dark)}
.svc-cat-links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.svc-cat-links a{display:block;padding:7px 0 7px 18px;position:relative;color:#374151;font-size:.94rem;line-height:1.4;transition:color .15s,padding .15s}
.svc-cat-links a::before{content:"";position:absolute;left:0;top:.95em;width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.55;transition:opacity .15s,transform .15s}
.svc-cat-links a:hover{color:var(--primary);padding-left:22px}
.svc-cat-links a:hover::before{opacity:1;transform:scale(1.2)}

/* ---- Generic content page (page.php): slim hero + narrow prose ---- */
.svc-hero-slim .container{display:block}
.svc-hero-slim{padding:clamp(40px,5vw,64px) 0}
.container-narrow{max-width:840px}
.entry-content.prose>h2{margin-top:1.8em}
.entry-content.prose>h3{margin-top:1.5em}

/* ============================================================
   Home page (front-page.php)
   ============================================================ */
.home-svc-grid{margin-top:30px;display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:600px){.home-svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.home-svc-grid{grid-template-columns:repeat(4,1fr)}}
.home-svc-card{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px;transition:box-shadow .25s var(--ease-out),transform .25s var(--ease-out)}
.home-svc-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.home-svc-ic{width:46px;height:46px;border-radius:12px;background:var(--green-bg,#F6FFD0);border:1px solid var(--border-accent,#d8e8a0);display:flex;align-items:center;justify-content:center;color:var(--primary);font-size:19px}
.home-svc-card h3{margin:4px 0 0;font-size:1.08rem;color:var(--dark)}
.home-svc-card p{margin:0;color:#5b6472;font-size:.92rem;line-height:1.55;flex:1}
.home-svc-go{margin-top:6px;color:var(--primary);font-weight:600;font-size:.88rem;display:inline-flex;align-items:center;gap:7px}
.home-svc-card:hover .home-svc-go{color:var(--accent)}
.home-svc-go i{transition:transform .2s var(--ease-out)}
.home-svc-card:hover .home-svc-go i{transform:translateX(4px)}

.hm-vid-grid{margin-top:30px;display:grid;grid-template-columns:1fr;gap:24px}
@media(min-width:760px){.hm-vid-grid{grid-template-columns:repeat(3,1fr)}}
.hm-vid-card{display:block;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .25s var(--ease-out),transform .25s var(--ease-out)}
.hm-vid-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.hm-vid-thumb{position:relative;display:block;aspect-ratio:16/9;background:#0b1121;overflow:hidden}
.hm-vid-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s var(--ease-out)}
.hm-vid-card:hover .hm-vid-thumb img{transform:scale(1.05)}
.hm-vid-play{position:absolute;inset:0;margin:auto;width:58px;height:58px;border-radius:50%;background:rgba(144,200,36,.92);color:var(--black);display:flex;align-items:center;justify-content:center;font-size:20px;box-shadow:0 8px 22px rgba(0,0,0,.3)}
.hm-vid-card h3{margin:0;padding:18px 20px;font-size:1.02rem;color:var(--dark)}


/* ---- Home: Request a Callback section ---- */
.callback-grid{display:grid;grid-template-columns:1fr;gap:32px;align-items:center}
@media(min-width:900px){.callback-grid{grid-template-columns:1fr 430px}}
.callback-copy .sec-h2{margin-top:8px}
.callback-copy p{color:#3a4250;line-height:1.7}
.callback-form .hero-form{position:static}

/* ============================================================
   Thank-you / confirmation page (template-parts/thank-you.php)
   ============================================================ */
.ty-body{text-align:center;padding-top:72px}
.ty-confirm-msg{font-size:1.16rem;line-height:1.65;color:var(--text);max-width:600px;margin:8px auto 6px}
.ty-confirm-msg strong{color:var(--primary)}
.ty-check-lg{display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:50%;background:#eaf4d3;color:var(--primary);margin:0 auto 6px;box-shadow:0 8px 22px rgba(116,140,12,.20)}
.ty-next-ttl{margin:18px 0 24px}
.ty-steps{list-style:none;margin:0 auto 30px;padding:0;max-width:640px;text-align:left;display:grid;gap:14px}
.ty-steps li{display:flex;gap:16px;align-items:flex-start;background:var(--surface);border:1px solid rgba(116,140,12,.16);border-radius:16px;padding:18px 20px}
.ty-step-n{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;margin-top:2px}
.ty-steps strong{display:block;margin-bottom:3px;color:var(--dark)}
.ty-steps p{margin:0;color:var(--text-muted);font-size:.96rem;line-height:1.55}
.ty-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:16px}
.ty-urgent{color:var(--text-muted);font-size:.96rem;margin:0}
.ty-urgent a{color:var(--primary);font-weight:600}
@media(max-width:560px){.ty-actions{flex-direction:column}.ty-actions .btn{width:100%}}

/* Inline lead-form success card — replaces .hero-form after AJAX submit.
   Explicit white card + colours so it stays visible on the dark service hero
   (the .hero-form card that normally colours .form-ttl is removed on replace). */
.lead-thankyou{background:#fff;border-radius:var(--radius-md);border-top:4px solid var(--primary);box-shadow:var(--shadow-form);padding:34px 24px;text-align:center}
.lead-thankyou-check{display:inline-flex;align-items:center;justify-content:center;width:66px;height:66px;border-radius:50%;background:#eaf4d3;color:var(--primary);margin-bottom:14px}
.lead-thankyou-ttl{font-family:var(--font-display);font-weight:700;font-size:24px;color:var(--dark);margin:0 0 8px}
.lead-thankyou-msg{font-size:15px;color:var(--text-muted);margin:0 auto;max-width:340px;line-height:1.6}
.dl-post-aside .lead-thankyou{border-radius:var(--radius-lg)}
