/*
Theme Name: Woodspec Designs
Theme URI: https://woodspecdesign.co.za
Author: Woodspec Designs
Description: Portfolio theme for Woodspec Designs, Stellenbosch. Add work under Projects; edit category pages under Projects → Work categories; contact details under Appearance → Customize → Contact details.
Version: 1.9
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: woodspec
*/

:root {
  --bg: #151711; --ink: #eeede4; --mut: #8f9280; --body: #b9bba9;
  --blue: #86955a; --lblue: #b3c08a; --dblue: #5a6637; --card: #1e2119;
  --paper: #eeede4; --paper2: #e1e0d2; --pbody: #4a4c3e; --pmut: #6c6e5c; --pline: #cfcebe;
  --line: rgba(239,238,233,.14); --pad: 40px;
  --black: 'Archivo Black', Helvetica, Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: Archivo, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
h1, h2, h3, p { text-wrap: pretty; }
a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--ink); }
img { display: block; max-width: 100%; }
.ws-blue { color: var(--blue); }
.ws-lblue { color: var(--lblue); }
.ws-white { color: #fff; }
.ws-up { text-transform: uppercase; }

/* Header */
.ws-top { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 18px var(--pad); background: rgba(21,23,17,.94); backdrop-filter: blur(8px); border-bottom: 1px solid rgba(239,238,233,.1); }
.admin-bar .ws-top { top: 32px; }
.ws-top__l { display: flex; align-items: center; gap: 32px; }
.ws-logo { font-size: 21px; letter-spacing: -.01em; border-bottom: 2px solid var(--blue); padding-bottom: 3px; color: var(--ink); white-space: nowrap; }
.ws-logo em, .ws-foot__logo em { font-style: italic; }
.ws-top__place { font-size: 11px; letter-spacing: .18em; color: var(--mut); }
.ws-top__place i { font-style: normal; color: var(--blue); margin: 0 6px; }
.ws-nav { display: flex; align-items: center; gap: 26px; font-size: 11.5px; letter-spacing: .16em; }
.ws-nav__link { color: var(--ink); }
.ws-nav__link:hover { color: var(--lblue); }
.ws-nav__back { color: var(--mut); }
.ws-wa { display: inline-flex; align-items: center; gap: 10px; background: #25d366; color: #08210f; padding: 11px 18px; font-size: 11.5px; letter-spacing: .14em; }
.ws-wa:hover { background: var(--ink); color: var(--bg); }
.ws-wa-float { display: none; }

/* Type */
.ws-eyebrow { font-size: 11px; letter-spacing: .2em; color: var(--lblue); margin-bottom: 20px; display: flex; align-items: center; gap: 10px; }
.ws-eyebrow--dot span { width: 7px; height: 7px; border: 1px solid var(--lblue); border-radius: 50%; }
.ws-eyebrow--dark { color: var(--dblue); }
.ws-eyebrow--ink { color: var(--bg); }
.ws-eyebrow--grey { color: var(--pmut); font-size: 10.5px; letter-spacing: .18em; }
.ws-h1 { font-family: var(--black); font-size: 96px; line-height: .93; letter-spacing: -.035em; text-transform: uppercase; margin: 0 0 30px; font-weight: 400; }
.ws-h1--cat { font-size: 76px; margin: 0; max-width: 20ch; }
.ws-h2 { font-family: var(--black); font-size: 62px; line-height: .95; letter-spacing: -.03em; text-transform: uppercase; margin: 0 0 24px; font-weight: 400; }
.ws-h2--m { font-size: 42px; line-height: 1.02; }
.ws-h2--xl { font-size: 72px; line-height: .93; }
.ws-lead { font-size: 17px; line-height: 1.6; color: #d4d4c4; max-width: 46ch; margin: 0; }
.ws-body { font-size: 17px; line-height: 1.65; color: var(--body); margin: 0 0 16px; max-width: 52ch; }
.ws-more { font-size: 11px; letter-spacing: .16em; color: var(--lblue); }

/* Sections */
.ws-sec { padding: 96px var(--pad) 100px; }
.ws-sec--tight { padding-top: 84px; padding-bottom: 0; }
.ws-paper { background: var(--paper); color: var(--bg); }
.ws-paper2 { background: var(--paper2); color: var(--bg); }
.ws-paper p, .ws-paper2 p { color: var(--pbody); }
.ws-sechead { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 64px; align-items: start; margin-bottom: 56px; }
.ws-sechead > p { font-size: 16.5px; line-height: 1.6; margin: 0; padding-top: 46px; }
.ws-sechead--end { align-items: end; margin-bottom: 38px; }
.ws-sechead--end > p { padding-top: 0; }
.ws-bar { display: flex; align-items: baseline; justify-content: space-between; gap: 32px; padding-bottom: 20px; border-bottom: 1px solid rgba(239,238,233,.22); margin-bottom: 34px; }
.ws-bar h2 { font-family: var(--black); font-weight: 400; font-size: 15px; letter-spacing: .1em; text-transform: uppercase; margin: 0; }
.ws-bar span { font-size: 11px; letter-spacing: .16em; color: var(--mut); }

/* Hero */
.ws-hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; padding: 0 var(--pad) 56px; overflow: hidden; }
.ws-hero--home { min-height: 780px; }
.ws-hero--cat { min-height: 520px; padding-bottom: 48px; }
.ws-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ws-hero__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(21,23,17,.94) 0%, rgba(21,23,17,.7) 34%, rgba(21,23,17,.2) 70%, rgba(21,23,17,.34) 100%); }
.ws-hero__grid, .ws-hero__inner { position: relative; }
.ws-hero__grid { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); gap: 72px; align-items: end; }
.ws-index { padding-bottom: 6px; }
.ws-index__head { font-size: 11px; letter-spacing: .18em; color: var(--body); padding-bottom: 14px; border-bottom: 1px solid rgba(239,238,233,.3); }
.ws-index a { display: flex; gap: 20px; align-items: baseline; padding: 10px 0; border-bottom: 1px solid rgba(239,238,233,.13); color: var(--ink); }
.ws-index a:last-child { border-bottom: 0; }
.ws-index a:hover { color: var(--lblue); }
.ws-index span { font-size: 10.5px; color: var(--lblue); letter-spacing: .1em; }
.ws-index b { font-weight: 400; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }

/* Category cards (home) */
.ws-cards { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 30px; }
.ws-card { background: var(--bg); color: var(--ink); display: flex; flex-direction: column; }
.ws-card:hover { background: var(--card); color: var(--ink); }
.ws-card__img { height: 290px; position: relative; overflow: hidden; }
.ws-card__img img, .ws-tile img, .ws-proj__img img, .ws-thumbs__i img, .ws-feature__cimg img, .ws-pstep__img img, .ws-about__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s ease; }
.ws-card:hover img, .ws-tile:hover img, .ws-proj:hover img, .ws-thumbs__i:hover img { transform: scale(1.03); }
.ws-tag { position: absolute; top: 14px; left: 14px; background: var(--bg); color: var(--ink); font-size: 10px; letter-spacing: .14em; padding: 6px 10px; }
.ws-card__body { padding: 26px 26px 30px; display: flex; flex-direction: column; flex: 1; }
.ws-card__group { font-size: 10.5px; letter-spacing: .14em; color: var(--mut); margin-bottom: 14px; text-transform: uppercase; }
.ws-card__title { font-family: var(--black); font-weight: 400; font-size: 25px; line-height: 1.05; text-transform: uppercase; letter-spacing: -.02em; margin: 0 0 12px; }
.ws-card p { font-size: 14.5px; line-height: 1.55; color: var(--body); margin: 0 0 22px; flex: 1; }
.ws-tiles { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 22px; margin-top: 30px; }
.ws-others { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px,1fr)); gap: 22px; }
.ws-tile { position: relative; height: 168px; overflow: hidden; display: block; color: var(--ink); }
.ws-tile::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(21,23,17,.92), rgba(21,23,17,.08)); }
.ws-tile span { position: absolute; bottom: 0; left: 0; right: 0; padding: 15px 17px; font-size: 13px; letter-spacing: .05em; z-index: 1; }
.ws-tile:hover { color: var(--lblue); }

/* Featured projects (home) */
[data-ws-gallery] { cursor: pointer; }
.ws-feature { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(0,1fr); gap: 30px; }
.ws-feature__big { position: relative; min-height: 580px; overflow: hidden; display: flex; align-items: flex-end; }
.ws-feature__big > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ws-feature__label { position: relative; background: var(--bg); color: var(--ink); padding: 24px 28px 26px; margin: 22px; max-width: 400px; }
.ws-feature__label h3, .ws-feature__cbody h3 { font-family: var(--black); font-weight: 400; font-size: 27px; letter-spacing: -.02em; line-height: 1.05; margin: 0 0 10px; }
.ws-feature__label p { font-size: 14.5px; line-height: 1.55; color: var(--body) !important; margin: 0; }
.ws-feature__meta { display: flex; justify-content: space-between; gap: 20px; font-size: 10.5px; letter-spacing: .14em; color: var(--mut); margin-bottom: 12px; text-transform: uppercase; }
.ws-feature__meta--dark { color: var(--pmut); }
.ws-feature__side { display: grid; grid-template-rows: 1fr 1fr; gap: 30px; }
.ws-feature__card { background: var(--paper); display: flex; flex-direction: column; overflow: hidden; }
.ws-feature__cimg { flex: 1; min-height: 200px; overflow: hidden; }
.ws-feature__cbody { padding: 22px 24px 26px; }
.ws-feature__cbody h3 { font-size: 22px; }
.ws-feature__cbody p { font-size: 14px; line-height: 1.55; margin: 0; }
.ws-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 30px; margin-top: 30px; }
.ws-thumbs__i { height: 210px; overflow: hidden; }

/* Materials / rows */
.ws-split { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); gap: 72px; align-items: start; }
.ws-split .ws-h2 { font-size: 52px; }
.ws-rows { display: flex; flex-direction: column; }
.ws-row { display: flex; justify-content: space-between; gap: 24px; padding: 17px 0; border-top: 1px solid rgba(239,238,233,.18); font-size: 16px; }
.ws-row:last-child { border-bottom: 1px solid rgba(239,238,233,.18); }
.ws-row__v { color: var(--mut); font-size: 14px; text-align: right; }

/* Making */
.ws-making { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); min-height: 620px; }
.ws-making__l { background: var(--blue); color: var(--bg); padding: 88px 48px 88px var(--pad); display: flex; flex-direction: column; justify-content: center; }
.ws-making__l p { font-size: 16.5px; line-height: 1.6; margin: 0 0 34px; max-width: 40ch; color: #1b1f12; }
.ws-underline { color: var(--bg); font-size: 11px; letter-spacing: .16em; border-bottom: 1px solid var(--bg); padding-bottom: 12px; display: flex; justify-content: space-between; max-width: 420px; }
.ws-underline:hover { color: #fff; border-color: #fff; }
.ws-making__r { background: var(--paper); color: var(--bg); padding: 88px var(--pad) 88px 48px; display: flex; flex-direction: column; justify-content: center; }
.ws-step { display: flex; gap: 26px; padding: 22px 0; border-top: 1px solid var(--pline); }
.ws-step:last-child { border-bottom: 1px solid var(--pline); }
.ws-step > span { font-size: 11px; color: var(--dblue); letter-spacing: .1em; padding-top: 6px; }
.ws-step h3 { font-family: var(--black); font-weight: 400; font-size: 21px; letter-spacing: -.02em; margin: 0 0 7px; }
.ws-step p { font-size: 14.5px; line-height: 1.55; color: var(--pbody); margin: 0; }

/* About */
.ws-about { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 72px; align-items: center; }
.ws-about__img { min-height: 480px; overflow: hidden; }
.ws-about__img img { min-height: 480px; object-position: 50% 62%; }
.ws-about .ws-h2 { font-size: 56px; }
.ws-list { display: flex; flex-direction: column; max-width: 460px; margin-top: 34px; }
.ws-list div { padding: 13px 0; border-bottom: 1px solid rgba(239,238,233,.1); font-size: 15px; }
.ws-list div:last-child { border-bottom: 0; }
.ws-list .ws-list__head { font-size: 10.5px; letter-spacing: .18em; color: var(--mut); padding: 0 0 12px; border-bottom: 1px solid rgba(239,238,233,.18); }

/* Enquiry */
.ws-enq { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); gap: 72px; align-items: start; }
.ws-enq--cat { margin-top: 92px; }
.ws-enq--cat .ws-h2 { font-size: 56px; }
.ws-enq p { font-size: 17px; line-height: 1.6; max-width: 46ch; margin: 0 0 32px; }
.ws-btns { display: flex; gap: 16px; flex-wrap: wrap; }
.ws-btn { display: inline-flex; align-items: center; gap: 14px; padding: 17px 26px; font-size: 11.5px; letter-spacing: .16em; }
.ws-btn--wa { background: #25d366; color: #08210f; }
.ws-btn--line { border: 1px solid var(--bg); color: var(--bg); gap: 30px; }
.ws-btn:hover { background: var(--bg); color: var(--ink); }
.ws-facts { display: flex; flex-direction: column; padding-top: 8px; }
.ws-fact { display: flex; justify-content: space-between; gap: 20px; padding: 16px 0; border-top: 1px solid var(--pline); font-size: 15px; }
.ws-fact:last-child { border-bottom: 1px solid var(--pline); }
.ws-fact span:first-child { color: var(--pmut); }
.ws-fact span:last-child { text-align: right; }
.ws-fact a { color: var(--bg); }
.ws-fact a:hover { color: var(--dblue); }

/* Category page */
.ws-tabs { display: flex; overflow-x: auto; padding: 0 var(--pad); border-bottom: 1px solid rgba(239,238,233,.1); scrollbar-width: thin; }
.ws-tabs a { flex: 0 0 auto; padding: 15px 18px; font-size: 11px; letter-spacing: .14em; white-space: nowrap; color: var(--mut); border-bottom: 2px solid transparent; text-transform: uppercase; }
.ws-tabs a:hover { color: var(--ink); }
.ws-tabs a.on { color: var(--ink); border-bottom-color: var(--blue); }
.ws-intro { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: 72px; align-items: start; padding-top: 72px; padding-bottom: 0; }
.ws-specs { display: flex; flex-direction: column; padding-top: 6px; }
.ws-specs__head { font-size: 10.5px; letter-spacing: .18em; color: var(--mut); padding-bottom: 12px; border-bottom: 1px solid rgba(239,238,233,.22); }
.ws-spec { display: flex; justify-content: space-between; gap: 20px; padding: 15px 0; border-bottom: 1px solid rgba(239,238,233,.1); font-size: 15px; }
.ws-spec:last-child { border-bottom: 0; }
.ws-spec span:first-child { color: var(--mut); }
.ws-spec span:last-child { text-align: right; }
.ws-projgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px,1fr)); gap: 28px; }
.ws-proj { background: var(--card); display: flex; flex-direction: column; outline: none; }
.ws-proj:hover, .ws-proj:focus-visible { background: #262a20; }
.ws-proj:focus-visible { box-shadow: 0 0 0 2px var(--blue); }
.ws-proj__img { height: 246px; overflow: hidden; position: relative; }
.ws-proj__count { position: absolute; bottom: 0; right: 0; background: var(--bg); font-size: 10.5px; letter-spacing: .14em; padding: 8px 12px; }
.ws-proj__body { padding: 22px 24px 26px; display: flex; flex-direction: column; flex: 1; }
.ws-proj__client { font-size: 10.5px; letter-spacing: .14em; color: var(--mut); margin-bottom: 11px; text-transform: uppercase; }
.ws-proj__title { font-family: var(--black); font-weight: 400; font-size: 20px; line-height: 1.08; letter-spacing: -.02em; margin: 0 0 10px; }
.ws-proj__body p { font-size: 14px; line-height: 1.55; color: var(--body); margin: 0 0 18px; flex: 1; }
.ws-process { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 24px; }
.ws-pstep__img { height: 224px; overflow: hidden; background: var(--card); display: flex; align-items: center; justify-content: center; }
.ws-pstep__num { font-family: var(--black); font-size: 64px; color: rgba(239,238,233,.12); }
.ws-pstep__note { font-family: ui-monospace, Menlo, monospace; font-size: 11px; line-height: 1.5; color: var(--mut); text-align: center; padding: 20px; border: 1px dashed rgba(239,238,233,.25); margin: 16px; }
.ws-pstep__txt { display: flex; gap: 14px; padding-top: 18px; }
.ws-pstep__txt > span { font-size: 11px; color: var(--lblue); letter-spacing: .1em; padding-top: 4px; }
.ws-pstep__txt h3 { font-size: 17px; font-weight: 400; margin: 0 0 6px; }
.ws-pstep__txt p { font-size: 14px; line-height: 1.55; color: var(--mut); margin: 0; }

/* Footer */
.ws-foot { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 34px var(--pad); font-size: 11px; letter-spacing: .14em; color: var(--mut); }
.ws-foot__logo { color: var(--ink); font-size: 15px; letter-spacing: 0; }
.ws-plain { min-height: 50vh; }
.ws-prose { font-size: 17px; line-height: 1.65; color: var(--body); max-width: 70ch; }

/* Lightbox */
.ws-lb { position: fixed; inset: 0; z-index: 9999; background: rgba(9,10,7,.97); display: none; flex-direction: column; }
.ws-lb.open { display: flex; }
.ws-lb button { font: inherit; color: var(--ink); background: none; cursor: pointer; }
.ws-lb__bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 28px; border-bottom: 1px solid var(--line); }
.ws-lb__sub { font-size: 10.5px; letter-spacing: .16em; color: var(--mut); margin-bottom: 6px; text-transform: uppercase; }
.ws-lb__title { font-family: var(--black); font-size: 20px; letter-spacing: -.02em; }
.ws-lb__r { display: flex; align-items: center; gap: 22px; }
.ws-lb__count { font-size: 12px; letter-spacing: .14em; color: var(--mut); }
.ws-lb__close { border: 1px solid rgba(239,238,233,.35); padding: 11px 18px; font-size: 11px !important; letter-spacing: .16em; }
.ws-lb__close:hover, .ws-lb__nav:hover { background: var(--ink) !important; color: var(--bg) !important; }
.ws-lb__stage { flex: 1; min-height: 0; display: flex; align-items: center; gap: 16px; padding: 22px 22px 12px; }
.ws-lb__nav { flex: 0 0 52px; height: 76px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(239,238,233,.25); font-size: 22px !important; }
.ws-lb__img { flex: 1; min-width: 0; height: 100%; display: flex; align-items: center; justify-content: center; }
.ws-lb__img img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ws-lb__thumbs { display: flex; gap: 10px; padding: 12px 22px 22px; overflow-x: auto; flex: 0 0 auto; }
.ws-lb__thumbs button { flex: 0 0 116px; height: 78px; overflow: hidden; padding: 0; border: 0; opacity: .42; }
.ws-lb__thumbs button.on { opacity: 1; outline: 2px solid var(--blue); outline-offset: -2px; }
.ws-lb__thumbs img { width: 100%; height: 100%; object-fit: cover; }

/* Tablet */
@media (max-width: 1100px) {
  .ws-h1 { font-size: 72px; }
  .ws-h2, .ws-h2--xl { font-size: 48px; }
  .ws-cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ws-tiles { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .ws-process { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .ws-top__place { display: none; }
}

/* Phone */
@media (max-width: 820px) {
  :root { --pad: 20px; }
  .admin-bar .ws-top { top: 46px; }
  .ws-nav__link { display: none; }
  .ws-nav__back { display: inline; }
  .ws-top { padding: 14px var(--pad); }
  .ws-logo { font-size: 18px; }
  .ws-h1 { font-size: 46px; }
  .ws-h1--cat { font-size: 42px; }
  .ws-h2, .ws-h2--xl, .ws-split .ws-h2, .ws-about .ws-h2, .ws-enq--cat .ws-h2 { font-size: 36px; }
  .ws-h2--m { font-size: 30px; }
  .ws-sec { padding: 64px var(--pad) 70px; }
  .ws-sec--tight { padding-top: 60px; padding-bottom: 0; }
  .ws-hero--home { min-height: 0; padding-top: 120px; }
  .ws-hero--cat { min-height: 380px; }
  .ws-hero__grid, .ws-sechead, .ws-split, .ws-making, .ws-about, .ws-enq, .ws-intro, .ws-feature { grid-template-columns: 1fr; gap: 36px; }
  .ws-sechead { margin-bottom: 36px; }
  .ws-sechead > p { padding-top: 0; }
  .ws-cards, .ws-thumbs { grid-template-columns: 1fr; }
  .ws-tiles, .ws-others { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
  .ws-tile { height: 130px; }
  .ws-process { grid-template-columns: 1fr; }
  .ws-feature__big { min-height: 380px; }
  .ws-feature__label { margin: 12px; }
  .ws-making__l, .ws-making__r { padding: 60px var(--pad); }
  .ws-about__img, .ws-about__img img { min-height: 320px; }
  .ws-bar { flex-direction: column; gap: 8px; }
  .ws-projgrid { grid-template-columns: 1fr; }
  .ws-foot { flex-direction: column; align-items: flex-start; gap: 10px; padding-bottom: 96px; }
  .ws-wa-float { display: flex; position: fixed; right: 18px; bottom: 18px; z-index: 60; width: 58px; height: 58px; border-radius: 50%; background: #25d366; color: #08210f; align-items: center; justify-content: center; box-shadow: 0 6px 20px rgba(0,0,0,.35); }
  .ws-lb__bar { padding: 14px 16px; }
  .ws-lb__stage { padding: 10px 6px; gap: 6px; }
  .ws-lb__nav { flex-basis: 36px; height: 60px; }
  .ws-lb__thumbs button { flex-basis: 76px; height: 54px; }
  .ws-lb__count { display: none; }
}

/* "What we do" label: centred and large (Jano, 7 Oct) */
#work .ws-sechead > div:first-child, #projects .ws-sechead > div:first-child { display: contents; }
#work .ws-sechead > div:first-child > .ws-eyebrow, #projects .ws-sechead > div:first-child > .ws-eyebrow { grid-column: 1 / -1; justify-content: center; text-align: center; font-size: 30px; letter-spacing: .22em; margin-bottom: 0; }
#work .ws-sechead > p, #projects .ws-sechead > p { padding-top: 0; align-self: end; }
@media (max-width: 820px) { #work .ws-sechead > div:first-child > .ws-eyebrow, #projects .ws-sechead > div:first-child > .ws-eyebrow { font-size: 20px; letter-spacing: .18em; } }

/* Hero list heading "What we do": larger (Jano, 7 Oct) */
.ws-index__head { font-size: 22px; letter-spacing: .2em; color: var(--ink); padding-bottom: 16px; }
@media (max-width: 820px) { .ws-index__head { font-size: 17px; } }

/* Jano and the team panel: tighter gap between paragraphs (7 Oct) */
.ws-making__l p:has(+ p) { margin-bottom: 16px; }

/* Home hero tagline "Bespoke joinery & timber structures": bold, larger, readable on the photo (7 Oct) */
.ws-hero--home .ws-eyebrow--dot { font-size: 17px; font-weight: 600; letter-spacing: .16em; color: var(--ink); text-shadow: 0 1px 12px rgba(0,0,0,.55); gap: 12px; }
.ws-hero--home .ws-eyebrow--dot span { width: 10px; height: 10px; border: 0; background: var(--lblue); }
@media (max-width: 820px) { .ws-hero--home .ws-eyebrow--dot { font-size: 13px; letter-spacing: .12em; } }

/* Category pages: number before the title; category menu stays at the top when scrolling (7 Oct) */
.ws-h1__num { color: var(--lblue); margin-right: .12em; }
.ws-tabs { position: sticky; top: var(--top-h, 74px); z-index: 45; background: rgba(21,23,17,.96); backdrop-filter: blur(8px); }
.admin-bar .ws-tabs { top: calc(var(--top-h, 74px) + 32px); }
@media (max-width: 782px) { .admin-bar .ws-tabs { top: calc(var(--top-h, 74px) + 46px); } }
.tax-ws_category [id] { scroll-margin-top: calc(var(--top-h, 74px) + 70px); }

/* Recent projects: blocks 1-3 smaller so phone/Facebook photos don't pixelate (7 Oct) */
#projects .ws-feature, #projects .ws-thumbs { max-width: 1120px; margin-left: auto; margin-right: auto; }
.ws-feature { grid-template-columns: minmax(0,1.4fr) minmax(0,1fr); align-items: start; }
.ws-feature__big { min-height: 0; aspect-ratio: 4 / 3; }
.ws-feature__side { grid-template-rows: auto auto; }
.ws-feature__cimg { flex: none; height: 220px; min-height: 0; }
@media (max-width: 820px) { .ws-feature__big { aspect-ratio: 4 / 3; min-height: 0; } .ws-feature__cimg { height: 200px; } }

/* Recent projects: big photo stretches to line up with the two cards on the right (7 Oct) */
.ws-feature { align-items: stretch; }
.ws-feature__big { aspect-ratio: auto; min-height: 520px; }
@media (max-width: 820px) { .ws-feature__big { aspect-ratio: 4 / 3; min-height: 0; } }
