:root {
	--ds-ink: #16323a;
	--ds-deep: #153f52;
	--ds-teal: #2f6f62;
	--ds-teal-dark: #24584f;
	--ds-cream: #fbf8ef;
	--ds-mint: #eaf5f1;
	--ds-gold: #f2bd4c;
	--ds-border: #c9dad5;
	--ds-white: #fff;
	--ds-shadow: 0 14px 38px rgba(21,63,82,.11);
}

html { scroll-behavior: smooth; }
body.dsx-senior-friendly { color: var(--ds-ink); background: var(--ds-cream); font-size: 18px; line-height: 1.7; }
.dsx-senior-friendly a { text-underline-offset: .16em; }
.dsx-senior-friendly a:focus-visible,
.dsx-senior-friendly button:focus-visible,
.dsx-senior-friendly input:focus-visible,
.dsx-senior-friendly select:focus-visible { outline: 4px solid var(--ds-gold) !important; outline-offset: 3px; }
.dsx-senior-friendly .site-header { background: rgba(255,255,255,.98); border-bottom: 1px solid var(--ds-border); box-shadow: 0 4px 20px rgba(21,63,82,.06); }
.dsx-senior-friendly.ast-desktop .site-primary-header-wrap .ast-builder-grid-row-has-sides { grid-template-columns: minmax(240px,auto) minmax(0,1fr) auto !important; min-height:88px; }
.dsx-senior-friendly.ast-desktop .site-header-primary-section-left { min-width:240px; }
.dsx-senior-friendly .site-title,
.dsx-senior-friendly .site-title a,
.dsx-senior-friendly .ds-division-line,
.dsx-senior-friendly .ds-division-line a { white-space:nowrap; overflow-wrap:normal; }
.dsx-senior-friendly .ds-division-line { width:max-content; }
.dsx-senior-friendly .site-title a,
.dsx-senior-friendly .main-header-menu > .menu-item > .menu-link { color: var(--ds-deep); font-weight: 800; }
.dsx-senior-friendly.ast-desktop .main-header-menu > .menu-item > .menu-link { padding-left:.65rem; padding-right:.65rem; font-size:.94rem; }
.dsx-senior-friendly .main-header-menu > .menu-item > .menu-link { min-height: 52px; display: flex; align-items: center; }
.dsx-senior-friendly .ast-header-button-1 .ast-custom-button { border-radius: 999px; background: var(--ds-teal); font-size: 1rem; letter-spacing: 0; text-transform: none; }
.dsx-senior-friendly .site-content .ast-container { max-width: none; padding: 0; }
.dsx-senior-friendly .entry-header { display: none; }
.dsx-senior-friendly .site-main,
.dsx-senior-friendly .entry-content { margin: 0; overflow-x: clip; }
.dsx-senior-friendly .entry-content > * { margin-block-start: 0; }
.dsx-senior-friendly .entry-content > .alignwide,
.dsx-senior-friendly .entry-content > .alignfull { width: 100%; max-width: none; margin-left: 0 !important; margin-right: 0 !important; }

.dsx-hero,
.dsx-section,
.dsx-urgent { padding: clamp(2.5rem, 6vw, 5.75rem) max(1.25rem, calc((100vw - 1180px) / 2)); }
.dsx-hero { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(120deg,#e7f4ef 0%,#fbf8ef 62%,#f7e8bd 100%); }
.dsx-hero::after { content:""; position:absolute; z-index:-1; width:420px; height:420px; right:-120px; top:-160px; border-radius:50%; background:rgba(47,111,98,.11); }
.dsx-kicker { margin-bottom:.7rem; color:var(--ds-teal-dark); font-size:.95rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.dsx-hero h1 { max-width: 900px; margin-bottom:1rem; color:var(--ds-deep); font-size:clamp(2.6rem,6vw,5rem); line-height:1.02; letter-spacing:-.035em; }
.dsx-hero .dsx-lead { max-width:820px; font-size:clamp(1.15rem,2vw,1.42rem); }
.dsx-hero .geodir-listing-search { margin:2rem 0 1rem !important; padding:1rem !important; border:1px solid var(--ds-border); border-radius:18px; background:#fff; box-shadow:var(--ds-shadow); }
.dsx-hero .geodir-search input,
.dsx-hero .geodir-search select,
.dsx-hero .geodir-search button { min-height:56px; font-size:1.05rem; border-radius:10px !important; }
.dsx-hero .geodir-search button { background:var(--ds-teal) !important; border-color:var(--ds-teal) !important; font-weight:800; }
.dsx-quicklinks { display:flex; flex-wrap:wrap; gap:.7rem; margin-top:1.1rem; }
.dsx-quicklinks a { display:inline-flex; align-items:center; min-height:46px; padding:.55rem 1rem; border:1px solid var(--ds-teal); border-radius:999px; color:var(--ds-teal-dark); background:#fff; font-weight:800; text-decoration:none; }
.dsx-quicklinks a:hover { color:#fff; background:var(--ds-teal); }

.dsx-urgent { padding-top:1.5rem; padding-bottom:1.5rem; color:#fff; background:var(--ds-deep); }
.dsx-urgent h2,.dsx-urgent h3,.dsx-urgent p,.dsx-urgent a { color:#fff; }
.dsx-urgent .wp-block-columns { margin-bottom:0; }
.dsx-urgent .wp-block-column { padding:.5rem 1.2rem; border-left:3px solid rgba(242,189,76,.8); }
.dsx-urgent h3 { font-size:1.25rem; margin-bottom:.3rem; }
.dsx-urgent a { font-weight:900; text-decoration-thickness:2px; }

.dsx-section h2 { color:var(--ds-deep); font-size:clamp(2rem,3.5vw,3.15rem); letter-spacing:-.02em; }
.dsx-section-intro { max-width:780px; font-size:1.12rem; }
.dsx-soft { background:var(--ds-mint); }
.dsx-cream { background:var(--ds-cream); }
.dsx-white { background:#fff; }
.dsx-service-grid { gap:1.25rem; }
.dsx-service-grid .wp-block-column { display:flex; }
.dsx-card { width:100%; padding:1.5rem; border:1px solid var(--ds-border); border-radius:18px; background:#fff; box-shadow:var(--ds-shadow); transition:transform .2s ease,box-shadow .2s ease; }
.dsx-card:hover { transform:translateY(-3px); box-shadow:0 18px 45px rgba(21,63,82,.16); }
.dsx-card h3 { color:var(--ds-deep); font-size:1.35rem; }
.dsx-card a { color:var(--ds-teal-dark); font-weight:900; }
.dsx-card .dsx-icon { display:grid; place-items:center; width:50px; height:50px; margin-bottom:1rem; border-radius:14px; background:var(--ds-mint); font-size:1.55rem; }
.dsx-directory .geodir-categories-container .card { border:1px solid var(--ds-border) !important; border-radius:16px !important; overflow:hidden; box-shadow:var(--ds-shadow); }
.dsx-directory .geodir-categories-container a { color:var(--ds-deep); font-weight:800; }
.dsx-directory .geodir-listings .geodir-post { border-radius:16px; overflow:hidden; }
.dsx-count { display:inline-flex; gap:.4rem; align-items:center; padding:.4rem .75rem; border-radius:999px; background:#dff0ea; color:var(--ds-teal-dark); font-weight:800; }
.dsx-source-note { margin-top:2rem; padding:1rem 1.2rem; border-left:5px solid var(--ds-gold); background:#fff8df; font-size:.95rem; }
.dsx-disclaimer { padding:1rem 1.25rem; border-left:5px solid #b55a24; background:#fff; }
.dsx-footer-callout { color:#fff; background:var(--ds-teal-dark); }
.dsx-footer-callout h2,.dsx-footer-callout p,.dsx-footer-callout a { color:#fff; }
.dsx-senior-friendly .wp-block-button__link { min-height:50px; display:inline-flex; align-items:center; border-radius:999px; padding:.7rem 1.25rem; background:var(--ds-teal); font-size:1rem; font-weight:800; letter-spacing:0; text-transform:none; }

.dsx-senior-friendly .geodir-page .card,
.dsx-senior-friendly .geodir-loop-container .geodir-post { border-color:var(--ds-border) !important; border-radius:16px !important; box-shadow:0 8px 26px rgba(21,63,82,.09); }
.dsx-senior-friendly .geodir-page h1,
.dsx-senior-friendly .geodir-page h2,
.dsx-senior-friendly .geodir-page h3 { color:var(--ds-deep); }
.dsx-senior-friendly .geodir-post-title { font-size:1.25rem !important; font-weight:900 !important; }
.dsx-senior-friendly .geodir-field-email,
.dsx-senior-friendly .geodir-field-website,
.dsx-senior-friendly .geodir-field-address { font-size:1rem; }

@media (max-width: 781px) {
	body.dsx-senior-friendly { font-size:17px; }
	.dsx-hero,.dsx-section,.dsx-urgent { padding-left:1.1rem; padding-right:1.1rem; }
	.dsx-hero .geodir-search > div { flex:0 0 100% !important; width:100%; max-width:100%; }
	.dsx-hero .geodir-search button { width:100%; }
	.dsx-urgent .wp-block-column { border-left:0; border-top:2px solid rgba(242,189,76,.7); }
	.dsx-card { padding:1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
	*,*::before,*::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}

@media print {
	.site-header,.site-footer,.wp-block-buttons,.geodir-map-wrap { display:none !important; }
	.dsx-hero,.dsx-section,.dsx-urgent { padding:1rem 0; color:#000 !important; background:#fff !important; }
	.dsx-urgent * { color:#000 !important; }
}

/* GeoDirectory archive and details: DurhamDirectory layout, Durham Seniors theme. */
.dsx-directory-archive,
.dsx-directory-detail { width:min(1320px,calc(100% - 48px)); margin:0 auto; padding:44px 0 70px; overflow-x:clip; }
.dsx-directory-heading { margin:0 0 28px; }
.dsx-directory-heading h1 { max-width:900px; margin:.35rem 0 .8rem; color:var(--ds-deep); font-size:clamp(2.2rem,4.5vw,4rem); line-height:1.06; letter-spacing:-.035em; }
.dsx-directory-heading h1 span { color:var(--ds-teal); }
.dsx-directory-heading>p:last-child { max-width:760px; font-size:1.08rem; }
.dsx-back-link { display:inline-block; margin-bottom:1rem; color:var(--ds-teal-dark); font-weight:800; }
.dsx-directory-search { margin-bottom:24px; padding:18px; border:1px solid var(--ds-border); border-radius:16px; background:#fff; box-shadow:var(--ds-shadow); }
.dsx-directory-search .geodir-listing-search { margin:0!important; }
.dsx-directory-search .geodir-search { gap:8px!important; padding:0!important; }
.dsx-directory-search input,.dsx-directory-search select,.dsx-directory-search button { min-height:54px!important; font-size:1rem!important; border-radius:9px!important; }
.dsx-directory-search .btn-primary { min-width:54px; background:var(--ds-teal)!important; border-color:var(--ds-teal)!important; }
.dsx-archive-grid { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr); gap:28px; align-items:start; }
.dsx-results-column { min-width:0; }
.dsx-archive-map { position:sticky; top:20px; min-width:0; overflow:hidden; border:1px solid var(--ds-border); border-radius:16px; box-shadow:var(--ds-shadow); }
.dsx-result-cell { min-width:0; margin:0 0 22px!important; padding:0 11px!important; border:0!important; background:transparent!important; box-shadow:none!important; }
.dsx-result-card { height:100%; overflow:hidden; border:1px solid var(--ds-border); border-radius:16px; background:#fff; box-shadow:0 10px 30px rgba(21,63,82,.09); }
.dsx-result-image { position:relative; display:block; height:165px; overflow:hidden; color:var(--ds-deep); background:linear-gradient(135deg,#d9eee7,#f4e6bb); }
.dsx-result-cell:nth-child(3n+2) .dsx-result-image { background:linear-gradient(135deg,#e5ecce,#dcebf0); }
.dsx-result-cell:nth-child(3n) .dsx-result-image { background:linear-gradient(135deg,#f3dfca,#e2eff0); }
.dsx-result-image>img { width:100%; height:100%; object-fit:cover; }
.dsx-result-initials { position:absolute; right:24px; top:14px; font:italic 68px Georgia,serif; opacity:.55; }
.dsx-result-city { position:absolute; left:18px; bottom:15px; padding:4px 10px; border-radius:999px; background:rgba(255,255,255,.9); font-size:.76rem; font-weight:800; }
.dsx-result-body { padding:22px; }
.dsx-result-body h2 { margin:0 0 12px; font-size:1.28rem!important; line-height:1.25; }
.dsx-result-body h2 a { color:var(--ds-deep)!important; font-weight:900; }
.dsx-result-excerpt { min-height:3.4em; margin-bottom:16px!important; color:#53666a; font-size:.92rem; line-height:1.55; }
.dsx-contact-preview { display:grid; gap:8px; margin:0; font-size:.88rem; }
.dsx-contact-preview>div { min-width:0; padding:9px 11px; border-radius:8px; background:#f3f8f6; }
.dsx-contact-preview dt { color:#586c70; font-size:.7rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.dsx-contact-preview dd { margin:2px 0 0; overflow-wrap:anywhere; color:var(--ds-ink); }
.dsx-contact-preview a { color:var(--ds-teal-dark)!important; font-weight:800; }
.dsx-result-actions { display:flex; align-items:center; gap:12px; margin-top:18px; padding-top:15px; border-top:1px solid var(--ds-border); font-size:.86rem; }
.dsx-result-actions>a:last-child { margin-left:auto; color:var(--ds-teal-dark); font-weight:900; }
.dsx-detail-grid { display:grid; grid-template-columns:minmax(0,1.75fr) minmax(300px,1fr); gap:30px; align-items:start; }
.dsx-detail-main,.dsx-detail-contact { min-width:0; }
.dsx-detail-contact { position:sticky; top:20px; }
.dsx-detail-panel { margin-bottom:24px; padding:28px; overflow-wrap:anywhere; border:1px solid var(--ds-border); border-radius:16px; background:#fff; box-shadow:0 10px 30px rgba(21,63,82,.08); }
.dsx-detail-panel h2 { margin-bottom:20px; color:var(--ds-deep); font-size:1.45rem; }
.dsx-detail-panel .geodir_post_meta { padding:9px 0; font-size:1rem; }
.dsx-detail-contact .geodir_post_meta_title { display:block; margin-bottom:4px; color:#5c6f72; font-size:.72rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.dsx-detail-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; padding-top:20px; border-top:1px solid var(--ds-border); }
.dsx-detail-actions>div { margin:0!important; }
.dsx-detail-placeholder { display:flex; align-items:center; justify-content:space-between; min-height:230px; margin-bottom:24px; padding:36px; border-radius:18px; color:var(--ds-deep); background:linear-gradient(135deg,#dceee8,#f4e5b8); }
.dsx-detail-placeholder>span:first-child { font:italic 80px Georgia,serif; opacity:.55; }
.dsx-detail-placeholder>span:last-child { max-width:180px; text-align:right; font-size:.8rem; font-weight:900; letter-spacing:.09em; }
.dsx-detail-main .geodir-post-slider { overflow:hidden; margin-bottom:24px; border-radius:16px; }
.dsx-native-tabs .nav-tabs .nav-link.active { color:var(--ds-teal-dark); border-bottom-color:var(--ds-teal); }

@media (max-width:900px) {
	.dsx-archive-grid,.dsx-detail-grid { grid-template-columns:1fr; }
	.dsx-archive-map,.dsx-detail-contact { position:static; }
	.dsx-archive-map .geodir-map-wrap { max-height:420px; }
}
@media (max-width:600px) {
	.dsx-directory-archive,.dsx-directory-detail { width:calc(100% - 30px); padding:28px 0 50px; }
	.dsx-directory-search { padding:13px; }
	.dsx-directory-search .geodir-search { flex-wrap:wrap!important; }
	.dsx-directory-search .geodir-search>div { flex:1 1 100%!important; width:100%!important; max-width:none!important; }
	.dsx-result-cell { padding:0!important; }
	.dsx-result-excerpt { min-height:0; }
	.dsx-detail-panel { padding:22px; }
	.dsx-detail-contact { order:-1; }
	.dsx-detail-placeholder { min-height:175px; padding:26px; }
}
