/* Shared page layouts; the home page keeps its own composition. */
.page-hero { padding-top:162px; padding-bottom:70px; }
.breadcrumbs ol { display:flex; flex-wrap:wrap; gap:8px 15px; list-style:none; margin:0 0 60px; padding:0; font-family:var(--mono); font-size:10px; line-height:1.7; color:var(--ink-soft); }
.breadcrumbs li + li::before { content:'/'; margin-right:15px; color:#aaa99f; }
.breadcrumbs a:hover { color:var(--ink); }
.page-heading { display:grid; grid-template-columns:1.5fr 1fr; gap:80px; align-items:end; }
.page-heading h1 { margin-top:24px; font-size:clamp(52px,6.2vw,90px); line-height:1.06; max-width:15ch; letter-spacing:-.05em; overflow-wrap:break-word; }
.page-lead { font-size:17px; line-height:1.8; color:var(--ink-soft); max-width:430px; padding-bottom:5px; }
.page-photo { border-radius:20px; height:560px; background:var(--charcoal); overflow:hidden; }
.page-photo img { width:100%; height:100%; object-fit:cover; }
.page-photo--service { height:500px; }
.page-photo--service img { object-position:center 45%; }
.editorial-section { display:grid; grid-template-columns:1fr 2fr; gap:80px; padding-top:95px; padding-bottom:90px; align-items:start; }
.editorial-section > .kicker { margin-top:9px; }
.page-prose { max-width:730px; font-size:16px; line-height:1.9; color:var(--ink-soft); }
.page-prose h2 { font-size:32px; line-height:1.25; color:var(--ink); margin:42px 0 22px; }
.page-prose h2:first-child { margin-top:0; }
.page-prose p { margin-bottom:22px; }
.page-prose ul { list-style:none; margin:25px 0 35px; padding:0; border-top:1px solid var(--rule); }
.page-prose li { padding:14px 0 14px 23px; border-bottom:1px solid var(--rule); position:relative; }
.page-prose li::before { content:'↗'; color:var(--accent); position:absolute; left:0; }
.page-prose a:not(.line-link) { text-decoration:underline; text-underline-offset:4px; }
.page-prose .line-link { margin-top:20px; color:var(--ink); }
.page-sidebar { display:flex; flex-direction:column; align-items:flex-start; gap:35px; position:sticky; top:120px; }
.page-sidebar .line-link { font-size:16px; }
.quiet-link { color:var(--ink-soft); font-size:12px; text-decoration:underline; text-underline-offset:5px; }
.page-timeline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--rule); gap:50px; padding-top:30px; padding-bottom:110px; }
.page-timeline span { display:block; font-size:54px; line-height:1.2; margin-bottom:12px; }
.page-timeline h2 { font-size:14px; color:var(--ink-soft); }
.service-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:75px 38px; padding-bottom:120px; }
.directory-image { border-radius:18px; display:block; position:relative; aspect-ratio:1.45; overflow:hidden; background:var(--charcoal); }
.directory-image img { width:100%; height:100%; object-fit:cover; transition:transform .6s; }
.directory-image:hover img { transform:scale(1.035); }
.directory-image > span { position:absolute; right:22px; bottom:22px; width:48px; height:48px; display:grid; place-items:center; color:#080808; background:var(--ink); border-radius:50%; font-size:24px; }
.directory-meta { position:relative; padding:30px 0 0 48px; }
.directory-meta > .kicker { position:absolute; left:0; top:40px; font-size:10px; }
.directory-meta > .kicker::before { display:none; }
.directory-meta h2 { font-size:35px; line-height:1.2; margin-bottom:18px; }
.directory-meta > p { max-width:400px; font-size:14px; line-height:1.8; color:var(--ink-soft); margin-bottom:25px; }
.page-projects { padding-bottom:100px; }
.projects-grid--index .project-card,.projects-grid--related .project-card { grid-column:auto; padding-top:0; }
.projects-grid--index .project-media,.projects-grid--related .project-media { aspect-ratio:16 / 9; }
.subsection-head { display:flex; align-items:center; justify-content:space-between; gap:25px; margin-bottom:45px; }
.subsection-head h2 { font-size:38px; }
.portfolio-directory { padding-bottom:120px; }
.portfolio-directory .project-filters { margin-bottom:0; }
.portfolio-directory .filter-status { margin-bottom:35px; }
.subpage--project .page-heading { grid-template-columns:1.7fr 1fr; gap:65px; }
.subpage--project .page-heading h1 { font-size:clamp(40px,4.5vw,68px); max-width:23ch; }
.project-screen { padding-bottom:65px; }
.video-frame { border-radius:18px; overflow:hidden; aspect-ratio:16 / 9; background:#161616; }
.video-frame iframe { display:block; width:100%; height:100%; border:0; }
.video-poster { position:relative; display:block; border:0; padding:0; width:100%; height:100%; background:#151515; color:#fff; overflow:hidden; text-align:left; }
.video-poster::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#0009,transparent 70%); }
.video-poster > img { width:100%; height:100%; object-fit:cover; transition:transform .6s,filter .4s; filter:brightness(.85); }
.video-poster:hover > img { transform:scale(1.025); filter:brightness(1); }
.video-poster-label { display:flex; position:absolute; z-index:1; left:5%; bottom:8%; align-items:center; gap:22px; font-size:18px; }
.video-play { display:grid; place-items:center; width:75px; height:75px; border-radius:50%; border:1px solid #ffffff80; background:#ffffff18; backdrop-filter:blur(8px); font-size:20px; padding-left:4px; }
.video-caption { display:flex; justify-content:space-between; gap:25px; padding-top:20px; font-size:11px; line-height:1.7; color:var(--ink-soft); }
.video-caption a { flex-shrink:0; text-decoration:underline; text-underline-offset:4px; }
.video-caption a span { margin-left:15px; }
.project-navigation { display:grid; grid-template-columns:1fr 1fr; gap:80px; border-top:1px solid var(--rule); padding-top:45px; padding-bottom:100px; }
.project-navigation > .line-link { justify-self:start; align-self:center; }
.next-project { display:grid; grid-template-columns:1fr 30px; gap:16px 25px; }
.next-project > .kicker { grid-column:1 / -1; }
.next-project strong { font-weight:400; font-size:24px; line-height:1.4; }
.next-project b { font-size:28px; font-weight:400; align-self:center; }
.contact-directory { display:grid; grid-template-columns:1.25fr 1fr; gap:100px; padding-top:15px; padding-bottom:120px; }
.contact-channel { display:grid; grid-template-columns:1fr 30px; gap:25px 20px; border-top:1px solid var(--rule); padding:30px 0 35px; }
.contact-channel .kicker { grid-column:1 / -1; }
.contact-channel strong { font-size:clamp(24px,2.8vw,40px); font-weight:400; line-height:1.3; }
.contact-channel b { font-size:30px; font-weight:400; align-self:center; }
.contact-channel:hover strong { color:var(--accent); }

.project-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding-top:10px; padding-bottom:90px; border-top:1px solid var(--rule); }
.project-facts > div { display:flex; flex-direction:column; gap:13px; min-width:0; }
.project-facts .kicker { color:var(--ink-soft); }
.project-facts strong { font-size:clamp(18px,2vw,26px); font-weight:400; line-height:1.25; letter-spacing:-.025em; }
.brief-form { margin-top:72px; padding-top:38px; border-top:1px solid var(--rule); }
.brief-form h2 { max-width:480px; margin:16px 0 34px; font-size:clamp(28px,3.7vw,52px); line-height:1.05; letter-spacing:-.05em; }
.brief-form form { display:grid; gap:17px; }
.brief-form label { display:grid; gap:8px; color:var(--ink-soft); font-family:var(--mono); font-size:10px; line-height:1.4; letter-spacing:.02em; }
.brief-form input,.brief-form textarea,.brief-form select { width:100%; border:1px solid var(--rule); border-radius:0; padding:13px 14px; color:var(--ink); background:#111; font-family:var(--font); font-size:14px; outline:none; }
.brief-form input:focus,.brief-form textarea:focus,.brief-form select:focus { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.brief-form textarea { min-height:132px; resize:vertical; }
.brief-form select { appearance:none; }
.brief-form .wpcf7-not-valid-tip { color:#ff9c83; font-family:var(--font); font-size:11px; }
.brief-form .wpcf7-response-output { margin:10px 0 0; padding:12px 14px; border:1px solid var(--rule); color:var(--ink-soft); font-size:12px; }
.brief-form input[type=submit] { width:auto; justify-self:start; min-height:50px; padding:12px 24px; border:0; border-radius:99px; color:#080808; background:var(--ink); cursor:pointer; transition:background .25s ease,color .25s ease,transform .5s var(--ease-editorial); }
.brief-form input[type=submit]:hover,.brief-form input[type=submit]:focus-visible { color:#080808; background:var(--accent); }
.brief-form .aiolos-form-row { display:grid; grid-template-columns:1fr 1fr; gap:17px; }
.contact-socials { display:flex; flex-wrap:wrap; gap:35px; border-top:1px solid var(--rule); padding-top:30px; font-size:14px; }
.contact-socials a span { margin-left:20px; }
.contact-notes { padding-top:28px; }
.contact-notes h2 { font-size:28px; }
.page-contact-band { border-top:1px solid var(--rule); background:var(--charcoal); color:var(--ink); padding:85px 0; }
.page-contact-band > .shell { display:grid; grid-template-columns:1fr 2fr auto; align-items:center; gap:40px; }
.page-contact-band h2 { font-size:clamp(38px,4vw,60px); line-height:1.1; }
.page-contact-band h2 em { color:#96968f; }
.privacy-content { padding-top:10px; padding-bottom:110px; }
@media (max-width:1100px) {
  .page-heading,.subpage--project .page-heading { gap:45px; }
  .page-lead { font-size:15px; }
  .editorial-section { gap:45px; }
  .contact-directory { gap:50px; }
  .page-photo { height:440px; }
  .page-contact-band > .shell { grid-template-columns:1fr 2fr; }
  .page-contact-band .button { grid-column:2; justify-self:start; }
}
@media (max-width:720px) {
  .page-hero { padding-top:120px; padding-bottom:40px; }
  .breadcrumbs ol { margin-bottom:40px; font-size:9px; gap:5px 10px; }
  .breadcrumbs li + li::before { margin-right:10px; }
  .page-heading,.subpage--project .page-heading { grid-template-columns:1fr; gap:28px; }
  .page-heading h1,.subpage--project .page-heading h1 { margin-top:20px; font-size:clamp(36px,10vw,65px); line-height:1.08; }
  .page-lead { font-size:14px; padding:0; max-width:100%; }
  .page-photo,.page-photo--service { height:330px; }
  .editorial-section { grid-template-columns:1fr; gap:32px; padding-top:50px; padding-bottom:50px; }
  .page-prose { font-size:14px; }
  .page-prose h2 { font-size:27px; margin-top:35px; }
  .page-sidebar { position:static; flex-direction:row; flex-wrap:wrap; align-items:center; gap:25px; }
  .page-sidebar .kicker { flex-basis:100%; }
  .page-timeline { grid-template-columns:1fr; gap:0; padding-top:0; padding-bottom:60px; }
  .page-timeline > div { display:grid; grid-template-columns:80px 1fr; align-items:center; gap:30px; border-bottom:1px solid var(--rule); padding:25px 0; }
  .page-timeline span { font-size:32px; margin:0; }
  .page-timeline h2 { font-size:12px; }
  .service-directory { grid-template-columns:1fr; gap:50px; padding-bottom:65px; }
  .directory-meta { padding:25px 0 0 32px; }
  .directory-meta > .kicker { top:32px; }
  .directory-meta h2 { font-size:28px; }
  .directory-meta > p { font-size:13px; }
  .subsection-head { align-items:flex-start; flex-direction:column; margin-bottom:30px; }
  .subsection-head h2 { font-size:30px; }
  .projects-grid--index .project-card,.projects-grid--related .project-card { grid-column:1 / -1; }
  .projects-grid--index .project-media,.projects-grid--related .project-media { aspect-ratio:16 / 9; }
  .portfolio-directory,.page-projects { padding-bottom:65px; }
  .project-screen { padding-bottom:40px; }
  .video-poster-label { gap:12px; font-size:13px; }
  .video-play { width:48px; height:48px; font-size:15px; }
  .video-caption { flex-direction:column; gap:10px; padding-top:15px; font-size:10px; }
  .project-navigation { grid-template-columns:1fr; gap:35px; padding-top:30px; padding-bottom:60px; }
  .next-project strong { font-size:20px; }
  .contact-directory { grid-template-columns:1fr; gap:45px; padding-top:0; padding-bottom:65px; }
  .project-facts { grid-template-columns:1fr 1fr; gap:28px 18px; padding-bottom:65px; }
  .brief-form { margin-top:55px; }
  .brief-form .aiolos-form-row { grid-template-columns:1fr; }
  .contact-channel { gap:20px; padding:25px 0; }
  .contact-channel strong { font-size:clamp(21px,6.2vw,34px); }
  .project-facts { grid-template-columns:1fr; gap:22px; }
  .contact-socials { font-size:13px; }
  .contact-notes { padding-top:0; }
  .contact-notes h2 { font-size:26px; }
  .page-contact-band { padding:55px 0; }
  .page-contact-band > .shell { grid-template-columns:1fr; gap:28px; }
  .page-contact-band .button { grid-column:auto; }
  .privacy-content { padding-top:0; padding-bottom:60px; }
}
@media (prefers-reduced-motion:reduce) { .directory-image img,.video-poster > img { transition:none; } }
