/* Project stories share the site's navigation, controls, forms and footer. */
.project-case, .project-case * { box-sizing: border-box; }
.project-case { --project-nav-overlap: 48px; margin-top: calc(-1 * var(--project-nav-overlap)); color: #18212b; background: #fff; font-family: 'Golos Text', Arial, sans-serif; }
.project-case__initially-hidden { display: none; }
.project-case__container { width: 90%; max-width: 1230px; margin: 0 auto; }
.project-case__hero { position: relative; isolation: isolate; min-height: calc(740px + var(--project-nav-overlap)); overflow: hidden; background: #18212b; color: #fff; }
.project-case__cover { position: absolute; z-index: -2; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.project-case__hero::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #0b131be8 0%, #0b131bb8 35%, #0b131b26 75%), linear-gradient(0deg, #0b131b66, transparent 55%); }
.project-case--1 .project-case__cover { object-position: center 47%; }
.project-case--5 .project-case__cover { object-position: center 35%; }
.project-case__hero-inner { position: relative; display: flex; flex-direction: column; min-height: inherit; padding: calc(28px + var(--project-nav-overlap)) 0 96px; }
.project-case .gallery-breadcrumbs { flex-wrap: wrap; gap: 10px; padding-bottom: 22px; border-bottom: 1px solid #ffffff30; color: #fff; font-size: 13px; }
.project-case .gallery-breadcrumbs a { color: #e5e8ec; }
.project-case .gallery-breadcrumbs a:hover { color: #ffcf00; }
.project-case .gallery-breadcrumbs > [aria-hidden] { color: #ffcf00; }
.project-case__hero-copy { max-width: 720px; margin: auto 0; padding: 70px 0 40px; }
.project-case__hero .masters-eyebrow { display: block; margin-bottom: 24px; color: #ffdb3b; }
.project-case h1 { margin: 0; color: #fff; font: 700 clamp(48px, 5.2vw, 76px)/1.06 'Geologica', Arial, sans-serif; letter-spacing: -2.3px; text-align: left; }
.project-case__hero-copy > p { max-width: 500px; margin: 26px 0 34px; color: #e1e6eb; font-size: 19px; line-height: 1.6; }
.project-case__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 26px; }
.project-case__anchor { display: inline-flex; align-items: center; gap: 16px; padding: 12px 0; color: #fff; font-size: 14px; }
.project-case__anchor span { font-size: 22px; }
.project-case__detail { position: absolute; right: 0; bottom: 100px; width: 180px; padding: 6px; border: 1px solid #ffffff8c; border-radius: 4px; background: #ffffff12; color: #fff; transform: rotate(4deg); transition: transform .3s; }
.project-case__detail img { display: block; width: 100%; height: 180px; object-fit: cover; border-radius: 2px; }
.project-case__detail > span { display: flex; align-items: center; justify-content: space-between; padding: 11px 5px 6px; font-size: 11px; }
.project-case__detail:hover { color: #ffdb3b; transform: rotate(0); }
.project-case__number { position: absolute; top: 106px; right: 0; color: #ffffff19; font: 700 110px/1 'Geologica', Arial, sans-serif; letter-spacing: -6px; -webkit-text-stroke: 1px #ffffff50; pointer-events: none; }
.project-case__summary { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: center; gap: 32px; margin-top: -42px; padding: 30px 32px; border: 1px solid #e4e7ea; border-top: 3px solid #ffce00; border-radius: 5px; background: #fff; box-shadow: 0 12px 40px #18212b12; }
.project-case__summary-item { display: flex; align-items: flex-start; gap: 16px; min-width: 0; }
.project-case__summary-icon { display: grid; place-items: center; width: 54px; height: 54px; flex: 0 0 auto; border-radius: 4px; background: #fff5c2; }
.project-case__summary-icon svg { display: block; width: 36px; height: 36px; }
.project-case__summary-label { display: block; margin-bottom: 8px; color: #7a8289; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.project-case__summary strong { display: block; color: #18212b; font: 600 17px/1.4 'Geologica', Arial, sans-serif; }
.project-case__summary p { margin: 8px 0 0; color: #626c77; font-size: 12px; line-height: 1.55; }
.project-case__summary > a { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 76px; padding-left: 28px; border-left: 1px solid #e4e7ea; color: #18212b; }
.project-case__summary > a strong { font-size: 14px; }
.project-case__summary > a small { display: block; margin-top: 7px; color: #727b86; font-size: 10px; line-height: 1.4; }
.project-case__summary > a > svg { width: 40px; height: 40px; flex: 0 0 auto; padding: 10px; border-radius: 50%; background: #ffce00; fill: none; stroke: currentColor; stroke-width: 1.7; transition: transform .2s; }
.project-case__summary > a:hover > svg { transform: translateX(3px); }
.project-case__related-grid svg { width: 22px; height: 22px; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.7; }
.project-case .section__title { margin: 0; text-align: left; font-family: 'Geologica', Arial, sans-serif; line-height: 1.17; }
.project-case .section__title::after { position: static; display: block; width: 76px; height: 4px; margin-top: 20px; background: #ffce00; transform: none; }
.project-case .masters-eyebrow { margin-bottom: 18px; }
.project-case__photos, .project-case__services, .project-case__related { padding: 0 0 80px; scroll-margin-top: 76px; }
.project-case__photos { padding-top: 64px; }
.project-case__section-head { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 32px; }
.project-case__gallery { position: relative; }
.project-case__photo-grid { min-width: 0; }
.project-case__photo-grid:not(.slick-initialized) { display: flex; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; }
.project-case__photo-grid figure { min-width: 0; margin: 0; }
.project-case__photo-grid:not(.slick-initialized) > figure { flex: 0 0 calc(50% - 10px); scroll-snap-align: start; }
.project-case__photo-grid .slick-list { margin: 0 -10px; }
.project-case__photo-grid .slick-slide { padding: 0 10px; }
.project-case__photo { position: relative; display: block; height: clamp(280px, 38vw, 480px); overflow: hidden; border-radius: 4px; background: #eef0f2; }
.project-case__photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.65,.3,1); }
.project-case__photo .project-zoom__icon { right: 16px; top: 16px; }
.project-case__photo:hover img { transform: scale(1.025); }
.project-case__gallery-controls { position: absolute; z-index: 2; top: 50%; left: 16px; right: 16px; display: flex; justify-content: space-between; align-items: center; gap: 16px; transform: translateY(-50%); pointer-events: none; }
.project-case__gallery-controls button { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 auto; padding: 0; border: 1px solid #ffffff40; border-radius: 50%; background: #18212be6; color: #fff; pointer-events: auto; transition: background .2s, opacity .2s; }
.project-case__gallery-controls button:hover { background: #394550; }
.project-case__gallery-controls .slick-disabled { opacity: .4; cursor: default; }
.project-case__gallery-controls svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.project-case__previous svg { transform: rotate(180deg); }
.project-case__dots { margin-top: 18px; }
.project-case__dots .slick-dots { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.project-case__dots li { margin: 0; padding: 0; }
.project-case__dots button { position: relative; display: block; width: 28px; height: 32px; padding: 0; border: 0; background: transparent; color: transparent; font-size: 0; }
.project-case__dots button::before { content: ''; position: absolute; left: 50%; top: 50%; width: 7px; height: 7px; border-radius: 8px; background: #cbd0d6; transform: translate(-50%, -50%); transition: width .2s, background .2s; }
.project-case__dots .slick-active button::before { width: 22px; background: #ffce00; }
.project-case__dots button:focus-visible, .project-case__gallery-controls button:focus-visible { outline: 2px solid #a67e00; outline-offset: 3px; }
/* Project details: editorial columns, numbered features and a light estimate panel. */
.project-case__services { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.65fr); align-items: start; gap: 64px; }
.project-case__service-copy { min-width: 0; }
.project-case__services .project-case__section-head { margin-bottom: 26px; }
.project-case__services .section__title, .project-case__estimate .section__title, .project-case__related .section__title { color: #10171e; font-family: 'Geologica', Arial, sans-serif !important; font-weight: 700; letter-spacing: -1px; }
.project-case__services .section__title, .project-case__estimate .section__title { font-size: clamp(38px, 3.8vw, 48px) !important; line-height: 1.08; }
.project-case__services .section__title { max-width: 310px; }
.project-case__services .section__title::after, .project-case__estimate .section__title::after, .project-case__related .section__title::after { width: 66px; height: 4px; margin-top: 22px; }
.project-case__service-copy > p { margin: 0 0 20px; color: #697482; font-size: 15px; line-height: 1.6; }
.project-case__service-copy > .masters-contact__phone { display: inline-block; margin-top: 2px; padding-bottom: 5px; border-bottom: 1px solid #e6c241; font-size: 12px; line-height: 1.5; }
.project-case__features { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 22px; padding-top: 38px; }
.project-case__features article { display: flex; align-items: flex-start; gap: 16px; min-width: 0; min-height: 146px; padding: 22px 0; border-bottom: 1px solid #e0e5eb; }
.project-case__features article:nth-child(-n+2) { padding-top: 0; }
.project-case__features article:nth-child(2n) { border-left: 1px solid #edf0f3; padding-left: 22px; }
.project-case__features article:nth-last-child(-n+2) { border-bottom: 0; }
.project-case__features article > span { flex: 0 0 42px; color: #f5bd00; font: 600 38px/1 'Geologica', Arial, sans-serif; letter-spacing: -1.6px; }
.project-case__features article > div { min-width: 0; padding-top: 5px; }
.project-case h4 { margin: 0 0 12px; color: #18212b; font: 650 20px/1.3 'Geologica', Arial, sans-serif; text-align: left; }
.project-case__features h4 { margin-bottom: 12px; font-size: 18px; font-weight: 650; line-height: 1.3; }
.project-case__features p { margin: 0; color: #697482; font-size: 14px; line-height: 1.55; }
.project-case__estimate { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); grid-template-rows: minmax(0, 1fr); max-height: 510px; margin-bottom: 48px; border: 0; background: #fff; }
.project-case__estimate::before { content: ''; position: absolute; z-index: -1; top: 0; bottom: 0; left: calc(50% - 50vw); width: calc(50vw - 2%); background: linear-gradient(125deg, #f5f7fa, #eef1f5); clip-path: polygon(0 0, 100% 0, calc(100% - min(9.072vw, 123.984px)) 100%, 0 100%); }
.project-case__estimate-copy { align-self: center; min-width: 0; min-height: 0; padding: 28px 48px 28px 32px; }
.project-case__price { display: block; margin: 30px 0 20px; color: #10171e; font: 700 clamp(36px, 4.1vw, 52px)/1.12 'Geologica', Arial, sans-serif; letter-spacing: -1.6px; }
.project-case__estimate p { max-width: 440px; margin: 0 0 18px; color: #697482; font-size: 15px; line-height: 1.55; }
.project-case__estimate-copy .masters-intro__button { margin-top: 6px; }
.project-case__estimate:has(.project-case__estimate-photo)::before { width: calc(50vw + 10%); clip-path: polygon(0 0, 100% 0, calc(100% - min(11.34vw, 154.98px)) 100%, 0 100%); }
.project-case__estimate:has(.project-case__estimate-photo) .project-case__estimate-copy { padding-top: 24px; padding-bottom: 24px; }
.project-case__estimate:has(.project-case__estimate-photo) .project-case__price { font-size: clamp(34px, 3.3vw, 42px); }
.project-case__estimate:has(.project-case__estimate-photo) p { font-size: 14px; }
.project-case__estimate-photo { position: relative; min-width: 0; min-height: 0; clip-path: polygon(10% 0, 100% 0, 100% 100%, 0 100%); }
.project-case__estimate-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.project-case__price-table { align-self: center; min-width: 0; padding: 34px 32px 34px 10px; background: transparent; }
.project-case__price-table table { width: 100%; border-collapse: collapse; }
.project-case__price-table caption { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.project-case__price-table th, .project-case__price-table td { padding: 20px 0; border-bottom: 1px solid #e9edf2; color: #495360; font-size: 14px; line-height: 1.5; text-align: left; }
.project-case__price-table thead th { padding-top: 0; padding-bottom: 12px; border: 0; color: #8a94a0; font-size: 12px; font-weight: 400; }
.project-case__price-table thead th:last-child { text-align: right; }
.project-case__price-table tbody th { padding-right: 18px; font-weight: 400; }
.project-case__price-table td { color: #10171e; white-space: nowrap; font-weight: 650; text-align: right; }
.project-case__price-table tr:last-child th, .project-case__price-table tr:last-child td { border-bottom: 0; }
.project-case__related .section__title { font-size: 42px !important; }
.project-case__related .masters-contact__phone { font-size: 13px; }
.project-case__related-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.project-case__related-grid > a { display: block; min-width: 0; color: #18212b; }
.project-case__related-grid img { display: block; width: 100%; height: clamp(260px, 25vw, 320px); object-fit: cover; border-radius: 4px; }
.project-case__related-grid a > span { display: flex; justify-content: space-between; align-items: center; gap: 18px; padding-top: 16px; font: 650 21px/1.3 'Geologica', Arial, sans-serif; }
.project-case__related-grid a:hover { color: #a67e00; }
.project-case a:focus-visible, .project-case button:focus-visible { outline: 2px solid #e0b400; outline-offset: 5px; }
@media (max-width: 1100px) {
    .project-case__hero { min-height: calc(680px + var(--project-nav-overlap)); }
    .project-case__hero-copy { max-width: 610px; }
    .project-case__hero-copy > p { max-width: 440px; }
    .project-case__detail { width: 150px; bottom: 86px; }
    .project-case__detail img { height: 150px; }
    .project-case__services { grid-template-columns: minmax(0, .85fr) minmax(0, 1.65fr); gap: 36px; }
    .project-case__features { column-gap: 16px; }
    .project-case__features article { gap: 12px; }
    .project-case__features article:nth-child(2n) { padding-left: 16px; }
    .project-case__features article > span { flex-basis: 36px; font-size: 34px; }
    .project-case__features h4 { font-size: 16px; }
    .project-case__estimate-copy { padding: 30px; }
    .project-case__price-table { padding: 28px 24px 28px 0; }
    .project-case__summary { grid-template-columns: 1fr 1fr; gap: 24px; }
    .project-case__summary > a { grid-column: 1 / -1; min-height: 0; padding: 18px 0 0; border-top: 1px solid #e4e7ea; border-left: 0; }
    .project-case__summary > a small { margin-top: 4px; }
}
@media (max-width: 960px) {
    .project-case { --project-nav-overlap: 0px; }
    .project-case__estimate .section__title { font-size: 32px !important; }
    .project-case__estimate .project-case__price { margin: 22px 0 16px; }
    .project-case__estimate:has(.project-case__estimate-photo) .project-case__estimate-copy { padding-top: 20px; padding-bottom: 20px; }
    .project-case__estimate:has(.project-case__estimate-photo) p { font-size: 13px; line-height: 1.5; }
}
@media (max-width: 767.98px) {
    .project-case__container { width: calc(100% - 32px); }
    .project-case__hero { min-height: 640px; }
    .project-case__hero-inner { padding: 22px 0 72px; }
    .project-case__hero::before { background: linear-gradient(90deg, #0b131be0, #0b131b60); }
    .project-case .gallery-breadcrumbs { gap: 8px; padding-bottom: 18px; font-size: 11px; }
    .project-case__hero-copy { padding: 54px 0 34px; }
    .project-case h1 { font-size: 43px; letter-spacing: -1.5px; }
    .project-case__hero-copy > p { margin: 24px 0 28px; font-size: 17px; }
    .project-case__actions { align-items: flex-start; gap: 16px; }
    .project-case__actions .masters-intro__button { width: 100%; padding: 15px 18px; font-size: 13px; }
    .project-case__detail { display: none; }
    .project-case__number { top: auto; bottom: 76px; font-size: 70px; }
    .project-case__summary { grid-template-columns: 1fr; gap: 20px; padding: 24px 20px; }
    .project-case__summary-item + .project-case__summary-item { padding-top: 20px; border-top: 1px solid #e4e7ea; }
    .project-case__summary-icon { width: 44px; height: 44px; }
    .project-case__summary-icon svg { width: 30px; height: 30px; }
    .project-case__summary-label { font-size: 9px; }
    .project-case__summary strong { font-size: 16px; }
    .project-case__summary p { margin-top: 6px; }
    .project-case__summary > a { padding-top: 18px; }
    .project-case .section__title::after { margin-top: 16px; }
    .project-case__photos, .project-case__services, .project-case__related { padding-bottom: 48px; scroll-margin-top: 96px; }
    .project-case__photos { padding-top: 44px; }
    .project-case__section-head { flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 24px; }
    .project-case__photo-grid:not(.slick-initialized) > figure { flex-basis: 100%; }
    .project-case__photo { height: clamp(280px, 95vw, 420px); }
    .project-case__gallery-controls { left: 12px; right: 12px; gap: 12px; }
    .project-case__gallery-controls button { width: 44px; height: 44px; }
    .project-case__photo .project-zoom__icon { top: 10px; right: 10px; width: 32px; height: 32px; }
    .project-case__services { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .project-case__services .project-case__section-head { margin-bottom: 22px; }
    .project-case__services .section__title, .project-case__estimate .section__title { max-width: none; font-size: 30px !important; letter-spacing: -.6px; }
    .project-case__service-copy > p { font-size: 14px; }
    .project-case__features { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 0; }
    .project-case__features article { min-height: 0; gap: 18px; padding: 20px 0; border-bottom: 1px solid #e0e5eb; }
    .project-case__features article:nth-child(2n) { padding-left: 0; border-left: 0; }
    .project-case__features article:nth-child(2) { padding-top: 20px; }
    .project-case__features article:nth-last-child(2) { border-bottom: 1px solid #e0e5eb; }
    .project-case__features article:last-child { border-bottom: 0; }
    .project-case__features article > span { flex-basis: 42px; font-size: 36px; }
    .project-case__features h4 { font-size: 18px; }
    .project-case h4 { font-size: 19px; }
    .project-case__estimate { grid-template-columns: 1fr; grid-template-rows: auto; max-height: none; margin-bottom: 48px; }
    .project-case__estimate::before { display: none; }
    .project-case__estimate-copy { padding: 28px 22px 34px; background: linear-gradient(125deg, #f5f7fa, #eef1f5); }
    .project-case__estimate:has(.project-case__estimate-photo) .project-case__estimate-copy { padding: 28px 22px 34px; }
    .project-case__estimate:has(.project-case__estimate-photo) p { font-size: 14px; line-height: 1.55; }
    .project-case__estimate-photo { clip-path: none; }
    .project-case__price { margin: 26px 0 18px; font-size: 36px; letter-spacing: -1px; }
    .project-case__estimate-photo img { position: static; height: 300px; }
    .project-case__price-table { padding: 24px 22px; }
    .project-case__price-table th, .project-case__price-table td { padding: 16px 0; font-size: 12px; }
    .project-case__price-table tbody th { padding-right: 12px; }
    .project-case__related .section__title { font-size: 30px !important; }
    .project-case__related .project-case__section-head { flex-direction: row; align-items: center; gap: 16px; }
    .project-case__related .masters-contact__phone { flex-shrink: 0; font-size: 11px; }
    .project-case__related-grid { grid-template-columns: 1fr; gap: 28px; }
    .project-case__related-grid img { height: 260px; }
    .project-case__related-grid a > span { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
    .project-case__detail, .project-case__photo img, .project-case__dots button::before { transition: none; }
    .project-case__detail:hover { transform: rotate(4deg); }
    .project-case__photo:hover img { transform: none; }
}
