/* The project catalog owns its layout; home and case stories use their existing styles. */
.route-projects main [hidden] { display:none!important; }
.route-projects main h1,.route-projects main h2 { font-family:var(--serif); font-weight:300; letter-spacing:-.035em; }
.route-projects main a { text-decoration:none; }
.route-projects main :is(a,button):focus-visible { outline:2px solid var(--gold); outline-offset:5px; }
.projects-hero>.wrap { padding-top:26px; padding-bottom:24px; }
.projects-hero .breadcrumbs { padding:0; margin:0; font-size:16px; }
.projects-cover { width:100%; height:clamp(320px,34vw,560px); background:var(--gold-soft); }
.projects-cover img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 0%; }
.projects-hero-panel { position:relative; margin:-64px var(--gutter) 0 0; padding:44px 0 0; background:#fff; }
.projects-hero-panel>.wrap { padding-right:0; }
.projects-hero-panel h1 { font-size:clamp(62px,7vw,104px); line-height:1.04; margin:0 0 26px; }
.projects-hero-panel p { font-size:24px; line-height:1.5; max-width:850px; margin:0; }
.project-catalog { padding-top:82px; padding-bottom:96px; }
.project-catalog-heading { display:flex; align-items:baseline; justify-content:space-between; gap:24px; margin-bottom:32px; }
.project-catalog-heading h2 { font-size:clamp(36px,3.6vw,52px); line-height:1.12; margin:0; }
.project-catalog-heading p { font-size:18px; line-height:1.5; margin:0; }
.project-catalog-filters { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px 30px; align-items:end; padding:28px; background:#f4f0e9; }
.project-catalog-filters label { display:block; font-size:18px; font-weight:500; line-height:1.4; margin-bottom:12px; }
.project-catalog-filters :is(input,select) { display:block; width:100%; max-width:100%; min-width:0; height:58px; border:1px solid #7c766e; border-radius:0; background:#fff; color:var(--ink); padding:12px 16px; font:400 18px/1.4 var(--sans); }
.project-catalog-filters input::placeholder { color:#67625b; opacity:1; }
.project-catalog-filters input:focus-visible { outline:0; border-color:var(--gold); box-shadow:inset 0 0 0 1px var(--gold); }
.project-catalog-filters .site-select { margin-top:0; }
.catalog-reset { grid-column:1 / -1; justify-self:start; background:none; border:0; border-radius:0; padding:6px 0; color:var(--ink); font:600 18px/1.5 var(--sans); cursor:pointer; }
.catalog-status { font-size:18px; line-height:1.4; margin:24px 0 28px; }
.project-catalog-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.catalog-project { min-width:0; background:#f6f3ee; }
.catalog-project-copy { padding:32px; height:100%; display:flex; flex-direction:column; align-items:flex-start; }
.catalog-project-meta { font-size:18px; line-height:1.45; margin:0 0 18px; color:#58524b; }
.catalog-project-meta span { padding:0 4px; }
.catalog-project h3 { margin:0 0 18px; font-family:var(--sans); font-size:32px; font-weight:600; letter-spacing:-.025em; line-height:1.15; }
.catalog-project-summary { font-size:20px; line-height:1.5; margin:0 0 30px; }
.catalog-project .text-link { margin-top:auto; font-size:20px; }
.catalog-project-featured { grid-column:1 / -1; display:grid; grid-template-columns:1.05fr 1fr; background:#20201e; color:white; margin-bottom:12px; }
.catalog-feature-photo { min-width:0; min-height:430px; }
.catalog-feature-photo img { display:block; width:100%; height:100%; max-height:600px; object-fit:cover; }
.catalog-project-featured .catalog-project-copy { padding:44px; justify-content:center; }
.catalog-project-featured .catalog-project-meta { color:#e1cdb2; }
.catalog-project-featured h3 { font-family:var(--serif); font-size:clamp(44px,4vw,60px); font-weight:300; }
.catalog-project-theme { font-size:26px; font-weight:500; line-height:1.25; margin:0 0 22px; }
.catalog-project-featured .catalog-project-summary { font-size:20px; }
.catalog-project-featured .text-link { color:var(--blue); margin-top:6px; }
.catalog-empty { background:#f6f3ee; padding:48px; }
.catalog-empty h3 { font:600 28px/1.25 var(--sans); margin:0 0 16px; }
.catalog-empty p { font-size:20px; line-height:1.5; margin:0; }
@media (hover:hover) {
  .catalog-reset:hover { text-decoration:underline; text-underline-offset:6px; }
}
@media (max-width:1000px) {
  .catalog-project-featured .catalog-project-copy { padding:30px; }
  .catalog-project-copy { padding:28px; }
  .catalog-project h3 { font-size:28px; }
  .catalog-project-featured h3 { font-size:48px; }
}
@media (max-width:700px) {
  .projects-hero>.wrap { padding-top:18px; padding-bottom:18px; }
  .projects-cover { height:300px; }
  .projects-hero-panel { margin-top:-30px; margin-right:20px; padding-top:30px; }
  .projects-hero-panel h1 { font-size:56px; margin-bottom:20px; }
  .projects-hero-panel p { font-size:20px; }
  .project-catalog { padding-top:52px; padding-bottom:60px; }
  .project-catalog-heading { display:block; margin-bottom:24px; }
  .project-catalog-heading h2 { font-size:36px; margin-bottom:16px; }
  .project-catalog-heading p { font-size:16px; }
  .project-catalog-filters { grid-template-columns:minmax(0,1fr); padding:20px; gap:22px; }
  .project-catalog-filters :is(input,select) { font-size:16px; padding:12px; }
  .project-catalog-grid { grid-template-columns:minmax(0,1fr); gap:20px; }
  .catalog-project-featured { display:block; margin-bottom:0; }
  .catalog-feature-photo { min-height:0; height:auto; aspect-ratio:16/10; }
  .catalog-feature-photo img { height:100%; }
  .catalog-project-copy,.catalog-project-featured .catalog-project-copy { padding:26px; }
  .catalog-project-featured .catalog-project-copy { height:auto; }
  .catalog-project-summary { font-size:18px; }
  .catalog-project-theme { font-size:23px; }
  .catalog-project .text-link { font-size:18px; }
  .catalog-empty { padding:28px; }
}
