/*
Theme Name: Bless Nom
Theme URI: https://blessnom.com/
Author: Bless Nom
Author URI: https://blessnom.com/
Description: A clean, fast, SEO-friendly blogging theme for name ideas, usernames and inspiration lists. Magazine layout with a centred logo, pink navigation, 3-post featured row, 2-column post grid with a right sidebar, Latest Articles, You May Have Missed, and a black footer. Fully editable in the WordPress Site Editor (Appearance > Editor) — every section, colour, font and menu can be changed without code. Works with your existing categories, pages and posts.
Requires at least: 6.2
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.2.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bless-nom
Tags: blog, news, two-columns, right-sidebar, custom-colors, custom-menu, custom-logo, featured-images, full-site-editing, block-patterns, block-styles, threaded-comments, translation-ready, wide-blocks
*/

/* ============================================================
   Bless Nom — frontend styles
   Most colours / fonts are also in theme.json so they can be
   changed in Appearance > Editor > Styles. The CSS below is
   the magazine layout: cards, badges, search, pagination,
   sidebar and footer, exactly as in the reference design.
   ============================================================ */

:root{
  --bless-pink:#e84393;
  --bless-pink-dark:#d63384;
  --bless-orange:#ff7a1a;
  --bless-orange-dark:#f97316;
  --bless-green:#16a34a;
  --bless-green-dark:#15803d;
  --bless-ink:#1f2937;
  --bless-muted:#6b7280;
  --bless-border:#ececec;
  --bless-bg:#ffffff;
  --bless-soft:#f8f8f8;
}

body{
  background:#fff;
  color:var(--bless-ink);
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{ color:var(--bless-pink); }
a:hover{ color:var(--bless-pink-dark); }
h1,h2,h3,h4,h5,h6{ font-family:"Poppins",Inter,Arial,sans-serif; line-height:1.25; }

/* ---------- Header ---------- */
.bless-header{ border-top:3px solid var(--bless-orange); background:#fff; }
.bless-header-top{ padding:22px 0 10px; text-align:center; }
.bless-header-top .wp-block-site-logo{ margin:0 auto; }
.bless-header-top .wp-block-site-title{ margin:6px 0 0; }
.bless-header-top .wp-block-site-title a{
  font-family:"Poppins",Arial,sans-serif; font-weight:800; font-size:42px;
  letter-spacing:-.5px; color:var(--bless-pink); text-decoration:none; line-height:1;
}
.bless-header-top .wp-block-site-title a span{ color:var(--bless-orange); }
.bless-header-top .wp-block-site-tagline{ color:var(--bless-muted); font-size:14px; margin-top:4px; }
.bless-nav-wrap{ border-top:1px solid #f3d9c8; border-bottom:1px solid #eee; padding:2px 0; }
.bless-nav{ justify-content:center !important; }
.bless-nav .wp-block-navigation-item__content{
  color:var(--bless-pink) !important; font-weight:700; font-size:13px;
  letter-spacing:.4px; text-transform:uppercase; padding:10px 14px !important;
}
.bless-nav .wp-block-navigation-item__content:hover{ color:var(--bless-pink-dark) !important; }
.bless-nav .wp-block-navigation-item.current-menu-item .wp-block-navigation-item__content,
.bless-nav .wp-block-navigation-item.current_page_item .wp-block-navigation-item__content{ color:var(--bless-orange) !important; }
/* NEW badge on the last menu item — add class "is-new" to any menu link in the Editor */
.bless-nav .is-new > .wp-block-navigation-item__content{ position:relative; padding-right:34px !important; }
.bless-nav .is-new > .wp-block-navigation-item__content::after{
  content:"NEW"; position:absolute; top:2px; right:0; background:var(--bless-orange);
  color:#fff; font-size:8px; font-weight:800; letter-spacing:.5px; padding:2px 4px; border-radius:2px;
}

/* ---------- Post cards (featured, grid, missed) ---------- */
.bless-card{
  background:#fff; border:1px solid var(--bless-border); border-radius:4px;
  overflow:hidden; height:100%; display:flex; flex-direction:column;
  transition:box-shadow .2s ease, transform .2s ease;
}
.bless-card:hover{ box-shadow:0 10px 30px rgba(0,0,0,.08); transform:translateY(-2px); }
.bless-card .wp-block-post-featured-image{ margin:0; overflow:hidden; }
.bless-card .wp-block-post-featured-image img{
  width:100%; height:100%; object-fit:cover; aspect-ratio:16/10; display:block;
  transition:transform .4s ease;
}
.bless-card:hover .wp-block-post-featured-image img{ transform:scale(1.04); }
.bless-card-body{ padding:18px 18px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.bless-card .wp-block-post-title{ margin:0; }
.bless-card .wp-block-post-title a{
  color:var(--bless-ink); text-decoration:none; font-weight:700; font-size:19px; line-height:1.35;
}
.bless-card .wp-block-post-title a:hover{ color:var(--bless-pink); }
/* Featured cards: slightly larger titles */
.bless-featured .bless-card .wp-block-post-title a{ font-size:20px; }

/* Category badge — colour is set by JS from the category name
   (Animal = green, Funny = dark green, Aesthetic = pink, default = pink).
   If JS is off, every badge is pink, which is still correct. */
.bless-card .taxonomy-category{ margin:0; }
.bless-card .taxonomy-category a{
  display:inline-block; background:var(--bless-pink); color:#fff !important;
  font-size:11px; font-weight:700; letter-spacing:.6px; text-transform:uppercase;
  text-decoration:none; padding:5px 9px; border-radius:2px;
}
.bless-card .taxonomy-category a[data-cat="animal"]{ background:var(--bless-green); }
.bless-card .taxonomy-category a[data-cat="funny"]{ background:var(--bless-green-dark); }
.bless-card .taxonomy-category a[data-cat="aesthetic"]{ background:var(--bless-pink); }
.bless-card .taxonomy-category a[data-cat="nick"]{ background:var(--bless-orange); }

.bless-meta{
  display:flex; flex-wrap:wrap; gap:6px 14px; align-items:center;
  color:var(--bless-muted); font-size:12.5px;
}
.bless-meta a{ color:var(--bless-muted); text-decoration:none; }
.bless-meta a:hover{ color:var(--bless-pink); }
.bless-meta .wp-block-post-author-name,
.bless-meta .wp-block-post-date,
.bless-meta .wp-block-post-comments-count{ font-size:12.5px; }
.bless-card .wp-block-post-excerpt{ margin:4px 0 0; color:#4b5563; font-size:14.5px; line-height:1.65; }
.bless-card .wp-block-post-excerpt__excerpt{ margin:0; }
.bless-readmore{ margin-top:auto; padding-top:8px; }
.bless-readmore a, .wp-block-read-more{
  color:var(--bless-ink) !important; font-weight:700; font-size:13.5px; text-decoration:none;
}
.bless-readmore a:hover, .wp-block-read-more:hover{ color:var(--bless-pink) !important; }

/* ---------- Sidebar ---------- */
.bless-sidebar{ display:flex; flex-direction:column; gap:28px; }
.bless-sidebar-box{ border:1px solid var(--bless-border); padding:18px; border-radius:4px; background:#fff; }
.bless-sidebar-box h2, .bless-widget-title{
  font-size:18px; font-weight:800; letter-spacing:.3px; text-transform:uppercase;
  margin:0 0 16px; padding-bottom:10px; border-bottom:2px solid var(--bless-orange);
}
/* Search — orange button like the reference */
.wp-block-search__button, .bless-sidebar .wp-block-search__button{
  background:var(--bless-orange) !important; color:#fff !important; border:1px solid var(--bless-orange) !important;
  font-weight:700; font-size:13px; letter-spacing:.5px; padding:10px 16px; border-radius:2px;
}
.wp-block-search__input{ border:1px solid #ddd !important; padding:10px 12px !important; font-size:14px; }
/* Sidebar Latest Articles: small 2-col cards */
.bless-latest .bless-card-body{ padding:10px 10px 12px; }
.bless-latest .bless-card .wp-block-post-title a{ font-size:13.5px; line-height:1.4; }
.bless-latest .bless-card .taxonomy-category a{ font-size:9px; padding:3px 6px; }
.bless-latest .bless-card .wp-block-post-featured-image img{ aspect-ratio:16/10; }
.bless-sidebar .wp-block-categories-list, .bless-sidebar .wp-block-page-list{ list-style:none; padding:0; margin:0; }
.bless-sidebar .wp-block-categories-list li, .bless-sidebar .wp-block-page-list li{ padding:7px 0; border-bottom:1px solid #f1f1f1; }
.bless-sidebar .wp-block-categories-list a, .bless-sidebar .wp-block-page-list a{ color:var(--bless-ink); text-decoration:none; }
.bless-sidebar .wp-block-categories-list a:hover{ color:var(--bless-pink); }

/* ---------- Section headings ---------- */
.bless-section-title{
  font-size:20px; font-weight:800; text-transform:uppercase; letter-spacing:.3px;
  margin:0 0 18px; padding-bottom:12px; border-bottom:2px solid var(--bless-orange);
  display:flex; justify-content:space-between; align-items:center;
}
.bless-section-title::after{ content:"● ○ ○ ○ ○"; color:var(--bless-orange); font-size:11px; letter-spacing:6px; }

/* ---------- Pagination ---------- */
.wp-block-query-pagination{ justify-content:flex-start; gap:6px; margin-top:28px; }
.wp-block-query-pagination .wp-block-query-pagination-numbers a,
.wp-block-query-pagination .wp-block-query-pagination-numbers span,
.wp-block-query-pagination-next, .wp-block-query-pagination-previous{
  display:inline-block; border:1px solid #e5e7eb; padding:7px 12px; font-size:13px;
  font-weight:600; color:var(--bless-ink); text-decoration:none; border-radius:2px; background:#fff;
}
.wp-block-query-pagination .wp-block-query-pagination-numbers .current,
.wp-block-query-pagination .wp-block-query-pagination-numbers a:hover{
  background:var(--bless-orange); border-color:var(--bless-orange); color:#fff;
}

/* ---------- Ranking sections: topic hub, FAQ, table of contents ---------- */
.bless-topics .wp-block-categories-list{
  list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:10px;
}
.bless-topics .wp-block-categories-list li{ margin:0; }
.bless-topics .wp-block-categories-list a{
  display:inline-block; border:1.5px solid var(--bless-pink); color:var(--bless-pink);
  background:#fff; font-weight:700; font-size:13.5px; text-decoration:none;
  padding:8px 14px; border-radius:20px;
}
.bless-topics .wp-block-categories-list a:hover{
  background:var(--bless-pink); color:#fff;
}
.bless-faq h3{ font-size:18px; margin:22px 0 6px; }
.bless-faq p{ color:#4b5563; line-height:1.7; margin:0 0 6px; }
.bless-toc{
  background:#fff7f0; border:1px solid #f3d9c8; border-radius:8px;
  padding:18px 22px; margin:0 0 28px;
}
.bless-toc h2, .bless-toc-title{ font-size:17px; font-weight:800; margin:0 0 10px; }
.bless-toc ul{ margin:0; padding-left:20px; line-height:1.9; }
.bless-toc a{ color:var(--bless-ink); text-decoration:none; font-size:15px; }
.bless-toc a:hover{ color:var(--bless-pink); text-decoration:underline; }

/* ---------- Single post & pages ---------- */
.bless-single-title{ font-size:36px; font-weight:800; line-height:1.2; }
.single .wp-block-post-featured-image img, .bless-single-image img{ border-radius:6px; }
.wp-block-post-content{ font-size:17px; line-height:1.8; color:#374151; }
.wp-block-post-content h2{ font-size:28px; margin-top:36px; }
.wp-block-post-content h3{ font-size:22px; margin-top:28px; }
.wp-block-post-content a{ text-decoration:underline; text-underline-offset:3px; }
.wp-block-post-content img{ border-radius:6px; }
/* Breadcrumbs (added by the theme, see functions.php) */
.bless-breadcrumbs{ font-size:13px; color:var(--bless-muted); margin-bottom:14px; }
.bless-breadcrumbs a{ color:var(--bless-muted); text-decoration:none; }
.bless-breadcrumbs a:hover{ color:var(--bless-pink); }

/* ---------- Footer ---------- */
.bless-footer{ background:#0b0b0b; color:#d1d5db; margin-top:0; }
.bless-footer a{ color:#e5e7eb; text-decoration:none; }
.bless-footer a:hover{ color:var(--bless-orange); }
.bless-footer h2, .bless-footer h3{
  color:#fff; font-size:18px; font-weight:800; text-transform:uppercase; letter-spacing:.4px; margin-bottom:16px;
}
.bless-footer .wp-block-site-title a{ color:#fff; }
.bless-footer-logo{ background:#fff; border-radius:50%; width:120px; height:120px; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; overflow:hidden; }
.bless-footer-logo img{ max-width:90px; height:auto; }
.bless-footer .wp-block-categories-list, .bless-footer .wp-block-page-list{ list-style:none; padding:0; margin:0; }
.bless-footer .wp-block-categories-list li, .bless-footer .wp-block-page-list li{
  padding:7px 0; border-bottom:1px solid #222; font-size:14px;
}
.bless-footer .wp-block-categories-list li::before, .bless-footer .wp-block-page-list li::before{
  content:"▸ "; color:var(--bless-orange);
}
.bless-footer-bottom{
  border-top:1px solid #222; padding:16px 0; font-size:13.5px; color:#9ca3af;
  display:flex; flex-wrap:wrap; gap:8px; justify-content:space-between; align-items:center;
}
.bless-footer .wp-block-social-links .wp-block-social-link{ background:#222 !important; }
.bless-footer .wp-block-social-links a{ color:#fff !important; }

/* Back to top */
.bless-to-top{
  position:fixed; right:18px; bottom:18px; z-index:50; width:42px; height:42px;
  background:var(--bless-orange); color:#fff; border:0; border-radius:3px;
  font-size:20px; line-height:1; cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,.2); display:none;
}
.bless-to-top.is-visible{ display:block; }

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .bless-header-top .wp-block-site-title a{ font-size:32px; }
  .bless-nav{ justify-content:flex-start !important; }
  .bless-single-title{ font-size:28px; }
}
@media (max-width: 600px){
  .bless-card .wp-block-post-title a{ font-size:17px; }
  .bless-section-title::after{ display:none; }
  .bless-footer-bottom{ justify-content:center; text-align:center; }
}

/* Editor: keep the Site Editor preview close to the front end */
.editor-styles-wrapper .bless-card{ border:1px solid #ececec; }
