/*
Theme Name: Better Outlooks
Theme URI: https://betteroutlooks.example.com/
Author: Better Outlooks
Author URI: https://betteroutlooks.example.com/
Description: A slow-living editorial magazine theme. Fully editable via the Customizer and page meta fields — hero, category sections, newsletter, footer, and legal pages can all be edited without touching code. Curated for Fashion, Lifestyle, Travel and Beauty stories.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: better-outlooks
Tags: blog, magazine, editorial, custom-colors, custom-menu, featured-images, translation-ready, two-columns, right-sidebar
*/

/* =============================================================
   Better Outlooks — Design System
   Colors and fonts mirror the original React/Tailwind build.
   ============================================================= */

:root {
  --bo-beige:   #F3F6F4; /* page background (botanical sage linen) */
  --bo-sand:    #E4EFE6; /* soft sage-green accent tint            */
  --bo-charcoal:#111D13; /* rich deep forest charcoal (text/header)*/
  --bo-gold:    #c5a880; /* light golden-brown highlight           */
  --bo-forest:  #415D43; /* forest green (borders/quiet accents)   */
  --bo-banner:  #E9EFEA; /* category banner background              */
  --bo-cream:   #FAF8F5; /* footer text tint                       */

  --bo-font-sans:  "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;
  --bo-font-serif: "Playfair Display", ui-serif, Georgia, Cambria, serif;
  --bo-font-mono:  "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;

  --bo-maxw: 80rem;      /* 7xl */
  --bo-radius: 1.5rem;   /* rounded-3xl */
}

*, *::before, *::after { box-sizing: border-box; }

html { background-color: var(--bo-beige); }

body {
  margin: 0;
  background-color: var(--bo-beige);
  color: var(--bo-charcoal);
  font-family: var(--bo-font-sans);
  font-weight: 400;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

::selection { background-color: var(--bo-sand); color: var(--bo-charcoal); }

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

.bo-container { max-width: var(--bo-maxw); margin-inline: auto; padding-inline: 1rem; }
@media (min-width:640px){ .bo-container{ padding-inline:1.5rem; } }
@media (min-width:1024px){ .bo-container{ padding-inline:2rem; } }

.bo-site-main { flex: 1 1 auto; }

/* Screen reader only */
.screen-reader-text{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }
.skip-link{ position:absolute; left:-9999px; top:0; z-index:100000; background:#fff; color:var(--bo-charcoal); padding:.75rem 1rem; border-radius:.5rem; }
.skip-link:focus{ left:1rem; top:1rem; }

/* =============================================================
   Buttons & pills
   ============================================================= */
.bo-btn{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  padding:.75rem 1.5rem; border-radius:9999px; cursor:pointer;
  transition:all .3s ease; border:1px solid transparent; line-height:1;
}
.bo-btn-dark{ background:var(--bo-charcoal); color:#fff; box-shadow:0 1px 2px rgba(0,0,0,.06); }
.bo-btn-dark:hover{ background:var(--bo-gold); color:#fff; }
.bo-btn-light{ background:#fff; color:var(--bo-charcoal); border-color:rgba(65,93,67,.15); }
.bo-btn-light:hover{ background:var(--bo-banner); border-color:var(--bo-gold); }
.bo-btn-gold{ background:var(--bo-gold); color:#fff; }
.bo-btn-gold:hover{ background:var(--bo-charcoal); color:#fff; }
.bo-btn .bo-arrow{ width:.9rem; height:.9rem; transition:transform .3s ease; }
.bo-btn:hover .bo-arrow{ transform:translateX(.25rem); }

.bo-eyebrow{
  font-size:.625rem; font-weight:700; text-transform:uppercase; letter-spacing:.25em;
  color:var(--bo-gold); display:inline-block;
}

/* =============================================================
   Header
   ============================================================= */
.bo-header{
  position:sticky; top:0; z-index:50;
  background:var(--bo-charcoal);
  border-bottom:1px solid rgba(65,93,67,.20);
}
.bo-header-inner{ display:flex; justify-content:space-between; align-items:center; height:5rem; }
.bo-brand{ display:inline-flex; align-items:center; gap:.375rem; }
.bo-brand-name{
  font-family:var(--bo-font-serif); font-size:1.5rem; font-weight:700; letter-spacing:-.02em;
  color:#fff; transition:color .2s ease;
}
.bo-brand:hover .bo-brand-name{ color:var(--bo-gold); }
.bo-brand .bo-leaf{ width:1rem; height:1rem; color:var(--bo-gold); transform:rotate(12deg); transition:transform .3s ease; }
.bo-brand:hover .bo-leaf{ transform:rotate(45deg); }

.bo-nav{ display:none; gap:2rem; }
@media (min-width:768px){ .bo-nav{ display:flex; } }
.bo-nav a{
  position:relative; padding:.5rem 0; font-size:.75rem; font-weight:500;
  text-transform:uppercase; letter-spacing:.03em; color:rgba(255,255,255,.6); transition:color .2s;
}
.bo-nav a:hover{ color:#fff; }
.bo-nav a.current-menu-item, .bo-nav a.current_page_item, .bo-nav a.bo-active{ color:#fff; }
.bo-nav a.current-menu-item::after, .bo-nav a.current_page_item::after, .bo-nav a.bo-active::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--bo-gold); border-radius:9999px;
}

.bo-header-controls{ display:none; align-items:center; gap:1.5rem; }
@media (min-width:768px){ .bo-header-controls{ display:flex; } }
.bo-search{ position:relative; }
.bo-search input{
  width:12rem; padding:.5rem 1rem .5rem 2.5rem; font-size:.75rem;
  background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.10);
  border-radius:9999px; color:#fff; font-family:var(--bo-font-sans);
  transition:all .2s ease;
}
@media (min-width:1024px){ .bo-search input{ width:16rem; } }
.bo-search input::placeholder{ color:rgba(255,255,255,.4); }
.bo-search input:focus{ outline:none; border-color:var(--bo-gold); box-shadow:0 0 0 1px var(--bo-gold); }
.bo-search .bo-search-icon{ position:absolute; left:.85rem; top:50%; transform:translateY(-50%); width:.9rem; height:.9rem; color:rgba(255,255,255,.5); }

.bo-mobile-toggle{ display:inline-flex; padding:.5rem; color:rgba(255,255,255,.8); background:none; border:none; cursor:pointer; }
@media (min-width:768px){ .bo-mobile-toggle{ display:none; } }
.bo-mobile-toggle:hover{ color:#fff; }
.bo-mobile-toggle svg{ width:1.5rem; height:1.5rem; }
.bo-mobile-toggle .bo-icon-close{ display:none; }
.bo-mobile-toggle.is-open .bo-icon-menu{ display:none; }
.bo-mobile-toggle.is-open .bo-icon-close{ display:block; }

.bo-mobile-drawer{
  display:none; background:var(--bo-charcoal); border-bottom:1px solid rgba(65,93,67,.2);
  padding:.5rem 1rem 1.5rem;
}
.bo-mobile-drawer.is-open{ display:block; }
@media (min-width:768px){ .bo-mobile-drawer{ display:none !important; } }
.bo-mobile-drawer .bo-search input{ width:100%; margin-top:.5rem; }
.bo-mobile-nav{ display:flex; flex-direction:column; gap:.5rem; padding-top:1rem; }
.bo-mobile-nav .bo-mobile-label{ font-size:.625rem; text-transform:uppercase; letter-spacing:.15em; color:rgba(255,255,255,.4); font-weight:700; padding:0 .75rem; }
.bo-mobile-nav a{
  padding:.625rem .75rem; font-size:.875rem; font-weight:500; color:rgba(255,255,255,.7);
  border-radius:.75rem; transition:all .2s;
}
.bo-mobile-nav a:hover, .bo-mobile-nav a.current-menu-item, .bo-mobile-nav a.current_page_item{ background:rgba(255,255,255,.08); color:#fff; }

/* =============================================================
   Hero
   ============================================================= */
.bo-hero{ padding:2rem 0; overflow:hidden; }
@media (min-width:768px){ .bo-hero{ padding:3rem 0; } }
.bo-hero-card{
  position:relative; background:#fff; border-radius:var(--bo-radius); overflow:hidden;
  border:1px solid rgba(65,93,67,.15); padding:1.5rem;
  box-shadow:0 8px 30px rgba(65,93,67,.04);
}
@media (min-width:640px){ .bo-hero-card{ padding:2rem; } }
@media (min-width:1024px){ .bo-hero-card{ padding:3rem; } }
.bo-hero-glow{ position:absolute; top:0; left:25%; width:20rem; height:20rem; background:rgba(65,93,67,.05); border-radius:9999px; filter:blur(60px); pointer-events:none; }
.bo-hero-grid{ display:grid; grid-template-columns:1fr; gap:2rem; align-items:center; position:relative; z-index:1; }
@media (min-width:1024px){ .bo-hero-grid{ grid-template-columns:repeat(12,1fr); gap:3rem; } }
.bo-hero-media{ position:relative; overflow:hidden; border-radius:1rem; aspect-ratio:16/10; box-shadow:0 1px 2px rgba(0,0,0,.05); }
@media (min-width:1024px){ .bo-hero-media{ grid-column:span 7; } }
.bo-hero-media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.bo-hero-media:hover img{ transform:scale(1.05); }
.bo-hero-body{ display:flex; flex-direction:column; align-items:flex-start; gap:1rem; }
@media (min-width:1024px){ .bo-hero-body{ grid-column:span 5; } }
.bo-hero-title{
  font-family:var(--bo-font-serif); font-size:1.875rem; font-weight:600; line-height:1.15; letter-spacing:-.02em; margin:0;
  color:var(--bo-charcoal);
}
@media (min-width:640px){ .bo-hero-title{ font-size:2.25rem; } }
@media (min-width:1024px){ .bo-hero-title{ font-size:3rem; } }
.bo-hero-title .bo-hl{ color:var(--bo-gold); }
.bo-hero-sub{ font-size:.95rem; color:rgba(17,29,19,.7); font-weight:300; line-height:1.7; margin:0; }

/* =============================================================
   Section headings (category rows on home)
   ============================================================= */
.bo-sections{ display:flex; flex-direction:column; gap:4rem; padding:2rem 0; }
.bo-cat-section{ scroll-margin-top:6rem; }
.bo-cat-head{
  display:flex; flex-direction:column; gap:1rem; padding-bottom:1rem; margin-bottom:.5rem;
  border-bottom:1px solid rgba(65,93,67,.15);
}
@media (min-width:768px){ .bo-cat-head{ flex-direction:row; align-items:flex-end; justify-content:space-between; } }
.bo-cat-title{
  font-family:var(--bo-font-serif); font-size:1.5rem; font-weight:600; letter-spacing:-.02em; margin:0;
  color:var(--bo-charcoal); display:flex; align-items:center;
}
@media (min-width:640px){ .bo-cat-title{ font-size:1.875rem; } }
@media (min-width:1024px){ .bo-cat-title{ font-size:2.25rem; } }
.bo-cat-title .bo-dot{ color:var(--bo-gold); margin-right:.5rem; }
.bo-cat-sub{ font-size:.8rem; color:rgba(17,29,19,.6); font-weight:300; margin:.25rem 0 0; max-width:36rem; }
@media (min-width:640px){ .bo-cat-sub{ font-size:.875rem; } }
.bo-explore-btn{
  align-self:flex-start; font-size:.625rem; font-weight:600; color:var(--bo-gold);
  text-transform:uppercase; letter-spacing:.2em; display:inline-flex; align-items:center; gap:.375rem;
  border:1px solid rgba(65,93,67,.15); padding:.5rem 1rem; border-radius:9999px; background:#fff; transition:all .3s;
}
@media (min-width:768px){ .bo-explore-btn{ align-self:auto; } }
.bo-explore-btn:hover{ color:var(--bo-charcoal); border-color:var(--bo-gold); background:var(--bo-banner); }

/* Grid helpers per category layout */
.bo-grid{ display:grid; gap:1.5rem; }
@media (min-width:640px){ .bo-grid{ gap:2rem; } }
.bo-grid-fashion{ grid-template-columns:1fr; align-items:stretch; }
@media (min-width:1024px){ .bo-grid-fashion{ grid-template-columns:repeat(3,1fr); } }
.bo-grid-fashion .bo-col-2{ grid-column:span 1; }
@media (min-width:1024px){ .bo-grid-fashion .bo-col-2{ grid-column:span 2; } }
.bo-grid-fashion .bo-col-list{ display:flex; flex-direction:column; justify-content:space-between; gap:1rem; }

.bo-grid-3{ grid-template-columns:1fr; }
@media (min-width:640px){ .bo-grid-3{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:768px){ .bo-grid-3{ grid-template-columns:repeat(3,1fr); } }
.bo-grid-2{ grid-template-columns:1fr; }
@media (min-width:1024px){ .bo-grid-2{ grid-template-columns:repeat(2,1fr); } }
.bo-stack{ display:flex; flex-direction:column; gap:1.5rem; }
@media (min-width:640px){ .bo-stack{ gap:2rem; } }

/* =============================================================
   Post cards
   ============================================================= */
.bo-card{
  position:relative; display:flex; flex-direction:column; background:#fff; border-radius:.75rem;
  border:1px solid rgba(65,93,67,.12); overflow:hidden; height:100%;
  transition:all .3s ease; text-align:left;
}
.bo-card:hover{ border-color:rgba(197,168,128,.4); box-shadow:0 8px 30px rgba(65,93,67,.03); }
.bo-card-media{ position:relative; overflow:hidden; background:rgba(228,239,230,.3); }
.bo-card-media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s ease; }
.bo-card:hover .bo-card-media img{ transform:scale(1.05); }
.bo-card-cat{
  position:absolute; top:1rem; left:1rem; z-index:2;
  background:rgba(255,255,255,.95); color:rgba(17,29,19,.85);
  padding:.25rem .625rem; border-radius:.25rem; font-size:.5625rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.15em; box-shadow:0 1px 2px rgba(0,0,0,.06);
}
.bo-card-body{ flex:1 1 auto; display:flex; flex-direction:column; padding:1rem; gap:.375rem; }
@media (min-width:640px){ .bo-card-body{ padding:1.25rem; } }
.bo-card-title{
  font-family:var(--bo-font-serif); font-weight:500; letter-spacing:-.01em; line-height:1.35;
  color:var(--bo-charcoal); transition:color .2s; margin:0;
}
.bo-card:hover .bo-card-title{ color:var(--bo-gold); }
.bo-card-excerpt{ font-size:.75rem; color:rgba(17,29,19,.6); font-weight:300; line-height:1.6; margin:0; }
.bo-card-author{
  display:flex; align-items:center; gap:.375rem; font-size:.6875rem; color:rgba(17,29,19,.55);
  font-weight:300; margin-top:.5rem; padding-top:.5rem; border-top:1px solid rgba(65,93,67,.1);
}
.bo-card-author strong{ font-weight:500; color:var(--bo-charcoal); }

.bo-clamp-2{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.bo-clamp-3{ display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.bo-clamp-4{ display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.bo-clamp-5{ display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }

/* Layout variants */
.bo-card--standard .bo-card-media{ aspect-ratio:4/3; }
.bo-card--standard .bo-card-title{ font-size:.9rem; }
@media (min-width:640px){ .bo-card--standard .bo-card-title{ font-size:1rem; } }

.bo-card--featured .bo-card-media{ aspect-ratio:16/10; }
.bo-card--featured .bo-card-body{ justify-content:space-between; gap:.75rem; }
.bo-card--featured .bo-card-title{ font-size:1rem; }
@media (min-width:640px){ .bo-card--featured .bo-card-title{ font-size:1.125rem; } }

.bo-card--list{ flex-direction:row; align-items:center; gap:1rem; padding:.875rem; border-radius:.5rem; }
.bo-card--list .bo-card-media{ width:6rem; height:6rem; flex:0 0 auto; border-radius:.375rem; }
@media (min-width:640px){ .bo-card--list .bo-card-media{ width:7rem; height:7rem; } }
.bo-card--list .bo-card-body{ padding:0; justify-content:center; }
.bo-card--list .bo-card-title{ font-size:.8rem; }
@media (min-width:640px){ .bo-card--list .bo-card-title{ font-size:.875rem; } }
.bo-card--list .bo-inline-cat{ background:rgba(228,239,230,.8); color:rgba(17,29,19,.8); font-size:.5rem; letter-spacing:.12em;
  text-transform:uppercase; font-weight:600; padding:.1rem .4rem; border-radius:.25rem; align-self:flex-start; margin-bottom:.35rem; display:inline-block; }

.bo-card--horizontal{ flex-direction:column; }
@media (min-width:768px){ .bo-card--horizontal{ flex-direction:row; height:290px; } }
.bo-card--horizontal .bo-card-media{ width:100%; aspect-ratio:1/1; }
@media (min-width:768px){ .bo-card--horizontal .bo-card-media{ width:290px; height:100%; aspect-ratio:auto; flex:0 0 auto; } }
.bo-card--horizontal .bo-card-body{ justify-content:center; gap:.5rem; }
.bo-card--horizontal .bo-card-title{ font-size:.9rem; }
@media (min-width:640px){ .bo-card--horizontal .bo-card-title{ font-size:1rem; } }
.bo-card--horizontal .bo-card-excerpt{ white-space:pre-line; }

.bo-card--banner{ flex-direction:column; }
@media (min-width:1024px){ .bo-card--banner{ flex-direction:row; } }
.bo-card--banner .bo-card-media{ width:100%; aspect-ratio:16/10; min-height:240px; }
@media (min-width:1024px){ .bo-card--banner .bo-card-media{ width:42%; aspect-ratio:auto; height:auto; min-height:0; flex:0 0 auto; } }
.bo-card--banner .bo-card-body{ padding:1.5rem; justify-content:center; }
@media (min-width:1024px){ .bo-card--banner .bo-card-body{ padding:2rem; } }
.bo-card--banner .bo-card-title{ font-size:1.125rem; }
@media (min-width:1024px){ .bo-card--banner .bo-card-title{ font-size:1.25rem; } }
.bo-card--banner .bo-banner-cat{ font-size:.625rem; font-family:var(--bo-font-mono); letter-spacing:.15em; text-transform:uppercase; color:var(--bo-charcoal); font-weight:600; }
.bo-card--banner .bo-banner-author{
  display:flex; align-items:center; gap:.75rem; margin-top:1rem; padding-top:1rem; border-top:1px solid rgba(65,93,67,.1);
}
.bo-card--banner .bo-banner-author img{ width:2.125rem; height:2.125rem; border-radius:9999px; object-fit:cover; border:1px solid rgba(65,93,67,.12); }
.bo-card--banner .bo-banner-author .n{ font-size:.75rem; font-weight:600; color:var(--bo-charcoal); }
.bo-card--banner .bo-banner-author .r{ font-size:.5625rem; text-transform:uppercase; letter-spacing:.15em; color:rgba(17,29,19,.5); font-weight:500; }
.bo-card--banner .bo-banner-author .b{ font-size:.6875rem; color:rgba(17,29,19,.6); font-style:italic; font-weight:300; }

/* =============================================================
   Category / archive banner
   ============================================================= */
.bo-thematic{ padding:3rem 0; background:var(--bo-banner); border-bottom:1px solid rgba(65,93,67,.15); margin-bottom:2rem; }
.bo-thematic-top{
  display:flex; flex-direction:column; gap:1rem; padding-bottom:.75rem; border-bottom:1px solid rgba(65,93,67,.1);
}
@media (min-width:640px){ .bo-thematic-top{ flex-direction:row; align-items:center; justify-content:space-between; } }
.bo-collection-tag{ display:inline-flex; align-items:center; gap:.5rem; color:var(--bo-gold); }
.bo-collection-tag .m{ font-family:var(--bo-font-mono); font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; }
.bo-collection-tag .line{ height:1px; width:1.5rem; background:rgba(197,168,128,.3); }
.bo-collection-tag .n{ font-size:.625rem; font-weight:600; text-transform:uppercase; letter-spacing:.25em; }
.bo-thematic-title{ font-family:var(--bo-font-serif); font-size:1.5rem; font-weight:600; letter-spacing:-.02em; color:var(--bo-charcoal); margin:1rem 0 0; }
@media (min-width:640px){ .bo-thematic-title{ font-size:1.875rem; } }
@media (min-width:1024px){ .bo-thematic-title{ font-size:2.25rem; } }
.bo-thematic-sub{ font-size:.85rem; color:rgba(17,29,19,.6); font-weight:300; margin:.5rem 0 0; max-width:42rem; }

/* Empty state */
.bo-empty{
  padding:4rem 1rem; background:#fff; border:1px solid rgba(65,93,67,.15); border-radius:var(--bo-radius);
  text-align:center; max-width:32rem; margin:1.5rem auto; display:flex; flex-direction:column; gap:1rem; align-items:center;
}
.bo-empty h3{ font-family:var(--bo-font-serif); font-size:1.25rem; margin:0; }
.bo-empty p{ font-size:.85rem; color:rgba(17,29,19,.6); font-weight:300; max-width:24rem; margin:0; }

/* =============================================================
   Newsletter
   ============================================================= */
.bo-newsletter{ padding:4rem 0; background:var(--bo-beige); position:relative; overflow:hidden; }
@media (min-width:640px){ .bo-newsletter{ padding:5rem 0; } }
.bo-newsletter-card{
  background:var(--bo-charcoal); border-radius:var(--bo-radius); border:1px solid rgba(255,255,255,.05);
  padding:2rem; box-shadow:0 20px 40px rgba(0,0,0,.15); text-align:center; position:relative; overflow:hidden;
  max-width:56rem; margin-inline:auto;
}
@media (min-width:640px){ .bo-newsletter-card{ padding:3rem; } }
@media (min-width:768px){ .bo-newsletter-card{ padding:4rem; } }
.bo-newsletter .bo-mail-badge{ display:inline-flex; padding:.75rem; border-radius:9999px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); margin-bottom:.5rem; color:var(--bo-gold); }
.bo-newsletter h2{ font-family:var(--bo-font-serif); font-size:1.875rem; font-weight:400; color:#fff; letter-spacing:-.02em; margin:.5rem 0; }
@media (min-width:640px){ .bo-newsletter h2{ font-size:2.25rem; } }
.bo-newsletter h2 .bo-hl{ font-style:italic; color:var(--bo-gold); }
.bo-newsletter p{ max-width:36rem; margin:0 auto; font-size:.8rem; color:rgba(255,255,255,.75); font-weight:300; line-height:1.7; }
@media (min-width:640px){ .bo-newsletter p{ font-size:.8125rem; } }
.bo-newsletter form{ max-width:28rem; margin:1rem auto 0; display:flex; flex-direction:column; gap:.625rem; }
@media (min-width:640px){ .bo-newsletter form{ flex-direction:row; } }
.bo-newsletter input{
  flex:1 1 auto; padding:.75rem 1.25rem; font-size:.75rem; background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1); color:#fff; border-radius:9999px; transition:all .3s;
}
.bo-newsletter input::placeholder{ color:rgba(255,255,255,.3); }
.bo-newsletter input:focus{ outline:none; border-color:var(--bo-gold); box-shadow:0 0 0 1px var(--bo-gold); }
.bo-newsletter button{
  display:inline-flex; align-items:center; justify-content:center; gap:.375rem; white-space:nowrap;
  background:var(--bo-gold); color:#fff; padding:.75rem 1.75rem; border-radius:9999px; border:none; cursor:pointer;
  font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; transition:all .3s;
}
.bo-newsletter button:hover{ background:#fff; color:var(--bo-charcoal); }
.bo-newsletter .bo-fineprint{ font-size:.625rem; color:rgba(255,255,255,.4); font-weight:300; margin-top:.75rem; }
.bo-newsletter .bo-fineprint a{ color:var(--bo-gold); text-decoration:underline; }
.bo-newsletter .bo-success{ display:flex; align-items:center; gap:.875rem; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:1rem; padding:1.125rem 1.5rem; max-width:32rem; margin:1rem auto 0; color:rgba(255,255,255,.9); font-size:.8rem; text-align:left; }
.bo-newsletter .bo-success .ic{ display:flex; align-items:center; justify-content:center; width:1.75rem; height:1.75rem; border-radius:9999px; background:rgba(255,255,255,.1); color:var(--bo-gold); flex:0 0 auto; }

/* =============================================================
   Footer
   ============================================================= */
.bo-footer{ background:var(--bo-charcoal); color:var(--bo-cream); padding:3.5rem 0; margin-top:auto; border-top:1px solid rgba(65,93,67,.25); }
@media (min-width:640px){ .bo-footer{ padding:4rem 0; } }
.bo-footer-grid{ display:grid; grid-template-columns:1fr; gap:2rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.1); }
@media (min-width:768px){ .bo-footer-grid{ grid-template-columns:repeat(12,1fr); gap:3rem; } }
.bo-footer-brand{ }
@media (min-width:768px){ .bo-footer-brand{ grid-column:span 4; } }
.bo-footer-blurb{ font-size:.8125rem; color:rgba(250,248,245,.7); font-weight:300; max-width:20rem; line-height:1.7; margin:1rem 0; }
.bo-social{ display:flex; align-items:center; gap:.75rem; padding-top:.5rem; }
.bo-social a{ display:flex; align-items:center; justify-content:center; width:2.5rem; height:2.5rem; border-radius:9999px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.8); transition:all .2s; }
.bo-social a:hover{ background:rgba(255,255,255,.1); color:#fff; transform:scale(1.05); }
.bo-social svg{ width:1.1rem; height:1.1rem; }

.bo-footer-col{ }
@media (min-width:768px){ .bo-footer-col-3{ grid-column:span 3; } .bo-footer-col-2{ grid-column:span 2; } }
.bo-footer-h4{ font-size:.6875rem; font-weight:700; text-transform:uppercase; letter-spacing:.15em; color:var(--bo-gold); margin:0 0 1rem; }
.bo-footer-links{ display:flex; flex-direction:column; gap:.75rem; }
.bo-footer-links a{ font-size:.8125rem; color:rgba(250,248,245,.8); font-weight:500; transition:color .2s; }
.bo-footer-links a:hover{ color:var(--bo-gold); }

.bo-trustpilot{ display:flex; flex-direction:column; gap:1rem; align-items:flex-start; }
.bo-trustpilot-logo{ display:flex; align-items:center; gap:.5rem; }
.bo-trustpilot-logo svg{ width:2rem; height:2rem; color:#00b67a; fill:currentColor; }
.bo-trustpilot-logo span{ font-weight:600; font-size:1.5rem; letter-spacing:-.02em; color:#fff; }
.bo-trust-stars{ display:flex; align-items:center; gap:.375rem; }
.bo-trust-stars .box{ display:flex; align-items:center; justify-content:center; width:2rem; height:2rem; border-radius:4px; background:#00b67a; color:#fff; }
.bo-trust-stars .box svg{ width:1.1rem; height:1.1rem; fill:currentColor; }

.bo-appbadges{ display:flex; flex-direction:column; gap:.75rem; max-width:220px; }
.bo-appbadge{ display:flex; align-items:center; gap:.75rem; background:#0B1319; border:1px solid rgba(255,255,255,.1); border-radius:1rem; padding:.625rem 1rem; box-shadow:0 4px 6px rgba(0,0,0,.2); transition:all .3s; }
.bo-appbadge:hover{ background:#121E27; transform:scale(1.02); }
.bo-appbadge svg{ width:1.5rem; height:1.5rem; color:#fff; fill:currentColor; flex:0 0 auto; }
.bo-appbadge .sm{ display:block; font-size:.5rem; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.4); font-weight:600; }
.bo-appbadge .lg{ display:block; font-size:.875rem; font-weight:700; color:#fff; }

.bo-footer-bottom{ padding-top:1.5rem; display:flex; flex-direction:column; gap:1rem; align-items:center; text-align:center; font-size:.6875rem; color:rgba(250,248,245,.5); font-weight:300; }
@media (min-width:640px){ .bo-footer-bottom{ flex-direction:row; justify-content:space-between; text-align:left; } }

/* =============================================================
   Single post
   ============================================================= */
.bo-article{ max-width:56rem; margin-inline:auto; padding:2rem 0; width:100%; }
@media (min-width:640px){ .bo-article{ padding:3rem 0; } }
.bo-back{ display:inline-flex; align-items:center; gap:.5rem; font-size:.75rem; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:rgba(17,29,19,.7); margin-bottom:2rem; transition:color .2s; }
.bo-back:hover{ color:var(--bo-charcoal); }
.bo-article-cat{ display:flex; align-items:center; gap:.5rem; color:var(--bo-gold); font-size:.75rem; font-weight:700; text-transform:uppercase; letter-spacing:.25em; margin-bottom:1rem; }
.bo-article-title{ font-family:var(--bo-font-serif); font-size:1.875rem; font-weight:600; line-height:1.15; letter-spacing:-.02em; color:var(--bo-charcoal); margin:0 0 1.5rem; }
@media (min-width:640px){ .bo-article-title{ font-size:2.25rem; } }
@media (min-width:1024px){ .bo-article-title{ font-size:3rem; } }
.bo-article-lead{ font-family:var(--bo-font-serif); font-size:1rem; color:rgba(17,29,19,.7); font-weight:300; font-style:italic; line-height:1.7; border-left:2px solid var(--bo-gold); padding-left:1rem; margin:0 0 2rem; }
@media (min-width:640px){ .bo-article-lead{ font-size:1.125rem; padding-left:1.5rem; } }
@media (min-width:1024px){ .bo-article-lead{ font-size:1.25rem; } }
.bo-article-meta{ display:flex; flex-wrap:wrap; gap:1rem; font-size:.75rem; color:rgba(17,29,19,.6); margin-bottom:1.5rem; }
.bo-article-cover{ width:100%; overflow:hidden; border-radius:1rem; box-shadow:0 1px 2px rgba(0,0,0,.05); aspect-ratio:16/9; background:rgba(228,239,230,.3); margin-bottom:2.5rem; }
.bo-article-cover img{ width:100%; height:100%; object-fit:cover; }
.bo-article-body{ max-width:42rem; margin-inline:auto; }
.bo-article-body p{ font-size:.9rem; color:rgba(17,29,19,.85); line-height:1.75; font-weight:300; margin:0 0 1.5rem; }
@media (min-width:640px){ .bo-article-body p{ font-size:1rem; } }
.bo-article-body h2, .bo-article-body h3{ font-family:var(--bo-font-serif); font-weight:500; color:var(--bo-charcoal); margin:2rem 0 1rem; }
.bo-article-body h2{ font-size:1.25rem; }
@media (min-width:640px){ .bo-article-body h2{ font-size:1.5rem; } }
.bo-article-body h3{ font-size:1.1rem; }
.bo-article-body blockquote{
  margin:2rem 0; padding:1.5rem; background:rgba(228,239,230,.25); border-left:4px solid var(--bo-gold);
  border-radius:0 1rem 1rem 0; font-style:italic; font-family:var(--bo-font-serif); font-size:1rem;
  color:rgba(17,29,19,.8); line-height:1.7;
}
@media (min-width:640px){ .bo-article-body blockquote{ font-size:1.125rem; } }
.bo-article-body blockquote p{ margin:0; font-size:inherit; font-style:inherit; color:inherit; }
.bo-article-body ul, .bo-article-body ol{ font-size:.95rem; color:rgba(17,29,19,.85); font-weight:300; line-height:1.7; padding-left:1.25rem; margin:0 0 1.5rem; }
.bo-article-body li{ margin-bottom:.4rem; }
.bo-article-body img{ border-radius:1rem; margin:1.5rem 0; }
.bo-article-body a{ color:var(--bo-forest); text-decoration:underline; text-underline-offset:2px; }

.bo-authorbox{ margin-top:3rem; padding:1.5rem; background:rgba(228,239,230,.15); border:1px solid rgba(65,93,67,.15); border-radius:var(--bo-radius); display:flex; flex-direction:column; gap:1rem; }
@media (min-width:640px){ .bo-authorbox{ flex-direction:row; padding:2rem; align-items:flex-start; } }
.bo-authorbox img{ width:4rem; height:4rem; border-radius:9999px; object-fit:cover; border:1px solid #fff; box-shadow:0 1px 2px rgba(0,0,0,.05); flex:0 0 auto; }
.bo-authorbox .lbl{ font-size:.625rem; text-transform:uppercase; letter-spacing:.15em; font-weight:700; color:var(--bo-gold); }
.bo-authorbox h4{ font-size:.875rem; font-weight:700; color:var(--bo-charcoal); margin:.25rem 0; }
.bo-authorbox p{ font-size:.8rem; color:rgba(17,29,19,.7); font-weight:300; line-height:1.6; margin:0; }

.bo-tags{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:2rem; }
.bo-tags a{ font-size:.6875rem; text-transform:uppercase; letter-spacing:.1em; font-weight:600; color:rgba(17,29,19,.65); background:rgba(228,239,230,.6); padding:.35rem .7rem; border-radius:9999px; transition:all .2s; }
.bo-tags a:hover{ background:var(--bo-gold); color:#fff; }

/* Comments */
.bo-comments{ max-width:42rem; margin:3rem auto 0; }
.bo-comments-title{ font-family:var(--bo-font-serif); font-size:1.25rem; font-weight:500; color:var(--bo-charcoal); margin:0 0 1.5rem; display:flex; align-items:center; gap:.5rem; }
.bo-comment{ display:flex; gap:1rem; padding:1rem 0; border-top:1px solid rgba(65,93,67,.12); }
.bo-comment .av{ width:2.5rem; height:2.5rem; border-radius:9999px; background:rgba(65,93,67,.08); display:flex; align-items:center; justify-content:center; color:var(--bo-forest); flex:0 0 auto; overflow:hidden; }
.bo-comment .av img{ width:100%; height:100%; object-fit:cover; }
.bo-comment .n{ font-size:.8rem; font-weight:600; color:var(--bo-charcoal); }
.bo-comment .d{ font-size:.6875rem; color:rgba(17,29,19,.5); }
.bo-comment .c{ font-size:.85rem; color:rgba(17,29,19,.8); font-weight:300; margin-top:.25rem; }
.bo-comment-respond{ margin-top:2rem; background:#fff; border:1px solid rgba(65,93,67,.15); border-radius:var(--bo-radius); padding:1.5rem 1.5rem 1rem; }
@media (min-width:640px){ .bo-comment-respond{ padding:2rem; } }

/* Related posts */
.bo-related{ max-width:80rem; margin:4rem auto 0; }
.bo-related h3{ font-family:var(--bo-font-serif); font-size:1.5rem; font-weight:600; margin:0 0 1.5rem; }

/* =============================================================
   Styled pages (About / Contact / Legal / default)
   ============================================================= */
.bo-page-wrap{ max-width:64rem; margin-inline:auto; padding:2rem 0; }
@media (min-width:768px){ .bo-page-wrap{ padding:4rem 0; } }
.bo-page-wrap--narrow{ max-width:56rem; }

.bo-page-card{ background:#fff; border-radius:var(--bo-radius); border:1px solid rgba(65,93,67,.15); box-shadow:0 10px 30px rgba(65,93,67,.05); position:relative; overflow:hidden; }
.bo-page-card-glow{ position:absolute; top:0; right:0; width:20rem; height:20rem; background:rgba(65,93,67,.05); border-radius:9999px; filter:blur(60px); transform:translate(50%,-50%); pointer-events:none; }
.bo-page-card-inner{ position:relative; z-index:1; padding:2rem; }
@media (min-width:640px){ .bo-page-card-inner{ padding:3rem; } }
@media (min-width:768px){ .bo-page-card-inner{ padding:3.5rem; } }

.bo-page-head{ text-align:center; max-width:48rem; margin:0 auto 3rem; }
.bo-page-head .bo-eyebrow-row{ display:inline-flex; align-items:center; gap:.5rem; margin-bottom:.5rem; color:var(--bo-gold); }
.bo-page-title{ font-family:var(--bo-font-serif); font-size:2.25rem; font-weight:400; color:var(--bo-charcoal); letter-spacing:-.02em; line-height:1.15; margin:0; }
@media (min-width:640px){ .bo-page-title{ font-size:3rem; } }
@media (min-width:768px){ .bo-page-title{ font-size:3.75rem; } }
.bo-page-title .bo-hl{ font-style:italic; color:var(--bo-gold); font-weight:500; }
.bo-rule{ display:flex; justify-content:center; align-items:center; padding:1rem 0; }
.bo-rule .l{ height:1px; width:5rem; background:rgba(65,93,67,.15); }
.bo-rule .d{ margin:0 1rem; color:var(--bo-gold); }

/* Long-form prose (legal pages via editor content) */
.bo-prose{ font-size:.8125rem; color:rgba(17,29,19,.75); font-weight:300; line-height:1.75; }
@media (min-width:640px){ .bo-prose{ font-size:.84375rem; } }
.bo-prose > *:first-child{ margin-top:0; }
.bo-prose h2, .bo-prose h3{ font-family:var(--bo-font-serif); font-weight:500; color:var(--bo-charcoal); border-bottom:1px solid rgba(65,93,67,.1); padding-bottom:.5rem; margin:2rem 0 1rem; }
.bo-prose h2{ font-size:1.125rem; }
@media (min-width:640px){ .bo-prose h2{ font-size:1.25rem; } }
.bo-prose h3{ font-size:1rem; }
.bo-prose h4{ font-family:var(--bo-font-serif); font-size:.9rem; font-weight:600; color:var(--bo-charcoal); margin:1.25rem 0 .5rem; }
.bo-prose p{ margin:0 0 1rem; }
.bo-prose ul, .bo-prose ol{ padding-left:1.25rem; margin:0 0 1rem; }
.bo-prose li{ margin-bottom:.375rem; }
.bo-prose strong{ color:var(--bo-charcoal); font-weight:600; }
.bo-prose a{ color:var(--bo-forest); text-decoration:underline; }
.bo-prose blockquote{ border-left:4px solid var(--bo-gold); padding:1rem 1.25rem; background:rgba(228,239,230,.25); border-radius:0 1rem 1rem 0; font-style:italic; }
.bo-prose .lead, .bo-prose > p:first-of-type{ font-size:.95rem; color:var(--bo-charcoal); }

/* About page structured blocks */
.bo-about-banner{ overflow:hidden; border-radius:1rem; aspect-ratio:21/9; box-shadow:0 8px 20px rgba(0,0,0,.1); margin:2rem 0; }
.bo-about-banner img{ width:100%; height:100%; object-fit:cover; }
.bo-about-narrative{ max-width:48rem; margin:0 auto; }
.bo-chapter-tag{ display:flex; align-items:center; gap:.5rem; color:var(--bo-gold); padding-bottom:.5rem; border-bottom:1px solid rgba(65,93,67,.15); font-size:.625rem; text-transform:uppercase; font-weight:700; letter-spacing:.25em; margin-bottom:2rem; }
.bo-dropcap p:first-of-type::first-letter{ font-size:3rem; font-family:var(--bo-font-serif); font-weight:700; float:left; margin-right:.75rem; color:var(--bo-gold); line-height:.8; }
.bo-about-narrative p{ font-size:1rem; color:rgba(17,29,19,.8); font-weight:300; line-height:1.75; margin:0 0 1.5rem; }
.bo-pullquote{ background:rgba(255,255,255,.7); border-left:4px solid var(--bo-gold); border-radius:0 1rem 1rem 0; padding:1.5rem; margin:2.5rem 0; box-shadow:0 1px 2px rgba(0,0,0,.03); }
.bo-pullquote blockquote{ font-family:var(--bo-font-serif); font-size:1.25rem; font-style:italic; font-weight:500; color:var(--bo-charcoal); line-height:1.4; margin:0; }
@media (min-width:640px){ .bo-pullquote blockquote{ font-size:1.5rem; } }
.bo-pullquote cite{ display:block; font-size:.75rem; text-transform:uppercase; font-weight:700; letter-spacing:.15em; color:var(--bo-gold); margin-top:1rem; font-style:normal; }
.bo-pillars{ padding-top:2.5rem; }
.bo-pillars-head{ text-align:center; max-width:32rem; margin:0 auto 2rem; }
.bo-pillars-head h3{ font-family:var(--bo-font-serif); font-size:1.5rem; font-weight:500; color:var(--bo-charcoal); margin:.25rem 0 0; }
@media (min-width:640px){ .bo-pillars-head h3{ font-size:1.875rem; } }
.bo-pillars-grid{ display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media (min-width:768px){ .bo-pillars-grid{ grid-template-columns:repeat(3,1fr); } }
.bo-pillar{ background:#fff; border-radius:1rem; padding:1.5rem; border:1px solid rgba(65,93,67,.12); transition:all .3s; }
.bo-pillar:hover{ border-color:rgba(197,168,128,.4); box-shadow:0 8px 20px rgba(0,0,0,.06); }
.bo-pillar .ic{ width:2.5rem; height:2.5rem; background:var(--bo-banner); color:var(--bo-gold); border-radius:.75rem; display:flex; align-items:center; justify-content:center; border:1px solid rgba(65,93,67,.15); margin-bottom:.75rem; }
.bo-pillar h4{ font-family:var(--bo-font-serif); font-size:1.125rem; font-weight:500; color:var(--bo-charcoal); margin:0 0 .5rem; }
.bo-pillar p{ font-size:.8125rem; color:rgba(17,29,19,.65); font-weight:300; line-height:1.6; margin:0; }
.bo-about-pledge{ max-width:48rem; margin:2.5rem auto 0; padding-top:2.5rem; border-top:1px solid rgba(65,93,67,.15); text-align:center; }

/* Contact form */
.bo-contact-card{ background:#fff; border-radius:var(--bo-radius); border:1px solid rgba(65,93,67,.15); padding:2rem; box-shadow:0 10px 30px rgba(65,93,67,.05); position:relative; overflow:hidden; }
@media (min-width:640px){ .bo-contact-card{ padding:3rem; } }
.bo-contact-card .bo-eyebrow-mono{ font-size:.625rem; font-family:var(--bo-font-mono); font-weight:700; letter-spacing:.25em; text-transform:uppercase; color:var(--bo-gold); display:block; margin-bottom:.25rem; }
.bo-contact-card h3{ font-family:var(--bo-font-serif); font-size:1.5rem; font-weight:400; color:var(--bo-charcoal); margin:0 0 1.5rem; }
@media (min-width:640px){ .bo-contact-card h3{ font-size:1.875rem; } }
.bo-form-grid{ display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media (min-width:768px){ .bo-form-grid{ grid-template-columns:repeat(2,1fr); } }
.bo-field{ margin-bottom:1.5rem; }
.bo-field label{ display:block; font-size:.625rem; font-family:var(--bo-font-mono); font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:rgba(17,29,19,.5); margin-bottom:.5rem; }
.bo-field input, .bo-field textarea{ width:100%; font-size:.875rem; padding:.875rem 1.25rem; background:#fff; border:1px solid rgba(65,93,67,.15); border-radius:.75rem; transition:all .2s; font-family:var(--bo-font-sans); color:var(--bo-charcoal); }
.bo-field input:focus, .bo-field textarea:focus{ outline:none; border-color:var(--bo-gold); box-shadow:0 0 0 1px var(--bo-gold); }
.bo-field textarea{ resize:vertical; min-height:9rem; }
.bo-contact-notice{ padding:1rem 1.25rem; border-radius:.75rem; font-size:.85rem; margin-bottom:1.5rem; }
.bo-contact-notice--ok{ background:rgba(65,93,67,.1); color:var(--bo-forest); }
.bo-contact-notice--err{ background:rgba(220,38,38,.08); color:#b91c1c; }

/* =============================================================
   Scroll-to-top
   ============================================================= */
.bo-scroll-top{
  position:fixed; bottom:2rem; right:2rem; z-index:60; width:2.75rem; height:2.75rem; border-radius:9999px;
  background:var(--bo-gold); color:#fff; border:1px solid rgba(255,255,255,.1); box-shadow:0 4px 12px rgba(0,0,0,.15);
  display:flex; align-items:center; justify-content:center; cursor:pointer; opacity:0; visibility:hidden;
  transform:translateY(15px); transition:all .3s ease;
}
.bo-scroll-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.bo-scroll-top:hover{ background:var(--bo-charcoal); transform:translateY(-2px); }
.bo-scroll-top svg{ width:1.1rem; height:1.1rem; }

/* Pagination */
.bo-pagination{ display:flex; justify-content:center; gap:.5rem; margin-top:3rem; flex-wrap:wrap; }
.bo-pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:2.5rem; height:2.5rem; padding:0 .75rem; border-radius:9999px; background:#fff; border:1px solid rgba(65,93,67,.15); font-size:.8rem; font-weight:600; color:var(--bo-charcoal); transition:all .2s; }
.bo-pagination .page-numbers:hover, .bo-pagination .page-numbers.current{ background:var(--bo-charcoal); color:#fff; border-color:var(--bo-charcoal); }

/* Utility */
.bo-fade-in{ animation:boFade .5s ease both; }
@keyframes boFade{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.bo-mt-2{ margin-top:2rem; }
.bo-center{ text-align:center; }

/* WordPress core alignment / caption support */
.aligncenter{ margin-inline:auto; }
.alignright{ float:right; margin:0 0 1rem 1.5rem; }
.alignleft{ float:left; margin:0 1.5rem 1rem 0; }
.wp-caption-text{ font-size:.75rem; color:rgba(17,29,19,.6); text-align:center; margin-top:.5rem; }
.sticky, .bypostauthor{ }
