/* site.css - the ONE hand-written stylesheet (Chunk 13).
   Every non-obvious value is transcribed from live evidence with a provenance
   comment: [kit] = captured design-token sheet (docs/seo + uploads css post-30),
   [computed] = docs/visual/computed-styles/*.json, [css:post-N] = the live per-template css file post-N.css, [shot] = baseline screenshot geometry.
   Zero builder classes. Chunk 15's convergence loop refines against baselines. */

/* ---------- tokens ---------- */
:root {
    --c-primary: #1A1A1A;      /* [kit] Heading / Title */
    --c-secondary: #A1A1A1;    /* [kit] Meta / Light text */
    --c-text: #4F4F4F;         /* [kit] Text */
    --c-accent: #5A67D8;       /* [kit] Primary accent */
    --c-light-bg: #F7FAFC;     /* [kit] Light Background */
    --c-divider: #E2E2E2;      /* [kit] Divider / Shade */
    --c-border: #D1D1D1;       /* [kit] Light Border */
    --c-white: #FFFFFF;
    --container: 1170px;       /* [css:post-30] --container-max-width */
    --font: "Frank Ruhl Libre", sans-serif; /* [kit+computed] site-wide face */
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: var(--font);
    font-size: 16px;           /* [computed] p 16px */
    line-height: 24px;         /* [computed] p 24px */
    font-weight: 400;
    color: var(--c-text);      /* [computed] p rgb(79,79,79) */
    background: var(--c-white);
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
p a, .single-post__content a { color: var(--c-accent); }
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font);
    color: var(--c-primary);   /* [computed] headings rgb(26,26,26) */
    margin: 0;
}
h1 { font-size: 50px; line-height: 65px; font-weight: 900; }  /* [computed] h1 */
h2 { font-size: 26px; line-height: 33.8px; font-weight: 500; margin: 8px 0 16px; } /* [computed] h2 + content h2 margin */
h3 { font-size: 20px; line-height: 26px; font-weight: 500; }   /* [computed] h3, margin 0 */
p { margin: 0 0 24px; } /* [computed] live default p margin-bottom 24px */

.visually-hidden {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
    position: absolute; left: -9999px; top: 0; z-index: 100;
    background: var(--c-primary); color: var(--c-white);
    padding: 10px 18px; font-size: 15px;
}
.skip-link:focus { left: 0; }
/* visible keyboard focus everywhere (a11y; no visual change for mouse users) */
a:focus-visible, button:focus-visible, input:focus-visible, [tabindex]:focus-visible {
    outline: 2px solid var(--c-accent);
    outline-offset: 2px;
}
.hidden-all { display: none; } /* live container 5c9545a1: hidden at all widths */
hr.divider {
    border: 0; border-top: 1px solid var(--c-divider); /* [kit] divider shade */
    margin: 10px 0 24px;
}
.section-title, .post-section__title, .widget-heading { margin: 0; } /* [computed] widget/section headings margin 0 */
/* page-title widget renders in a full-bleed light band, centered ([shot] builder pages) */
h1.widget-heading {
    background: var(--c-light-bg);
    text-align: center;
    padding: 22px 15px;
    margin: 0 calc(50% - 50vw) 30px;
}

/* ---------- layout ---------- */
.site-main {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 15px;
}

/* ---------- header ([css:post-41] + shots) ---------- */
.site-header { background: var(--c-white); }
.site-header__top {
    max-width: var(--container);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 25px 15px; /* [shot] header row height ~130px incl. title */
}
.site-title {
    font-size: 50px;   /* [computed] header h1 50px/65px */
    line-height: 65px;
    font-weight: 900;
    margin: 0;
    text-align: center;
}
.site-title a { color: var(--c-primary); }
.btn {
    line-height: 20.8px;      /* [computed] button line-height */
    letter-spacing: 0.3px;    /* [computed] button letter-spacing */
    transition: all 0.3s;     /* [computed] button transition */
}
.subscribe-btn {
    display: inline-flex; align-items: center; gap: 8px;
    background: var(--c-light-bg);            /* [computed] button background #F7FAFC */
    color: var(--c-text);                     /* [computed] button color */
    border: 1px solid var(--c-border);        /* [kit] light border */
    border-radius: 2px;                       /* [computed] button radius */
    padding: 10px 60px;                       /* [computed] button padding */
    font-size: 16px; font-weight: 500;
}
.subscribe-btn:hover { background: var(--c-divider); }
.site-search { position: relative; display: flex; }
.site-search__input {
    font-family: var(--font);
    font-size: 15px;
    color: var(--c-text);
    background: var(--c-light-bg);            /* [shot] light input */
    border: 1px solid var(--c-border);
    border-right: 0;
    border-radius: 2px 0 0 2px;
    padding: 9px 12px;
    width: 115px;                             /* [shot] compact header search */
}
.site-search__submit {
    background: var(--c-accent);              /* [shot] accent search button */
    color: var(--c-white);
    border: 0; border-radius: 0 2px 2px 0;
    padding: 0 16px;
    cursor: pointer;
}
.site-search__results {
    position: absolute; top: 100%; right: 0; z-index: 50;
    min-width: 280px; max-width: 360px;
    margin: 4px 0 0; padding: 6px 0; list-style: none;
    background: var(--c-white);
    border: 1px solid var(--c-border);
    box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.site-search__results li a {
    display: block; padding: 8px 14px; font-size: 14px; color: var(--c-text);
}
.site-search__results li a:hover { background: var(--c-light-bg); }

.site-nav { border-top: 1px solid var(--c-primary); border-bottom: 2px solid var(--c-primary); } /* [shot] thin rules around nav bar */
.site-nav__list {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0;
    list-style: none;
    display: flex;
}
.site-nav__item { flex: 1; text-align: center; }
.site-nav__item a {
    display: block;
    padding: 13px 20px;        /* [computed] nav a padding */
    font-size: 16px;
    line-height: 20.8px;       /* [computed] nav a line-height */
    color: var(--c-primary);
    transition: all 0.4s;      /* [computed] nav transition '0.4s' = all */
}
.site-nav__item.is-current,
.site-nav__item:hover {
    background: var(--c-accent); /* [shot] active tab accent bg lives on the LI ([computed] nav a bg transparent even when active) */
}
.site-nav__item.is-current a,
.site-nav__item:hover a {
    color: var(--c-white);       /* [computed] nav a (active) white */
}

/* ---------- hero (grid mosaic; [shot] layout + [css] height-240 tokens) ------- */
.hero-block {
    display: grid;
    grid-template-columns: 1fr 1fr;  /* main = half width at desktop [shot] */
    gap: 4px;                        /* [shot] thin gutters */
    margin: 20px 0 40px;
}
.hero-block__side {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 1fr;
    gap: 4px;
}
.teaser { position: relative; overflow: hidden; }
.teaser__link { display: block; position: relative; height: 100%; }
.teaser__img {
    display: block; width: 100%; height: 240px; /* [css] captured grid tile height 240 */
    object-fit: cover;
}
.hero-block__main .teaser__img { height: 488px; } /* [css] captured 2x main tile */
.teaser__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 45%, rgba(0,0,0,.75) 100%); /* [shot] bottom fade */
}
.teaser__content {
    position: absolute; left: 0; right: 0; bottom: 0;
    display: flex; flex-direction: column;
    padding: 12px 14px;
}
.teaser__title {
    color: var(--c-white);
    font-weight: 700;
    font-size: 17px; line-height: 1.35; /* [shot] side teaser titles */
}
.hero-block__main .teaser__title { font-size: 22px; } /* [shot] main title larger */
.teaser__date { color: rgba(255,255,255,.85); font-size: 13px; margin-top: 4px; }

/* ---------- home two-column region ([shot] main + Recent News sidebar) ------- */
.home-columns {
    display: grid;
    grid-template-columns: 1fr 340px; /* [shot] sidebar ~340px at 1280 */
    gap: 40px;
    align-items: start;
}
.home-section { margin: 0 0 40px; }
.home-section--featured,
.home-section--florida-man,
.home-section--urgent-care {
    background: var(--c-light-bg); /* [kit] light background panels [shot] */
    padding: 30px;
}

.home-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* [shot] featured 2-up */
    gap: 30px 20px;                        /* [css:post-4] grid gaps 30/20 */
}
.home-section--urgent-care .home-grid { grid-template-columns: repeat(4, 1fr); } /* [shot] 4-up */
.home-grid--text { grid-template-columns: repeat(2, 1fr); }
.home-card__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.home-card__title { margin: 0 0 10px; padding: 0; } /* [computed] home card h3 margin 0 0 10 */
.home-card__thumb-link { display: block; margin-bottom: 12px; }
.home-card__title a { color: var(--c-primary); }
.home-card__title a:hover { color: var(--c-accent); }
.home-card__date { color: var(--c-secondary); font-size: 13px; }
.home-card--text { border-top: 0; }

.classic-teaser { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 24px; }
.classic-teaser__thumb img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; display: block; } /* [shot] square lead image */
.classic-teaser__title { font-size: 22px; margin-bottom: 8px; }
.classic-teaser__date { color: var(--c-secondary); font-size: 13px; display: block; margin-bottom: 10px; }
.classic-teaser__excerpt { color: var(--c-text); font-size: 16px; margin: 0; } /* [computed] excerpt p body-gray, margin 0 */

.mini-card { display: grid; grid-template-columns: 100px 1fr; gap: 14px; margin-bottom: 20px; }
.mini-card__thumb img { width: 100px; height: 66px; object-fit: cover; display: block; } /* [shot] sidebar thumbs */
.mini-card__title { font-size: 15px; line-height: 1.35; margin: 0; padding-bottom: 4px; } /* [computed] h3 margin 0 */
.mini-card__date { color: var(--c-secondary); font-size: 12px; }

.home-band {
    background: var(--c-primary); /* [shot] Key West full dark band, [kit] primary */
    padding: 40px 30px;
    margin-left: calc(50% - 50vw);  /* full-bleed band [shot] */
    margin-right: calc(50% - 50vw);
    padding-left: calc(50vw - 50% + 30px);
    padding-right: calc(50vw - 50% + 30px);
}
.home-band .section-title { color: var(--c-white); text-align: center; }
.home-band hr.divider { border-top-color: var(--c-accent); width: 420px; margin: 10px auto 30px; } /* [shot] accent rule */
.teaser-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; } /* [shot] 3-up band */

/* ---------- ticker (EA content ticker; [shot] + widget css) ---------- */
.ticker {
    display: flex; align-items: stretch;
    border: 1px solid var(--c-border);
    background: var(--c-white);
    margin-bottom: 30px;
    position: relative;
}
.ticker__badge {
    background: var(--c-accent); color: var(--c-white); /* [shot] accent badge */
    display: inline-flex; align-items: center;
    padding: 10px 18px; font-size: 15px; font-weight: 500;
    flex: 0 0 auto;
}
.ticker__items { flex: 1; position: relative; overflow: hidden; }
.ticker__item {
    display: none;
    padding: 10px 16px;
    color: var(--c-primary);
    font-size: 16px;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ticker__item.is-active { display: block; }
.ticker__nav { display: flex; align-items: center; padding-right: 8px; }
.ticker__prev, .ticker__next {
    background: none; border: 0; cursor: pointer;
    color: var(--c-secondary); font-size: 18px;
    min-width: 28px; min-height: 28px; /* a11y: >=24px touch targets */
}

/* ---------- archive card (posts widget; [live card markup + shot]) ---------- */
.archive-header {
    background: var(--c-light-bg);  /* [shot] centered title on light band */
    text-align: center;
    padding: 22px 15px;
    margin: 0 calc(50% - 50vw) 40px;  /* full-bleed band */
}
.archive-title { margin: 0; font-size: 34px; line-height: 1.3; } /* [shot] band title */
.archive-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr); /* [shot] 3-up archive grid */
    gap: 46px 40px;
    margin: 24px 0;
}
.post-card { display: block; }
.post-card__thumb img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; } /* [shot] ~345x228 card imgs */
.post-card__title { margin: 0 0 10px; padding: 0; font-size: 20px; line-height: 26px; font-weight: 500; } /* [computed] category card h2 20/26 w500, margin 0 0 10 */
.template-blog-index .post-card__title { font-size: 17px; line-height: 20.4px; } /* [computed] archive template 71 cards are smaller */
.post-card__title a { color: var(--c-primary); }
.post-card__title a:hover { color: var(--c-accent); }
.post-card__meta { color: var(--c-secondary); font-size: 12px; display: flex; gap: 6px; margin-bottom: 8px; }
.post-card__meta .post-card__author::after { content: " ,"; } /* [shot] "Author , Date" */
.post-card__excerpt { font-size: 16px; line-height: 24px; } /* [computed] excerpt p 16/24 */
.post-card__excerpt p { margin: 0; }                        /* [computed] excerpt p margin 0 */
.post-card__read-more { color: var(--c-accent); font-size: 14px; }

/* theme-fallback loop card (tag/author/date archives; [live markup]) */
.fallback-archive { margin: 24px 0; }
.fallback-card { margin-bottom: 40px; }
.fallback-card .entry-title { margin: 8px 0 16px; } /* [computed] entry-title margin */
.fallback-card img { display: block; margin-bottom: 12px; }

/* ---------- pagination ([shot] plain centered text links) ---------- */
.pagination { margin: 30px 0 50px; display: flex; gap: 14px; align-items: center; justify-content: center; }
.pagination__number, .pagination__prev, .pagination__next {
    color: var(--c-text); font-size: 15px;
}
.pagination__number.is-current { color: var(--c-primary); font-weight: 700; }
.pagination__prev.is-disabled, .pagination__next.is-disabled { opacity: .45; }

/* ---------- single post ([shot] two-column layout) ---------- */
.post-columns {
    display: grid;
    grid-template-columns: 1fr 350px; /* [shot] sidebar ~350px */
    gap: 50px;
    align-items: start;
    margin-top: 30px;
}
.post-sidebar .subscribe-box { margin-bottom: 30px; }
.post-sidebar .subscribe-box__text { font-size: 15px; margin-bottom: 12px; }
.sidebar-section { margin-bottom: 34px; }
.sidebar-section__title { font-size: 18px; line-height: 23.4px; margin: 0; padding: 0; } /* [computed] sidebar h3 18/23.4, margin+padding 0 */
.sidebar-section__title + * { margin-top: 14px; } /* spacing carried by the sibling */
.picks { display: grid; gap: 16px; }
.picks .teaser__title { text-transform: uppercase; font-size: 15px; } /* [shot] Editor's Pick caps */
.picks .teaser__img { height: 180px; }
.print-row { display: flex; gap: 10px; margin: 8px 0 18px; }
.print-row__btn {
    background: var(--c-light-bg);
    border: 1px solid var(--c-border);
    padding: 4px 12px;
    font-size: 13px; font-weight: 600;
    cursor: pointer;
    /* Print is a <button>, PDF an <a> (a real download). Without an explicit
       family the button alone falls back to the UA control font and the pair
       stops matching; var(--font) is what .btn and the inputs already use. */
    font-family: var(--font);
    line-height: 20px;
    display: inline-flex; align-items: center;
    text-decoration: none;
}
.print-row__btn--print { color: var(--c-text); }
.print-row__btn--pdf { color: #3AAA11; } /* [live css] print-control green #3AAA11 */
.print-row__btn--pdf:hover, .print-row__btn--pdf:focus { text-decoration: underline; }
/* PDF is an <a> now, not a <button>, so it needs the button box explicitly;
   the live green and sizing above are preserved. */
a.print-row__btn { display: inline-block; text-decoration: none; line-height: normal; }
a.print-row__btn:hover, a.print-row__btn:focus { background: var(--c-white); }
@media print { .print-row { display: none; } }
.single-post { max-width: none; }
.single-post__title { font-size: 50px; line-height: 65px; margin: 0 0 14px; } /* [computed] post h1 50/65 */
.single-post__byline { display: flex; align-items: center; gap: 10px; font-size: 15px; margin-bottom: 10px; }
.single-post__author-link { display: inline-flex; align-items: center; gap: 10px; color: var(--c-text); }
.single-post__avatar { width: 40px; height: 40px; border-radius: 50%; } /* [live markup] 96px avatar shown small */
.single-post__meta { display: flex; gap: 18px; font-size: 14px; color: var(--c-secondary); margin: 10px 0 18px; }
.single-post__category { color: var(--c-accent); }
.single-post__featured img { display: block; margin: 0 auto; }
.single-post__featured { margin: 0 0 24px; }
.single-post__content p { margin: 0 0 10px; }  /* [computed] post body p margin */
.single-post__content h2 { margin: 8px 0 16px; } /* [computed] post content h2 margin */
.single-post__content h3 { margin: 8px 0 16px; }
.single-post__content ul, .single-post__content ol { margin: 0 0 16px; padding-left: 28px; }
.single-post__content li { margin-bottom: 6px; }
.single-post__tags { margin: 24px 0; font-size: 14px; }
.single-post__tags a { color: var(--c-accent); }
.single-post__tags-label { font-weight: 500; margin-right: 6px; }

.post-section { margin: 44px 0; }
.post-section .post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.post-section .post-card__thumb img { aspect-ratio: 4 / 3; object-fit: cover; }
.post-section--subscribe {
    background: var(--c-light-bg);
    padding: 26px 30px;
}
.subscribe-box__text { font-size: 17px; margin-bottom: 14px; }
.subscribe-box__recent-title { margin-top: 24px; }
.recent-list { list-style: none; margin: 12px 0 0; padding: 0; }
.recent-list__item { display: flex; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--c-divider); }
.recent-list__item a { color: var(--c-primary); }
.recent-list__date { color: var(--c-secondary); font-size: 13px; flex: 0 0 auto; }

/* ---------- share bar ([shot] small icon-only squares) --------- */
.share-bar { margin: 0 0 18px; }
.share-bar__text { font-size: 13px; margin: 0 0 8px; } /* [live] "Share this post" */
.share-bar__list { list-style: none; display: flex; gap: 5px; margin: 0 0 10px; padding: 0; }
.share-bar__btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 24px; height: 24px;                   /* [shot] compact icon squares */
    border-radius: 4px;
    color: var(--c-white);
}
.share-bar__btn--facebook { background: #1877F2; } /* captured facebook brand color */
.share-bar__btn--x { background: #000000; }        /* captured x brand color */
.share-bar__btn--linkedin { background: #0A66C2; } /* captured linkedin brand color */
.share-bar__btn--email { background: #2BB673; }    /* [shot] captured email button green */

/* ---------- buttons / forms ---------- */
.btn { cursor: pointer; font-family: var(--font); }
.newsletter-form { display: flex; flex-direction: column; gap: 0; max-width: 360px; }
.newsletter-form__hp { position: absolute; left: -9999px; } /* honeypot off-screen */
.newsletter-form__email {
    font-family: var(--font); font-size: 15px;
    padding: 12px 14px;
    border: 1px solid var(--c-border);
    background: var(--c-white);
}
.newsletter-form__submit {
    background: var(--c-primary); color: var(--c-white); /* [shot] dark footer button */
    border: 0; padding: 12px 14px; font-size: 15px; font-weight: 500;
}
.newsletter-form__submit:hover { background: var(--c-accent); }
.newsletter-form__success { color: #1a7f37; font-size: 14px; }
.newsletter-form__error { color: #b42318; font-size: 14px; }

/* ---------- footer ([css:post-50/60] + [shot]) ---------- */
.site-footer { background: var(--c-light-bg); margin-top: 60px; } /* [shot] light footer band */
.site-footer__inner {
    max-width: var(--container);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 300px 1fr 300px; /* [shot] narrow outer columns */
    gap: 40px;
    padding: 45px 15px;
}
.site-footer__blurb { font-size: 18px; font-weight: 500; color: var(--c-primary); } /* [shot] bold blurb */
.site-footer__blurb a { color: var(--c-primary); }
.site-footer__email a { color: var(--c-accent); }
.site-footer__newsletter-text { text-align: center; }
.site-footer__newsletter-text a { color: var(--c-primary); }
.site-footer__newsletter .newsletter-form { margin: 0 auto; }
.site-footer__links-title { font-size: 20px; margin: 0; padding: 0; } /* [computed] h3 margin+padding 0 */
.site-footer__links ul { list-style: none; margin: 12px 0 0; padding: 0; }
.site-footer__links li { padding: 5px 0 5px 18px; position: relative; }
.site-footer__links li::before {  /* [shot] chevron bullets */
    content: "\203A";
    position: absolute; left: 0; top: 5px;
    color: var(--c-secondary);
}
.site-footer__links a { color: var(--c-text); }
.site-footer__links a:hover { color: var(--c-accent); }
.site-footer__copyright {
    background: var(--c-primary); /* [shot] black copyright bar */
    color: var(--c-white);
    text-align: center;
    padding: 14px 10px;
    font-size: 14px;
}
.site-footer__copyright p { margin: 0; }

/* ---------- responsive (kit breakpoints: 1024 tablet, 767 mobile) ---------- */
@media (max-width: 1024px) {
    .hide-tablet { display: none !important; } /* live nav hidden on tablet (453ded56) */
    h1 { font-size: 40px; line-height: 1.3; }
    .site-title { font-size: 36px; }
    .home-columns { grid-template-columns: 1fr; }
    .post-columns { grid-template-columns: 1fr; }
    .archive-grid { grid-template-columns: repeat(2, 1fr); }
    .teaser-grid { grid-template-columns: repeat(2, 1fr); }
    .home-section--urgent-care .home-grid { grid-template-columns: repeat(2, 1fr); }
    .post-section .post-grid { grid-template-columns: repeat(2, 1fr); }
    .single-post__title { font-size: 40px; line-height: 1.3; }
}
@media (max-width: 767px) {
    .hide-mobile { display: none !important; } /* live desktop header row hidden on phone (7db54a17) */
    h1 { font-size: 32px; line-height: 1.3; }
    .site-title { font-size: 30px; text-align: center; }
    .site-header__top { flex-direction: column; gap: 12px; }
    .hero-block { grid-template-columns: 1fr; }
    .home-grid, .home-grid--text, .home-section--urgent-care .home-grid,
    .teaser-grid, .post-section .post-grid, .archive-grid { grid-template-columns: 1fr; }
    .classic-teaser { grid-template-columns: 1fr; }
    .site-footer__inner { grid-template-columns: 1fr; }
    .single-post__title { font-size: 28px; line-height: 1.3; }
}

/* ---------- reduced motion (a11y guard on all motion) ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ---------- print (print controls; article only) -------- */
@media print {
    /* .print-row joins the list because the live PrintFriendly widget carried
       its own @media print { .printfriendly { display: none } } - the controls
       were never meant to appear in the printout. */
    .site-header, .site-footer, .share-bar, .post-section, .ticker, .print-row { display: none !important; }
}
