/*
Theme Name: Thrifty & Bright
Theme URI: https://thriftyandbright.com/
Author: Thrifty & Bright
Description: Editorial WordPress block theme for a Pinterest-first smart living publication.
Version: 2.9.1
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: thrifty-bright-theme
*/

:root { --tb-shadow: 0 12px 35px rgba(31,42,36,.08); }
html { scroll-behavior: smooth; }
body { margin: 0; }
.tb-eyebrow { letter-spacing: .14em; text-transform: uppercase; font-weight: 750; font-size: .78rem; }
.tb-card { transition: transform .18s ease, box-shadow .18s ease; overflow: hidden; }
.tb-card:hover { transform: translateY(-3px); box-shadow: var(--tb-shadow); }
.tb-soft-border { border: 1px solid #dfe4df; }
.tb-section-title { margin-bottom: .2rem; }
.tb-section-kicker { max-width: 680px; margin-top: 0; color: #526058; }
.tb-post-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:30px; }
.tb-post-card { background:#fff; border:1px solid #e1e5e1; border-radius:20px; overflow:hidden; box-shadow:0 4px 20px rgba(31,42,36,.035); }
.tb-post-card a { color:inherit; }
.tb-post-card__image { display:block; aspect-ratio:4/3; overflow:hidden; background:#EFF2EE; }
.tb-post-card__image img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .25s ease; }
.tb-post-card:hover .tb-post-card__image img { transform:scale(1.025); }
.tb-post-card__body { padding:20px; }
.tb-post-card__meta { font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:#315B49; font-weight:750; margin-bottom:8px; }
.tb-post-card h3 { font-family:Georgia,"Times New Roman",serif; font-size:1.35rem; line-height:1.15; margin:.15rem 0 .65rem; }
.tb-post-card p { margin:.3rem 0 0; color:#536058; font-size:.94rem; }
.tb-section-link { display:inline-block; margin-top:26px; font-weight:750; }
.tb-empty { padding:28px; background:#FBF8F1; border:1px dashed #ccd5ce; border-radius:16px; color:#667168; text-align:center; }
.tb-feature-card { min-height:260px; display:flex; align-items:flex-end; border-radius:22px; overflow:hidden; position:relative; background:#315B49; color:#fff; }
.tb-feature-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.65; }
.tb-feature-card:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(22,31,26,.03),rgba(22,31,26,.78)); }
.tb-feature-card__body { position:relative; z-index:2; padding:26px; }
.tb-feature-card__body h3 { margin:.25rem 0; font-size:1.55rem; font-family:Georgia,"Times New Roman",serif; }
.tb-feature-card__body a { color:#fff; }
.tb-logo-wrap img { max-width:340px; width:100%; height:auto; display:block; }
@media (max-width: 850px) { .tb-post-grid { grid-template-columns:1fr 1fr; } }
@media (max-width: 620px) { .tb-post-grid { grid-template-columns:1fr; } .tb-logo-wrap img { max-width:260px; } }


/* ===== v2.3 compact header: deliberately non-sticky and low-profile ===== */
.tb-compact-header { position: relative; z-index: 10; }
.tb-compact-header__inner { min-height: 64px; gap: 28px; }
.tb-compact-brand { gap: 12px; flex-shrink: 0; }
.tb-compact-brand .wp-block-site-logo,
.tb-compact-brand .custom-logo-link { margin: 0; line-height: 0; }
.tb-compact-brand img { width: 82px !important; max-width: 82px !important; height: auto !important; display: block; }
.tb-compact-brand .wp-block-site-title { margin: 0; white-space: nowrap; line-height: 1.05; }
.tb-compact-nav .wp-block-navigation__container { gap: clamp(14px, 1.7vw, 26px); }
.tb-compact-nav .wp-block-navigation-item__content { font-size: .86rem; font-weight: 700; color: #2F302B; }
.tb-compact-nav .wp-block-navigation-item__content:hover,
.tb-compact-nav .wp-block-navigation-item__content:focus { color: #858B68; }

/* Equal height only for the four homepage category cards. */
.tb-category-cards { align-items: stretch; }
.tb-category-cards > .wp-block-column { display: flex; align-self: stretch; }
.tb-category-cards .tb-card { width: 100%; min-height: 220px; box-sizing: border-box; display: flex; flex-direction: column; }
.tb-category-cards .tb-card > :last-child { margin-top: auto; }

@media (max-width: 900px) {
  .tb-compact-header__inner { gap: 16px; }
  .tb-compact-brand img { width: 68px !important; max-width: 68px !important; }
  .tb-compact-brand .wp-block-site-title { font-size: 1.25rem !important; }
}
@media (max-width: 782px) {
  .tb-compact-header { padding-top: 8px !important; padding-bottom: 8px !important; }
  .tb-compact-header__inner { min-height: 52px; }
  .tb-compact-brand img { width: 56px !important; max-width: 56px !important; }
  .tb-compact-brand .wp-block-site-title { font-size: 1.12rem !important; }
  .tb-category-cards .tb-card { min-height: 0; }
}


/* ===== v2.4 mobile navigation refinement ===== */
@media (max-width: 782px) {
  .tb-compact-nav .wp-block-navigation__responsive-container.is-menu-open {
    background: #F4F0E7 !important;
    color: #2F302B !important;
    padding: 28px 24px !important;
  }

  .tb-compact-nav .wp-block-navigation__responsive-container-content {
    width: 100%;
    min-height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-top: 86px !important;
  }

  .tb-compact-nav .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
  .tb-compact-nav .wp-block-navigation__responsive-container-content ul {
    width: 100%;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .tb-compact-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item,
  .tb-compact-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
    width: auto !important;
    margin: 0 !important;
    text-align: center !important;
    justify-content: center !important;
  }

  .tb-compact-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
    display: inline-flex !important;
    font-size: 1.18rem !important;
    line-height: 1.25 !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    color: #2F302B !important;
    padding: 4px 10px !important;
  }

  .tb-compact-nav .wp-block-navigation__responsive-container-content .current-menu-item > .wp-block-navigation-item__content,
  .tb-compact-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content:hover,
  .tb-compact-nav .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content:focus {
    color: #858B68 !important;
  }

  .tb-compact-nav .wp-block-navigation__responsive-container-close {
    top: 24px !important;
    right: 24px !important;
  }

  .tb-compact-nav .wp-block-navigation__responsive-container-close svg,
  .tb-compact-nav .wp-block-navigation__responsive-container-open svg {
    width: 30px;
    height: 30px;
  }
}


/* Compact footer — v2.8 */
.tb-site-footer .wp-block-site-title { margin-bottom: 4px; }
.tb-site-footer p { margin-top: 5px; margin-bottom: 5px; line-height: 1.45; }
.tb-site-footer h4 { margin-top: 0; margin-bottom: 9px; font-size: .92rem; }
.tb-site-footer .wp-block-navigation { gap: 4px; }
.tb-site-footer .wp-block-navigation-item { line-height: 1.3; }
.tb-site-footer .wp-block-navigation-item__content { font-size: .88rem; }
.tb-site-footer .wp-block-separator { margin-top: 18px; margin-bottom: 12px; opacity: .28; }
.tb-site-footer .tb-footer-columns { margin-bottom: 8px; }
@media (max-width: 781px) {
  .tb-site-footer { padding-top: 24px !important; padding-bottom: 16px !important; }
  .tb-site-footer .wp-block-columns { gap: 14px; }
  .tb-site-footer h4 { margin-bottom: 6px; }
}
