/*
Theme Name: Precision CAD Works
Theme URI: https://precisioncadworks.com/
Author: Precision CAD Works
Description: Industrial engineering theme rebuilt from the original Hostinger Horizons site — charcoal and signal orange, Manrope, fabrication-first.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: precisioncadworks
Tags: block-theme, business, industrial
*/

/* ------------------------------------------------------------------ tokens */
:root {
  --pcw-primary: #fc6703;
  --pcw-charcoal: #1f2937;
  --pcw-charcoal-hi: #344155;
  --pcw-ink: #0f1729;
  --pcw-paper: #f8fafc;
  --pcw-pale: #f1f5f9;
  --pcw-line: #e1e7ef;
  --pcw-muted: #65758b;
  --pcw-body: #475569;
  --pcw-radius: 6px;
  --pcw-card-radius: 14px;
  --pcw-shadow: 0 1px 2px rgba(15, 23, 41, .04);
  --pcw-shadow-hover: 0 16px 36px -18px rgba(15, 23, 41, .28);
}

/* ------------------------------------------------------------------ base */
* { box-sizing: border-box; }

body {
  margin: 0;
  background: #fff;
  color: var(--pcw-ink);
  font-family: "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; }

a { color: var(--pcw-primary); }

p { margin: 0 0 1rem; }

.wp-block-group { margin-block-start: 0; }

.pcw-container {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 24px;
}

/* keep WordPress from centring children of constrained groups on us */
.pcw-flow > *,
.pcw-container > * { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }

/* ------------------------------------------------------------------ type helpers */
.pcw-eyebrow {
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--pcw-primary);
  margin: 0 0 14px;
}

.pcw-accent { color: var(--pcw-primary); }

.pcw-lead {
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--pcw-muted);
}

.pcw-h2 { color: var(--pcw-charcoal); margin: 0; }

.pcw-section-head {
  max-width: 760px;
  margin: 0 auto 56px;
  text-align: center;
}
.pcw-section-head .pcw-lead { margin: 16px auto 0; max-width: 640px; }

/* ------------------------------------------------------------------ buttons */
.wp-block-button__link {
  border-radius: var(--pcw-radius);
  border: 1px solid transparent;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 15px 26px;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.wp-block-button__link:hover { transform: translateY(-1px); }

.wp-block-button.is-style-outline .wp-block-button__link,
.pcw-btn-ghost .wp-block-button__link {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, .45) !important;
  color: #fff !important;
  padding: 15px 26px;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.pcw-btn-ghost .wp-block-button__link:hover { border-color: rgba(255, 255, 255, .9) !important; }

.pcw-btn-dark .wp-block-button__link { background: var(--pcw-charcoal); color: #fff; }
.pcw-btn-dark .wp-block-button__link:hover { background: var(--pcw-ink); }

/* ------------------------------------------------------------------ header */
.pcw-header {
  position: sticky;
  top: 0;
  z-index: 60;
  background: rgba(255, 255, 255, .96);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid #eef1f5;
  box-shadow: 0 1px 2px rgba(15, 23, 41, .04);
}
.pcw-header-inner {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: 24px;
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 88px;
}
.pcw-logo { line-height: 0; flex: 0 0 auto; }
.pcw-logo img { height: 64px; width: auto; object-fit: contain; display: block; }

.pcw-nav { flex: 1 1 auto; display: flex; justify-content: flex-end; }
.pcw-nav .wp-block-navigation__container {
  display: flex;
  align-items: center;
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.pcw-nav .wp-block-navigation-item__content {
  display: inline-block;
  padding: 8px 11px;
  border-radius: var(--pcw-radius);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--pcw-charcoal);
  text-decoration: none;
  white-space: nowrap;
  transition: color .15s ease, background-color .15s ease;
}
.pcw-nav .wp-block-navigation-item__content:hover { color: var(--pcw-primary); background: var(--pcw-pale); }
.pcw-nav .current-menu-item > .wp-block-navigation-item__content,
.pcw-nav .current_page_item > .wp-block-navigation-item__content {
  color: var(--pcw-primary);
  background: rgba(252, 103, 3, .06);
}

.pcw-header-cta { flex: 0 0 auto; margin: 0; }
.pcw-header-cta .wp-block-button__link {
  font-size: 12px;
  padding: 11px 18px;
  border-radius: var(--pcw-radius);
}

/* mobile menu button from the navigation block */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-close {
  background: transparent;
  border: 1px solid var(--pcw-line);
  border-radius: var(--pcw-radius);
  color: var(--pcw-charcoal);
  padding: 6px;
}

/* ------------------------------------------------------------------ hero */
.pcw-hero {
  min-height: 86vh;
  display: flex;
  align-items: center;
  padding-block: 88px;
}
.pcw-hero .wp-block-cover__image-background,
.pcw-hero .wp-block-cover__video-background {
  filter: grayscale(1) contrast(1.06);
}
.pcw-hero .wp-block-cover__background {
  background-color: #121b28 !important;
  opacity: .82 !important;
}
.pcw-hero-inner {
  max-width: 900px;
  margin-inline: auto;
  text-align: center;
  color: #fff;
}
.pcw-pill-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(255, 255, 255, .28);
  background: rgba(15, 23, 41, .5);
  border-radius: 999px;
  padding: 8px 16px;
  margin: 0 0 26px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #e2e8f0;
}
.pcw-pill-badge svg { width: 14px; height: 14px; stroke: var(--pcw-primary); fill: none; stroke-width: 1.8; }
.pcw-hero h1 { color: #fff; margin: 0 0 22px; }
.pcw-hero .pcw-lead { color: #cbd5e1; font-size: 1.08rem; max-width: 720px; margin: 0 auto 34px; }
.pcw-hero .wp-block-buttons { justify-content: center; gap: 14px; flex-wrap: wrap; }

/* ------------------------------------------------------------------ sections */
.pcw-section { padding-block: 96px; }
.pcw-section--paper {
  background: var(--pcw-paper);
  border-top: 1px solid var(--pcw-line);
  border-bottom: 1px solid var(--pcw-line);
}
.pcw-section--tight { padding-block: 64px; }

/* section header with the link on the right (services overview) */
.pcw-section-head--split {
  max-width: none;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  text-align: left;
  margin-bottom: 48px;
}
.pcw-section-head--split .pcw-lead { margin: 12px 0 0; }
.pcw-head-link a {
  display: inline-block;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pcw-primary);
  text-decoration: none;
  white-space: nowrap;
}
.pcw-head-link a:hover { text-decoration: underline; }

/* ------------------------------------------------------------------ icon tiles */
.pcw-icon-tile {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  background: var(--pcw-charcoal);
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  position: relative;
  margin-bottom: 20px;
}
.pcw-icon-tile svg { width: 26px; height: 26px; stroke: var(--pcw-primary); fill: none; stroke-width: 1.6; }
.pcw-icon-tile--lg { width: 64px; height: 64px; }
.pcw-icon-tile--lg svg { width: 30px; height: 30px; }
.pcw-num {
  position: absolute;
  top: -8px;
  right: -8px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--pcw-primary);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* ------------------------------------------------------------------ steps */
.pcw-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 28px;
}
.pcw-step h3 { color: var(--pcw-charcoal); margin: 0 0 8px; font-size: 1.02rem; }
.pcw-step p { color: var(--pcw-muted); font-size: .88rem; line-height: 1.6; margin: 0; }

/* ------------------------------------------------------------------ cards */
.pcw-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.pcw-cards--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pcw-cards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.pcw-card {
  background: #fff;
  border: 1px solid var(--pcw-line);
  border-radius: var(--pcw-card-radius);
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: var(--pcw-shadow);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
a.pcw-card, .pcw-card:hover { text-decoration: none; }
.pcw-card:hover {
  border-color: rgba(252, 103, 3, .45);
  box-shadow: var(--pcw-shadow-hover);
  transform: translateY(-2px);
}
.pcw-card h3 { color: var(--pcw-charcoal); margin: 0; font-size: 1.12rem; }
.pcw-card p { color: var(--pcw-muted); font-size: .92rem; line-height: 1.65; margin: 0; }
.pcw-card p.pcw-card-link {
  margin-top: auto;
  padding-top: 6px;
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.pcw-card-link a { color: var(--pcw-primary); text-decoration: none; }
.pcw-card-link a:hover { text-decoration: underline; }

/* full-width fifth capability card */
.pcw-card--wide {
  grid-column: 1 / -1;
  flex-direction: row;
  align-items: flex-start;
  gap: 32px;
}
.pcw-card--wide .pcw-icon-tile { margin-bottom: 0; }

/* ------------------------------------------------------------------ lists */
.pcw-list ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 22px;
}
.pcw-list li {
  position: relative;
  padding-left: 17px;
  font-size: .87rem;
  line-height: 1.55;
  color: var(--pcw-body);
  margin: 0;
}
.pcw-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .5em;
  width: 7px;
  height: 7px;
  background: var(--pcw-primary);
}
.pcw-list--dots li::before { border-radius: 50%; width: 6px; height: 6px; }
.pcw-list--single ul { grid-template-columns: 1fr; }
.pcw-list--dark li { color: #cbd5e1; }

/* ------------------------------------------------------------------ dark band */
.pcw-band {
  background: var(--pcw-charcoal);
  padding-block: 88px;
  text-align: center;
}
.pcw-band h2 { color: #fff; margin: 0 0 18px; }
.pcw-band .pcw-lead { color: #cbd5e1; max-width: 660px; margin: 0 auto 32px; }
.pcw-band .wp-block-buttons { justify-content: center; }

/* ------------------------------------------------------------------ split panel */
.pcw-split {
  background: var(--pcw-charcoal);
  border-radius: 20px;
  padding: 56px;
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 48px;
  align-items: center;
}
.pcw-split h2 { color: #fff; margin: 0 0 16px; }
.pcw-split .pcw-lead { color: #cbd5e1; }
.pcw-split figure, .pcw-split .wp-block-image { margin: 0; height: 100%; }
.pcw-split img {
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  border-radius: 12px;
  filter: grayscale(.35);
}

/* ------------------------------------------------------------------ pills */
.pcw-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  padding: 0;
  margin: 22px 0 0;
  list-style: none;
}
.pcw-pills li {
  background: var(--pcw-pale);
  border-radius: 999px;
  padding: 9px 18px;
  font-size: .84rem;
  font-weight: 600;
  color: #334155;
  margin: 0;
}

/* ------------------------------------------------------------------ case studies */
.pcw-cases {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
  align-items: stretch;
}
.pcw-case {
  position: relative;
  background: #fff;
  border: 1px solid var(--pcw-line);
  border-radius: var(--pcw-card-radius);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  box-shadow: var(--pcw-shadow);
}
.pcw-case .wp-block-image { margin: 0; }
.pcw-case .wp-block-image img {
  width: 100%;
  aspect-ratio: 2.2 / 1;
  object-fit: cover;
  filter: grayscale(1) contrast(1.05);
  display: block;
}
.pcw-tag {
  position: absolute;
  top: 14px;
  left: 14px;
  z-index: 3;
  background: var(--pcw-primary);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 6px 10px;
  border-radius: 3px;
  margin: 0;
}
.pcw-case-body {
  padding: 26px 28px 30px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.pcw-case-body h3 { color: var(--pcw-charcoal); margin: 0; font-size: 1.22rem; }
.pcw-label {
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--pcw-charcoal);
  margin: 0 0 7px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.pcw-label::before {
  content: "";
  width: 9px;
  height: 2px;
  background: var(--pcw-primary);
  display: inline-block;
}
.pcw-case-body p { color: var(--pcw-muted); font-size: .89rem; line-height: 1.6; margin: 0; }
.pcw-case-body p.pcw-label { margin: 0 0 7px; }
.pcw-case-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.pcw-case-cols .pcw-list ul { grid-template-columns: 1fr; }

/* ------------------------------------------------------------------ duo / contact / 404 */
.pcw-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.pcw-duo .pcw-card { height: 100%; }

.pcw-contact {
  background: var(--pcw-paper);
  padding-block: 104px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pcw-contact-card {
  background: #fff;
  border: 1px solid #eef1f5;
  border-radius: 24px;
  box-shadow: var(--pcw-shadow);
  padding: 64px 56px;
  max-width: 660px;
  width: 100%;
  text-align: center;
}
.pcw-contact-card h1 { color: var(--pcw-charcoal); margin: 0 0 34px; }
.pcw-contact-links { display: flex; flex-direction: column; gap: 16px; max-width: 420px; margin: 0 auto; }
.pcw-contact-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 19px 20px;
  border: 1px solid var(--pcw-line);
  border-radius: 16px;
  text-decoration: none;
  color: #1e293b;
  font-weight: 600;
  font-size: 1.02rem;
  transition: border-color .18s ease, background-color .18s ease, color .18s ease;
}
.pcw-contact-link svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.7; }
.pcw-contact-link:hover { border-color: var(--pcw-primary); background: rgba(252, 103, 3, .04); color: var(--pcw-primary); }
.pcw-contact-link--wa:hover { border-color: #22c55e; background: #f0fdf4; color: #15803d; }

.pcw-404 {
  text-align: center;
  padding: 140px 24px 120px;
}
.pcw-404 h1 { color: var(--pcw-charcoal); }
.pcw-404 .pcw-lead { max-width: 480px; margin: 12px auto 30px; }

/* ------------------------------------------------------------------ forms */
.pcw-form { max-width: 900px; margin-inline: auto; }
.pcw-form-hint {
  font-size: .8rem;
  color: var(--pcw-muted);
  margin: 0 0 14px 2px;
}
.pcw-form fieldset {
  border: 1px solid var(--pcw-line);
  border-radius: 16px;
  background: #fff;
  padding: 30px 32px 24px;
  margin: 0 0 30px;
}
.pcw-form legend {
  font-size: 1.02rem;
  margin-left: -8px;
  font-weight: 800;
  color: var(--pcw-charcoal);
  padding: 0 10px;
}
.pcw-field { display: flex; flex-direction: column; gap: 7px; margin-bottom: 18px; }
.pcw-field label { font-size: .8rem; font-weight: 700; color: var(--pcw-charcoal); letter-spacing: .01em; }
.pcw-field .req { color: var(--pcw-primary); }
.pcw-field input,
.pcw-field textarea {
  font-family: inherit;
  font-size: .95rem;
  color: var(--pcw-ink);
  background: #fff;
  border: 1px solid var(--pcw-line);
  border-radius: 8px;
  padding: 11px 13px;
  width: 100%;
  box-shadow: 0 1px 1px rgba(15, 23, 41, .03);
  transition: border-color .15s ease, box-shadow .15s ease;
}
.pcw-field textarea { min-height: 110px; resize: vertical; }
.pcw-field input:focus,
.pcw-field textarea:focus {
  outline: none;
  border-color: var(--pcw-primary);
  box-shadow: 0 0 0 3px rgba(252, 103, 3, .14);
}
.pcw-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }

.pcw-drop {
  display: block;
  margin-top: 6px;
  border: 2px dashed #cbd5e1;
  border-radius: 14px;
  background: var(--pcw-paper);
  padding: 34px 24px;
  text-align: center;
  color: var(--pcw-muted);
  cursor: pointer;
  margin-bottom: 20px;
  transition: border-color .15s ease, background-color .15s ease;
}
.pcw-drop:hover, .pcw-drop.is-drag { border-color: var(--pcw-primary); background: rgba(252, 103, 3, .04); }
.pcw-drop svg { width: 30px; height: 30px; stroke: var(--pcw-primary); fill: none; stroke-width: 1.6; margin-bottom: 10px; }
.pcw-drop strong { display: block; color: var(--pcw-charcoal); font-size: .95rem; margin-bottom: 4px; }
.pcw-drop small { display: block; font-size: .78rem; color: var(--pcw-muted); }
.pcw-drop input[type="file"] { display: none; }
.pcw-filelist { list-style: none; padding: 0; margin: 0 0 18px; font-size: .84rem; color: var(--pcw-body); }
.pcw-filelist li { padding: 5px 0; border-bottom: 1px dashed var(--pcw-line); }

.pcw-submit { display: flex; justify-content: center; margin-top: 8px; }
.pcw-submit button {
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #fff;
  background: var(--pcw-primary);
  border: 0;
  border-radius: var(--pcw-radius);
  padding: 17px 34px;
  cursor: pointer;
  transition: background-color .18s ease, transform .18s ease;
}
.pcw-submit button:hover { background: #e25b02; transform: translateY(-1px); }

.pcw-notice {
  border-radius: 12px;
  padding: 18px 22px;
  margin: 0 0 24px;
  font-size: .92rem;
  border: 1px solid;
}
.pcw-notice--ok { background: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.pcw-notice--err { background: #fef2f2; border-color: #fecaca; color: #991b1b; }

/* ------------------------------------------------------------------ footer */
.pcw-footer {
  background: var(--pcw-charcoal);
  color: #94a3b8;
  border-top: 4px solid var(--pcw-primary);
  padding-block: 76px 28px;
}
.pcw-footer a { color: #94a3b8; text-decoration: none; transition: color .15s ease; }
.pcw-footer a:hover { color: var(--pcw-primary); }
.pcw-footer h2, .pcw-footer h3, .pcw-footer h4 {
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: #fff;
  margin: 0 0 18px;
}
.pcw-footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 48px;
}
.pcw-footer-brand p { font-size: .9rem; line-height: 1.7; margin: 18px 0 0; max-width: 380px; color: #94a3b8; }
.pcw-logo-plate {
  display: inline-block;
  background: #fff;
  border-radius: 8px;
  padding: 10px 14px;
  line-height: 0;
}
.pcw-logo-plate img { height: 44px; width: auto; display: block; }
.pcw-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.pcw-footer ul li { margin: 0; font-size: .9rem; }
.pcw-footer-contact li { display: flex; align-items: flex-start; gap: 10px; }
.pcw-footer-contact svg { width: 16px; height: 16px; stroke: var(--pcw-primary); fill: none; stroke-width: 1.7; flex: 0 0 auto; margin-top: 3px; }
.pcw-social { display: flex; gap: 10px; margin-top: 20px; }
.pcw-social a {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .08);
  display: flex; align-items: center; justify-content: center;
}
.pcw-social svg { width: 15px; height: 15px; fill: #cbd5e1; }
.pcw-social a:hover { background: var(--pcw-primary); }
.pcw-social a:hover svg { fill: #fff; }

.pcw-footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, .1);
  margin-top: 56px;
  padding-top: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-size: .8rem;
  color: #7d8b9e;
}
.pcw-footer-legal { display: flex; gap: 22px; }

/* ------------------------------------------------------------------ misc */
.pcw-badge {
  display: inline-block;
  border: 1px solid rgba(252, 103, 3, .45);
  color: #ffd9c2;
  border-radius: 999px;
  padding: 8px 16px;
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin: 8px 0 0;
}

.pcw-social-icon {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .08);
  display: flex;
  align-items: center;
  justify-content: center;
}
.pcw-social-icon svg { width: 15px; height: 15px; fill: #cbd5e1; }

/* long-form legal pages */
.pcw-prose { max-width: 760px !important; }
.pcw-prose h1 { color: var(--pcw-charcoal); margin-bottom: 18px; }
.pcw-prose h2 { color: var(--pcw-charcoal); font-size: 1.3rem; margin-top: 34px; }
.pcw-prose p, .pcw-prose li { color: var(--pcw-muted); font-size: .98rem; line-height: 1.75; }

/* footer list inside a paragraph-based contact block */
.pcw-footer .pcw-footer-contact li a:hover { color: var(--pcw-primary); }

/* ------------------------------------------------------------------ responsive */
@media (max-width: 1080px) {
  .pcw-cards--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcw-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
  .pcw-split { grid-template-columns: 1fr; padding: 40px; gap: 32px; }
}

@media (max-width: 860px) {
  .pcw-header-inner { min-height: 72px; gap: 12px; }
  .pcw-logo img { height: 48px; }
  .pcw-nav { justify-content: flex-end; }
  /* WP's layout support CSS sets `body .is-layout-flex { display: flex }` (0,1,1), which outranks a
     bare `.pcw-header-cta` (0,1,0) — the CTA stayed visible and overflowed the viewport. Scoping it
     to the header wrapper wins on specificity without !important. */
  .pcw-header-cta,
  .pcw-header-inner .pcw-header-cta { display: none; }
  .pcw-section { padding-block: 64px; }
  .pcw-section-head { margin-bottom: 40px; }
  .pcw-section-head--split { flex-direction: column; align-items: flex-start; }
  .pcw-cards, .pcw-cards--four, .pcw-cards--two { grid-template-columns: 1fr; }
  .pcw-cases { grid-template-columns: 1fr; }
  .pcw-duo { grid-template-columns: 1fr; }
  .pcw-card--wide { flex-direction: column; }
  .pcw-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcw-footer-grid { grid-template-columns: 1fr; gap: 36px; }
  .pcw-footer-bottom { flex-direction: column; align-items: flex-start; }
  .pcw-case-cols { grid-template-columns: 1fr; }
  .pcw-grid-2 { grid-template-columns: 1fr; }
  .pcw-contact-card { padding: 40px 24px; }
  .pcw-band { padding-block: 64px; }
}

@media (max-width: 560px) {
  .pcw-steps { grid-template-columns: 1fr; }
  .pcw-list ul { grid-template-columns: 1fr; }
  .pcw-hero { min-height: 0; padding-block: 64px; }
  .pcw-split { padding: 28px; border-radius: 14px; }
}

/* ==================================================================
   Portfolio — technical-document register
   Added for the six-project rebuild. Deliberately built from hairlines,
   mono annotations and flat surfaces rather than cards and shadows: the
   page should read like a drawing sheet, not a marketing template.
   ================================================================== */

:root {
  --pcw-mono: ui-monospace, "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, monospace;
  --pcw-steel: #2b333d;
  --pcw-deep: #10151b;
}

/* ---- annotation label ------------------------------------------- */
.pcw-kicker {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  font-family: var(--pcw-mono);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--pcw-muted);
}
.pcw-kicker::before {
  content: "";
  width: 22px;
  height: 1px;
  background: var(--pcw-primary);
  flex: 0 0 auto;
}
.pcw-kicker__num {
  font-weight: 700;
  color: var(--pcw-primary);
  letter-spacing: .12em;
}
.pcw-kicker__num + * { margin-left: 0; }
.pcw-kicker--light { color: #8b9aab; }
.pcw-kicker--light::before { background: var(--pcw-primary); }

/* ---- case hero -------------------------------------------------- */
.pcw-case-hero {
  position: relative;
  background: var(--pcw-deep);
  color: #fff;
  padding: 104px 0 56px;
  border-bottom: 1px solid rgba(255, 255, 255, .10);
  overflow: hidden;
}
/* faint drafting grid, 40 px, at very low contrast */
.pcw-case-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(255, 255, 255, .045) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
}
.pcw-case-hero > .pcw-container { position: relative; }
.pcw-case-hero .pcw-kicker { color: #93a2b4; }
.pcw-case-hero__title {
  margin: 0 0 20px;
  font-size: clamp(2rem, 4.6vw, 3.35rem);
  line-height: 1.08;
  letter-spacing: -.02em;
  color: #fff;
  max-width: 20ch;
}
.pcw-case-hero__lead {
  margin: 0;
  max-width: 62ch;
  font-size: 1.06rem;
  line-height: 1.65;
  color: #c3ced9;
}

/* ---- specification strip ---------------------------------------- */
.pcw-specs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin: 44px 0 0;
  border-top: 1px solid rgba(255, 255, 255, .18);
}
.pcw-spec {
  padding: 18px 24px 0 0;
  border-right: 1px solid rgba(255, 255, 255, .10);
}
.pcw-spec:last-child { border-right: 0; }
.pcw-spec dt {
  font-family: var(--pcw-mono);
  font-size: .66rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: #8695a7;
  margin-bottom: 7px;
}
.pcw-spec dd {
  margin: 0;
  font-size: 1.16rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: -.01em;
}

/* ---- two-column case layout ------------------------------------- */
.pcw-case-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.02fr);
  gap: 64px;
  align-items: center;
}
.pcw-case-split--top { align-items: start; }
.pcw-case-text { max-width: 62ch; }
.pcw-case-text p {
  color: var(--pcw-body);
  font-size: 1rem;
  line-height: 1.75;
}
.pcw-case-text p + p { margin-top: 1rem; }
.pcw-case-media { min-width: 0; }
.pcw-case-split--top .pcw-case-text + .pcw-case-text { padding-top: 4px; }

/* ---- figures ---------------------------------------------------- */
.pcw-fig { margin: 0; }
.pcw-fig picture, .pcw-fig img { display: block; }
.pcw-fig img {
  width: 100%;
  height: auto;
  border: 1px solid var(--pcw-line);
  background: #fff;
}
.pcw-fig figcaption {
  margin-top: 10px;
  font-family: var(--pcw-mono);
  font-size: .76rem;
  line-height: 1.55;
  color: var(--pcw-muted);
}

/* ---- number/lettered value list --------------------------------- */
.pcw-decisions {
  counter-reset: d;
  list-style: none;
  margin: 56px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 56px;
  border-top: 1px solid var(--pcw-line);
}
.pcw-decisions li {
  counter-increment: d;
  padding: 26px 0 26px 52px;
  position: relative;
  border-bottom: 1px solid var(--pcw-line);
}
.pcw-decisions li::before {
  content: counter(d, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: 26px;
  font-family: var(--pcw-mono);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--pcw-primary);
}
.pcw-decisions h3 {
  margin: 0 0 8px;
  font-size: 1rem;
  color: var(--pcw-charcoal);
  letter-spacing: -.005em;
}
.pcw-decisions p {
  margin: 0;
  font-size: .92rem;
  line-height: 1.65;
  color: var(--pcw-body);
}

/* ---- considerations -------------------------------------------- */
.pcw-tech-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid var(--pcw-line);
}
.pcw-tech {
  padding: 28px 28px 28px 0;
  border-bottom: 1px solid var(--pcw-line);
  border-right: 1px solid var(--pcw-line);
}
.pcw-tech:not(:nth-child(3n)) { padding-right: 28px; }
.pcw-tech:nth-child(3n) { border-right: 0; padding-right: 0; }
.pcw-tech:nth-child(3n+1) { padding-left: 0; }
.pcw-tech:not(:nth-child(3n+1)) { padding-left: 28px; }
.pcw-tech h3 {
  margin: 0 0 10px;
  font-family: var(--pcw-mono);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--pcw-charcoal);
}
.pcw-tech p {
  margin: 0;
  font-size: .92rem;
  line-height: 1.68;
  color: var(--pcw-body);
}

/* ---- result note ------------------------------------------------ */
.pcw-note {
  margin: 28px 0 0;
  padding: 18px 22px;
  border-left: 2px solid var(--pcw-primary);
  background: #fff;
  font-size: .88rem;
  line-height: 1.6;
  color: var(--pcw-muted);
  font-family: var(--pcw-mono);
}

/* ---- dark evidence section -------------------------------------- */
.pcw-section--ink {
  background: var(--pcw-steel);
  color: #fff;
  border-block: 1px solid rgba(255, 255, 255, .08);
}
.pcw-h2--light { color: #fff; }
.pcw-lead--light { color: #b7c3d0; }
.pcw-section--ink .pcw-note { background: rgba(255, 255, 255, .05); color: #b7c3d0; border-left-color: var(--pcw-primary); }

.pcw-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 40px 40px;
  margin-top: 48px;
}
.pcw-gallery .pcw-fig img {
  border-color: rgba(255, 255, 255, .16);
}
.pcw-gallery .pcw-fig:first-child { grid-column: 1 / -1; }
.pcw-gallery .pcw-fig figcaption { color: #97a6b6; }

/* ---- chips ------------------------------------------------------ */
.pcw-chips {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.pcw-chips a {
  display: inline-block;
  padding: 10px 16px;
  border: 1px solid var(--pcw-line);
  border-radius: 999px;
  font-size: .85rem;
  font-weight: 600;
  color: var(--pcw-charcoal);
  text-decoration: none;
  transition: border-color .15s ease, color .15s ease;
}
.pcw-chips a:hover { border-color: var(--pcw-primary); color: var(--pcw-primary); }

.pcw-cta-link {
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}
.pcw-cta-link:hover { color: var(--pcw-charcoal); }

/* ---- pager ------------------------------------------------------ */
.pcw-pager {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  border-top: 1px solid var(--pcw-line);
  padding-top: 24px;
}
.pcw-pager__item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-decoration: none;
  color: var(--pcw-charcoal);
}
.pcw-pager__item span {
  font-family: var(--pcw-mono);
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--pcw-muted);
}
.pcw-pager__item strong { font-size: 1rem; font-weight: 700; }
.pcw-pager__item:hover strong { color: var(--pcw-primary); }
.pcw-pager__item--next { text-align: right; align-items: flex-end; }

/* ---- portfolio index -------------------------------------------- */
.pcw-h1 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; }
.pcw-lead--left { margin: 20px 0 0; max-width: 62ch; text-align: left; }
.pcw-section-head--left {
  text-align: left;
  align-items: flex-start;
  margin-inline: 0;
}
.pcw-section-head--left .pcw-lead { margin-inline: 0; }

.pcw-work-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px 40px;
}
.pcw-work {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  border-top: 1px solid var(--pcw-line);
  padding-top: 20px;
}
.pcw-work__media { margin-bottom: 22px; overflow: hidden; }
.pcw-work__media .pcw-fig img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform .4s ease;
}
.pcw-work:hover .pcw-work__media .pcw-fig img { transform: scale(1.015); }
.pcw-work__body .pcw-kicker { margin-bottom: 12px; }
.pcw-work h2 {
  margin: 0 0 10px;
  font-size: 1.3rem;
  letter-spacing: -.015em;
  color: var(--pcw-charcoal);
}
.pcw-work:hover h2 { color: var(--pcw-primary); }
.pcw-work__hook {
  margin: 0 0 10px !important;
  font-family: var(--pcw-mono);
  font-size: .78rem !important;
  letter-spacing: .02em;
  color: var(--pcw-primary) !important;
}
.pcw-work__summary {
  margin: 0 0 16px !important;
  font-size: .92rem !important;
  line-height: 1.65 !important;
  color: var(--pcw-body) !important;
}
.pcw-work__more {
  margin-top: auto;
  font-size: .82rem;
  font-weight: 700;
  color: var(--pcw-charcoal);
}
.pcw-work:hover .pcw-work__more { color: var(--pcw-primary); }

@media (max-width: 1080px) {
  .pcw-case-split { grid-template-columns: 1fr; gap: 36px; }
  .pcw-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcw-spec:nth-child(2n) { border-right: 0; }
  .pcw-spec { padding-block: 16px; }
  .pcw-tech-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcw-tech { border-right: 0; padding-inline: 0; }
  .pcw-tech:nth-child(2n) { padding-left: 24px; border-right: 0; }
}

@media (max-width: 860px) {
  .pcw-case-hero { padding: 72px 0 44px; }
  .pcw-decisions { grid-template-columns: 1fr; gap: 0; }
  .pcw-gallery { grid-template-columns: 1fr; gap: 28px; }
  .pcw-work-grid { grid-template-columns: 1fr; gap: 40px; }
  .pcw-tech-grid { grid-template-columns: 1fr; }
  .pcw-tech, .pcw-tech:nth-child(2n) { padding-inline: 0; border-right: 0; }
}

@media (max-width: 560px) {
  .pcw-specs { grid-template-columns: 1fr; }
  .pcw-spec { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.10); padding-block: 14px; }
  .pcw-spec:last-child { border-bottom: 0; }
  .pcw-pager { grid-template-columns: 1fr; }
  .pcw-pager__item--next { text-align: left; align-items: flex-start; }
  .pcw-decisions li { padding-left: 42px; }
}

/* ---- zoom affordance + lightbox --------------------------------- */
.pcw-zoom { display: block; cursor: zoom-in; position: relative; }
.pcw-zoom::after {
  content: "Open full size";
  position: absolute;
  right: 10px;
  bottom: 10px;
  padding: 5px 9px;
  font-family: var(--pcw-mono);
  font-size: .62rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
  background: rgba(16, 21, 27, .82);
  border-radius: 3px;
  opacity: 0;
  transition: opacity .15s ease;
  pointer-events: none;
}
.pcw-zoom:hover::after, .pcw-zoom:focus-visible::after { opacity: 1; }

.pcw-lightbox {
  width: min(96vw, 1700px);
  max-width: none;
  max-height: 94vh;
  padding: 0;
  border: 0;
  border-radius: 4px;
  background: #0b1015;
  color: #fff;
  overflow: hidden;
}
.pcw-lightbox::backdrop { background: rgba(6, 9, 12, .88); }
.pcw-lightbox__bar {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 10px 12px 10px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.pcw-lightbox__cap {
  flex: 1 1 auto;
  font-family: var(--pcw-mono);
  font-size: .72rem;
  line-height: 1.4;
  color: #9fb0c1;
}
.pcw-lightbox__close {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 4px;
  background: transparent;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
}
.pcw-lightbox__close:hover { border-color: var(--pcw-primary); color: var(--pcw-primary); }
.pcw-lightbox__stage { display: flex; align-items: center; justify-content: center; background: #fff; }
.pcw-lightbox__stage img {
  display: block;
  max-width: 100%;
  max-height: calc(94vh - 54px);
  width: auto;
  height: auto;
}

/* ---- home hero + buttons ---------------------------------------- */
.pcw-home-hero { padding: 120px 0 88px; }
.pcw-home-hero .pcw-case-hero__title { max-width: 26ch; }
.pcw-home-hero .pcw-case-hero__lead { max-width: 58ch; }
.pcw-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }

.pcw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 24px;
  border-radius: var(--pcw-radius);
  font-size: .92rem;
  font-weight: 700;
  text-decoration: none;
  border: 1px solid transparent;
  transition: background .15s ease, border-color .15s ease, color .15s ease, transform .15s ease;
}
.pcw-btn--primary { background: var(--pcw-primary); color: #fff; }
.pcw-btn--primary:hover { background: #e25b02; color: #fff; transform: translateY(-1px); }
.pcw-btn--ghost { border-color: rgba(255, 255, 255, .34); color: #fff; }
.pcw-btn--ghost:hover { border-color: #fff; color: #fff; background: rgba(255, 255, 255, .06); }

.pcw-more-link { margin: 44px 0 0; }
.pcw-more-link a {
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}
.pcw-more-link a:hover { color: var(--pcw-charcoal); }

/* ---- service index list ----------------------------------------- */
.pcw-service-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--pcw-line); }
.pcw-service-list li { border-bottom: 1px solid var(--pcw-line); }
.pcw-service-list a {
  display: flex;
  align-items: baseline;
  gap: 18px;
  padding: 15px 0;
  font-size: .98rem;
  font-weight: 600;
  color: var(--pcw-charcoal);
  text-decoration: none;
}
.pcw-service-list a span {
  font-family: var(--pcw-mono);
  font-size: .7rem;
  letter-spacing: .1em;
  color: var(--pcw-primary);
  flex: 0 0 auto;
}
.pcw-service-list a:hover { color: var(--pcw-primary); }

/* ---- numbered process ------------------------------------------- */
.pcw-steps--line {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  margin-top: 44px;
  border-top: 1px solid var(--pcw-line);
}
.pcw-steps--line .pcw-step {
  padding: 24px 28px 24px 0;
  border-right: 1px solid var(--pcw-line);
  background: none;
  border-radius: 0;
  box-shadow: none;
}
.pcw-steps--line .pcw-step:last-child { border-right: 0; padding-right: 0; }
.pcw-steps--line .pcw-step + .pcw-step { padding-left: 28px; }
.pcw-step__num {
  display: block;
  margin-bottom: 14px;
  font-family: var(--pcw-mono);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .1em;
  color: var(--pcw-primary);
}
.pcw-steps--line h3 { margin: 0 0 8px; font-size: 1rem; color: var(--pcw-charcoal); }
.pcw-steps--line p { margin: 0; font-size: .89rem; line-height: 1.65; color: var(--pcw-body); }

/* ---- fact list (dark section) ----------------------------------- */
.pcw-fact-list { list-style: none; margin: 0; padding: 0; }
.pcw-fact-list li {
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}
.pcw-fact-list li:first-child { border-top: 1px solid rgba(255, 255, 255, .12); }
.pcw-fact-list strong {
  font-size: .82rem;
  font-family: var(--pcw-mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #fff;
}
.pcw-fact-list span { font-size: .9rem; line-height: 1.55; color: #a9b8c7; }

/* ---- work cards: allow h3 titles -------------------------------- */
.pcw-work h3 {
  margin: 0 0 10px;
  font-size: 1.3rem;
  letter-spacing: -.015em;
  color: var(--pcw-charcoal);
}
.pcw-work:hover h3 { color: var(--pcw-primary); }

@media (max-width: 1080px) {
  .pcw-steps--line { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcw-steps--line .pcw-step:nth-child(2n) { border-right: 0; padding-right: 0; }
  .pcw-steps--line .pcw-step:nth-child(2n+1) { padding-left: 0; }
}
@media (max-width: 860px) {
  .pcw-home-hero { padding: 72px 0 56px; }
  .pcw-steps--line { grid-template-columns: 1fr; }
  .pcw-steps--line .pcw-step, .pcw-steps--line .pcw-step + .pcw-step {
    padding: 22px 0; border-right: 0; border-bottom: 1px solid var(--pcw-line);
  }
  .pcw-steps--line .pcw-step:last-child { border-bottom: 0; }
}

/* ---- services page ---------------------------------------------- */
.pcw-svc {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 24px 64px;
  padding: 48px 0;
  border-top: 1px solid var(--pcw-line);
}
.pcw-svc:last-child { border-bottom: 1px solid var(--pcw-line); }
.pcw-svc__intro h2 { font-size: 1.5rem; margin: 0 0 16px; color: var(--pcw-charcoal); }
.pcw-svc__intro p { color: var(--pcw-body); font-size: .97rem; line-height: 1.72; margin: 0 0 1rem; }
.pcw-svc__detail { display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; align-content: start; }
.pcw-svc__col h3 {
  margin: 0 0 12px;
  font-family: var(--pcw-mono);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--pcw-charcoal);
}
.pcw-svc__col .pcw-list ul { gap: 8px 0; }
.pcw-svc__col .pcw-list li { font-size: .87rem; line-height: 1.5; }
.pcw-svc__proof {
  grid-column: 1 / -1;
  margin: 0;
  padding-top: 18px;
  border-top: 1px dashed var(--pcw-line);
  font-size: .86rem;
  color: var(--pcw-muted);
}
.pcw-svc__proof a { font-weight: 600; }

/* ---- fact list on a light background ---------------------------- */
.pcw-fact-list--dark li { border-bottom-color: var(--pcw-line); }
.pcw-fact-list--dark li:first-child { border-top-color: var(--pcw-line); }
.pcw-fact-list--dark strong { color: var(--pcw-charcoal); }
.pcw-fact-list--dark span { color: var(--pcw-body); }

.pcw-note--box {
  border-left: 2px solid var(--pcw-primary);
  background: var(--pcw-pale);
  padding: 22px 24px;
  margin: 0;
}

/* ---- four-up considerations grid -------------------------------- */
.pcw-tech-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pcw-tech-grid--four .pcw-tech { padding-inline: 0; border-right: 1px solid var(--pcw-line); padding-right: 24px; }
.pcw-tech-grid--four .pcw-tech + .pcw-tech { padding-left: 24px; }
.pcw-tech-grid--four .pcw-tech:last-child { border-right: 0; }

@media (max-width: 1080px) {
  .pcw-svc { grid-template-columns: 1fr; gap: 20px; }
  .pcw-tech-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcw-tech-grid--four .pcw-tech { padding-inline: 0; border-right: 0; }
}
@media (max-width: 860px) {
  .pcw-svc__detail { grid-template-columns: 1fr; gap: 20px; }
  .pcw-tech-grid--four { grid-template-columns: 1fr; }
}

/* ---- contact page ----------------------------------------------- */
.pcw-contact__lead {
  margin: 0 auto 28px;
  max-width: 56ch;
  color: var(--pcw-body);
  font-size: .98rem;
  line-height: 1.7;
}
.pcw-contact__cta { margin: 26px 0 34px; }
.pcw-contact__meta {
  list-style: none;
  margin: 0 auto;
  padding: 22px 0 0;
  max-width: 640px;
  border-top: 1px solid var(--pcw-line);
  text-align: left;
  display: grid;
  gap: 10px;
}
.pcw-contact__meta li { font-size: .87rem; line-height: 1.6; color: var(--pcw-muted); }
.pcw-contact__meta strong {
  display: inline-block;
  min-width: 132px;
  font-family: var(--pcw-mono);
  font-size: .68rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pcw-charcoal);
}

/* contact card: keep the kicker on the same axis as the centred content */
.pcw-contact-card .pcw-kicker { justify-content: center; }

/* Gallery rhythm: the first figure spans the width; if the count after it is odd
   the last figure spans too, so nothing is ever orphaned in a half-empty row. */
.pcw-gallery .pcw-fig:nth-child(even):last-child { grid-column: 1 / -1; }

/* ---- home hero with a real photograph --------------------------- */
.pcw-home-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
  gap: 64px;
  align-items: center;
}

/* ---- facts grid (about) ----------------------------------------- */
.pcw-facts-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--pcw-line);
}
.pcw-fact {
  padding: 20px 28px 20px 0;
  border-bottom: 1px solid var(--pcw-line);
  border-right: 1px solid var(--pcw-line);
}
.pcw-fact:nth-child(3n) { border-right: 0; padding-right: 0; }
.pcw-fact span {
  display: block;
  margin-bottom: 7px;
  font-family: var(--pcw-mono);
  font-size: .66rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: var(--pcw-muted);
}
.pcw-fact strong {
  display: block;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--pcw-charcoal);
}

@media (max-width: 980px) {
  .pcw-home-hero__grid { grid-template-columns: 1fr; gap: 36px; }
  .pcw-home-hero__media .pcw-fig img { aspect-ratio: 16 / 10; object-position: 50% 55%; }
  .pcw-facts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcw-fact:nth-child(3n) { border-right: 1px solid var(--pcw-line); padding-right: 28px; }
  .pcw-fact:nth-child(2n) { border-right: 0; padding-right: 0; }
}
@media (max-width: 640px) {
  .pcw-facts-grid { grid-template-columns: 1fr; }
  .pcw-fact, .pcw-fact:nth-child(2n), .pcw-fact:nth-child(3n) { border-right: 0; padding-right: 0; }
}

/* ---- hero photograph -------------------------------------------- */
/* An atmosphere image: the foreground column hides most of the welder, so the
   frame is kept whole rather than cropped in on an action that cannot be seen.
   Sized on the figure — .pcw-container > * carries max-width:none !important, so
   a max-width on .pcw-home-hero__media itself is silently dropped. */
.pcw-home-hero__media .pcw-fig {
  max-width: 440px;
  margin-left: auto;
}
.pcw-home-hero__media .pcw-fig img {
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: 50% 46%;
  border-color: rgba(255, 255, 255, .16);
}
.pcw-home-hero__media .pcw-fig figcaption {
  font-size: .8rem;
  line-height: 1.5;
  color: #a3b2c2;
}

/* ==================================================================
   Contrast: the brand orange (#fc6703) is 2.97:1 against white, so it
   cannot carry small text or sit under white button labels. It stays as the
   decorative accent on dark grounds (6.18:1) and everything that carries text
   on a light ground moves to #c94e00 (4.59:1 both as text on white and as a
   background under white). Measured, not eyeballed.
   ================================================================== */
:root {
  --pcw-accent-ink: #c94e00;
  --pcw-accent-ink-hover: #b84800;
}

a { color: var(--pcw-accent-ink); }

.wp-block-button__link,
.pcw-btn--primary,
.pcw-submit button {
  background: var(--pcw-accent-ink);
  color: #fff;
}
.wp-block-button__link:hover,
.pcw-btn--primary:hover,
.pcw-submit button:hover { background: var(--pcw-accent-ink-hover); }

.pcw-kicker__num,
.pcw-decisions li::before,
.pcw-work__hook,
.pcw-service-list a span,
.pcw-step__num,
.pcw-chips a:hover { color: var(--pcw-accent-ink); }
.pcw-work:hover h2,
.pcw-work:hover h3,
.pcw-pager__item:hover strong,
.pcw-service-list a:hover,
.pcw-head-link a,
.pcw-card-link a,
.pcw-cta-link { color: var(--pcw-accent-ink); }
.pcw-card-link a:hover,
.pcw-head-link a:hover { text-decoration: underline; }

/* active nav item on its pale chip: same 4.59:1 rule as other text on light */
.pcw-nav .current-menu-item > .wp-block-navigation-item__content,
.pcw-nav .current_page_item > .wp-block-navigation-item__content,
.pcw-nav .current-menu-parent > .wp-block-navigation-item__content,
.pcw-nav .current_page_parent > .wp-block-navigation-item__content { color: var(--pcw-accent-ink); }

/* About: the workshop photo is portrait and was out-running the text column,
   leaving a void beneath the prose. Frame it at 4:5 and cap the width so the
   two columns end together. */
.pcw-about-media .pcw-fig { max-width: 440px; }
.pcw-about-media .pcw-fig img { aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 44%; }

@media (max-width: 980px) {
  .pcw-home-hero__media .pcw-fig { max-width: none; }
  .pcw-home-hero__media .pcw-fig img { aspect-ratio: 16 / 10; object-position: 50% 58%; }
  .pcw-about-media .pcw-fig { max-width: none; }
  .pcw-about-media .pcw-fig img { aspect-ratio: 16 / 10; object-position: 50% 50%; }
}

/* an odd number of design decisions: let the last one span instead of leaving
   a half-empty row */
.pcw-decisions li:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* ---- practical application: who the work suits ---------------- */
.pcw-audience { border-top: 1px solid var(--pcw-line); padding-top: 22px; }
.pcw-audience .pcw-kicker { margin-bottom: 14px; }
.pcw-audience__list { list-style: none; margin: 0; padding: 0; }
.pcw-audience__list li {
  position: relative;
  padding: 12px 0 12px 22px;
  border-bottom: 1px solid var(--pcw-line);
  font-size: .92rem;
  line-height: 1.55;
  color: var(--pcw-charcoal);
}
.pcw-audience__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 19px;
  width: 7px;
  height: 7px;
  border: 1px solid var(--pcw-primary);
  transform: rotate(45deg);
}
.pcw-audience__list li:last-child { border-bottom: 0; }

/* ==================================================================
   Homepage iteration 2: capability tiles, differentiators, hero render
   ================================================================== */

/* hero: a project render rather than a photograph */
.pcw-home-hero__media--render .pcw-fig { max-width: 560px; }
.pcw-home-hero__media--render .pcw-fig img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: 50% 50%;
}

/* ---- capability tiles ------------------------------------------- */
.pcw-cap-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 44px;
  border-top: 1px solid var(--pcw-line);
}
.pcw-cap {
  display: block;
  padding: 26px 26px 26px 0;
  border-bottom: 1px solid var(--pcw-line);
  border-right: 1px solid var(--pcw-line);
  text-decoration: none;
  color: inherit;
}
.pcw-cap:nth-child(4n) { border-right: 0; padding-right: 0; }
.pcw-cap:not(:nth-child(4n+1)) { padding-left: 26px; }
.pcw-cap__num {
  display: block;
  margin-bottom: 12px;
  font-family: var(--pcw-mono);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--pcw-accent-ink);
}
.pcw-cap h3 {
  margin: 0 0 9px;
  font-size: 1rem;
  line-height: 1.35;
  letter-spacing: -.01em;
  color: var(--pcw-charcoal);
}
.pcw-cap p { margin: 0; font-size: .89rem; line-height: 1.6; color: var(--pcw-body); }
.pcw-cap:hover h3 { color: var(--pcw-accent-ink); }
.pcw-cap--cta { background: #fff; padding-inline: 26px; }
.pcw-cap--cta .pcw-cap__num { color: var(--pcw-muted); }
.pcw-cap__more {
  display: inline-block;
  margin-top: 12px;
  font-size: .83rem;
  font-weight: 700;
  color: var(--pcw-accent-ink);
}

/* ---- differentiators -------------------------------------------- */
.pcw-why { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--pcw-line); }
.pcw-why li { padding: 16px 0; border-bottom: 1px solid var(--pcw-line); }
.pcw-why strong { display: block; margin-bottom: 5px; font-size: .95rem; color: var(--pcw-charcoal); }
.pcw-why span { display: block; font-size: .89rem; line-height: 1.6; color: var(--pcw-body); }

/* photograph inside a text column */
.pcw-case-text .pcw-about-media { margin-top: 30px; }
.pcw-case-text .pcw-about-media .pcw-fig { max-width: none; }
.pcw-case-text .pcw-about-media .pcw-fig img { aspect-ratio: 3 / 2; object-position: 50% 55%; }

.pcw-facts-grid--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pcw-facts-grid--two .pcw-fact:nth-child(3n) { border-right: 1px solid var(--pcw-line); padding-right: 28px; }
.pcw-facts-grid--two .pcw-fact:nth-child(2n) { border-right: 0; padding-right: 0; }

.pcw-band__alt { margin: 22px 0 0; font-size: .88rem; color: #9fb0c1; }
.pcw-band__alt a { color: #fff; }

@media (max-width: 1080px) {
  .pcw-cap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pcw-cap:nth-child(4n) { border-right: 1px solid var(--pcw-line); padding-right: 26px; }
  .pcw-cap:nth-child(2n) { border-right: 0; padding-right: 0; }
  .pcw-cap:nth-child(2n+1) { padding-left: 0; }
  .pcw-cap--cta { padding-inline: 26px; }
}
@media (max-width: 640px) {
  .pcw-cap-grid { grid-template-columns: 1fr; }
  .pcw-cap, .pcw-cap:nth-child(2n), .pcw-cap:nth-child(4n) { border-right: 0; padding-inline: 0; }
  .pcw-cap--cta { padding-inline: 20px; }
  .pcw-facts-grid--two { grid-template-columns: 1fr; }
  .pcw-facts-grid--two .pcw-fact { border-right: 0; padding-right: 0; }
}

/* the trailing capability tile is a route to the services page, not an eighth
   service: invert it so it reads as an action */
.pcw-cap--cta {
  background: var(--pcw-deep);
  border-right: 0;
  padding: 26px 24px;
  transition: background .15s ease;
}
.pcw-cap--cta h3 { color: #fff; }
.pcw-cap--cta p { color: #a9b8c7; }
.pcw-cap--cta .pcw-cap__num { color: rgba(255, 255, 255, .45); }
.pcw-cap--cta .pcw-cap__more { color: #fc6703; }
.pcw-cap--cta:hover { background: #171d25; }
.pcw-cap--cta:hover h3 { color: #fff; }

/* the workshop photograph in the differentiators block was out-running the list
   on the right; a wider frame brings the two columns level */
.pcw-case-text .pcw-about-media .pcw-fig img { aspect-ratio: 16 / 9; }

@media (max-width: 640px) {
  .pcw-cap--cta { padding: 22px 20px; }
}

/* ==================================================================
   Editorial pass: a quieter type scale, fewer containers, and section
   forms that differ from one another instead of repeating a card grid.
   ================================================================== */
.pcw-case-hero__title {
  font-size: clamp(1.95rem, 3.3vw, 2.75rem);
  line-height: 1.12;
  max-width: 24ch;
}
.pcw-h2 {
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  line-height: 1.22;
  letter-spacing: -.015em;
}
.pcw-h1 { font-size: clamp(1.9rem, 3vw, 2.5rem); line-height: 1.14; }

/* body copy: slightly larger, shorter measure, more air */
.pcw-copy p,
.pcw-case-text p {
  font-size: 1.02rem;
  line-height: 1.72;
  color: var(--pcw-body);
  max-width: 58ch;
}
.pcw-copy p + p { margin-top: 1.05rem; }
.pcw-case-text .pcw-h2 + p { margin-top: 1.1rem; }
.pcw-lead { font-size: 1.05rem; line-height: 1.65; max-width: 62ch; }

/* section head: no forced centring, no auto subtitle */
.pcw-section-head--left { margin-bottom: 40px; }

/* ---- details: a definition list, not a card grid ----------------- */
.pcw-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 64px;
  margin-top: 34px;
  border-top: 1px solid var(--pcw-line);
}
.pcw-detail { padding: 20px 0 22px; border-bottom: 1px solid var(--pcw-line); }
.pcw-detail h3 {
  margin: 0 0 8px;
  font-size: .98rem;
  font-weight: 700;
  letter-spacing: -.005em;
  color: var(--pcw-charcoal);
  text-transform: none;
  font-family: inherit;
}
.pcw-detail p { margin: 0; font-size: .95rem; line-height: 1.65; color: var(--pcw-body); max-width: 52ch; }

/* ---- related services: one line, not a panel -------------------- */
.pcw-related {
  margin: 0;
  padding-top: 22px;
  border-top: 1px solid var(--pcw-line);
  font-size: .9rem;
  color: var(--pcw-muted);
}
.pcw-related a { color: var(--pcw-charcoal); text-underline-offset: 3px; }
.pcw-related a:hover { color: var(--pcw-accent-ink); }
.pcw-related__cta { font-weight: 700; color: var(--pcw-accent-ink) !important; }

@media (max-width: 860px) {
  .pcw-details { grid-template-columns: 1fr; gap: 0; }
}

/* ---- capability list: rows, not tiles --------------------------- */
.pcw-cap-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 64px;
  margin: 28px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--pcw-line);
}
.pcw-cap-list a {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 2px 10px;
  padding: 16px 0;
  border-bottom: 1px solid var(--pcw-line);
  text-decoration: none;
  color: inherit;
}
.pcw-cap-list__num {
  grid-row: 1 / span 2;
  font-family: var(--pcw-mono);
  font-size: .7rem;
  letter-spacing: .08em;
  color: var(--pcw-accent-ink);
  padding-top: 3px;
}
.pcw-cap-list__name { font-size: 1rem; font-weight: 700; color: var(--pcw-charcoal); }
.pcw-cap-list__note { font-size: .9rem; line-height: 1.55; color: var(--pcw-body); }
.pcw-cap-list a:hover .pcw-cap-list__name { color: var(--pcw-accent-ink); }

/* ---- process: no dividing rules, just columns ------------------- */
.pcw-steps--plain {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0 48px;
  margin-top: 30px;
  border-top: 1px solid var(--pcw-line);
  padding-top: 26px;
}
.pcw-steps--plain .pcw-step {
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
  border-radius: 0;
}
.pcw-steps--plain h3 { margin: 0 0 7px; font-size: 1rem; color: var(--pcw-charcoal); }
.pcw-steps--plain p { margin: 0; font-size: .92rem; line-height: 1.62; color: var(--pcw-body); }

@media (max-width: 980px) {
  .pcw-cap-list { grid-template-columns: 1fr; }
  .pcw-steps--plain { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 32px; }
}
@media (max-width: 640px) {
  .pcw-steps--plain { grid-template-columns: 1fr; gap: 22px; }
}

/* gallery: uniform frame so tall renders do not tower over the drawing beside them */
.pcw-gallery .pcw-fig img {
  aspect-ratio: 4 / 3;
  object-fit: contain;
  background: #f3f4f6;
}

/* the answer column reads as the response to the problem, not its twin */
.pcw-answer .pcw-h2 { color: var(--pcw-ink); }
.pcw-answer p { color: var(--pcw-ink); }
.pcw-answer { border-left: 2px solid var(--pcw-primary); padding-left: 26px; }

@media (max-width: 860px) {
  .pcw-answer { border-left: 0; padding-left: 0; border-top: 1px solid var(--pcw-line); padding-top: 24px; }
}

/* service rows read better without the numbered motif, which the portfolio owns */
.pcw-cap-list a { grid-template-columns: minmax(0, 1fr); }
.pcw-cap-list__num { display: none; }

/* ---- portfolio index: one featured project, then a quieter grid -------- */
.pcw-work-grid--index { gap: 56px 40px; }
.pcw-work-grid--index .pcw-work:first-child {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
  gap: 0 56px;
  align-items: center;
  padding-top: 24px;
}
.pcw-work-grid--index .pcw-work:first-child .pcw-work__media { margin-bottom: 0; }
.pcw-work-grid--index .pcw-work:first-child .pcw-fig img { aspect-ratio: 16 / 10; }
.pcw-work-grid--index .pcw-work:first-child h2 { font-size: 1.6rem; }
.pcw-work-grid--index .pcw-work:first-child .pcw-work__hook { font-size: .8rem; }

@media (max-width: 860px) {
  .pcw-work-grid--index .pcw-work:first-child { grid-template-columns: 1fr; gap: 20px; }
  .pcw-work-grid--index .pcw-work:first-child .pcw-fig img { aspect-ratio: 4 / 3; }
}
