:root { --page-rail: max(50px,calc((100vw - 1820px)/2)); --page-title-inset:max(0px,calc(100px - var(--page-rail))); }
.inner-page { background: var(--ink); color: #f5f5f5; }
.page-shell { width: min(calc(100% - 100px),1820px); margin-inline: auto; }
.gold-rule { height: 1.5px; background: var(--gold-dark); }
.project-link { color: inherit; text-decoration: none; }
.page-button { display: inline-flex; align-items: center; justify-content: center; min-width: 252px; height: 56px; padding: 0 26px; border: 1.5px solid var(--gold); background: var(--gold); color: #202020; font-size: 23px; font-weight: 700; text-decoration: none; transition: background-color .24s ease,color .24s ease; }
.page-button:hover,.page-button:focus-visible { background: var(--ink); color: var(--gold); }

/* Projects */
.projects-catalogue { min-height: 0; padding: 190px 0 76px; }
.projects-intro > .page-title-block { margin-left:var(--page-title-inset); }
.detail-summary .page-title,.detail-summary .page-title-rule { margin-inline:var(--page-title-inset); }
.projects-intro-copy { width: 780px; margin: 32px 0 95px auto; font: 300 25px/1.5 Jost,sans-serif; text-align: justify; }
.project-filters { display: grid; grid-template-columns: 1.15fr 1.15fr 1.15fr 1.15fr 1.15fr 1.3fr; height: 82px; margin-bottom: 92px; background: linear-gradient(90deg,#f0cc75,#c89529); }
.project-filters button { position: relative; border: 0; background: transparent; color: #171717; font: 400 22px/1 Jost,sans-serif; text-transform: uppercase; cursor: pointer; }
.project-filters button + button::before { content:""; position:absolute; left:0; top:13px; bottom:13px; width:1px; background:#7c6028; }
.project-filters button[aria-pressed="true"] { background: rgba(255,255,255,.32); }
.catalogue-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 98px 24px; }
.catalogue-card { min-width: 0; }
.catalogue-card[hidden] { display: none; }
.catalogue-image { height: 562px; --parallax-pad: 44px; background:#171717; }
.catalogue-image img { transition: filter .35s ease,transform .12s linear; }
.catalogue-card:hover .catalogue-image img,.catalogue-card:focus-visible .catalogue-image img { filter: brightness(.72); }
.catalogue-meta { padding-top: 25px; text-transform: uppercase; }
.catalogue-meta h2 { margin: 0 0 20px; font: 400 40px/1 Jost,sans-serif; }
.catalogue-meta p { display: flex; gap: 74px; margin: 0; font: 400 17px/1 Jost,sans-serif; }
.catalogue-meta span { color: var(--gold); }
.catalogue-meta b { color:#b9b9b9; font-weight:300; }
.catalogue-actions { display:flex; justify-content:flex-end; padding-top:84px; }

/* Project detail */
.detail-hero { height: 850px; --parallax-pad: 88px; }
.detail-hero img { object-position:center 46%; }
.detail-summary { min-height: 570px; height: auto; padding: 88px 0; }
.detail-summary h1 { margin:0; font:300 65px/1 Jost,sans-serif; text-transform:uppercase; }
.detail-summary .gold-rule { margin-top:18px; }
.detail-summary-grid { display:grid; grid-template-columns:480px 1fr; gap:570px; margin-top:20px; }
.detail-facts { margin:0; }
.detail-facts div { display:flex; justify-content:space-between; align-items:center; height:52px; border-bottom:1.5px solid var(--gold-dark); }
.detail-facts dt,.detail-facts dd { margin:0; font:300 22px/1 Jost,sans-serif; }
.detail-description { max-width:780px; margin:0; font:300 24px/1.5 Jost,sans-serif; text-align:justify; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; gap:24px; }
.detail-gallery .parallax-frame { --parallax-pad:48px; }
.detail-gallery-a { height:785px; }
.detail-gallery-b { height:785px; }
.detail-gallery-c { grid-column:1/-1; height:795px; }
.detail-gallery-trio { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.detail-gallery-trio .parallax-frame { height:745px; }
.detail-gallery-pair { grid-column:1/-1; display:grid; grid-template-columns:2fr 1fr; gap:24px; }
.detail-gallery-pair .parallax-frame { height:785px; }
.detail-gallery-d { grid-column:1/-1; height:795px; }
.more-projects { min-height:934px; padding:96px 0 84px; }
.more-projects .gold-rule { margin-bottom:34px; }
.more-projects h2 { margin:0 0 34px; font:300 48px/1 Jost,sans-serif; text-transform:uppercase; }
.more-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:18px; }
.more-card { color:inherit; text-decoration:none; }
.more-card .parallax-frame { height:460px; --parallax-pad:32px; }
.more-card h3 { margin:16px 0 0; font:400 21px/1.2 Jost,sans-serif; text-transform:uppercase; }
.more-actions { display:flex; justify-content:space-between; margin-top:90px; }

/* Contact */
.contact-main { min-height:1465px; padding:190px 0 72px; }
.contact-main > .page-shell { width:min(calc(100% - 200px),1720px); }
.contact-layout { display:grid; grid-template-columns:1.35fr .8fr; gap:154px; margin-top:68px; }
.contact-copy h2 { margin:0; font:300 62px/1.1 Jost,sans-serif; }
.contact-copy > p { max-width:760px; margin:62px 0 0; font:300 25px/1.48 Jost,sans-serif; text-align:justify; }
.contact-details { margin-top:78px; }
.contact-details h3 { margin:0 0 22px; font-size:20px; text-transform:uppercase; }
.contact-details a { display:block; width:max-content; margin:0 0 15px; color:#eee; font:300 20px/1.2 Jost,sans-serif; text-decoration:none; }
.contact-form { position:relative; inset:auto; grid-column:auto; grid-row:auto; width:auto; margin-top:0; padding-left:0; border-left:0; color:#fff; }
.contact-form p { margin:0 0 40px; font-size:18px; }
.contact-form .form-grid { gap:26px 26px; }
.contact-form label { font-size:18px; }
.contact-form label,.contact-form input,.contact-form select,.contact-form textarea { font-weight:300; }
.contact-form input,.contact-form select { height:52px; }
.contact-form textarea { height:174px; }
.contact-form button { position:static; display:block; margin:44px auto 0; }
.contact-form .review-note { margin:24px 0 0; font-size:18px; text-align:center; }
.contact-form .review-note a { color:#fff; }
.faq { margin-top:150px; border-top:1.5px solid #fff; }
.faq > p { margin:18px 0 34px; color:#ccc; font:300 18px/1 Jost,sans-serif; }
.faq details { border-bottom:1.5px solid #fff; padding:0; }
.faq summary { padding:18px 0; cursor:pointer; font:300 20px/1.2 Jost,sans-serif; list-style:none; }
.faq summary::-webkit-details-marker { display:none; }
.faq details p { max-width:900px; margin:0 0 28px; font:300 18px/1.5 Jost,sans-serif; text-align:justify; }
.contact-footer-variant { position:relative; height:763px; padding:75px var(--page-rail) 55px; background:linear-gradient(180deg,#deb764 0%,#7c6737 100%); color:#fff; }
.contact-footer-variant h2 { margin:0; font:300 64px/1.1 Jost,sans-serif; }
.contact-footer-rule { margin-top:80px; height:1.5px; background:#fff; }
.contact-footer-content { display:flex; gap:120px; margin-top:36px; }
.contact-footer-variant .footer-brand { position:static; }
.contact-footer-variant .footer-columns { position:static; display:grid; grid-template-columns:210px 330px; gap:100px; margin:48px 0 0; }
.contact-footer-variant .bottom-bar { left:var(--page-rail); right:var(--page-rail); width:auto; }

@media (min-width:1921px) {
  .page-shell { width:1820px; }
}

@media (max-width:1919px) {
  :root { --page-rail:clamp(40px,2.6vw,50px); }
  .page-shell { width:calc(100% - 2*var(--page-rail)); }
  .projects-catalogue { min-height:0; padding-top:clamp(130px,9.9vw,188px); }
  .projects-intro-copy { width:min(44%,780px); margin-bottom:clamp(70px,5vw,94px); font-size:clamp(20px,1.3vw,25px); }
  .project-filters { height:clamp(62px,4.27vw,81px); margin-bottom:clamp(58px,4.8vw,90px); }
  .project-filters button { font-size:clamp(15px,1.15vw,21px); }
  .catalogue-grid { gap:clamp(62px,5.1vw,96px) 20px; }
  .catalogue-image { height:29.27vw; }
  .catalogue-meta h2 { font-size:clamp(28px,2.08vw,39px); }
  .catalogue-meta p { font-size:clamp(14px,.88vw,16.5px); }
  .detail-hero { height:44.27vw; }
  .detail-summary { height:auto; min-height:510px; padding:4.58vw 0; }
  .detail-summary h1 { font-size:clamp(44px,3.39vw,64px); }
  .detail-summary-grid { grid-template-columns:25% 1fr; gap:29.7%; }
  .detail-description { font-size:clamp(19px,1.25vw,23.5px); }
  .detail-gallery-a,.detail-gallery-b { height:40.9vw; }
  .detail-gallery-c { height:41.4vw; }
  .detail-gallery-trio .parallax-frame { height:38.8vw; }
  .detail-gallery-pair .parallax-frame { height:40.9vw; }
  .detail-gallery-d { height:41.4vw; }
  .more-card .parallax-frame { height:24vw; }
  .contact-main { min-height:0; padding-top:clamp(130px,9.9vw,188px); }
  .contact-layout { gap:clamp(78px,8vw,150px); }
}

@media (max-width:1199px) {
  .project-filters { display:flex; overflow-x:auto; overflow-y:hidden; width:100%; max-width:100%; }
  .project-filters { scrollbar-width:none; }
  .project-filters::-webkit-scrollbar { display:none; }
  .project-filters button { flex:0 0 175px; }
  .catalogue-image { height:31vw; }
  .catalogue-meta p { gap:32px; }
  .detail-summary { height:auto; padding-bottom:85px; }
  .detail-summary-grid { grid-template-columns:38% 1fr; gap:9%; }
  .detail-gallery { gap:16px; }
  .more-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .more-card:nth-child(n+4) { display:none; }
  .more-card .parallax-frame { height:32vw; }
  .contact-layout { grid-template-columns:1fr 1fr; gap:62px; }
  .contact-copy h2 { font-size:50px; }
  .contact-copy > p { font-size:20px; }
  .faq { margin-top:90px; }
}

@media (max-width:900px) {
  :root { --page-rail:24px; --page-title-inset:0px; }
  .page-shell { width:calc(100% - 48px); }
  .projects-catalogue { padding-top:90px; }
  .projects-intro-copy { width:100%; margin:30px 0 68px; }
  .project-filters { margin-inline:-24px; padding-inline:24px; }
  .catalogue-grid { grid-template-columns:1fr; gap:62px; }
  .catalogue-image { height:62vw; }
  .catalogue-actions { padding-top:62px; }
  .detail-hero { height:68vw; }
  .detail-summary { padding-top:60px; }
  .detail-summary-grid { grid-template-columns:1fr; gap:54px; }
  .detail-facts { max-width:520px; }
  .detail-gallery { grid-template-columns:1fr; }
  .detail-gallery-a,.detail-gallery-b,.detail-gallery-c,.detail-gallery-d { grid-column:auto; height:66vw; }
  .detail-gallery-trio { grid-column:auto; grid-template-columns:1fr; gap:16px; }
  .detail-gallery-trio .parallax-frame { height:66vw; }
  .detail-gallery-pair { grid-column:auto; grid-template-columns:1fr; gap:16px; }
  .detail-gallery-pair .parallax-frame { height:66vw; }
  .more-projects { min-height:0; padding-top:72px; }
  .more-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .more-card:nth-child(3) { display:none; }
  .more-card .parallax-frame { height:47vw; }
  .more-actions { margin-top:60px; }
  .contact-main { padding-top:90px; }
  .contact-main > .page-shell { width:calc(100% - 48px); }
  .contact-layout { grid-template-columns:1fr; gap:80px; }
  .faq { margin-top:80px; }
  .contact-footer-variant { height:auto; min-height:920px; padding:68px 24px 110px; }
  .contact-footer-variant h2 { font-size:clamp(44px,8vw,58px); }
  .contact-footer-content { display:block; }
  .contact-footer-variant .footer-columns { gap:50px; }
  .contact-footer-variant .bottom-bar { left:24px; right:24px; }
}

@media (max-width:600px) {
  :root { --page-rail:18px; }
  .page-shell { width:calc(100% - 36px); }
  .projects-catalogue { padding-top:90px; }
  .projects-intro-copy { font-size:18px; text-align:left; }
  .project-filters { width:calc(100% + 36px); max-width:calc(100% + 36px); margin-inline:-18px; padding-inline:18px; box-sizing:border-box; }
  .project-filters button { flex-basis:155px; }
  .catalogue-image { height:70vw; }
  .catalogue-meta h2 { font-size:27px; }
  .catalogue-meta p { flex-wrap:wrap; gap:10px 28px; }
  .page-button { min-width:190px; font-size:19px; }
  .detail-hero { height:76vw; }
  .detail-summary h1 { font-size:38px; }
  .detail-facts dt,.detail-facts dd { font-size:17px; }
  .detail-description { font-size:18px; text-align:left; }
  .detail-gallery-a,.detail-gallery-b,.detail-gallery-c,.detail-gallery-d,.detail-gallery-trio .parallax-frame,.detail-gallery-pair .parallax-frame { height:78vw; }
  .more-projects h2 { font-size:36px; }
  .more-grid { grid-template-columns:1fr; }
  .more-card:nth-child(2) { display:none; }
  .more-card .parallax-frame { height:78vw; }
  .more-actions { align-items:flex-end; flex-direction:column; gap:24px; }
  .contact-copy h2 { font-size:42px; }
  .contact-main > .page-shell { width:calc(100% - 36px); }
  .contact-copy > p { margin-top:40px; font-size:18px; text-align:left; }
  .contact-details { margin-top:55px; }
  .contact-form .form-grid { grid-template-columns:1fr; }
  .contact-form .review-note { text-align:left; }
  .contact-footer-variant { padding-inline:18px; }
  .contact-footer-variant h2 { font-size:42px; }
  .contact-footer-rule { margin-top:52px; }
  .contact-footer-variant .footer-columns { grid-template-columns:1fr 1fr; gap:24px; }
  .contact-footer-variant .bottom-bar { left:18px; right:18px; }
}

@media (prefers-reduced-motion:reduce) {
  .catalogue-image img { transition:none; }
}
