:root {
	--ds-ink: #0a2035;
	--ds-body: #263f52;
	--ds-muted: #52697a;
	--ds-teal: #006a78;
	--ds-teal-dark: #075260;
	--ds-gold: #d7a93a;
	--ds-line: #d8e2e7;
	--ds-soft: #f1f6f7;
	--ds-white: #ffffff;
	--ds-dark: #071a2a;
	--ds-radius: 22px;
	--ds-shadow: 0 24px 64px rgba( 10, 32, 53, 0.12 );
}

html {
	scroll-behavior: smooth;
}

body.david-so-site {
	background: var(--ds-white);
	color: var(--ds-body);
	font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	font-size: 17px;
	font-weight: 400;
	line-height: 1.7;
}

body.david-so-site #page-container {
	overflow: clip;
	padding-top: 0 !important;
}

body.david-so-site #main-content,
body.david-so-site .et-l--body,
body.david-so-site .et_pb_section,
body.david-so-site .et_pb_row,
body.david-so-site .et_pb_column,
body.david-so-site .et_pb_text,
body.david-so-site .et_pb_text_inner {
	background: transparent;
}

body.david-so-site .et_pb_section,
body.david-so-site .et_pb_row,
body.david-so-site .et_pb_column,
body.david-so-site .et_pb_text {
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: none;
}

body.david-so-site #main-header,
body.david-so-site #main-footer,
body.david-so-site .et_pb_title_container,
body.david-so-site .entry-title.main_title {
	display: none !important;
}

body.david-so-site h1,
body.david-so-site h2,
body.david-so-site h3,
body.david-so-site h4,
body.david-so-site p,
body.david-so-site ul,
body.david-so-site ol,
body.david-so-site dl,
body.david-so-site figure {
	margin-top: 0;
}

body.david-so-site h1,
body.david-so-site h2,
body.david-so-site h3,
body.david-so-site h4 {
	color: var(--ds-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 600;
	letter-spacing: -0.035em;
	line-height: 1.08;
	padding: 0;
}

body.david-so-site h1 {
	font-size: clamp( 3.75rem, 9vw, 7.75rem );
}

body.david-so-site h2 {
	font-size: clamp( 2.2rem, 4.4vw, 4rem );
}

body.david-so-site h3 {
	font-size: clamp( 1.45rem, 2.4vw, 2rem );
}

body.david-so-site p,
body.david-so-site li,
body.david-so-site dd {
	color: var(--ds-body);
}

body.david-so-site a {
	color: var(--ds-teal);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.18em;
}

body.david-so-site a:focus-visible,
body.david-so-site button:focus-visible,
body.david-so-site summary:focus-visible,
body.david-so-site input:focus-visible,
body.david-so-site textarea:focus-visible {
	outline: 3px solid var(--ds-gold);
	outline-offset: 4px;
}

.ds-shell {
	box-sizing: border-box;
	margin-inline: auto;
	max-width: 1240px;
	padding-inline: clamp( 22px, 4vw, 52px );
	width: 100%;
}

.ds-kicker {
	align-items: center;
	color: var(--ds-teal) !important;
	display: flex;
	font-size: 0.75rem;
	font-weight: 800;
	gap: 0.65rem;
	letter-spacing: 0.18em;
	line-height: 1.4;
	margin-bottom: 1.25rem;
	text-transform: uppercase;
}

.ds-kicker::before {
	background: var(--ds-gold);
	content: "";
	height: 2px;
	width: 30px;
}

/* Theme Builder header */
.et-l--header {
	background: rgba( 255, 255, 255, 0.96 );
	border-bottom: 1px solid rgba( 10, 32, 53, 0.1 );
	position: sticky;
	top: 0;
	z-index: 1000;
	-webkit-backdrop-filter: blur( 14px );
	backdrop-filter: blur( 14px );
}

.admin-bar .et-l--header {
	top: 32px;
}

.ds-site-header {
	background: transparent;
}

body.david-so-site .et-l--header .et_pb_row {
	padding-bottom: 0 !important;
	padding-top: 0 !important;
}

.ds-header-inner {
	align-items: center;
	display: flex;
	gap: clamp( 20px, 3vw, 42px );
	height: 88px;
	justify-content: space-between;
}

.ds-brand {
	align-items: center;
	display: inline-flex;
	gap: 12px;
	text-decoration: none !important;
}

.ds-brand-mark {
	align-items: center;
	background: var(--ds-ink);
	border-radius: 50%;
	color: var(--ds-white);
	display: inline-flex;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1rem;
	font-weight: 700;
	height: 46px;
	justify-content: center;
	letter-spacing: -0.05em;
	width: 46px;
}

.ds-brand-name {
	color: var(--ds-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1;
}

.ds-brand-name small {
	color: var(--ds-muted);
	display: block;
	font-family: Inter, ui-sans-serif, sans-serif;
	font-size: 0.57rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	margin-top: 6px;
	text-transform: uppercase;
}

.ds-desktop-nav {
	align-items: center;
	display: flex;
	gap: clamp( 18px, 2.2vw, 32px );
	margin-left: auto;
}

.ds-desktop-nav a,
.ds-header-contact {
	color: var(--ds-body) !important;
	font-size: 0.89rem;
	font-weight: 700;
	position: relative;
	text-decoration: none !important;
}

.ds-desktop-nav a::after {
	background: var(--ds-teal);
	bottom: -10px;
	content: "";
	height: 2px;
	left: 0;
	position: absolute;
	transform: scaleX( 0 );
	transform-origin: left;
	transition: transform 180ms ease;
	width: 100%;
}

.ds-desktop-nav a:hover::after,
.ds-current-home .ds-nav-home::after,
.ds-current-tentang-david-so .ds-nav-about::after,
.ds-current-aktivitas-sosial .ds-nav-social::after,
.ds-current-olahraga .ds-nav-sports::after,
.ds-current-kabar-david-so .ds-nav-news::after,
.single-post .ds-nav-news::after {
	transform: scaleX( 1 );
}

.ds-header-contact {
	background: var(--ds-ink);
	border-radius: 999px;
	color: var(--ds-white) !important;
	padding: 11px 20px;
	transition: background 180ms ease, transform 180ms ease;
}

.ds-header-contact:hover {
	background: var(--ds-teal-dark);
	transform: translateY( -1px );
}

.ds-family-link {
	align-items: center;
	background: #edf6f4;
	border: 1px solid #b8d7d1;
	border-radius: 999px;
	color: var(--ds-ink) !important;
	display: inline-flex;
	flex: 0 0 auto;
	font-size: 0.8rem;
	font-weight: 800;
	gap: 7px;
	min-height: 44px;
	padding: 7px 14px;
	text-decoration: none !important;
	transition: background 180ms ease, border-color 180ms ease, transform 180ms ease;
	white-space: nowrap;
}

.ds-family-link small {
	color: var(--ds-teal-dark);
	font-size: 0.57rem;
	font-weight: 800;
	letter-spacing: 0.12em;
}

.ds-family-link b {
	font-size: 0.94rem;
}

.ds-family-link:hover {
	background: #dff0ec;
	border-color: #83b8ad;
	transform: translateY( -1px );
}

.ds-mobile-nav {
	display: none;
	position: relative;
}

.ds-mobile-nav summary {
	align-items: center;
	border: 1px solid var(--ds-line);
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: 4px;
	height: 44px;
	justify-content: center;
	list-style: none;
	width: 44px;
}

.ds-mobile-nav summary::-webkit-details-marker {
	display: none;
}

.ds-mobile-nav summary span {
	background: var(--ds-ink);
	height: 2px;
	width: 18px;
}

.ds-mobile-nav > div {
	background: var(--ds-white);
	border: 1px solid var(--ds-line);
	border-radius: 16px;
	box-shadow: var(--ds-shadow);
	display: grid;
	min-width: 240px;
	padding: 10px;
	position: absolute;
	right: 0;
	top: 56px;
}

.ds-mobile-nav > div a {
	border-radius: 9px;
	color: var(--ds-ink);
	font-weight: 700;
	padding: 10px 12px;
	text-decoration: none;
}

.ds-mobile-nav > div a:hover {
	background: var(--ds-soft);
}

/* Core page sections */
.ds-hero {
	background:
		radial-gradient( circle at 7% 10%, rgba( 215, 169, 58, 0.15 ), transparent 28% ),
		linear-gradient( 130deg, #f7faf9 0%, #edf4f5 58%, #e1edef 100% );
	background-color: #eef5f5;
	padding: clamp( 70px, 10vw, 132px ) 0 clamp( 72px, 9vw, 118px );
	position: relative;
}

.ds-hero::after {
	border: 1px solid rgba( 0, 106, 120, 0.15 );
	border-radius: 50%;
	content: "";
	height: 540px;
	position: absolute;
	right: -230px;
	top: -210px;
	width: 540px;
}

.ds-hero-grid {
	align-items: center;
	display: grid;
	gap: clamp( 44px, 7vw, 92px );
	grid-template-columns: minmax( 0, 1.04fr ) minmax( 360px, 0.8fr );
	position: relative;
	z-index: 1;
}

.ds-hero h1 {
	margin-bottom: 18px;
}

.ds-hero-lead {
	color: var(--ds-ink) !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp( 1.7rem, 3vw, 2.7rem );
	letter-spacing: -0.025em;
	line-height: 1.24;
	margin-bottom: 22px;
	max-width: 690px;
}

.ds-hero-summary {
	font-size: 1.05rem;
	max-width: 650px;
}

.ds-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-top: 34px;
}

.ds-button,
body.david-so-site .ds-button {
	align-items: center;
	background: var(--ds-ink);
	border: 2px solid var(--ds-ink);
	border-radius: 999px;
	box-sizing: border-box;
	color: var(--ds-white) !important;
	cursor: pointer;
	display: inline-flex;
	font-family: Inter, ui-sans-serif, sans-serif;
	font-size: 0.94rem;
	font-weight: 800;
	justify-content: center;
	line-height: 1.25;
	min-height: 52px;
	padding: 13px 25px !important;
	text-decoration: none !important;
	transition: background 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.ds-button::after,
.ds-button::before {
	display: none !important;
}

.ds-button:hover {
	background: var(--ds-teal-dark);
	border-color: var(--ds-teal-dark);
	transform: translateY( -2px );
}

body.david-so-site .ds-page .ds-button {
	color: #ffffff !important;
}

.ds-button-light,
body.david-so-site .ds-button-light {
	background: var(--ds-white);
	border-color: var(--ds-white);
	color: var(--ds-ink) !important;
}

.ds-button-light:hover {
	background: #eaf3f4;
	border-color: #eaf3f4;
}

body.david-so-site .ds-page .ds-button-light,
body.david-so-site .ds-page .ds-button-outline {
	color: #0a2035 !important;
}

.ds-button-outline,
body.david-so-site .ds-button-outline {
	background: transparent;
	color: var(--ds-ink) !important;
}

.ds-button-outline:hover {
	background: var(--ds-ink);
	color: var(--ds-white) !important;
}

body.david-so-site .ds-page .ds-button-outline:hover {
	color: #ffffff !important;
}

.ds-text-link {
	align-items: center;
	color: var(--ds-teal-dark) !important;
	display: inline-flex;
	font-weight: 800;
	gap: 8px;
	text-decoration: none !important;
}

.ds-text-link span,
.ds-card-link span {
	transition: transform 180ms ease;
}

.ds-text-link:hover span,
.ds-card-link:hover span {
	transform: translateX( 4px );
}

.ds-hero-visual {
	margin: 0;
	position: relative;
}

.ds-hero-visual::before {
	border: 1px solid rgba( 0, 106, 120, 0.3 );
	border-radius: 48% 48% 36% 36%;
	bottom: -28px;
	content: "";
	left: -28px;
	position: absolute;
	right: 28px;
	top: 28px;
	z-index: -1;
}

.ds-portrait {
	box-sizing: border-box;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.ds-portrait-hero {
	aspect-ratio: 4 / 4.5;
	border-radius: 48% 48% 36% 36%;
	box-shadow: var(--ds-shadow);
	object-position: center 36%;
}

.ds-hero-visual figcaption {
	background: rgba( 255, 255, 255, 0.97 );
	border: 1px solid rgba( 10, 32, 53, 0.14 );
	border-left: 4px solid var(--ds-gold);
	border-radius: 10px;
	bottom: 24px;
	box-shadow: 0 14px 34px rgba( 10, 32, 53, 0.15 );
	display: grid;
	left: -32px;
	max-width: 285px;
	padding: 15px 20px;
	position: absolute;
	-webkit-backdrop-filter: blur( 12px );
	backdrop-filter: blur( 12px );
}

.ds-hero-visual figcaption strong {
	color: var(--ds-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.25rem;
}

.ds-hero-visual figcaption span {
	color: #3e596b;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.ds-signal {
	background: var(--ds-dark);
}

.ds-signal-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
}

.ds-signal-grid > div {
	border-left: 1px solid rgba( 255, 255, 255, 0.14 );
	display: grid;
	grid-template-columns: auto 1fr;
	padding: 30px clamp( 20px, 4vw, 46px );
}

.ds-signal-grid > div:last-child {
	border-right: 1px solid rgba( 255, 255, 255, 0.14 );
}

.ds-signal-grid span {
	color: var(--ds-gold);
	font-size: 0.7rem;
	font-weight: 800;
	grid-row: 1 / span 2;
	margin-right: 18px;
}

.ds-signal-grid strong {
	color: var(--ds-white);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.25rem;
}

.ds-signal-grid p {
	color: #cbd8e1 !important;
	font-size: 0.82rem;
	margin: 0;
}

.ds-section {
	padding: clamp( 76px, 10vw, 132px ) 0;
}

.ds-section-soft {
	background: var(--ds-soft);
}

.ds-section-dark {
	background: var(--ds-dark);
}

.ds-intro-grid,
.ds-profile-grid,
.ds-source-grid,
.ds-story-grid,
.ds-contact-grid {
	display: grid;
	gap: clamp( 46px, 8vw, 110px );
	grid-template-columns: minmax( 0, 0.85fr ) minmax( 0, 1.15fr );
}

.ds-section-heading h2 {
	margin-bottom: 22px;
}

.ds-section-heading > p:last-child {
	font-size: 1.02rem;
	max-width: 650px;
}

.ds-section-heading-row {
	align-items: end;
	display: flex;
	gap: 40px;
	justify-content: space-between;
	margin-bottom: 48px;
}

.ds-section-heading-row > div {
	max-width: 650px;
}

.ds-section-heading-row > p,
.ds-section-heading-row > a {
	margin-bottom: 10px;
	max-width: 420px;
}

.ds-prose > :last-child {
	margin-bottom: 0;
}

.ds-prose-large p {
	font-size: clamp( 1.08rem, 1.5vw, 1.25rem );
	margin-bottom: 22px;
}

.ds-card-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat( 3, 1fr );
}

.ds-feature-card {
	background: var(--ds-white);
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius);
	display: flex;
	flex-direction: column;
	min-height: 315px;
	padding: clamp( 28px, 4vw, 42px );
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.ds-feature-linked,
.ds-sport-linked {
	cursor: pointer;
	position: relative;
}

body.david-so-site .ds-page p:empty {
	display: none;
}

.ds-feature-linked > p:last-child,
.ds-sport-linked > p:last-child {
	margin: auto 0 0 !important;
	padding: 0;
}

.ds-feature-card:hover {
	border-color: rgba( 0, 106, 120, 0.45 );
	box-shadow: 0 18px 44px rgba( 10, 32, 53, 0.08 );
	transform: translateY( -5px );
}

.ds-card-number {
	color: var(--ds-teal);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.ds-feature-card h3 {
	margin: 42px 0 16px;
}

.ds-feature-card p {
	font-size: 0.95rem;
}

.ds-card-action {
	color: var(--ds-teal-dark);
	display: inline-flex;
	font-size: 0.88rem;
	font-weight: 800;
	gap: 8px;
	margin-top: auto;
	text-decoration: none !important;
}

.ds-feature-linked .ds-card-action::after,
.ds-sport-linked .ds-card-action::after {
	content: "";
	inset: 0;
	position: absolute;
}

.ds-feature-linked:focus-within,
.ds-sport-linked:focus-within {
	outline: 3px solid var(--ds-gold);
	outline-offset: 4px;
}

.ds-feature-linked .ds-card-action:focus-visible,
.ds-sport-linked .ds-card-action:focus-visible {
	outline: none;
}

.ds-card-action span {
	transition: transform 180ms ease;
}

.ds-feature-linked:hover .ds-card-action span {
	transform: translateX( 4px );
}

.ds-evidence-section {
	background: var(--ds-ink);
}

.ds-evidence-grid {
	align-items: start;
	display: grid;
	gap: clamp( 48px, 8vw, 110px );
	grid-template-columns: minmax( 0, 0.8fr ) minmax( 0, 1.2fr );
}

.ds-evidence-grid h2,
.ds-evidence-grid > div > p:not(.ds-kicker) {
	color: var(--ds-white) !important;
}

body.david-so-site .ds-page .ds-evidence-grid h2,
body.david-so-site .ds-page .ds-evidence-grid > div > p:not(.ds-kicker) {
	color: #ffffff !important;
}

.ds-evidence-grid > div > p:not(.ds-kicker) {
	color: #cbd8e1 !important;
}

.ds-evidence-section .ds-kicker,
.ds-cta .ds-kicker {
	color: #bfeef2 !important;
}

.ds-evidence-list {
	border-top: 1px solid rgba( 255, 255, 255, 0.2 );
}

.ds-evidence-list a {
	border-bottom: 1px solid rgba( 255, 255, 255, 0.2 );
	display: grid;
	grid-template-columns: 1fr auto;
	padding: 24px 4px;
	text-decoration: none;
}

.ds-evidence-list span {
	color: #8bd7df;
	font-size: 0.72rem;
	font-weight: 800;
	grid-column: 1 / span 2;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ds-evidence-list strong {
	color: var(--ds-white);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.2rem;
	font-weight: 600;
	padding-right: 18px;
}

.ds-evidence-list em {
	color: #cbd8e1;
	font-size: 0.8rem;
	font-style: normal;
}

.ds-cta {
	background-color: var(--ds-teal-dark);
	background-image: linear-gradient( 125deg, var(--ds-teal-dark), var(--ds-ink) 70% );
	padding: clamp( 64px, 8vw, 92px ) 0;
}

.ds-cta-inner {
	align-items: center;
	display: flex;
	gap: 42px;
	justify-content: space-between;
}

.ds-cta h2,
.ds-cta p:not(.ds-kicker) {
	color: var(--ds-white) !important;
}

body.david-so-site .ds-page .ds-cta h2,
body.david-so-site .ds-page .ds-cta p:not(.ds-kicker) {
	color: #ffffff !important;
}

.ds-cta h2 {
	margin-bottom: 12px;
}

.ds-cta p:not(.ds-kicker) {
	color: #d4e1e7 !important;
	margin-bottom: 0;
}

/* Inner-page heroes and content */
.ds-page-hero {
	background: linear-gradient( 135deg, #edf4f5, #f8faf9 );
	background-color: #f2f7f7;
	padding: clamp( 66px, 9vw, 120px ) 0;
}

.ds-page-hero-grid {
	align-items: center;
	display: grid;
	gap: clamp( 50px, 8vw, 100px );
	grid-template-columns: minmax( 0, 1.15fr ) minmax( 320px, 0.65fr );
}

.ds-page-hero h1 {
	font-size: clamp( 3rem, 7vw, 6rem );
	margin-bottom: 24px;
}

.ds-page-lead {
	color: var(--ds-body) !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp( 1.35rem, 2.4vw, 2rem );
	line-height: 1.42;
	max-width: 850px;
}

.ds-page-photo {
	margin: 0;
}

.ds-portrait-life {
	aspect-ratio: 4 / 5;
	border-radius: 44% 44% 20px 20px;
	box-shadow: var(--ds-shadow);
	object-position: center 25%;
}

.ds-page-hero-simple {
	padding-bottom: clamp( 72px, 9vw, 110px );
	padding-top: clamp( 72px, 9vw, 110px );
}

.ds-page-hero-simple .ds-shell {
	max-width: 1120px;
}

.ds-profile-facts {
	background: var(--ds-ink);
	border-radius: var(--ds-radius);
	padding: clamp( 30px, 4vw, 46px );
}

.ds-profile-facts .ds-kicker {
	color: #8bd7df !important;
}

.ds-profile-facts dl {
	margin: 0;
}

.ds-profile-facts dl > div {
	border-top: 1px solid rgba( 255, 255, 255, 0.16 );
	padding: 18px 0;
}

.ds-profile-facts dt {
	color: #a9becb;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.ds-profile-facts dd {
	color: var(--ds-white) !important;
	font-size: 1rem;
	font-weight: 700;
	margin: 5px 0 0;
}

.ds-profile-facts a {
	color: #91e0e6 !important;
}

.ds-value-grid {
	display: grid;
	gap: 0;
	grid-template-columns: repeat( 4, 1fr );
	margin-top: 46px;
}

.ds-value-grid article {
	border-left: 1px solid var(--ds-line);
	padding: 12px clamp( 20px, 3vw, 34px ) 28px;
}

.ds-value-grid article:last-child {
	border-right: 1px solid var(--ds-line);
}

.ds-value-grid span,
.ds-sport-card > span {
	color: var(--ds-teal);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.14em;
}

.ds-value-grid h3 {
	margin: 42px 0 14px;
}

body.david-so-site .ds-page .ds-section-soft .ds-section-heading h2,
body.david-so-site .ds-page .ds-section-soft .ds-value-grid h3 {
	color: var(--ds-ink) !important;
}

.ds-value-grid p {
	font-size: 0.91rem;
	margin-bottom: 0;
}

.ds-source-list {
	border-top: 1px solid var(--ds-line);
}

.ds-source-list a {
	border-bottom: 1px solid var(--ds-line);
	display: grid;
	gap: 4px;
	padding: 22px 0;
	text-decoration: none;
}

.ds-source-list strong {
	color: var(--ds-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.16rem;
}

.ds-source-list span {
	color: var(--ds-muted);
	font-size: 0.85rem;
}

.ds-story-grid {
	grid-template-columns: minmax( 150px, 0.45fr ) minmax( 0, 1.2fr );
}

.ds-story-index {
	color: rgba( 0, 106, 120, 0.12 );
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp( 6rem, 15vw, 12rem );
	font-weight: 700;
	line-height: 0.8;
}

.ds-callout {
	align-items: center;
	background: var(--ds-soft);
	border-radius: var(--ds-radius);
	display: flex;
	gap: 44px;
	justify-content: space-between;
	padding-bottom: clamp( 32px, 5vw, 54px );
	padding-top: clamp( 32px, 5vw, 54px );
}

.ds-callout > div {
	max-width: 680px;
}

.ds-callout h2 {
	font-size: clamp( 2rem, 3.6vw, 3.3rem );
}

.ds-sports-grid {
	display: grid;
	gap: 22px;
	grid-template-columns: repeat( 3, 1fr );
}

.ds-sport-card {
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius);
	display: flex;
	flex-direction: column;
	min-height: 380px;
	padding: clamp( 28px, 4vw, 42px );
}

.ds-sport-linked {
	transition: border-color 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}

.ds-sport-linked:hover {
	border-color: rgba( 0, 106, 120, 0.45 );
	box-shadow: 0 20px 46px rgba( 10, 32, 53, 0.12 );
}

.ds-sport-card:nth-child( 2 ) {
	background: var(--ds-ink);
	border-color: var(--ds-ink);
}

.ds-sport-card:nth-child( 2 ) h3,
.ds-sport-card:nth-child( 2 ) p {
	color: var(--ds-white) !important;
}

.ds-sport-card:nth-child( 2 ) > span,
.ds-sport-card:nth-child( 2 ) a,
.ds-sport-card:nth-child( 2 ) .ds-card-action {
	color: #91e0e6 !important;
}

body.david-so-site .ds-sport-card:not( :nth-child( 2 ) ) .ds-card-action {
	color: var(--ds-teal-dark) !important;
}

.ds-sport-card h3 {
	margin: 46px 0 18px;
}

.ds-sport-linked:hover .ds-card-action span {
	transform: translate( 3px, -3px );
}

.ds-quote {
	max-width: 1040px;
	text-align: center;
}

.ds-quote p {
	color: var(--ds-white) !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp( 1.8rem, 3.7vw, 3.35rem );
	line-height: 1.3;
	margin-bottom: 26px;
}

.ds-quote span {
	color: #91e0e6;
	font-size: 0.77rem;
	font-weight: 800;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

/* Dynamic posts and single-article styling */
.ds-post-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat( 3, 1fr );
}

.ds-post-card {
	background: var(--ds-white);
	border: 1px solid var(--ds-line);
	border-radius: var(--ds-radius);
	overflow: hidden;
	transition: box-shadow 180ms ease, transform 180ms ease;
}

.ds-post-card-link {
	color: var(--ds-body) !important;
	display: block;
	height: 100%;
	text-decoration: none !important;
}

.ds-post-card:hover {
	box-shadow: 0 18px 44px rgba( 10, 32, 53, 0.09 );
	transform: translateY( -4px );
}

.ds-post-media {
	background: var(--ds-soft);
	display: block;
	overflow: hidden;
}

.ds-post-image,
.ds-post-placeholder {
	aspect-ratio: 16 / 10;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.ds-post-placeholder {
	align-items: center;
	background: linear-gradient( 135deg, var(--ds-ink), var(--ds-teal) );
	color: var(--ds-white);
	display: flex;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 4rem;
	justify-content: center;
}

.ds-post-body {
	padding: 28px;
}

.ds-post-body time {
	color: var(--ds-teal);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.ds-post-body h3 {
	font-size: 1.55rem;
	margin: 12px 0 14px;
}

.ds-post-body h3 {
	color: var(--ds-ink);
}

.ds-post-body p {
	font-size: 0.9rem;
}

.ds-card-link {
	color: var(--ds-teal-dark) !important;
	font-size: 0.84rem;
	font-weight: 800;
	text-decoration: none;
}

.ds-empty-state {
	background: var(--ds-soft);
	border-radius: var(--ds-radius);
	padding: 42px;
	text-align: center;
}

.ds-news-note {
	background: var(--ds-soft);
	padding: 34px 0;
	text-align: center;
}

.ds-news-note strong {
	color: var(--ds-ink);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.25rem;
}

.ds-news-note p {
	font-size: 0.9rem;
	margin: 4px 0 0;
}

body.david-so-site.single-post .et-l--body,
body.david-so-site.single-post #main-content {
	background: var(--ds-white);
}

body.david-so-site.single-post article.et_pb_post {
	margin: 0 auto;
	max-width: 860px;
	padding: clamp( 68px, 9vw, 116px ) 24px;
}

body.david-so-site.single-post .entry-title {
	font-size: clamp( 2.6rem, 5.7vw, 5rem );
	margin-bottom: 24px;
}

body.david-so-site.single-post .post-meta {
	color: var(--ds-muted);
	font-size: 0.82rem;
	margin-bottom: 34px;
}

body.david-so-site.single-post .et_post_meta_wrapper img {
	border-radius: var(--ds-radius);
	margin-bottom: 40px;
}

body.david-so-site.single-post .entry-content {
	font-size: 1.05rem;
}

body.david-so-site.single-post .entry-content h2 {
	font-size: clamp( 1.8rem, 3.2vw, 2.6rem );
	margin: 48px 0 18px;
}

body.david-so-site.single-post .ds-single-hero {
	background: linear-gradient( 135deg, #edf4f5, #f8faf9 );
	padding: clamp( 70px, 9vw, 118px ) 0 clamp( 58px, 7vw, 88px );
}

body.david-so-site.single-post .ds-single-hero .et_pb_row,
body.david-so-site.single-post .ds-single-content .et_pb_row,
body.david-so-site.single-post .ds-single-footer-cta .et_pb_row,
body.david-so-site .ds-search-hero .et_pb_row,
body.david-so-site .ds-search-results .et_pb_row,
body.david-so-site .ds-not-found .et_pb_row {
	margin-inline: auto;
	max-width: 1120px !important;
	padding-inline: clamp( 22px, 4vw, 52px ) !important;
}

.ds-single-kicker p {
	color: var(--ds-teal) !important;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	margin-bottom: 20px;
	text-transform: uppercase;
}

body.david-so-site .ds-single-title .entry-title {
	color: var(--ds-ink) !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp( 2.8rem, 6.5vw, 5.8rem ) !important;
	font-weight: 600;
	letter-spacing: -0.04em;
	line-height: 1.08;
	max-width: 1040px;
}

.ds-single-title .et_pb_title_meta_container {
	color: var(--ds-muted) !important;
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	margin-top: 22px;
	text-transform: uppercase;
}

body.david-so-site.single-post .ds-single-content {
	padding: 0 0 clamp( 72px, 9vw, 118px );
}

body.david-so-site.single-post .ds-single-content .et_pb_row {
	max-width: 920px !important;
}

.ds-single-image {
	margin: 0 0 clamp( 38px, 6vw, 62px );
}

.ds-single-image img {
	border-radius: var(--ds-radius);
	box-shadow: var(--ds-shadow);
	display: block;
	height: auto;
	max-height: 720px;
	object-fit: cover;
	width: 100%;
}

.ds-single-post-content {
	color: var(--ds-body);
	font-size: clamp( 1.02rem, 1.35vw, 1.16rem );
	line-height: 1.8;
}

body.david-so-site .ds-single-post-content h2 {
	color: var(--ds-ink) !important;
	font-size: clamp( 1.8rem, 3.2vw, 2.7rem ) !important;
	margin: 48px 0 18px;
}

.ds-single-post-content p {
	margin-bottom: 20px;
}

.ds-single-footer-cta {
	background: var(--ds-soft);
	padding: 44px 0;
}

.ds-single-footer-inner {
	align-items: center;
	display: flex;
	gap: 28px;
	justify-content: space-between;
}

.ds-single-footer-inner p {
	color: var(--ds-ink) !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.35rem;
	margin: 0;
}

body.david-so-site .ds-single-footer-cta .ds-button {
	color: #ffffff !important;
}

.ds-search-hero {
	background: linear-gradient( 135deg, #edf4f5, #f8faf9 );
	padding: clamp( 68px, 9vw, 110px ) 0;
}

.ds-search-hero h1,
.ds-not-found h1 {
	font-size: clamp( 2.8rem, 6vw, 5.5rem );
	margin-bottom: 20px;
}

.ds-search-hero p:last-child {
	font-size: 1.08rem;
}

.ds-search-results {
	padding: clamp( 64px, 8vw, 104px ) 0;
}

.ds-search-blog article {
	border-bottom: 1px solid var(--ds-line);
	margin-bottom: 30px;
	padding-bottom: 30px;
}

.ds-search-blog .entry-title {
	font-size: clamp( 1.6rem, 3vw, 2.3rem );
}

.ds-not-found {
	background: linear-gradient( 135deg, #edf4f5, #f8faf9 );
	min-height: 68vh;
	padding: clamp( 76px, 11vw, 150px ) 0;
}

.ds-not-found-inner {
	max-width: 780px;
	position: relative;
}

.ds-not-found-inner > span {
	color: rgba( 0, 106, 120, 0.11 );
	font-family: Georgia, "Times New Roman", serif;
	font-size: clamp( 8rem, 24vw, 17rem );
	font-weight: 700;
	line-height: 0.7;
	position: absolute;
	right: -170px;
	top: -20px;
	z-index: 0;
}

.ds-not-found-inner > *:not( span ) {
	position: relative;
	z-index: 1;
}

body.david-so-site .ds-not-found .ds-button {
	color: #ffffff !important;
}

.ds-article-intro {
	border-left: 4px solid var(--ds-gold);
	margin-bottom: 42px;
	padding: 5px 0 5px 24px;
}

.ds-article-intro p {
	color: var(--ds-ink) !important;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 1.35rem;
	line-height: 1.55;
}

/* Contact and privacy */
.ds-contact-grid {
	grid-template-columns: minmax( 0, 0.75fr ) minmax( 0, 1.25fr );
}

.ds-contact-copy ul {
	list-style: none;
	margin: 30px 0 0;
	padding: 0;
}

.ds-contact-copy li {
	border-top: 1px solid var(--ds-line);
	font-weight: 700;
	padding: 13px 0 13px 28px;
	position: relative;
}

.ds-contact-copy li::before {
	color: var(--ds-teal);
	content: "✓";
	left: 0;
	position: absolute;
}

.ds-form-card {
	background: var(--ds-soft);
	border-radius: var(--ds-radius);
	padding: clamp( 28px, 4.5vw, 52px );
}

.ds-contact-form {
	display: grid;
	gap: 20px;
}

.ds-field-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: 1fr 1fr;
}

.ds-contact-form label {
	display: grid;
	gap: 7px;
}

.ds-contact-form label > span:first-child {
	color: var(--ds-ink);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.04em;
}

.ds-contact-form input,
.ds-contact-form textarea {
	appearance: none;
	background: var(--ds-white);
	border: 1px solid #b8c8d1;
	border-radius: 10px;
	box-sizing: border-box;
	color: var(--ds-ink);
	font: inherit;
	font-size: 1rem;
	padding: 13px 14px;
	width: 100%;
}

.ds-contact-form input:focus,
.ds-contact-form textarea:focus {
	border-color: var(--ds-teal);
	box-shadow: 0 0 0 3px rgba( 0, 106, 120, 0.13 );
	outline: none;
}

.ds-contact-form textarea {
	resize: vertical;
}

.ds-contact-form .ds-consent {
	align-items: start;
	display: grid;
	gap: 11px;
	grid-template-columns: auto 1fr;
}

.ds-contact-form .ds-consent input {
	height: 20px;
	margin-top: 3px;
	width: 20px;
}

.ds-contact-form .ds-consent span {
	color: var(--ds-body);
	font-size: 0.81rem;
	font-weight: 400;
	letter-spacing: 0;
}

body.david-so-site .ds-contact-form .ds-consent a {
	color: var(--ds-teal-dark) !important;
}

.ds-contact-form .ds-button {
	justify-self: start;
}

.ds-form-honeypot {
	clip: rect( 0, 0, 0, 0 );
	clip-path: inset( 50% );
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

.ds-form-notice {
	background: #fff4db;
	border-left: 4px solid #9a6a00;
	border-radius: 8px;
	color: #523800;
	font-weight: 700;
	margin-bottom: 22px;
	padding: 14px 16px;
}

.ds-form-notice.is-success {
	background: #e7f5ee;
	border-color: #16714c;
	color: #0e5137;
}

.ds-form-notice.is-error {
	background: #fff0ee;
	border-color: #b13d30;
	color: #76261d;
}

.ds-legal {
	max-width: 820px;
}

.ds-legal h2 {
	font-size: clamp( 1.6rem, 2.7vw, 2.15rem );
	margin: 42px 0 14px;
}

.ds-legal h2:first-child {
	margin-top: 0;
}

.ds-legal-updated {
	border-top: 1px solid var(--ds-line);
	color: var(--ds-muted) !important;
	font-size: 0.82rem;
	margin-top: 48px;
	padding-top: 22px;
}

/* Footer */
.et-l--footer {
	background: var(--ds-dark);
}

.ds-site-footer {
	background: var(--ds-dark);
	padding: 72px 0 28px;
}

.ds-footer-grid {
	display: grid;
	gap: 56px;
	grid-template-columns: 1.6fr 0.7fr 0.7fr;
}

.ds-brand-footer .ds-brand-mark {
	background: var(--ds-white);
	color: var(--ds-ink);
}

.ds-brand-footer .ds-brand-name {
	color: var(--ds-white);
}

.ds-brand-footer .ds-brand-name small {
	color: #a9becb;
}

.ds-footer-grid > div:first-child > p {
	color: #a9becb !important;
	font-size: 0.9rem;
	margin: 24px 0 0;
	max-width: 380px;
}

.ds-footer-grid nav,
.ds-footer-connect {
	display: grid;
	gap: 10px;
	align-content: start;
}

.ds-footer-grid nav strong,
.ds-footer-connect strong {
	color: var(--ds-white);
	font-size: 0.72rem;
	letter-spacing: 0.13em;
	margin-bottom: 8px;
	text-transform: uppercase;
}

.ds-footer-grid nav a,
.ds-footer-connect a {
	color: #c4d4dd !important;
	font-size: 0.88rem;
	text-decoration: none;
}

.ds-footer-grid nav a:hover,
.ds-footer-connect a:hover {
	color: var(--ds-white) !important;
}

.ds-footer-bottom {
	border-top: 1px solid rgba( 255, 255, 255, 0.14 );
	color: #92a8b6;
	display: flex;
	font-size: 0.72rem;
	justify-content: space-between;
	margin-top: 52px;
	padding-top: 24px;
}

/* Progressive depth: visual layers, pointer response, and scroll context. */
.ds-hero,
.ds-page-hero,
.ds-search-hero,
.ds-not-found {
	--pointer-x: 70%;
	--pointer-y: 22%;
	isolation: isolate;
	overflow: clip;
	position: relative;
}

.ds-hero::before,
.ds-page-hero::before,
.ds-search-hero::before,
.ds-not-found::before {
	background: radial-gradient( circle at var(--pointer-x) var(--pointer-y), rgba( 215, 169, 58, 0.2 ), transparent 29% );
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	z-index: 0;
}

.ds-hero::after {
	pointer-events: none;
}

.ds-hero > .ds-shell,
.ds-page-hero > .ds-shell,
.ds-search-hero > .ds-shell,
.ds-not-found > .ds-shell {
	position: relative;
	z-index: 1;
}

.ds-scroll-progress {
	background: linear-gradient( 90deg, var(--ds-gold), var(--ds-teal), var(--ds-ink) );
	height: 3px;
	left: 0;
	pointer-events: none;
	position: fixed;
	top: 0;
	transform: scaleX( 0 );
	transform-origin: left center;
	width: 100%;
	z-index: 10001;
}

.ds-motion .ds-reveal {
	opacity: 0;
	translate: 0 24px;
	transition: opacity 600ms ease var(--reveal-delay, 0ms), translate 700ms cubic-bezier( 0.22, 1, 0.36, 1 ) var(--reveal-delay, 0ms);
}

.ds-motion .ds-reveal.is-visible {
	opacity: 1;
	translate: 0 0;
}

.ds-motion [data-depth] {
	--depth-lift: 0px;
	--tilt-x: 0deg;
	--tilt-y: 0deg;
	transform: perspective( 1100px ) translateY( var(--depth-lift) ) rotateX( var(--tilt-x) ) rotateY( var(--tilt-y) );
	transform-style: preserve-3d;
	-webkit-font-smoothing: antialiased;
	backface-visibility: hidden;
	transition: transform 180ms cubic-bezier( 0.22, 1, 0.36, 1 ), box-shadow 220ms ease, border-color 220ms ease;
	will-change: transform;
}

.ds-motion [data-depth].is-depth-active {
	--depth-lift: -6px;
}

.ds-motion [data-depth] h2,
.ds-motion [data-depth] h3,
.ds-motion [data-depth] strong,
.ds-motion [data-depth] figcaption {
	backface-visibility: hidden;
	transform: translateZ( 18px );
}

.ds-site-header::before,
.ds-hero-visual::before,
.ds-contact-copy li::before {
	pointer-events: none;
}

@media ( max-width: 1040px ) {
	.ds-desktop-nav,
	.ds-header-contact {
		display: none;
	}

	.ds-mobile-nav {
		display: block;
	}

	.ds-hero-grid,
	.ds-page-hero-grid {
		gap: 54px;
		grid-template-columns: 1.05fr 0.85fr;
	}

	.ds-card-grid,
	.ds-post-grid,
	.ds-sports-grid {
		grid-template-columns: repeat( 2, 1fr );
	}

	.ds-card-grid > :last-child,
	.ds-sports-grid > :last-child {
		grid-column: 1 / span 2;
	}

	.ds-value-grid {
		grid-template-columns: repeat( 2, 1fr );
	}

	.ds-value-grid article:nth-child( 2 ) {
		border-right: 1px solid var(--ds-line);
	}

	.ds-value-grid article:nth-child( n + 3 ) {
		border-top: 1px solid var(--ds-line);
	}
}

@media ( max-width: 767px ) {
	body.david-so-site {
		font-size: 16px;
	}

	.admin-bar .et-l--header {
		top: 46px;
	}

	.ds-header-inner {
		height: 74px;
	}

	.ds-brand-mark {
		height: 40px;
		width: 40px;
	}

	.ds-brand-name {
		font-size: 1.12rem;
	}

	.ds-brand-name small {
		font-size: 0.5rem;
	}

	.ds-family-link {
		min-height: 40px;
		padding: 6px 11px;
	}

	.ds-family-link small {
		display: none;
	}

	.ds-hero {
		padding-top: 60px;
	}

	.ds-hero-grid,
	.ds-page-hero-grid,
	.ds-intro-grid,
	.ds-profile-grid,
	.ds-source-grid,
	.ds-story-grid,
	.ds-contact-grid,
	.ds-evidence-grid {
		grid-template-columns: 1fr;
	}

	.ds-hero-visual {
		margin: 8px 16px 0;
	}

	.ds-hero-visual figcaption {
		bottom: 16px;
		left: -16px;
	}

	.ds-portrait-hero {
		aspect-ratio: 4 / 4.7;
	}

	.ds-signal-grid {
		grid-template-columns: 1fr;
	}

	.ds-signal-grid > div,
	.ds-signal-grid > div:last-child {
		border-left: 0;
		border-right: 0;
		border-top: 1px solid rgba( 255, 255, 255, 0.14 );
		padding: 21px 4px;
	}

	.ds-signal-grid > div:last-child {
		border-bottom: 1px solid rgba( 255, 255, 255, 0.14 );
	}

	.ds-section-heading-row,
	.ds-cta-inner,
	.ds-callout {
		align-items: flex-start;
		flex-direction: column;
	}

	.ds-card-grid,
	.ds-post-grid,
	.ds-sports-grid,
	.ds-field-grid,
	.ds-value-grid {
		grid-template-columns: 1fr;
	}

	.ds-card-grid > :last-child,
	.ds-sports-grid > :last-child {
		grid-column: auto;
	}

	.ds-feature-card,
	.ds-sport-card {
		min-height: 0;
	}

	.ds-value-grid article,
	.ds-value-grid article:nth-child( 2 ),
	.ds-value-grid article:last-child {
		border-left: 0;
		border-right: 0;
		border-top: 1px solid var(--ds-line);
		padding-left: 0;
		padding-right: 0;
	}

	.ds-story-index {
		font-size: 6.5rem;
	}

	.ds-evidence-list a {
		grid-template-columns: 1fr;
	}

	.ds-evidence-list span {
		grid-column: auto;
	}

	.ds-evidence-list em {
		margin-top: 5px;
	}

	.ds-footer-grid {
		grid-template-columns: 1fr 1fr;
	}

	.ds-footer-grid > div:first-child {
		grid-column: 1 / span 2;
	}

	.ds-footer-bottom {
		align-items: flex-start;
		flex-direction: column;
		gap: 5px;
	}

	.ds-single-footer-inner {
		align-items: flex-start;
		flex-direction: column;
	}

	.ds-not-found-inner > span {
		right: -20px;
		top: 20px;
	}
}

@media ( max-width: 480px ) {
	.ds-shell {
		padding-inline: 20px;
	}

	.ds-brand-name small {
		display: none;
	}

	.ds-family-link {
		font-size: 0.75rem;
		gap: 5px;
		padding-inline: 9px;
	}

	body.david-so-site h1 {
		font-size: 3.45rem;
	}

	.ds-page-hero h1 {
		font-size: 3rem;
	}

	.ds-actions {
		align-items: flex-start;
		flex-direction: column;
	}

	.ds-hero-visual figcaption {
		max-width: 240px;
	}

	.ds-footer-grid {
		grid-template-columns: 1fr;
	}

	.ds-footer-grid > div:first-child {
		grid-column: auto;
	}
}

@media ( prefers-reduced-motion: reduce ) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}

	.ds-scroll-progress {
		display: none;
	}
}
