/* ==========================================================================
   BLOG — showcase, cards, archive and the article reading screen
   (see inc/blog.php). Uses the theme's :root tokens from style.css.
   ========================================================================== */

/* ---------- Card ---------------------------------------------------------- */
.pfb-card{
  position:relative;display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius-card);
  box-shadow:var(--shadow-card);overflow:hidden;
  transition:box-shadow .2s ease,transform .2s ease;
}
.pfb-card:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px);}
.pfb-media{display:block;position:relative;aspect-ratio:16/9;background:var(--ivory-100);overflow:hidden;flex:0 0 auto;}
.pfb-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.pfb-card:hover .pfb-media img{transform:scale(1.04);}
.pfb-body{display:flex;flex-direction:column;gap:8px;padding:14px 16px 16px;flex:1 1 auto;min-width:0;}
.pfb-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;font-size:12px;font-weight:600;color:var(--ink-400);}
.pfb-cat{background:var(--ivory-100);color:var(--navy-700);padding:4px 10px;border-radius:var(--radius-pill);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:11px;}
.pfb-title{font-size:17px;line-height:1.3;margin:0;}
/* The whole card is tappable through the title link */
.pfb-title a::after{content:"";position:absolute;inset:0;z-index:1;}
.pfb-excerpt{margin:0;font-size:14px;line-height:1.55;color:var(--ink-600);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pfb-date{margin-top:auto;font-size:12.5px;color:var(--ink-400);font-weight:500;}

/* ---------- Showcase (above the footer) ---------------------------------- */
.pf-blog-showcase{background:var(--white);border-top:1px solid var(--line);}
.pf-blog-showcase + .site-footer{margin-top:0;}
.pfbs-track:focus-visible{outline:3px solid var(--brass-500);outline-offset:4px;border-radius:var(--radius-card);}

/* Phones & small tablets: swipeable row, next card peeks in */
@media(max-width:860px){
  .pfbs-track{
    display:flex;gap:14px;overflow-x:auto;
    scroll-snap-type:x mandatory;scroll-padding:0 18px;
    margin:0 -18px;padding:6px 18px 22px;
    scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;
  }
  .pfbs-track::-webkit-scrollbar{display:none;}
  .pfbs-track .pfb-card{flex:0 0 80%;max-width:340px;scroll-snap-align:start;}
  .pfbs-track.is-solo .pfb-card{flex-basis:100%;max-width:none;}
  .pfbs-track .pfb-card:hover{transform:none;}
  .pfbs-track .pfb-card.is-lead .pfb-title{font-size:19px;}
}

/* Desktop: one big featured article + the next ones stacked beside it */
@media(min-width:861px){
  .pfbs-track{display:grid;grid-template-columns:1.25fr 1fr;gap:18px;}
  .pfbs-track.is-solo{grid-template-columns:1fr;max-width:720px;}
  .pfbs-track .pfb-card.is-lead{grid-column:1;grid-row:1 / span var(--pfbs-rest,2);}
  .pfbs-track .pfb-card:not(.is-lead){grid-column:2;flex-direction:row;}
  .pfbs-track .pfb-card.is-lead .pfb-media{flex:1 1 auto;aspect-ratio:auto;min-height:260px;}
  .pfbs-track .pfb-card.is-lead .pfb-body{flex:0 0 auto;padding:20px 22px 22px;gap:10px;}
  .pfbs-track .pfb-card.is-lead .pfb-title{font-size:25px;}
  .pfbs-track .pfb-card.is-lead .pfb-excerpt{font-size:15px;-webkit-line-clamp:3;}
  .pfbs-track .pfb-card:not(.is-lead) .pfb-media{flex:0 0 38%;aspect-ratio:auto;min-height:104px;}
  .pfbs-track .pfb-card:not(.is-lead) .pfb-excerpt{display:none;}
  .pfbs-track .pfb-card:not(.is-lead) .pfb-date{margin-top:0;}
  .pfbs-track .pfb-card:not(.is-lead) .pfb-body{justify-content:center;padding:12px 16px;gap:6px;}
  .pfbs-track .pfb-card:not(.is-lead) .pfb-title{font-size:15.5px;}
}

/* ---------- Blog index / archives ---------------------------------------- */
.pfb-pagehead{background:var(--white);border-bottom:1px solid var(--line);padding:26px 0 18px;}
.pfb-pagehead h1{font-size:clamp(26px,5vw,38px);margin:0 0 6px;}
.pfb-intro,.pfb-intro p{margin:0;color:var(--ink-600);font-size:15px;}
.pfb-filter{display:flex;gap:8px;overflow-x:auto;margin:16px -18px 0;padding:2px 18px 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.pfb-filter::-webkit-scrollbar{display:none;}
.pfb-filter a{
  flex:0 0 auto;display:inline-flex;align-items:center;min-height:40px;padding:0 16px;
  border:1.5px solid var(--line);border-radius:var(--radius-pill);
  font-size:13.5px;font-weight:700;color:var(--ink-600);background:var(--white);
}
.pfb-filter a:hover{border-color:var(--navy-950);color:var(--navy-950);}
.pfb-filter a.is-active{background:var(--navy-950);border-color:var(--navy-950);color:var(--white);}
.pfb-archive{padding-top:26px;padding-bottom:46px;}
.pfb-grid{display:grid;grid-template-columns:1fr;gap:18px;}
@media(min-width:600px){ .pfb-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:961px){ .pfb-grid{grid-template-columns:repeat(3,1fr);gap:22px;} }

.pf-pagination{margin-top:34px;}
.pf-pagination ul{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;}
.pf-pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 14px;
  border:1.5px solid var(--line);border-radius:var(--radius-pill);background:var(--white);
  font-weight:700;font-size:14px;color:var(--ink-600);
}
.pf-pagination a.page-numbers:hover{border-color:var(--navy-950);color:var(--navy-950);}
.pf-pagination .page-numbers.current{background:var(--navy-950);border-color:var(--navy-950);color:var(--white);}
.pf-pagination .page-numbers.dots{border:0;background:none;min-width:auto;}

/* Related posts: swipeable on phones */
@media(max-width:599px){
  .pfb-rail{
    display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;
    margin:0 -18px;padding:4px 18px 20px;scroll-padding:0 18px;scrollbar-width:none;
  }
  .pfb-rail::-webkit-scrollbar{display:none;}
  .pfb-rail .pfb-card{flex:0 0 80%;scroll-snap-align:start;}
}

/* ==========================================================================
   ARTICLE READING SCREEN
   ========================================================================== */
.pf-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;pointer-events:none;background:transparent;}
.pf-progress span{display:block;height:100%;background:var(--brass-500);transform:scaleX(0);transform-origin:0 50%;}

.pf-article{
  --pfa-fs:18px;--pfa-lh:1.75;--pfa-col:796px;
  background:var(--white);padding-bottom:10px;
}
@media(min-width:840px){ .pf-article{--pfa-fs:19px;} .pf-article[data-size="0"]{--pfa-fs:17px;} .pf-article[data-size="2"]{--pfa-fs:21px;} .pf-article[data-size="3"]{--pfa-fs:23px;} }
.pf-article[data-size="0"]{--pfa-fs:16px;}
.pf-article[data-size="2"]{--pfa-fs:20px;}
.pf-article[data-size="3"]{--pfa-fs:22px;--pfa-lh:1.7;}

.pfa-header,.pfa-content,.pfa-footer{max-width:var(--pfa-col);margin-left:auto;margin-right:auto;padding-left:18px;padding-right:18px;}
.pfa-header{padding-top:18px;}

.pfa-back{display:inline-flex;align-items:center;gap:4px;min-height:44px;margin-left:-6px;padding:0 6px;font-size:14px;font-weight:700;color:var(--ink-600);}
.pfa-back:hover{color:var(--navy-950);}
.pfa-cat{
  display:inline-block;margin:2px 0 12px;padding:5px 12px;border-radius:var(--radius-pill);
  background:var(--ivory-100);color:var(--navy-700);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
}
.pfa-back + .pfa-cat{margin-left:10px;}
.pfa-title{font-size:clamp(27px,6.6vw,42px);line-height:1.18;letter-spacing:-0.025em;margin:0 0 14px;overflow-wrap:break-word;text-wrap:balance;}
.pfa-dek{font-size:clamp(17px,4.4vw,20px);line-height:1.55;color:var(--ink-600);margin:0 0 18px;}

.pfa-byline{display:flex;align-items:center;gap:12px;margin:0 0 16px;}
.pfa-avatar{display:block;width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--ivory-100);flex:0 0 auto;}
.pfa-avatar img,.pfa-avatar .pfa-avatar-img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:50%;}
.pfa-byline-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.pfa-author{font-weight:700;font-size:14.5px;color:var(--ink-900);}
.pfa-sub{font-size:13px;color:var(--ink-400);display:flex;flex-wrap:wrap;gap:0 6px;}

.pfa-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:22px;}
.pfa-size{display:flex;gap:8px;}
.pfa-size button,.pfa-share{
  min-height:44px;min-width:44px;border:1.5px solid var(--line);background:var(--white);color:var(--navy-950);
  border-radius:var(--radius-pill);font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  transition:border-color .15s ease,background .15s ease;
}
.pfa-size button{font-family:"Manrope",sans-serif;font-size:15px;padding:0 14px;}
.pfa-size button .big{font-size:19px;}
.pfa-size small{font-size:.7em;margin-left:1px;}
.pfa-share{padding:0 18px;font-size:14px;}
.pfa-size button:hover:not(:disabled),.pfa-share:hover{border-color:var(--navy-950);}
.pfa-size button:disabled{opacity:.35;cursor:default;}

/* Cover image: shown in full (never cropped) so text on cover graphics stays readable.
   Edge to edge on phones; rounded, same width as the text column on larger screens. */
.pfa-hero{margin:0 0 26px;background:var(--ivory-100);}
.pfa-hero img{display:block;width:100%;height:auto;}
.pfa-hero figcaption{padding:8px 18px 0;font-size:12.5px;color:var(--ink-400);max-width:var(--pfa-col);margin:0 auto;}
@media(min-width:700px){
  .pfa-hero{max-width:var(--pfa-col);margin:0 auto 34px;padding:0 18px;background:none;}
  .pfa-hero img{border-radius:16px;box-shadow:var(--shadow-card);}
  .pfa-hero figcaption{padding:8px 0 0;}
}

/* ---------- Body copy ----------------------------------------------------- */
.pfa-content{
  font-size:var(--pfa-fs);line-height:var(--pfa-lh);color:#1B2A41;
  overflow-wrap:break-word;word-wrap:break-word;
  -webkit-text-size-adjust:100%;
}
.pfa-content > *:first-child{margin-top:0;}
.pfa-content p{font-size:1em;line-height:inherit;color:inherit;margin:0 0 1.3em;}
.pfa-content h2,.pfa-content h3,.pfa-content h4{scroll-margin-top:calc(var(--nav-h) + 14px);}
.pfa-content h2{font-size:1.45em;margin:1.9em 0 .6em;line-height:1.22;}
.pfa-content h3{font-size:1.2em;margin:1.6em 0 .5em;line-height:1.28;}
.pfa-content h4{font-size:1.05em;margin:1.4em 0 .4em;}
.pfa-content a{color:var(--brass-600);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px;}
.pfa-content a:hover{color:var(--navy-950);}
.pfa-content strong,.pfa-content b{color:var(--ink-900);}
.pfa-content ul,.pfa-content ol{margin:0 0 1.3em;padding-left:1.35em;}
.pfa-content ul{list-style:disc;}
.pfa-content ol{list-style:decimal;}
.pfa-content li{margin-bottom:.5em;padding-left:.2em;}
.pfa-content li::marker{color:var(--brass-500);font-weight:700;}
.pfa-content li > ul,.pfa-content li > ol{margin:.5em 0 0;}

.pfa-content blockquote{
  margin:1.6em 0;padding:16px 18px;border-left:4px solid var(--brass-500);
  background:var(--ivory-50);border-radius:0 12px 12px 0;
  font-family:"Manrope",sans-serif;font-weight:600;font-size:1.05em;line-height:1.55;color:var(--navy-950);
}
.pfa-content blockquote p{font-family:inherit;font-weight:inherit;margin:0 0 .7em;}
.pfa-content blockquote p:last-child{margin-bottom:0;}
.pfa-content blockquote cite{display:block;margin-top:.6em;font-size:.82em;font-style:normal;font-weight:500;color:var(--ink-400);}
.pfa-content hr{border:0;border-top:1px solid var(--line);margin:2.2em 0;}

.pfa-content img,.pfa-content video,.pfa-content iframe,.pfa-content embed{max-width:100%;}
.pfa-content img{height:auto;border-radius:12px;}
.pfa-content figure{margin:1.7em 0;}
.pfa-content figcaption,.pfa-content .wp-caption-text{margin-top:8px;font-size:.78em;line-height:1.45;color:var(--ink-400);text-align:center;}
.pfa-content .wp-caption{max-width:100%;}
.pfa-content iframe{width:100%;border:0;border-radius:12px;}
.pfa-content .wp-block-embed iframe,.pfa-content .wp-block-embed video{aspect-ratio:16/9;height:auto;}
.pfa-content .alignleft,.pfa-content .alignright,.pfa-content .aligncenter{display:block;float:none;margin:1.5em auto;}
@media(min-width:620px){
  .pfa-content .alignleft{float:left;margin:.4em 1.4em 1em 0;max-width:50%;}
  .pfa-content .alignright{float:right;margin:.4em 0 1em 1.4em;max-width:50%;}
}
.pfa-content .alignwide,.pfa-content .alignfull{max-width:100%;width:100%;}
.pfa-content .wp-block-gallery{gap:8px;}

/* Wide things scroll inside themselves — the page never scrolls sideways */
.pfa-content table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse;font-size:.88em;line-height:1.5;margin:0 0 1.5em;}
.pfa-content th,.pfa-content td{padding:10px 12px;border:1px solid var(--line);text-align:left;vertical-align:top;min-width:96px;}
.pfa-content th{background:var(--ivory-100);color:var(--navy-950);font-weight:700;}
.pfa-content pre{
  overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 1.5em;padding:14px 16px;
  background:var(--navy-950);color:#E6EFFC;border-radius:12px;font-size:.82em;line-height:1.6;
}
.pfa-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;background:var(--ivory-100);padding:2px 6px;border-radius:6px;}
.pfa-content pre code{background:none;padding:0;color:inherit;}
.pfa-content .wp-block-button__link{border-radius:var(--radius-pill);text-decoration:none;}
.pfa-pages{margin:1.5em 0;font-weight:700;font-size:.9em;}
.pfa-pages a,.pfa-pages > span{display:inline-block;min-width:36px;padding:6px 10px;margin-left:4px;border:1.5px solid var(--line);border-radius:10px;text-align:center;}

/* ---------- After the article -------------------------------------------- */
.pfa-footer{padding-top:30px;padding-bottom:34px;font-size:16px;}
.pfa-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;}
.pfa-tags a{padding:7px 13px;border-radius:var(--radius-pill);background:var(--ivory-100);color:var(--navy-700);font-size:13px;font-weight:700;}
.pfa-sharebar{display:flex;flex-direction:column;gap:10px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:24px;font-weight:700;font-size:14.5px;color:var(--navy-950);}
.pfa-sharebar div{display:flex;gap:8px;}
.pfa-sharebar .btn{min-height:44px;flex:1;}
@media(min-width:560px){ .pfa-sharebar{flex-direction:row;align-items:center;justify-content:space-between;} .pfa-sharebar .btn{flex:0 0 auto;} }

.pfa-author-box{display:flex;gap:14px;padding:18px;background:var(--ivory-50);border:1px solid var(--line);border-radius:var(--radius-card);margin-bottom:24px;}
.pfa-avatar-lg{width:56px;height:56px;}
.pfa-author-box b{display:block;font-family:"Manrope",sans-serif;color:var(--navy-950);margin-bottom:4px;}
.pfa-author-box p{margin:0;font-size:14px;line-height:1.55;}

.pfa-nav{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:26px;}
.pfa-nav a{display:flex;flex-direction:column;gap:4px;padding:14px 16px;min-height:44px;border:1.5px solid var(--line);border-radius:var(--radius-card);background:var(--white);}
.pfa-nav a:hover{border-color:var(--navy-950);}
.pfa-nav small{font-size:12px;font-weight:700;color:var(--brass-600);text-transform:uppercase;letter-spacing:.04em;}
.pfa-nav span{font-weight:700;font-size:15px;line-height:1.35;color:var(--ink-900);}
@media(min-width:600px){ .pfa-nav{grid-template-columns:1fr 1fr;} .pfa-nav-next{text-align:right;grid-column:2;} .pfa-nav-prev:only-child{grid-column:1;} }

.pfa-cta{display:flex;flex-direction:column;gap:14px;padding:22px;border-radius:var(--radius-card);background:var(--navy-950);color:var(--white);}
.pfa-cta h2{color:var(--white);font-size:20px;margin:0 0 4px;}
.pfa-cta p{margin:0;color:rgba(255,255,255,.7);font-size:14px;}
@media(min-width:560px){ .pfa-cta{flex-direction:row;align-items:center;justify-content:space-between;} }

.pfa-related .pfb-card:hover{transform:none;}

@media(prefers-reduced-motion:reduce){
  .pfb-card,.pfb-media img{transition:none;}
  .pfb-card:hover,.pfb-card:hover .pfb-media img{transform:none;}
}

/* Logged-in admin bar: keep the sticky header and progress bar below it */
.admin-bar .site-header{top:32px;}
.admin-bar .pf-progress{top:32px;}
.admin-bar .pfa-content h2,.admin-bar .pfa-content h3,.admin-bar .pfa-content h4{scroll-margin-top:calc(var(--nav-h) + 46px);}
@media(max-width:782px){
  .admin-bar .site-header{top:46px;}
  .admin-bar .pf-progress{top:46px;}
}
@media(max-width:600px){
  /* WordPress admin bar scrolls away on small screens */
  .admin-bar .site-header{top:0;}
  .admin-bar .pf-progress{top:0;}
}
