/* ===================================================================
   WordPress core/default styling.
   These are the standard classes WordPress core, the block editor, and
   plugins expect every theme to style. Without this file things like
   image alignment, captions, galleries, and screen-reader-only text
   render unstyled or break the layout. Loaded before main.css so
   theme-specific rules can still override anything here.
   =================================================================== */

/* ---------------- Bold text ----------------
   Fixed font-weight rather than relying on the browser's default
   "bolder" (a relative keyword, resolved against the parent's current
   weight) — reported directly that bold text from the editor wasn't
   showing up as bold in some places. Root cause: this theme's Google
   Fonts enqueue only loaded Montserrat 400/500, while the theme's own
   CSS uses 300/600/700 throughout, so anything in a 500-or-600-weight
   context asking to go "bolder" had no actual heavier weight loaded to
   resolve to — this and the enqueue fix (functions.php, now loading
   300–700) address the two sides of the same underlying problem. */
strong, b {
	font-weight: 700;
}
em, i {
	font-style: italic;
}

/* ---------------- 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 !important;
	width: 1px;
	word-wrap: normal !important;
}
.screen-reader-text:focus {
	background-color: #fff;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: .9rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}

/* Focus outlines for keyboard navigation */
a:focus,
button:focus,
input:focus,
textarea:focus {
	outline: 2px solid var(--gyn-purple, #6d2360);
	outline-offset: 2px;
}

/* ---------------- Core image alignment ---------------- */
.alignleft   { float: left; margin: 0.4em 1.6em 1.6em 0; }
.alignright  { float: right; margin: 0.4em 0 1.6em 1.6em; }
.aligncenter { display: block; margin-left: auto; margin-right: auto; }
.alignwide   { max-width: 1100px; margin-left: auto; margin-right: auto; }
.alignfull   { max-width: none; width: 100%; }

/* ---------------- Captions (classic editor [caption] + wp-caption) ---------------- */
.wp-caption {
	max-width: 100%;
	margin-bottom: 1.6em;
}
.wp-caption img[class*="wp-image-"] { display: block; margin: 0 auto; }
.wp-caption .wp-caption-text {
	font-size: .85rem;
	color: #6b6b6b;
	text-align: center;
	margin: .6em 0 0;
}
.wp-caption-dd { font-size: .85rem; color: #6b6b6b; }

/* Block-editor figure captions */
.wp-block-image figcaption,
figure.wp-caption figcaption {
	font-size: .85rem;
	color: #6b6b6b;
	text-align: center;
	margin-top: .6em;
}

/* ---------------- Galleries ---------------- */
.gallery {
	display: grid;
	grid-template-columns: repeat(var(--gallery-columns, 3), 1fr);
	gap: 12px;
	margin: 0 0 1.6em;
}
.gallery-item { margin: 0; }
.gallery-item img { width: 100%; height: auto; display: block; }
.gallery-caption {
	font-size: .8rem;
	color: #6b6b6b;
	text-align: center;
	margin-top: 4px;
}
.gallery-columns-1 { --gallery-columns: 1; }
.gallery-columns-2 { --gallery-columns: 2; }
.gallery-columns-3 { --gallery-columns: 3; }
.gallery-columns-4 { --gallery-columns: 4; }
.gallery-columns-5 { --gallery-columns: 5; }
.gallery-columns-6 { --gallery-columns: 6; }

/* ---------------- Sticky posts / author highlight ---------------- */
.sticky { border-left: 3px solid var(--gyn-purple, #6d2360); padding-left: 14px; }
.bypostauthor { /* reserved for potential author-comment highlighting */ }

/* ---------------- Widgets (default core widget markup) ---------------- */
.widget { margin-bottom: 24px; }
.widget_search .search-form { display: flex; gap: 8px; }
.widget ul { list-style: none; margin: 0; padding: 0; }
.widget li { margin-bottom: 6px; }

/* ---------------- Default form elements ---------------- */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="search"],
input[type="tel"],
input[type="number"],
textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 4px;
	font-family: inherit;
	font-size: 1rem;
}
textarea { resize: vertical; }

/* ---------------- Search form partial (searchform.php) ---------------- */
.search-form { display: flex; gap: 8px; align-items: stretch; }
.search-form .search-field { flex: 1; }

/* ---------------- Comments ---------------- */
.comments-area { max-width: 800px; margin: 60px auto 0; }
.comments-title { font-size: 1.4rem; margin-bottom: 20px; }
.comment-list { list-style: none; margin: 0 0 30px; padding: 0; }
.comment-list .comment,
.comment-list .pingback,
.comment-list .trackback {
	border-bottom: 1px solid #e6e6e6;
	padding: 16px 0;
}
.comment-list ol.children { list-style: none; margin: 0 0 0 24px; padding: 0; }
.comment-author { font-weight: 600; }
.comment-author img { border-radius: 50%; vertical-align: middle; margin-right: 8px; }
.comment-metadata { font-size: .8rem; color: #6b6b6b; margin-bottom: 6px; }
.comment-metadata a { color: inherit; }
.comment-content p { margin: 0 0 .8em; }
.comment-reply-link { font-size: .8rem; }
.comment-respond { margin-top: 20px; }
.comment-form label { display: block; font-size: .85rem; margin-bottom: 4px; }
.comment-form p { margin-bottom: 14px; }
.comment-form-cookies-consent { display: flex; align-items: center; gap: 8px; }
.comment-form-cookies-consent input { width: auto; }
.form-submit .submit {
	cursor: pointer;
}

/* ---------------- Archive / single / blog fallback layout ---------------- */
.archive-header { margin-bottom: 40px; }
.archive-title { font-size: 2rem; color: var(--gyn-purple-dark, #4a1942); margin: 0 0 10px; }
.archive-title__query { color: var(--gyn-purple, #6d2360); }
.archive-description { color: #6b6b6b; }
.post-list { display: flex; flex-direction: column; gap: 24px; }
.post-list__item {
	padding: 24px;
	background: #fff;
	border: 1px solid var(--gyn-border, #e6e6e6);
	border-radius: 10px;
	box-shadow: 0 2px 10px rgba(0,0,0,.04);
	transition: box-shadow .2s ease, transform .2s ease;
}
.post-list__item:hover {
	box-shadow: 0 6px 20px rgba(0,0,0,.08);
	transform: translateY(-2px);
}
.post-list__thumb { display: block; margin-bottom: 16px; }
.post-list__thumb img { width: 100%; border-radius: 8px; }
.entry-title { font-size: 1.4rem; margin: 0 0 8px; }
.entry-title a { color: var(--gyn-purple-dark, #4a1942); text-decoration: none; }
.entry-title a:hover { text-decoration: underline; }
.entry-meta { font-size: .85rem; color: #6b6b6b; margin-bottom: 10px; }
.entry-summary, .entry-content { line-height: 1.7; }
.entry-content p { margin: 0 0 1.2em; }
.entry-thumbnail { margin-bottom: 24px; }
.entry-thumbnail img { width: 100%; border-radius: 8px; }
.entry-tags { font-size: .85rem; color: #6b6b6b; margin-top: 20px; }
.page-links { margin: 20px 0; font-weight: 600; }

.search-no-results {
	text-align: center;
	padding: 50px 24px;
	background: var(--gyn-purple-light, #f2e7ef);
	border-radius: 10px;
}
.search-no-results__text {
	color: var(--gyn-text, #333333);
	font-size: 1.05rem;
	margin: 0 0 20px;
}
.search-no-results .search-form {
	justify-content: center;
	max-width: 380px;
	margin: 0 auto;
}

/* ---------------- 404 page (404.php) ---------------- */
.error-404 {
	text-align: center;
	max-width: 560px;
	margin: 0 auto;
	padding: 80px 20px;
}
.error-404__code {
	font-size: clamp(80px, 14vw, 140px);
	font-weight: 700;
	line-height: 1;
	color: var(--gyn-purple-light, #f2e7ef);
	margin: 0 0 -10px;
	-webkit-text-stroke: 2px var(--gyn-green, #99cc66);
}
.error-404__title {
	font-size: 2rem;
	color: var(--gyn-purple-dark, #4b055b);
	margin: 0 0 14px;
}
.error-404__text {
	color: #6b6b6b;
	font-size: 1.05rem;
	line-height: 1.6;
	margin: 0 0 30px;
}
.error-404 .search-form {
	justify-content: center;
	margin: 0 0 30px;
	max-width: 420px;
	margin-left: auto;
	margin-right: auto;
}
.error-404 .search-field {
	border: 1px solid var(--gyn-border, #e6e6e6);
	border-radius: 6px;
	padding: 12px 16px;
	font-size: 1rem;
}
.error-404__home-link {
	display: inline-block;
}

/* Pagination (the_posts_pagination / the_comments_pagination) */
.pagination,
.comments-pagination {
	display: flex;
	gap: 10px;
	list-style: none;
	padding: 0;
	margin: 30px 0 0;
}
.pagination .page-numbers,
.comments-pagination .page-numbers {
	padding: 8px 12px;
	border: 1px solid #e6e6e6;
	border-radius: 4px;
	text-decoration: none;
	color: var(--gyn-purple, #6d2360);
	font-size: .9rem;
}
.pagination .page-numbers.current,
.comments-pagination .page-numbers.current {
	background: var(--gyn-purple, #6d2360);
	color: #fff;
	border-color: var(--gyn-purple, #6d2360);
}

/* ---------------- Two-column layout with sidebar ---------------- */
.layout-with-sidebar {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 60px;
	align-items: start;
}
.layout-with-sidebar .primary-content { min-width: 0; }
.widget-area .widget-title {
	font-size: 1rem;
	color: var(--gyn-purple-dark, #4a1942);
	margin: 0 0 12px;
}

/* ---------------- Author bio (author.php) ---------------- */
.author-bio {
	display: flex;
	align-items: center;
	gap: 20px;
	margin-bottom: 40px;
	padding-bottom: 30px;
	border-bottom: 1px solid #e6e6e6;
}
.author-bio img { border-radius: 50%; flex: none; }
.author-bio__text p { color: #6b6b6b; margin: 6px 0 0; }

/* ---------------- Attachment / image templates ---------------- */
.attachment-body { margin: 20px 0; }
.attachment-body img { border-radius: 8px; }
.attachment-description { color: #6b6b6b; margin-bottom: 16px; }
.attachment-back { font-size: .9rem; }
.attachment-back a { color: var(--gyn-purple, #6d2360); text-decoration: none; }
.image-navigation {
	display: flex;
	justify-content: space-between;
	font-size: .9rem;
	margin: 10px 0 20px;
}
.image-navigation a { color: var(--gyn-purple, #6d2360); text-decoration: none; }

/* ---------------- Front page (front-page.php) ---------------- */
.front-page .entry-content { max-width: 800px; margin: 0 auto; }

/* ---------------- General content tags ----------------
   Scoped to .entry-content (page.php/single.php/index.php's body
   wrapper) rather than applied globally — this theme has many
   component-specific list/link styles elsewhere (footer columns,
   info cards, the service list utility, etc.) that unscoped ul/li/a
   rules here would otherwise fight with. These cover what's left:
   plain typed content in the editor with no dedicated component,
   which previously rendered with bare, unstyled browser defaults.

   :where(.entry-content) rather than plain .entry-content: a bare
   ".entry-content a" is class+tag specificity (0,1,1), which beats a
   component's own single-class link selector like
   ".hp-service-card__link" (0,1,0) — confirmed as a real, systematic
   conflict (not just the two instances patched individually so far:
   testimonial slider's blockquote, provider card's social icons —
   any VC element's link/button styling was at equal risk the moment
   it's placed inside page content). :where() has zero specificity by
   definition, so wrapping .entry-content in it drops these selectors'
   effective specificity to just the bare tag (a/ul/table/etc., 0,0,1)
   — guaranteed to lose against any class-based component style,
   current or future, without needing to chase each conflict down
   individually as it's discovered. */
:where(.entry-content) a {
	color: var(--gyn-purple, #6d2360);
	text-decoration: underline;
}
:where(.entry-content) a:hover {
	color: var(--gyn-purple-dark, #4b055b);
}
:where(.entry-content) ul,
:where(.entry-content) ol {
	margin: 0 0 1.5em;
	padding-left: 1.5em;
}
:where(.entry-content) li {
	margin-bottom: 0.5em;
	line-height: 1.6;
}
:where(.entry-content) table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 1.5em;
}
:where(.entry-content) th,
:where(.entry-content) td {
	border: 1px solid var(--gyn-border, #e6e6e6);
	padding: 10px 14px;
	text-align: left;
}
:where(.entry-content) th {
	background: var(--gyn-purple-light, #f2e7ef);
	color: var(--gyn-purple-dark, #4b055b);
	font-weight: 600;
}
:where(.entry-content) hr {
	border: none;
	border-top: 1px solid var(--gyn-border, #e6e6e6);
	margin: 2em 0;
}
:where(.entry-content) code {
	background: var(--gyn-purple-light, #f2e7ef);
	padding: 0.15em 0.4em;
	border-radius: 3px;
	font-size: 0.9em;
}
:where(.entry-content) pre {
	background: var(--gyn-purple-light, #f2e7ef);
	padding: 1em;
	border-radius: 6px;
	overflow-x: auto;
	margin: 0 0 1.5em;
}
:where(.entry-content) pre code {
	background: none;
	padding: 0;
}

/* ---------------- Responsive ---------------- */
@media (max-width: 900px) {
	.layout-with-sidebar { grid-template-columns: 1fr; }
}
