/*
Theme Name: Rolling Garage
Author: Callout Digital
Description: Custom theme for The Rolling Garage Mobile Mechanic Service.
Version: 1.0.0
Requires at least: 6.0
Text Domain: rolling-garage
*/
:root{--rg-teal:#1FA38A;--rg-green:#0B7462;--rg-green-deep:#084F43;--rg-green-tint:#D6EFE8;--rg-ink:#141918;--rg-graphite:#1C2321;--rg-steel:#46514D;--rg-concrete:#E6E9E3;--rg-ground:#F6F7F3;--rg-line:#C8CEC6;--rg-white:#FFFFFF;--rg-amber:#F2A900;--rg-amber-deep:#C98A00;--rg-display:"Overpass","Arial Narrow",Arial,sans-serif;--rg-body:"Public Sans","Segoe UI",Roboto,Helvetica,Arial,sans-serif;--rg-mono:"Overpass Mono",ui-monospace,Menlo,Consolas,monospace;--rg-wrap:1180px;--rg-gutter:clamp(16px,4vw,32px)}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--rg-ground);color:var(--rg-ink);font-family:var(--rg-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
.rg *,.rg *::before,.rg *::after{box-sizing:border-box}
.rg{background:var(--rg-ground);color:var(--rg-ink)}
:where(.rg) a{color:inherit}
.rg :focus-visible{outline:3px solid var(--rg-amber);outline-offset:3px;border-radius:4px}
.rg-wrap{max-width:var(--rg-wrap);margin-inline:auto;padding-inline:var(--rg-gutter)}
.rg h1,.rg h2,.rg h3{font-family:var(--rg-display);line-height:1.02;letter-spacing:-.01em;margin:0;text-wrap:balance}
.rg h2{font-size:clamp(2rem,4.4vw,3.1rem);font-weight:900;text-transform:uppercase}
.rg h3{font-size:1.25rem;font-weight:800;text-transform:uppercase;letter-spacing:.01em}
.rg p{margin:0;max-width:65ch}
.rg-eyebrow{font-family:var(--rg-mono);font-size:.78rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--rg-green)}
.rg-section{padding-block:clamp(56px,8vw,104px)}
.rg-section-head{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,48px)}
.rg-section-head p{color:var(--rg-steel);font-size:1.08rem}
.rg-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:8px;font-family:var(--rg-display);font-weight:800;font-size:1.05rem;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;border:2px solid transparent;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.rg-btn svg{width:20px;height:20px;flex:none}
.rg-btn-amber{background:var(--rg-amber);color:var(--rg-ink)}
.rg-btn-amber:hover{background:var(--rg-amber-deep)}
.rg-btn-ghost{border-color:rgba(255,255,255,.7);color:var(--rg-white)}
.rg-btn-ghost:hover{background:var(--rg-white);color:var(--rg-green-deep)}
.rg-btn-ink{background:var(--rg-ink);color:var(--rg-white)}
.rg-btn-ink:hover{background:var(--rg-green)}
.rg-btn-outline{border-color:var(--rg-ink);color:var(--rg-ink)}
.rg-btn-outline:hover{background:var(--rg-ink);color:var(--rg-white)}
/* header */
.rg-header{position:sticky;top:0;z-index:40;background:rgba(246,247,243,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--rg-line)}
.rg-header .rg-wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}
.rg-brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.rg-brand svg{width:42px;height:42px;flex:none}
.rg-brand-text{display:grid;line-height:1}
.rg-brand-name{font-family:var(--rg-display);font-weight:900;font-size:1.28rem;letter-spacing:.02em;text-transform:uppercase}
.rg-brand-sub{font-family:var(--rg-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--rg-steel);margin-top:5px}
.rg-nav{display:flex;align-items:center;gap:26px}
.rg-nav a{font-weight:600;font-size:.94rem;text-decoration:none;color:var(--rg-steel)}
.rg-nav a:hover{color:var(--rg-green)}
.rg-nav .rg-btn{min-height:44px;padding:0 18px;font-size:.95rem}
/* hero: guide-sign panel */
.rg-hero{padding-block:clamp(18px,3vw,32px) clamp(40px,6vw,72px)}
.rg-sign{position:relative;background:var(--rg-teal);color:var(--rg-ink);border-radius:22px;padding:clamp(10px,1.4vw,14px)}
.rg-sign-inner{border:3px solid rgba(255,255,255,.92);border-radius:14px;padding:clamp(28px,5vw,64px);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:center}
.rg-hero .rg-eyebrow{color:var(--rg-ink)}
.rg-hero h1{display:grid;gap:14px;margin-top:18px}
.rg-h1-kicker{font-size:clamp(1.05rem,1.8vw,1.35rem);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--rg-ink)}
.rg-h1-main{font-size:clamp(2.9rem,7.4vw,5.6rem);font-weight:900;text-transform:uppercase;line-height:.92;letter-spacing:-.015em}
.rg-hero-lead{margin-top:24px;font-size:1.12rem;color:var(--rg-ink)}
.rg-hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.rg-hero-note{margin-top:18px;font-family:var(--rg-mono);font-size:.8rem;letter-spacing:.06em;color:var(--rg-ink)}
.rg-scan{background:var(--rg-graphite);color:#D6DDD9;border-radius:12px;font-family:var(--rg-mono);font-size:.86rem;box-shadow:0 18px 40px rgba(0,0,0,.28);overflow:hidden}
.rg-scan-top{display:flex;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid #313B38;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#93A09A}
.rg-scan-top b{color:var(--rg-amber);font-weight:600}
.rg-scan ul{list-style:none;margin:0;padding:10px 18px}
.rg-scan li{display:grid;grid-template-columns:4.6rem 1fr;gap:12px;padding:9px 0;border-bottom:1px dashed #2E3835}
.rg-scan li:last-child{border-bottom:0}
.rg-code{color:var(--rg-amber);font-weight:600}
.rg-scan-foot{display:flex;align-items:center;gap:10px;padding:14px 18px;background:#161C1A;color:var(--rg-white);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}
.rg-dot{width:9px;height:9px;border-radius:50%;background:var(--rg-teal);flex:none;box-shadow:0 0 0 4px rgba(31,163,138,.25)}
/* coverage route */
.rg-route{background:var(--rg-white);border:1px solid var(--rg-line);border-radius:14px;padding:26px clamp(18px,3vw,32px) 24px}
.rg-route-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:10px 24px;margin-bottom:18px}
.rg-route-head h2{font-size:clamp(1.5rem,3vw,2rem)}
.rg-route-head p{color:var(--rg-steel);font-size:.98rem}
.rg-route-scroll{overflow-x:auto;padding-bottom:6px}
.rg-route-grid{min-width:780px;display:grid;grid-template-columns:repeat(9,1fr);row-gap:10px}
.rg-hwy{font-family:var(--rg-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rg-green);border-bottom:2px solid var(--rg-green);padding-bottom:6px;text-align:center}
.rg-hwy-1{grid-column:1/7;margin-right:6px}
.rg-hwy-99{grid-column:7/10;margin-left:6px}
.rg-stop{position:relative;display:grid;justify-items:center;gap:10px;padding-top:4px;text-align:center}
.rg-stop::before{content:"";position:absolute;top:13px;left:0;right:0;height:4px;background:var(--rg-ink)}
.rg-stop-first::before{left:50%}
.rg-stop-last::before{right:50%}
.rg-stop i{position:relative;width:22px;height:22px;border-radius:50%;background:var(--rg-ground);border:4px solid var(--rg-ink)}
.rg-stop span{font-weight:700;font-size:.9rem;line-height:1.2}
.rg-stop small{display:block;font-family:var(--rg-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rg-green);margin-top:3px;font-weight:600}
.rg-stop-home i{background:var(--rg-amber);width:26px;height:26px;margin-top:-2px}
.rg-also{margin-top:18px;padding-top:16px;border-top:1px solid var(--rg-line);font-size:.95rem;color:var(--rg-steel);max-width:none}
.rg-also b{color:var(--rg-ink)}
/* services */
.rg-services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.rg-svc{background:var(--rg-white);border:1px solid var(--rg-line);border-radius:14px;padding:28px 26px;display:grid;align-content:start;gap:16px}
.rg-svc-label{font-family:var(--rg-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rg-green);font-weight:600}
.rg-svc ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.rg-svc li{position:relative;padding-left:20px;line-height:1.4}
.rg-svc li::before{content:"";position:absolute;left:0;top:.5em;width:9px;height:9px;border:2px solid var(--rg-green);border-radius:2px;transform:rotate(45deg)}
.rg-svc-core{grid-column:span 2;background:var(--rg-graphite);color:#E4EAE6;border-color:var(--rg-graphite)}
.rg-svc-core .rg-svc-label{color:var(--rg-amber)}
.rg-svc-core h3{color:var(--rg-white);font-size:clamp(1.5rem,2.6vw,2rem)}
.rg-svc-core p{color:#B9C4BF}
.rg-svc-core ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px}
.rg-svc-core li::before{border-color:var(--rg-amber)}
.rg-focus-note{margin-top:22px;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:16px 20px;border-radius:10px;background:var(--rg-green-tint);color:var(--rg-green-deep);font-weight:600}
.rg-focus-note b{font-family:var(--rg-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
/* vehicles band */
.rg-band{background:var(--rg-ink);color:var(--rg-white)}
.rg-band .rg-wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(24px,4vw,56px);align-items:center;padding-block:clamp(40px,6vw,64px)}
.rg-band .rg-eyebrow{color:var(--rg-amber)}
.rg-band h2{margin-top:10px;font-size:clamp(1.8rem,3.6vw,2.6rem)}
.rg-chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}
.rg-chips li{font-family:var(--rg-display);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:1rem;padding:10px 16px;border:2px solid #3A4542;border-radius:8px}
.rg-chips li:first-child{border-color:var(--rg-amber);color:var(--rg-amber)}
/* commercial */
.rg-biz{background:var(--rg-green-tint)}
.rg-biz-wrap{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,64px);align-items:start}
.rg-biz-head{display:grid;gap:14px}
.rg-biz-head p{color:var(--rg-steel);font-size:1.08rem}
.rg-biz-head .rg-btn{justify-self:start;margin-top:10px}
.rg-biz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.rg-biz-item{background:var(--rg-ground);border-radius:12px;padding:24px;display:grid;align-content:start;gap:10px}
.rg-biz-item p{color:var(--rg-steel);font-size:.98rem}
/* why */
.rg-why-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,36px)}
.rg-why{display:grid;align-content:start;gap:12px;padding-top:20px;border-top:4px solid var(--rg-ink)}
.rg-why p{color:var(--rg-steel);font-size:.98rem}
.rg-why a{color:var(--rg-green);font-weight:600}
/* reviews */
.rg-rev-feature{margin:0 0 18px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(14px,3vw,28px);align-items:start;padding:clamp(26px,4vw,48px);background:var(--rg-teal);color:var(--rg-ink);border-radius:14px}
.rg-rev-mark{font-family:var(--rg-display);font-weight:900;font-size:clamp(4rem,8vw,6.5rem);line-height:.8}
.rg-rev-feature blockquote{margin:0;font-family:var(--rg-display);font-weight:800;font-size:clamp(1.25rem,2.3vw,1.75rem);line-height:1.28;max-width:48ch}
.rg-rev-feature figcaption{margin-top:18px;font-family:var(--rg-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.rg-rev-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.rg-rev{margin:0;background:var(--rg-white);border:1px solid var(--rg-line);border-radius:12px;padding:24px;display:grid;grid-template-rows:1fr auto;gap:16px}
.rg-rev blockquote{margin:0;font-size:1rem;line-height:1.55}
.rg-rev figcaption{padding-top:14px;border-top:1px dashed var(--rg-line);font-family:var(--rg-mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rg-green);font-weight:600}
.rg-rev-note{margin-top:16px;font-size:.84rem;color:var(--rg-steel)}
/* steps */
.rg-steps-sec{background:var(--rg-concrete)}
.rg-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;margin:0;padding:0;counter-reset:rg-step}
.rg-steps li{counter-increment:rg-step;display:grid;align-content:start;gap:10px;padding:26px;background:var(--rg-ground);border-radius:14px}
.rg-steps li::before{content:"STEP " counter(rg-step);font-family:var(--rg-mono);font-size:.72rem;letter-spacing:.16em;color:var(--rg-green);font-weight:600}
.rg-steps p{color:var(--rg-steel);font-size:.98rem}
/* faq */
.rg-faq-wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,64px);align-items:start}
.rg-faq details{border-bottom:1px solid var(--rg-line)}
.rg-faq details:first-child{border-top:1px solid var(--rg-line)}
.rg-faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-family:var(--rg-display);font-weight:800;font-size:1.12rem;line-height:1.25}
.rg-faq summary::-webkit-details-marker{display:none}
.rg-faq summary::after{content:"+";font-family:var(--rg-mono);font-size:1.4rem;color:var(--rg-green);flex:none;transition:transform .2s ease}
.rg-faq details[open] summary::after{transform:rotate(45deg)}
.rg-faq details p{padding-bottom:20px;color:var(--rg-steel)}
/* quote */
.rg-quote-sec{background:var(--rg-green);color:var(--rg-white)}
.rg-quote-wrap{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,5vw,64px);align-items:start}
.rg-quote-sec .rg-eyebrow{color:var(--rg-green-tint)}
.rg-quote-sec h2{margin-top:12px}
.rg-quote-copy p{margin-top:18px;color:rgba(255,255,255,.88)}
.rg-direct{margin-top:28px;display:grid;gap:12px}
.rg-direct a.rg-phone{font-family:var(--rg-display);font-weight:900;font-size:clamp(2rem,4vw,2.8rem);text-decoration:none;letter-spacing:.01em;line-height:1}
.rg-direct span{font-family:var(--rg-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--rg-green-tint)}
.rg-direct-btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.rg-form{background:var(--rg-ground);color:var(--rg-ink);border-radius:14px;padding:clamp(22px,3vw,34px)}
.rg-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.rg-form .wpcf7-form-control-wrap{display:block}
.rg-form .wpcf7-not-valid-tip{font-size:.84rem;color:#B42318;margin-top:4px}
.rg-form .wpcf7-response-output{margin:16px 0 0!important;padding:12px 14px!important;border-radius:8px;font-weight:600}
.rg-form .wpcf7-spinner{display:block;margin:12px auto 0}
.rg-form input[type=submit]{cursor:pointer}
.rg-field{display:grid;gap:6px}
.rg-field-full{grid-column:1/-1}
.rg-field label{font-weight:600;font-size:.9rem}
.rg-field input,.rg-field select,.rg-field textarea{width:100%;font:inherit;font-size:1rem;color:var(--rg-ink);background:var(--rg-white);border:1.5px solid var(--rg-line);border-radius:8px;padding:12px 14px;min-height:50px}
.rg-field textarea{min-height:120px;resize:vertical}
.rg-field input:focus,.rg-field select:focus,.rg-field textarea:focus{outline:none;border-color:var(--rg-green);box-shadow:0 0 0 3px rgba(11,116,98,.2)}
.rg-form-grid .rg-btn{width:100%}
.rg-form-fine{grid-column:1/-1;font-size:.84rem;color:var(--rg-steel)}
/* footer */
.rg-footer{background:var(--rg-ink);color:#B9C4BF;padding-block:48px 40px;font-size:.94rem}
.rg-footer .rg-wrap{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr));gap:32px}
.rg-footer .rg-brand-name{color:var(--rg-white)}
.rg-footer .rg-brand-sub{color:#8D9A94}
.rg-footer h3{color:var(--rg-white);font-size:.95rem;margin-bottom:12px}
.rg-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.rg-footer a{text-decoration:none}
.rg-footer a:hover{color:var(--rg-amber)}
.rg-footer-base{grid-column:1/-1;border-top:1px solid #2C3533;padding-top:22px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:.84rem;color:#8D9A94}
/* mobile call bar */
.rg-callbar{display:none}
@media (max-width:960px){.rg-sign-inner{grid-template-columns:1fr}.rg-scan{max-width:520px}.rg-services-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rg-why-grid,.rg-rev-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rg-band .rg-wrap,.rg-faq-wrap,.rg-quote-wrap,.rg-biz-wrap{grid-template-columns:1fr}.rg-nav a:not(.rg-btn){display:none}}
@media (max-width:720px){body{padding-bottom:72px}.rg-services-grid,.rg-steps,.rg-why-grid,.rg-biz-grid,.rg-rev-grid,.rg-rev-feature{grid-template-columns:1fr}.rg-biz-head .rg-btn{justify-self:stretch}.rg-svc-core{grid-column:auto}.rg-svc-core ul{grid-template-columns:1fr}.rg-form-grid{grid-template-columns:1fr}.rg-footer .rg-wrap{grid-template-columns:1fr}.rg-nav{display:none}.rg-brand-name{font-size:1.1rem}.rg-sign{border-radius:16px}.rg-sign-inner{border-radius:10px}.rg-callbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--rg-ink);border-top:1px solid #2C3533;padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:10px}.rg-callbar .rg-btn{min-height:48px;padding:0 12px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rg *{transition:none!important;animation:none!important}}
/* legal pages */
.rg-legal{max-width:780px;margin-inline:auto;padding-inline:var(--rg-gutter);padding-block:clamp(40px,6vw,72px)}
.rg-legal h1{font-size:clamp(2rem,4.4vw,3rem);font-weight:900;text-transform:uppercase;margin-bottom:24px}
.rg-legal h2{font-size:1.4rem;margin:32px 0 10px}
.rg-legal p,.rg-legal li{color:var(--rg-steel);max-width:none}
.rg-legal p{margin:0 0 14px}
.rg-legal a{color:var(--rg-green);font-weight:600}
.admin-bar .rg-header{top:32px}
@media (max-width:782px){.admin-bar .rg-header{top:46px}}
