/*
Theme Name: Techiegigs
Theme URI: https://techiegigs.com/
Author: Techiegigs
Description: Custom theme for techiegigs.com, built from the Techiegigs Claude Design project.
Version: 0.1.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: techiegigs
*/

/* ---------- Fonts (self-hosted copies of Google Fonts' latin + latin-ext files, Oct 2026) ---------- */
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url(assets/fonts/jost-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:100 900;font-display:swap;src:url(assets/fonts/jost-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/instrument-serif-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/instrument-serif-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/instrument-serif-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(assets/fonts/instrument-serif-italic-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}

/* ---------- Design tokens (from _ds/techiegigs/tokens) ---------- */
:root{
  --tg-blue:#05449A;--tg-orange:#EF7F38;--tg-peach:#E5A472;
  /* Brand kit (18 Oct 2026): 12 colours, each with one job (design README "Brand kit"). Old token names kept, values remapped as in the design's tokens/colors.css. */
  --navy-975:#021025;--navy-950:#021025;--navy-900:#052350;--navy-850:#052350;--navy-800:#072E63;--navy-700:#052350;--navy-600:rgba(253,243,232,.14);
  --cream-50:#FFFAF4;--cream-100:#FDF3E8;--cream-200:#F6E7D7;--cream-300:#F6E7D7;
  --orange-400:#EF7F38;--orange-450:#D9622A;--orange-500:#EF7F38;--orange-700:#B84D17;--orange-800:#B84D17;--peach-300:#E5A472;
  --cobalt-600:#1F63C4;--azure-600:#3384D6;--logo-blue:#05449A;
  --ink-900:#0B1A33;--ink-800:#0B1A33;--ink-600:#3E4F6B;--white:#FFFAF4;
  --slab:rgba(5,35,80,.85); /* text on photos */

  --font-sans:'Jost',ui-sans-serif,system-ui,sans-serif;
  --font-serif:'Instrument Serif',Georgia,serif;

  --gutter-mobile:16px;--gutter-tablet:32px;--gutter-desktop:80px;--container-max:1280px;
  --radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;
  --ease-out:cubic-bezier(.2,.7,.2,1);
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
body{background:var(--cream-50);color:var(--ink-900);font:400 15px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-underline-offset:2px}
img{display:block;max-width:100%;height:auto}
.icon{flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link:focus{position:fixed;top:8px;left:8px;z-index:100;width:auto;height:auto;clip:auto;padding:12px 16px;border-radius:var(--radius-md);background:var(--cream-100);color:var(--ink-900)}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}

/* ---------- Site header ---------- */
.site-header{--hbg:var(--navy-800);--hfg:var(--cream-100);--hh:64px;position:sticky;top:0;z-index:30;background:var(--hbg);color:var(--hfg);border-bottom:1px solid rgba(253,243,232,.14)}
.site-header--orange{--hbg:var(--orange-500)}
.site-header--cream{--hbg:var(--cream-100);--hfg:var(--ink-900);border-bottom:1px solid rgba(11,26,51,.1)}
.site-header--white{--hbg:#FFFAF4;--hfg:var(--ink-900);border-bottom:1px solid rgba(11,26,51,.1)}
.site-header--black{--hbg:#0B0B0C}
.admin-bar .site-header{top:var(--wp-admin--admin-bar--height,0)}
.hbar{height:var(--hh);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 var(--gutter-mobile)}
.hbar__logo{display:flex}
.hbar__logo img{height:32px;width:auto}
.hnav{display:none}
.hmenu > summary{display:grid;place-items:center;width:44px;height:44px;margin-right:-12px;color:var(--hfg)}
.hbar__end{display:flex;align-items:center;gap:8px}
.hprog > summary{display:flex;align-items:center;gap:4px;height:44px;padding:0 12px 0 16px;border-radius:12px;background:var(--cream-100);color:var(--ink-900);font:600 15px var(--font-sans);white-space:nowrap;cursor:pointer}
.hmenu .i-close,.hmenu[open] .i-open,.hprog .i-close,.hprog[open] .i-open{display:none}
.hmenu[open] .i-close,.hprog[open] .i-close{display:flex}
.hmenu__panel{position:absolute;top:var(--hh);left:0;right:0;z-index:40;max-height:calc(100vh - var(--hh));overflow-y:auto;background:var(--hbg);border-top:1px solid rgba(253,243,232,.14);padding:4px 20px 32px}
.hmenu__group{display:flex;flex-direction:column;gap:4px;padding:16px 0;border-bottom:1px solid rgba(253,243,232,.14)}
.hmenu__title{font:600 14px/1 var(--font-sans);letter-spacing:.1em;text-transform:uppercase;opacity:.7;padding-bottom:8px}
.hprog .hmenu__title{color:var(--orange-500);opacity:1}
.hmenu__item{display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:44px;padding:12px 0;color:var(--hfg);text-decoration:none}
.hmenu__item b{font:600 16px/1.25 var(--font-sans)}
.hmenu__item span{font:400 14px/1.35 var(--font-sans);opacity:.7}
.iconnav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:640px;margin:0 auto;padding:4px 12px 0}
.iconnav a{min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 8px 0;color:var(--hfg);text-decoration:none;font:400 14px/1 var(--font-sans);white-space:nowrap}
.iconnav a::after{content:"";height:3px;width:100%;border-radius:3px 3px 0 0;background:var(--hfg);opacity:0;margin-top:4px}
.iconnav a[aria-current="page"]{font-weight:600}
.iconnav a[aria-current="page"]::after{opacity:1}

@media (min-width:768px){
  .site-header{--hh:72px}
  .hbar{padding:0 var(--gutter-tablet)}
  .hbar__logo img{height:36px}
}
@media (min-width:1280px){
  .site-header{--hh:84px}
  .hbar{gap:24px;padding:0 var(--gutter-desktop)}
  .hbar__logo img{height:40px}
  .hbar__end,.iconnav{display:none}
  .hnav{display:flex;align-items:center;gap:clamp(16px,2vw,32px)}
  .hnav > a,.hnav summary{display:flex;align-items:center;gap:4px;color:var(--hfg);text-decoration:none;font:500 14px var(--font-sans);white-space:nowrap}
  .hdrop{position:relative}
  .hdrop__panel{position:absolute;top:calc(100% + 26px);z-index:40;display:grid;gap:8px 24px;padding:20px;border-radius:20px;background:var(--cream-100);border:1px solid rgba(11,26,51,.14);color:var(--ink-900)}
  .hdrop--programs .hdrop__panel{left:50%;transform:translateX(-50%);width:520px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .hdrop--more .hdrop__panel{right:-20px;width:560px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .hdrop--more .hdrop__panel:has(> .hdrop__group:only-child){width:300px;grid-template-columns:minmax(0,1fr)}
  .hdrop__group{display:flex;flex-direction:column;gap:4px;min-width:0}
  .hdrop__title{font:600 14px/1 var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--orange-700);padding:4px 12px 8px}
  .hdrop__item{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:12px;color:var(--ink-900);text-decoration:none}
  .hdrop__item:hover{background:rgba(11,26,51,.06);color:var(--ink-900)}
  .hdrop__item b{font:600 15px/1.25 var(--font-sans)}
  .hdrop__item span{font:400 14px/1.35 var(--font-sans);color:rgba(11,26,51,.65)}
}

/* ---------- Stats strip (Home, About, Hire From Us, programs; design 19 Oct): cream panel, 3 small stats at every width ---------- */
.tg-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px;border-radius:20px;background:var(--cream-200);border:1px solid rgba(11,26,51,.12);color:var(--ink-900);text-align:center}
.tg-stats div{min-width:0;display:flex;flex-direction:column;align-items:center;gap:8px}
.tg-stats b{font:700 28px/1 var(--font-sans);letter-spacing:-.01em}
.tg-stats span{font:600 14px/1.2 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;opacity:.8}
@media (min-width:768px){.tg-stats br{display:none}}

/* ---------- Site footer ---------- */
.site-footer{--ffg:var(--cream-100);--rule:rgba(253,243,232,.14);background:var(--navy-800);color:var(--ffg);font:400 15px/1.6 var(--font-sans)}
.site-footer--cream,.site-footer--white{--ffg:var(--ink-900);--rule:rgba(11,26,51,.14);--chip:rgba(11,26,51,.07);--accent:var(--orange-700)}
.site-footer--cream{background:var(--cream-100)}
.site-footer--white{background:#FFFAF4}
.site-footer--black{background:#000}
.site-footer a{color:var(--ffg);text-decoration:none}
.footer__in{max-width:1440px;margin:0 auto;padding:40px 20px 24px;display:flex;flex-direction:column;gap:32px}
.footer__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px}
.footer__brand{grid-column:1 / -1;min-width:0;display:flex;flex-direction:column;gap:16px}
.footer__brand > a{align-self:flex-start;display:flex}
.footer__brand img{height:40px;width:auto}
.footer__tagline{margin:0;font:400 15px/1.5 var(--font-sans);max-width:300px}
.footer__learners{font:600 15px/1.2 var(--font-sans);color:var(--accent,var(--orange-500))}
.footer__socials{display:flex;flex-wrap:wrap;gap:8px}
.footer__socials a{width:44px;height:44px;border-radius:50%;background:var(--chip,rgba(253,243,232,.14));display:grid;place-items:center}
.footer__socials a:hover{background:var(--orange-700);color:var(--cream-100)}
.footer__col{min-width:0;display:flex;flex-direction:column}
.footer__col-title{font:600 15px/1.3 var(--font-sans);padding-bottom:4px}
.footer__col a{display:flex;align-items:center;min-height:44px;opacity:.88;text-wrap:pretty}
.footer__col a:hover,.band__links a:hover{opacity:1;text-decoration:underline}

.footer__bands{display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.band{border-bottom:1px solid var(--rule)}
.band > summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;font:600 14px/1.3 var(--font-sans)}
.band[open] > summary .icon{transform:rotate(180deg)}
.band__links{display:flex;flex-wrap:wrap;padding:0 0 16px;font-size:14px}
.band__links span{display:flex;align-items:center}
.band__links a{display:flex;align-items:center;min-height:44px;padding-right:16px;opacity:.88}

/* "Related pages" strip above the footer (footer.php), styled as a footer band */
.related .footer__in{padding-bottom:0}
.related .band{padding-bottom:4px}

.footer__bar{display:flex;flex-direction:column;align-items:flex-start;gap:8px 24px;font-size:14px}
.footer__legal{display:flex;flex-wrap:wrap;gap:0 20px;font-weight:600}
.footer__legal button{all:unset;cursor:pointer}
.footer__legal a,.footer__legal button{display:flex;align-items:center;min-height:44px}
.footer__legal button:focus-visible{outline:2px solid currentColor;outline-offset:2px}

@media (min-width:768px){
  .footer__in{padding:48px 32px 32px;gap:32px}
  .footer__cols{gap:32px 40px}
  .footer__col{gap:8px}
  .footer__col a,.footer__legal a,.footer__legal button{min-height:28px}
  .band{display:flex;flex-direction:column;gap:8px;padding:16px 0}
  .band > summary{min-height:0;pointer-events:none}
  .band > summary .icon{display:none}
  .band__links{align-items:center;padding:0;line-height:1.9}
  .band__links a{min-height:0;padding:0}
  .band__links span:not(:last-child)::after{content:"|";padding:0 12px;opacity:.45}
  .footer__bar{flex-direction:row;justify-content:space-between;align-items:center}
}
@media (min-width:1280px){
  .footer__in{padding:64px 80px 32px}
  .footer__cols{grid-template-columns:1.5fr repeat(var(--cols),minmax(0,1fr))}
  .footer__brand{grid-column:auto}
}

/* ---------- Cookie banner ---------- */
.cookie{position:fixed;left:8px;right:8px;bottom:8px;z-index:45;max-width:1040px;margin:0 auto;padding:12px 16px;border-radius:20px;background:var(--cream-100);color:var(--ink-900);border:1px solid rgba(11,26,51,.14);display:flex;flex-direction:column;gap:16px}
.cookie[hidden]{display:none}
.cookie a{color:var(--navy-900);font-weight:600}
.cookie__row{display:flex;flex-direction:column;gap:12px}
.cookie__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.cookie__text b{font:600 16px/1.3 var(--font-sans)}
.cookie__text span,.cookie__short{font:400 15px/1.5 var(--font-sans);color:var(--ink-900);text-wrap:pretty}
.cookie__short{line-height:1.45}
.cookie__text{display:none}
.cookie__btns{flex:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.cookie button{all:unset;box-sizing:border-box;cursor:pointer;height:48px;padding:0 20px;border-radius:12px;font:600 14px/1 var(--font-sans);display:flex;align-items:center;justify-content:center;white-space:nowrap}
.cookie button:focus-visible{outline:2px solid var(--cobalt-600);outline-offset:2px}
.cookie .btn-link{height:auto;padding:0;display:inline;text-decoration:underline;text-underline-offset:3px;color:var(--ink-900)}
.cookie .btn-manage{display:none;text-decoration:underline;text-underline-offset:3px}
.cookie .btn-line{border:1px solid rgba(11,26,51,.14);letter-spacing:.06em;text-transform:uppercase}
.cookie .btn-solid{background:var(--navy-900);color:var(--cream-100);letter-spacing:.06em;text-transform:uppercase}
.cookie__manage{display:flex;flex-direction:column;border-top:1px solid rgba(11,26,51,.14)}
.cookie__manage[hidden]{display:none}
.cookie__cat{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid rgba(11,26,51,.07)}
.cookie__cat span{display:flex;flex-direction:column;gap:4px;min-width:0;font:400 15px/1.4 var(--font-sans);color:var(--ink-900)}
.cookie__cat b{font:600 14px/1.3 var(--font-sans);color:var(--ink-900)}
.cookie__cat input{appearance:none;flex:none;margin:0;width:44px;height:26px;border-radius:12px;background:rgba(11,26,51,.14);position:relative;cursor:pointer}
.cookie__cat input::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--white);transition:left 150ms ease-out}
.cookie__cat input:checked{background:var(--cobalt-600)}
.cookie__cat input:checked::after{left:21px}
.cookie__cat input:disabled{opacity:.6;cursor:default}
.cookie__manage .btn-solid{align-self:flex-end;margin-top:12px}
@media (min-width:768px){
  .cookie{left:24px;right:24px;bottom:24px;padding:24px 24px}
  .cookie__row{gap:16px}
  .cookie__text{display:flex}
  .cookie__short{display:none}
  .cookie .btn-manage{display:flex}
  .cookie__btns{grid-template-columns:auto auto auto}
}
@media (min-width:1100px){
  .cookie__row{flex-direction:row;align-items:center;gap:24px}
}

/* ---------- Generic content (page.php, index.php) ---------- */
.content{max-width:880px;margin:0 auto;padding:24px var(--gutter-mobile) 64px}
.content h1{margin:0 0 24px;font:400 40px/1.12 var(--font-sans);letter-spacing:-.01em;text-wrap:balance}
.prose{font-size:16px;line-height:1.65}
.prose h2{font:600 22px/1.25 var(--font-sans);margin:2em 0 .5em}
.prose h3{font:600 18px/1.3 var(--font-sans);margin:1.6em 0 .4em}
.prose a{color:var(--orange-700)}
.prose table{width:100%;border-collapse:collapse}
.prose th,.prose td{padding:8px 12px;border:1px solid rgba(11,26,51,.14);text-align:left}
.post-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:20px}
.post-list h2{margin:0;font:600 20px/1.3 var(--font-sans)}
.post-list a{text-decoration:none}
.post-list p{margin:8px 0 0;font:400 15px/1.55 var(--font-sans);color:var(--ink-600)}
.content .lead{margin:0 0 32px;max-width:720px;font:400 17px/1.55 var(--font-sans);color:var(--ink-600)}
@media (min-width:768px){.content{padding:48px var(--gutter-tablet) 80px}.content h1{font-size:56px}.prose{font-size:17px}.prose h2{font-size:26px}}
@media (min-width:1280px){.content{padding:64px var(--gutter-desktop) 96px}.content h1{font-size:72px}.prose h2{font-size:30px}}

/* ---------- 404 ---------- */
.e404{max-width:880px;margin:0 auto;padding:48px var(--gutter-mobile) 80px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:24px}
.e404__big{font:700 120px/.9 var(--font-sans);letter-spacing:-.04em;color:var(--orange-700)}
.e404 h1{margin:0;font:400 40px/1.15 var(--font-sans);text-wrap:balance}
.e404 h1 strong{font-weight:600}
.e404 p{margin:0;max-width:520px;font:400 17px/1.55 var(--font-sans);color:var(--ink-600);text-wrap:pretty}
.e404 form{position:relative;width:100%;max-width:520px}
.e404 form .icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--ink-600)}
.e404 input{width:100%;height:54px;padding:0 16px 0 48px;border-radius:12px;border:1px solid rgba(11,26,51,.14);background:var(--cream-50);color:var(--ink-900);font:400 16px/1 var(--font-sans);outline:none}
.e404 input:focus{border-color:var(--ink-900)}
.e404__links{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-top:8px}
.e404__links a{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:20px;border-radius:20px;text-decoration:none;text-align:left;font:600 16px/1.2 var(--font-sans)}
.e404__home{height:48px;padding:0 20px;border-radius:12px;background:var(--navy-900);color:var(--cream-100)!important;font:600 14px/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;display:flex;align-items:center;gap:8px;text-decoration:none}
@media (min-width:768px){
  .e404{padding:80px var(--gutter-tablet) 96px}.e404__big{font-size:180px}.e404 h1{font-size:56px}.e404 p{font-size:18px}
  .e404__links{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (min-width:1280px){
  .e404{padding:96px var(--gutter-desktop) 96px}.e404__big{font-size:220px}.e404 h1{font-size:72px}.e404 p{font-size:20px}
}

