/*
Theme Name: Twenty Twenty-Four
Theme URI: https://wordpress.org/themes/twentytwentyfour/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Four is designed to be flexible, versatile and applicable to any website. Its collection of templates and patterns tailor to different needs, such as presenting a business, blogging and writing or showcasing work. A multitude of possibilities open up with just a few adjustments to color and typography. Twenty Twenty-Four comes with style variations and full page designs to help speed up the site building process, is fully compatible with the site editor, and takes advantage of new design tools introduced in WordPress 6.4.
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 7.0
Version: 1.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfour
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/


/* Luxurious CPA Firm Styling */
:root {
    --wp--preset--color--base: #ffffff;
    --wp--preset--color--contrast: #0a192f;
    --wp--preset--color--contrast-2: #1e3a5f;
    --wp--preset--color--contrast-3: #f5f7fa;
    --wp--preset--color--accent: #d4af37;
    --wp--preset--font-family--body: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
    --wp--preset--font-family--heading: "Playfair Display", Georgia, serif;
}

html,
body {
    overflow-x: hidden;
    width: 100%;
    position: relative;
}

body {
    font-family: var(--wp--preset--font-family--body);
    color: var(--wp--preset--color--contrast);
    background-color: var(--wp--preset--color--base);
    line-height: 1.7;
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading {
    font-family: var(--wp--preset--font-family--heading);
    color: var(--wp--preset--color--contrast);
    font-weight: 400;
}

a.wp-block-button__link {
    border-radius: 2px !important;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 1px;
    transition: all 0.3s ease;
}

a.wp-block-button__link:hover {
    background-color: #0a192f !important;
    color: #d4af37 !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.wp-block-column {
    padding: 2rem;
    background: #ffffff;
    border: 1px solid #e1e8ed;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wp-block-column:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
}

.wp-block-column h3 {
    color: var(--wp--preset--color--accent);
}


/* Luxurious CPA Firm Styling */
:root {
    --wp--preset--color--base: #ffffff;
    --wp--preset--color--contrast: #0a192f;
    --wp--preset--color--contrast-2: #1e3a5f;
    --wp--preset--color--contrast-3: #f5f7fa;
    --wp--preset--color--accent: #d4af37;
    --wp--preset--font-family--body: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
    --wp--preset--font-family--heading: "Playfair Display", Georgia, serif;
}

body {
    font-family: var(--wp--preset--font-family--body);
    color: var(--wp--preset--color--contrast);
    background-color: var(--wp--preset--color--base);
    line-height: 1.7;
    overflow-x: hidden;
    /* Enforced recursively */
}

h1,
h2,
h3,
h4,
h5,
h6,
.wp-block-heading {
    font-family: var(--wp--preset--font-family--heading);
    color: var(--wp--preset--color--contrast);
    font-weight: 400;
}

a.wp-block-button__link {
    border-radius: 2px !important;
    text-transform: uppercase;
    font-weight: 600;
    letter-spacing: 1px;
    transition: all 0.3s ease;
}

a.wp-block-button__link:hover {
    background-color: #0a192f !important;
    color: #d4af37 !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.wp-block-column {
    padding: 2rem;
    background: #ffffff;
    border: 1px solid #e1e8ed;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wp-block-column:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
}

.wp-block-column h3 {
    color: var(--wp--preset--color--accent);
}

/* ===== DP Consulting Custom Overrides ===== */

/* Hide 'Home' page title on front page */
.home .wp-block-post-title,
.home h1.wp-block-post-title,
.page-id-1530 .wp-block-post-title {
    display: none !important;
}

/* Remove card border/hover effect from stats section columns */
.wp-block-group.has-background .wp-block-columns .wp-block-column {
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
}

.wp-block-group.has-background .wp-block-columns .wp-block-column:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* Service section columns — clean card style */
.has-base-background-color .wp-block-columns .wp-block-column {
    background: #ffffff;
    border: 0 none !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
    border-bottom: 2px solid #d4af37 !important;
    border-radius: 4px;
    padding: 1.75rem;
}

.has-base-background-color .wp-block-columns .wp-block-column:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

/* Import Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@400;700&display=swap');

/* Sticky Navbar */
.dp-navbar {
    position: sticky !important;
    top: 0;
    z-index: 9999;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    /* subtle shadow for sticky effect */
}

/* Ensure the wp-block-html element (containing hamburger + nav) is a proper flex child */
.dp-navbar>.wp-block-html {
    display: flex;
    align-items: center;
}

/* On mobile, the logo group shouldn't stretch; the html block takes remaining space */
@media (max-width: 900px) {
    .dp-navbar>.wp-block-html {
        margin-left: auto;
        /* push to the far right of the flex row */
    }

    /* Hide the topbar completely on mobile */
    .dp-topbar {
        display: none !important;
    }
}

/* Features Grid Overlapping Hero */
.dp-features-section {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    padding: 0 5vw;
}

.dp-features-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: -20px;
    /* Overlap the hero section slightly */
    position: relative;
    z-index: 100;
    /* Ensure it sits on top of hero overlay */
}

.dp-feature-card {
    background: #ffffff;
    padding: 30px 20px;
    border: 1px solid #eee;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease;
}

.dp-feature-card:hover {
    transform: translateY(-5px);
}

.dp-feature-icon {
    font-size: 2rem;
    color: #f26522;
    /* Matching the orange from the screenshot */
    margin-bottom: 20px;
}

.dp-feature-title {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
    color: #0a192f;
    margin-bottom: 15px;
    font-family: 'Inter', sans-serif;
}

.dp-feature-text {
    font-size: 0.85rem;
    color: #555;
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 1024px) {
    .dp-features-grid {
        grid-template-columns: repeat(2, 1fr);
        margin-top: -60px;
    }
}

@media (max-width: 600px) {
    .dp-features-grid {
        grid-template-columns: 1fr;
        margin-top: 0;
        /* no negative overlap on mobile — hero height handles spacing */
    }
}

/* --- Hero Section: photo-slider only --- */
.dp-hero-wrap {
    position: relative;
    width: 100%;
    /* Use a viewport width-based height on desktop to maintain aspect ratio and prevent cutting */
    height: 60vw;
    max-height: 80vh;
    min-height: 550px;
    background-color: #0a192f;
    overflow: hidden;
    /* No flex alignment needed — content lives below now */
}

.dp-slide {
    display: none !important;
}

.dp-slide.active {
    display: none !important;
}

.dp-overlay {
    display: none !important;
}

/* --- Below-Hero Text Section --- */
.dp-hero-text-section {
    background-color: #0a192f;
    width: 100%;
    padding: 60px 0 70px;
    border-top: 1px solid rgba(212,175,55,0.15);
}

.dp-hero-content {
    position: static;
    z-index: auto;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 8vw;
    color: #ffffff;
}

.dp-hero-badge {
    display: inline-block;
    background-color: rgba(212, 175, 55, 0.2);
    color: #d4af37;
    padding: 6px 16px;
    border-radius: 30px;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 30px;
    border: 1px solid rgba(212, 175, 55, 0.4);
}

.dp-hero-h1 {
    font-size: 4.5rem;
    line-height: 1.1;
    color: #ffffff;
    margin-bottom: 25px;
    text-transform: none;
    letter-spacing: -1px;
}

.dp-hero-sub {
    font-size: 1.25rem;
    max-width: 600px;
    line-height: 1.6;
    margin-bottom: 40px;
    color: #e2e8f0;
    font-family: 'Inter', sans-serif;
}

.dp-hero-btns {
    display: flex;
    gap: 20px;
}

.dp-btn-primary,
.dp-btn-outline {
    display: inline-block;
    padding: 16px 36px;
    font-size: 1rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 2px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.dp-btn-primary {
    background-color: #d4af37;
    color: #0a192f;
    border: 2px solid #d4af37;
}

.dp-btn-primary:hover {
    background-color: transparent;
    color: #d4af37;
}

.dp-btn-outline {
    background-color: transparent;
    color: #ffffff;
    border: 2px solid #ffffff;
}

.dp-btn-outline:hover {
    background-color: #ffffff;
    color: #0a192f;
}

.dp-dots {
    display: none !important;
}

.dp-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, 0.4);
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
}

.dp-dot.active {
    background-color: #d4af37;
    transform: scale(1.3);
}

/* --- Who We Are (About Us) --- */
.dp-whoweare {
    padding: 100px 5vw;
    background-color: #ffffff;
}

.dp-whoweare-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}

.dp-whoweare-img img {
    width: 100%;
    height: auto;
    border-radius: 4px;
    box-shadow: -20px 20px 0 rgba(212, 175, 55, 0.1);
}

.dp-whoweare-label {
    color: #d4af37;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    display: block;
    margin-bottom: 15px;
}

.dp-whoweare-heading {
    font-size: 3rem;
    line-height: 1.2;
    margin-bottom: 30px;
    color: #0a192f;
}

.dp-whoweare-text p {
    font-size: 1.1rem;
    color: #555;
    margin-bottom: 25px;
}

.dp-whoweare-btn {
    display: inline-block;
    margin-top: 15px;
    color: #0a192f;
    font-weight: 700;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-bottom: 2px solid #d4af37;
    padding-bottom: 5px;
    transition: color 0.3s;
}

.dp-whoweare-btn:hover {
    color: #d4af37;
}

/* --- Services Section --- */
.dp-services-section {
    padding: 100px 5vw;
    background-color: #f5f7fa;
}

.dp-services-header {
    text-align: center;
    margin-bottom: 60px;
}

.dp-services-label {
    color: #d4af37;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.dp-services-heading {
    font-size: 3rem;
    color: #0a192f;
    margin-top: 10px;
}

.dp-services-grid {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 30px;
}

.dp-service-card {
    background: #ffffff;
    padding: 40px;
    border-radius: 4px;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.03);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border-bottom: 3px solid transparent;
}

.dp-service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
    border-bottom-color: #d4af37;
}

.dp-service-icon {
    font-size: 2.5rem;
    margin-bottom: 20px;
    opacity: 0.9;
}

.dp-service-card h3 {
    font-size: 1.35rem;
    margin-bottom: 15px;
    color: #0a192f;
    font-family: var(--wp--preset--font-family--heading);
}

.dp-service-card p {
    color: #666;
    margin-bottom: 25px;
    font-size: 0.95rem;
}

.dp-readmore {
    color: #d4af37;
    font-weight: 600;
    text-decoration: none;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* --- Why Choose Us Section --- */
.dp-whychoose-section {
    padding: 100px 5vw;
    background-color: #ffffff;
}

.dp-whychoose-content {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
}

.dp-whychoose-label {
    font-size: 3rem;
    color: #0a192f;
    margin-bottom: 20px;
    font-family: var(--wp--preset--font-family--heading);
}

.dp-whychoose-intro {
    font-size: 1.1rem;
    color: #555;
    line-height: 1.8;
}

.dp-accordion-item {
    border-bottom: 1px solid #eee;
    margin-bottom: 10px;
}

.dp-accordion-btn {
    width: 100%;
    text-align: left;
    background: none;
    border: none;
    padding: 20px 0;
    font-size: 1.15rem;
    font-weight: 600;
    color: #0a192f;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: var(--wp--preset--font-family--body);
}

.dp-accordion-icon {
    position: relative;
    width: 20px;
    height: 20px;
}

.dp-accordion-icon::before,
.dp-accordion-icon::after {
    content: '';
    position: absolute;
    background-color: #d4af37;
    transition: transform 0.3s ease;
}

.dp-accordion-icon::before {
    top: 9px;
    left: 0;
    width: 20px;
    height: 2px;
}

.dp-accordion-icon::after {
    top: 0;
    left: 9px;
    width: 2px;
    height: 20px;
}

.dp-accordion-btn[aria-expanded="true"] .dp-accordion-icon::after {
    transform: rotate(90deg);
    opacity: 0;
}

.dp-accordion-body {
    padding-bottom: 20px;
    color: #666;
    line-height: 1.7;
    display: none;
}

.dp-accordion-item.active .dp-accordion-body {
    display: block;
}

/* --- Callback Section --- */
.dp-callback-section {
    position: relative;
    padding: 100px 5vw;
    background-image: url('/wp-content/uploads/2026/03/extra2-dpconsulting.jpeg');
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    color: #ffffff;
}

.dp-callback-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(10, 25, 47, 0.85);
    z-index: 1;
}

.dp-callback-content {
    position: relative;
    z-index: 2;
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
}

.dp-callback-heading {
    font-size: 3rem;
    color: #ffffff;
    margin-bottom: 20px;
}

.dp-callback-desc {
    font-size: 1.15rem;
    color: #e2e8f0;
}

.dp-form-row {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
}

.dp-form-input {
    flex: 1;
    padding: 18px 20px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #ffffff;
    font-family: inherit;
    font-size: 1rem;
    border-radius: 2px;
    outline: none;
    transition: border-color 0.3s;
}

.dp-form-input::placeholder {
    color: rgba(255, 255, 255, 0.6);
}

.dp-form-input:focus {
    border-color: #d4af37;
}

.dp-form-select {
    color: rgba(255, 255, 255, 0.6);
}

.dp-form-select option {
    background-color: #0a192f;
    color: #ffffff;
    padding: 10px;
}

.dp-form-submit {
    width: 100%;
    padding: 18px;
    background-color: #d4af37;
    color: #0a192f;
    border: none;
    font-size: 1.1rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    border-radius: 2px;
    cursor: pointer;
    transition: background-color 0.3s;
}

.dp-form-submit:hover {
    background-color: #ffffff;
}

/* --- Testimonials Section --- */
.dp-testimonials-section {
    padding: 100px 5vw;
    background-color: #f5f7fa;
}

.dp-testimonials-content {
    max-width: 1000px;
    margin: 0 auto;
    text-align: center;
}

.dp-testimonials-header {
    margin-bottom: 60px;
}

.dp-testimonials-label {
    color: #d4af37;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.dp-testimonials-heading {
    font-size: 3rem;
    color: #0a192f;
    margin-top: 10px;
}

.dp-testimonial-track {
    position: relative;
    min-height: 200px;
}

.dp-testimonial-card {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    visibility: hidden;
    transition: all 0.5s ease;
    background: #ffffff;
    padding: 50px;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}

.dp-testimonial-card.active {
    opacity: 1;
    visibility: visible;
    position: relative;
}

.dp-testimonial-quote p {
    font-size: 1.4rem;
    font-style: italic;
    color: #333;
    line-height: 1.6;
    margin-bottom: 30px;
    font-family: var(--wp--preset--font-family--heading);
}

.dp-testimonial-author strong {
    display: block;
    color: #0a192f;
    font-size: 1.1rem;
    margin-bottom: 5px;
}

.dp-testimonial-author span {
    color: #d4af37;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.dp-testimonial-dots {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 40px;
}

.dp-tdot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: #cbd5e1;
    cursor: pointer;
    transition: all 0.3s;
}

.dp-tdot.active {
    background-color: #d4af37;
    transform: scale(1.3);
}

/* --- Partners Section --- */
.dp-partners-section {
    padding: 60px 0;
    background-color: #ffffff;
    border-top: 1px solid #eee;
    overflow: hidden;
}

.dp-partners-track {
    display: flex;
    gap: 50px;
    animation: scrollPartners 30s linear infinite;
    width: max-content;
}

.dp-partner-item {
    font-size: 1.25rem;
    font-weight: 600;
    color: #94a3b8;
    white-space: nowrap;
}

@keyframes scrollPartners {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

/* --- Footer --- */
.dp-footer {
    background-color: #050d1a;
    color: #ffffff;
    padding: 80px 5vw 30px;
}

.dp-footer-content {
    max-width: 1200px;
    margin: 0 auto 60px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 40px;
}

.dp-footer-logo {
    max-width: 250px;
    margin-bottom: 15px;
}

.dp-footer-tagline {
    color: #94a3b8;
    font-size: 1.05rem;
}

.dp-footer-nav {
    display: flex;
    gap: 30px;
}

.dp-footer-nav a {
    color: #e2e8f0;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 500;
    transition: color 0.3s;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.dp-footer-nav a:hover {
    color: #d4af37;
}

.dp-footer-bottom {
    max-width: 1200px;
    margin: 0 auto;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding-top: 30px;
    text-align: center;
    color: #64748b;
    font-size: 0.95rem;
}

/* --- Responsive Adjustments --- */
@media (max-width: 900px) {
    .dp-hero-h1 {
        font-size: 3.2rem;
    }

    .dp-whoweare-inner,
    .dp-whychoose-content,
    .dp-callback-content {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .dp-services-grid {
        grid-template-columns: 1fr;
    }

    .dp-form-row {
        flex-direction: column;
        gap: 15px;
    }

    .dp-footer-content {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 768px) {

    /* Reduce massive paddings on mobile */
    .dp-whoweare,
    .dp-services-section,
    .dp-whychoose-section,
    .dp-callback-section,
    .dp-testimonials-section {
        padding: 60px 5vw;
    }

    /* Fix background-attachment: fixed on mobile (doesn't work on iOS) */
    .dp-callback-section {
        background-attachment: scroll;
    }

    .dp-footer {
        padding: 60px 4vw 30px;
    }

    /* Ensure Footer Nav is properly flex-wrapped and centered */
    .dp-footer-nav {
        flex-wrap: wrap;
        justify-content: center;
        gap: 15px 25px;
    }

    .dp-footer-tagline {
        text-align: center;
        width: 100%;
    }

    /* Testimonial Resizing */
    .dp-testimonial-card {
        padding: 30px 20px;
    }

    .dp-testimonial-quote p {
        font-size: 1.15rem;
        margin-bottom: 20px;
    }

    .dp-testimonial-track {
        min-height: 250px;
    }

    /* Partners Track Shrink */
    .dp-partners-track {
        gap: 30px;
    }

    .dp-partner-item {
        font-size: 1.1rem;
    }
}

@media (max-width: 600px) {
    .dp-hero-content {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        text-align: left !important;
        padding-left: 6vw !important;
        padding-right: 6vw !important;
    }

    .dp-hero-h1 {
        font-size: 2.2rem !important;
        letter-spacing: -0.5px !important;
        line-height: 1.15 !important;
    }

    .dp-hero-sub {
        font-size: 1rem !important;
        max-width: 100% !important;
    }

    .dp-hero-btns {
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
        gap: 12px;
    }

    .dp-btn-primary,
    .dp-btn-outline {
        padding: 14px 28px;
        font-size: 0.9rem;
    }

    .dp-whoweare-heading,
    .dp-services-heading,
    .dp-callback-heading,
    .dp-whychoose-label,
    .dp-testimonials-heading {
        font-size: 2.1rem;
    }

    /* Ensure Call to Action inputs are full-width and not cramped */
    .dp-form-input,
    .dp-form-select,
    .dp-form-submit {
        width: 100%;
    }

    /* Topbar: hide address on very small screens */
    .dp-topbar p:first-child {
        display: none;
    }
}

/* --- Hero Slider Redesign --- */
.dp-hero-wrap {
    background-color: #0a192f !important;
    /* height set by base rule above; no align-items — no content inside */
}

.dp-hero-bg-slider {
    position: absolute;
    top: 0;
    left: 0;
    width: 300%;
    height: 100%;
    z-index: 0;
    overflow: hidden;
    display: flex;
    animation: dpHeroScroll 24s ease-in-out infinite alternate;
}

.dp-hero-bg-slide {
    width: 33.3333%;
    height: 100%;
    background-size: cover;
    background-position: center 15%; /* shifted up to prevent cutting the upper part of images */
}

/* On mobile (height:auto hero), make bg-slider fill the hero height via position:absolute + inset */
@media (max-width: 900px) {
    .dp-hero-bg-slider {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 300%;
        height: 100%;
        min-height: 100%;
    }
}

.dp-hero-bg-slide.slide-1 {
    background-image: url('/wp-content/uploads/2026/03/Dennis-Paul-and-associates.jpeg');
}

.dp-hero-bg-slide.slide-2 {
    background-image: url('/wp-content/uploads/2026/03/full-team-dpconsulting-firm.jpeg');
}

.dp-hero-bg-slide.slide-3 {
    background-image: url('/wp-content/uploads/2026/03/extra2-dpconsulting.jpeg');
}

@keyframes dpHeroScroll {

    0%,
    25% {
        transform: translateX(0);
    }

    33%,
    58% {
        transform: translateX(-33.3333%);
    }

    66%,
    100% {
        transform: translateX(-66.6666%);
    }
}

.dp-hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(to bottom, rgba(10, 25, 47, 0.35) 0%, rgba(10, 25, 47, 0.55) 100%);
    z-index: 1;
}

/* Hero content now lives BELOW the slider in its own section */
.dp-hero-content {
    margin: 0 auto !important;
    text-align: left !important;
    max-width: 1200px !important;
    padding-left: 8vw !important;
    padding-right: 8vw !important;
}

.dp-hero-h1 {
    font-size: 4.2rem !important;
    line-height: 1.08 !important;
    letter-spacing: -1.5px !important;
    text-shadow: none;
    color: #ffffff;
    margin-bottom: 20px !important;
}

.dp-hero-sub {
    font-size: 1.2rem !important;
    text-shadow: none;
    color: #cbd5e1 !important;
    max-width: 680px !important;
    margin-bottom: 36px !important;
}

.dp-hero-btns {
    justify-content: flex-start !important;
}

@media (max-width: 900px) {
    .dp-hero-content {
        padding-left: 5vw !important;
        padding-right: 5vw !important;
    }

    .dp-hero-h1 {
        font-size: clamp(1.75rem, 5.5vw, 2.8rem) !important;
        line-height: 1.15 !important;
        letter-spacing: -0.5px !important;
    }

    .dp-hero-sub {
        font-size: clamp(0.9rem, 3.5vw, 1.1rem) !important;
        max-width: 100% !important;
        margin-bottom: 28px !important;
    }

    /* On mobile, hero slider should have a sensible fixed height */
    .dp-hero-wrap {
        height: 50vw !important;
        min-height: 240px !important;
        max-height: 420px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        overflow: hidden !important;
        align-items: unset !important;
    }

    /* Below-hero text section padding on mobile */
    .dp-hero-text-section {
        padding: 40px 0 50px !important;
    }

    .dp-hero-btns {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 14px !important;
    }

    .dp-btn-primary,
    .dp-btn-outline {
        display: inline-block;
        padding: 13px 28px;
        font-size: 0.88rem;
    }

    /* Topbar: hide address on tablet/mobile to avoid overflow */
    .dp-topbar p:first-child {
        display: none;
    }
}

/* No additional overrides needed — the 900px block above handles all mobile sizes */

/* Service Detail Page Luxurious Styles */
.dp-service-hero {
    background: linear-gradient(135deg, #0a192f 0%, #172a45 100%);
    padding: 120px 20px 80px !important;
    margin-bottom: 60px !important;
    position: relative;
    box-shadow: 0 10px 30px -10px rgba(10, 25, 47, 0.5);
    border-bottom: 4px solid #d4af37;
}

.dp-service-title {
    color: #ffffff !important;
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0 auto !important;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
    max-width: 900px;
}

.dp-service-body {
    max-width: 800px;
    margin: 0 auto !important;
    padding: 0 20px 80px !important;
    font-size: 1.15rem;
    line-height: 1.8;
    color: #334155;
}

.dp-service-body h2,
.dp-service-body h3,
.dp-service-body h4 {
    color: #0a192f;
    margin-top: 1.5em;
    margin-bottom: 0.75em;
    font-weight: 600;
}

.dp-service-body h2 {
    font-size: 2rem;
}

.dp-service-body h3 {
    font-size: 1.5rem;
}

.dp-service-body p {
    margin-bottom: 1.5em;
}

@media (max-width: 768px) {
    .dp-service-hero {
        padding: 80px 20px 60px !important;
        margin-bottom: 40px !important;
    }

    .dp-service-body {
        font-size: 1.05rem;
        padding: 0 20px 60px !important;
    }
}

/* --- About Us Page Styling --- */
/* Break out of WP block constraints so it can span edge-to-edge */
.wp-block-post-content:has(.dp-about-page) {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.wp-block-post-content.is-layout-constrained:has(.dp-about-page)>.dp-about-page {
    max-width: 100% !important;
}

/* Hide the duplicate native WordPress page title and top spacer */
body:has(.dp-about-page) h1.wp-block-post-title,
body:has(.dp-about-page) .wp-block-group>.wp-block-spacer:first-child,
body:has(.dp-team-page) h1.wp-block-post-title,
body:has(.dp-team-page) .wp-block-group>.wp-block-spacer:first-child {
    display: none !important;
}

.dp-about-page {
    font-family: var(--wp--preset--font-family--system-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);
    color: #334155;
    line-height: 1.8;
}

.dp-about-hero {
    position: relative;
    background: linear-gradient(135deg, #0a192f 0%, #1a365d 100%);
    padding: 150px 20px;
    text-align: center;
    color: #ffffff;
    overflow: hidden;
}

.dp-about-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at center, rgba(212, 175, 55, 0.15) 0%, transparent 70%);
    pointer-events: none;
}

.dp-about-hero-content {
    position: relative;
    z-index: 2;
    max-width: 800px;
    margin: 0 auto;
}

.dp-about-hero-content h1 {
    font-size: 4rem;
    color: #d4af37;
    margin-bottom: 20px;
    font-family: var(--wp--preset--font-family--heading, "Playfair Display", serif);
    letter-spacing: -1px;
}

.dp-about-hero-content p {
    font-size: 1.5rem;
    color: #cbd5e1;
    font-weight: 300;
}

.dp-about-intro,
.dp-about-perspective,
.dp-about-partners {
    padding: 80px 5vw;
    background-color: #ffffff;
}

.dp-about-perspective {
    background-color: #f8fafc;
}

.dp-about-intro-inner,
.dp-about-perspective-inner,
.dp-about-partners-inner,
.dp-about-contact-inner,
.dp-about-profile-inner {
    max-width: 1600px;
    margin: 0 auto;
}

.dp-about-label {
    display: inline-block;
    color: #d4af37;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 15px;
}

.dp-about-intro h2,
.dp-about-perspective h2,
.dp-about-contact h2 {
    font-size: 2.5rem;
    color: #0a192f;
    margin-bottom: 30px;
    font-family: var(--wp--preset--font-family--heading, "Playfair Display", serif);
}

.dp-about-intro p,
.dp-about-perspective p {
    font-size: 1.15rem;
    margin-bottom: 20px;
    max-width: 900px;
}

.dp-about-partner-profile {
    padding: 80px 5vw;
    background-color: #ffffff;
}

.dp-about-profile-inner {
    display: flex;
    gap: 60px;
    align-items: center;
    background: #ffffff;
    padding: 60px;
    border-radius: 16px;
    box-shadow: 0 20px 50px rgba(10, 25, 47, 0.08);
    position: relative;
    border-top: 5px solid #d4af37;
}

.dp-about-profile-image {
    flex: 0 0 320px;
}

.dp-about-profile-image img {
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
}

.dp-about-profile-info {
    flex: 1;
}

.dp-about-credentials {
    list-style: none;
    padding: 0;
    margin-bottom: 30px;
}

.dp-about-credentials li {
    position: relative;
    padding-left: 30px;
    margin-bottom: 15px;
    font-size: 1.1rem;
    color: #475569;
}

.dp-about-credentials li::before {
    content: '✓';
    position: absolute;
    left: 0;
    top: 2px;
    color: #d4af37;
    font-weight: bold;
}

.dp-about-profile-name h3 {
    margin: 0;
    font-size: 1.8rem;
    color: #0a192f;
    font-family: var(--wp--preset--font-family--heading, "Playfair Display", serif);
}

.dp-about-profile-name span {
    color: #d4af37;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.9rem;
    letter-spacing: 1px;
}

.dp-about-partners-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 20px;
    margin-top: 40px;
}

.dp-about-partner-card {
    background: #f8fafc;
    padding: 40px 20px;
    text-align: center;
    border-radius: 8px;
    border: 1px solid #e2e8f0;
    font-weight: 600;
    color: #0a192f;
    transition: all 0.3s ease;
}

.dp-about-partner-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(10, 25, 47, 0.06);
    border-color: #d4af37;
    color: #d4af37;
}

.dp-about-contact {
    padding: 80px 5vw 120px;
    background-color: #f8fafc;
}

.dp-about-contact-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
}

.dp-about-form-wrap {
    background: #ffffff;
    padding: 50px;
    border-radius: 12px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06);
}

.dp-about-input,
.dp-about-textarea {
    width: 100%;
    padding: 16px;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    background-color: #f8fafc;
    margin-bottom: 20px;
    font-size: 1rem;
    color: #334155;
    transition: border-color 0.3s;
}

.dp-about-input:focus,
.dp-about-textarea:focus {
    outline: none;
    border-color: #d4af37;
    background-color: #ffffff;
}

.dp-about-submit {
    background-color: #0a192f;
    color: #ffffff;
    border: none;
    padding: 16px 40px;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.3s ease;
    width: auto;
}

.dp-about-submit:hover {
    background-color: #d4af37;
}

.dp-about-info-card {
    background: #ffffff;
    padding: 40px;
    border-radius: 12px;
    margin-bottom: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.dp-about-info-label {
    display: block;
    color: #94a3b8;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 10px;
}

.dp-about-info-card h4 {
    font-size: 1.4rem;
    color: #0a192f;
    margin: 0;
    line-height: 1.5;
}

.dp-about-contact-link {
    display: inline-block;
    margin-top: 20px;
    color: #d4af37;
    font-weight: 600;
    text-decoration: none;
}

.dp-about-contact-link:hover {
    text-decoration: underline;
}

@media (max-width: 900px) {

    .dp-about-profile-inner,
    .dp-about-contact-inner {
        grid-template-columns: 1fr;
        flex-direction: column;
    }

    .dp-about-hero-content h1 {
        font-size: 2.8rem;
    }

    .dp-about-profile-image {
        flex: 0 0 auto;
        width: 100%;
        max-width: 350px;
    }
}

/* --- Our Team Page Styling --- */
/* Break out of WP block constraints so it can span edge-to-edge */
.wp-block-post-content:has(.dp-team-page) {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.wp-block-post-content.is-layout-constrained:has(.dp-team-page)>.dp-team-page {
    max-width: 100% !important;
}

.dp-team-page {
    font-family: var(--wp--preset--font-family--system-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);
    color: #334155;
    line-height: 1.6;
}

/* Hero Section */
.dp-team-hero {
    position: relative;
    padding: 100px 20px;
    background: linear-gradient(135deg, #0a192f 0%, #172a45 100%);
    color: #ffffff;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 350px;
    margin-bottom: 60px;
}

.dp-team-hero::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 100%;
    height: 6px;
    background: linear-gradient(90deg, #d4af37 0%, #f9e596 50%, #d4af37 100%);
}

.dp-team-hero-overlay {
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml;utf8,<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><circle cx="2" cy="2" r="1" fill="rgba(255,255,255,0.05)"/></svg>') repeat;
    pointer-events: none;
}

.dp-team-hero-content {
    position: relative;
    z-index: 2;
    max-width: 800px;
}

.dp-team-hero-content h1 {
    font-size: 3.5rem;
    font-weight: 700;
    color: #f3f4f6;
    margin-bottom: 20px;
    letter-spacing: -1px;
    text-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.dp-team-hero-content p {
    font-size: 1.25rem;
    color: #fca311;
    /* Gold accent */
    max-width: 600px;
    margin: 0 auto;
    font-weight: 400;
    letter-spacing: 0.5px;
}

/* Full Team Photo */
.dp-team-full {
    padding: 0 5%;
    margin-bottom: 80px;
    display: flex;
    justify-content: center;
}

.dp-team-full-inner {
    max-width: 1600px;
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}

.dp-team-full-inner img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
    max-height: 700px;
    transition: transform 0.5s ease;
}

.dp-team-full-inner:hover img {
    transform: scale(1.02);
}

/* Team Grid Section */
.dp-team-grid-section {
    padding: 0 5% 100px;
    display: flex;
    justify-content: center;
}

.dp-team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 40px;
    max-width: 1600px;
    width: 100%;
}

/* Individual Team Card */
.dp-team-card {
    background: #ffffff;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid #f1f5f9;
    display: flex;
    flex-direction: column;
}

.dp-team-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
}

.dp-team-img-wrap {
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #f8fafc;
    /* Placeholder skeleton color */
}

.dp-team-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top;
    display: block;
    transition: transform 0.5s ease, filter 0.5s ease;
    filter: brightness(0.95);
}

.dp-team-card:hover .dp-team-img-wrap img {
    transform: scale(1.05);
    filter: brightness(1.05);
}

.dp-team-info {
    padding: 24px;
    text-align: center;
    background: #ffffff;
    border-top: 3px solid #d4af37;
    /* Gold accent line */
    flex-grow: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dp-team-role {
    font-size: 1.1rem;
    font-weight: 600;
    color: #0a192f;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Responsive Overrides */
@media (max-width: 768px) {
    .dp-team-hero-content h1 {
        font-size: 2.5rem;
    }

    .dp-team-hero-content p {
        font-size: 1.1rem;
    }

    .dp-team-hero {
        padding: 60px 20px;
        min-height: 250px;
    }

    .dp-team-grid {
        gap: 20px;
    }
}

/* --- Industries Page Styling --- */
/* Break out of WP block constraints so it can span edge-to-edge */
.wp-block-post-content:has(.dp-industries-page),
.wp-block-post-content.is-layout-constrained:has(.dp-industries-page)>.dp-industries-page {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Hide the duplicate native WordPress page title and top spacer */
body:has(.dp-industries-page) h1.wp-block-post-title,
body:has(.dp-industries-page) .wp-block-group>.wp-block-spacer:first-child {
    display: none !important;
}

.dp-industries-page {
    font-family: var(--wp--preset--font-family--system-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);
    color: #334155;
    line-height: 1.6;
}

/* Hero Section */
.dp-ind-hero {
    position: relative;
    padding: 100px 20px;
    background: linear-gradient(135deg, #0a192f 0%, #172a45 100%);
    color: #ffffff;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 350px;
    margin-bottom: 60px;
}

.dp-ind-hero::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 100%;
    height: 6px;
    background: linear-gradient(90deg, #d4af37 0%, #f9e596 50%, #d4af37 100%);
}

.dp-ind-hero-overlay {
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml;utf8,<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><circle cx="2" cy="2" r="1" fill="rgba(255,255,255,0.05)"/></svg>') repeat;
    pointer-events: none;
}

.dp-ind-hero-content {
    position: relative;
    z-index: 2;
    max-width: 800px;
}

.dp-ind-hero-content h1 {
    font-size: 3.5rem;
    font-weight: 700;
    color: #f3f4f6;
    margin-bottom: 20px;
    letter-spacing: -1px;
    text-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.dp-ind-hero-content p {
    font-size: 1.25rem;
    color: #fca311;
    /* Gold accent */
    max-width: 600px;
    margin: 0 auto;
    font-weight: 400;
    letter-spacing: 0.5px;
}

/* Intro Section */
.dp-ind-intro {
    padding: 20px 5% 60px;
    display: flex;
    justify-content: center;
    text-align: center;
}

.dp-ind-intro-inner {
    max-width: 900px;
}

.dp-ind-label {
    display: inline-block;
    color: #d4af37;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.dp-ind-intro-inner h2 {
    font-size: 2.5rem;
    color: #0a192f;
    margin-bottom: 24px;
    font-weight: 700;
}

.dp-ind-intro-inner p {
    font-size: 1.15rem;
    color: #64748b;
    line-height: 1.8;
}

/* Grid Section */
.dp-ind-grid-section {
    padding: 0 5% 100px;
    display: flex;
    justify-content: center;
}

.dp-ind-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 40px;
    max-width: 1400px;
    width: 100%;
}

/* Individual Card */
.dp-ind-card {
    background: #ffffff;
    border-radius: 8px;
    padding: 40px 30px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid #f1f5f9;
    border-top: 4px solid #d4af37;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.dp-ind-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
}

.dp-ind-card-icon {
    font-size: 3.5rem;
    margin-bottom: 20px;
    color: #0a192f;
    /* Usually emojis retain their color, but if icon fonts are used later, it helps */
}

.dp-ind-card h3 {
    font-size: 1.35rem;
    color: #0a192f;
    margin-bottom: 16px;
    font-weight: 700;
    line-height: 1.4;
}

.dp-ind-card p {
    font-size: 1rem;
    color: #64748b;
    line-height: 1.6;
    margin: 0;
}

/* Contact Block */
.dp-ind-contact {
    background: #0a192f;
    padding: 80px 5%;
    display: flex;
    justify-content: center;
}

.dp-ind-contact-inner {
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
    text-align: center;
}

.dp-ind-contact .dp-ind-label {
    color: #fca311;
}

.dp-ind-contact h2 {
    font-size: 2.5rem;
    color: #ffffff;
    margin-bottom: 40px;
    font-weight: 700;
}

.dp-ind-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.dp-ind-form-row {
    display: flex;
    gap: 20px;
}

.dp-ind-input {
    width: 100%;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    padding: 12px 0;
    color: #ffffff;
    font-size: 1.1rem;
    font-family: inherit;
    transition: border-color 0.3s ease;
}

.dp-ind-input::placeholder {
    color: rgba(255, 255, 255, 0.5);
}

.dp-ind-input:focus {
    outline: none;
    border-bottom-color: #d4af37;
}

.dp-ind-textarea {
    resize: vertical;
}

.dp-ind-submit {
    background: #d4af37;
    color: #0a192f;
    font-weight: 700;
    font-size: 1rem;
    padding: 16px 32px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease;
    align-self: center;
    margin-top: 20px;
    letter-spacing: 1px;
}

.dp-ind-submit:hover {
    background: #e6c55a;
    transform: translateY(-2px);
}

/* Responsive Overrides */
@media (max-width: 768px) {
    .dp-ind-hero-content h1 {
        font-size: 2.5rem;
    }

    .dp-ind-hero-content p {
        font-size: 1.1rem;
    }

    .dp-ind-form-row {
        flex-direction: column;
        gap: 0;
    }

    .dp-ind-intro-inner h2,
    .dp-ind-contact h2 {
        font-size: 2rem;
    }
}

/* --- Contact Us Page Styling --- */
/* Break out of WP block constraints so it can span edge-to-edge */
.wp-block-post-content:has(.dp-contact-page),
.wp-block-post-content.is-layout-constrained:has(.dp-contact-page)>.dp-contact-page {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Hide the duplicate native WordPress page title and top spacer */
body:has(.dp-contact-page) h1.wp-block-post-title,
body:has(.dp-contact-page) .wp-block-group>.wp-block-spacer:first-child {
    display: none !important;
}

.dp-contact-page {
    font-family: var(--wp--preset--font-family--system-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);
    color: #334155;
    line-height: 1.6;
    background-color: #f8fafc;
}

/* Hero Section */
.dp-ct-hero {
    position: relative;
    padding: 120px 20px 140px;
    background: linear-gradient(135deg, #0a192f 0%, #172a45 100%);
    color: #ffffff;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.dp-ct-hero-overlay {
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml;utf8,<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><circle cx="2" cy="2" r="1" fill="rgba(255,255,255,0.05)"/></svg>') repeat;
    pointer-events: none;
}

.dp-ct-hero-content {
    position: relative;
    z-index: 2;
    max-width: 800px;
}

.dp-ct-hero-label {
    display: inline-block;
    color: #d4af37;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.dp-ct-hero h1 {
    font-size: 3.5rem;
    font-weight: 700;
    color: #f3f4f6;
    margin-bottom: 20px;
    letter-spacing: -1px;
    text-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.dp-ct-hero p {
    font-size: 1.25rem;
    color: #fca311;
    max-width: 600px;
    margin: 0 auto;
    font-weight: 400;
}

/* Info Bar */
.dp-ct-infobar {
    padding: 0 5%;
    display: flex;
    justify-content: center;
    margin-top: -60px;
    position: relative;
    z-index: 5;
}

.dp-ct-infobar-inner {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.08);
    max-width: 1200px;
    width: 100%;
    overflow: hidden;
    border-top: 4px solid #d4af37;
}

.dp-ct-infobar-card {
    padding: 40px 30px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    border-right: 1px solid #f1f5f9;
}

.dp-ct-infobar-card:last-child {
    border-right: none;
}

.dp-ct-ibar-icon {
    font-size: 2.2rem;
    flex-shrink: 0;
}

.dp-ct-infobar-card strong {
    display: block;
    font-size: 1.2rem;
    color: #0a192f;
    margin-bottom: 8px;
}

.dp-ct-infobar-card p {
    font-size: 0.95rem;
    color: #64748b;
    margin: 0;
    line-height: 1.5;
}

.dp-ct-infobar-card a {
    color: #64748b;
    text-decoration: none;
    transition: color 0.3s ease;
}

.dp-ct-infobar-card a:hover {
    color: #d4af37;
}

/* Form Section */
.dp-ct-form-section {
    padding: 100px 5% 80px;
    display: flex;
    justify-content: center;
}

.dp-ct-form-inner {
    max-width: 800px;
    width: 100%;
    background: #ffffff;
    padding: 60px;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03);
    border: 1px solid #f1f5f9;
}

.dp-ct-form-head {
    text-align: center;
    margin-bottom: 40px;
}

.dp-ct-label {
    display: inline-block;
    color: #d4af37;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: 12px;
}

.dp-ct-form-head h2 {
    font-size: 2.5rem;
    color: #0a192f;
    margin-bottom: 16px;
    font-weight: 700;
}

.dp-ct-form-head p {
    font-size: 1.1rem;
    color: #64748b;
}

.dp-ct-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.dp-ct-form-row {
    display: flex;
    gap: 24px;
}

.dp-ct-form-group {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.dp-ct-form-label {
    font-weight: 600;
    font-size: 0.9rem;
    color: #334155;
    margin-bottom: 8px;
}

.dp-ct-input {
    width: 100%;
    background: #f8fafc;
    border: 2px solid transparent;
    border-bottom: 2px solid #e2e8f0;
    padding: 14px 16px;
    font-size: 1rem;
    font-family: inherit;
    color: #0a192f;
    border-radius: 4px 4px 0 0;
    transition: all 0.3s ease;
}

.dp-ct-input::placeholder {
    color: #94a3b8;
}

.dp-ct-input:focus {
    outline: none;
    background: #ffffff;
    border-bottom-color: #d4af37;
    box-shadow: 0 4px 10px rgba(212, 175, 55, 0.1);
}

.dp-ct-textarea {
    resize: vertical;
    min-height: 150px;
}

.dp-ct-form-footer {
    text-align: center;
    margin-top: 10px;
}

.dp-ct-submit {
    background: #d4af37;
    color: #0a192f;
    font-weight: 700;
    font-size: 1rem;
    padding: 18px 40px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
    letter-spacing: 1px;
    width: 100%;
    max-width: 300px;
}

.dp-ct-submit:hover {
    background: #e6c55a;
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(212, 175, 55, 0.2);
}

/* Map Section */
.dp-ct-map {
    width: 100%;
    height: 400px;
    background: #e2e8f0;
    /* Placeholder for embedded iframe */
}

/* Responsive Overrides */
@media (max-width: 900px) {
    .dp-ct-infobar-inner {
        grid-template-columns: 1fr;
    }

    .dp-ct-infobar-card {
        border-right: none;
        border-bottom: 1px solid #f1f5f9;
        padding: 30px 20px;
    }

    .dp-ct-infobar-card:last-child {
        border-bottom: none;
    }
}

@media (max-width: 768px) {
    .dp-ct-hero {
        padding: 100px 20px 100px;
    }

    .dp-ct-hero h1 {
        font-size: 2.5rem;
    }

    .dp-ct-form-inner {
        padding: 40px 20px;
    }

    .dp-ct-form-row {
        flex-direction: column;
        gap: 24px;
    }

    .dp-ct-form-head h2 {
        font-size: 2rem;
    }
}

/* --- Career Page Styling --- */
/* Break out of WP block constraints so it can span edge-to-edge */
.wp-block-post-content:has(.dp-cr-hero),
.wp-block-post-content.is-layout-constrained:has(.dp-cr-hero)>.dp-cr-hero {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Hide the duplicate native WordPress page title and top spacer */
body:has(.dp-cr-hero) h1.wp-block-post-title,
body:has(.dp-cr-hero) .wp-block-group>.wp-block-spacer:first-child {
    display: none !important;
}

/* Base resets for the career page wrapper */
.wp-block-post-content:has(.dp-cr-hero) {
    font-family: var(--wp--preset--font-family--system-font, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif);
    color: #334155;
    line-height: 1.6;
    background-color: #f8fafc;
}

/* Hero Section */
.dp-cr-hero {
    position: relative;
    padding: 120px 20px 140px;
    background: linear-gradient(135deg, #0a192f 0%, #172a45 100%);
    color: #ffffff;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.dp-cr-hero-overlay {
    position: absolute;
    inset: 0;
    background: url('data:image/svg+xml;utf8,<svg width="20" height="20" xmlns="http://www.w3.org/2000/svg"><circle cx="2" cy="2" r="1" fill="rgba(255,255,255,0.05)"/></svg>') repeat;
    pointer-events: none;
}

.dp-cr-hero-content {
    position: relative;
    z-index: 2;
    max-width: 800px;
}

.dp-cr-badge {
    display: inline-block;
    color: #0a192f;
    background: #d4af37;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 6px 16px;
    border-radius: 50px;
    margin-bottom: 20px;
}

.dp-cr-hero h1 {
    font-size: 3.5rem;
    font-weight: 700;
    color: #f3f4f6;
    margin-bottom: 20px;
    letter-spacing: -1px;
    text-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.dp-cr-sub {
    font-size: 1.25rem;
    color: #cbd5e1;
    max-width: 600px;
    margin: 0 auto;
    font-weight: 400;
}

/* Main Form Area */
.dp-cr-main {
    padding: 0 5% 100px;
    display: flex;
    justify-content: center;
    margin-top: -80px;
    position: relative;
    z-index: 5;
}

.dp-cr-main-inner {
    max-width: 750px;
    width: 100%;
}

.dp-cr-form-card {
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
    border-top: 4px solid #d4af37;
    padding: 50px 60px;
    display: flex;
    flex-direction: column;
}

.dp-cr-form-card h3 {
    font-size: 2.2rem;
    color: #0a192f;
    margin-bottom: 30px;
    font-weight: 700;
    text-align: center;
}

/* Individual Form Elements */
.dp-cr-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.dp-cr-input,
.dp-cr-textarea {
    width: 100%;
    background: #f8fafc;
    border: 2px solid transparent;
    border-bottom: 2px solid #e2e8f0;
    padding: 16px 20px;
    font-size: 1rem;
    font-family: inherit;
    color: #0a192f;
    border-radius: 4px 4px 0 0;
    transition: all 0.3s ease;
}

.dp-cr-input::placeholder,
.dp-cr-textarea::placeholder {
    color: #94a3b8;
}

.dp-cr-input:focus,
.dp-cr-textarea:focus {
    outline: none;
    background: #ffffff;
    border-bottom-color: #d4af37;
    box-shadow: 0 4px 10px rgba(212, 175, 55, 0.1);
}

.dp-cr-textarea {
    resize: vertical;
    min-height: 160px;
}

.dp-cr-form br {
    display: none;
    /* Hide default block <br> formatting injected by editors */
}

/* Submit Button */
.dp-cr-submit {
    background: #d4af37;
    color: #0a192f;
    font-weight: 700;
    font-size: 1.05rem;
    padding: 18px 40px;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.3s ease, transform 0.2s ease, box-shadow 0.3s ease;
    letter-spacing: 1px;
    text-transform: uppercase;
    width: 100%;
    margin-top: 10px;
}

.dp-cr-submit:hover {
    background: #e6c55a;
    transform: translateY(-2px);
    box-shadow: 0 10px 20px rgba(212, 175, 55, 0.2);
}

/* Side/Bottom Support info within Form Card */
.dp-cr-support {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 30px;
    margin-top: 50px;
    padding-top: 30px;
    border-top: 1px solid #f1f5f9;
}

.dp-cr-support div {
    flex: 1;
}

.dp-cr-support h4 {
    font-size: 1.1rem;
    color: #0a192f;
    margin-bottom: 8px;
}

.dp-cr-support p {
    font-size: 0.95rem;
    color: #64748b;
    margin: 0;
    line-height: 1.5;
}

.dp-cr-support strong {
    color: #334155;
}

/* Responsive Overrides */
@media (max-width: 768px) {
    .dp-cr-hero {
        padding: 100px 20px 120px;
    }

    .dp-cr-hero h1 {
        font-size: 2.5rem;
    }

    .dp-cr-form-card {
        padding: 40px 20px;
    }

    .dp-cr-form-card h3 {
        font-size: 1.8rem;
    }

    .dp-cr-support {
        flex-direction: column;
        gap: 20px;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Scroll-To-Top Button
   ═══════════════════════════════════════════════════════════════ */
#dp-scroll-top {
    /* Position */
    position: fixed;
    bottom: 32px;
    right: 28px;
    z-index: 99999;

    /* Box */
    width: 50px;
    height: 50px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background-color: #0a192f;
    cursor: pointer;
    outline: none;

    /* Layout */
    display: flex;
    align-items: center;
    justify-content: center;

    /* Hidden by default — slide-up + fade in when .dp-stt-visible is added */
    opacity: 0;
    transform: translateY(20px);
    pointer-events: none;
    transition:
        opacity 0.35s ease,
        transform 0.35s ease,
        box-shadow 0.25s ease,
        background-color 0.25s ease;
    box-shadow: 0 4px 18px rgba(10, 25, 47, 0.35);
}

/* Visible state */
#dp-scroll-top.dp-stt-visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

/* Hover: lift + gold glow */
#dp-scroll-top:hover {
    background-color: #1a2e4a;
    transform: translateY(-4px);
    box-shadow: 0 10px 30px rgba(212, 175, 55, 0.35);
}

/* Active press */
#dp-scroll-top:active {
    transform: translateY(-1px) scale(0.95);
    box-shadow: 0 4px 12px rgba(212, 175, 55, 0.2);
}

/* SVG Progress Ring */
.dp-stt-ring {
    position: absolute;
    top: 0;
    left: 0;
    width: 50px;
    height: 50px;
    transform: rotate(-90deg); /* start from the top */
    pointer-events: none;
}

.dp-stt-track {
    fill: none;
    stroke: rgba(212, 175, 55, 0.18);
    stroke-width: 2.5;
}

.dp-stt-progress {
    fill: none;
    stroke: #d4af37;
    stroke-width: 2.5;
    stroke-linecap: round;
    transition: stroke-dashoffset 0.1s linear;
}

/* Arrow Icon */
.dp-stt-arrow {
    position: relative;
    z-index: 1;
    width: 20px;
    height: 20px;
    stroke: #ffffff;
    flex-shrink: 0;
    transition: transform 0.25s ease;
}

#dp-scroll-top:hover .dp-stt-arrow {
    transform: translateY(-2px);
}

/* Smaller on very small screens */
@media (max-width: 480px) {
    #dp-scroll-top {
        width: 44px;
        height: 44px;
        bottom: 20px;
        right: 16px;
    }
    .dp-stt-ring {
        width: 44px;
        height: 44px;
    }
    .dp-stt-arrow {
        width: 17px;
        height: 17px;
    }
}