:root { --ftl-green:#087336; --ftl-red:#dc2726; --ftl-ink:#242424; --ftl-muted:#707070; --ftl-surface:#fff; --ftl-soft:#f6f7f6; --ftl-radius:18px; }
body.single-project .page-header { display:none !important; }
.ftl-project { color:var(--ftl-ink); background:#fff; }
.ftl-project *, .ftl-project *::before, .ftl-project *::after { box-sizing:border-box; }
.ftl-project__container { width:min(1180px, calc(100% - 40px)); margin-inline:auto; }
.ftl-project__hero { overflow:hidden; background:#123d29; }
.ftl-project__hero-media { width:100%; aspect-ratio:3 / 1; overflow:hidden; background:#eef1ef; }
.ftl-project__hero-media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.ftl-project__hero-media.is-generated img { object-fit:fill; }
.ftl-project__hero-media.is-fit { position:relative; isolation:isolate; background:#173e2e; }
.ftl-project__hero-media.is-fit .ftl-project__hero-backdrop { position:absolute; z-index:0; inset:-20px; width:calc(100% + 40px); height:calc(100% + 40px); object-fit:cover; filter:blur(20px); transform:scale(1.04); opacity:.58; }
.ftl-project__hero-media.is-fit .ftl-project__hero-foreground { position:relative; z-index:1; width:100%; height:100%; object-fit:contain; }
.ftl-project__hero-title { background:#123d29; }
.ftl-project__hero-content { padding-block:clamp(34px, 4vw, 52px) clamp(50px, 5vw, 66px); color:#fff; }
.ftl-project__hero h1 { max-width:980px; margin:0; color:inherit; font-size:clamp(36px, 3.4vw, 48px); line-height:1.08; letter-spacing:-.025em; text-wrap:balance; }
.ftl-project__tagline { max-width:800px; margin:16px 0 0; font-size:clamp(17px, 1.55vw, 21px); line-height:1.45; color:rgba(255,255,255,.92); }
.ftl-project__body { padding-block:0 80px; }
.ftl-project-facts { position:relative; z-index:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 58px; margin:-28px 0 0; padding:40px 44px; background:var(--ftl-surface); border:1px solid rgba(24,58,37,.07); border-radius:var(--ftl-radius); box-shadow:0 18px 54px rgba(19,46,29,.11); }
.ftl-project-facts__item h2 { margin:0 0 4px; font-size:18px; line-height:1.35; color:var(--ftl-ink); }
.ftl-project-facts__item p { margin:0; color:var(--ftl-muted); font-size:17px; line-height:1.55; }
.ftl-project-facts__item a { color:inherit; text-decoration-color:rgba(8,115,54,.35); text-underline-offset:3px; }
.ftl-project-facts__item a:hover, .ftl-project-facts__item a:focus-visible { color:var(--ftl-green); }
.ftl-order-1 { grid-column:1; grid-row:1; }.ftl-order-2 { grid-column:2; grid-row:1; }.ftl-order-3 { grid-column:1; grid-row:2; }.ftl-order-4 { grid-column:2; grid-row:2; }.ftl-order-5 { grid-column:1; grid-row:3; }.ftl-order-6 { grid-column:2; grid-row:3; }.ftl-order-7 { grid-column:1; grid-row:4; }.ftl-order-8 { grid-column:2; grid-row:4; }
.ftl-project-section { padding-top:clamp(52px, 6vw, 72px); }
.ftl-project-section > h2, .ftl-project-prose > h2 { margin:0 0 24px; color:var(--ftl-green); font-size:clamp(28px, 3vw, 36px); line-height:1.18; letter-spacing:-.02em; }
.ftl-project-prose { max-width:920px; font-size:clamp(17px, 1.35vw, 18px); line-height:1.72; color:#444; }
.ftl-project-prose > :first-child { margin-top:0; }.ftl-project-prose > :last-child { margin-bottom:0; }
.ftl-project-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; }
.ftl-project-metric { padding:24px; background:var(--ftl-soft); border-radius:14px; }
.ftl-project-metric strong { display:block; color:var(--ftl-red); font-size:clamp(34px,3.5vw,48px); line-height:1; }
.ftl-project-metric h3 { margin:12px 0 4px; font-size:18px; line-height:1.4; }.ftl-project-metric p { margin:0; color:var(--ftl-muted); font-size:16px; line-height:1.6; }
.ftl-project-overview { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr); align-items:start; gap:48px; }
.ftl-project-overview__media { display:grid; gap:16px; }.ftl-project-overview__media img { width:100%; height:auto; border-radius:14px; }
.ftl-project-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.ftl-project-card { overflow:hidden; padding:22px; border:1px solid #e7e9e7; border-radius:14px; background:#fff; }
.ftl-project-card > img, .ftl-project-card > a > img { width:calc(100% + 44px); max-width:none; height:220px; margin:-22px -22px 20px; object-fit:cover; }
.ftl-project-card--component { display:flex; flex-direction:column; padding-top:26px; }
.ftl-project-card--component > img { display:block; width:156px; max-width:100%; height:156px; margin:0 auto 22px; object-fit:contain; }
.ftl-project-card h3 { margin:0 0 10px; font-size:19px; line-height:1.4; }.ftl-project-card p { font-size:16px; line-height:1.65; }.ftl-project-card p:last-child { margin-bottom:0; }
.ftl-project-card h3 a { font:inherit; letter-spacing:inherit; }
.ftl-project-card a { color:inherit; text-decoration:none; }.ftl-project-card a:hover h3, .ftl-project-card a:focus-visible h3 { color:var(--ftl-green); }
.ftl-project-link { display:inline-block; margin-top:12px; color:var(--ftl-green)!important; font-weight:700; }
.ftl-project-card--news { display:flex; flex-direction:column; padding-bottom:24px; }
.ftl-project-card--news > a:first-child { display:block; }
.ftl-project-card--news h3 { margin:0; font-size:18px; line-height:1.42; letter-spacing:-.01em; }
.ftl-project-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.ftl-project-gallery figure { margin:0; }.ftl-project-gallery__trigger { position:relative; display:block; width:100%; height:auto!important; aspect-ratio:4/3; overflow:hidden; padding:0; border:0; border-radius:12px; background:#e9eeeb; line-height:0; cursor:zoom-in; }.ftl-project-gallery__trigger img { display:block; width:100%; height:100%!important; aspect-ratio:auto; object-fit:cover; border-radius:inherit; transition:transform .25s ease,filter .25s ease; }.ftl-project-gallery__zoom { position:absolute; right:12px; bottom:12px; display:grid; place-items:center; width:38px; height:38px; border:1px solid rgba(255,255,255,.5); border-radius:50%; color:#fff; background:rgba(15,30,21,.72); font-size:26px; line-height:1; opacity:0; transform:translateY(5px); transition:opacity .2s ease,transform .2s ease; }.ftl-project-gallery__trigger:hover img { transform:scale(1.025); filter:brightness(.82); }.ftl-project-gallery__trigger:hover .ftl-project-gallery__zoom,.ftl-project-gallery__trigger:focus-visible .ftl-project-gallery__zoom { opacity:1; transform:none; }.ftl-project-gallery__trigger:focus-visible { outline:3px solid var(--ftl-green); outline-offset:3px; }.ftl-project-gallery figcaption { padding:8px 2px 0; color:var(--ftl-muted); font-size:14px; }
body.ftl-project-lightbox-open { overflow:hidden; }
.ftl-project-lightbox[hidden] { display:none!important; }
.ftl-project-lightbox { position:fixed; inset:0; z-index:2147483647; display:grid; place-items:center; padding:28px; color:#fff; }
.ftl-project-lightbox__backdrop { position:absolute; inset:0; background:rgba(6,12,8,.94); backdrop-filter:blur(5px); }
.ftl-project-lightbox__dialog { position:relative; z-index:1; display:grid; grid-template-columns:56px minmax(0,1fr) 56px; align-items:center; width:min(1320px,100%); min-height:0; gap:20px; }
.ftl-project-lightbox__figure { display:grid; grid-template-rows:minmax(0,1fr) auto; justify-items:center; min-width:0; margin:0; }
.ftl-project-lightbox__figure img { display:block; width:auto; max-width:100%; height:auto; max-height:calc(100vh - 150px); border-radius:8px; object-fit:contain; box-shadow:0 24px 70px rgba(0,0,0,.38); }
.ftl-project-lightbox__figure figcaption { max-width:900px; min-height:24px; padding:14px 16px 0; color:rgba(255,255,255,.84); font-size:15px; line-height:1.5; text-align:center; }
.ftl-project-lightbox__close,.ftl-project-lightbox__nav { display:grid; place-items:center; width:48px; height:48px; padding:0; border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#fff; background:rgba(255,255,255,.08); font:inherit; cursor:pointer; transition:background .2s ease,border-color .2s ease,transform .2s ease; }
.ftl-project-lightbox__close:hover,.ftl-project-lightbox__nav:hover { border-color:rgba(255,255,255,.65); background:rgba(255,255,255,.18); }
.ftl-project-lightbox__close:focus-visible,.ftl-project-lightbox__nav:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.ftl-project-lightbox__close { position:fixed; z-index:2; top:22px; right:24px; font-size:34px; line-height:1; }
.ftl-project-lightbox__nav { font-size:25px; }
.ftl-project-lightbox__counter { position:fixed; left:50%; bottom:18px; margin:0; color:rgba(255,255,255,.72); font-size:14px; line-height:1; transform:translateX(-50%); }
.ftl-project-lightbox.is-loading .ftl-project-lightbox__figure img { opacity:.38; }
.ftl-project-updates { display:grid; gap:20px; }.ftl-project-updates article { padding:28px 30px; border-left:4px solid var(--ftl-red); background:var(--ftl-soft); }.ftl-project-updates h3 { margin-top:0; }
.ftl-project-faqs { border-top:1px solid #dedede; }.ftl-project-faqs details { border-bottom:1px solid #dedede; }.ftl-project-faqs summary { cursor:pointer; padding:18px 42px 18px 0; font-size:18px; font-weight:700; }.ftl-project-faqs details > div { max-width:900px; padding:0 0 22px; color:#555; }
.ftl-related-projects { margin-top:72px; }.ftl-project-card--related { padding-bottom:18px; }.ftl-project-card--related h3 { margin:0; font-size:18px; line-height:1.4; }
@media (max-width:900px) { .ftl-project-overview { grid-template-columns:1fr; }.ftl-project-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }.ftl-project-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .ftl-project__container { width:min(100% - 28px,1180px); }.ftl-project__hero-content { padding-block:30px 44px; }.ftl-project__hero h1 { font-size:clamp(32px,9vw,40px); }.ftl-project-facts { grid-template-columns:1fr; gap:20px; margin-top:-20px; padding:28px 22px; border-radius:14px; }.ftl-project-facts__item { grid-column:1; }.ftl-order-1{grid-row:1}.ftl-order-2{grid-row:2}.ftl-order-3{grid-row:3}.ftl-order-4{grid-row:4}.ftl-order-5{grid-row:5}.ftl-order-6{grid-row:6}.ftl-order-7{grid-row:7}.ftl-order-8{grid-row:8}.ftl-project-facts__item h2{font-size:17px}.ftl-project-facts__item p{font-size:16px}.ftl-project-section{padding-top:48px}.ftl-project-section > h2,.ftl-project-prose > h2{font-size:28px;margin-bottom:20px}.ftl-project-cards,.ftl-project-gallery{grid-template-columns:1fr}.ftl-project-card > img,.ftl-project-card > a > img{height:auto;aspect-ratio:4/3}.ftl-project-card--component > img{width:148px;height:148px;aspect-ratio:1;margin:0 auto 20px}.ftl-project-lightbox{padding:64px 14px 70px}.ftl-project-lightbox__dialog{grid-template-columns:1fr;gap:0}.ftl-project-lightbox__figure img{max-height:calc(100vh - 180px)}.ftl-project-lightbox__nav{position:fixed;top:50%;bottom:auto;transform:translateY(-50%);background:rgba(5,17,10,.72)}.ftl-project-lightbox__nav--prev{left:10px}.ftl-project-lightbox__nav--next{right:10px}.ftl-project-lightbox__close{top:14px;right:14px}.ftl-project-lightbox__counter{bottom:24px}.ftl-related-projects{margin-top:56px}.ftl-project__body{padding-bottom:56px} }
@media (prefers-reduced-motion:no-preference) { .ftl-project-card { transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease; }.ftl-project-card:hover { transform:translateY(-3px); border-color:#ced8d1; box-shadow:0 12px 30px rgba(19,46,29,.08); } }
.ftl-projects-grid { display:grid; grid-template-columns:repeat(var(--ftl-project-columns,3),minmax(0,1fr)); gap:22px; }
.ftl-project-tile { position:relative; min-height:330px; overflow:hidden; border-radius:12px; background:#163c28; }
.ftl-project-tile a { position:absolute; inset:0; display:flex; align-items:flex-end; color:#fff; text-decoration:none; }
.ftl-project-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.ftl-project-tile__overlay { position:absolute; inset:0; background:linear-gradient(180deg,transparent 30%,rgba(5,24,14,.82)); }
.ftl-project-tile h3 { position:relative; z-index:1; margin:0; padding:22px; color:inherit; font-size:21px; line-height:1.3; }
.ftl-project-tile a:hover img,.ftl-project-tile a:focus-visible img { transform:scale(1.035); }
@media (max-width:900px){.ftl-projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.ftl-projects-grid{grid-template-columns:1fr}.ftl-project-tile{min-height:300px}}
