/* Minimal theme-specific overrides layered on top of the original Wordbench CSS.
   Only the things we need to touch for this project, not a re-implementation. */

/* Force the local brand green everywhere (original demo was blue/orange) */
:root { --dvi-brand: #1c6d1d; --dvi-brand-dark: #12531e; }

#header::before { background: var(--dvi-brand) !important; background-image: linear-gradient(to right, var(--dvi-brand), var(--dvi-brand)) !important; }
.header__notice { background-color: var(--dvi-brand) !important; background-image: linear-gradient(to right, var(--dvi-brand), var(--dvi-brand)) !important; }
.header__topbar { background-color: var(--dvi-brand) !important; background-image: linear-gradient(to right, var(--dvi-brand), var(--dvi-brand)) !important; }

.lsvr-button, .wp-block-button__link { background-color: var(--dvi-brand) !important; }
.lsvr-button:hover { background-color: var(--dvi-brand-dark) !important; }

/* Hide the sticky-header placeholder spacer — not needed without sticky behavior */
.header-placeholder { display: none !important; }


/* Search results page */
.dvi-search-form { display: flex; max-width: 560px; margin: 24px 0 40px; border-radius: 40px; overflow: hidden; border: 1px solid #e5e5e5; box-shadow: 0 2px 8px rgba(0,0,0,0.05); background: #fff; }
.dvi-search-form input[type="search"] { flex: 1; padding: 14px 22px; border: 0; outline: none; font-size: 15px; background: #fff; }
.dvi-search-form button { padding: 0 26px; background: var(--dvi-brand); color: #fff; border: 0; font-weight: 700; font-size: 14px; cursor: pointer; }
.dvi-search-form button:hover { background: var(--dvi-brand-dark); }

.dvi-search-results { display: grid; gap: 20px; margin-bottom: 30px; }
.dvi-search-result { border: 1px solid #ececec; border-radius: 10px; overflow: hidden; background: #fff; transition: box-shadow .2s; }
.dvi-search-result:hover { box-shadow: 0 8px 20px rgba(0,0,0,0.06); }
.dvi-search-result__inner { display: grid; grid-template-columns: 220px 1fr; gap: 24px; align-items: stretch; }
@media (max-width: 640px) { .dvi-search-result__inner { grid-template-columns: 1fr; } }
.dvi-search-result__thumb { display: block; min-height: 160px; background-size: cover; background-position: center; background-color: #eee; }
.dvi-search-result__body { padding: 22px 26px; display: flex; flex-direction: column; gap: 8px; }
.dvi-search-result__type { margin: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--dvi-brand); font-weight: 600; }
.dvi-search-result__title { margin: 0; font-size: 20px; line-height: 1.3; }
.dvi-search-result__title a { color: #14161c; text-decoration: none; }
.dvi-search-result__title a:hover { color: var(--dvi-brand); }
.dvi-search-result__excerpt { color: #6a6971; font-size: 15px; line-height: 1.55; }
.dvi-search-empty { padding: 40px 0; color: #6a6971; font-size: 16px; }

/* 404 page */
.dvi-404 { max-width: 900px; margin: 60px auto 90px; text-align: center; }
.dvi-404__code {
    font-size: clamp(120px, 20vw, 220px);
    font-weight: 800;
    line-height: 1;
    color: var(--dvi-brand);
    opacity: 0.9;
    letter-spacing: -0.04em;
    margin-bottom: 12px;
    font-family: "Source Sans Pro", Arial, sans-serif;
}
.dvi-404__title {
    font-size: clamp(28px, 4vw, 44px);
    margin: 0 0 16px;
    color: #14161c;
    font-weight: 700;
    line-height: 1.2;
}
.dvi-404__text {
    font-size: 17px;
    color: #6a6971;
    line-height: 1.6;
    max-width: 560px;
    margin: 0 auto 28px;
}
.dvi-404__actions { margin-bottom: 28px; }
.dvi-404__primary.lsvr-button {
    display: inline-block;
    padding: 14px 32px;
    background: var(--dvi-brand);
    color: #fff !important;
    border-radius: 40px;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    transition: background .2s, transform .2s;
    box-shadow: 0 4px 14px rgba(28, 109, 29, 0.25);
}
.dvi-404__primary.lsvr-button:hover {
    background: var(--dvi-brand-dark);
    transform: translateY(-1px);
}

.dvi-404__search {
    display: flex;
    max-width: 520px;
    margin: 0 auto 60px;
    border-radius: 40px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    border: 1px solid #e5e5e5;
}
.dvi-404__search input[type="search"] {
    flex: 1;
    padding: 14px 22px;
    border: 0;
    outline: none;
    font-size: 15px;
    background: #fff;
}
.dvi-404__search button {
    padding: 0 26px;
    background: var(--dvi-brand);
    color: #fff;
    border: 0;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background .2s;
}
.dvi-404__search button:hover { background: var(--dvi-brand-dark); }

.dvi-404__nav { margin: 0 0 40px; text-align: left; }
.dvi-404__nav-title {
    text-align: center;
    font-size: 20px;
    margin: 0 0 24px;
    color: #14161c;
    font-weight: 700;
}
.dvi-404__nav-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 18px;
}
.dvi-404__card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 22px;
    background: #fff;
    border: 1px solid #e9e9ea;
    border-radius: 10px;
    text-decoration: none !important;
    color: inherit;
    transition: transform .2s, box-shadow .2s, border-color .2s;
}
.dvi-404__card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
    border-color: var(--dvi-brand);
}
.dvi-404__card-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(28, 109, 29, 0.12);
    color: var(--dvi-brand);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
.dvi-404__card-body { display: flex; flex-direction: column; gap: 4px; }
.dvi-404__card-title { font-weight: 700; color: #14161c; font-size: 16px; }
.dvi-404__card-text { color: #6a6971; font-size: 14px; line-height: 1.45; }

.dvi-404__contact { color: #6a6971; font-size: 15px; }
.dvi-404__contact a { color: var(--dvi-brand); text-decoration: none; font-weight: 600; }
.dvi-404__contact a:hover { text-decoration: underline; }

/* Hide search toggle in mobile header */
.header-mobile-search-toggle,
.header-search-toggle,
#header-search,
.header-search { display: none !important; }

/* Post meta row — horizontal list of category/tags, each with icon inline */
.main-header .post-meta,
.post-single .post-meta {
    list-style: none !important;
    margin: 0 0 20px !important;
    padding: 0 !important;
    display: flex !important;
    flex-wrap: wrap;
    gap: 6px 22px;
}
.main-header .post-meta__item,
.post-single .post-meta__item {
    display: inline-flex !important;
    align-items: center;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.4;
}
.main-header .post-meta__item:after,
.post-single .post-meta__item:after { display: none !important; }

.main-header .post-meta__item--tags,
.post-single .post-meta__item--tags,
.main-header .post-meta__item--category,
.post-single .post-meta__item--category {
    padding-left: 24px !important;
    position: relative;
}
.main-header .post-meta__item--tags::before,
.post-single .post-meta__item--tags::before {
    content: "\e91a" !important; /* wordbench-icons tags glyph */
}
.main-header .post-meta__item--category::before,
.post-single .post-meta__item--category::before {
    content: "\e972" !important; /* wordbench-icons folder glyph */
}
.main-header .post-meta__item::before,
.post-single .post-meta__item::before {
    font-family: "wordbench-icons" !important;
    font-weight: normal !important;
    font-style: normal !important;
    position: absolute !important;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #999;
    font-size: 14px;
    line-height: 1;
}
.post-meta__item--tags .post__terms,
.post-meta__item--category .post__terms { display: inline !important; }
.post-meta__item--tags .post__term-link { color: var(--dvi-brand); text-decoration: none; font-weight: 500; }
.post-meta__item--tags .post__term-link:hover { text-decoration: underline; }

/* Google-Reviews replacement block (no plugin installed) */
.dvi-reviews { margin: 40px 0; padding: 30px; border: 1px solid #e5e5e5; border-radius: 8px; background: #fff; }
.dvi-reviews__header { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid #f0f0f0; margin-bottom: 20px; }
.dvi-reviews__title { font-size: 20px; font-weight: 700; color: #14161c; }
.dvi-reviews__rating { color: #f6a400; font-weight: 700; }
.dvi-reviews__based { color: #6a6971; font-size: 14px; }
.dvi-reviews__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.dvi-review { padding: 18px 20px; border: 1px solid #ececec; border-radius: 6px; background: #fafafa; }
.dvi-review__head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.dvi-review__avatar {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 44px; height: 44px; border-radius: 50%;
    background-color: #e5e5e5; background-size: cover; background-position: center;
    flex-shrink: 0;
    color: #fff; font-weight: 700; font-size: 16px;
}
.dvi-review__meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dvi-review__name { font-weight: 700; color: #14161c; text-decoration: none; }
.dvi-review__name:hover { color: var(--dvi-brand); }
.dvi-review__stars { color: #f6a400; font-size: 14px; letter-spacing: 1px; }
.dvi-review__date { color: #9a99a1; font-size: 12px; }
.dvi-review__text { color: #2b2d33; font-size: 14.5px; line-height: 1.55; }
.dvi-review__text br { content: ''; display: block; margin-top: 6px; }

/* Archive category filter chips — evenly spaced, vertically centred with the icon */
.post-archive-categories {
    margin: 40px 0 30px 0 !important;
    padding-left: 44px !important;
    position: relative;
}
.post-archive-categories__icon {
    top: 50% !important;
    transform: translateY(-50%);
    left: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
}
.post-archive-categories__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 8px;
    margin: 0 !important;
    padding: 0 !important;
}
.post-archive-categories__item {
    display: inline-flex !important;
    margin: 0 !important;
    padding: 0 !important;
}
.post-archive-categories__item-link {
    display: inline-block;
    padding: 8px 16px;
    border-radius: 40px;
    background: #f1f2f4;
    color: #2b2d33;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none !important;
    box-shadow: none !important;
    transition: background .2s, color .2s;
}
.post-archive-categories__item-link:hover {
    background: rgba(28,109,29,0.12);
    color: var(--dvi-brand);
}
.post-archive-categories__item-link--active,
.post-archive-categories__item-link--active:hover {
    background: var(--dvi-brand);
    color: #fff;
}

/* Archive grid — force column widths since we don't run masonry JS */
.post-archive__list.lsvr-grid--3-cols > .lsvr-grid__col {
    flex: 0 0 33.3333% !important;
    max-width: 33.3333% !important;
    width: 33.3333% !important;
}
@media (max-width: 991px) {
    .post-archive__list.lsvr-grid--md-2-cols > .lsvr-grid__col {
        flex: 0 0 50% !important;
        max-width: 50% !important;
        width: 50% !important;
    }
}
@media (max-width: 480px) {
    .post-archive__list.lsvr-grid--sm-reset > .lsvr-grid__col {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }
}

/* Small polish for the permalink "read more" caret */
.post-permalink__link-icon::before { content: "\e90c"; font-family: 'wordbench-icons' !important; }

/* Accent links in content */
.post__content a { color: var(--dvi-brand); }
.post__content a:hover { color: var(--dvi-brand-dark); }

/* Primary menu hover color to match brand */
.header-menu-primary__item-link--level-0:hover,
.header-menu-primary__item--dropdown .header-menu-primary__submenu--level-0 .header-menu-primary__item-link:hover,
.header-menu-secondary__item-link:hover { color: var(--dvi-brand) !important; }
