/* FPA service support: consultation, craftsmanship and aftercare. */
.fpa-benefits-section { --benefits-gutter:max(22px,6.25vw); background:#f5f5f7; color:#1d1d1f; padding:100px 0 80px; font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue",Arial,sans-serif; text-align:start; }
.fpa-benefits-heading { width:calc(100% - 2 * var(--benefits-gutter)); max-width:1260px; margin:0 auto 60px; }
.fpa-benefits-heading h2 { margin:0; font-size:48px; font-weight:600; line-height:1.125; letter-spacing:-.025em; }
.fpa-benefits-gallery { overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:none; scroll-snap-type:x mandatory; scroll-padding-inline:var(--benefits-gutter); padding:10px var(--benefits-gutter) 20px; }
.fpa-benefits-gallery::-webkit-scrollbar { display:none; }
.fpa-benefits-track { display:flex; align-items:stretch; gap:22px; max-width:1260px; margin:auto; }
.fpa-benefit-card { position:relative; isolation:isolate; flex:1 0 0; min-width:0; min-height:496px; background:#fff; border-radius:28px; overflow:hidden; display:flex; flex-direction:column; scroll-snap-align:start; transition:transform .3s cubic-bezier(0,0,.5,1); }
.fpa-benefit-copy { position:relative; z-index:1; padding:32px 32px 0; }
.fpa-benefit-copy h3 { margin:0; font-size:17px; font-weight:600; line-height:1.353; }
.fpa-benefit-headline { margin:8px 0 0; font-size:28px; font-weight:600; line-height:1.25; letter-spacing:.007em; }
.fpa-benefit-body { margin:12px 0 0; font-size:17px; font-weight:400; line-height:1.353; }
.fpa-benefit-card > img { display:block; flex:none; width:372px; max-width:none; height:284px; object-fit:cover; margin:auto auto 0; align-self:center; pointer-events:none; }
/* Source building spans x=112..1118 of 1234px; enlarge to meet the card sides. */
.fpa-benefit-card > img.fpa-craftsmanship-image { width:123%; height:auto; margin-inline:0; object-fit:contain; object-position:center bottom; }
.fpa-benefit-open { position:absolute; inset:0; z-index:2; border:0; padding:0; background:transparent; color:#6e6e73; cursor:pointer; border-radius:inherit; }
.fpa-benefit-plus { position:absolute; inset-inline-end:20px; bottom:20px; width:36px; height:36px; border-radius:50%; background:#e8e8ed; display:grid; place-items:center; transition:background-color .2s,color .2s; }
.fpa-benefit-plus svg,.fpa-benefit-close svg,.fpa-benefits-paddles svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; }
.fpa-benefit-open:focus-visible { outline:3px solid #0071e3; outline-offset:-5px; }
.fpa-benefit-open:hover .fpa-benefit-plus { background:#d2d2d7; color:#1d1d1f; }
.fpa-benefits-paddles { display:none; justify-content:flex-end; gap:16px; margin:20px var(--benefits-gutter) 0; }
.fpa-benefits-paddles button { display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:50%; color:#1d1d1f; background:#e8e8ed; cursor:pointer; }
.fpa-benefits-paddles button:disabled { opacity:.35; cursor:default; }
.fpa-benefit-dialog { box-sizing:border-box; position:fixed; inset:0; width:min(816px,calc(100% - 40px)); max-width:none; max-height:calc(100dvh - 80px); margin:auto; padding:0; border:0; border-radius:20px; background:#fff; color:#1d1d1f; overflow:auto; overscroll-behavior:contain; text-align:start; font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Helvetica Neue",Arial,sans-serif; }
.fpa-benefit-dialog::backdrop { background:rgba(0,0,0,.48); backdrop-filter:blur(20px); }
.fpa-benefit-dialog[open] { animation:fpa-benefit-in .3s cubic-bezier(0,0,.5,1) both; }
.fpa-benefit-close { position:sticky; display:grid; place-items:center; top:16px; margin:16px 16px -60px auto; width:44px; height:44px; border:0; border-radius:50%; background:#e8e8ed; color:#6e6e73; z-index:3; cursor:pointer; }
[dir="rtl"] .fpa-benefit-close { margin:16px auto -60px 16px; }
.fpa-benefit-dialog-content { padding:76px; }
.fpa-benefit-modal-label { font-size:17px; font-weight:600; line-height:1.35; margin:0 0 16px; }
.fpa-benefit-dialog-content h3 { margin:0 0 24px; font-size:48px; font-weight:600; line-height:1.15; letter-spacing:-.025em; }
.fpa-benefit-modal-body { font-size:21px; line-height:1.48; margin:0 0 24px; }
.fpa-benefit-dialog-content a { color:#06c; text-decoration:none; font-size:17px; line-height:1.5; }
.fpa-benefit-dialog-content a:hover { text-decoration:underline; }
.fpa-benefit-dialog-content > img { display:block; margin:44px auto 0; width:372px; height:284px; max-width:100%; object-fit:contain; }
html.fpa-benefit-modal-open { overflow:hidden; }
.fpa-benefits-section :is(a,button):focus-visible { outline:3px solid #0071e3; outline-offset:3px; }
@keyframes fpa-benefit-in { from { opacity:0; transform:translateY(18px) scale(.985); } to { opacity:1; transform:none; } }
@media(hover:hover) { .fpa-benefit-card:hover { transform:scale(1.015); } }
@media(max-width:1068px) {
 .fpa-benefits-track { width:max-content; min-width:100%; max-width:none; }
 .fpa-benefits-heading { margin-bottom:40px; }.fpa-benefits-heading h2 { font-size:40px; }
 .fpa-benefit-card { flex:0 0 344px; min-height:480px; }.fpa-benefit-copy { padding:28px 28px 0; }
 .fpa-benefit-headline { font-size:24px; }.fpa-benefit-body { font-size:14px; }
 .fpa-benefit-card > img { width:344px; height:264px; }
 .fpa-benefits-paddles { display:flex; }
 .fpa-benefit-dialog { width:min(692px,calc(100% - 40px)); }.fpa-benefit-dialog-content { padding:64px 60px; }
 .fpa-benefit-dialog-content h3 { font-size:40px; }
}
@media(max-width:734px) {
 .fpa-benefits-section { padding:80px 0 60px; }.fpa-benefits-heading { margin-bottom:32px; }
 .fpa-benefits-heading h2 { font-size:32px; line-height:1.15; letter-spacing:0; }
 .fpa-benefits-track { gap:20px; }.fpa-benefit-card { flex-basis:260px; min-height:430px; border-radius:28px; }
 .fpa-benefit-copy { padding:24px 24px 0; }.fpa-benefit-copy h3 { font-size:14px; }
 .fpa-benefit-headline { font-size:21px; line-height:1.3; }.fpa-benefit-body { line-height:1.5; margin-top:12px; }
 .fpa-benefit-card > img { width:260px; height:198px; }.fpa-benefit-plus { inset-inline-end:16px; bottom:16px; }
 .fpa-benefit-dialog { width:calc(100% - 20px); max-height:calc(100dvh - 20px); border-radius:20px; }
 .fpa-benefit-dialog-content { padding:76px 28px 36px; }.fpa-benefit-dialog-content h3 { font-size:32px; }
 .fpa-benefit-modal-body { font-size:17px; }.fpa-benefit-dialog-content > img { margin-top:32px; height:auto; }
}
@media(prefers-reduced-motion:reduce) { .fpa-benefit-card,.fpa-benefit-plus { transition:none; }.fpa-benefit-dialog[open] { animation:none; } }

.fpa-benefit-qr-caption { margin:40px 0 0; font-size:17px; line-height:1.47; }
.fpa-benefit-dialog-content > .fpa-benefit-qr { height:auto; margin:24px auto 0; }

.fpa-benefits-section .fpa-benefit-open:focus-visible { outline-offset:-5px; }
