/**
 * Doctor AK Portal — policy pages (Terms and Conditions, Privacy Policy,
 * Cancellation Policy). Loaded only on those pages (Policy_Pages) and scoped
 * to body.dak-policy-page, so dashboards and other content pages are never
 * affected. Same palette and type scale as the redesigned dashboards and the
 * booking page.
 *
 * Note: the site's Elementor kit applies `text-transform: capitalize` to all
 * body text globally; it's reset here for the policy pages only.
 */

body.dak-policy-page {
	--pol-primary: #16634b;
	--pol-primary-hover: #104d3a;
	--pol-primary-tint: #eaf4ef;
	--pol-text: #182b3a;
	--pol-muted: #526273;
	--pol-border: #dfe5eb;
	--pol-canvas: #f6f8fa;
	--pol-surface: #ffffff;
	--pol-subtle: #f1f4f7;
	--pol-warn-tint: #fff4d8;
	--pol-warn-border: #e9c46a;
	--pol-focus: #245fa8;
	--pol-offset: 136px; /* Sticky site header height + breathing room. */

	background: var( --pol-canvas ) !important;
}

html[data-theme='dark'] body.dak-policy-page {
	--pol-primary: #3aa679;
	--pol-primary-hover: #7fd3ab;
	--pol-primary-tint: #12261d;
	--pol-text: #e6ebef;
	--pol-muted: #a3afba;
	--pol-border: #2a3139;
	--pol-canvas: #0b0d10;
	--pol-surface: #13171b;
	--pol-subtle: #1a1f25;
	--pol-warn-tint: #2b2310;
	--pol-warn-border: #6b5418;
	--pol-focus: #8db8f2;
}

html:has( body.dak-policy-page ) {
	scroll-padding-top: var( --pol-offset, 136px );
}

@media ( prefers-reduced-motion: no-preference ) {
	html:has( body.dak-policy-page ) {
		scroll-behavior: smooth;
	}
}

/* Skip link — first focusable element on the page. */
body.dak-policy-page .dak-policy-skip {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 100000;
	padding: 10px 16px;
	border-radius: 8px;
	background: var( --pol-primary );
	color: #ffffff;
	font-weight: 600;
	text-decoration: none;
}

body.dak-policy-page .dak-policy-skip:focus {
	top: 16px;
}

/* ==========================================================================
   Page frame
   ========================================================================== */

body.dak-policy-page .dak-policy,
body.dak-policy-page .dak-policy * {
	box-sizing: border-box;
	text-transform: none !important;
	letter-spacing: normal;
}

body.dak-policy-page .dak-policy {
	display: block;
	padding: 28px 24px 72px;
	color: var( --pol-text );
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	font-size: 17px;
	line-height: 1.7;
	outline: none;
}

body.dak-policy-page .dak-policy-wrap {
	max-width: 1080px;
	margin: 0 auto;
}

body.dak-policy-page .dak-policy a {
	color: var( --pol-primary );
	text-decoration: underline;
	text-underline-offset: 2px;
}

body.dak-policy-page .dak-policy a:hover {
	color: var( --pol-primary-hover );
}

body.dak-policy-page .dak-policy a:focus-visible,
body.dak-policy-page .dak-policy summary:focus-visible {
	outline: 2px solid var( --pol-focus );
	outline-offset: 2px;
	border-radius: 4px;
}

/* Breadcrumb */
body.dak-policy-page .dak-policy-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0 0 12px;
	padding: 0;
	list-style: none;
	font-size: 14px;
	color: var( --pol-muted );
}

body.dak-policy-page .dak-policy-breadcrumb li {
	margin: 0;
}

body.dak-policy-page .dak-policy-breadcrumb li + li::before {
	content: '/';
	margin-right: 4px;
	color: var( --pol-border );
}

body.dak-policy-page .dak-policy-breadcrumb a {
	color: var( --pol-muted );
}

/* Title block */
body.dak-policy-page .dak-policy-head {
	margin: 0 0 20px;
}

body.dak-policy-page .dak-policy-head h1 {
	margin: 0;
	font-family: inherit;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var( --pol-text );
}

body.dak-policy-page .dak-policy-intro {
	max-width: 62ch;
	margin: 8px 0 0;
	font-size: 17px;
	color: var( --pol-muted );
}

body.dak-policy-page .dak-policy-dates {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	margin: 12px 0 0;
	font-size: 14px;
}

body.dak-policy-page .dak-policy-dates div {
	display: flex;
	gap: 6px;
}

body.dak-policy-page .dak-policy-dates dt {
	margin: 0;
	color: var( --pol-muted );
}

body.dak-policy-page .dak-policy-dates dt::after {
	content: ':';
}

body.dak-policy-page .dak-policy-dates dd {
	margin: 0;
	font-weight: 600;
}

/* Policy switcher */
body.dak-policy-page .dak-policy-switch ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 24px;
	padding: 0 0 16px;
	border-bottom: 1px solid var( --pol-border );
	list-style: none;
}

body.dak-policy-page .dak-policy-switch li {
	margin: 0;
}

body.dak-policy-page .dak-policy-switch a {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 14px;
	border: 1px solid var( --pol-border );
	border-radius: 999px;
	background: var( --pol-surface );
	color: var( --pol-text );
	font-size: 15px;
	font-weight: 500;
	text-decoration: none;
}

body.dak-policy-page .dak-policy-switch a:hover {
	border-color: var( --pol-primary );
	color: var( --pol-text );
}

body.dak-policy-page .dak-policy-switch a[aria-current='page'] {
	border-color: var( --pol-primary );
	background: var( --pol-primary-tint );
	font-weight: 600;
}

/* ==========================================================================
   Layout: contents sidebar + article
   ========================================================================== */

body.dak-policy-page .dak-policy-layout {
	display: grid;
	grid-template-columns: minmax( 0, 1fr );
	gap: 24px;
}

body.dak-policy-page .dak-policy-layout.has-toc {
	grid-template-columns: 240px minmax( 0, 1fr );
	align-items: start;
	gap: 32px;
}

body.dak-policy-page .dak-policy-toc {
	position: sticky;
	top: var( --pol-offset );
	max-height: calc( 100vh - var( --pol-offset ) - 24px );
	overflow-y: auto;
}

body.dak-policy-page .dak-policy-toc-details {
	padding: 14px 16px;
	border: 1px solid var( --pol-border );
	border-radius: 12px;
	background: var( --pol-surface );
}

body.dak-policy-page .dak-policy-toc summary {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.05em !important;
	text-transform: uppercase !important;
	color: var( --pol-muted );
	list-style: none;
	cursor: default;
}

body.dak-policy-page .dak-policy-toc summary::-webkit-details-marker {
	display: none;
}

body.dak-policy-page .dak-policy-toc ol {
	margin: 10px 0 0;
	padding: 0;
	list-style: none;
}

body.dak-policy-page .dak-policy-toc li {
	margin: 0;
}

body.dak-policy-page .dak-policy-toc a {
	display: block;
	padding: 5px 0;
	font-size: 14px;
	line-height: 1.4;
	color: var( --pol-text );
	text-decoration: none;
}

body.dak-policy-page .dak-policy-toc a:hover {
	color: var( --pol-primary );
	text-decoration: underline;
}

body.dak-policy-page .dak-policy-body {
	min-width: 0;
	padding: 32px 40px;
	border: 1px solid var( --pol-border );
	border-radius: 12px;
	background: var( --pol-surface );
}

/* ==========================================================================
   Policy text
   ========================================================================== */

body.dak-policy-page .dak-policy-body > * {
	max-width: 70ch;
}

body.dak-policy-page .dak-policy-body p,
body.dak-policy-page .dak-policy-body li {
	font-size: 17px;
	line-height: 1.7;
	color: var( --pol-text );
}

body.dak-policy-page .dak-policy-body p {
	margin: 0 0 14px;
}

body.dak-policy-page .dak-policy-body > :first-child {
	margin-top: 0;
}

body.dak-policy-page .dak-policy-body h2 {
	margin: 32px 0 10px;
	padding-top: 24px;
	border-top: 1px solid var( --pol-border );
	font-family: inherit;
	font-size: 21px;
	font-weight: 700;
	line-height: 1.35;
	color: var( --pol-text );
	scroll-margin-top: var( --pol-offset );
}

body.dak-policy-page .dak-policy-body > h2:first-child,
body.dak-policy-page .dak-policy-body > p:first-child + h2 {
	margin-top: 24px;
}

body.dak-policy-page .dak-policy-body h3 {
	margin: 22px 0 8px;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	color: var( --pol-text );
	scroll-margin-top: var( --pol-offset );
}

body.dak-policy-page .dak-policy-body ul,
body.dak-policy-page .dak-policy-body ol {
	margin: 0 0 16px;
	padding-left: 1.4em;
}

body.dak-policy-page .dak-policy-body li {
	margin: 0 0 6px;
	padding-left: 2px;
}

body.dak-policy-page .dak-policy-body li::marker {
	color: var( --pol-primary );
}

body.dak-policy-page .dak-policy-body strong {
	font-weight: 700;
	color: var( --pol-text );
}

body.dak-policy-page .dak-policy-callout {
	margin: 0 0 16px;
	padding: 14px 18px;
	border: 1px solid var( --pol-warn-border );
	border-left-width: 4px;
	border-radius: 8px;
	background: var( --pol-warn-tint );
}

body.dak-policy-page .dak-policy-callout p {
	margin: 0;
}

/* Comparison table (Cancellation Policy). */
body.dak-policy-page .dak-policy-body .dak-policy-table-wrap {
	max-width: none;
	margin: 0 0 20px;
	overflow-x: auto;
	border: 1px solid var( --pol-border );
	border-radius: 10px;
}

body.dak-policy-page .dak-policy-table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: 16px;
	line-height: 1.55;
}

body.dak-policy-page .dak-policy-table th,
body.dak-policy-page .dak-policy-table td {
	padding: 12px 14px;
	border: 0;
	border-top: 1px solid var( --pol-border );
	background: none;
	color: var( --pol-text );
	text-align: left;
	vertical-align: top;
}

body.dak-policy-page .dak-policy-table thead th {
	border-top: 0;
	background: var( --pol-subtle );
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.03em !important;
	text-transform: uppercase !important;
	color: var( --pol-muted );
}

body.dak-policy-page .dak-policy-table tbody th {
	width: 22%;
	font-weight: 700;
}

/* Contact block (the policy's own Contact section). */
body.dak-policy-page .dak-policy-contact {
	padding: 16px 20px;
	border-radius: 10px;
	background: var( --pol-primary-tint );
}

body.dak-policy-page .dak-policy-contact p {
	margin: 0 0 8px;
}

body.dak-policy-page .dak-policy-body .dak-policy-contact-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

body.dak-policy-page .dak-policy-contact-list li {
	margin: 0 0 4px;
	padding: 0;
}

/* Related policies */
body.dak-policy-page .dak-policy-related {
	margin: 32px 0 0;
}

body.dak-policy-page .dak-policy-related h2 {
	margin: 0 0 12px;
	font-family: inherit;
	font-size: 18px;
	font-weight: 700;
	color: var( --pol-text );
}

body.dak-policy-page .dak-policy-related ul {
	display: grid;
	grid-template-columns: repeat( auto-fit, minmax( 260px, 1fr ) );
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.dak-policy-page .dak-policy-related li {
	margin: 0;
}

body.dak-policy-page .dak-policy-related a {
	display: flex;
	flex-direction: column;
	gap: 4px;
	height: 100%;
	padding: 16px 18px;
	border: 1px solid var( --pol-border );
	border-radius: 12px;
	background: var( --pol-surface );
	text-decoration: none;
}

body.dak-policy-page .dak-policy-related a:hover {
	border-color: var( --pol-primary );
}

body.dak-policy-page .dak-policy-related strong {
	font-size: 16px;
	color: var( --pol-primary );
}

body.dak-policy-page .dak-policy-related span {
	font-size: 15px;
	line-height: 1.5;
	color: var( --pol-muted );
}

/* Floating chat buttons: keep footer links clear of them. */
body.dak-policy-page .dak-site-footer {
	padding-bottom: 88px !important;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media ( max-width: 1023px ) {
	body.dak-policy-page .dak-policy-layout.has-toc {
		grid-template-columns: minmax( 0, 1fr );
		gap: 16px;
	}

	body.dak-policy-page .dak-policy-toc {
		position: static;
		max-height: none;
		overflow: visible;
	}

	body.dak-policy-page .dak-policy-toc summary {
		display: flex;
		align-items: center;
		justify-content: space-between;
		min-height: 28px;
		cursor: pointer;
	}

	body.dak-policy-page .dak-policy-toc summary::after {
		content: '';
		width: 8px;
		height: 8px;
		border-right: 2px solid var( --pol-muted );
		border-bottom: 2px solid var( --pol-muted );
		transform: rotate( 45deg ) translateY( -2px );
	}

	body.dak-policy-page .dak-policy-toc details[open] summary::after {
		transform: rotate( -135deg );
	}

	body.dak-policy-page .dak-policy-toc ol {
		columns: 2;
		column-gap: 24px;
	}
}

@media ( max-width: 782px ) {
	body.dak-policy-page .dak-policy {
		padding: 20px 16px 48px;
		font-size: 16px;
	}

	body.dak-policy-page .dak-policy-head h1 {
		font-size: 26px;
	}

	body.dak-policy-page .dak-policy-intro {
		font-size: 16px;
	}

	body.dak-policy-page .dak-policy-switch ul {
		gap: 6px;
	}

	body.dak-policy-page .dak-policy-switch a {
		min-height: 36px;
		padding: 0 12px;
		font-size: 14px;
	}

	body.dak-policy-page .dak-policy-body {
		padding: 20px 18px;
	}

	body.dak-policy-page .dak-policy-body p,
	body.dak-policy-page .dak-policy-body li {
		font-size: 16px;
	}

	body.dak-policy-page .dak-policy-body h2 {
		font-size: 19px;
	}

	body.dak-policy-page .dak-policy-toc ol {
		columns: 1;
	}

	/* Table becomes stacked cards — every cell keeps its column label. */
	body.dak-policy-page .dak-policy-table-wrap {
		border: 0;
		overflow: visible;
	}

	body.dak-policy-page .dak-policy-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect( 0 0 0 0 );
	}

	body.dak-policy-page .dak-policy-table,
	body.dak-policy-page .dak-policy-table tbody,
	body.dak-policy-page .dak-policy-table tr,
	body.dak-policy-page .dak-policy-table th,
	body.dak-policy-page .dak-policy-table td {
		display: block;
		width: 100%;
	}

	body.dak-policy-page .dak-policy-table tr {
		margin: 0 0 10px;
		border: 1px solid var( --pol-border );
		border-radius: 10px;
		overflow: hidden;
	}

	body.dak-policy-page .dak-policy-table tbody th {
		width: 100%;
		border-top: 0;
		background: var( --pol-subtle );
	}

	body.dak-policy-page .dak-policy-table td::before {
		display: block;
		margin-bottom: 2px;
		font-size: 12px;
		font-weight: 700;
		letter-spacing: 0.03em !important;
		text-transform: uppercase !important;
		color: var( --pol-muted );
	}

	body.dak-policy-page .dak-policy-table td:nth-of-type( 1 )::before {
		content: 'Cancellation timing';
	}

	body.dak-policy-page .dak-policy-table td:nth-of-type( 2 )::before {
		content: 'Refund or rescheduling outcome';
	}

	/* Phones: floating chat buttons sit over the bottom of the page — hide
	   them here; the policy's own contact details are on the page. */
	body.dak-policy-page .joinchat,
	body.dak-policy-page #wp-chatbot-ball-container,
	body.dak-policy-page #wp-chatbot-chat-container,
	body.dak-policy-page #wp-chatbot-integration-container,
	body.dak-policy-page .wp-chatbot-ball {
		display: none !important;
	}
}

/* ==========================================================================
   Print — full policy text only
   ========================================================================== */

@media print {
	body.dak-policy-page {
		background: #ffffff !important;
	}

	body.dak-policy-page .dak-site-header,
	body.dak-policy-page .dak-site-footer,
	body.dak-policy-page .dak-policy-skip,
	body.dak-policy-page .dak-policy-breadcrumb,
	body.dak-policy-page .dak-policy-switch,
	body.dak-policy-page .dak-policy-toc,
	body.dak-policy-page .dak-policy-related,
	body.dak-policy-page .joinchat,
	body.dak-policy-page #wp-chatbot-ball-container,
	body.dak-policy-page #wp-chatbot-chat-container,
	body.dak-policy-page #wp-chatbot-integration-container,
	body.dak-policy-page #wpadminbar {
		display: none !important;
	}

	body.dak-policy-page .dak-policy {
		padding: 0;
		color: #000000;
		font-size: 11.5pt;
	}

	body.dak-policy-page .dak-policy-wrap {
		max-width: none;
	}

	body.dak-policy-page .dak-policy-layout,
	body.dak-policy-page .dak-policy-layout.has-toc {
		display: block;
	}

	body.dak-policy-page .dak-policy-body {
		padding: 0;
		border: 0;
	}

	body.dak-policy-page .dak-policy-body > * {
		max-width: none;
	}

	body.dak-policy-page .dak-policy-body h2 {
		break-after: avoid;
		border-top: 0;
		padding-top: 0;
	}

	body.dak-policy-page .dak-policy-body p,
	body.dak-policy-page .dak-policy-body li,
	body.dak-policy-page .dak-policy-table tr {
		break-inside: avoid;
		color: #000000;
	}

	body.dak-policy-page .dak-policy-callout,
	body.dak-policy-page .dak-policy-contact {
		border: 1px solid #999999;
		background: none;
	}

	/* Show link targets so printed copies keep contact details usable. */
	body.dak-policy-page .dak-policy-body a[href^='mailto:']::after,
	body.dak-policy-page .dak-policy-body a[href^='https://wa.me']::after {
		content: '';
	}

	body.dak-policy-page .dak-policy-body a[href^='/']::after {
		content: ' (doctoraklohana.com' attr( href ) ')';
		font-size: 0.9em;
	}
}

/* Theme/Elementor link and list typography leaks into these blocks. */
body.dak-policy-page .dak-policy-breadcrumb a,
body.dak-policy-page .dak-policy-breadcrumb li {
	font-size: 14px !important;
	line-height: 1.5;
}
