/*
Theme Name: FK Theme
Theme URI: https://farzadkarimi.com
Author: Farzad Karimi
Description: Custom theme for farzadkarimi.com. Titillium Web headings on Source Serif 4 body, warm paper and near-black grounds, amber used sparingly as the single accent. No page builder required.
Version: 4.0
Requires at least: 6.5
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: fk-theme
*/

:root{
  --ink:#14161A;
  --ink-soft:#1F2329;
  --paper:#FAF9F7;
  --paper-2:#F2EFEA;
  --sand:#F6EDE3;
  --line:#E4DFD8;
  --line-dark:#3A3F46;
  --body:#2A2E34;
  --muted:#6B7178;
  --muted-dark:#A8AEB5;

  --amber:#E8792B;
  --amber-deep:#BF5B15;
  --amber-soft:#FBE3CC;
  --slate:#4A5763;

  --good:#0E9F6E;
  --bad:#D23B50;

  --r-sm:4px;
  --r:8px;
  --r-lg:14px;
  color-scheme: light;
}

*{box-sizing:border-box;}

body{
  margin:0;
  background:var(--paper);
  color:var(--body);
  font-family:"Source Serif 4",Georgia,"Times New Roman",serif;
  font-size:18px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,.display{
  font-family:"Titillium Web","Helvetica Neue",Arial,sans-serif;
  font-weight:400;
  color:var(--ink);
  margin:0;
  line-height:1.07;
  letter-spacing:-0.015em;
  text-wrap:balance;
}
h1{font-size:clamp(2.3rem,5.2vw,4.1rem);}
h2{font-size:clamp(2rem,4.4vw,3.2rem);}
h3{font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.2;}
h4{font-size:1.02rem;line-height:1.3;font-weight:600;}

p{margin:0;}
a{color:var(--amber-deep);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
a:hover{color:var(--amber);}
a:focus-visible,.btn:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:2px solid var(--amber);outline-offset:3px;
}
img{max-width:100%;height:auto;display:block;}

/* ---------------------------------------------------------- bands & layout */
.band{width:100%;position:relative;}
.band--paper{background:var(--paper);}
.band--tint{background:var(--paper-2);}
.band--sand{background:var(--sand);}
.band--ink{background:var(--ink);color:#fff;}
.band--ink h1,.band--ink h2,.band--ink h3,.band--ink h4,.band--ink .display{color:#fff;}
.band--ink a{color:#F5B073;}
.band--ink .note{color:var(--muted-dark);}

.wrap{
  max-width:1200px;margin:0 auto;
  padding-inline:clamp(1rem,5vw,3.5rem);
  padding-block:clamp(3.5rem,7vw,7rem);
  position:relative;z-index:1;
}
.wrap--tight{padding-block:clamp(2.5rem,5vw,4.5rem);}

.split{display:grid;grid-template-columns:1fr;gap:clamp(1.5rem,3.5vw,4rem);align-items:start;}
@media (min-width:900px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);}}

.prose{display:flex;flex-direction:column;gap:1.1rem;max-width:66ch;}
.lede{font-size:clamp(1.1rem,1.7vw,1.3rem);line-height:1.5;}
.note{font-size:0.9rem;line-height:1.55;color:var(--muted);max-width:72ch;}

/* ------------------------------------------------------------ eyebrow pill */
.eyebrow{
  display:inline-block;
  font-family:"Titillium Web",Arial,sans-serif;
  font-size:0.72rem;font-weight:600;
  letter-spacing:0.14em;text-transform:uppercase;
  color:var(--amber-deep);
  background:var(--amber-soft);
  border-radius:999px;
  padding:0.36rem 0.85rem;
  margin:0 0 1.1rem;
}
.band--ink .eyebrow{background:rgba(232,121,43,0.18);color:#F5B073;}

/* marker highlight — one phrase per page, no more */
.mark{
  background:linear-gradient(to bottom,transparent 58%,var(--amber-soft) 58%);
  padding:0 0.1em;
}
.band--ink .mark{background:linear-gradient(to bottom,transparent 58%,rgba(232,121,43,0.32) 58%);}

/* ---------------------------------------------------------------- masthead */
.masthead{border-bottom:1px solid var(--line);background:var(--paper);}
.masthead .wrap{padding-block:1rem;display:flex;flex-wrap:wrap;gap:0.6rem 2rem;align-items:center;justify-content:space-between;}
.wordmark{display:flex;align-items:center;gap:0.6rem;text-decoration:none;}
.wordmark__mark{
  width:32px;height:32px;flex:none;border-radius:var(--r-sm);
  background:var(--ink);color:#fff;
  font-family:"Titillium Web",Arial,sans-serif;font-size:0.82rem;font-weight:600;
  letter-spacing:0.02em;display:grid;place-items:center;
}
.wordmark__name{font-family:"Titillium Web",Arial,sans-serif;font-size:1.1rem;color:var(--ink);}
.wordmark:hover .wordmark__mark{background:var(--amber-deep);}
.nav{display:flex;flex-wrap:wrap;gap:0.3rem 1.4rem;font-family:"Titillium Web",Arial,sans-serif;font-size:0.95rem;}
.nav a{color:var(--muted);text-decoration:none;padding:0.2rem 0;}
.nav a:hover{color:var(--ink);}
.nav a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -2px 0 0 var(--amber);}

/* -------------------------------------------------------------------- hero */
.hero .wrap{padding-block:clamp(2.5rem,6vw,5.5rem);}
.hero__grid{display:grid;grid-template-columns:1fr;gap:clamp(2rem,4vw,3.5rem);align-items:center;}
@media (min-width:900px){.hero__grid{grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr);}}
.hero h1{max-width:16ch;}
.portrait{
  position:relative;border-radius:var(--r-lg);overflow:hidden;
  background:var(--paper-2);
}
.portrait img{width:100%;}
.portrait--edge::after{
  content:"";position:absolute;left:0;bottom:0;width:100%;height:5px;background:var(--amber);
}

/* --------------------------------------------------------------- stat tiles */
.stats{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(0.75rem,1.5vw,1.1rem);
  margin-top:clamp(2rem,4vw,3rem);
}
@media (min-width:820px){.stats{grid-template-columns:repeat(4,minmax(0,1fr));}}
.stat{
  background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:1.1rem 1.15rem;
}
.band--ink .stat{background:var(--ink-soft);border-color:var(--line-dark);}
.stat__k{
  display:block;font-family:"Titillium Web",Arial,sans-serif;
  font-size:0.68rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:0.45rem;
}
.band--ink .stat__k{color:var(--muted-dark);}
.stat__v{
  display:block;font-family:"Titillium Web",Arial,sans-serif;
  font-size:clamp(1.7rem,3vw,2.3rem);line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.band--ink .stat__v{color:#fff;}
.stat--accent .stat__v{color:var(--amber-deep);}
.band--ink .stat--accent .stat__v{color:#F5B073;}

/* -------------------------------------------------------------- photo band */
.photoband{position:relative;background:var(--ink);overflow:hidden;}
.photoband__bg{
  position:absolute;inset:0;background-size:cover;background-position:center 38%;
  opacity:0.28;filter:grayscale(0.35);
}
.photoband::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(20,22,26,0.94) 0%,rgba(20,22,26,0.78) 55%,rgba(20,22,26,0.5) 100%);
}
.photoband .wrap{z-index:2;}
.photoband,
.photoband h1,.photoband h2,.photoband h3,.photoband h4,.photoband .display{color:#fff;}
.photoband p{color:#EDEAE6;}
.photoband .note{color:var(--muted-dark);}
.photoband .lede{color:#fff;}
.photoband .eyebrow{background:rgba(232,121,43,0.2);color:#F5B073;}
.photoband .mark{background:linear-gradient(to bottom,transparent 58%,rgba(232,121,43,0.34) 58%);}
.photoband a{color:#F5B073;}
.photoband .rows,.photoband .row,.photoband .figures,.photoband .plain li{border-color:var(--line-dark);}
.photoband .stat{background:rgba(255,255,255,0.07);border-color:var(--line-dark);}
.photoband .stat__k{color:var(--muted-dark);}
.photoband .stat__v{color:#fff;}
.photoband .stat--accent .stat__v{color:#F5B073;}
.photoband .figure__value{color:#fff;}
.photoband .figure__label{color:var(--muted-dark);}
.photoband .btn--primary{background:var(--amber);color:#14161A;}
.photoband .btn--primary:hover{background:#F5B073;}
.photoband .btn--ghost{color:#fff;border-color:var(--line-dark);}
.photoband .btn--ghost:hover{border-color:#fff;}

/* ------------------------------------------------------------ hairline rows */
.rows{margin-top:clamp(2rem,4vw,3.2rem);border-top:1px solid var(--line);}
.band--ink .rows{border-color:var(--line-dark);}
.row{
  display:grid;grid-template-columns:1fr;gap:0.45rem clamp(1.5rem,4vw,4rem);
  padding-block:1.5rem;border-bottom:1px solid var(--line);align-items:baseline;
}
.band--ink .row{border-color:var(--line-dark);}
.row p{max-width:60ch;}
@media (min-width:780px){.row{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);}}

/* ------------------------------------------------------------ work entries */
.entry{border-top:1px solid var(--line);padding-block:clamp(2rem,4vw,3rem);}
.entry:first-of-type{border-top:0;padding-top:0;}
.entry__meta{
  font-family:"Titillium Web",Arial,sans-serif;font-size:0.74rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);
  margin-bottom:0.7rem;display:flex;flex-wrap:wrap;gap:0.3rem 1rem;
}
.entry h3{margin-bottom:0.8rem;max-width:24ch;}
.entry .prose{max-width:64ch;}
.stack{
  margin-top:1.2rem;padding:0.9rem 1.05rem;background:var(--sand);border-radius:var(--r);
  font-family:"Titillium Web",Arial,sans-serif;font-size:0.88rem;color:var(--slate);
}
.stack strong{
  color:var(--ink);font-weight:600;letter-spacing:0.1em;text-transform:uppercase;
  font-size:0.68rem;display:block;margin-bottom:0.3rem;
}

/* ------------------------------------------------------------------- chart */
.chart{
  margin-top:clamp(2rem,4vw,3rem);background:#fff;border:1px solid var(--line);
  border-radius:var(--r-lg);padding:clamp(1.25rem,2.5vw,1.9rem);
}
.chart__title{
  font-family:"Titillium Web",Arial,sans-serif;font-size:0.95rem;font-weight:600;
  color:var(--ink);margin-bottom:0.25rem;
}
.chart__sub{font-size:0.88rem;color:var(--muted);margin-bottom:1.3rem;}
.chart svg{width:100%;height:auto;display:block;overflow:visible;}
.chart__foot{margin-top:1.1rem;font-size:0.82rem;color:var(--muted);}

/* ------------------------------------------------------------------ figures */
.figures{
  margin-top:clamp(2rem,4vw,3rem);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:clamp(1.25rem,2.5vw,2.25rem);
  border-top:1px solid var(--line);padding-top:1.6rem;
}
.band--ink .figures{border-color:var(--line-dark);}
.figure__value{
  font-family:"Titillium Web",Arial,sans-serif;
  font-size:clamp(2rem,3.8vw,2.8rem);line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums;display:block;
}
.band--ink .figure__value{color:#fff;}
.figure__label{display:block;margin-top:0.5rem;font-size:0.88rem;color:var(--muted);line-height:1.42;}
.band--ink .figure__label{color:var(--muted-dark);}

/* ---------------------------------------------------------------- timeline */
.cv{margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line);}
.cv__item{display:grid;grid-template-columns:1fr;gap:0.3rem clamp(1.5rem,4vw,3.5rem);padding-block:1.6rem;border-bottom:1px solid var(--line);}
@media (min-width:780px){.cv__item{grid-template-columns:minmax(0,9rem) minmax(0,1fr);}}
.cv__when{font-family:"Titillium Web",Arial,sans-serif;font-size:0.84rem;color:var(--muted);font-variant-numeric:tabular-nums;}
.cv__role{font-family:"Titillium Web",Arial,sans-serif;font-size:1.18rem;color:var(--ink);line-height:1.25;}
.cv__org{font-size:0.94rem;color:var(--muted);margin-top:0.15rem;}
.cv__body{margin-top:0.7rem;max-width:62ch;}
.cv__item--flag{background:linear-gradient(90deg,var(--sand),transparent 70%);border-radius:var(--r);padding-inline:1rem;}

/* -------------------------------------------------------------- capability */
.caps{margin-top:clamp(2rem,4vw,3rem);display:grid;grid-template-columns:1fr;gap:clamp(0.75rem,1.5vw,1.1rem);}
@media (min-width:640px){.caps{grid-template-columns:repeat(2,1fr);}}
@media (min-width:1000px){.caps{grid-template-columns:repeat(3,1fr);}}
.cap{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:1.15rem 1.2rem;}
.cap h4{margin-bottom:0.4rem;color:var(--ink);}
.cap p{font-size:0.94rem;color:var(--muted);}
.cap__rule{width:26px;height:2px;background:var(--amber);margin-bottom:0.8rem;border-radius:2px;}

/* ------------------------------------------------------------------- lists */
.plain{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;}
.plain li{padding-block:0.8rem;border-bottom:1px solid var(--line);display:flex;gap:0.9rem;align-items:baseline;}
.plain li::before{content:"";flex:none;width:14px;height:2px;background:var(--amber);transform:translateY(-5px);border-radius:2px;}
.band--ink .plain li{border-color:var(--line-dark);}

/* ----------------------------------------------------------------- buttons */
.btn{
  display:inline-block;font-family:"Titillium Web",Arial,sans-serif;
  font-size:0.97rem;font-weight:600;
  padding:0.85rem 1.6rem;border:1px solid transparent;border-radius:var(--r-sm);
  text-decoration:none;transition:background 120ms ease,color 120ms ease,border-color 120ms ease;
}
.btn--primary{background:var(--ink);color:#fff;}
.btn--primary:hover{background:var(--amber-deep);color:#fff;}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line);}
.btn--ghost:hover{border-color:var(--ink);color:var(--ink);}
.band--ink .btn--primary{background:var(--amber);color:#14161A;}
.band--ink .btn--primary:hover{background:#F5B073;}
.band--ink .btn--ghost{color:#fff;border-color:var(--line-dark);}
.band--ink .btn--ghost:hover{border-color:#fff;}
.btnrow{margin-top:clamp(1.6rem,3vw,2.3rem);display:flex;flex-wrap:wrap;gap:0.8rem;}

/* ------------------------------------------------------------- pull / quote */
.pull .display{font-size:clamp(1.6rem,3.6vw,2.8rem);max-width:26ch;line-height:1.14;}

/* ---------------------------------------------------------------- colophon */
.colophon{border-top:1px solid var(--line-dark);background:var(--ink);color:#fff;}
.colophon .wrap{padding-block:2.6rem;display:grid;grid-template-columns:1fr;gap:1.6rem clamp(2rem,4vw,4rem);}
@media (min-width:780px){.colophon .wrap{grid-template-columns:1.3fr 1fr 1fr;}}
.colophon .name{font-family:"Titillium Web",Arial,sans-serif;font-size:1.1rem;color:#fff;}
.colophon p{font-size:0.9rem;color:var(--muted-dark);}
.colophon h4{font-family:"Titillium Web",Arial,sans-serif;font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted-dark);margin-bottom:0.6rem;}
.colophon ul,.colophon .menu{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:0.35rem;}
.colophon a{color:#EDEAE6;text-decoration:none;font-size:0.92rem;}
.colophon a:hover{color:var(--amber);text-decoration:underline;}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}


/* -------------------------------------------------------------------- forms */
.form{margin-top:clamp(2rem,4vw,3rem);display:flex;flex-direction:column;gap:1.3rem;max-width:34rem;}
.field{display:flex;flex-direction:column;gap:0.45rem;}
.field label{
  font-family:"Titillium Web",Arial,sans-serif;font-size:0.72rem;font-weight:600;
  letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);
}
.field input,.field textarea,.field select{
  font-family:"Source Serif 4",Georgia,serif;font-size:1rem;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:0.8rem 0.9rem;width:100%;line-height:1.5;
}
.field textarea{min-height:9rem;resize:vertical;}
.field input::placeholder,.field textarea::placeholder{color:#9AA0A6;}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--amber);}

/* Fluent Forms output, restyled to match the site */
.fluentform{max-width:34rem;}
.fluentform .ff-el-group{margin-bottom:1.3rem;}
.fluentform .ff-el-input--label label{
  font-family:"Titillium Web",Arial,sans-serif;font-size:0.72rem;font-weight:600;
  letter-spacing:0.12em;text-transform:uppercase;color:var(--muted);margin-bottom:0.45rem;
}
.fluentform .ff-el-form-control,
.fluentform input[type=text],.fluentform input[type=email],
.fluentform textarea,.fluentform select{
  font-family:"Source Serif 4",Georgia,serif;font-size:1rem;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  padding:0.8rem 0.9rem;width:100%;line-height:1.5;box-shadow:none;
}
.fluentform textarea{min-height:9rem;}
.fluentform .ff-el-form-control:focus{border-color:var(--amber);box-shadow:none;outline:2px solid var(--amber);outline-offset:2px;}
.fluentform .ff-btn-submit,.fluentform button[type=submit]{
  font-family:"Titillium Web",Arial,sans-serif;font-size:0.97rem;font-weight:600;
  background:var(--ink);color:#fff;border:0;border-radius:var(--r-sm);
  padding:0.85rem 1.6rem;cursor:pointer;transition:background 120ms ease;
}
.fluentform .ff-btn-submit:hover,.fluentform button[type=submit]:hover{background:var(--amber-deep);}
.fluentform .ff-el-is-error .ff-el-form-control{border-color:var(--bad);}
.fluentform .error,.fluentform .text-danger{color:var(--bad);font-size:0.88rem;}
.fluentform .ff-message-success{
  background:var(--sand);border:1px solid var(--line);border-radius:var(--r);
  padding:1rem 1.1rem;color:var(--ink);
}


/* ---------- WordPress additions ---------- */
.entry-content{margin:0;}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
.skip-link{position:absolute;left:-9999px;}
.skip-link:focus{left:1rem;top:1rem;z-index:99;background:var(--paper);padding:0.75rem 1rem;border:1px solid var(--amber);}

.post-list{margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line);}
.post-item{padding-block:1.8rem;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr;gap:0.4rem clamp(1.5rem,4vw,3.5rem);}
@media (min-width:780px){.post-item{grid-template-columns:minmax(0,9rem) minmax(0,1fr);}}
.post-item time{font-family:"Titillium Web",Arial,sans-serif;font-size:0.84rem;color:var(--muted);font-variant-numeric:tabular-nums;}
.post-item h2{font-size:clamp(1.3rem,2.2vw,1.7rem);}
.post-item h2 a{color:var(--ink);text-decoration:none;}
.post-item h2 a:hover{color:var(--amber-deep);}
.post-item p{margin-top:0.5rem;max-width:62ch;color:var(--muted);font-size:0.97rem;}

.entry-body{max-width:66ch;}
.entry-body h2{font-size:clamp(1.5rem,2.6vw,2rem);margin-top:2.4rem;}
.entry-body h3{margin-top:2rem;}
.entry-body p,.entry-body ul,.entry-body ol{margin-top:1.1rem;}
.entry-body ul,.entry-body ol{padding-left:1.3rem;}
.entry-body li{margin-top:0.4rem;}
.entry-body blockquote{margin:2rem 0;padding-left:1.4rem;border-left:3px solid var(--amber);color:var(--muted);}
.entry-body pre{background:var(--paper-2);padding:1.1rem;overflow-x:auto;border-radius:var(--r);}
.entry-body code,.entry-body pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:0.92em;}
.entry-meta{font-family:"Titillium Web",Arial,sans-serif;font-size:0.84rem;color:var(--muted);margin-bottom:1.2rem;}

.pagination{margin-top:2.5rem;display:flex;gap:0.6rem;font-family:"Titillium Web",Arial,sans-serif;}
.pagination a,.pagination span{padding:0.5rem 0.9rem;border:1px solid var(--line);border-radius:var(--r-sm);text-decoration:none;color:var(--body);}
.pagination .current{border-color:var(--amber);color:var(--amber-deep);}

.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0.3rem 1.4rem;}
.nav li{margin:0;}
.colophon .menu{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.35rem;}
