/*
Theme Name: Celbet Dispatch
Theme URI: https://www.celbet.eu/
Author: Celbet Editorial
Author URI: https://www.celbet.eu/
Description: Custom dispatch-style editorial theme for celbet.eu - customs and border management on the EU eastern land frontier.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: celbet
Tags: custom-menu, featured-images, translation-ready
*/

/* ---------- fonts (self-hosted) ---------- */
@font-face{font-family:'Libre Franklin';src:url('assets/fonts/libre-franklin-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Libre Franklin';src:url('assets/fonts/libre-franklin-800.woff2') format('woff2');font-weight:800;font-style:normal;font-display:swap}
@font-face{font-family:'Libre Franklin';src:url('assets/fonts/libre-franklin-900.woff2') format('woff2');font-weight:900;font-style:normal;font-display:swap}
@font-face{font-family:'PT Serif';src:url('assets/fonts/pt-serif-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'PT Serif';src:url('assets/fonts/pt-serif-italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'PT Serif';src:url('assets/fonts/pt-serif-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Overpass Mono';src:url('assets/fonts/overpass-mono-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Overpass Mono';src:url('assets/fonts/overpass-mono-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}

/* ---------- tokens ---------- */
:root{
  --paper:#F4F1E6;
  --panel:#EBE7D6;
  --ink:#24261A;
  --olive:#3A3D26;
  --olive-soft:#6B6D50;
  --stamp:#8E2B57;
  --stamp-dark:#6E1F43;
  --rule:#C9C4AD;
  --rule-dark:#9A9678;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:17px/1.68 'PT Serif',Georgia,serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4,h5{font-family:'Libre Franklin',Arial,sans-serif;line-height:1.14;letter-spacing:-.015em}
a{color:inherit}
img{max-width:100%;height:auto}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.mono{font-family:'Overpass Mono',monospace;letter-spacing:.08em;text-transform:uppercase}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ---------- top microbar ---------- */
.microbar{background:var(--olive);color:#DCD9C3}
.microbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-top:7px;padding-bottom:7px}
.microbar span{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase}

/* ---------- masthead ---------- */
.masthead .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:22px;padding-bottom:18px;gap:20px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand svg{display:block;flex:none}
.brand-name{font-family:'Libre Franklin';font-weight:900;font-size:29px;letter-spacing:.04em}
.brand-name em{font-style:normal;color:var(--stamp)}
.brand-sub{font-family:'Overpass Mono',monospace;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--olive-soft)}
nav.primary ul{display:flex;gap:30px;list-style:none}
nav.primary a{font-family:'Libre Franklin';font-weight:600;font-size:15px;text-decoration:none;padding-bottom:4px;border-bottom:2px solid transparent}
nav.primary a:hover,nav.primary a.current{border-bottom-color:var(--stamp)}

/* ---------- corridor strip ---------- */
.corridor{border-top:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark);background:var(--panel)}
.corridor .wrap{padding-top:10px;padding-bottom:12px;overflow-x:auto;scrollbar-width:none}
.corridor .wrap::-webkit-scrollbar{display:none}
.corridor svg{display:block;min-width:900px;width:100%}

/* ---------- lead dispatch (front page) ---------- */
.lead{padding:52px 0 46px;border-bottom:1px solid var(--rule)}
.lead .wrap{display:grid;grid-template-columns:3fr 2fr;gap:48px;align-items:start}
.dateline{font-family:'Overpass Mono',monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--stamp);display:flex;align-items:center;gap:10px}
.dateline::before{content:"";width:34px;height:2px;background:var(--stamp);flex:none}
.lead h1{font-size:clamp(34px,4.6vw,52px);font-weight:900;margin:14px 0 18px}
.lead .standfirst{font-size:20px;line-height:1.6;color:#3d3f2e}
.lead .more{display:inline-block;margin-top:22px;font-family:'Libre Franklin';font-weight:700;font-size:15px;text-decoration:none;color:var(--stamp-dark);border-bottom:2px solid var(--stamp)}

/* stamped figure frame */
.stampframe{position:relative;border:1px solid var(--rule-dark);padding:10px;background:#fff}
.stampframe::after{content:"";position:absolute;inset:4px;border:1px dashed var(--rule-dark);pointer-events:none}
.stampframe img{width:100%;display:block}
.stampframe figcaption{position:relative;z-index:1;font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--olive-soft);padding:10px 4px 2px;background:#fff}

/* ---------- register strip ---------- */
.register{border-bottom:1px solid var(--rule)}
.register .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.register .cell{padding:20px 18px;border-left:1px solid var(--rule)}
.register .cell:first-child{border-left:0;padding-left:0}
.register b{font-family:'Libre Franklin';font-weight:800;font-size:26px;display:block}
.register span{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--olive-soft)}

/* ---------- corridors: band rows ---------- */
.corridors{padding:50px 0 8px}
.sectionhead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}
.sectionhead h2{font-size:13px;font-family:'Overpass Mono',monospace;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--olive-soft)}
.band{display:grid;grid-template-columns:86px 1fr 220px;gap:28px;align-items:center;padding:26px 0;border-top:1px solid var(--rule);text-decoration:none}
.band:last-of-type{border-bottom:1px solid var(--rule)}
.band:hover{background:var(--panel)}
.stampbadge{width:66px;height:66px;position:relative;display:flex;align-items:center;justify-content:center}
.stampbadge svg{position:absolute;inset:0}
.stampbadge b{font-family:'Overpass Mono',monospace;font-size:15px;color:var(--stamp-dark)}
.band .kicker{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--stamp)}
.band h3{font-size:24px;font-weight:800;margin:6px 0 8px}
.band p{font-size:15.5px;color:#4a4c39;line-height:1.55}
.band .thumb{border:1px solid var(--rule-dark);padding:6px;background:#fff}
.band .thumb img{width:100%;display:block}

/* ---------- article (topic pages) ---------- */
.article-head{padding:48px 0 8px}
.article-head .kicker{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--stamp)}
.article-head h1{font-size:clamp(32px,4vw,46px);font-weight:900;margin:12px 0 16px;max-width:820px}
.article-head .standfirst{font-size:19px;color:#3d3f2e;max-width:760px}
.article-figure{margin:30px 0 6px;max-width:860px}
.article-body{padding:26px 0 20px}
.article-body .prose{max-width:760px}
.prose h2{font-size:27px;font-weight:800;margin:40px 0 14px;padding-top:22px;border-top:1px solid var(--rule)}
.prose h3{font-size:21px;font-weight:700;margin:28px 0 10px}
.prose p{margin:0 0 18px}
.prose ul,.prose ol{margin:0 0 18px 22px}
.prose li{margin-bottom:8px}
.prose a{color:var(--stamp-dark);text-decoration:none;border-bottom:1px solid var(--stamp)}
.prose a:hover{color:var(--stamp)}
.prose blockquote{border-left:3px solid var(--rule-dark);padding:6px 0 6px 20px;margin:0 0 18px;font-style:italic;color:#4a4c39}
.prose table{border-collapse:collapse;width:100%;margin:0 0 22px;font-size:15px}
.prose th{font-family:'Libre Franklin';font-weight:700;text-align:left;border-bottom:2px solid var(--olive);padding:8px 10px}
.prose td{border-bottom:1px solid var(--rule);padding:8px 10px;vertical-align:top}
.prose figure{margin:26px 0}
.prose figcaption{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--olive-soft);padding-top:8px}
/* site-specific note treatment: "margin flag" - mono flag word in the margin rule, no tinted box */
.prose .fieldnote{margin:26px 0;padding:14px 0 12px;border-top:2px solid var(--olive);border-bottom:1px solid var(--rule)}
.prose .fieldnote .fn-label{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--olive-soft);display:block;margin-bottom:6px}
.prose .fieldnote p{margin:0;font-size:16px}

/* ---------- FAQ register ---------- */
.faq{padding:44px 0 60px}
.faq h2{font-size:30px;font-weight:900;margin-bottom:10px;border-top:0}
.faq .intro{max-width:640px;color:#4a4c39;margin-bottom:26px}
.faq details{border-top:1px solid var(--rule)}
.faq details:last-of-type{border-bottom:1px solid var(--rule)}
.faq summary{display:grid;grid-template-columns:64px 1fr 30px;align-items:center;gap:16px;padding:18px 0;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq .qno{font-family:'Overpass Mono',monospace;font-size:12px;color:var(--stamp);letter-spacing:.1em}
.faq summary h3{font-size:18px;font-weight:700;font-family:'Libre Franklin'}
.faq .indicator{font-family:'Overpass Mono',monospace;color:var(--olive-soft);text-align:right}
.faq details[open] .indicator::before{content:"\2013"}
.faq details:not([open]) .indicator::before{content:"+"}
.faq .answer{padding:0 0 22px 80px;max-width:760px;color:#3d3f2e}

/* ---------- author credits strip ---------- */
.authorbox{padding:8px 0 4px}
.authorbox-inner{max-width:760px;display:grid;grid-template-columns:112px 1fr;gap:22px;align-items:start;padding:18px 0 20px;border-top:2px solid var(--olive);border-bottom:1px solid var(--rule)}
.authorbox-portrait{display:block;border:1px solid var(--rule-dark);padding:6px;background:#fff;position:relative}
.authorbox-portrait::after{content:"";position:absolute;inset:3px;border:1px dashed var(--rule-dark);pointer-events:none}
.authorbox-portrait img{display:block;width:100%;height:auto}
.authorbox-label{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--stamp);display:block;margin-bottom:4px}
.authorbox-name{font-family:'Libre Franklin';font-weight:800;font-size:20px;margin:0 0 6px}
.authorbox-bio{font-size:15.5px;color:#4a4c39;line-height:1.6;margin:0}

/* ---------- manifest check (allowance tool) ---------- */
.allowance{margin:26px 0;border-top:2px solid var(--olive);border-bottom:1px solid var(--rule)}
.allowance-head{padding:14px 0 4px}
.allowance-label{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--olive-soft);display:block;margin-bottom:6px}
.allowance-sub{font-size:15.5px;color:#4a4c39;margin:0 0 12px}
.allowance-row{display:grid;grid-template-columns:1fr 110px 150px 72px;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--rule)}
.allowance-row label{font-family:'Libre Franklin';font-weight:600;font-size:15px}
.allowance-row input{font-family:'Overpass Mono',monospace;font-size:15px;padding:7px 10px;border:1px solid var(--rule-dark);background:#fff;color:var(--ink);width:100%}
.allowance-row input:focus{outline:2px solid var(--stamp);outline-offset:-1px}
.allowance-limit{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--olive-soft)}
.allowance-status{font-family:'Overpass Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.1em;text-align:right;color:var(--olive-soft)}
.allowance-row.is-ok .allowance-status{color:var(--olive)}
.allowance-row.is-over .allowance-status{color:var(--stamp)}
.allowance-strict{display:block;font-family:'Overpass Mono',monospace;font-size:12px;letter-spacing:.04em;color:#4a4c39;padding:12px 0;border-top:1px solid var(--rule);cursor:pointer}
.allowance-strict input{margin-right:8px;accent-color:var(--stamp)}
.allowance-verdict{display:flex;align-items:baseline;gap:18px;padding:14px 0;border-top:1px solid var(--rule);flex-wrap:wrap}
.allowance-verdict-stamp{font-family:'Overpass Mono',monospace;font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--olive-soft);border:2px solid currentColor;padding:6px 14px;flex:none}
.allowance-verdict-stamp.is-ok{color:var(--olive);transform:rotate(-1.2deg)}
.allowance-verdict-stamp.is-over{color:var(--stamp);transform:rotate(-1.2deg)}
.allowance-verdict-note{font-size:15px;color:#3d3f2e;margin:0;max-width:520px}
.allowance-fine{font-size:13px;color:var(--olive-soft);line-height:1.6;padding:10px 0 16px;border-top:1px solid var(--rule);margin:0}

/* ---------- about-page author block (portrait floated inside the paragraph
   - wpautop-safe: no bare inline content directly under a block wrapper) ---------- */
.prose p.about-author{overflow:auto}
.prose p.about-author .authorbox-portrait{float:left;width:96px;margin:5px 20px 6px 0}

/* ---------- infographic figure ---------- */
.prose figure.infographic svg{display:block;width:100%;height:auto}

/* ---------- infographic embed offer ---------- */
.ig-embed{margin-top:8px}
.ig-embed summary{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--stamp-dark);cursor:pointer;list-style:none;display:inline-block;border-bottom:1px dashed var(--stamp)}
.ig-embed summary::-webkit-details-marker{display:none}
.ig-embed textarea{width:100%;margin-top:8px;font-family:'Overpass Mono',monospace;font-size:11.5px;padding:8px;border:1px solid var(--rule-dark);background:#fff;color:var(--ink);resize:vertical}

/* ---------- entry examination (front-page quiz) ---------- */
.quiz-exam{padding:50px 0 10px;border-top:1px solid var(--rule)}
.quiz-intro{max-width:640px;color:#4a4c39;margin:0 0 22px}
.quiz-strip{display:flex;gap:14px;flex-wrap:wrap;padding:16px 0 20px;border-top:2px solid var(--olive);border-bottom:1px solid var(--rule)}
.quiz-stamp{width:44px;height:44px;position:relative;display:flex;align-items:center;justify-content:center;color:var(--rule-dark)}
.quiz-stamp svg{position:absolute;inset:0}
.quiz-stamp b{font-family:'Overpass Mono',monospace;font-size:11px;font-weight:600;color:var(--rule-dark)}
.quiz-stamp.is-inked{color:var(--stamp);transform:rotate(-6deg)}
.quiz-stamp.is-inked svg polygon{stroke-dasharray:none;fill:rgba(142,43,87,.12)}
.quiz-stamp.is-inked b{color:var(--stamp-dark)}
.quiz-stamp.is-refused{color:var(--rule)}
.quiz-stamp.is-refused b{color:var(--rule);text-decoration:line-through}
.quiz-body{max-width:760px;padding:22px 0 26px}
.quiz-qno{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--stamp);margin:0 0 10px}
.quiz-q{font-size:22px;font-weight:800;margin:0 0 18px}
.quiz-options{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule)}
.quiz-option{font-family:'Libre Franklin';font-weight:600;font-size:16px;text-align:left;padding:13px 14px;background:none;border:0;border-bottom:1px solid var(--rule);cursor:pointer;color:var(--ink)}
.quiz-option:hover:not(:disabled){background:var(--panel)}
.quiz-option:disabled{cursor:default;color:var(--olive-soft)}
.quiz-option.is-correct{color:var(--olive);font-weight:700;background:var(--panel)}
.quiz-option.is-wrong{color:var(--stamp);text-decoration:line-through}
.quiz-feedback{padding-top:16px}
.quiz-verdict{font-family:'Overpass Mono',monospace;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;border:2px solid currentColor;padding:5px 12px;display:inline-block;transform:rotate(-1.2deg)}
.quiz-verdict.is-ok{color:var(--olive)}
.quiz-verdict.is-over{color:var(--stamp)}
.quiz-verdict.is-final{color:var(--stamp-dark);font-size:15px;padding:8px 18px}
.quiz-note{font-size:15.5px;color:#3d3f2e;margin:12px 0 16px;max-width:560px}
.quiz-note a{color:var(--stamp-dark);text-decoration:none;border-bottom:1px solid var(--stamp)}
.quiz-next{font-family:'Overpass Mono',monospace;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--paper);background:var(--olive);border:0;padding:10px 18px;cursor:pointer}
.quiz-next:hover{background:var(--stamp-dark)}
.quiz-result{padding-top:6px}
.quiz-score{font-family:'Overpass Mono',monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--olive-soft);margin:14px 0 6px}

/* ---------- footer ---------- */
footer.site-foot{background:var(--olive);color:#CFCBB2;margin-top:50px}
footer.site-foot .cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;padding-top:44px;padding-bottom:30px}
footer.site-foot h2{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#F4F1E6;margin-bottom:14px;font-weight:600}
footer.site-foot p{font-size:14.5px;line-height:1.6}
footer.site-foot ul{list-style:none}
footer.site-foot li{margin-bottom:8px}
footer.site-foot a{color:#E4E0C8;text-decoration:none;font-family:'Libre Franklin';font-size:14px}
footer.site-foot a:hover{color:#fff;border-bottom:1px solid var(--stamp)}
.footline{border-top:1px solid #565A3C}
.footline .wrap{display:flex;justify-content:space-between;padding-top:14px;padding-bottom:16px;gap:14px}
.footline span{font-family:'Overpass Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase}

/* ---------- 404 / search ---------- */
.plainpage{padding:60px 0}
.plainpage h1{font-size:38px;font-weight:900;margin-bottom:16px}
.plainpage p{max-width:640px}

/* ---------- responsive ---------- */
@media(max-width:880px){
  .lead .wrap{grid-template-columns:1fr}
  .register .wrap{grid-template-columns:1fr 1fr}
  .register .cell{border-left:0;padding-left:0}
  .band{grid-template-columns:56px 1fr}
  .band .thumb{display:none}
  footer.site-foot .cols{grid-template-columns:1fr}
  nav.primary ul{gap:16px;flex-wrap:wrap}
  .masthead .wrap{flex-direction:column;gap:14px;align-items:flex-start}
  .faq summary{grid-template-columns:44px 1fr 24px}
  .faq .answer{padding-left:60px}
  .authorbox-inner{grid-template-columns:84px 1fr;gap:16px}
  .allowance-row{grid-template-columns:1fr 96px;grid-template-areas:"label input" "limit status"}
  .allowance-row label{grid-area:label}
  .allowance-row input{grid-area:input}
  .allowance-limit{grid-area:limit}
  .allowance-status{grid-area:status}
}
