/*
Theme Name: SKJ
Theme URI: https://skj.law
Author: Schaffer Kennedy Johnson
Description: Purpose-built theme for Schaffer Kennedy Johnson. Navy and gold identity taken from the firm's print collateral. No page builder, no third-party font requests. Custom post types for attorneys, representative results and job postings, with JobPosting and Person schema.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: skj
Tags: law-firm, custom-post-types, accessibility-ready
*/

/* -------------------------------------------------------------
   The design system lives in assets/site.css, which is enqueued
   ahead of this file. Only WordPress-specific rules belong here.
   ------------------------------------------------------------- */

/* --- accessibility --- */
.screen-reader-text {
  border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%);
  height: 1px; width: 1px; margin: -1px; overflow: hidden;
  padding: 0; position: absolute !important; word-wrap: normal !important;
}
.screen-reader-text:focus {
  background: #fff; border-radius: 2px; clip: auto !important; clip-path: none;
  color: var(--navy-800); display: block; font-family: var(--ui); font-size: .9rem;
  height: auto; left: 12px; line-height: normal; padding: 14px 20px;
  text-decoration: none; top: 12px; width: auto; z-index: 100000;
}

/* --- admin bar --- */
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }
@media (max-width: 1080px) { body.admin-bar .site-header { top: 0; } }

/* --- block editor alignment --- */
.entry-content > * { max-width: 100%; }
.alignleft  { float: left;  margin: .3em 1.6em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.6em; }
.aligncenter { margin-left: auto; margin-right: auto; display: block; }
.alignwide, .alignfull { max-width: none; }
.alignfull { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }
.wp-block-image img { height: auto; }
.wp-block-image figcaption,
.wp-caption-text {
  font-family: var(--ui); font-size: .82rem; color: var(--ink-mute); margin-top: .6em;
}
.wp-block-quote, blockquote {
  border-left: 3px solid var(--gold-500); padding: 6px 0 6px 26px; margin: 34px 0;
  font-family: var(--display); font-size: 1.5rem; line-height: 1.35; color: var(--navy-800);
}
.wp-block-separator { border: 0; border-top: 1px solid var(--rule); margin: 2em 0; }
.wp-block-table table { width: 100%; border-collapse: collapse; font-family: var(--ui); font-size: .92rem; }
.wp-block-table td, .wp-block-table th { border: 1px solid var(--rule); padding: 11px 14px; }
.wp-block-button__link {
  display: inline-block; font-family: var(--ui); font-size: .82rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; padding: 14px 30px;
  border: 1px solid var(--navy-800); background: var(--navy-800); color: #fff; border-radius: 2px;
}

/* --- posts and archives --- */
.entry-meta {
  font-family: var(--ui); font-size: .78rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--gold-500); margin-bottom: 1em;
}
.post-list { list-style: none; padding: 0; margin: 0; }
.post-list > li { border-bottom: 1px solid var(--rule); padding: 26px 0; }
.post-list > li:first-child { border-top: 1px solid var(--rule); }
.post-list h3 { margin: 0 0 .25em; }

/* --- pagination --- */
.nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 34px; font-family: var(--ui); font-size: .85rem; }
.nav-links .page-numbers {
  padding: 9px 15px; border: 1px solid var(--rule); background: var(--paper); color: var(--ink-soft);
}
.nav-links .page-numbers.current,
.nav-links a.page-numbers:hover { background: var(--navy-800); border-color: var(--navy-800); color: #fff; text-decoration: none; }

/* --- comments are not used on this site, but style them in case --- */
.comment-list { list-style: none; padding: 0; }
.comment-body { border-bottom: 1px solid var(--rule); padding: 18px 0; }

/* --- search --- */
.search-form { display: flex; gap: 10px; max-width: 460px; }
.search-form input[type="search"] {
  flex: 1; font-family: var(--body); font-size: 1rem; padding: 12px 14px;
  border: 1px solid var(--rule); background: var(--paper); color: var(--ink);
}

/* --- print: hide chrome the site does not need on paper --- */
@media print {
  .site-header, .nav-toggle, .skip, .nav-links { display: none !important; }
}

/* --- custom logo, when one is set in the Customizer --- */
.brand-logo { max-height: 46px; width: auto; display: block; }
@media (max-width:560px){ .brand-logo { max-height: 38px; } }
