/*
Theme Name: DG Cars
Theme URI: https://dgcars.co.uk/
Author: DG Private Hire Limited
Author URI: https://dgcars.co.uk/
Description: Nottingham's Premier Taxi Firm. A faithful WordPress rebuild of the DG Cars website — a bold, dark-and-green private-hire brand with a full-width hero, app promotion, live stat counters, testimonials and accreditation logos. Classic PHP theme with editable phone numbers, booking links and footer content via the Customizer. Menus and starter pages are created automatically on activation.
Version: 1.0.3
Requires at least: 5.5
Tested up to: 6.6
Requires PHP: 7.2
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dgcars
Tags: business, custom-menu, custom-logo, featured-images, footer-widgets, sticky-header, translation-ready, one-column, two-columns, right-sidebar
*/

/* =========================================================================
   DG Cars theme — design tokens
   ========================================================================= */
:root {
    --dg-green:        #418a49;   /* primary accent, stat numbers, links */
    --dg-green-btn:    #3e8654;   /* CTA band + solid buttons */
    --dg-green-dark:   #35753e;   /* button hover */
    --dg-green-light:  #4fa259;
    --dg-topbar:       #3d3d3d;   /* top utility bar */
    --dg-header:       #303030;   /* main header */
    --dg-dark:         #2e2e2e;   /* stats band */
    --dg-charcoal:     #363839;   /* footer widget band / footer */
    --dg-ink:          #333333;   /* body text */
    --dg-muted:        #707070;
    --dg-faint:        #999999;
    --dg-line:         #e3e3e3;
    --dg-bg-soft:      #f2f2f2;
    --dg-white:        #ffffff;
    --dg-radius:       6px;
    --dg-radius-lg:    10px;
    --dg-shadow:       0 10px 30px rgba(0,0,0,.10);
    --dg-shadow-sm:    0 4px 14px rgba(0,0,0,.08);
    --dg-container:    1140px;
    --dg-font:         'Open Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --dg-header-h:     84px;
}

/* =========================================================================
   Reset / base
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--dg-font);
    font-weight: 300;
    font-size: 16px;
    line-height: 1.7;
    color: var(--dg-ink);
    background: var(--dg-white);
    overflow-x: hidden;
}
img { max-width: 100%; height: auto; border: 0; vertical-align: middle; }
a { color: var(--dg-green); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--dg-green-dark); }
h1, h2, h3, h4, h5, h6 { font-family: var(--dg-font); margin: 0 0 .6em; color: inherit; line-height: 1.25; }
h1 { font-weight: 800; }
h2 { font-weight: 600; }
h3 { font-weight: 400; }
h4 { font-weight: 400; }
h5, h6 { font-weight: 600; }
p { margin: 0 0 1.1em; }
ul, ol { margin: 0 0 1.1em; padding-left: 1.3em; }
hr { border: 0; border-top: 1px solid rgba(255,255,255,.35); margin: 18px 0; }
:focus-visible { outline: 3px solid var(--dg-green-light); outline-offset: 2px; }

.dg-container {
    width: 100%;
    max-width: var(--dg-container);
    margin: 0 auto;
    padding: 0 20px;
}
.dg-wide { max-width: 1360px; }
.screen-reader-text {
    position: absolute !important;
    clip: rect(1px,1px,1px,1px);
    width: 1px; height: 1px; overflow: hidden;
    padding: 0; border: 0;
}
.skip-link {
    position: absolute; left: -9999px; top: 0; z-index: 100000;
    background: var(--dg-green); color: #fff; padding: 10px 18px; border-radius: 0 0 6px 0;
}
.skip-link:focus { left: 0; color: #fff; }

/* =========================================================================
   Buttons
   ========================================================================= */
.dg-btn {
    display: inline-block;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: .3px;
    line-height: 1;
    padding: 15px 30px;
    border-radius: var(--dg-radius);
    border: 2px solid transparent;
    cursor: pointer;
    transition: all .2s ease;
    text-align: center;
    white-space: nowrap;
}
.dg-btn i { margin-right: 8px; }
.dg-btn-green { background: var(--dg-green-btn); color: #fff; border-color: var(--dg-green-btn); }
.dg-btn-green:hover { background: var(--dg-green-dark); border-color: var(--dg-green-dark); color: #fff; }
.dg-btn-light { background: #fff; color: var(--dg-green-btn); border-color: #fff; }
.dg-btn-light:hover { background: transparent; color: #fff; }
.dg-btn-outline { background: transparent; color: #fff; border-color: #fff; }
.dg-btn-outline:hover { background: #fff; color: var(--dg-ink); }
.dg-btn-lg { padding: 18px 40px; font-size: 17px; }
.dg-btn-block { display: block; width: 100%; }

/* =========================================================================
   Top bar
   ========================================================================= */
#dg-topbar {
    background: var(--dg-topbar);
    color: #d4d4d4;
    font-size: 13px;
}
#dg-topbar a { color: #b3b3b3; }
#dg-topbar a:hover { color: #ff9696; }
#dg-topbar .dg-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 40px;
    flex-wrap: wrap;
}
.dg-social { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.dg-social a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 28px; height: 28px; font-size: 15px; border-radius: 50%;
}
.dg-social a:hover { background: rgba(255,255,255,.12); }
.dg-topbar-info { list-style: none; margin: 0; padding: 0; display: flex; gap: 22px; flex-wrap: wrap; }
.dg-topbar-info li { display: flex; align-items: center; gap: 8px; }
.dg-topbar-info i { color: var(--dg-green-light); font-size: 17px; }

/* =========================================================================
   Header / navigation
   ========================================================================= */
#dg-header {
    background: var(--dg-header);
    color: #f0f0f0;
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0,0,0,.25);
}
#dg-header .dg-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: var(--dg-header-h);
    gap: 20px;
}
.dg-logo { display: inline-flex; align-items: center; }
.dg-logo img { max-height: 52px; width: auto; }
.dg-logo .dg-logo-text { color: #fff; font-weight: 800; font-size: 24px; letter-spacing: .5px; }
.dg-logo .dg-logo-text span { color: var(--dg-green-light); }

/* Primary menu */
#dg-primary-nav { margin-left: auto; }
.dg-menu { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; }
.dg-menu li { position: relative; }
.dg-menu > li > a {
    display: block;
    color: #e0e0e0;
    font-weight: 600;
    font-size: 16px;
    padding: 30px 16px;
    letter-spacing: .3px;
}
.dg-menu > li > a:hover,
.dg-menu > li.current-menu-item > a,
.dg-menu > li.current-menu-parent > a { color: #fff; }
.dg-menu > li > a::after {
    content: ""; display: block; height: 3px; background: var(--dg-green);
    width: 0; transition: width .25s ease; margin-top: 6px;
}
.dg-menu > li:hover > a::after,
.dg-menu > li.current-menu-item > a::after { width: 100%; }

/* Dropdowns */
.dg-menu ul.sub-menu {
    list-style: none; margin: 0; padding: 8px 0;
    position: absolute; top: 100%; left: 0; min-width: 210px;
    background: #2a2a2a; border-top: 3px solid var(--dg-green);
    box-shadow: 0 12px 28px rgba(0,0,0,.35);
    opacity: 0; visibility: hidden; transform: translateY(10px);
    transition: all .2s ease; z-index: 1001;
}
.dg-menu li:hover > ul.sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.dg-menu ul.sub-menu li a {
    display: block; padding: 10px 20px; color: #d5d5d5; font-size: 14px; font-weight: 400;
}
.dg-menu ul.sub-menu li a:hover { background: var(--dg-green); color: #fff; }
.dg-menu .sub-menu .sub-menu { top: 0; left: 100%; }

/* Book button in menu */
.dg-menu li.dg-book-item > a,
.dg-menu li.menu-item-book > a {
    background: var(--dg-green-btn); color: #fff;
    text-transform: uppercase; border: 1px solid #4e4e4e; border-radius: 0;
    padding: 12px 22px; margin-left: 12px;
}
.dg-menu li.dg-book-item > a:hover,
.dg-menu li.menu-item-book > a:hover { background: var(--dg-green-dark); color: #fff; }
.dg-menu li.dg-book-item > a::after,
.dg-menu li.menu-item-book > a::after { display: none; }

/* Mobile toggle */
.dg-nav-toggle {
    display: none;
    background: transparent; border: 0; color: #fff; font-size: 26px;
    cursor: pointer; padding: 8px; line-height: 1;
}
/* Submenu accordion toggle — hidden on desktop, shown on mobile */
.dg-submenu-toggle { display: none; }

/* =========================================================================
   Hero slider
   ========================================================================= */
.dg-hero {
    position: relative;
    background: #1c1c1c;
    overflow: hidden;
    min-height: 640px;
}
.dg-slides { position: relative; min-height: 640px; }
.dg-slide {
    position: absolute; inset: 0;
    min-height: 640px;
    opacity: 0; visibility: hidden;
    transition: opacity 1s ease;
    display: flex; align-items: center;
    background-size: cover; background-position: center;
}
.dg-slide.is-active { opacity: 1; visibility: visible; position: relative; }
.dg-hero .dg-container { position: relative; z-index: 3; width: 100%; }
.dg-slide-inner { max-width: 720px; padding: 60px 0; color: #fff; }
.dg-slide-inner.align-right { margin-left: auto; text-align: right; }
.dg-slide h2, .dg-slide h1 {
    color: #fff; font-weight: 800; font-size: clamp(30px, 4.2vw, 58px);
    line-height: 1.1; text-shadow: 2px 3px 12px rgba(0,0,0,.65); margin-bottom: 18px;
}
.dg-slide .dg-slide-sub {
    font-size: clamp(18px, 2vw, 30px); font-weight: 300; color: #fff;
    text-shadow: 1px 2px 6px rgba(0,0,0,.6); margin-bottom: 26px;
}
.dg-slide .dg-slide-lead {
    font-size: clamp(16px, 1.4vw, 20px); color: #f0f0f0; margin-bottom: 26px;
    text-shadow: 1px 1px 4px rgba(0,0,0,.6);
}
.dg-slide-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.dg-slide-inner.align-right .dg-slide-btns { justify-content: flex-end; }
.dg-hero-overlay { position: absolute; inset: 0; z-index: 1;
    background: linear-gradient(90deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.30) 55%, rgba(0,0,0,.12) 100%); }
.dg-slide.align-right ~ .dg-hero-overlay { }

/* Slider controls */
.dg-hero-dots {
    position: absolute; left: 0; right: 0; bottom: 22px; z-index: 5;
    display: flex; gap: 10px; justify-content: center;
}
.dg-hero-dots button {
    width: 13px; height: 13px; border-radius: 50%; border: 2px solid #ff5d5d;
    background: transparent; cursor: pointer; padding: 0; transition: all .2s ease;
}
.dg-hero-dots button.is-active { background: #ff5d5d; }
.dg-hero-arrow {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
    background: rgba(0,0,0,.25); color: #fff; border: 0; cursor: pointer;
    width: 54px; height: 70px; font-size: 40px; line-height: 1; transition: background .2s ease;
}
.dg-hero-arrow:hover { background: rgba(0,0,0,.5); }
.dg-hero-arrow.prev { left: 0; }
.dg-hero-arrow.next { right: 0; }

/* =========================================================================
   Sections / helpers
   ========================================================================= */
.dg-section { padding: 60px 0; }
.dg-section-tight { padding: 30px 0; }
.dg-section-title { text-align: center; margin-bottom: 40px; }
.dg-section-title h2 { font-size: clamp(26px, 3vw, 40px); font-weight: 600; }
.dg-accent { color: var(--dg-green); }
.text-center { text-align: center; }
.dg-lead-quote { text-align: center; font-style: italic; color: var(--dg-faint); font-size: 19px; max-width: 900px; margin: 0 auto; }

/* Feature cards (Book / Drive / Account) */
.dg-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.dg-feature {
    text-align: center; padding: 34px 26px; border-radius: var(--dg-radius-lg);
    background: rgba(255,255,255,.75); box-shadow: var(--dg-shadow-sm);
    border: 1px solid #eee; transition: transform .25s ease, box-shadow .25s ease;
}
.dg-feature:hover { transform: translateY(-6px); box-shadow: var(--dg-shadow); }
.dg-feature .dg-feature-icon { font-size: 74px; line-height: 1; color: var(--dg-green); margin-bottom: 14px; display: inline-block; }
.dg-feature h3 { font-size: 22px; font-weight: 600; margin-bottom: 8px; }
.dg-feature h3 a { color: var(--dg-ink); }
.dg-feature h3 a:hover { color: var(--dg-green); }
.dg-feature p { color: var(--dg-muted); margin: 0; }

/* Parallax banner */
.dg-parallax {
    position: relative; color: #fff; text-align: center;
    background-size: cover; background-position: center; background-attachment: fixed;
    padding: 100px 20px;
}
.dg-parallax::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.5); }
.dg-parallax .dg-container { position: relative; z-index: 2; }
.dg-parallax h2 { font-size: clamp(28px, 3.4vw, 42px); font-weight: 600; margin-bottom: 18px; }
.dg-parallax p { font-size: 19px; max-width: 760px; margin: 0 auto; color: #eee; }

/* Download app split */
.dg-app-badge { display: flex; align-items: center; gap: 30px; flex-wrap: wrap; justify-content: center; }
.dg-app-badge .dg-app-head { font-size: clamp(26px, 3vw, 38px); font-weight: 600; color: var(--dg-muted); margin: 0; text-align: right; flex: 1 1 300px; }
.dg-badge-count {
    flex: 0 0 auto; border: 1px solid var(--dg-line); border-radius: 7px; padding: 18px 30px;
    color: var(--dg-green); font-size: 40px; font-weight: 700;
}

/* Tabs */
.dg-tabs { }
.dg-tab-nav { list-style: none; display: flex; margin: 0 0 0; padding: 0; border-bottom: 1px solid var(--dg-line); flex-wrap: wrap; }
.dg-tab-nav li { margin: 0; }
.dg-tab-nav button {
    background: transparent; border: 0; border-bottom: 3px solid transparent;
    padding: 14px 20px; font-weight: 600; font-size: 15px; color: var(--dg-muted); cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px; transition: all .2s ease;
}
.dg-tab-nav button:hover { color: var(--dg-green); }
.dg-tab-nav button.is-active { color: var(--dg-green); border-bottom-color: var(--dg-green); }
.dg-tab-panel { display: none; padding: 24px 4px; animation: dgFade .4s ease; }
.dg-tab-panel.is-active { display: block; }
@keyframes dgFade { from { opacity: 0; } to { opacity: 1; } }

.dg-split { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.dg-split-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 30px; align-items: center; }
.dg-store-btns { display: flex; gap: 14px; margin-top: 18px; flex-wrap: wrap; }

/* Stats band */
.dg-stats {
    background-color: var(--dg-dark);
    background-image: url(assets/images/bg-stripes.svg);
    background-size: contain;
    color: #fff; text-align: center; padding: 60px 0;
}
.dg-stats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.dg-stat .dg-stat-num { color: var(--dg-green); font-size: 44px; font-weight: 700; line-height: 1.1; }
.dg-stat .dg-stat-label { color: #fff; font-size: 16px; letter-spacing: .5px; margin-top: 6px; text-transform: uppercase; }

/* Pie / driver */
.dg-pie { width: 170px; height: 170px; margin: 0 auto 20px; position: relative; }
.dg-pie svg { transform: rotate(-90deg); width: 100%; height: 100%; }
.dg-pie .dg-pie-track { fill: none; stroke: rgba(65,138,73,.2); stroke-width: 4; }
.dg-pie .dg-pie-bar { fill: none; stroke: var(--dg-green); stroke-width: 4; stroke-linecap: round;
    stroke-dasharray: 471; stroke-dashoffset: 471; transition: stroke-dashoffset 3s ease; }
.dg-pie.is-visible .dg-pie-bar { stroke-dashoffset: 0; }
.dg-pie-icon { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--dg-green); font-size: 84px; }
.dg-driver-card { text-align: center; }

/* Testimonials */
.dg-testimonials { background: var(--dg-bg-soft); padding: 70px 0; }
.dg-testi-track { position: relative; max-width: 820px; margin: 0 auto; text-align: center; min-height: 220px; }
.dg-testi { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .6s ease; }
.dg-testi.is-active { opacity: 1; visibility: visible; position: relative; }
.dg-testi .dg-stars { height: 34px; width: auto; margin: 0 auto 18px; }
.dg-testi p { font-size: 19px; font-style: italic; color: #555; line-height: 1.7; }
.dg-testi .dg-testi-name { font-weight: 700; color: var(--dg-ink); font-style: normal; display: block; margin-top: 12px; }
.dg-testi-dots { display: flex; gap: 9px; justify-content: center; margin-top: 24px; }
.dg-testi-dots button { width: 11px; height: 11px; border-radius: 50%; border: 0; background: #cfcfcf; cursor: pointer; padding: 0; }
.dg-testi-dots button.is-active { background: var(--dg-green); }

/* Logo carousels */
.dg-logos { display: flex; gap: 30px; align-items: center; justify-content: center; flex-wrap: wrap; }
.dg-logos img { max-height: 120px; width: auto; filter: none; opacity: .95; transition: transform .2s ease; }
.dg-logos img:hover { transform: scale(1.05); }
.dg-logos-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }

/* CTA band */
.dg-cta-band { background: var(--dg-green-btn); text-align: center; padding: 34px 20px; }

/* =========================================================================
   Footer
   ========================================================================= */
.dg-footer-widgets {
    background-color: var(--dg-charcoal);
    background-image: url(assets/images/bg-stripes.svg);
    background-size: contain;
    color: #b3b3b3; padding: 50px 0;
}
.dg-footer-widgets .dg-widget-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px; }
.dg-footer-widgets a { color: #d6d6d6; }
.dg-footer-widgets a:hover { color: #fff; }
.dg-footer-widgets h3, .dg-footer-widgets .widget-title { color: #fff; font-size: 16px; font-weight: 600; margin-bottom: 16px; text-transform: uppercase; letter-spacing: .5px; }
.dg-footer-widgets ul { list-style: none; margin: 0; padding: 0; }
.dg-footer-widgets ul li { padding: 5px 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.dg-newsletter label { font-size: 13px; display: block; margin-bottom: 10px; }
.dg-newsletter input[type=email] {
    width: 100%; padding: 12px 14px; border: 0; border-radius: 4px; margin-bottom: 10px; font-family: inherit;
}
.dg-newsletter .dg-btn { width: 100%; }
.dg-footer-social { display: flex; gap: 12px; }
.dg-footer-social a {
    width: 42px; height: 42px; border-radius: 50%; background: rgba(255,255,255,.08);
    display: inline-flex; align-items: center; justify-content: center; font-size: 19px; color: #fff;
}
.dg-footer-social a:hover { background: var(--dg-green); }

#dg-footer { background: var(--dg-charcoal); color: #b0b0b0; padding: 22px 0; text-align: center; font-size: 13px; border-top: 1px solid rgba(255,255,255,.06); }
#dg-footer a { color: #d6d6d6; }

/* =========================================================================
   Generic content (inner pages / posts)
   ========================================================================= */
.dg-page-header {
    background: var(--dg-header); color: #fff; padding: 54px 0; text-align: center;
    background-size: cover; background-position: center; position: relative;
}
.dg-page-header::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.35); }
.dg-page-header .dg-container { position: relative; z-index: 2; }
.dg-page-header h1 { color: #fff; font-size: clamp(28px, 3.4vw, 44px); margin: 0; }
.dg-breadcrumbs { color: #cfcfcf; font-size: 14px; margin-top: 10px; }
.dg-breadcrumbs a { color: #fff; }

.dg-content-area { padding: 56px 0; }
.dg-content-wrap { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 44px; }
.dg-content-wrap.no-sidebar { grid-template-columns: minmax(0,1fr); max-width: 860px; margin: 0 auto; }
.dg-entry h2 { font-size: 30px; margin-top: 1.2em; }
.dg-entry h3 { font-size: 23px; font-weight: 600; margin-top: 1.2em; }
.dg-entry img { border-radius: var(--dg-radius); height: auto; }
.dg-entry figure { margin: 1.4em 0; }
.dg-entry figure img { display: block; width: 100%; }
.dg-entry figcaption { font-size: 13px; color: var(--dg-faint); text-align: center; margin-top: 8px; }
.dg-entry ul, .dg-entry ol { margin-left: .2em; }

/* Content image gallery (service pages) */
.dg-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 16px;
    margin: 1.6em 0;
}
.dg-gallery img {
    width: 100%; height: 200px; object-fit: cover; border-radius: var(--dg-radius);
    box-shadow: var(--dg-shadow-sm); transition: transform .2s ease;
}
.dg-gallery img:hover { transform: scale(1.03); }
@media (max-width: 560px) {
    .dg-gallery { grid-template-columns: 1fr 1fr; }
    .dg-gallery img { height: 150px; }
}
.dg-entry blockquote { border-left: 4px solid var(--dg-green); margin: 1.4em 0; padding: .4em 1.2em; background: var(--dg-bg-soft); font-style: italic; }

.widget { margin-bottom: 34px; }
.widget-title { font-size: 18px; font-weight: 600; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 2px solid var(--dg-green); }
.dg-sidebar ul { list-style: none; margin: 0; padding: 0; }
.dg-sidebar ul li { padding: 7px 0; border-bottom: 1px solid var(--dg-line); }

/* Posts list */
.dg-post-card { border: 1px solid var(--dg-line); border-radius: var(--dg-radius-lg); overflow: hidden; margin-bottom: 34px; background: #fff; box-shadow: var(--dg-shadow-sm); }
.dg-post-card .dg-post-thumb img { width: 100%; display: block; }
.dg-post-card .dg-post-body { padding: 24px 26px; }
.dg-post-card h2 { font-size: 24px; margin-bottom: 8px; }
.dg-post-meta { color: var(--dg-faint); font-size: 13px; margin-bottom: 12px; }

/* Pagination / comments */
.dg-pagination { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 30px; }
.dg-pagination .page-numbers { display: inline-flex; padding: 9px 15px; border: 1px solid var(--dg-line); border-radius: 4px; color: var(--dg-ink); }
.dg-pagination .page-numbers.current { background: var(--dg-green); color: #fff; border-color: var(--dg-green); }
.comment-list { list-style: none; padding: 0; }
.comment-list .comment { border-bottom: 1px solid var(--dg-line); padding: 16px 0; }

/* WP core alignment / caption */
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 13px; color: var(--dg-faint); text-align: center; }
.sticky, .bypostauthor { }

/* =========================================================================
   Utilities
   ========================================================================= */
.dg-mt-0 { margin-top: 0; }
.dg-mb-0 { margin-bottom: 0; }
.dg-hide-mobile { }
.dg-show-mobile { display: none; }

/* Search form */
.dg-search-form { display: flex; gap: 8px; }
.dg-search-field {
    flex: 1; padding: 12px 14px; border: 1px solid var(--dg-line); border-radius: var(--dg-radius);
    font-family: inherit; font-size: 15px;
}
.dg-search-form .dg-btn { padding: 12px 18px; }
.dg-app-image img, .dg-driver-image img { max-height: 520px; width: auto; }
.dg-page-links { margin: 20px 0; font-weight: 600; }
.dg-page-links a { padding: 4px 10px; border: 1px solid var(--dg-line); border-radius: 4px; margin: 0 3px; }
.dg-post-tags { margin-top: 24px; color: var(--dg-faint); font-size: 14px; }
/* Front-end forms (careers, quote, preferences, contact) */
.dg-form-wrap { max-width: 720px; margin: 20px 0 10px; }
.dg-form-row { margin-bottom: 18px; }
.dg-form-row label { display: block; font-weight: 600; margin-bottom: 6px; color: var(--dg-ink); }
.dg-form-row input[type=text],
.dg-form-row input[type=email],
.dg-form-row input[type=tel],
.dg-form-row input[type=number],
.dg-form-row input[type=date],
.dg-form-row input[type=file],
.dg-form-row select,
.dg-form-row textarea {
    width: 100%; padding: 12px 14px; border: 1px solid var(--dg-line); border-radius: var(--dg-radius);
    font-family: inherit; font-size: 15px; background: #fff; color: var(--dg-ink);
}
.dg-form-row input:focus, .dg-form-row select:focus, .dg-form-row textarea:focus {
    outline: none; border-color: var(--dg-green); box-shadow: 0 0 0 3px rgba(65,138,73,.15);
}
.dg-form-row textarea { resize: vertical; min-height: 120px; }
.dg-form-help { display: block; margin-top: 6px; color: var(--dg-faint); font-size: 13px; }
.dg-form-subhead { font-weight: 700; margin: 22px 0 6px; color: var(--dg-ink); }
.dg-req { color: #d33; }
.dg-form-check { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; }
.dg-form-check input { margin-top: 4px; flex: 0 0 auto; width: auto; }
.dg-form-check span { font-weight: 400; }
.dg-form-actions { margin-top: 20px; }
.dg-form-actions .dg-btn { cursor: pointer; }
.dg-hp { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.dg-form-notice { padding: 14px 18px; border-radius: var(--dg-radius); margin-bottom: 20px; font-size: 15px; }
.dg-form-notice ul { margin: 0; padding-left: 20px; }
.dg-form-success { background: #e6f4ea; border: 1px solid #3e8654; color: #256b39; }
.dg-form-error { background: #fdecea; border: 1px solid #d33; color: #a11; }

.comment-respond { margin-top: 30px; }
.comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=url], .comment-form textarea {
    width: 100%; padding: 10px 12px; border: 1px solid var(--dg-line); border-radius: var(--dg-radius); font-family: inherit; margin-bottom: 12px;
}

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 991px) {
    .dg-features { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
    .dg-stats-grid { grid-template-columns: 1fr; gap: 40px; }
    .dg-split, .dg-split-3 { grid-template-columns: 1fr; }
    .dg-content-wrap { grid-template-columns: 1fr; }
    .dg-app-badge .dg-app-head { text-align: center; }
    .dg-footer-widgets .dg-widget-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 782px) {
    :root { --dg-header-h: 68px; }
    .dg-nav-toggle { display: inline-flex; align-items: center; }
    #dg-primary-nav {
        position: fixed; top: 0; right: -320px; width: 300px; height: 100vh;
        background: #262626; z-index: 99999; padding: 70px 0 30px; overflow-y: auto;
        transition: right .3s ease; box-shadow: -8px 0 30px rgba(0,0,0,.4);
    }
    body.dg-nav-open #dg-primary-nav { right: 0; }
    body.dg-nav-open .dg-nav-overlay { opacity: 1; visibility: visible; }
    .dg-nav-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 99998; opacity: 0; visibility: hidden; transition: opacity .3s ease; }
    /* The nav sits INSIDE the sticky header, which is its own stacking context
       (position:sticky + z-index:1000). So the nav's z-index only ranks it within
       the header — the root-level overlay would still paint over it, greying the
       menu out and swallowing taps. Lift the whole header above the overlay while
       the menu is open. */
    body.dg-nav-open #dg-header { z-index: 100000; }
    /* Keep the Tawk.to chat widget below the open mobile menu (the JS also hides it). */
    body.dg-nav-open iframe[title*="chat" i],
    body.dg-nav-open [id^="tawk"],
    body.dg-nav-open .widget-visible { z-index: 99990 !important; }
    .dg-menu { flex-direction: column; align-items: stretch; }
    .dg-menu > li > a { padding: 14px 24px; border-bottom: 1px solid rgba(255,255,255,.06); }
    .dg-menu > li > a::after { display: none; }
    .dg-menu ul.sub-menu {
        position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none;
        background: #1f1f1f; border-top: 0; display: none; padding: 0;
    }
    .dg-menu li.dg-submenu-open > ul.sub-menu { display: block; }
    .dg-menu ul.sub-menu li a { padding-left: 40px; }
    .dg-menu li.menu-item-has-children > a { position: relative; }
    .dg-submenu-toggle {
        display: block;
        position: absolute; right: 10px; top: 8px; background: transparent; border: 0; color: #fff;
        font-size: 20px; width: 40px; height: 40px; cursor: pointer;
    }
    .dg-menu li.dg-book-item > a, .dg-menu li.menu-item-book > a { margin: 12px 24px; }
    .dg-close-nav { position: absolute; top: 16px; right: 18px; background: transparent; border: 0; color: #fff; font-size: 26px; cursor: pointer; }
    .dg-hero, .dg-slides, .dg-slide { min-height: 480px; }
    .dg-slide-inner, .dg-slide-inner.align-right { text-align: center; margin: 0 auto; }
    .dg-slide-btns, .dg-slide-inner.align-right .dg-slide-btns { justify-content: center; }
    .dg-hero-overlay { background: rgba(0,0,0,.55); }
    .dg-parallax { background-attachment: scroll; }
    .dg-logos-2col { grid-template-columns: 1fr; }
    .dg-hero-arrow { display: none; }
}
@media (max-width: 560px) {
    .dg-footer-widgets .dg-widget-grid { grid-template-columns: 1fr; }
    #dg-topbar .dg-container { justify-content: center; }
    .dg-app-badge .dg-app-head { text-align: center; }
}
.dg-close-nav { display: none; }
@media (max-width: 782px) { .dg-close-nav { display: block; } }
