/*
Theme Name:  Dprime
Theme URI:   https://dprime.au/themes/dprime
Author:      Dprime Solutions
Author URI:  https://dprime.au
Description: A lightweight, bare-minimum WordPress theme built for speed and flexibility. Works as a clean canvas for Breakdance, Bricks, Oxygen, and other page builders.
Version:     1.0.1
Requires at least: 6.3
Tested up to: 6.7
Requires PHP: 8.1
License:     GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dprime
Tags:        full-width-template, custom-menu, custom-logo, editor-style, threaded-comments, translation-ready
*/

/* -------------------------------------------------------
   Brand Tokens
------------------------------------------------------- */
:root {
	--dprime-blue:       #134E8E;
	--dprime-ink:        #172536;
	--dprime-accent:     #FFB33F;
	--dprime-action:     #FF4400;
	--dprime-paper:      #F5F8FC;
	--dprime-background: #FFFFFF;
	--dprime-line:       #E4EBF4;
	--dprime-muted:      #66758B;

	--dprime-font-display: 'Sora', 'Manrope', system-ui, sans-serif;
	--dprime-font-body:    'Manrope', system-ui, sans-serif;
}

/* -------------------------------------------------------
   Reset & Base
------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { font-size: 16px; scroll-behavior: smooth; }

body {
	margin: 0;
	padding: 0;
	font-family: var(--dprime-font-body);
	font-size: 1rem;
	line-height: 1.6;
	color: var(--dprime-ink);
	background-color: var(--dprime-background);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 1rem;
	line-height: 1.2;
	font-family: var(--dprime-font-display);
	font-weight: 700;
	color: var(--dprime-ink);
}

p { margin: 0 0 1rem; }

a { color: var(--dprime-blue); text-decoration: underline; }
a:hover { text-decoration: none; }

img { max-width: 100%; height: auto; display: block; }

/* -------------------------------------------------------
   Layout
------------------------------------------------------- */
.dprime-site { display: flex; flex-direction: column; min-height: 100vh; }
.dprime-main { flex: 1; }

/* -------------------------------------------------------
   Header
------------------------------------------------------- */
.dprime-header {
	padding: 1rem 0;
	border-bottom: 1px solid var(--dprime-line);
	background: var(--dprime-background);
}

.dprime-header-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.dprime-site-branding { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; flex-shrink: 0; }
.dprime-site-branding:hover { text-decoration: none; }

.dprime-custom-logo { max-height: 50px; width: auto; }

.dprime-site-title {
	margin: 0;
	font-size: 1.25rem;
	font-weight: 700;
	font-family: var(--dprime-font-display);
	line-height: 1.2;
	color: var(--dprime-ink);
}

.dprime-site-title a { text-decoration: none; color: inherit; }
.dprime-site-title a:hover { color: var(--dprime-blue); text-decoration: none; }

.dprime-site-description { margin: 0; font-size: 0.8rem; color: var(--dprime-muted); }

/* -------------------------------------------------------
   Navigation
------------------------------------------------------- */
.dprime-nav { display: flex; align-items: center; }

.dprime-nav ul {
	list-style: none; margin: 0; padding: 0;
	display: flex; align-items: center; gap: 0.25rem; flex-wrap: wrap;
}

.dprime-nav ul li { position: relative; }

.dprime-nav ul li a {
	display: block;
	padding: 0.4rem 0.75rem;
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--dprime-ink);
	border-radius: 6px;
	transition: background 0.15s ease, color 0.15s ease;
}

.dprime-nav ul li a:hover,
.dprime-nav ul li.current-menu-item > a,
.dprime-nav ul li.current-page-ancestor > a {
	background-color: var(--dprime-paper);
	color: var(--dprime-blue);
	text-decoration: none;
}

/* Dropdown */
.dprime-nav ul li ul {
	display: none;
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	flex-direction: column;
	min-width: 200px;
	background: var(--dprime-background);
	border: 1px solid var(--dprime-line);
	border-radius: 8px;
	padding: 0.4rem;
	box-shadow: 0 8px 24px rgba(19,78,142,0.10);
	z-index: 1000;
}

.dprime-nav ul li:hover > ul { display: flex; }
.dprime-nav ul li ul li a { border-radius: 5px; font-size: 0.875rem; }

/* -------------------------------------------------------
   Mobile Menu Toggle
------------------------------------------------------- */
.dprime-menu-toggle {
	display: none;
	background: none;
	border: 1px solid var(--dprime-line);
	border-radius: 6px;
	padding: 0.4rem 0.65rem;
	cursor: pointer;
	font-size: 1.1rem;
	line-height: 1;
	color: var(--dprime-ink);
}

.dprime-menu-toggle:hover { background: var(--dprime-paper); }

@media (max-width: 768px) {
	.dprime-menu-toggle { display: block; }
	.dprime-nav { display: none; width: 100%; }
	.dprime-nav.is-open { display: block; }
	.dprime-nav ul { flex-direction: column; align-items: flex-start; gap: 0; padding-top: 0.5rem; }
	.dprime-nav ul li { width: 100%; }
	.dprime-nav ul li a { padding: 0.6rem 0.5rem; border-radius: 0; }
	.dprime-nav ul li ul {
		position: static; display: none; box-shadow: none; border: none;
		border-left: 2px solid var(--dprime-line);
		border-radius: 0; padding-left: 0.75rem; margin-left: 0.5rem;
	}
	.dprime-nav ul li.is-open > ul { display: flex; }
	.dprime-header-inner { flex-wrap: wrap; }
}

/* -------------------------------------------------------
   Content Area
------------------------------------------------------- */
.dprime-page-content { max-width: 1200px; margin: 0 auto; padding: 2.5rem 1.5rem; }
.dprime-entry-content > * + * { margin-top: 1rem; }

/* -------------------------------------------------------
   Footer
------------------------------------------------------- */
.dprime-footer {
	padding: 1.5rem 0;
	border-top: 1px solid var(--dprime-line);
	background: var(--dprime-background);
	font-size: 0.875rem;
	color: var(--dprime-muted);
}

.dprime-footer-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 1.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.dprime-footer-credit { margin: 0; }
.dprime-footer-credit a { color: var(--dprime-blue); text-decoration: none; }
.dprime-footer-credit a:hover { text-decoration: underline; }

.dprime-footer-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem; }
.dprime-footer-nav ul li a {
	padding: 0.2rem 0.5rem;
	text-decoration: none;
	color: var(--dprime-muted);
	border-radius: 4px;
	transition: background 0.15s ease, color 0.15s ease;
}
.dprime-footer-nav ul li a:hover { background-color: var(--dprime-paper); color: var(--dprime-blue); }

/* -------------------------------------------------------
   Templates
------------------------------------------------------- */
.dprime-template-canvas .dprime-header,
.dprime-template-canvas .dprime-footer { display: none; }

.dprime-template-full-width .dprime-page-content { max-width: 100%; padding: 0; }

/* -------------------------------------------------------
   Accessibility
------------------------------------------------------- */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: var(--dprime-paper);
	border-radius: 4px;
	box-shadow: 0 0 2px 2px rgba(19,78,142,0.4);
	clip: auto !important;
	clip-path: none;
	color: var(--dprime-blue);
	display: block;
	font-size: 0.875rem;
	font-weight: 600;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 14px 22px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

.dprime-clearfix::after { content: ""; display: table; clear: both; }
