/* ============================================================
   Let's Talk Dirt, Inc. — WordPress theme main stylesheet
   ============================================================ */

/* ---------- CSS Variables ---------- */
:root {
    --ltd-bg:            #F5F0E8;
    --ltd-bg-alt:        #EFE9DE;
    --ltd-text:          #1F1F1F;
    --ltd-muted:         #555;
    --ltd-accent:        #E23A2E;
    --ltd-accent-dark:   #B02418;
    --ltd-blue:          #4FA3D1;
    --ltd-blue-dark:     #2E6E96;
    --ltd-dark:          #171717;
    --ltd-border:        #D9D2C4;
    --ltd-container:     1200px;
    --ltd-container-wide:1400px;
    --ltd-serif:         'Merriweather', Georgia, 'Times New Roman', serif;
    --ltd-sans:          'Cabin', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --ltd-radius:        4px;
    --ltd-shadow:        0 8px 24px rgba(0,0,0,0.08);
}

/* ---------- Reset & base ---------- */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--ltd-sans);
    color: var(--ltd-text);
    background: var(--ltd-bg);
    line-height: 1.65;
    font-size: 16px;
    -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ltd-blue-dark); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--ltd-accent); }
p { margin: 0 0 1em; }
h1,h2,h3,h4,h5,h6 { font-family: var(--ltd-serif); color: var(--ltd-dark); margin: 0 0 .5em; line-height: 1.2; font-weight: 700; }
h1 { font-size: clamp(2.2rem, 5vw, 3.75rem); }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.4rem); }
h3 { font-size: clamp(1.35rem, 2.5vw, 1.75rem); }
h4 { font-size: 1.15rem; }
h5 { font-size: 1rem; font-weight: 600; }

.screen-reader-text { position: absolute; left: -9999px; width:1px; height:1px; overflow:hidden; }
.skip-link:focus { position: fixed; top:0; left:0; background:#000; color:#fff; padding: 8px 16px; z-index: 999; }

/* ---------- Container ---------- */
.ltd-container { max-width: var(--ltd-container); margin: 0 auto; padding: 0 20px; }
.ltd-container-wide { max-width: var(--ltd-container-wide); }

/* ---------- Top bar (BLACK) ---------- */
.ltd-topbar {
    background: #0d0d0d;
    color: #fff;
    font-size: .95rem;
    padding: 10px 0;
    text-align: center;
}
.ltd-topbar-inner { color: #fff; }
.ltd-topbar-location { color: #fff; }
.ltd-topbar-sep { margin: 0 10px; color: #666; }
.ltd-topbar-phone { color: #fff; }
.ltd-topbar-phone a { color: var(--ltd-accent); font-weight: 700; }
.ltd-topbar-phone a:hover { color: #ff6b60; }

/* ---------- Main header ---------- */
.ltd-header {
    background: var(--ltd-bg);
    padding: 14px 0;
    border-bottom: 1px solid var(--ltd-border);
    position: sticky;
    top: 0;
    z-index: 100;
}
.ltd-header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}
.ltd-branding img,
.custom-logo,
.ltd-default-logo { max-height: 80px; width: auto; display: block; }
.ltd-branding-link { display: inline-block; text-decoration: none; }
.ltd-site-title-link { text-decoration: none; }
.ltd-site-title { font-family: var(--ltd-serif); font-size: 1.6rem; font-weight: 700; color: var(--ltd-dark); }

/* Menu inside rounded pill container */
.ltd-nav-pill {
    background: var(--ltd-bg-alt);
    border-radius: 999px;
    padding: 6px;
    display: inline-block;
}
.ltd-nav .ltd-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    gap: 4px;
}
.ltd-nav .ltd-menu li { position: relative; }
.ltd-nav .ltd-menu a {
    display: block;
    padding: 10px 20px;
    color: var(--ltd-text);
    font-weight: 600;
    font-size: .95rem;
    border-radius: 999px;
    transition: background .2s ease, color .2s ease;
}
.ltd-nav .ltd-menu li.current-menu-item > a,
.ltd-nav .ltd-menu a:hover {
    background: #fff;
    color: var(--ltd-dark);
    box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.ltd-nav .ltd-menu .sub-menu {
    position: absolute;
    top: 100%;
    left: 0;
    list-style: none;
    background: #fff;
    box-shadow: var(--ltd-shadow);
    min-width: 220px;
    padding: 8px 0;
    margin: 6px 0 0;
    display: none;
    z-index: 200;
    border-radius: 8px;
}
.ltd-nav .ltd-menu li:hover > .sub-menu,
.ltd-nav .ltd-menu li:focus-within > .sub-menu { display: block; }
.ltd-nav .ltd-menu .sub-menu a { padding: 10px 18px; border-radius: 0; color: var(--ltd-text); }
.ltd-nav .ltd-menu .sub-menu a:hover { background: var(--ltd-bg-alt); color: var(--ltd-dark); box-shadow: none; }

/* Hamburger */
.ltd-nav-toggle { display: none; background: transparent; border: 0; width: 42px; height: 42px; cursor: pointer; padding: 0; }
.ltd-hamburger, .ltd-hamburger::before, .ltd-hamburger::after {
    display: block; background: var(--ltd-dark); height: 2px; width: 26px; position: relative; transition: transform .2s ease;
}
.ltd-hamburger::before, .ltd-hamburger::after { content: ''; position: absolute; left: 0; }
.ltd-hamburger::before { top: -8px; }
.ltd-hamburger::after  { top:  8px; }

/* ---------- Hero ---------- */
.ltd-hero {
    position: relative;
    min-height: 620px;
    background-image: url('../images/hero-kitchen.jpg');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    color: var(--ltd-dark);
    overflow: hidden;
    padding-bottom: 100px;
}
.ltd-hero-overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(245,240,232,.35) 0%, rgba(245,240,232,.65) 100%);
}
.ltd-hero-inner { position: relative; z-index: 2; padding: 100px 20px; max-width: 900px; }
.ltd-hero-title { font-size: clamp(2.6rem, 6vw, 4.2rem); margin-bottom: .3em; color: var(--ltd-dark); }
.ltd-hero-subtitle { font-family: var(--ltd-serif); font-weight: 600; color: var(--ltd-dark); margin-bottom: .4em; }
.ltd-hero-tagline { text-transform: uppercase; letter-spacing: .04em; color: var(--ltd-dark); font-weight: 700; margin-bottom: 2em; }

/* ---------- Buttons ---------- */
.ltd-btn {
    display: inline-block;
    padding: 14px 32px;
    font-family: var(--ltd-sans);
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    border: 2px solid var(--ltd-dark);
    border-radius: var(--ltd-radius);
    cursor: pointer;
    transition: all .25s ease;
    text-decoration: none;
    font-size: .9rem;
}
.ltd-btn-dark { background: var(--ltd-dark); color: #fff; border-color: var(--ltd-dark); }
.ltd-btn-dark:hover { background: transparent; color: var(--ltd-dark); }
.ltd-btn-primary { background: var(--ltd-dark); color: #fff; border-color: var(--ltd-dark); }
.ltd-btn-primary:hover { background: var(--ltd-accent); border-color: var(--ltd-accent); color: #fff; }
.ltd-btn-outline-white {
    background: transparent; color: #fff; border: 2px solid #fff; margin-top: 22px;
}
.ltd-btn-outline-white:hover { background: #fff; color: var(--ltd-accent); }
.ltd-btn-link { background: transparent; color: var(--ltd-accent); border-color: var(--ltd-accent); }
.ltd-btn-link:hover { background: var(--ltd-accent); color: #fff; }

/* ---------- Sections ---------- */
.ltd-main section { padding: 70px 0; }
.ltd-hero { padding: 0; }
.ltd-welcome { padding-top: 90px; }

.ltd-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.ltd-two-col-flip { direction: rtl; }
.ltd-two-col-flip > * { direction: ltr; }
.ltd-rounded-img { border-radius: 8px; box-shadow: var(--ltd-shadow); }

.ltd-section-title { margin-bottom: .4em; }
.ltd-section-subhead { font-family: var(--ltd-serif); color: var(--ltd-dark); margin: 1em 0 .5em; font-size: 1.4rem; font-weight: 600; }
.ltd-page-hero { padding: 60px 0 20px; text-align: left; }
.ltd-page-title { margin-bottom: .3em; }
.ltd-page-subtitle { color: var(--ltd-muted); font-family: var(--ltd-serif); font-weight: 600; }
.ltd-divider { border: 0; border-top: 2px solid var(--ltd-dark); width: 80px; margin: 16px 0; }
.ltd-welcome-logo { max-width: 100%; height: auto; margin: 0 auto; }

/* ---------- Services grid – wider landscape tiles ---------- */
.ltd-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.ltd-service-tile {
    position: relative;
    display: block;
    aspect-ratio: 3 / 2;
    background-size: cover;
    background-position: center;
    overflow: hidden;
    text-decoration: none;
    color: #fff;
    box-shadow: 0 6px 20px rgba(0,0,0,.15);
    transition: transform .4s ease, box-shadow .4s ease;
    min-height: 180px;
}
.ltd-service-tile:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.25); }
.ltd-service-tile-shade {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 45%, rgba(0,0,0,.55) 100%);
    transition: background .3s ease;
}
.ltd-service-tile:hover .ltd-service-tile-shade {
    background: linear-gradient(180deg, rgba(0,0,0,.65) 0%, rgba(0,0,0,.25) 45%, rgba(0,0,0,.65) 100%);
}
.ltd-service-tile-title {
    position: absolute;
    top: 22px; left: 24px; right: 60px;
    font-family: var(--ltd-serif);
    font-size: clamp(1.15rem, 1.5vw, 1.4rem);
    font-weight: 700;
    color: #fff;
    text-shadow: 0 2px 8px rgba(0,0,0,.5);
    line-height: 1.2;
    z-index: 2;
}
.ltd-service-tile-arrow {
    position: absolute;
    top: 22px; right: 24px;
    color: #fff;
    font-size: 1.6rem;
    line-height: 1;
    z-index: 2;
    transition: transform .3s ease;
    text-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.ltd-service-tile:hover .ltd-service-tile-arrow { transform: translateX(6px); }

/* ---------- 3-column offerings ---------- */
.ltd-three-col { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; align-items: start; }
.ltd-offer-col h2 { margin-top: 0; }

.ltd-contact-box {
    background: var(--ltd-accent);
    color: #fff;
    padding: 40px 32px 44px;
    border-radius: 4px;
    box-shadow: 0 10px 28px rgba(226,58,46,.25);
}
.ltd-contact-box-title { color: #fff; font-family: var(--ltd-serif); font-size: 1.9rem; margin: 0 0 20px; }
.ltd-contact-box-line { color: #fff; font-size: 1.05rem; margin-bottom: 14px; display: flex; align-items: center; gap: 12px; }
.ltd-contact-box-line i { font-size: 1rem; width: 22px; text-align: center; }
.ltd-contact-box-line a { color: #fff; font-weight: 600; }
.ltd-contact-box-line a:hover { color: #FFEDE9; text-decoration: underline; }

/* ---------- Homepage / Contact map ---------- */
.ltd-home-map { padding: 0 !important; margin: 0; }
.ltd-home-map iframe { display: block; }

/* ---------- Lists ---------- */
.ltd-list { list-style: none; padding: 0; margin: 0; }
.ltd-list li { position: relative; padding-left: 26px; margin-bottom: 10px; }
.ltd-list li::before {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    color: var(--ltd-blue);
    position: absolute;
    left: 0; top: 3px;
    font-size: .9em;
}
.ltd-list-inline { columns: 2; column-gap: 40px; }

/* ---------- BLACK BOGO banner (residential/commercial) ---------- */
.ltd-bogo-banner { background: #0d0d0d; padding: 22px 0 !important; text-align: center; }
.ltd-bogo-text { color: #fff; font-family: var(--ltd-serif); font-weight: 600; font-size: 1.35rem; margin: 0; }

/* ---------- BIG RED services checklist box ---------- */
.ltd-red-services-box { background: var(--ltd-accent); color: #fff; padding: 60px 0 !important; }
.ltd-red-services-box .ltd-container { max-width: 1200px; }
.ltd-red-box-heading { color: #fff; font-family: var(--ltd-serif); font-size: clamp(1.6rem, 2.5vw, 2.2rem); margin: 0 0 30px; text-align: center; }
.ltd-red-box-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px 50px; margin-bottom: 30px; }
.ltd-red-box-2col { grid-template-columns: repeat(2, 1fr); max-width: 800px; margin-left: auto; margin-right: auto; }
.ltd-check-list { list-style: none; padding: 0; margin: 0; }
.ltd-check-list li {
    position: relative;
    padding-left: 28px;
    margin-bottom: 10px;
    color: #fff;
    font-size: .98rem;
    line-height: 1.5;
}
.ltd-check-list li::before {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    color: #fff;
    position: absolute;
    left: 0; top: 3px;
    font-size: .9em;
}

/* ---------- Facts grid ---------- */
.ltd-facts-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px 50px; margin-top: 30px; }
.ltd-fact h4 { color: var(--ltd-dark); margin-bottom: 6px; font-size: 1.15rem; font-family: var(--ltd-serif); font-weight: 700; }
.ltd-fact p { color: var(--ltd-muted); margin: 0; }
.ltd-italic { font-style: italic; color: var(--ltd-muted); }
.ltd-center { text-align: center; margin-top: 30px; }

/* ---------- Contact page ---------- */
.ltd-contact-heading { display: flex; align-items: center; gap: 10px; }
.ltd-contact-subhead { font-family: var(--ltd-serif); font-weight: 700; margin: 22px 0 10px; }
.ltd-contact-phone { font-size: 1.15rem; font-family: var(--ltd-serif); margin-bottom: 6px; }
.ltd-contact-phone a { color: var(--ltd-accent); font-weight: 700; }
.ltd-contact-iconlines { margin: 20px 0; }
.ltd-contact-iconline {
    display: flex; align-items: center; gap: 14px; margin-bottom: 12px;
}
.ltd-icon-circle {
    width: 40px; height: 40px;
    border-radius: 50%;
    border: 1.5px solid var(--ltd-dark);
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--ltd-dark);
    font-size: 1rem;
    flex-shrink: 0;
}
.ltd-contact-iconline a { color: var(--ltd-accent); font-weight: 600; }
.ltd-hours { width: 100%; border-collapse: collapse; margin-top: 6px; max-width: 380px; }
.ltd-hours th, .ltd-hours td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--ltd-border);
    text-align: left;
}
.ltd-hours th { color: var(--ltd-dark); font-weight: 600; width: 40%; font-family: var(--ltd-sans); }
.ltd-hours td { font-family: var(--ltd-sans); }

/* Contact form (in white card) */
.ltd-contact-form {
    background: #fff;
    padding: 32px;
    border-radius: 8px;
    box-shadow: var(--ltd-shadow);
}
.ltd-form-row {
    display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 16px;
}
.ltd-form-row label {
    display: flex; flex-direction: column;
    font-size: .9rem; font-weight: 600; color: var(--ltd-dark); gap: 6px;
}
.ltd-form-row input, .ltd-form-row textarea,
.ltd-contact-form input[type="text"], .ltd-contact-form input[type="email"],
.ltd-contact-form input[type="tel"], .ltd-contact-form textarea {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--ltd-border);
    border-radius: var(--ltd-radius);
    font: inherit;
    background: var(--ltd-bg);
    color: var(--ltd-text);
    transition: border-color .2s ease;
}
.ltd-contact-form input:focus, .ltd-contact-form textarea:focus {
    outline: none; border-color: var(--ltd-blue); background: #fff;
}
.ltd-form-group { border: 0; padding: 0; margin: 0 0 16px; }
.ltd-form-group legend { font-weight: 600; color: var(--ltd-dark); margin-bottom: 8px; }
.ltd-radio-inline { display: inline-flex; align-items: center; gap: 6px; margin-right: 24px; font-weight: 500; }
.ltd-form-success { background: #e2f3e2; color: #2d6a2d; padding: 12px 16px; border-radius: 4px; margin-bottom: 16px; }
.ltd-form-error { background: #fbe4e4; color: #a02222; padding: 12px 16px; border-radius: 4px; margin-bottom: 16px; }
.ltd-form-consent { font-size: .78rem; color: var(--ltd-muted); margin-top: 14px; }

/* ---------- Testimonials ---------- */
.ltd-testimonials-intro { max-width: 900px; margin: 0 auto 40px; text-align: center; }
.ltd-testimonials-intro p { color: var(--ltd-muted); }
.ltd-testimonials-content {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 24px;
    margin: 40px 0;
    align-items: start;
}
.ltd-testimonials-content > p {
    grid-column: 1 / -1;
    text-align: center;
    color: var(--ltd-muted);
    font-style: italic;
}
.ltd-testimonials-content blockquote,
.ltd-testimonials-content .wp-block-quote,
.ltd-testimonials-content .wp-block-pullquote {
    background: var(--ltd-bg-alt);
    padding: 24px 26px;
    border-left: 4px solid var(--ltd-blue);
    border-radius: 4px;
    margin: 0;
    font-style: italic;
    color: var(--ltd-text);
}
.ltd-testimonials-content blockquote cite,
.ltd-testimonials-content .wp-block-quote cite {
    display: block;
    margin-top: 14px;
    font-style: normal;
    color: var(--ltd-muted);
    font-weight: 700;
    font-size: .9rem;
}
.ltd-testimonial-cta { margin-top: 30px; }

/* Fallback for placeholder blockquotes coming from the_content */
.ltd-testimonials .ltd-testimonial {
    background: #fff;
    padding: 30px;
    border-left: 4px solid var(--ltd-blue);
    border-radius: 6px;
    box-shadow: var(--ltd-shadow);
    margin: 0;
}
.ltd-testimonials .ltd-testimonial cite { display: block; margin-top: 12px; font-style: normal; color: var(--ltd-muted); font-weight: 600; }

/* ---------- Map (about page) ---------- */
.ltd-map-embed { border-radius: 8px; overflow: hidden; box-shadow: var(--ltd-shadow); }

/* ---------- Footer ---------- */
.ltd-footer { background: var(--ltd-bg-alt); color: var(--ltd-dark); margin-top: 0; }
.ltd-footer a { color: var(--ltd-dark); }
.ltd-footer a:hover { color: var(--ltd-accent); }

.ltd-insured-banner { background: var(--ltd-accent); padding: 34px 0; text-align: center; }
.ltd-insured-headline {
    color: #fff;
    font-family: var(--ltd-serif);
    font-size: clamp(2rem, 4vw, 2.8rem);
    letter-spacing: .05em;
    margin: 0;
    font-weight: 900;
}

.ltd-payments { background: var(--ltd-bg-alt); padding: 40px 0 30px; text-align: center; }
.ltd-payments-text { font-family: var(--ltd-serif); font-size: 1.35rem; color: var(--ltd-dark); margin-bottom: 22px; font-weight: 700; }
.ltd-payment-icons { display: flex; justify-content: center; gap: 12px; margin-bottom: 26px; flex-wrap: wrap; }
.ltd-payment-icons .ltd-cc {
    background: #1a1a1a; color: #fff;
    padding: 10px 20px; border-radius: 3px;
    font-size: 2rem; line-height: 1;
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 80px; height: 50px;
}
.ltd-footer-phones { font-size: 1.25rem; font-family: var(--ltd-serif); color: var(--ltd-dark); margin-bottom: 24px; }
.ltd-footer-phones a { color: var(--ltd-accent); font-weight: 700; }
.ltd-social { display: flex; justify-content: center; gap: 18px; margin: 10px 0 30px; }
.ltd-social-link {
    width: 40px; height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    color: var(--ltd-dark);
    font-size: 1.15rem;
    border-radius: 50%;
    transition: color .2s ease, background .2s ease;
}
.ltd-social-link:hover { color: #fff; background: var(--ltd-accent); }

.ltd-business-card { margin: 20px auto 24px; }
.ltd-business-name { font-family: var(--ltd-serif); font-weight: 700; font-size: 1.4rem; margin-bottom: 4px; color: var(--ltd-dark); }
.ltd-business-line { margin: 4px 0; color: var(--ltd-dark); }
.ltd-business-line a { color: var(--ltd-accent); font-weight: 600; }

.ltd-footer-nav { margin-top: 8px; }
.ltd-footer-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 20px;
}
.ltd-footer-menu a { color: var(--ltd-dark); font-weight: 600; font-size: .95rem; }
.ltd-footer-menu a:hover { color: var(--ltd-accent); }
.ltd-footer-menu .sub-menu { display: none; }

.ltd-footer-bottom { padding: 18px 0; background: #171717; color: #ddd; font-size: .88rem; }
.ltd-footer-bottom a { color: #ddd; }
.ltd-footer-bottom a:hover { color: var(--ltd-blue); }
.ltd-footer-bottom-inner {
    display: flex; justify-content: space-between; align-items: center;
    flex-wrap: wrap; gap: 12px;
}
.ltd-footer-legal { list-style: none; padding: 0; margin: 0; display: flex; gap: 20px; }
.ltd-copyright { margin: 0; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
    .ltd-two-col { grid-template-columns: 1fr; gap: 40px; }
    .ltd-two-col-flip { direction: ltr; }
    .ltd-services-grid { grid-template-columns: repeat(2, 1fr); }
    .ltd-three-col { grid-template-columns: 1fr; }
    .ltd-facts-grid { grid-template-columns: 1fr; }
    .ltd-red-box-grid { grid-template-columns: 1fr; }
    .ltd-red-box-2col { grid-template-columns: 1fr; }
    .ltd-testimonials-content { columns: 1; }
    .ltd-form-row { grid-template-columns: 1fr; }
    .ltd-list-inline { columns: 1; }
    .ltd-nav-toggle { display: inline-flex; align-items: center; justify-content: center; }
    .ltd-nav {
        display: none; position: absolute; top: 100%; left: 0; right: 0;
        background: var(--ltd-bg); border-bottom: 1px solid var(--ltd-border);
        padding: 12px 20px; box-shadow: var(--ltd-shadow);
    }
    .ltd-nav.is-open { display: block; }
    .ltd-nav-pill { background: transparent; padding: 0; display: block; }
    .ltd-nav .ltd-menu { flex-direction: column; gap: 4px; }
    .ltd-nav .ltd-menu .sub-menu {
        position: static; box-shadow: none; background: var(--ltd-bg-alt); padding-left: 16px;
    }
    .ltd-topbar { font-size: .82rem; }
    .ltd-topbar-sep { margin: 0 6px; }
    .ltd-hero { min-height: 480px; }
    .ltd-hero-inner { padding: 60px 20px; }
    .ltd-main section { padding: 50px 0; }
    .ltd-footer-bottom-inner { justify-content: center; }
}
@media (max-width: 560px) {
    .ltd-services-grid { grid-template-columns: 1fr; }
    .ltd-topbar-inner { line-height: 1.6; }
    .ltd-hero-tagline { font-size: .78rem; }
    .ltd-payment-icons .ltd-cc { min-width: 60px; font-size: 1.5rem; padding: 8px 14px; }
    .ltd-testimonials-content { columns: 1; }
}

/* ---------- Elementor & Gutenberg compat ---------- */
.wp-block-button__link { background: var(--ltd-dark); color: #fff; border-radius: var(--ltd-radius); }

/* ============================================================
   Gutenberg-block styling — make Elementor-editable content
   match the original design.
   ============================================================ */

/* Cover block hero */
.ltd-hero-block { padding: 0 !important; }
.ltd-hero-block.wp-block-cover { min-height: 620px !important; }
.ltd-hero-block .wp-block-cover__inner-container {
    max-width: 900px;
    padding: 0 20px;
}
.ltd-hero-block h1 { color: #1F1F1F !important; font-family: var(--ltd-serif) !important; margin-bottom: .3em !important; }
.ltd-hero-block h3 { color: #1F1F1F !important; font-family: var(--ltd-serif) !important; margin-bottom: .6em !important; }
.ltd-hero-block .ltd-hero-tagline { color: #1F1F1F !important; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; margin-bottom: 1.8em; }
.ltd-hero-block .wp-block-button.ltd-btn-dark .wp-block-button__link { background: #171717; color: #fff; padding: 14px 32px; border-radius: 4px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.ltd-hero-block .wp-block-button.ltd-btn-dark .wp-block-button__link:hover { background: transparent; color: #171717; box-shadow: inset 0 0 0 2px #171717; }

/* Section spacing */
.wp-block-group.ltd-welcome,
.wp-block-group.ltd-services,
.wp-block-group.ltd-offerings,
.wp-block-group.ltd-about,
.wp-block-group.ltd-service-detail,
.wp-block-group.ltd-facts,
.wp-block-group.ltd-testimonials,
.wp-block-group.ltd-contact { padding: 70px 0; }

.wp-block-group.ltd-red-services-box { padding: 60px 0; color: #fff; }
.wp-block-group.ltd-red-services-box.has-vivid-red-background-color,
.wp-block-group.ltd-red-services-box { background: var(--ltd-accent) !important; }
.wp-block-group.ltd-red-services-box .ltd-check-list li,
.wp-block-group.ltd-red-services-box p,
.wp-block-group.ltd-red-services-box h2,
.wp-block-group.ltd-red-services-box h3 { color: #fff !important; }
.wp-block-group.ltd-red-services-box .ltd-check-list li::before { color: #fff; }
.wp-block-group.ltd-red-services-box .wp-block-button.ltd-btn-outline-white .wp-block-button__link {
    background: transparent; color: #fff; border: 2px solid #fff; padding: 14px 32px; border-radius: 4px;
    font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
}
.wp-block-group.ltd-red-services-box .wp-block-button.ltd-btn-outline-white .wp-block-button__link:hover { background: #fff; color: var(--ltd-accent); }

/* Black BOGO banner */
.wp-block-group.ltd-bogo-banner { padding: 24px 0 !important; background: #0d0d0d !important; }
.wp-block-group.ltd-bogo-banner h3,
.wp-block-group.ltd-bogo-banner p { color: #fff !important; font-family: var(--ltd-serif); text-align: center; margin: 0; font-weight: 600; font-size: 1.35rem; }
.wp-block-group.ltd-bogo-banner.has-vivid-black-background-color { background-color: #0d0d0d !important; }

/* Service tile images */
.wp-block-column .ltd-service-tile-img { margin: 0 0 8px; }
.wp-block-column .ltd-service-tile-img img {
    width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px;
    transition: transform .3s ease, box-shadow .3s ease;
}
.wp-block-column .ltd-service-tile-img:hover img { transform: translateY(-4px); box-shadow: 0 12px 24px rgba(0,0,0,.15); }
.wp-block-column .ltd-service-caption { margin: 0 0 20px; font-family: var(--ltd-serif); font-weight: 700; }
.wp-block-column .ltd-service-caption a { color: var(--ltd-dark); text-decoration: none; }
.wp-block-column .ltd-service-caption a:hover { color: var(--ltd-accent); }

/* Red contact box (column with class) */
.wp-block-column.ltd-contact-box {
    background: var(--ltd-accent) !important;
    color: #fff !important;
    padding: 40px 32px !important;
    border-radius: 4px;
    box-shadow: 0 10px 28px rgba(226,58,46,.25);
}
.wp-block-column.ltd-contact-box .ltd-contact-box-title { color: #fff !important; font-family: var(--ltd-serif); font-size: 1.9rem; margin: 0 0 20px; }
.wp-block-column.ltd-contact-box p,
.wp-block-column.ltd-contact-box a { color: #fff !important; }
.wp-block-column.ltd-contact-box a { font-weight: 700; text-decoration: none; }
.wp-block-column.ltd-contact-box a:hover { text-decoration: underline; }
.wp-block-column.ltd-contact-box .wp-block-button.ltd-btn-outline-white .wp-block-button__link {
    background: transparent; color: #fff; border: 2px solid #fff; padding: 12px 28px; border-radius: 4px;
    font-weight: 700; letter-spacing: .05em; text-transform: uppercase; margin-top: 10px;
}
.wp-block-column.ltd-contact-box .wp-block-button.ltd-btn-outline-white .wp-block-button__link:hover { background: #fff; color: var(--ltd-accent); }

/* Container class on inline blocks */
.wp-block-group .ltd-container { max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* Editable images on service pages */
.wp-block-image.ltd-rounded-img img { border-radius: 8px; box-shadow: 0 8px 24px rgba(0,0,0,.08); }

/* Page hero groups */
.wp-block-group.ltd-page-hero { padding: 60px 0 20px; }

/* Testimonials */
.wp-block-group.ltd-testimonials .wp-block-quote,
.wp-block-group.ltd-testimonials blockquote {
    background: var(--ltd-bg-alt);
    padding: 24px 26px;
    border-left: 4px solid var(--ltd-blue);
    border-radius: 4px;
    margin: 0;
    font-style: italic;
    color: var(--ltd-text);
}
.wp-block-group.ltd-testimonials .wp-block-quote cite,
.wp-block-group.ltd-testimonials blockquote cite {
    display: block; margin-top: 14px; font-style: normal;
    color: var(--ltd-muted); font-weight: 700; font-size: .9rem;
}

/* Contact page */
.wp-block-column.ltd-contact-form-wrap { }
.wp-block-column.ltd-contact-info .ltd-contact-phone a { color: var(--ltd-accent) !important; font-weight: 700; }
.wp-block-column.ltd-contact-info .ltd-hours { width: 100%; max-width: 380px; border-collapse: collapse; margin-top: 6px; }
.wp-block-column.ltd-contact-info .ltd-hours th,
.wp-block-column.ltd-contact-info .ltd-hours td { padding: 8px 12px; border-bottom: 1px solid var(--ltd-border); text-align: left; }
.wp-block-column.ltd-contact-info .ltd-hours th { color: var(--ltd-dark); font-weight: 600; width: 40%; }

/* Home map full width */
.ltd-home-map iframe { display: block; width: 100%; }
