/*
Theme Name: Steve Noske
Description: Custom block theme for the Steve Noske website. The theme holds the design, the header and the footer. The page text is in the WordPress pages.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: stevennoske
*/

/* Layout: quiet executive site. Narrow measure, left-aligned, ochre rule marks sections. */
:root{
  --bg:#F2F3F1; --surface:#FFFFFF; --fg:#152333; --muted:#55636F; --line:#D5DAD8;
  --accent:#B4541C; --accent-ink:#8E3F10; --navy:#0F1E2E; --navy-fg:#E9EDEF;
  --display:"Barlow Semi Condensed","Arial Narrow",Arial,sans-serif;
  --body:"Public Sans","Segoe UI",Helvetica,Arial,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0F1A25; --surface:#16232F; --fg:#E6EAEC; --muted:#9FADB7; --line:#2A3946;
  --accent:#E08A52; --accent-ink:#F0A26E; --navy:#0A141D; --navy-fg:#E9EDEF; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0F1A25; --surface:#16232F; --fg:#E6EAEC; --muted:#9FADB7; --line:#2A3946;
  --accent:#E08A52; --accent-ink:#F0A26E; --navy:#0A141D; --navy-fg:#E9EDEF; color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:17px;line-height:1.6}
a{color:var(--accent-ink);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--accent)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1,h2,h3{font-family:var(--display);line-height:1.08;margin:0;text-wrap:balance;letter-spacing:-.005em}
h1{font-size:clamp(2.4rem,6vw,4.2rem);font-weight:600}
h2{font-size:clamp(1.7rem,3.5vw,2.4rem);font-weight:600}
h3{font-size:1.3rem;font-weight:600}
p{margin:0}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.eyebrow{font-family:var(--display);text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:600;color:var(--accent-ink)}
.eyebrow::before{content:"";display:inline-block;width:22px;height:2px;background:var(--accent);vertical-align:middle;margin-right:10px}
.measure{max-width:64ch}
.muted{color:var(--muted)}

/* header */
.top{border-bottom:1px solid var(--line);background:var(--bg)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:18px}
.brand{font-family:var(--display);font-weight:700;font-size:1.25rem;letter-spacing:.01em}
.brand a{text-decoration:none;color:var(--fg)}
.brand a::after{content:".";color:var(--accent)}
.main.wp-block-navigation,
.main .wp-block-navigation__container{display:flex;gap:4px 22px;flex-wrap:wrap}
body .main .wp-block-navigation-item__content.wp-block-navigation-item__content{font-family:var(--display);font-size:1rem;font-weight:500;line-height:1.6;text-decoration:none;color:var(--muted);padding:6px 0;border-bottom:2px solid transparent}
body .main .wp-block-navigation-item__content.wp-block-navigation-item__content:hover{color:var(--fg)}
body .main .wp-block-navigation-item__content.wp-block-navigation-item__content[aria-current="page"]{color:var(--fg);border-bottom-color:var(--accent)}

/* sections */
section{padding-block:56px}
section + section{border-top:1px solid var(--line)}
.stack{display:grid;gap:18px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px}
.grid2>*,.grid3>*{min-width:0}

/* hero */
.hero{padding-block:72px 64px}
.hero .wrap{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.hero h1{margin-top:12px}
.hero .lede{font-size:1.2rem;margin-top:22px;color:var(--muted);max-width:56ch}
.hero .tagline{font-family:var(--display);font-size:1.25rem;font-weight:500;margin-top:14px;color:var(--fg)}
.hero.page-hero{padding-bottom:40px}
.hero.page-hero .wrap{grid-template-columns:1fr}
.hero.page-hero h1{font-size:clamp(2rem,5vw,3.4rem)}
.cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

/* buttons: default style = filled navy, "Outline" style = outlined */
body .wp-block-buttons > .wp-block-button > .wp-block-button__link{font-family:var(--display);font-weight:600;font-size:1.05rem;line-height:1.6;text-decoration:none;padding:12px 22px;border:1.5px solid var(--navy);border-radius:3px;background:var(--navy);color:var(--navy-fg);display:inline-block}
body .wp-block-buttons > .wp-block-button > .wp-block-button__link:hover{background:var(--accent);border-color:var(--accent);color:#fff}
body .wp-block-buttons > .wp-block-button.is-style-outline > .wp-block-button__link{background:transparent;border-color:var(--fg);color:var(--fg)}
body .wp-block-buttons > .wp-block-button.is-style-outline > .wp-block-button__link:hover{background:transparent;border-color:var(--accent);color:var(--accent-ink)}
body .band .wp-block-buttons > .wp-block-button.is-style-outline > .wp-block-button__link{border-color:#F2B58A;color:#F2B58A}

.portrait{width:220px;height:220px;margin:0;border-radius:50%;background:var(--navy);color:var(--navy-fg);display:grid;place-items:center;font-family:var(--display);font-size:4rem;font-weight:600;line-height:1;box-shadow:inset 0 0 0 6px var(--bg),0 0 0 1px var(--line);max-width:100%;overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover;border-radius:50%}
@media (max-width:720px){.hero .wrap{grid-template-columns:1fr}.portrait{width:150px;height:150px;font-size:2.8rem}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--surface)}
.stats > *{padding:20px 22px;border-right:1px solid var(--line)}
.stats > *:last-child{border-right:0}
.stats .stat-num{font-family:var(--display);font-size:2.2rem;font-weight:600;line-height:1;color:var(--fg);font-variant-numeric:tabular-nums}
.stats .stat-label{color:var(--muted);font-size:.95rem;line-height:calc(17px * 1.6)}
@media (max-width:720px){.stats > *{border-right:0;border-bottom:1px solid var(--line)}.stats > *:last-child{border-bottom:0}}

/* pillars */
.pillar h3{margin-top:10px}
.pillar p{margin-top:10px;color:var(--muted)}
.pillar .k{margin-top:0;line-height:calc(17px * 1.6);font-family:var(--display);font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);font-weight:600}

/* dark band */
.band{background:var(--navy);color:var(--navy-fg)}
.band .eyebrow{color:var(--accent)}
.band .muted{color:#AEB9C2}
.band a{color:#F2B58A}
.band h2{max-width:24ch}
.band .wp-block-quote{margin:0;padding:0;border:0;font-family:var(--display);font-size:clamp(1.3rem,2.6vw,1.8rem);font-weight:500;line-height:1.35}
.band .wp-block-quote p{max-width:30ch}
.band .wp-block-quote cite{display:block;margin-top:18px;font-family:var(--body);font-style:normal;font-weight:400;font-size:.95rem;line-height:1.6;color:#AEB9C2}

/* timeline */
.timeline{display:grid;gap:0;border-left:2px solid var(--line);margin-left:6px}
.role{display:grid;grid-template-columns:140px 1fr;gap:18px;padding:22px 0 22px 28px;position:relative;border-bottom:1px solid var(--line)}
.role:last-child{border-bottom:0}
.role::before{content:"";position:absolute;left:-7px;top:31px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}
.role.current::before{background:var(--accent)}
.role .when{font-family:var(--display);font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;font-size:1rem;padding-top:3px}
.role .org{color:var(--muted);margin-top:2px}
.role .desc{margin-top:10px;max-width:64ch}
.role .where{font-size:.9rem;color:var(--muted);margin-top:6px}
@media (max-width:600px){.role{grid-template-columns:1fr;gap:4px}}

/* projects */
.project{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:26px 26px 24px;display:grid;gap:10px;align-content:start}
.project .k{font-family:var(--display);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink);font-weight:600}
.project p{color:var(--muted)}
/* Facts list: each item starts with a bold label, then the value. */
.project .meta{display:table;border-spacing:0 4px;margin:4px 0 -4px;padding:0;list-style:none;font-size:.92rem}
.project .meta li{display:table-row}
.project .meta strong{display:table-cell;padding-right:14px;color:var(--muted);font-weight:400;white-space:nowrap}

/* insights */
.article{border:1px solid var(--line);background:var(--surface);border-radius:4px;padding:28px;display:grid;gap:12px}
.article .date{font-family:var(--display);color:var(--muted);font-size:.95rem;letter-spacing:.04em}
.article ul{margin:0;padding-left:20px;color:var(--muted);display:grid;gap:6px}

/* contact: each item starts with a bold label, then the value. */
.contact-list{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.contact-list li{position:relative;padding:14px 0 14px 134px;border-bottom:1px solid var(--line)}
.contact-list strong{position:absolute;left:0;top:18px;font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;font-weight:600;line-height:1.6;color:var(--muted)}
.contact-list a{word-break:break-word}
@media (max-width:520px){.contact-list li{padding-left:0}.contact-list strong{position:static;display:block;padding-top:4px;margin-bottom:4px}}

/* footer */
.site-footer{border-top:1px solid var(--line);padding-block:30px 40px;color:var(--muted);font-size:.92rem}
.site-footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.site-footer a{color:var(--muted)}
ul.plain{margin:0;padding-left:20px;display:grid;gap:8px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Spacing classes. Add one to a block under Advanced > Additional CSS class(es).
   They are at the end of the file so that they override the margins above. */
body .mt-s{margin-top:14px}
body .mt-m{margin-top:18px}
body .mt-l{margin-top:22px}
body .mt-xl{margin-top:28px}
