.fabbro-gallery,.fabbro-dialog{--fg-ink:#24211e;--fg-paper:#f6f3ed;--fg-walnut:#5b3c2c;--fg-line:#d9d0c4;--fg-brass:#a7824f;color:var(--fg-ink);font:16px/1.65 Arial,Helvetica,sans-serif;box-sizing:border-box}
.fabbro-gallery *,.fabbro-dialog *{box-sizing:border-box}
.fabbro-gallery{background:var(--fg-paper);padding:64px clamp(20px,4vw,68px);margin:0 auto;max-width:1600px}
.fabbro-gallery h1,.fabbro-gallery h2,.fabbro-gallery h3,.fabbro-dialog h2{font-family:Georgia,'Times New Roman',serif;letter-spacing:-.035em;line-height:1.13;color:var(--fg-ink);font-weight:400}
.fabbro-gallery h1{font-size:clamp(36px,4.5vw,64px);max-width:900px;margin:12px 0 24px}
.fg-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.19em;font-weight:700;color:var(--fg-walnut);margin:0 0 12px}
.fg-intro{max-width:780px;font-size:18px;margin:0 0 16px}
.fg-note{font-size:13px;max-width:820px;color:#625b53;margin:0 0 32px}
.fg-services{display:flex;gap:20px;flex-wrap:wrap;margin:16px 0 32px}.fabbro-gallery a{color:var(--fg-walnut);text-underline-offset:4px}
.fg-filters{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--fg-line);padding-top:26px;margin-top:32px}
.fabbro-gallery button,.fabbro-dialog button{font:inherit;text-transform:none;letter-spacing:normal;cursor:pointer;border-radius:0;box-shadow:none;margin:0}
.fg-filter{min-height:46px;padding:10px 18px;background:transparent;border:1px solid var(--fg-line);color:var(--fg-ink)}
.fg-filter[aria-pressed=true]{background:var(--fg-walnut);color:white;border-color:var(--fg-walnut)}
.fg-filter:hover{border-color:var(--fg-walnut)}
.fg-filter:focus-visible,.fabbro-gallery a:focus-visible,.fabbro-dialog :focus-visible,.fabbro-gallery summary:focus-visible,.fabbro-gallery button:focus-visible{outline:3px solid #8b5e28;outline-offset:4px}
.fg-count{font-size:13px;color:#625b53;margin:18px 0 24px}
.fg-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 26px}
.fg-card{background:#fff;border:1px solid #e5ded5;min-width:0;display:flex;flex-direction:column;scroll-margin-top:90px}
.fg-card[hidden]{display:none!important}
.fg-image-link{display:block;position:relative;overflow:hidden;background:#e5ded5;aspect-ratio:4/3}
.fg-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s}
.fg-image-link:hover img{transform:scale(1.025)}
.fg-label{position:absolute;left:14px;top:14px;padding:5px 9px;background:rgba(255,255,255,.94);font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:#3e3127}
.fg-card-body{padding:22px;display:flex;flex:1;flex-direction:column}
.fg-category{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#6e6257;margin:0 0 10px}
.fabbro-gallery .fg-card h2{font-size:26px;margin:0 0 14px}
.fg-caption{font-size:14px;color:#60594f;margin:0 0 22px}
.fg-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:auto}
.fg-view,.fg-primary{min-height:44px;background:var(--fg-walnut);color:#fff!important;border:1px solid var(--fg-walnut);padding:10px 16px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.fg-view{display:none}.is-enhanced .fg-view{display:inline-flex}.fg-quote{font-size:13px;font-weight:700}
.is-enhanced .fg-fallback{display:none}.fg-fallback{margin-top:18px;font-size:14px}.fg-fallback summary{cursor:pointer;font-weight:700;min-height:44px;padding:9px 0}
.fg-detail-list{margin:20px 0}.fg-detail-list dt{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;margin-top:18px;color:#6c5e50}.fg-detail-list dd{margin:6px 0 0;font-size:14px;line-height:1.6}
.fg-detail-list ul{margin:0;padding-left:18px}
.fg-enquiry{margin-top:60px;padding:36px 0 0;border-top:1px solid var(--fg-line)}
.fabbro-gallery .fg-enquiry h2{font-size:36px;margin:0 0 16px}.fg-enquiry p{max-width:760px}
.fg-enquiry-links{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin:22px 0}
.fg-quote-form{max-width:800px;background:#fff;padding:30px;margin-top:26px;border:1px solid var(--fg-line)}
.fg-quote-form input:not([type=submit]):not([type=hidden]),.fg-quote-form textarea{font:16px/1.5 Arial,sans-serif;width:100%;background:#fff;border:1px solid #b9afa2;color:#24211e;padding:12px;min-height:48px}
.fg-quote-form textarea{min-height:160px}.fg-quote-form input[type=submit],.fg-quote-form button{background:#5b3c2c;color:#fff;padding:14px 24px;min-height:48px;border:0}
.fg-quote-status{font-size:14px;color:var(--fg-walnut);font-weight:700}
.fabbro-dialog{position:fixed;background:var(--fg-paper);border:0;padding:0;margin:auto;width:min(1280px,96vw);max-width:96vw;max-height:92vh;overflow:auto;box-shadow:0 25px 100px #0005;z-index:999999}
.fabbro-dialog::backdrop{background:rgba(21,17,14,.78)}
.fg-modal-top{position:sticky;top:0;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:var(--fg-paper);border-bottom:1px solid var(--fg-line)}
.fg-modal-top p{font-size:12px;margin:0;color:#5d5349}.fg-close{min-width:44px;min-height:44px;background:#fff;border:1px solid var(--fg-line);padding:8px 14px;color:var(--fg-ink)}
.fg-modal-grid{display:grid;grid-template-columns:60% 40%}.fg-modal-media{background:#e7e1d8;align-self:start;position:sticky;top:65px}
.fg-stage{overflow:auto;max-height:65vh;display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;position:relative}
.fg-stage img{display:block;width:100%;height:auto;max-width:none;flex:none;transition:width .2s;object-fit:contain;cursor:zoom-in}.fg-stage.is-zoomed{display:block}.fg-stage.is-zoomed img{cursor:zoom-out}
.fg-image-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px}.fg-image-tools button,.fg-nav button{padding:9px 12px;min-height:44px;border:1px solid #bfb3a4;background:#fff;color:var(--fg-ink)}
.fg-image-tools button:disabled,.fg-nav button:disabled{opacity:.4;cursor:default}.fg-image-tools a{font-size:12px;color:var(--fg-walnut);text-underline-offset:3px}
.fg-modal-caption{padding:0 16px 16px;font-size:12px;margin:0;color:#62584d}
.fg-modal-details{padding:30px;min-width:0}.fabbro-dialog h2{font-size:35px;margin:10px 0 20px}.fg-modal-details p{font-size:15px}.fg-modal-details .fg-kicker{font-size:10px}
.fg-modal-details .fg-primary{font-size:14px;margin:0 0 12px}.fg-nav{display:flex;justify-content:space-between;gap:14px;padding:20px 16px;border-top:1px solid var(--fg-line)}
@media(min-width:1200px){.fg-modal-grid{grid-template-columns:65% 35%}}
@media(max-width:1199px){.fg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.fabbro-gallery{padding:36px 18px}.fg-intro{font-size:16px}.fg-grid{grid-template-columns:1fr;gap:24px}.fg-filters{gap:8px}.fg-filter{padding:9px 12px;font-size:13px}.fg-card-body{padding:20px}.fg-modal-grid{grid-template-columns:1fr}.fg-modal-media{position:static}.fg-stage{max-height:48vh}.fg-modal-details{padding:22px}.fabbro-dialog h2{font-size:30px}.fg-quote-form{padding:20px}.fg-services{gap:12px;font-size:13px}.fg-enquiry{margin-top:38px}.fg-modal-top p{max-width:65%;line-height:1.3}.fabbro-dialog{width:96vw;max-height:94vh}}
@media(prefers-reduced-motion:reduce){.fabbro-gallery *,.fabbro-dialog *{transition:none!important;scroll-behavior:auto!important}}
