/* =============================================================
   Dytadex Directory — Main Stylesheet
   ============================================================= */

/* ---- Variables -------------------------------------------- */
:root {
    --dd-blue:         #1f2937;
    --dd-blue-dark:    #111827;
    --dd-blue-light:   #f3f4f6;
    --dd-red:          #dc2626;
    --dd-green:        #3da0ad;
    --dd-green-light:  #ecfdf5;
    --dd-orange:       #3da0ad;
    --dd-orange-light: #fff7ed;
    --dd-bg:           #f1f5f9;
    --dd-surface:      #ffffff;
    --dd-border:       #e2e8f0;
    --dd-text:         #0f172a;
    --dd-muted:        #64748b;
    --dd-radius:       8px;
    --dd-shadow:       0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
    --dd-shadow-hover: 0 4px 12px rgba(0,0,0,.12);
    --dd-accent:       #ea580c;
    --dd-heading-weight: 800;
    --dd-container:    1200px;
    --dd-gap:          1.5rem;
}

/* ---- SVG Icon base ---------------------------------------- */
.dd-icon {
    display: inline-block;
    vertical-align: middle;
    width: 1.25em;
    height: 1.25em;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.5;
    flex-shrink: 0;
}

/* ---- Reset / Base ----------------------------------------- */
.dd-container {
    max-width: var(--dd-container);
    margin: 0 auto;
    padding: 0 1.25rem;
}

/* ---- Focus (keyboard accessibility) ----------------------- */
:focus-visible {
    outline: 2px solid var(--dd-blue);
    outline-offset: 2px;
}
/* Light outline on dark backgrounds */
.dd-hero :focus-visible,
.dd-newsletter :focus-visible,
.dd-footer :focus-visible,
.dd-stats-bar :focus-visible {
    outline-color: #fff;
}

/* ---- Buttons ---------------------------------------------- */
.dd-btn {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .55rem 1.1rem;
    border-radius: var(--dd-radius);
    font-size: .875rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    border: 2px solid transparent;
    transition: background .18s, color .18s, border-color .18s, box-shadow .18s;
    white-space: nowrap;
}
.dd-btn--primary {
    background: var(--dd-blue);
    color: #fff;
    border-color: var(--dd-blue);
}
.dd-btn--primary:hover {
    background: var(--dd-blue-dark);
    border-color: var(--dd-blue-dark);
    color: #fff;
}
.dd-btn--secondary {
    background: var(--dd-green);
    color: #fff;
    border-color: var(--dd-green);
}
.dd-btn--secondary:hover {
    background: #2b8a97;
    border-color: #2b8a97;
    color: #fff;
}
.dd-btn--outline {
    background: transparent;
    color: var(--dd-blue);
    border-color: var(--dd-blue);
}
.dd-btn--outline:hover {
    background: var(--dd-blue-light);
}
.dd-btn--large {
    padding: .75rem 1.5rem;
    font-size: 1rem;
}

/* ---- Badges ----------------------------------------------- */
.dd-badge {
    display: inline-block;
    padding: .2rem .65rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.dd-badge--job        { background: #dbeafe; color: #1e40af; }
.dd-badge--tender     { background: #fef3c7; color: #92400e; }
.dd-badge--auction    { background: #ede9fe; color: #5b21b6; }
.dd-badge--public_notice, .dd-badge--notice { background: #dcfce7; color: #166534; }
.dd-badge--admissions { background: #e0e7ff; color: #3730a3; }
.dd-badge--scholarship { background: #ccfbf1; color: #134e4a; }
.dd-badge--fair       { background: #fce7f3; color: #9d174d; }
.dd-badge--epaper     { background: #f1f5f9; color: #334155; }
.dd-badge--property   { background: #fff7ed; color: #7c2d12; }
.dd-badge--it-service { background: #f0fdf4; color: #14532d; }

/* ---- Grid ------------------------------------------------- */
.dd-grid {
    display: grid;
    gap: var(--dd-gap);
}
.dd-grid--2col { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.dd-grid--3col { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.dd-grid--4col { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

/* ---- Card ------------------------------------------------- */
.dd-card {
    background: var(--dd-surface);
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: var(--dd-shadow);
    transition: box-shadow .2s, transform .2s;
}
.dd-card:hover {
    box-shadow: var(--dd-shadow-hover);
    transform: translateY(-2px);
}
.dd-card__thumb-link {
    display: block;
    overflow: hidden;
    aspect-ratio: 16/9;
    background: var(--dd-bg);
}
.dd-card__thumb {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .3s;
}
.dd-card:hover .dd-card__thumb {
    transform: scale(1.03);
}
.dd-card__thumb--empty {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #e2e8f0 25%, #cbd5e1 100%);
}
.dd-card__body {
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    flex: 1;
}
.dd-card__title {
    font-size: .95rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
}
.dd-card__title a {
    color: var(--dd-text);
    text-decoration: none;
}
.dd-card__title a:hover {
    color: var(--dd-blue);
}
.dd-card__meta {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    font-size: .8rem;
    color: var(--dd-muted);
}
.dd-card__meta-item {
    display: flex;
    align-items: center;
    gap: .3rem;
}
.dd-card__last-date {
    color: var(--dd-red);
    font-weight: 600;
}
.dd-card__cta {
    margin-top: auto;
    align-self: flex-start;
    font-size: .8rem;
    padding: .4rem .9rem;
}

/* ---- Homepage: Hero --------------------------------------- */
.dd-hero {
    background: #1f2937;
    color: #fff;
    padding: 4rem 1.25rem;
    text-align: center;
}
.dd-hero__title {
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 800;
    margin: 0 0 .75rem;
    color: #fff;
}
.dd-hero__subtitle {
    font-size: 1.1rem;
    opacity: .85;
    margin: 0 0 2rem;
}
.dd-hero__search {
    display: flex;
    max-width: 600px;
    margin: 0 auto 2rem;
    border-radius: var(--dd-radius);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,.25);
}
.dd-hero__search input[type="search"] {
    flex: 1;
    padding: .85rem 1.1rem;
    font-size: 1rem;
    border: none;
    outline: none;
    color: var(--dd-text);
}
.dd-hero__search button {
    padding: .85rem 1.5rem;
    background: var(--dd-orange);
    color: #fff;
    border: none;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .18s;
}
.dd-hero__search button:hover { background: #2b8a97; }
.dd-hero__browse {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .6rem;
}
.dd-hero__browse-label {
    font-size: .9rem;
    opacity: .8;
    width: 100%;
    margin-bottom: .25rem;
}
.dd-hero__browse a {
    background: rgba(255,255,255,.15);
    color: #fff;
    padding: .4rem 1rem;
    border-radius: 999px;
    font-size: .875rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid rgba(255,255,255,.3);
    transition: background .18s;
}
.dd-hero__browse a:hover {
    background: rgba(255,255,255,.3);
    color: #fff;
}
.dd-hero__browse a .dd-icon {
    width: 1rem;
    height: 1rem;
}
.dd-hero .dd-btn--outline {
    color: #fff;
    border-color: rgba(255,255,255,.7);
}
.dd-hero .dd-btn--outline:hover {
    background: rgba(255,255,255,.15);
    border-color: #fff;
    color: #fff;
}

/* ---- Homepage: Category Grid ----------------------------- */
.dd-section {
    padding: 3rem 0;
}
.dd-section--alt {
    background: var(--dd-bg);
}
.dd-section__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: .5rem;
}
.dd-section__title {
    font-size: clamp(1.35rem, 3vw, 1.75rem);
    font-weight: var(--dd-heading-weight);
    color: var(--dd-text);
    margin: 0;
    display: flex;
    align-items: center;
    gap: .5rem;
}
.dd-section__title .dd-icon {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--dd-blue);
}
.dd-section__view-all {
    font-size: .875rem;
    font-weight: 600;
    color: var(--dd-blue);
    text-decoration: none;
    white-space: nowrap;
}
.dd-section__view-all:hover { text-decoration: underline; }

.dd-cat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 1rem;
}
.dd-cat-card {
    background: var(--dd-surface);
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius);
    padding: 1.25rem 1rem;
    text-align: center;
    text-decoration: none;
    color: var(--dd-text);
    box-shadow: var(--dd-shadow);
    transition: box-shadow .2s, transform .2s, border-color .2s;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
}
.dd-cat-card:hover {
    box-shadow: var(--dd-shadow-hover);
    transform: translateY(-2px);
    border-color: var(--dd-blue);
    color: var(--dd-text);
}
.dd-cat-card__icon {
    font-size: 2rem;
    line-height: 1;
}
.dd-cat-card__icon .dd-icon {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--dd-blue);
}
.dd-cat-card__label {
    font-weight: 700;
    font-size: .9rem;
}
.dd-cat-card__count {
    font-size: .8rem;
    color: var(--dd-muted);
}

/* ---- Homepage: Deadlines ---------------------------------- */
.dd-deadlines {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
.dd-deadline-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--dd-surface);
    border: 1px solid var(--dd-border);
    border-left: 4px solid var(--dd-red);
    border-radius: var(--dd-radius);
    padding: .85rem 1.1rem;
    text-decoration: none;
    color: var(--dd-text);
    box-shadow: var(--dd-shadow);
    transition: box-shadow .18s;
    gap: 1rem;
}
.dd-deadline-item:hover {
    box-shadow: var(--dd-shadow-hover);
    color: var(--dd-text);
}
.dd-deadline-item__title {
    font-weight: 600;
    font-size: .9rem;
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.dd-deadline-item__date {
    font-size: .8rem;
    font-weight: 700;
    color: var(--dd-red);
    white-space: nowrap;
}
.dd-deadline-item__badge {
    flex-shrink: 0;
}

/* ---- Homepage: Newsletter --------------------------------- */
.dd-newsletter {
    background: linear-gradient(135deg, #111827, #1f2937);
    color: #fff;
    padding: 3.5rem 1.25rem;
    text-align: center;
}
.dd-newsletter__title {
    font-size: 1.6rem;
    font-weight: 800;
    color: #fff;
    margin: 0 0 .5rem;
}
.dd-newsletter__sub {
    opacity: .85;
    margin: 0 0 1.75rem;
}
.dd-newsletter__form {
    display: flex;
    max-width: 480px;
    margin: 0 auto;
    border-radius: var(--dd-radius);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0,0,0,.25);
}
.dd-newsletter__form input[type="email"] {
    flex: 1;
    padding: .85rem 1.1rem;
    border: none;
    outline: none;
    font-size: .95rem;
    color: var(--dd-text);
}
.dd-newsletter__form button {
    padding: .85rem 1.4rem;
    background: var(--dd-orange);
    color: #fff;
    border: none;
    font-weight: 700;
    cursor: pointer;
    font-size: .95rem;
    transition: background .18s;
}
.dd-newsletter__form button:hover { background: #2b8a97; }

/* ---- Archive Page ---------------------------------------- */
.dd-archive-page {
    background: var(--dd-bg);
    min-height: 60vh;
    padding-bottom: 4rem;
}
.dd-archive-header {
    padding: 2.5rem 0 2rem;
    border-bottom: 1px solid var(--dd-border);
    margin-bottom: 2rem;
}
.dd-archive-header__title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 800;
    margin: 0 0 .6rem;
    color: var(--dd-text);
}
.dd-archive-header__intro {
    color: var(--dd-muted);
    max-width: 700px;
    margin: 0;
    font-size: .95rem;
    line-height: 1.7;
}
.dd-pagination {
    margin-top: 2.5rem;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: .4rem;
}
.dd-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    height: 2.25rem;
    padding: 0 .65rem;
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius);
    background: var(--dd-surface);
    color: var(--dd-text);
    text-decoration: none;
    font-size: .875rem;
    font-weight: 600;
    transition: background .18s, border-color .18s;
}
.dd-pagination .page-numbers.current {
    background: var(--dd-blue);
    border-color: var(--dd-blue);
    color: #fff;
}
.dd-pagination .page-numbers:hover:not(.current) {
    background: var(--dd-blue-light);
    border-color: var(--dd-blue);
    color: var(--dd-blue);
}
.dd-no-results {
    text-align: center;
    color: var(--dd-muted);
    padding: 4rem 0;
    font-size: 1.1rem;
}
.dd-archive-seo {
    margin-top: 3rem;
    padding: 2rem;
    background: var(--dd-surface);
    border-radius: var(--dd-radius);
    border: 1px solid var(--dd-border);
    color: var(--dd-muted);
    font-size: .9rem;
    line-height: 1.8;
}
.dd-archive-seo h2, .dd-archive-seo h3 {
    color: var(--dd-text);
    font-size: 1.05rem;
    margin-top: 1.25rem;
}

/* ---- Single Page ----------------------------------------- */
.dd-single-page {
    background: var(--dd-bg);
    min-height: 60vh;
    padding-bottom: 4rem;
}
.dd-breadcrumb {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: 1.25rem 0 .75rem;
    font-size: .82rem;
    color: var(--dd-muted);
    flex-wrap: wrap;
}
.dd-breadcrumb a {
    color: var(--dd-blue);
    text-decoration: none;
}
.dd-breadcrumb a:hover { text-decoration: underline; }

.dd-single {
    background: var(--dd-surface);
    border: 1px solid var(--dd-border);
    border-radius: var(--dd-radius);
    padding: 2rem;
    box-shadow: var(--dd-shadow);
}
.dd-single__header {
    margin-bottom: 1.5rem;
}
.dd-single__title {
    font-size: clamp(1.25rem, 3vw, 1.85rem);
    font-weight: 800;
    line-height: 1.3;
    margin: .6rem 0;
    color: var(--dd-text);
}
.dd-single__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: .82rem;
    color: var(--dd-muted);
}
.dd-single__meta a { color: var(--dd-blue); text-decoration: none; }
.dd-single__featured-image {
    margin: 1.5rem 0;
    border-radius: var(--dd-radius);
    overflow: hidden;
    border: 1px solid var(--dd-border);
}
.dd-single__featured-image img {
    width: 100%;
    height: auto;
    display: block;
    max-height: 420px;
    object-fit: cover;
}
.dd-single__content {
    margin-top: 1.75rem;
    line-height: 1.8;
    color: var(--dd-text);
    font-size: .95rem;
}
.dd-single__content--ocr {
    background: var(--dd-bg);
    border-radius: var(--dd-radius);
    padding: 1.25rem;
    border: 1px solid var(--dd-border);
    font-family: inherit;
    white-space: pre-wrap;
    font-size: .875rem;
    color: var(--dd-muted);
}
.dd-single__cta-bar {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--dd-border);
}

/* ---- Info Box --------------------------------------------- */
.dd-info-box {
    background: var(--dd-blue-light);
    border: 1px solid #bfdbfe;
    border-radius: var(--dd-radius);
    padding: 1.25rem 1.5rem;
    margin-top: 1.5rem;
}
.dd-info-box__title {
    font-size: .9rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--dd-blue-dark);
    margin: 0 0 1rem;
}
.dd-info-box__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .75rem;
    margin: 0;
}
.dd-info-box__row { margin: 0; }
.dd-info-box__row dt {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--dd-muted);
    margin-bottom: .15rem;
}
.dd-info-box__row dd {
    font-size: .9rem;
    font-weight: 600;
    color: var(--dd-text);
    margin: 0;
}
.dd-info-box__row dd a {
    color: var(--dd-blue);
    text-decoration: none;
    word-break: break-all;
}
.dd-info-box__row--urgent dd { color: var(--dd-red); }
.dd-info-box__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid #bfdbfe;
}

/* ---- Related Posts --------------------------------------- */
.dd-related {
    margin-top: 3rem;
}
.dd-related__title {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 1.25rem;
    color: var(--dd-text);
}

/* ---- Footer ----------------------------------------------- */
.dd-footer {
    background-color: var(--dd-blue-dark);
    color: #cbd5e1;
    margin-top: 4rem;
}

.dd-footer__inner {
    display: flex;
    align-items: flex-start;
    gap: 2.5rem;
    padding: 3rem 1.5rem 2rem;
}

.dd-footer__brand {
    flex: 1 1 220px;
}

.dd-footer__logo {
    display: inline-block;
    font-size: 1.25rem;
    font-weight: 700;
    color: #ffffff;
    text-decoration: none;
    margin-bottom: .5rem;
}

.dd-footer__tagline {
    font-size: .85rem;
    color: #94a3b8;
    margin: 0;
    line-height: 1.5;
}

.dd-footer__nav {
    flex: 1 1 200px;
}

.dd-footer__nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.dd-footer__nav-list li a {
    color: #cbd5e1;
    text-decoration: none;
    font-size: .9rem;
    transition: color .15s;
}

.dd-footer__nav-list li a:hover {
    color: #ffffff;
}

.dd-footer__social {
    display: flex;
    gap: .75rem;
    align-items: center;
    flex-shrink: 0;
    padding-top: .25rem;
}

.dd-footer__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background-color: rgba(255, 255, 255, .1);
    color: #cbd5e1;
    text-decoration: none;
    transition: background-color .15s, color .15s;
}

.dd-footer__social-link:hover {
    background-color: var(--dd-blue);
    color: #ffffff;
}

.dd-footer__bottom {
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding: 1rem 1.5rem;
}

.dd-footer__copyright {
    font-size: .8rem;
    color: #94a3b8;
    margin: 0;
    text-align: center;
}

/* ---- Shared helpers -------------------------------------- */
.dd-container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 1.25rem;
}
.dd-section-heading {
    text-align: center;
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--dd-text);
    margin: 0 0 .5rem;
}
.dd-section-sub {
    text-align: center;
    color: var(--dd-muted);
    margin: 0 0 2.5rem;
    font-size: 1rem;
}

/* ---- How It Works ---------------------------------------- */
.dd-how-it-works {
    background: #fff;
    border-top: 4px solid var(--dd-blue);
    padding: 4rem 1.25rem;
}
.dd-steps {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0;
    flex-wrap: wrap;
}
.dd-step {
    flex: 1 1 220px;
    max-width: 280px;
    text-align: center;
    padding: 2rem 1.5rem;
    background: var(--dd-bg);
    border-radius: var(--dd-radius);
    box-shadow: var(--dd-shadow);
    position: relative;
}
.dd-step__number {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--dd-blue);
    color: #fff;
    font-size: .8rem;
    font-weight: 800;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.dd-step__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: .75rem;
}
.dd-step__icon .dd-icon {
    width: 2.5rem;
    height: 2.5rem;
    color: var(--dd-blue);
}
.dd-step__title {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--dd-text);
    margin: 0 0 .5rem;
}
.dd-step__desc {
    font-size: .9rem;
    color: var(--dd-muted);
    margin: 0;
    line-height: 1.6;
}
.dd-step__connector {
    font-size: 1.6rem;
    color: var(--dd-border);
    align-self: center;
    padding: 0 .5rem;
    flex-shrink: 0;
}

/* ---- Stats & Testimonials -------------------------------- */
.dd-trust {
    background: var(--dd-bg);
    padding: 4rem 1.25rem;
    border-top: 1px solid var(--dd-border);
}
.dd-stats-bar {
    display: flex;
    justify-content: center;
    gap: 0;
    flex-wrap: wrap;
    background: var(--dd-blue);
    border-radius: var(--dd-radius);
    overflow: hidden;
    box-shadow: var(--dd-shadow);
}
.dd-stat {
    flex: 1 1 160px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    border-right: 1px solid rgba(255,255,255,.15);
    text-align: center;
}
.dd-stat:last-child { border-right: none; }
.dd-stat__number {
    font-size: 2rem;
    font-weight: 900;
    color: #fff;
    line-height: 1;
}
.dd-stat__label {
    font-size: .8rem;
    color: rgba(255,255,255,.75);
    margin-top: .35rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.dd-testimonials {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.5rem;
    margin-top: 1.5rem;
}
.dd-testimonial {
    background: #fff;
    border-radius: var(--dd-radius);
    box-shadow: var(--dd-shadow);
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}
.dd-testimonial__quote {
    font-size: .95rem;
    color: var(--dd-text);
    line-height: 1.7;
    margin: 0;
    font-style: italic;
}
.dd-testimonial__quote::before { content: '\201C'; }
.dd-testimonial__quote::after  { content: '\201D'; }
.dd-testimonial__author {
    display: flex;
    align-items: center;
    gap: .75rem;
}
.dd-testimonial__avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--dd-blue);
    color: #fff;
    font-size: .8rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.dd-testimonial__author strong {
    display: block;
    font-size: .9rem;
    color: var(--dd-text);
}
.dd-testimonial__author span {
    font-size: .8rem;
    color: var(--dd-muted);
}

/* ---- Organization Logos ---------------------------------- */
.dd-org-logos {
    background: #fff;
    border-top: 1px solid var(--dd-border);
    padding: 2.5rem 1.25rem;
    text-align: center;
}
.dd-org-logos__heading {
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--dd-muted);
    margin: 0 0 1.5rem;
    font-weight: 600;
}
.dd-org-logos__track {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 1.25rem;
}
.dd-org-logos__img {
    height: 48px;
    width: auto;
    opacity: .65;
    filter: grayscale(30%);
    transition: opacity .2s, filter .2s;
    border-radius: 4px;
}
.dd-org-logos__img:hover {
    opacity: 1;
    filter: grayscale(0%);
}

/* ---- Newsletter extras ----------------------------------- */
.dd-newsletter__turnstile {
    display: flex;
    justify-content: center;
    margin: 1.25rem auto 0;
}
.dd-newsletter__message {
    max-width: 480px;
    margin: 1rem auto 0;
    font-size: .9rem;
    min-height: 1.4rem;
}
.dd-newsletter__message--success { color: #86efac; }
.dd-newsletter__message--error   { color: #fca5a5; }

/* ---- Responsive ------------------------------------------ */
@media (max-width: 768px) {
    .dd-hero { padding: 2.5rem 1rem; }
    .dd-hero__search { flex-direction: column; border-radius: var(--dd-radius); }
    .dd-hero__search input, .dd-hero__search button { border-radius: var(--dd-radius); }
    .dd-newsletter__form { flex-direction: column; }
    .dd-newsletter__form input, .dd-newsletter__form button { border-radius: var(--dd-radius); }
    .dd-single { padding: 1.25rem; }
    .dd-single__cta-bar { flex-direction: column; }
    .dd-single__cta-bar .dd-btn { width: 100%; justify-content: center; }
    .dd-cat-grid { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }

    .dd-footer__inner { flex-direction: column; gap: 2rem; padding: 2rem 1rem 1.5rem; }
    .dd-footer__social { flex-wrap: wrap; }

    .dd-steps { flex-direction: column; align-items: center; }
    .dd-step__connector { transform: rotate(90deg); padding: .25rem 0; }
    .dd-stat { border-right: none; border-bottom: 1px solid rgba(255,255,255,.15); }
    .dd-stat:last-child { border-bottom: none; }
}
