.gfmp{--gfmp-accent:#d5a9cf;--gfmp-ink:#292530;--gfmp-soft:#f8ecfd;--gfmp-border:#e9e6eb;width:100%;min-width:0;color:var(--gfmp-ink);font-family:inherit;font-size:1.0rem;line-height:1.6}
.gfmp *,.gfmp *::before,.gfmp *::after{box-sizing:border-box}.gfmp a{color:inherit}.gfmp button,.gfmp input,.gfmp select{font:inherit}.gfmp button,.gfmp-button{cursor:pointer}.gfmp :focus-visible{outline:3px solid #655076;outline-offset:4px}.gfmp img{max-width:100%;display:block}.gfmp-message{padding:24px;border-radius:16px;background:#f7f5f8}.gfmp .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.gfmp-search{display:flex;align-items:center;gap:12px;border:1px solid var(--gfmp-border);border-radius:999px;background:white;padding:8px 8px 8px 24px;max-width:850px;min-width:0}.gfmp-search input{flex:1;min-width:0;width:100%;padding:10px 0;border:0;background:transparent;color:var(--gfmp-ink);outline-offset:2px}.gfmp-search button{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;padding:12px;border:0;border-radius:50%;background:var(--gfmp-accent);color:var(--gfmp-ink)}.gfmp-search svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8}
.gfmp-chips{display:flex;flex-wrap:wrap;gap:12px}.gfmp-chips a{padding:10px 18px;background:#fff;border:1px solid var(--gfmp-border);border-radius:999px;text-decoration:none;font-size:0.875rem;font-weight:600}.gfmp-chips a:hover,.gfmp-chips a[aria-current]{background:var(--gfmp-soft);border-color:var(--gfmp-accent)}
/* Filter layout follows the internal marketplace. Rules stay within the shortcode. */
.gfmp .gfmp-filter{width:100%;margin:0;text-align:left}
.gfmp .gfmp-filter-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:#fff;border:1px solid var(--gfmp-border);border-radius:22px;box-shadow:0 12px 32px #2925300d;overflow:hidden}
.gfmp .gfmp-filter label{display:block;position:relative;min-width:0;margin:0;padding:0;border:0;font-weight:400}
.gfmp .gfmp-filter label+label{border-left:1px solid var(--gfmp-border)}
.gfmp .gfmp-filter-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.gfmp .gfmp-filter select{display:block;appearance:none;-webkit-appearance:none;width:100%;min-width:0;max-width:none;height:76px;margin:0;padding:20px 54px 20px 28px;border:0;border-radius:0;box-shadow:none;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23aeb6c0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 22px center;background-size:16px;color:#222;font:inherit;font-size:1.125rem;font-weight:400;line-height:1.4;text-align:left;text-transform:none;letter-spacing:normal;cursor:pointer}
.gfmp .gfmp-filter select:focus-visible{outline:3px solid #655076;outline-offset:-4px}
.gfmp .gfmp-filter-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:24px;margin-top:26px}
.gfmp .gfmp-filter button,.gfmp-button{display:inline-block;padding:12px 22px;border:0;border-radius:10px;background:var(--gfmp-accent);color:var(--gfmp-ink);font-weight:600;text-decoration:none}
.gfmp .gfmp-filter button{width:auto;min-height:64px;margin:0;padding:16px 32px;border-radius:16px;background:#f0cdff;color:#171717;font:inherit;font-size:1.125rem;font-weight:600;line-height:1.5;text-transform:none;letter-spacing:normal;box-shadow:0 10px 26px #2925300a}
.gfmp .gfmp-filter button:hover{background:#e9bcfc}
.gfmp .gfmp-filter-actions a{margin:0;padding:8px 0;color:#9299a2;font-size:1.0rem;font-weight:400;text-decoration:none}
.gfmp .gfmp-filter-actions a:hover{color:#555d68;text-decoration:underline}
.gfmp .gfmp-result-count{margin:0 0 24px;font-size:1.0rem;font-weight:400;text-align:left}
@media(max-width:767px){.gfmp .gfmp-filter-fields{grid-template-columns:1fr;border-radius:18px}.gfmp .gfmp-filter label+label{border-left:0;border-top:1px solid var(--gfmp-border)}.gfmp .gfmp-filter select{height:64px;padding-left:22px;font-size:1.0rem}.gfmp .gfmp-filter-actions{gap:16px;margin-top:20px}.gfmp .gfmp-filter button{min-height:56px;padding:14px 24px;font-size:1.0rem}}

.gfmp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gfmp-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid var(--gfmp-border);border-radius:18px;overflow:hidden;box-shadow:0 5px 20px #2925300a;transition:box-shadow .2s,transform .2s}.gfmp-card:hover{transform:translateY(-3px);box-shadow:0 10px 25px #29253012}.gfmp-card-image{display:block;position:relative;aspect-ratio:16/10;background:#f4f0f5;overflow:hidden}.gfmp-card-image img{width:100%;height:100%;object-fit:cover}.gfmp-image-placeholder{display:block;width:100%;height:100%;background:linear-gradient(135deg,#f8ecfd,#f4eee8)}.gfmp-badges{display:flex;flex-wrap:wrap;gap:6px;position:absolute;left:12px;top:12px;right:12px}.gfmp-badges span{padding:5px 9px;border-radius:999px;background:#fff;font-size:0.6875rem;font-weight:700;line-height:1.4;box-shadow:0 2px 8px #0000000a}.gfmp-card-body{display:flex;flex-direction:column;flex:1;padding:22px}.gfmp-card .gfmp-category{margin:0 0 10px;color:#68556c;font-size:0.75rem;line-height:1.5;font-weight:600}.gfmp-card h3{margin:0 0 12px;font-size:1.25rem;line-height:1.35;font-weight:650;overflow-wrap:anywhere}.gfmp-card h3 a{text-decoration:none}.gfmp-card h3 a:hover{text-decoration:underline}.gfmp-format{margin:0 0 20px;font-size:0.8125rem;color:#67616a}.gfmp-card-footer{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:16px;font-size:0.75rem}.gfmp-card-footer strong{font-size:0.8125rem}.gfmp-pagination{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.gfmp-pagination a{display:grid;place-items:center;min-width:42px;min-height:42px;padding:8px;border:1px solid var(--gfmp-border);border-radius:10px;text-decoration:none}.gfmp-pagination a[aria-current]{background:var(--gfmp-soft);border-color:var(--gfmp-accent)}
.gfmp-slider-block{position:relative}.gfmp-slider-controls{display:flex;justify-content:flex-end;gap:10px;margin-bottom:16px}.gfmp-slider-controls button{display:grid;place-items:center;width:44px;height:44px;padding:0;background:white;color:var(--gfmp-ink);border:1px solid var(--gfmp-border);border-radius:50%;font-size:1.75rem;line-height:1;box-shadow:0 3px 12px #00000008}.gfmp-slider-controls button:disabled{opacity:.35;cursor:default}.gfmp-slider{display:flex;align-items:stretch;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 20px;scrollbar-width:thin}.gfmp-slider .gfmp-card{flex:0 0 calc((100% - 48px)/3);scroll-snap-align:start}
.gfmp-detail .gfmp-back{display:inline-block;margin-bottom:28px;text-decoration:none}.gfmp-detail-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start}.gfmp-detail-image{width:100%;height:auto;border-radius:18px}.gfmp-detail h1{font-size:clamp(28px,4vw,40px);line-height:1.2;margin:0 0 24px;overflow-wrap:anywhere}.gfmp-detail h2{font-size:1.5rem;line-height:1.3;margin:0 0 14px}.gfmp-facts{margin:24px 0}.gfmp-facts>div{display:flex;gap:16px;padding:8px 0;border-bottom:1px solid var(--gfmp-border)}.gfmp-facts dt{font-weight:600;min-width:110px}.gfmp-facts dd{margin:0;overflow-wrap:anywhere}.gfmp-rich{overflow-wrap:anywhere}.gfmp-rich p{margin:0 0 1em}.gfmp-rich ul,.gfmp-rich ol{padding-left:24px}.gfmp-detail article>.gfmp-rich{margin:36px 0}.gfmp-benefit{margin:36px 0;padding:24px;border-radius:16px;background:var(--gfmp-soft)}.gfmp-provider{display:grid;grid-template-columns:110px minmax(0,1fr);gap:24px;margin-top:40px;padding:28px;border:1px solid var(--gfmp-border);border-radius:18px}.gfmp-provider>img{width:110px;height:110px;object-fit:contain;border-radius:14px}.gfmp-disclaimer{font-size:0.75rem;color:#67616a;margin-top:28px}
@media(max-width:900px){.gfmp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gfmp-slider .gfmp-card{flex-basis:calc((100% - 24px)/2)}.gfmp-detail-top{gap:24px}}
@media(max-width:600px){.gfmp-grid{grid-template-columns:minmax(0,1fr)}.gfmp-filter-fields{grid-template-columns:1fr;gap:12px}.gfmp-slider .gfmp-card{flex-basis:82%;max-width:350px}.gfmp-search{padding-left:16px}.gfmp-search input{font-size:0.9375rem}.gfmp-chips{gap:8px}.gfmp-chips a{font-size:0.8125rem;padding:8px 12px}.gfmp-detail-top{grid-template-columns:1fr}.gfmp-provider{grid-template-columns:1fr;padding:22px}.gfmp-card h3{font-size:1.1875rem}}
@media(prefers-reduced-motion:reduce){.gfmp-card{transition:none}.gfmp-slider{scroll-behavior:auto}}

.gfmp-no-image{grid-template-columns:1fr}.gfmp-no-image>div:first-child{display:none}.gfmp-provider{display:flex;align-items:flex-start}.gfmp-provider>img{flex:0 0 110px}.gfmp-provider>div{flex:1;min-width:0}
@media(max-width:600px){.gfmp-provider{flex-direction:column}.gfmp-provider>img{flex-basis:auto}}

/* 0.2.2: internal marketplace layout, relative typography, builder containment. */
.gfmp{font-size:inherit;font-family:inherit;text-align:left;line-height:1.6;--gfmp-title:#9299a2;container-type:inline-size}
.gfmp h1,.gfmp h2,.gfmp h3,.gfmp p,.gfmp dl,.gfmp dt,.gfmp dd{font-family:inherit;text-align:left;letter-spacing:normal;text-transform:none}
.gfmp .gfmp-filter-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.35fr)}
.gfmp .gfmp-filter select{font-size:1em;height:auto;min-height:3.75em;padding:1em 2.5em 1em 1.25em;background-position:right 1em center}
.gfmp .gfmp-filter button{font-size:1em;min-height:3em;padding:.8em 1.5em}
.gfmp .gfmp-filter-actions a,.gfmp .gfmp-result-count{font-size:.9em}
.gfmp .gfmp-filter-actions{margin-top:1.5rem;gap:1.5rem}
.gfmp .gfmp-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;align-items:stretch}
.gfmp .gfmp-card{border:0;border-radius:1.5rem;box-shadow:0 .25rem .75rem #00000008,0 .75rem 2rem #0000000f;text-align:left;height:100%}
.gfmp .gfmp-card-image{aspect-ratio:3/2;flex:none}
.gfmp .gfmp-card-body{padding:1.5rem 1.375rem 1.375rem;min-height:0}
.gfmp .gfmp-card .gfmp-category{display:none}
.gfmp .gfmp-card h3{order:2;font-size:1.25em;font-weight:700;line-height:1.2;min-height:3.6em;max-height:3.6em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 1.5rem;color:var(--gfmp-title);overflow-wrap:break-word}
.gfmp .gfmp-card h3 a{font:inherit;color:inherit;text-decoration:none}
.gfmp .gfmp-card h3 a:hover{color:#111}
.gfmp .gfmp-format{order:1;font-size:.8125em;line-height:1.4;font-weight:500;color:#111;margin:0 0 .625rem}
.gfmp .gfmp-card-footer{order:3;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.375rem;border-top:1px solid #eee;padding-top:1.125rem;margin-top:auto;width:100%;font-size:.75em;line-height:1.4;color:#111}
.gfmp .gfmp-card-footer span{width:100%}
.gfmp .gfmp-card-footer strong{display:block;width:100%;font-size:1.25em;font-weight:700;line-height:1.4;text-align:left;overflow-wrap:break-word}
.gfmp .gfmp-badges{flex-direction:column;align-items:flex-start;gap:.4375rem;top:.875rem;left:.875rem;right:.875rem}
.gfmp .gfmp-badges span{padding:.5em .8em;font-size:.6875em;line-height:1.25;font-weight:800;background:#f0cdff;color:#111;text-transform:uppercase;max-width:100%;overflow-wrap:anywhere}
.gfmp .gfmp-badges .gfmp-badge-partner{background:#111;color:#fff}
.gfmp .gfmp-slider .gfmp-card{flex:0 0 calc((100% - 4.5rem)/4);height:auto;max-width:none}
.gfmp .gfmp-slider{gap:1.5rem}
.gfmp .gfmp-slider-controls button{width:2.75rem;height:2.75rem;font-size:1.75em}
.gfmp.gfmp-detail{width:100%;max-width:75rem;margin:0 auto}
.gfmp-detail article{display:block;width:100%;margin:0;padding:0}
.gfmp-detail .gfmp-back{font-size:.9375em;color:#777;margin-bottom:2rem}
.gfmp-detail .gfmp-detail-header{display:block;max-width:56.25rem;margin:0 0 2.625rem;padding:0}
.gfmp-detail .gfmp-category{font-size:.9375em;font-weight:600;color:#6f6f6f;margin:0 0 .625rem}
.gfmp-detail h1{font-size:2.375em;line-height:1.12;font-weight:700;color:#111;margin:0 0 1.125rem;overflow-wrap:break-word}
.gfmp-detail h2{font-size:1.4375em;line-height:1.25;font-weight:700;color:#111;margin:0 0 1.375rem}
.gfmp-detail .gfmp-detail-header .gfmp-rich{font-size:1.125em;color:#555;max-width:51.25rem}
.gfmp-detail .gfmp-detail-pill,.gfmp-detail .gfmp-detail-partner{display:inline-flex;font-size:.8125em;padding:.375em .85em;background:#f8ecfd;border-radius:999px;margin:1rem 0 0;color:#111}
.gfmp-detail .gfmp-detail-partner{margin:0 0 1rem;background:#111;color:#fff}
.gfmp-detail .gfmp-detail-top{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.75fr);gap:2.625rem;align-items:start;margin:0 0 4rem}
.gfmp-detail .gfmp-detail-image{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:1.5rem}
.gfmp-detail .gfmp-detail-box{display:block;padding:1.875rem;background:#fff;border-radius:1.375rem;box-shadow:0 .25rem .75rem #00000008,0 .75rem 2rem #0000000f;min-width:0}
.gfmp-detail .gfmp-facts{margin:0}
.gfmp-detail .gfmp-facts>div{display:block;border:0;padding:0;margin:0 0 1.5rem}
.gfmp-detail .gfmp-facts dt{font-size:.75em;line-height:1.4;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#888;margin:0 0 .3125rem;min-width:0}
.gfmp-detail .gfmp-facts dd{font-size:1.0625em;line-height:1.5;color:#111;margin:0}
.gfmp-detail .gfmp-facts .gfmp-detail-price{font-size:1.625em;font-weight:700;line-height:1.3}
.gfmp-detail .gfmp-button{display:flex;justify-content:center;align-items:center;width:100%;min-height:3.375em;padding:.75em 1.25em;border-radius:.75rem;background:#f8ecfd;color:#111;text-align:center;font-size:1em;line-height:1.3;font-weight:600;text-decoration:none}
.gfmp-detail .gfmp-button:hover{background:#f0cdff}
.gfmp-detail .gfmp-description{max-width:56.25rem;margin:0 0 4rem}
.gfmp-detail .gfmp-rich{font-size:1em;line-height:1.75;overflow-wrap:break-word;color:#444}
.gfmp-detail .gfmp-rich p{margin:0 0 1em}
.gfmp-detail .gfmp-rich p:last-child{margin-bottom:0}
.gfmp-detail .gfmp-benefit{display:flex;align-items:center;flex-wrap:wrap;gap:1rem 1.5rem;margin:1.75rem 0;padding:1.25rem 1.5rem;background:linear-gradient(90deg,#f0cdff,#daebfa,#efebb8);border-radius:1.125rem}
.gfmp-detail .gfmp-benefit h2,.gfmp-detail .gfmp-benefit p{margin:0;font-size:1em}
.gfmp-detail .gfmp-benefit h2{font-weight:700}
.gfmp-detail .gfmp-provider-section{max-width:56.25rem}
.gfmp-detail .gfmp-provider{display:flex;align-items:flex-start;gap:1.625rem;margin:0;padding:1.875rem;border:0;border-radius:1.375rem;background:#fff;box-shadow:0 .25rem .75rem #00000008,0 .75rem 2rem #0000000f}
.gfmp-detail .gfmp-provider>img{display:block;flex:0 0 6.875rem;width:6.875rem;height:6.875rem;max-width:100%;object-fit:cover;border-radius:50%;margin:0}
.gfmp-detail .gfmp-provider-partner>img{object-fit:contain;border-radius:.75rem}
.gfmp-detail .gfmp-provider>div{flex:1 1 auto;min-width:0}
.gfmp-detail .gfmp-provider h2{font-size:1.375em;line-height:1.3;margin:0 0 .25rem}
.gfmp-detail .gfmp-provider p{font-size:.9375em;line-height:1.65;margin:0 0 .75rem}
.gfmp-detail .gfmp-provider a{display:inline-block;margin-top:1rem;font-size:.9375em;font-weight:600;color:#111}
.gfmp-detail .gfmp-disclaimer{font-size:.75em}
.gfmp-detail .gfmp-no-image{grid-template-columns:1fr}
@container(max-width:65rem){.gfmp .gfmp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gfmp .gfmp-slider .gfmp-card{flex-basis:calc((100% - 3rem)/3)}}
@container(max-width:50rem){.gfmp .gfmp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gfmp .gfmp-slider .gfmp-card{flex-basis:calc((100% - 1.5rem)/2)}.gfmp .gfmp-filter-fields{grid-template-columns:1fr}.gfmp .gfmp-filter label+label{border-left:0;border-top:1px solid var(--gfmp-border)}.gfmp-detail .gfmp-detail-top{grid-template-columns:1fr;gap:1.5rem}}
@container(max-width:35rem){.gfmp .gfmp-grid{grid-template-columns:1fr}.gfmp .gfmp-slider .gfmp-card{flex-basis:82%}.gfmp-detail h1{font-size:1.875em}.gfmp-detail .gfmp-provider{flex-direction:column;padding:1.375rem}.gfmp-detail .gfmp-detail-box{padding:1.375rem}.gfmp .gfmp-filter-actions{gap:1rem}.gfmp .gfmp-card h3{font-size:1.1875em}}
@media(max-width:600px){.gfmp .gfmp-grid{grid-template-columns:1fr}.gfmp-detail .gfmp-detail-top{grid-template-columns:1fr}.gfmp-detail .gfmp-provider{flex-direction:column}}

/* 0.2.3: concise detail metadata and provider link. */
.gfmp-detail .gfmp-detail-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.625rem 0 1rem}
.gfmp-detail .gfmp-detail-badges>span{display:inline-flex;align-items:center;margin:0;padding:.5em .85em;border-radius:999px;font-size:.75em;font-weight:700;line-height:1.3;max-width:100%;overflow-wrap:anywhere}
.gfmp-detail .gfmp-detail-badges .gfmp-detail-partner{background:#111;color:#fff}
.gfmp-detail .gfmp-detail-badges .gfmp-detail-advantage{background:#f0cdff;color:#111}
.gfmp-detail .gfmp-provider .gfmp-provider-link{display:inline-flex;align-items:center;gap:.4em;margin-top:1rem;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:#9299a2;font-size:.9375em;font-weight:700;line-height:1.4;text-decoration:none}
.gfmp-detail .gfmp-provider .gfmp-provider-link:hover{color:#111;text-decoration:underline}
.gfmp-detail .gfmp-rich img{max-width:100%;height:auto;object-fit:contain}
.gfmp-detail .gfmp-rich figure{max-width:100%;margin:1.5rem 0}
.gfmp-detail .gfmp-rich h2,.gfmp-detail .gfmp-rich h3,.gfmp-detail .gfmp-rich h4{font-family:inherit;font-weight:700;line-height:1.3;margin:1.5em 0 .75em}
.gfmp-detail .gfmp-rich h2{font-size:1.4375em}.gfmp-detail .gfmp-rich h3{font-size:1.25em}.gfmp-detail .gfmp-rich h4{font-size:1.125em}
.gfmp-detail .gfmp-rich img[hidden],.gfmp-detail .gfmp-rich figure[hidden],.gfmp-detail .gfmp-rich a[hidden],.gfmp-detail .gfmp-rich p[hidden]{display:none!important}

.gfmp .gfmp-slider{margin-inline:-1rem;padding: .625rem 1rem 2.5rem;scroll-padding-inline:1rem}
.gfmp .gfmp-slider-controls[hidden]{display:none}

@media (max-width: 600px) {
  .gfmp .gfmp-slider {
    margin-inline-start: 0;
    padding-inline-start: 1rem;
  }
  .gfmp .gfmp-slider .gfmp-card {
    flex-basis: 76%;
  }
  .gfmp .gfmp-slider .gfmp-card-body {
    padding: 1rem;
  }
  .gfmp .gfmp-slider .gfmp-card h3 {
    margin-bottom: 1rem;
  }
  .gfmp .gfmp-slider-controls {
    padding-inline-end: 1rem;
  }
}
