/*
Theme Name: Quiet Card
Template: colormag
Description: Design layer for seasalthendersonville.com.
Version: 1.0
*/

/* seasalthendersonville.com — shadcn/ui language, round 2 (child theme "Quiet Card")
   Round 1 was too timid: it read as the stock theme with rounder corners, and
   the Read More button carried a black border on a black fill. This version
   commits — dark navigation shell, real card grid, one violet primary, and the
   button is a flat dark chip with no ring.
   Nothing from shadcn is imported; only its visual vocabulary is reproduced.
   Parent: colormag. */

:root {
  --s-bg:      #fafafa;
  --s-card:    #ffffff;
  --s-border:  #e4e4e7;
  --s-fg:      #09090b;
  --s-body:    #3f3f46;
  --s-muted:   #6b6b76;   /* 5.2:1 on white — AA */
  --s-primary: #6d28d9;   /* violet-700, 7.0:1 on white */
  --s-shell:   #18181b;
  --s-radius:  0.5rem;
  --s-measure: 68ch;
  --s-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

body {
  background: var(--s-bg);
  color: var(--s-body);
  font-family: var(--s-sans);
  font-size: 16px;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* ---------- shell: dark bar over the whole masthead ---------- */
.cm-header,
.cm-main-header,
.cm-header-1,
.cm-header-2 {
  background: var(--s-shell);
  border-bottom: 1px solid rgba(255,255,255,.08);
  box-shadow: none;
}
.cm-site-branding .site-title,
.cm-site-branding .site-title a,
.site-title,
.site-title a {
  color: #fafafa;
  font-weight: 700;
  letter-spacing: -0.025em;
  font-size: 1.3rem;
  line-height: 1.35;
}
.site-description, .cm-site-branding .site-description { color: #a1a1aa; font-size: .85rem; line-height: 1.5; }
.header-image-wrap img { border-radius: 0; }

.cm-primary-nav ul li a,
.main-navigation ul li a,
#cm-primary-nav li a {
  color: #d4d4d8;
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: -0.005em;
  line-height: 1.5;
  padding: .65rem .9rem;
  border-radius: calc(var(--s-radius) - 2px);
}
.cm-primary-nav ul li a:hover,
.main-navigation ul li a:hover { background: rgba(255,255,255,.08); color: #fff; }
.cm-primary-nav ul li.current-menu-item > a,
.main-navigation ul li.current-menu-item > a { background: var(--s-primary); color: #fff; }

/* ---------- cards ---------- */
.cm-posts .cm-post,
.cm-posts article,
.cm-layout-1 .cm-post,
.cm-layout-2 .cm-post,
article.post {
  background: var(--s-card);
  border: 1px solid var(--s-border);
  border-radius: var(--s-radius);
  overflow: hidden;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);
  transition: box-shadow .15s ease, border-color .15s ease;
}
.cm-posts article:hover { box-shadow: 0 8px 24px -8px rgb(0 0 0 / .12); border-color: #d4d4d8; }
.cm-featured-image img { border-radius: 0; display: block; width: 100%; height: auto; }

.cm-post-categories a,
.cm-below-entry-meta .cm-post-categories a {
  background: #f4f4f5;
  color: #52525b;
  border: 1px solid var(--s-border);
  border-radius: 9999px;
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .03em;
  line-height: 1.5;
  padding: .2rem .7rem;
  text-transform: uppercase;
}
.cm-entry-header-meta,
.cm-entry-header-meta a,
.cm-below-entry-meta,
.cm-below-entry-meta a,
.posted-on, .posted-on a, .byline, .byline a {
  color: var(--s-muted);
  font-size: .82rem;
  line-height: 1.6;
}

.cm-entry-title,
.cm-entry-title a,
.entry-title,
.entry-title a {
  color: var(--s-fg);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.32;
}
.cm-entry-title a:hover, .entry-title a:hover { color: var(--s-primary); }

/* the round-1 bug: a 1px ring the same colour as the fill */
a.cm-entry-button,
.cm-entry-button,
.cm-read-more {
  display: inline-block;
  background: var(--s-fg);
  color: #fafafa;
  border: 0;
  border-radius: calc(var(--s-radius) - 2px);
  font-size: .84rem;
  font-weight: 500;
  line-height: 1.5;
  padding: .5rem 1.05rem;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);
  text-decoration: none;
  transition: background .15s;
}
a.cm-entry-button:hover, .cm-entry-button:hover { background: #27272a; color: #fafafa; }

/* ---------- single post ---------- */
.cm-entry-title,
.single .cm-entry-title,
.single h1.entry-title {
  font-size: clamp(1.8rem, 3.6vw, 2.4rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.22;
  color: var(--s-fg);
  max-width: 26ch;
}
.cm-content, .cm-primary { background: transparent; }

.cm-entry-summary,
.entry-content {
  font-size: 1.03rem;
  line-height: 1.75;
  color: var(--s-body);
  max-width: var(--s-measure);
}
.cm-entry-summary > *, .entry-content > * { max-width: var(--s-measure); }
.cm-entry-summary p, .entry-content p { margin: 0 0 1.3rem; }
.cm-entry-summary h2, .entry-content h2 {
  font-size: 1.55rem;
  font-weight: 700;
  letter-spacing: -0.022em;
  line-height: 1.33;
  color: var(--s-fg);
  margin: 2.6rem 0 .95rem;
}
.cm-entry-summary h3, .entry-content h3 {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--s-fg);
  margin: 2rem 0 .7rem;
}
.cm-entry-summary h2 + p, .entry-content h2 + p { margin-top: 0; }
.cm-entry-summary ul, .entry-content ul,
.cm-entry-summary ol, .entry-content ol { margin: 0 0 1.4rem 1.35rem; }
.cm-entry-summary li, .entry-content li { margin-bottom: .5rem; line-height: 1.72; }
.entry-content a, .cm-entry-summary a { color: var(--s-primary); text-decoration: underline; text-underline-offset: 2px; }
.entry-content a:hover { color: var(--s-fg); }
.cm-entry-summary img, .entry-content img {
  max-width: 100%; height: auto;
  border-radius: var(--s-radius);
  border: 1px solid var(--s-border);
  margin: 1.8rem 0;
}
.cm-entry-summary blockquote, .entry-content blockquote {
  border: 0;
  border-left: 3px solid var(--s-primary);
  background: #faf9fe;
  border-radius: 0 var(--s-radius) var(--s-radius) 0;
  margin: 1.9rem 0;
  padding: 1rem 1.4rem;
  color: var(--s-body);
  font-style: normal;
  line-height: 1.7;
}
.cm-entry-summary table, .entry-content table {
  width: 100%; max-width: 100%;
  border-collapse: separate; border-spacing: 0;
  margin: 2rem 0;
  border: 1px solid var(--s-border);
  border-radius: var(--s-radius);
  overflow: hidden;
  font-size: .94rem;
  background: var(--s-card);
}
.cm-entry-summary table th, .entry-content table th {
  background: #f4f4f5; color: var(--s-fg);
  text-align: left; font-weight: 600;
  padding: .7rem .9rem; line-height: 1.5;
  border-bottom: 1px solid var(--s-border);
}
.cm-entry-summary table td, .entry-content table td {
  padding: .65rem .9rem; border-bottom: 1px solid var(--s-border); line-height: 1.6;
}
.cm-entry-summary table tr:last-child td, .entry-content table tr:last-child td { border-bottom: 0; }

/* ---------- author: bordered card, square-ish avatar ---------- */
.pbn-author {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
  max-width: var(--s-measure);
  margin: 2.6rem 0 0;
  padding: 1.25rem;
  background: var(--s-card);
  border: 1px solid var(--s-border);
  border-radius: var(--s-radius);
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);
}
.pbn-author__avatar img {
  width: 64px; height: 64px;
  border-radius: var(--s-radius);
  display: block; margin: 0;
  border: 1px solid var(--s-border);
}
.pbn-author__name { font-size: .98rem; font-weight: 600; color: var(--s-fg); line-height: 1.45; margin: 0 0 .1rem; }
.pbn-author__role { font-size: .76rem; font-weight: 500; color: var(--s-primary); line-height: 1.5; margin: 0 0 .5rem; text-transform: uppercase; letter-spacing: .05em; }
.pbn-author__bio { font-size: .92rem; line-height: 1.65; color: var(--s-body); margin: 0; }

/* ---------- sidebar ---------- */
.cm-secondary .widget, .widget {
  background: var(--s-card);
  border: 1px solid var(--s-border);
  border-radius: var(--s-radius);
  padding: 1.3rem 1.4rem;
  margin-bottom: 1rem;
}
.cm-secondary .widget-title,
.cm-secondary .widget h2,
.widget-title, .widget h2,
.widget .wp-block-group h2,
.widget label.wp-block-search__label {
  color: var(--s-fg);
  background: transparent;
  font-size: .8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .07em;
  line-height: 1.5;
  border: 0;
  border-bottom: 1px solid var(--s-border);
  padding: 0 0 .5rem;
  margin: 0 0 .85rem;
}
.widget-title span { background: transparent; color: var(--s-fg); padding-left: 0; border: 0; }
.cm-secondary .widget a, .widget a { color: var(--s-body); font-size: .92rem; line-height: 1.6; }
.cm-secondary .widget a:hover, .widget a:hover { color: var(--s-primary); }
.widget li { padding: .3rem 0; }
.widget input[type="search"], .widget .wp-block-search__input {
  border: 1px solid var(--s-border);
  border-radius: calc(var(--s-radius) - 2px);
  padding: .5rem .7rem;
  color: var(--s-fg);
  background: var(--s-bg);
  line-height: 1.5;
}
.widget .wp-block-search__button, .widget input[type="submit"], .search-submit {
  background: var(--s-fg); color: #fafafa;
  border: 0; border-radius: calc(var(--s-radius) - 2px);
  font-weight: 500; font-size: .85rem; line-height: 1.5;
  padding: .5rem 1rem;
}

/* ---------- footer ---------- */
.cm-footer, .cm-footer-bar, .cm-footer-bar-area, .site-footer {
  background: var(--s-shell);
  border-top: 0;
}
.pbn-colophon {
  background: var(--s-shell);
  max-width: none;
  padding: 3rem 1.5rem 2rem;
  font-family: var(--s-sans);
  color: #a1a1aa;
  font-size: .9rem;
  line-height: 1.7;
}
.pbn-colophon > * { max-width: 1140px; margin-left: auto; margin-right: auto; }
.pbn-colophon__cols { display: grid; grid-template-columns: 1fr 1.2fr 1.2fr; gap: 2.4rem; }
.pbn-colophon h3 {
  font-size: .78rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: .08em; color: #fafafa; margin: 0 0 .9rem; line-height: 1.5;
}
.pbn-colophon ul { list-style: none; margin: 0; padding: 0; }
.pbn-colophon li { margin-bottom: .45rem; }
.pbn-colophon a { color: #d4d4d8; text-decoration: none; }
.pbn-colophon a:hover { color: #fff; text-decoration: underline; }
.pbn-colophon p { margin: 0 0 .7rem; max-width: 46ch; }
.pbn-colophon__base {
  margin-top: 2.2rem; padding-top: 1.1rem;
  border-top: 1px solid rgba(255,255,255,.12);
  font-size: .82rem; color: #8b8b95;
}

/* ---------- gate floor ---------- */
#page, .site, .cm-container, .cm-header { overflow-x: hidden; }
button, input[type="submit"], .wp-block-search__button, .wp-element-button { line-height: 1.5; }
p, li, td, th, span, div, a, figcaption, label, input, select, textarea { line-height: 1.7; }
h1, h2, h3, h4, h5, h6 { line-height: 1.33; }
.screen-reader-text, .skip-link { line-height: 1.5; }
.no-comments, .wp-block-latest-comments, .wp-block-latest-comments__no-comments { color: var(--s-muted); }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--s-primary); outline-offset: 2px; border-radius: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
@media (max-width: 900px) {
  .pbn-colophon__cols { grid-template-columns: 1fr; gap: 1.8rem; }
  .pbn-author { flex-direction: column; }
}

/* v2: colormag keeps its stock blue on the footer copyright line. */
.copyright, .copyright span, .copyright a, .cm-footer-bar__1, .cm-footer-bar__2 { color: #d4d4d8; }
.copyright a:hover { color: #ffffff; }

/* v3 */
h1.cm-entry-title, .cm-entry-title, .single h1.entry-title { line-height: 1.32; }
body h1.cm-entry-title, body .cm-entry-title, body .cm-entry-header .cm-entry-title { line-height: 1.34; }

/* v4 — colormag names the title .cm-site-title, not .site-title; the link inside
   kept the theme's stock blue on the dark shell. */
.cm-site-title, .cm-site-title a, h1.cm-site-title a {
  color: #fafafa;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.35;
}
.cm-site-title a:hover { color: #ffffff; }
.cm-site-description { color: #a1a1aa; }
a.cm-entry-button, .cm-entry-button, .cm-read-more, .cm-posts a.cm-entry-button {
  border: 0 !important; background-color: #09090b !important; color: #fafafa !important;
}


/* ---------------------------------------------------------------------------
   Stopgap before the from-scratch theme (plan-v3): the three defects that must
   not sit on a live site while the rebuild is decided.
   --------------------------------------------------------------------------- */
/* colormag ships html{font-size:10px}; every rem below was landing at 62.5%. */
html { font-size: 16px; }

/* The parent theme renders its own author card next to ours. */
.author-info, .author-bio, .author-description, .author-avatar,
.wp-post-author-meta, .entry-author-box, .cm-author-box, .about-author,
#author-info, .post-author-info { display: none; }

/* Flex was squashing a square avatar to 31x64. */
.pbn-author__avatar { flex: 0 0 auto; width: auto; }
.pbn-author__avatar img { width: 64px; height: 64px; object-fit: cover; max-width: none; }

/* Nothing under 14px on a reading site. */
body, p, li, td, th, a, span, div, figcaption { font-size: inherit; }
.entry-meta, .entry-meta a, .posted-on, .posted-on a, .cm-entry-header-meta,
.cm-entry-header-meta a, .cm-below-entry-meta, .cm-below-entry-meta a,
.byline, .byline a, .nav-subtitle, time, .date-box, .date-box span,
.pbn-author__role, .pbn-colophon__base, .widget label,
.wp-block-search__label, .cat-links, .cat-links a { font-size: 14px; }
.pbn-author__name { font-size: 16px; }
.pbn-author__bio { font-size: 15px; }
.postbox .date-box, .postbox .entry-author, .postbox .entry-comments { font-size: 14px; }
button, input, select, textarea, .wp-block-search__button { font-size: 15px; }
.cm-post-categories a, .morenews-categories, a.morenews-categories { font-size: 12.5px; }

/* Second pass on the 14px floor: chips, widget titles and footer headings were
   still landing at 12-12.8px. */
.cat-links, .cat-links a, .cm-post-categories a, .morenews-categories,
a.morenews-categories, .postbox .date-box, .postbox .date-box span,
span.nav-subtitle, .nav-links .nav-subtitle, label.wp-block-search__label,
.widget label, h2.wp-block-heading, .widget .wp-block-heading, .widget h2,
.widget-title, .cm-widget-title, .cm-widget-title span,
.pbn-colophon h3, .pbn-colophon a, .pbn-colophon li, .pbn-colophon p,
.pbn-colophon__base, .entry-meta, .entry-meta a, .posted-on, .posted-on a,
.cm-entry-header-meta, .cm-entry-header-meta a, .cm-below-entry-meta,
.cm-below-entry-meta a, time, .byline, .byline a { font-size: 14px; }

/* Final stopgap pass: these few selectors are outranked by the parent's own
   sizing, so the floor is enforced explicitly. The from-scratch theme removes
   the need for this entirely. */
.cat-links a, .cat-links, a.morenews-categories, .morenews-categories,
.category-color-1, label.wp-block-search__label, .wp-block-search__button,
.item-metadata, .posts-date, span.item-metadata, .entry-meta a, .author a,
a.url.fn.n, .pbn-author__role, .cm-post-categories a { font-size: 14px !important; }

/* charliewellbeing: the author card had no inner padding. */
.pbn-author { padding: 1.25rem; box-sizing: border-box; }
