/* DV Spotlight — brand foundation.
   Palette sampled from the printed postcard artwork (DESIGN-SPEC §6).
   Loaded site-wide from the dvs-directory plugin. No grey as a brand colour. */

:root {
	/* Brand palette — exact hex from the artwork */
	--dvs-navy:   #001B38; /* headers, footer, dark headline panels */
	--dvs-teal:   #008086; /* section bands, brand mark, accents */
	--dvs-cream:  #FCFBEE; /* PAGE BACKGROUND — not pure white */
	--dvs-orange: #EF4F0B; /* primary CTA, deal prices, urgency */
	--dvs-yellow: #FFD200; /* highlights, badges, PREMIUM badge */
	--dvs-lime:   #9CCA2C; /* free / positive / success / checkmarks */
	--dvs-white:  #FFFFFF; /* cards on cream */

	/* Derived shades (hovers/borders) — kept in-palette, never grey */
	--dvs-navy-90:   #0a2647;
	--dvs-orange-hi: #d8460a; /* darker orange for button hover */
	--dvs-ink:       #001B38; /* body text = navy, per "no grey" rule */
	--dvs-line:      #e7e6d6; /* hairline on cream (cream, darkened) */

	/* Type */
	--dvs-font-display: 'Archivo Black', system-ui, sans-serif; /* ~ Goodtime Grotesk */
	--dvs-font-playful: 'Fredoka', system-ui, sans-serif;       /* ~ Waffle Soft (deals) */
	--dvs-font-body:    'Open Sans', system-ui, sans-serif;     /* exact match, free */

	/* Layout */
	--dvs-container: 1200px;
	--dvs-radius: 10px;
	--dvs-gap: clamp(1rem, 3vw, 2rem);
	--dvs-shadow: 0 2px 10px rgba(0, 27, 56, .08);
}

/* ---- Base ---- */
body.dvs-brand,
.dvs-brand {
	background-color: var(--dvs-cream);
	color: var(--dvs-ink);
	font-family: var(--dvs-font-body);
	font-weight: 400;
	line-height: 1.55;
}

.dvs-brand h1, .dvs-brand h2, .dvs-brand h3, .dvs-brand h4,
.dvs-display {
	font-family: var(--dvs-font-display);
	/* Sentence case — all-caps Archivo Black read too strong (Nick 2026-08-04) */
	letter-spacing: 0;
	line-height: 1.1;
	color: var(--dvs-navy);
}

.dvs-brand a { color: var(--dvs-teal); text-decoration: none; }
.dvs-brand a:hover { color: var(--dvs-orange); }

/* ---- Container & sections ---- */
.dvs-container { width: 100%; max-width: var(--dvs-container); margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2rem); }
.dvs-section { padding-block: clamp(2rem, 6vw, 4rem); }
.dvs-section--navy { background: var(--dvs-navy); color: var(--dvs-white); }
.dvs-section--teal { background: var(--dvs-teal); color: var(--dvs-white); }
.dvs-section--navy h2, .dvs-section--teal h2 { color: var(--dvs-white); }

/* Section header: title left, "See All" right */
.dvs-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: clamp(1rem, 3vw, 1.75rem); }
.dvs-section-head h2 { font-size: clamp(1.4rem, 4.5vw, 2.1rem); margin: 0; }
.dvs-section-head .dvs-seeall { font-family: var(--dvs-font-display); text-transform: uppercase; font-size: .8rem; letter-spacing: .02em; color: var(--dvs-teal); white-space: nowrap; }
.dvs-section-head .dvs-seeall:hover { color: var(--dvs-orange); }

/* ---- Buttons ---- */
.dvs-btn { display: inline-flex; align-items: center; gap: .5em; font-family: var(--dvs-font-display); text-transform: uppercase; letter-spacing: .02em; font-size: .9rem; line-height: 1; padding: .85em 1.4em; border-radius: var(--dvs-radius); border: 0; cursor: pointer; transition: background-color .15s, transform .05s; }
.dvs-btn:active { transform: translateY(1px); }
/* Primary — orange. One per section (usage rule, not enforced by CSS). */
/* NB: .dvs-brand prefix so button text colour beats the `.dvs-brand a` link
   colour (teal) — otherwise anchors styled as buttons get teal text. */
.dvs-brand .dvs-btn--primary { background: var(--dvs-orange); color: var(--dvs-white); }
.dvs-brand .dvs-btn--primary:hover { background: var(--dvs-orange-hi); color: var(--dvs-white); }
/* Positive / free — lime */
.dvs-brand .dvs-btn--free { background: var(--dvs-lime); color: var(--dvs-navy); }
.dvs-brand .dvs-btn--free:hover { background: #8bbb22; color: var(--dvs-navy); }
/* On dark backgrounds — yellow */
.dvs-brand .dvs-btn--onDark { background: var(--dvs-yellow); color: var(--dvs-navy); }
.dvs-brand .dvs-btn--onDark:hover { background: #ffdd3d; color: var(--dvs-navy); }

/* ---- Badges ---- */
.dvs-badge { display: inline-flex; align-items: center; gap: .35em; font-family: var(--dvs-font-display); text-transform: uppercase; font-size: .68rem; letter-spacing: .04em; padding: .3em .6em; border-radius: 6px; line-height: 1; }
/* PREMIUM = yellow on navy — highest-contrast pairing, deliberately */
.dvs-badge--premium { background: var(--dvs-yellow); color: var(--dvs-navy); }
.dvs-badge--claimed { background: var(--dvs-lime); color: var(--dvs-navy); }
.dvs-badge--free    { background: var(--dvs-lime); color: var(--dvs-navy); }

/* ---- Cards ---- */
.dvs-card { background: var(--dvs-white); border-radius: var(--dvs-radius); box-shadow: var(--dvs-shadow); overflow: hidden; }
.dvs-grid { display: grid; gap: var(--dvs-gap); grid-template-columns: 1fr; }
@media (min-width: 560px) { .dvs-grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 860px) { .dvs-grid--3 { grid-template-columns: repeat(3, 1fr); } .dvs-grid--4 { grid-template-columns: repeat(4, 1fr); } }

/* Playful accent — reserved for deals savings callouts (DESIGN-SPEC §Typography) */
.dvs-playful { font-family: var(--dvs-font-playful); font-weight: 700; }

/* Utility */
.dvs-hl { color: var(--dvs-orange); }
.dvs-hl--yellow { background: var(--dvs-yellow); color: var(--dvs-navy); padding: 0 .15em; }

/* ---- Unclaimed-listing placeholder ----
   The square DV Spotlight logo must FIT inside listing image boxes (which
   otherwise object-fit:cover and crop it), with white padding around it. */
img[src*="dvs-logo-square-white"] {
	object-fit: contain !important;
	background: var(--dvs-white);
	padding: 8%;
	box-sizing: border-box;
}

/* ---- Listing archive/grid cards ----
   GeoDirectory renders card images in a 16:9 box with object-fit:cover, which
   makes the boxes too tall and crops the square logos. Constrain to a compact
   fixed height and CONTAIN the logo on white so nothing is cut off. */
.geodir-post .card-img-top { height: 180px; }
.geodir-post .card-img-top .geodir-post-slider,
.geodir-post .card-img-top .geodir-image-container,
.geodir-post .card-img-top .geodir-images,
.geodir-post .card-img-top .carousel,
.geodir-post .card-img-top .carousel-inner,
.geodir-post .card-img-top .carousel-item,
.geodir-post .card-img-top .ratio,
.geodir-post .card-img-top .embed-responsive { height: 100% !important; }
.geodir-post .card-img-top .ratio::before,
.geodir-post .card-img-top .embed-responsive::before { display: none !important; padding: 0 !important; }
.geodir-post .card-img-top img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	background: var(--dvs-white);
	padding: 12px;
	box-sizing: border-box;
}

/* ---- Card blurb (post_content) ----
   GeoDirectory prints the description in an inline max-height:120px box with an
   absolutely-positioned "Read more..." link whose white fade gradient washes over
   the text (very visible on the cream sections). Listings only started carrying
   descriptions once businesses began claiming, so this surfaced with the first
   claim. Clamp to two lines and drop the fade so every card is the same height —
   the whole card already links through to the listing. */
.geodir-post .geodir-field-post_content {
	max-height: none !important;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin-top: .4rem;
	font-size: .9rem;
	line-height: 1.45;
	color: var(--dvs-ink);
	opacity: .8; /* softer than body copy without introducing grey */
}
.geodir-post .geodir-field-post_content .gd-read-more { display: none !important; }

/* ---- Deal cards ---- (media = business LOGO, fit not cropped, on white) */
.dvs-deals { margin-top: .5rem; }
.dvs-deal-card { display: flex; flex-direction: column; }
.dvs-deal-media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--dvs-white); border-bottom: 1px solid var(--dvs-line); overflow: hidden; }
.dvs-deal-media img { width: 100%; height: 100%; object-fit: contain; padding: 9%; box-sizing: border-box; display: block; }
.dvs-deal-media img.dvs-deal-media__cover { object-fit: cover; padding: 0; }
.dvs-deal-ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--dvs-font-display); font-size: 3rem; color: var(--dvs-white); background: var(--dvs-teal); }
.dvs-deal-badge { position: absolute; top: .6rem; left: .6rem; }
.dvs-deal-body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .3rem; flex: 1; }
.dvs-deal-biz { font-size: 1.05rem; margin: 0; }
.dvs-deal-biz a { color: var(--dvs-navy); }
.dvs-deal-biz a:hover { color: var(--dvs-orange); }
.dvs-deal-suburb { font-size: .8rem; color: var(--dvs-teal); text-transform: uppercase; letter-spacing: .03em; margin: 0; font-weight: 600; }
.dvs-deal-offer { margin: .2rem 0 0; }
.dvs-deal-saving { color: var(--dvs-orange); font-size: 1.4rem; line-height: 1.1; margin: .1rem 0; }
.dvs-deal-valid { font-size: .8rem; color: var(--dvs-navy); opacity: .75; margin: 0; }
.dvs-deal-card .dvs-btn { margin-top: auto; align-self: flex-start; }

/* ---- Premium listing page (2-column on desktop, stacked on mobile) ---- */
.dvs-listing { display: grid; grid-template-columns: 1fr; gap: var(--dvs-gap); padding-block: 1.5rem; }
@media (min-width: 900px) { .dvs-listing { grid-template-columns: minmax(0, 1fr) 330px; } }
.dvs-listing__main { min-width: 0; }
.dvs-listing__side { min-width: 0; }
.dvs-offer .dvs-badge--premium { margin-bottom: .2rem; }
.dvs-offer .dvs-btn { margin-top: .3rem; }

/* "Get More Information" sidebar */
.dvs-getinfo { padding: 0; align-self: start; position: sticky; top: 1rem; }
.dvs-getinfo__logo { background: var(--dvs-white); padding: 1.2rem; text-align: center; border-bottom: 1px solid var(--dvs-line); }
.dvs-getinfo__logo img { max-width: 190px; max-height: 150px; width: auto; height: auto; object-fit: contain; display: inline-block; }
.dvs-getinfo__body { padding: 1.2rem; }
.dvs-getinfo__title { font-size: 1rem; margin: 0 0 .6rem; }
.dvs-getinfo__plan { margin: 0 0 .5rem; }
.dvs-getinfo__contact { list-style: none; padding: 0; margin: 1rem 0; }
.dvs-getinfo__contact li { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem 0; border-bottom: 1px solid var(--dvs-line); font-size: .9rem; }
.dvs-getinfo__contact li span { color: var(--dvs-teal); text-transform: uppercase; font-size: .7rem; letter-spacing: .03em; font-weight: 600; }
.dvs-getinfo__claim { width: 100%; justify-content: center; margin-top: .6rem; }

/* ---- Premium offer block (listing page hero: postcard ad + write-up) ---- */
.dvs-offer { background: var(--dvs-white); border-radius: var(--dvs-radius); box-shadow: var(--dvs-shadow); overflow: hidden; margin: 0 0 1.5rem; }
.dvs-offer-banner { background: var(--dvs-cream); line-height: 0; }
.dvs-offer-banner img { display: block; width: 100%; height: auto; }
.dvs-offer-detail { padding: clamp(1.1rem, 4vw, 2rem); display: flex; flex-direction: column; align-items: flex-start; gap: .65rem; }
.dvs-offer-headline { font-size: clamp(1.35rem, 4.5vw, 2rem); margin: .3rem 0 0; color: var(--dvs-navy); }
.dvs-offer-saving { color: var(--dvs-orange); font-size: clamp(1.7rem, 6vw, 2.6rem); line-height: 1; margin: 0; }
.dvs-offer-desc { color: var(--dvs-navy); line-height: 1.65; }
.dvs-offer-desc p { margin: 0 0 .8em; }
.dvs-offer-desc p:last-child { margin-bottom: 0; }
.dvs-offer-valid { font-size: .85rem; font-weight: 600; color: var(--dvs-teal); text-transform: uppercase; letter-spacing: .03em; margin: 0; }
.dvs-offer-cta { margin-top: .5rem; }

/* ==== Listing header + sectioned cards (Vegas-Thrive style) ==== */
.dvs-listing-head { margin: 0 0 1.2rem; }
.dvs-listing-head__addr { color: var(--dvs-navy); opacity: .8; margin: 0 0 .55rem; font-size: .95rem; }
.dvs-listing-head__addr i { color: var(--dvs-orange); margin-right: .35em; }
.dvs-listing-head__cats { display: flex; flex-wrap: wrap; gap: .4rem; }
.dvs-listing-head__cat { font-size: .74rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--dvs-teal); background: var(--dvs-cream); border: 1px solid var(--dvs-line); border-radius: 999px; padding: .22em .75em; text-decoration: none; }
.dvs-listing-head__cat:hover { background: var(--dvs-teal); color: #fff; }
.dvs-sec { background: var(--dvs-white); border: 1px solid var(--dvs-line); border-radius: var(--dvs-radius); padding: clamp(1.1rem, 3.5vw, 1.8rem); margin: 0 0 1.5rem; }
.dvs-sec__title { margin: 0 0 .9rem; font-size: 1.3rem; color: var(--dvs-navy); }
.dvs-gallery__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .7rem; }
.dvs-gallery__item { margin: 0; }
.dvs-gallery__item > a { display: block; aspect-ratio: 1 / 1; border-radius: 8px; overflow: hidden; border: 1px solid var(--dvs-line); }
.dvs-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .2s ease; }
.dvs-gallery__item:hover img { transform: scale(1.05); }
.dvs-gallery__cap { text-align: center; font-size: .78rem; font-weight: 700; color: var(--dvs-navy); margin-top: .35rem; text-transform: uppercase; letter-spacing: .03em; }
.dvs-getinfo__socials a { margin-right: .6rem; white-space: nowrap; }
.dvs-video { width: 100%; height: auto; border-radius: 8px; display: block; background: #000; }

/* ==== Homepage (modelled on Vegas Thrive) ==== */
/* Hero */
/* No overlay — brighter photo (Nick 2026-08-04); legibility via strong text-shadow. */
.dvs-hero { background: url(../img/hero-dog-v2.jpg) center 38% / cover no-repeat; color: var(--dvs-white); text-align: center; padding: clamp(2.5rem, 8vw, 5rem) 0 clamp(3rem, 26vw, 15rem); }
.dvs-hero__inner { text-shadow: 0 2px 10px rgba(0,0,0,.75), 0 1px 30px rgba(0,0,0,.55); }
.dvs-hero__title { color: var(--dvs-white); font-size: clamp(2rem, 7vw, 4rem); margin: 0 0 .4rem; }
.dvs-hero__sub { color: var(--dvs-white); opacity: .9; font-size: clamp(1rem, 2.6vw, 1.3rem); margin: 0 auto 1.6rem; max-width: 40ch; }
.dvs-hero__search { max-width: 760px; margin: 0 auto; }
.dvs-hero__search .geodir-loop-paging, .dvs-hero__search .geodir-search-button { }

/* Welcome */
.dvs-welcome__inner { text-align: center; }
.dvs-welcome h2 { font-size: clamp(1.6rem, 5vw, 2.4rem); margin: 0; }
.dvs-welcome__tag { color: var(--dvs-teal); font-family: var(--dvs-font-display); text-transform: uppercase; letter-spacing: .03em; margin: .3rem 0 1.2rem; }
.dvs-welcome__logo { width: clamp(150px, 30vw, 210px); height: auto; margin: 0 auto .8rem; display: block; }
.dvs-welcome__intro { max-width: 60ch; margin: 0 auto; font-size: 1.05rem; }

/* Cream section band */
.dvs-section--cream { background: #f6f4e3; } /* cream, a touch deeper than page bg for separation */

/* Newsletter block */
.dvs-newsletter { text-align: center; }
.dvs-newsletter h2 { color: var(--dvs-white); font-size: clamp(1.5rem, 4.5vw, 2.2rem); margin: 0 0 .4rem; }
.dvs-newsletter p { color: var(--dvs-white); opacity: .95; margin: 0 auto 1.4rem; max-width: 52ch; }
.dvs-newsletter__inner { max-width: 620px; }
.dvs-newsletter__form { background: var(--dvs-white); border-radius: 10px; overflow: hidden; box-shadow: var(--dvs-shadow); }
.dvs-newsletter__form iframe { display: block; }

/* ==== Custom header / footer (theme's hidden) ==== */
.site-header, .site-footer, #site-header, header.site-header { display: none !important; }

/* Header */
.dvs-header { background: var(--dvs-white); border-bottom: 3px solid var(--dvs-teal); position: sticky; top: 0; z-index: 100; box-shadow: 0 1px 8px rgba(0,27,56,.06); }
.dvs-header__inner { display: flex; align-items: center; gap: 1rem; padding-block: .6rem; }
.dvs-header__logo img { height: 44px; width: auto; display: block; }
.dvs-header__nav { display: flex; gap: 1.4rem; margin-left: 1rem; }
.dvs-header__nav a { font-family: var(--dvs-font-display); text-transform: uppercase; font-size: .8rem; letter-spacing: .02em; color: var(--dvs-navy); }
.dvs-header__nav a:hover { color: var(--dvs-orange); }
.dvs-header__actions { display: flex; align-items: center; gap: 1rem; margin-left: auto; }
.dvs-header__phone { font-family: var(--dvs-font-display); font-size: .85rem; color: var(--dvs-navy); white-space: nowrap; }
.dvs-header__cta { font-size: .78rem; padding: .7em 1.1em; }
.dvs-header__toggle { display: none; margin-left: auto; background: none; border: 0; font-size: 1.6rem; color: var(--dvs-navy); cursor: pointer; line-height: 1; }
@media (max-width: 860px) {
	.dvs-header__toggle { display: block; }
	.dvs-header__nav, .dvs-header__actions { display: none; width: 100%; flex-direction: column; align-items: flex-start; gap: .8rem; margin: 0; }
	.dvs-header.is-open .dvs-header__inner { flex-wrap: wrap; }
	.dvs-header.is-open .dvs-header__nav, .dvs-header.is-open .dvs-header__actions { display: flex; padding-top: .6rem; }
	.dvs-header__actions { margin-top: .4rem; }
}

/* Footer */
.dvs-footer { background: var(--dvs-navy); color: var(--dvs-white); margin-top: 2rem; }
.dvs-footer__inner { display: grid; grid-template-columns: 1fr; gap: 1.8rem; padding-block: 2.5rem; }
@media (min-width: 760px) { .dvs-footer__inner { grid-template-columns: 1.4fr 1fr 1fr; } }
.dvs-footer__brand img { height: 46px; width: auto; margin-bottom: .6rem; }
.dvs-footer__tag { font-family: var(--dvs-font-display); text-transform: uppercase; color: var(--dvs-yellow); font-size: .8rem; letter-spacing: .03em; margin: 0; }
.dvs-footer h4 { color: var(--dvs-white); font-size: .9rem; margin: 0 0 .6rem; }
.dvs-footer p { margin: .25rem 0; font-size: .9rem; color: #cfe0e6; }
.dvs-footer a { color: #cfe0e6; }
.dvs-footer a:hover { color: var(--dvs-yellow); }
.dvs-footer__bar { border-top: 1px solid rgba(255,255,255,.12); font-size: .8rem; color: #9fb6bf; }
.dvs-footer__bar .dvs-container { padding-block: 1rem; }

/* ==== Round-3 fixes: hero white text, full-width header, nav dropdowns ==== */
/* Hero text must be white (beat the `.dvs-brand h1` navy default) */
.dvs-brand .dvs-hero__title, .dvs-brand .dvs-hero__sub { color: var(--dvs-white); }

/* Header edge-to-edge (was capped at the container width) */
.dvs-header__inner { max-width: none; padding-inline: clamp(1rem, 3vw, 2.5rem); }

/* Welcome logo is now the horizontal wordmark */
.dvs-welcome__logo { width: auto; max-width: min(320px, 80vw); height: auto; margin: .2rem auto 1rem; display: block; }

/* Nav dropdowns */
.dvs-nav-item { position: relative; }
.dvs-nav-parent { display: inline-flex; align-items: center; gap: .25em; }
.dvs-nav-parent span { font-size: .7em; }
.dvs-dropdown { position: absolute; top: 100%; left: 0; background: var(--dvs-white); box-shadow: 0 10px 28px rgba(0,27,56,.16); border-radius: 8px; border-top: 3px solid var(--dvs-teal); padding: .5rem; min-width: 220px; display: none; z-index: 300; }
.dvs-nav-item:hover .dvs-dropdown, .dvs-nav-item:focus-within .dvs-dropdown { display: block; }
.dvs-dropdown a { display: block; padding: .4rem .7rem; font-family: var(--dvs-font-body); text-transform: none; letter-spacing: 0; font-size: .85rem; font-weight: 600; color: var(--dvs-navy); border-radius: 5px; }
.dvs-dropdown a:hover { background: var(--dvs-cream); color: var(--dvs-orange); }
.dvs-dropdown--wide { columns: 2; column-gap: .5rem; min-width: 440px; }
.dvs-dropdown--wide a { break-inside: avoid; }

@media (max-width: 860px) {
	/* dropdowns expand inline inside the open mobile menu */
	.dvs-dropdown { position: static; display: block; box-shadow: none; border: 0; border-left: 2px solid var(--dvs-line); border-radius: 0; padding: .1rem 0 .3rem .8rem; margin: .1rem 0 .3rem .4rem; min-width: 0; columns: 1 !important; }
	.dvs-dropdown--wide { min-width: 0; }
}

/* Hide the theme's page-header title where it's redundant (homepage has the hero;
   GeoDirectory archives render their own title). Keep it on single listings + pages. */
body.home .page-header,
body.post-type-archive-gd_place .page-header,
body.tax-gd_placecategory .page-header,
body.tax-gd_place_tags .page-header,
body.search .page-header { display: none !important; }

/* Hamburger toggle — no stray button background */
.dvs-header .dvs-header__toggle { background: transparent !important; border: 0 !important; box-shadow: none !important; color: var(--dvs-navy) !important; }
/* Brand GeoDirectory's search button (AUI btn-primary defaults to magenta) */
.geodir_submit_search.btn-primary,
.geodir-search-container .geodir_submit_search { background-color: var(--dvs-orange) !important; border-color: var(--dvs-orange) !important; color: #fff !important; }
.geodir_submit_search.btn-primary:hover { background-color: var(--dvs-orange-hi) !important; border-color: var(--dvs-orange-hi) !important; }

/* Nav: vertically centre all top-level items (plain links + dropdown parents) */
.dvs-header__nav { align-items: center; }
.dvs-header__nav > a, .dvs-nav-item, .dvs-nav-parent { line-height: 1.2; }

/* Search inputs: orange focus ring (was Bootstrap magenta) */
.geodir-listing-search .form-control:focus,
.geodir-search-container .form-control:focus,
.geodir-search input:focus,
.gd-search-input-wrapper input:focus {
	border-color: var(--dvs-teal) !important;
	box-shadow: 0 0 0 .2rem rgba(0, 128, 134, .28) !important;
}

/* Family-owned badge */
.dvs-getinfo__badges { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .4rem; }
.dvs-badge--family { background: var(--dvs-lime); color: var(--dvs-navy); }
.dvs-badge--family i { font-size: .9em; }

/* Contact / feedback form */
.dvs-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.dvs-feedback__form { max-width: 560px; display: flex; flex-direction: column; gap: 1rem; }
.dvs-feedback__form label { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; font-size: .9rem; color: var(--dvs-navy); }
.dvs-feedback__form input, .dvs-feedback__form textarea { padding: .7rem .9rem; border: 1px solid var(--dvs-line); border-radius: 8px; font: inherit; font-weight: 400; background: var(--dvs-white); }
.dvs-feedback__form input:focus, .dvs-feedback__form textarea:focus { border-color: var(--dvs-teal); outline: none; box-shadow: 0 0 0 .2rem rgba(0,128,134,.2); }
.dvs-feedback__form button { align-self: flex-start; }
.dvs-feedback__ok { background: var(--dvs-lime); color: var(--dvs-navy); padding: 1rem; border-radius: 8px; margin-bottom: 1rem; font-weight: 600; }
.dvs-feedback__err { background: #fde2d7; color: var(--dvs-orange-hi); padding: 1rem; border-radius: 8px; margin-bottom: 1rem; }

/* Footer wordmark: invert the navy DVSPOTLIGHT.ORG wordmark to white on navy */
.dvs-footer__brand img { filter: brightness(0) invert(1); height: 58px; max-width: 100%; }
.dvs-header__logo img { height: 56px; }

/* Nav alignment: make plain links + dropdown items sit on the same line */
.dvs-header__nav > a, .dvs-header__nav > .dvs-nav-item { display: inline-flex; align-items: center; line-height: 1; }
.dvs-nav-parent { line-height: 1; }

/* ==== Premium plans page ==== */
.dvs-plans { padding-block: 1rem; }
.dvs-plans__title { text-align: center; font-size: clamp(1.6rem, 5vw, 2.4rem); margin: 0 0 1.6rem; }
.dvs-plans__grid { display: grid; gap: var(--dvs-gap); grid-template-columns: 1fr; max-width: 900px; margin: 0 auto; }
@media (min-width: 760px) { .dvs-plans__grid { grid-template-columns: 1fr 1fr; align-items: start; } }
.dvs-plan { padding: 1.8rem; position: relative; }
.dvs-plan--premium { border: 2px solid var(--dvs-yellow); }
.dvs-plan--premium .dvs-badge--premium { position: absolute; top: -.7rem; right: 1.2rem; }
.dvs-plan h3 { font-size: 1.4rem; margin: 0 0 .3rem; }
.dvs-plan__tag { color: var(--dvs-teal); margin: 0 0 .8rem; font-weight: 600; min-height: 2.6em; }
.dvs-plan__price { font-family: var(--dvs-font-display); font-size: 2.4rem; color: var(--dvs-navy); margin: 0 0 1rem; }
.dvs-plan__price span { font-family: var(--dvs-font-body); font-size: 1rem; color: var(--dvs-teal); font-weight: 600; }
.dvs-plan__features { list-style: none; padding: 0; margin: 0 0 1.4rem; }
.dvs-plan__features li { display: flex; align-items: flex-start; gap: .55rem; padding: .38rem 0; border-bottom: 1px solid var(--dvs-line); font-size: .92rem; }
.dvs-plan-yes { color: var(--dvs-lime); font-weight: 800; }
.dvs-plan-no { color: #d0c9b0; font-weight: 800; }
.dvs-plan .dvs-btn { width: 100%; justify-content: center; }
.dvs-plans__note { max-width: 900px; margin: 1.2rem auto 0; text-align: center; font-size: .9rem; color: var(--dvs-navy); opacity: .8; }
.dvs-plans__cta { max-width: 900px; margin: 2rem auto 0; background: var(--dvs-navy); color: var(--dvs-white); border-radius: var(--dvs-radius); padding: 1.6rem 2rem; display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; }
.dvs-plans__cta h3, .dvs-plans__cta p { color: var(--dvs-white); margin: 0; }
.dvs-plans__cta p { opacity: .85; }

/* ==== Events ==== (mirrors the business-listing card: image on top, body below) */
.dvs-event-card { display: flex; flex-direction: column; text-decoration: none; color: inherit; transition: transform .15s ease, box-shadow .15s ease; }
a.dvs-event-card:hover { transform: translateY(-3px); box-shadow: 0 12px 28px rgba(0,27,56,.14); }
.dvs-event-card__cta { display: inline-block; margin-top: 1rem; align-self: flex-start; }
.dvs-event-card__media { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--dvs-white); border-bottom: 1px solid var(--dvs-line); overflow: hidden; }
.dvs-event-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dvs-event-card__cat { display: inline-block; background: var(--dvs-cream); color: var(--dvs-navy); border: 1px solid var(--dvs-line); border-radius: 6px; padding: .18em .6em; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; margin: 0 0 .6rem; }
.dvs-event-card__body { padding: 1.4rem 1.5rem; }
.dvs-event-card h3 { font-size: 1.3rem; margin: 0 0 .2rem; }
.dvs-event-card__meta { color: var(--dvs-teal); font-weight: 700; text-transform: uppercase; font-size: .78rem; letter-spacing: .03em; margin: 0 0 .7rem; }
.dvs-event-card p { margin: 0; line-height: 1.6; }

/* Contact page: details + form side by side on desktop */
.dvs-contact { display: grid; gap: var(--dvs-gap); grid-template-columns: 1fr; }
@media (min-width: 800px) { .dvs-contact { grid-template-columns: 300px 1fr; } }
.dvs-contact__details { background: var(--dvs-navy); color: var(--dvs-white); border-radius: var(--dvs-radius); padding: 1.6rem; align-self: start; }
.dvs-contact__details h3 { color: var(--dvs-white); margin: 0 0 .8rem; }
.dvs-contact__details p { margin: .3rem 0; }
.dvs-contact__details a { color: var(--dvs-yellow); }
.dvs-feedback__recaptcha { font-size: .75rem; opacity: .6; margin: .2rem 0 0; }

/* Let the "Most Popular" badge sit above the plan card edge */
.dvs-plan { overflow: visible; }

.dvs-event-card__where { font-size: .85rem; color: var(--dvs-navy); opacity: .8; margin: 0 0 .7rem; }
.dvs-event-card__where i { color: var(--dvs-orange); margin-right: .3em; }
.dvs-event-card__highlights { font-size: .85rem; color: var(--dvs-teal); margin: .7rem 0 0; }

/* ==== Event single (gd_event detail page) ==== */
.dvs-event-single { max-width: 900px; }
.dvs-event-single__banner { border-radius: var(--dvs-radius); overflow: hidden; margin-bottom: 1.4rem; background: var(--dvs-cream); }
.dvs-event-single__banner img { width: 100%; height: auto; max-height: 460px; object-fit: cover; display: block; }
.dvs-event-single__card { background: var(--dvs-white); border: 1px solid var(--dvs-line); border-radius: var(--dvs-radius); padding: clamp(1.2rem, 4vw, 2rem); }
.dvs-event-single__cat { margin-bottom: 1rem; }
.dvs-event-single__meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; margin: 0 0 1.4rem; padding: 1rem 0; border-top: 1px solid var(--dvs-line); border-bottom: 1px solid var(--dvs-line); }
.dvs-event-single__metaitem span { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--dvs-navy); opacity: .6; margin-bottom: .2rem; }
.dvs-event-single__metaitem strong { font-size: 1.05rem; color: var(--dvs-navy); }
.dvs-event-single__highlights { background: var(--dvs-cream); border-radius: 8px; padding: .7rem 1rem; margin: 0 0 1.4rem; font-size: .95rem; }
.dvs-event-single__map { margin-top: 1.4rem; }
.dvs-events-cta { text-align: center; margin: 1.6rem 0 0; }
.dvs-addevent__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.dvs-premsignup { max-width: 640px; margin: 3rem auto 0; padding: 1.8rem clamp(1.2rem, 4vw, 2rem); background: var(--dvs-cream); border: 1px solid var(--dvs-line); border-radius: var(--dvs-radius); scroll-margin-top: 90px; }
.dvs-premsignup__title { margin: 0 0 .3rem; }
.dvs-premsignup__intro { margin: 0 0 1.2rem; opacity: .85; }
.dvs-premsignup__claim { background: var(--dvs-yellow, #fff6cc); border: 1px solid var(--dvs-line); border-radius: 8px; padding: .7rem 1rem; margin: 0 0 1.1rem; font-size: .95rem; }
.dvs-premsignup__sep { border: none; border-top: 1px solid var(--dvs-line); margin: 1.3rem 0; }
.dvs-tier { display: grid; gap: .6rem; margin: 0 0 1.2rem; }
.dvs-tier__opt { display: flex; gap: .6rem; align-items: flex-start; padding: .8rem 1rem; border: 1px solid var(--dvs-line); border-radius: 8px; background: var(--dvs-white); cursor: pointer; }
.dvs-tier__opt input { margin-top: .3rem; }
.dvs-tier__opt small { display: block; opacity: .7; font-size: .8rem; margin-top: .1rem; }
.dvs-premium-only { display: none; }
.dvs-premsignup__form.is-premium .dvs-premium-only { display: block; }
.dvs-premium-only__head { font-weight: 700; color: var(--dvs-teal); margin: .4rem 0 .5rem; }
.dvs-postcard { max-width: 900px; text-align: center; padding-bottom: 2.5rem; }
.dvs-postcard__intro { font-size: 1.1rem; max-width: 60ch; margin: 1.5rem auto; }
.dvs-postcard__cta { margin: 1.5rem 0; }
.dvs-postcard__side { margin: 1.5rem 0; }
.dvs-postcard__side img { width: 100%; height: auto; border: 1px solid var(--dvs-line); border-radius: var(--dvs-radius); box-shadow: 0 8px 24px rgba(0,27,56,.12); }
.dvs-event-card__next { font-size: .82rem; color: var(--dvs-orange); font-weight: 700; margin: 0 0 .3rem; }
.dvs-event-card__next i { margin-right: .3em; }
.dvs-eventspage { padding-top: 1.5rem; padding-bottom: 2.5rem; }
.dvs-eventspage__intro { max-width: 60ch; margin: 0 0 1.8rem; font-size: 1.05rem; color: var(--dvs-navy); opacity: .85; }
.dvs-eventspage__submit { max-width: 680px; margin: 3rem auto 0; padding: 1.8rem clamp(1.2rem, 4vw, 2rem); background: var(--dvs-cream); border: 1px solid var(--dvs-line); border-radius: var(--dvs-radius); }
.dvs-eventspage__submit h2 { margin: 0 0 .3rem; }
.dvs-eventspage__submit > p { margin: 0 0 1.2rem; opacity: .85; }

/* Business hours: show the full week always, not collapsed behind a click
 * (Nick 2026-08-06 — "closed now 9-5" summary wasn't useful, wanted the
 * whole table visible). GD renders it as a Bootstrap dropdown; force open. */
.gd-bh-open-hours.dropdown-menu { display: block !important; position: static !important; box-shadow: none !important; border: none !important; margin: .5rem 0 0 !important; padding: 0 !important; float: none !important; }
.geodir-field-business_hours .dropdown-toggle { pointer-events: none; }
.geodir-field-business_hours .gd-bh-expand-range { cursor: default; }
/* "Closed now" indicator used GD's default red (#d32323) — brand teal instead. */
.gd-bh-close .geodir-i-biz-hours,
.gd-bh-slots .gd-bh-slot-close { color: var(--dvs-teal) !important; }
