/* Public home: production agency and self-built software share one company.
   Reuses public.css tokens; no admin styles, autoplay, or hidden article content. */
.p-home-refined {
  --p-max: 1480px;
  --p-gutter: clamp(20px, 3.5vw, 64px);
  --p-display: clamp(2.25rem, 3.7vw, 3.75rem);
  --p-h2: clamp(1.75rem, 2.7vw, 2.5rem);
  --p-section-space: 80px;
  --home-gap: clamp(24px, 3.75vw, 48px);
  --home-lead: clamp(1.0625rem, 1.4vw, 1.1875rem);
  --home-cover: clamp(280px, 25vw, 360px);
  --home-project-title: clamp(1.375rem, 2vw, 1.875rem);
  --home-card-title: 1.125rem;
}
.p-home-refined .p-header__inner { min-height: 88px; }
.p-home-refined .p-nav { gap: var(--p-s5); }
.p-home-refined .p-home-hero { display: block; padding-block: var(--p-s7) 0; }
.p-home-refined .p-home-hero__copy { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: var(--home-gap); align-items: end; margin-block-end: var(--p-s6); }
.p-home-refined .p-home-hero h1 { font-weight: 570; line-height: 1.3; letter-spacing: var(--p-display-tracking); }
.p-home-refined h2 { font-weight: 560; line-height: 1.4; }
.p-home-refined .p-home-hero__lead { margin-block-start: 0 !important; font-size: var(--home-lead); line-height: 1.7; max-width: 34em; }
.p-home-hero__links { display: flex; flex-wrap: wrap; gap: 0 var(--p-s5); margin-block-start: var(--p-s3); }
.p-home-hero__links > .p-link { margin-block-start: 0; }
.p-home-refined #home-title > span { display: block; text-wrap: balance; }
.p-home-routes { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--p-s5); }
.p-home-route { min-width: 0; display: grid; grid-template-rows: 1fr auto; }
@supports (grid-template-rows: subgrid) {
  .p-home-route { grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; }
}
.p-home-route__media, .p-home-route__terms { min-height: var(--home-cover); position: relative; }
.p-home-route__media { background: var(--p-soft); }
.p-home-route__media > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; object-position: center 54%; outline: 1px solid var(--p-image-line); outline-offset: -1px; }
.p-home-route__caption { font-size: var(--p-small); line-height: 1.6; }
.p-home-route__media > .p-home-route__caption { position: absolute; inset-inline-start: var(--p-s4); inset-block-end: var(--p-s4); max-width: calc(100% - var(--p-s6)); padding: var(--p-s1) var(--p-s3); background: var(--p-paper); color: var(--p-ink); }
.p-home-route__terms { display: flex; flex-direction: column; justify-content: space-between; gap: var(--p-s5); padding: var(--p-s6); background: var(--p-blue); color: var(--p-on-brand); }
.p-home-route__terms .p-small, .p-home-route__terms .p-home-route__caption, .p-home-route__terms dt { color: var(--p-on-brand-muted); }
.p-home-route__terms dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--p-s5) var(--p-s4); }
.p-home-route__terms dt { font-size: var(--p-small); }
.p-home-route__terms dd { font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.5; font-weight: 500; overflow-wrap: anywhere; margin-block-start: var(--p-s1); }
.p-home-route__label { display: flex; align-items: center; justify-content: space-between; gap: var(--p-s5); padding-block: var(--p-s5); border-block-end: 1px solid var(--p-line); }
.p-home-route__label strong { display: block; font-size: var(--p-h3); font-weight: 570; color: var(--p-heading); }
.p-home-route__label div > span { display: block; margin-block-start: var(--p-s1); font-size: var(--p-ui); color: var(--p-muted); }
.p-home-route__label > .p-icon { width: 24px; height: 24px; }
.p-home-context { display: flex; align-items: center; justify-content: space-between; gap: var(--p-s4); padding-block: var(--p-s3); color: var(--p-muted); font-size: var(--p-small); }
.p-home-context nav { display: flex; gap: var(--p-s5); }
.p-home-context a { display: inline-flex; min-height: 44px; align-items: center; gap: var(--p-s2); color: var(--p-ink); text-decoration: underline; text-underline-offset: 4px; }
.p-home-context .p-icon { width: 16px; height: 16px; }
.p-home-refined .p-section-head { margin-block-end: var(--p-s6); }
.p-home-refined .p-section-head .p-eyebrow { margin-block-end: var(--p-s3) !important; }
.p-home-case { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--home-gap); align-items: center; }
.p-home-case .p-case__media { min-width: 0; }
.p-home-case .p-case__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; outline: 1px solid var(--p-image-line); outline-offset: -1px; }
.p-home-case .p-case__media figcaption { margin-block-start: var(--p-s2); }
.p-home-case h3 { font-size: var(--home-project-title); }
.p-home-case .p-description { margin-block-start: var(--p-s2); }
.p-home-case .p-facts { margin-block: var(--p-s5) var(--p-s3); }
.p-home-refined .p-project-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-block-start: var(--p-s7); gap: var(--p-s6); }
.p-home-refined .p-project { display: block; background: transparent; padding: var(--p-s5) 0 0; border-block-start: 1px solid var(--p-line); grid-row: auto; }
.p-home-refined .p-project h3 { font-size: var(--home-card-title); line-height: 1.5; font-weight: 570; }
.p-home-refined .p-project h3 a { display: inline-flex; align-items: start; gap: var(--p-s4); }
.p-home-refined .p-project h3 .p-icon { margin-block-start: var(--p-s1); }
.p-home-refined .p-project__summary { margin-block: var(--p-s3); max-width: 42em; font-size: var(--p-ui); }
.p-home-method { background: var(--p-soft); }
.p-home-method__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--home-gap); }
.p-home-method h2 + p { margin-block: var(--p-s5) var(--p-s3); max-width: 34em; }
.p-home-method__details { display: grid; align-content: start; gap: var(--p-s5); }
.p-home-method__details dl { display: grid; gap: var(--p-s5); }
.p-home-method__details dl > div { display: grid; grid-template-columns: minmax(0, .5fr) minmax(0, 1.5fr); gap: var(--p-s5); padding-block-end: var(--p-s4); border-block-end: 1px solid var(--p-line); }
.p-home-method__details dt { font-size: var(--p-small); color: var(--p-muted); }
.p-home-method__details dd { font-size: var(--p-ui); }
.p-home-product { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--home-gap); align-items: center; }
.p-home-product > * { min-width: 0; }
.p-home-product figure > a { display: block; padding: var(--p-s5); background: var(--p-soft); }
.p-home-product img { width: 100%; outline: 1px solid var(--p-image-line); outline-offset: -1px; }
.p-home-product figcaption { margin-block-start: var(--p-s3); }
.p-home-product h3 + p { margin-block-start: var(--p-s3); color: var(--p-muted); }
.p-home-product__wiki { display: flex; flex-wrap: wrap; gap: var(--p-s1) var(--p-s5); align-items: center; border-block-start: 1px solid var(--p-line); margin-block-start: var(--p-s5); padding-block-start: var(--p-s4); }
.p-home-product__wiki a { display: inline-flex; align-items: center; gap: var(--p-s2); min-height: 44px; text-decoration: underline; text-underline-offset: 5px; }
.p-home-product__wiki .p-icon { width: 16px; height: 16px; }
.p-home-refined .p-home-digital__reason { max-width: 48em; margin-block: 0 var(--p-s7); color: var(--p-muted); }
.p-home-refined .p-knowledge-home { background: var(--p-soft); }
.p-home-knowledge-entry { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: var(--home-gap); align-items: start; }
.p-home-refined .p-home-search { margin-block: 0; }
.p-home-questions { display: grid; }
.p-home-questions a { display: flex; align-items: center; justify-content: space-between; gap: var(--p-s4); min-height: 48px; padding-block: var(--p-s2); border-block-end: 1px solid var(--p-line); font-size: var(--p-ui); }
.p-home-refined .p-process-collection { margin-block-start: var(--p-s7); padding-block-start: var(--p-s6); border-block-start: 1px solid var(--p-line); }
.p-process-collection__head { display: flex; justify-content: space-between; gap: var(--p-s5); align-items: baseline; margin-block-end: var(--p-s5); }
.p-process-collection__head h3 { font-size: var(--p-h3); }
.p-process-collection__head > p { max-width: 32em; }
.p-process-index { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--p-s4); list-style: none; padding: 0; }
.p-process-index a { display: block; }
.p-process-index img { width: 100%; aspect-ratio: 8 / 3; object-fit: contain; background: var(--p-paper); outline: 1px solid var(--p-image-line); outline-offset: -1px; }
.p-process-index a > span { display: flex; justify-content: space-between; align-items: center; gap: var(--p-s2); min-height: 48px; padding-block: var(--p-s2); }
.p-process-index strong { font-size: var(--p-ui); font-weight: 500; }
.p-process-index .p-icon { width: 16px; height: 16px; }
.p-home-resource-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--p-s5); margin-block-start: var(--p-s6); padding-block-start: var(--p-s5); border-block-start: 1px solid var(--p-line); }
.p-home-resource-strip > a { display: grid; grid-template-columns: 72px minmax(0, 1fr) 16px; align-items: center; gap: var(--p-s3); }
.p-home-resource-strip img { width: 72px; height: 72px; object-fit: cover; outline: 1px solid var(--p-image-line); outline-offset: -1px; }
.p-home-resource-strip strong { display: block; margin-block-start: var(--p-s1); font-size: var(--p-ui); font-weight: 500; line-height: 1.5; }
.p-home-resource-strip .p-icon { width: 16px; height: 16px; }
.p-home-refined .p-footer { margin-block-start: 0; }
.p-home-services { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--p-s6); margin-block-start: var(--p-s7); }
.p-home-services > a { position: relative; display: grid; align-content: start; gap: var(--p-s2); padding-block: var(--p-s5); padding-inline-end: var(--p-s6); border-block-start: 1px solid var(--p-line); }
.p-home-services strong { font-size: var(--p-h3); font-weight: 500; color: var(--p-heading); }
.p-home-services > a > span:not(.p-small) { font-size: var(--p-ui); color: var(--p-muted); }
.p-home-services .p-icon { position: absolute; inset-inline-end: 0; inset-block-start: var(--p-s5); width: 16px; height: 16px; }
@media (hover: hover) and (pointer: fine) { .p-home-services a:hover strong { text-decoration: underline; text-underline-offset: 6px; } }
@media (max-width: 760px) { .p-home-services { grid-template-columns: 1fr; gap: 0; } }
@media (hover: hover) and (pointer: fine) {
  .p-home-route:hover .p-home-route__label strong, .p-process-index a:hover strong, .p-home-resource-strip a:hover strong, .p-home-questions a:hover { text-decoration: underline; text-underline-offset: 5px; }
}
@media (max-width: 1180px) {
  .p-home-refined .p-home-hero__copy { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
  .p-home-resource-strip { grid-template-columns: 1fr; gap: var(--p-s4); }
}
@media (max-width: 900px) {
  .p-home-product { grid-template-columns: 1fr; gap: var(--p-s5); }
  .p-home-refined { --p-section-space: 64px; }
  .p-home-refined .p-header__inner { min-height: 80px; }
  .p-home-refined .p-home-hero__copy { grid-template-columns: 1fr; gap: var(--p-s5); }
  .p-home-hero__aside { max-width: 40em; }
  .p-home-refined .p-home-hero__lead { max-width: none; }
  .p-home-case { grid-template-columns: 1fr 1fr; gap: var(--p-s5); align-items: start; }
  .p-home-case .p-facts > div { grid-template-columns: 1fr; gap: var(--p-s1); }
  .p-home-refined .p-project-grid { grid-template-columns: 1fr; }
  .p-home-method__grid, .p-home-knowledge-entry { grid-template-columns: 1fr; gap: var(--p-s6); }
  .p-process-collection__head { display: block; }
  .p-process-collection__head > p { margin-block-start: var(--p-s2); }
  .p-process-index { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--p-s5); }
}
@media (max-width: 760px) {
  .p-home-routes { grid-template-columns: 1fr; }
  .p-home-route__terms { min-height: 260px; }
  .p-home-route__terms dd { font-size: 1.5rem; }
  .p-home-case { grid-template-columns: 1fr; gap: var(--p-s5); }
  .p-home-case .p-case__media img { aspect-ratio: 3 / 2; }
  .p-home-refined .p-project-grid { grid-template-columns: 1fr; gap: var(--p-s6); }
}
@media (max-width: 600px) {
  .p-home-refined { --p-gutter: 20px; --p-display: clamp(2rem, 7.6vw, 2.5rem); --p-h2: 1.75rem; --home-cover: 240px; --p-section-space: 56px; }
  .p-home-refined .p-home-hero { padding-block-start: var(--p-s6); }
  .p-home-refined .p-home-hero h1 { line-height: 1.4; }
  .p-home-refined .p-eyebrow { margin-block-end: var(--p-s3) !important; }
  .p-home-context { display: block; padding-block: var(--p-s4) 0; }
  .p-home-context nav { margin-block-start: var(--p-s2); }
  .p-home-route__terms { padding: var(--p-s5); }
  .p-home-route__label { padding-block: var(--p-s4); }
  .p-home-refined .p-section-head { display: block; }
  .p-home-refined .p-section-head > :is(p, a) { margin-block-start: var(--p-s3); }
  .p-home-refined .p-home-search > div { display: grid; grid-template-columns: 1fr; }
  .p-home-refined .p-home-search input { width: 100%; min-width: 0; }
  .p-process-index { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--p-s4); }
}
@media (max-width: 350px) {
  .p-home-refined { --p-gutter: 16px; }
}
