/* Fabrico shares the Dome palette and components; these rules handle its content. */
.fabrico-page .pool-dome-shell { max-width: 1320px; }
.fabrico-page .pool-dome-main { display: grid; gap: 1.5rem; }
/* Content typography and controls must not restyle the shared header or footer. */
.fabrico-page :where(.pool-dome-main) h1, .fabrico-page :where(.pool-dome-main) h2, .fabrico-page :where(.pool-dome-main) h3 { color: var(--pool-dome-navy); text-wrap: balance; }
.fabrico-page :where(.pool-dome-main) p { line-height: 1.65; }
.fabrico-hero {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--pool-dome-border);
    border-radius: 8px;
    background: var(--pool-dome-navy);
    color: white;
}
.fabrico-hero-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.25rem, 2vw, 2rem);
    text-align: center;
}
.fabrico-hero h1 {
    margin: 0 0 1rem;
    color: white;
    font-size: clamp(2rem, 2.8vw, 2.6rem);
    font-weight: 700;
    line-height: 1.15;
}
.fabrico-hero-application { display: block; margin-top: .35rem; font-size: .82em; font-weight: 600; }
.fabrico-hero .fabrico-hero-lead { max-width: 36rem; margin: 0 auto; font-size: 1.075rem; line-height: 1.55; }
.fabrico-hero-photo { position: relative; min-width: 0; min-height: 0; align-self: stretch; margin: 0; aspect-ratio: 3 / 2; }
.fabrico-hero-photo img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
/* Keep the roof and mounting base visible in the manufacturer's tighter crops. */
.fabrico-image--soft-sided-installation { object-position: center top; }
.fabrico-image--inground-installation { object-position: center bottom; }
.fabrico-page .pool-dome-product-cta,
.fabrico-page .pool-dome-secondary-cta { min-height: 56px; font-size: 1.125rem; text-align: center; }
.fabrico-page .pool-dome-product-cta { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) 1.5rem; align-items: center; gap: .5rem; }
.fabrico-page .pool-dome-product-cta-label { grid-area: 1 / 2; min-width: 0; white-space: normal; text-wrap: balance; }
.fabrico-page .pool-dome-product-cta > .bi { grid-area: 1 / 3; place-self: center; }
.fabrico-page .pool-dome-product-cta:hover { background: var(--pool-dome-copper); background: color-mix(in srgb, var(--pool-dome-copper) 85%, var(--pool-dome-navy)); border-color: var(--pool-dome-copper); color: white; }
.fabrico-page .pool-dome-secondary-cta { border-color: var(--pool-dome-blue); background: var(--pool-dome-blue); color: white; }
.fabrico-page .pool-dome-secondary-cta:hover { border-color: var(--pool-dome-copper); background: var(--pool-dome-copper); color: white; }
.fabrico-hero-copy .pool-dome-secondary-cta { border-color: var(--pool-dome-teal); }
.fabrico-page .pool-dome-hero-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    max-width: 32rem;
    margin: 1.25rem auto 0;
}
.fabrico-page .pool-dome-hero-actions > a {
    margin: 0;
    justify-content: center;
    text-align: center;
}
.fabrico-page :is(.pool-dome-product-cta, .fabrico-text-link) > .bi {
    display: flex;
    flex: 0 0 1.5rem;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    font-size: 1.5rem;
    line-height: 1;
}
.fabrico-page :is(.pool-dome-product-cta, .fabrico-text-link) > .bi::before { display: block; line-height: 1; vertical-align: 0; }
.fabrico-page .fabrico-text-link { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; color: var(--pool-dome-navy); font-weight: 700; text-decoration: none; }
.fabrico-page .fabrico-text-link:is(:hover, :focus-visible) { color: var(--pool-dome-copper); }
.fabrico-text-link > span:first-child { min-width: 0; }
.fabrico-text-link:hover > span:first-child,
.fabrico-text-link:focus-visible > span:first-child { text-decoration: underline; text-underline-offset: .2em; }
.fabrico-hero-guides { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.25rem; margin-top: .5rem; }
.fabrico-hero-guides a { display: inline-flex; min-height: 44px; align-items: center; color: white; font-size: .925rem; text-underline-offset: .2em; }
.fabrico-hero-guides a:hover { color: var(--pool-dome-warm); }
.fabrico-dealer-strip {
    display: grid;
    grid-template-columns: 288px minmax(0, 1fr);
    grid-column: 1 / -1;
    border-top: 4px solid var(--pool-dome-copper);
    background: white;
    color: var(--pool-dome-text);
}
/* The artwork occupies the central 70% of this asset; crop its transparent padding. */
.fabrico-dealer-logo { position: relative; width: 240px; max-width: calc(100% - 3rem); aspect-ratio: 1; margin: .75rem 1.5rem; overflow: hidden; place-self: center; }
.fabrico-dealer-logo img { position: absolute; top: -20%; left: -20%; display: block; width: 140%; max-width: none; height: 140%; object-fit: contain; }
.fabrico-dealer-content { display: flex; min-width: 0; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 1.25rem 1.5rem; background: var(--pool-dome-navy); color: white; text-align: center; }
.fabrico-dealer-content p { max-width: 42rem; margin: 0; font-size: 1.05rem; line-height: 1.55; }
.fabrico-dealer-content .fabrico-dealer-intro { max-width: 44rem; font-size: 1.35rem; font-weight: 600; line-height: 1.4; text-wrap: balance; }
.fabrico-dealer-content p a { font-weight: 700; color: white; text-underline-offset: .2em; }
.fabrico-dealer-content p a:hover, .fabrico-dealer-phone:hover { color: var(--pool-dome-warm); }
.fabrico-dealer-phone { display: flex; min-height: 56px; flex-direction: column; justify-content: center; color: white; text-align: center; text-decoration: none; }
.fabrico-dealer-phone span { font-size: .875rem; }
.fabrico-dealer-phone strong { font-size: 1.25rem; white-space: nowrap; }
.fabrico-dealer-phone:hover strong { text-decoration: underline; text-underline-offset: .2em; }
.fabrico-owner-experiences {
    --testimonial-accent: var(--pool-dome-copper);
    --testimonial-border: var(--pool-dome-border);
    --testimonial-heading: var(--pool-dome-navy);
    --testimonial-surface: var(--pool-dome-mist);
    --testimonial-control-hover: white;
    display: flex;
    grid-column: 1 / -1;
    flex-direction: column;
    justify-content: center;
    padding: 1rem 1.25rem;
    border: 0;
    border-top: 1px solid var(--pool-dome-border);
    border-radius: 0;
}
.fabrico-owner-experiences .testimonial-rotator-header h2 { font-size: 1.25rem; line-height: 1.3; }
.fabrico-owner-experiences .testimonial-rotator-display { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; max-width: 48rem; height: auto; margin-inline: auto; text-align: center; overflow-wrap: anywhere; }
.fabrico-owner-experiences .testimonial-rotator-display blockquote { grid-area: 1 / 1; justify-content: flex-start; min-height: 0; height: auto; padding: 0; border-left: 0; color: var(--pool-dome-text); }
/* Overlap quotes to reserve the tallest one's space; inactive links stay invisible and unfocusable. */
.fabrico-owner-experiences .testimonial-rotator-display blockquote[hidden] { display: flex; visibility: hidden; pointer-events: none; }
.fabrico-owner-experiences .testimonial-rotator-display blockquote p { flex: 1; }
.fabrico-owner-experiences .testimonial-rotator-control { width: 44px; height: 44px; border-color: var(--pool-dome-copper); background: var(--pool-dome-copper); color: white; }
.fabrico-owner-experiences .testimonial-rotator-control:hover { border-color: var(--pool-dome-navy); background: var(--pool-dome-navy); color: white; }
/* Put controls beside the heading so the quote keeps the full column width. */
.fabrico-owner-experiences.is-enhanced { display: grid; grid-template-columns: 44px minmax(0, 1fr) 44px; align-content: center; gap: .5rem; }
.fabrico-owner-experiences.is-enhanced .testimonial-rotator-header { grid-column: 2; grid-row: 1; align-self: center; margin: 0; }
.fabrico-owner-experiences.is-enhanced .testimonial-rotator-carousel { display: contents; }
.fabrico-owner-experiences.is-enhanced .testimonial-rotator-display { grid-area: 2 / 1 / 3 / -1; }
.fabrico-owner-experiences .testimonial-rotator-control[data-testimonial-previous] { grid-area: 1 / 1; align-self: center; }
.fabrico-owner-experiences .testimonial-rotator-control[data-testimonial-next] { grid-area: 1 / 3; align-self: center; }
.fabrico-owner-experiences .testimonial-source { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; align-self: center; color: var(--pool-dome-navy); text-underline-offset: .2em; }
.fabrico-owner-experiences .testimonial-source:hover { color: var(--pool-dome-copper); }
@media (min-width: 1200px) {
    .fabrico-dealer-strip:has(> .fabrico-owner-experiences) { grid-template-columns: 288px repeat(2, minmax(0, 1fr)); }
    .fabrico-dealer-content { padding: 1rem; }
    .fabrico-dealer-content .fabrico-dealer-intro { font-size: 1.25rem; }
    .fabrico-owner-experiences { grid-column: auto; border-top: 0; border-left: 1px solid var(--pool-dome-border); }
}
.fabrico-applications { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.fabrico-applications--related { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fabrico-applications .pool-dome-product-card { display: flex; flex-direction: column; border-top: 0; }
.fabrico-applications .pool-dome-product-card > img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; padding: 0; border-bottom: 4px solid var(--pool-dome-copper); }
.fabrico-applications .pool-dome-product-body { display: flex; flex-direction: column; flex: 1; padding: 1rem; text-align: center; }
.fabrico-applications .pool-dome-product-body h3 { font-size: 1.2rem; }
/* Reserve two label lines so neighboring card arrows share the same center. */
.fabrico-applications .pool-dome-product-cta { min-height: 4.25rem; max-width: 22rem; margin: auto auto 0; }
.fabrico-applications > :nth-child(even) { background: var(--pool-dome-navy); color: white; }
.fabrico-applications > :nth-child(even) :is(h2, h3) { color: white; }
.fabrico-applications > :nth-child(even) .pool-dome-product-cta:hover { border-color: white; }
.fabrico-applications > :nth-child(even) a:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-section { padding: 1.5rem; border: 1px solid var(--pool-dome-border); border-radius: 8px; background: white; }
.fabrico-section > h2, .fabrico-section > header { text-align: center; margin-bottom: 1rem; }
.fabrico-section-heading { margin: 0 0 1.25rem; text-align: center; }
.fabrico-section-heading h2 { margin: 0; font-size: clamp(1.5rem, 2.3vw, 2rem); font-weight: 700; }
.fabrico-section-heading p { margin: .5rem auto 0; }
.fabrico-overview, .fabrico-product-details { border-top: 4px solid var(--pool-dome-copper); }
.fabrico-section.fabrico-overview { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); padding: 0; overflow: hidden; background: var(--pool-dome-mist); }
.fabrico-overview-intro { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 1.5rem; background: var(--pool-dome-navy); color: white; text-align: center; }
.fabrico-overview-intro h2 { margin: 0 0 1rem; color: white; font-size: clamp(1.5rem, 2.3vw, 2rem); font-weight: 700; }
.fabrico-overview-intro p { max-width: 42ch; margin: 0 auto; }
.fabrico-overview-intro p + p { margin-top: .75rem; }
.fabrico-overview-benefits { min-width: 0; align-self: center; }
.fabrico-overview .pool-dome-benefit-detail { padding: 1.25rem 1.5rem; }
.fabrico-overview .pool-dome-benefit-detail + .pool-dome-benefit-detail { border-top: 1px solid var(--pool-dome-border); border-left: 0; }
.fabrico-overview .pool-dome-benefit-detail p + p { margin-top: .75rem; }
.fabrico-overview .fabrico-conservation-link { grid-column: 1 / -1; margin: 0; padding: .75rem 1.25rem; color: var(--pool-dome-navy); text-align: center; }
.fabrico-overview .fabrico-conservation-link:hover { color: var(--pool-dome-copper); }
@media (max-width: 767px) {
    .fabrico-section.fabrico-overview { grid-template-columns: minmax(0, 1fr); }
    .fabrico-overview-intro, .fabrico-overview .pool-dome-benefit-detail { padding: 1.25rem; }
}
.fabrico-product-details { overflow: clip; }
.fabrico-product-details > .fabrico-detail-heading { margin: -1.5rem -1.5rem 1.25rem; padding: 1rem 1.5rem; background: var(--pool-dome-navy); color: white; font-size: clamp(1.5rem, 2.3vw, 2rem); font-weight: 700; }
.fabrico-content.fabrico-product-details .content { max-width: none; }
.fabrico-product-details :is(h2, h3) { text-align: center; }
.fabrico-construction h3 { margin: 0 0 .75rem; text-align: center; font-size: 1.25rem; font-weight: 700; }
.fabrico-construction p { margin: 0 0 .75rem; }
.fabrico-construction p:last-child, .fabrico-construction ul:last-child { margin-bottom: 0; }
.fabrico-construction-intro { padding: .5rem 0 1.25rem; }
.fabrico-construction-intro .fabrico-columns { align-items: start; }
.fabrico-construction ul { margin: 0; padding-left: 1.25rem; }
.fabrico-construction li + li { margin-top: .5rem; }
.fabrico-construction .fabrico-manual-links { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; list-style: none; padding: 0; }
.fabrico-construction .fabrico-manual-links li { margin: 0; }
.fabrico-manual-links a { display: inline-flex; align-items: center; min-height: 48px; padding: .5rem .75rem; border: 1px solid var(--pool-dome-copper); border-radius: 8px; background: var(--pool-dome-copper); color: white; font-weight: 700; text-align: center; text-decoration: none; }
.fabrico-manual-links a:hover { background: var(--pool-dome-navy); color: white; }
.fabrico-construction-topics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2rem; }
.fabrico-construction-topics > section { min-width: 0; padding: 1.25rem 0; border-top: 1px solid var(--pool-dome-border); }
.fabrico-construction-topics > section:last-child:nth-child(odd) { grid-column: 1 / -1; }
.fabrico-brand-fit { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); align-items: center; gap: 1.5rem; padding-bottom: 1.25rem; }
.fabrico-brand-fit > div { min-width: 0; }
.fabrico-brand-fit > div > p { text-align: center; }
.fabrico-construction .fabrico-brand-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1rem; list-style: none; padding: 0; text-align: center; }
.fabrico-brand-list li { margin: 0; padding: .5rem 0; border-bottom: 1px solid var(--pool-dome-border); font-weight: 600; overflow-wrap: anywhere; }
.fabrico-construction .fabrico-brand-list li + li { margin-top: 0; }
.fabrico-fit-summary { padding: 1.25rem; border-left: 4px solid var(--pool-dome-copper); background: var(--pool-dome-navy); color: white; text-align: center; }
.fabrico-fit-summary h3 { color: white; }
.fabrico-fit-summary a:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-bracket-history { padding-block: 1.25rem; border-top: 4px solid var(--pool-dome-copper); }
.fabrico-bracket-history > h3 { margin-bottom: 1.25rem; font-size: clamp(1.35rem, 2vw, 1.6rem); }
.fabrico-bracket-story { display: grid; grid-template-columns: minmax(0, 20rem) minmax(0, 1fr); align-items: center; gap: 1.5rem; }
.fabrico-bracket-story > div { min-width: 0; }
.fabrico-bracket-history figure { max-width: 20rem; margin: 0 auto; text-align: center; }
.fabrico-bracket-history figure > a { display: block; }
.fabrico-bracket-history img { display: block; width: 100%; height: auto; }
.fabrico-bracket-history figcaption { padding: .75rem; background: var(--pool-dome-navy); color: white; font-size: .925rem; }
.fabrico-storage-guidance { padding: 1.25rem; border-left: 4px solid var(--pool-dome-copper); background: var(--pool-dome-navy); color: white; }
.fabrico-storage-guidance h3 { color: white; }
.fabrico-detail-resources { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--pool-dome-border); text-align: center; }
.fabrico-detail-resources .fabrico-conservation-link { padding: 0; border: 0; }
.fabrico-detail-resources p { margin: 0; }
.fabrico-conservation-link { display: flex; min-height: 44px; align-items: center; justify-content: center; gap: .75rem; padding: .75rem 0 0; border-top: 1px solid var(--pool-dome-border); font-weight: 700; text-decoration: none; }
.fabrico-conservation-link:hover span, .fabrico-conservation-link:focus-visible span { text-decoration: underline; text-underline-offset: .2em; }
.fabrico-conservation-link img { flex: 0 0 32px; width: 32px; height: 32px; }
.fabrico-section.fabrico-material-section { padding: 0; overflow: hidden; }
.fabrico-section-heading.fabrico-section-heading--navy { margin: 0; padding: 1.25rem 1.5rem; background: var(--pool-dome-navy); color: white; }
.fabrico-section-heading--navy h2 { color: white; }
.fabrico-material-section .fabrico-text-link { display: inline-flex; align-items: center; justify-content: center; align-self: center; gap: .5rem; width: fit-content; max-width: 100%; min-height: 44px; margin-top: auto; color: var(--pool-dome-navy); font-weight: 700; text-align: center; text-decoration: none; }
.fabrico-material-section .fabrico-text-link > span:first-child { text-decoration: none; }
.fabrico-material-section .fabrico-text-link:is(:hover, :focus-visible) { color: var(--pool-dome-copper); }
.fabrico-materials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fabrico-materials article { display: flex; min-width: 0; flex-direction: column; }
.fabrico-materials article + article { border-left: 1px solid var(--pool-dome-border); }
.fabrico-materials article > img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; object-position: center 45%; }
.fabrico-materials article > div { display: flex; flex: 1; flex-direction: column; padding: 1.25rem 1.5rem; text-align: center; }
.fabrico-materials h3 { font-size: 1.3rem; }
.fabrico-kit-comparison { border-top: 1px solid var(--pool-dome-border); background: white; }
.fabrico-kit-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--pool-dome-border); }
.fabrico-kit-options > article { display: flex; min-width: 0; flex-direction: column; padding: 1.25rem 1.5rem; text-align: center; }
.fabrico-kit-options > article:first-child { background: var(--pool-dome-navy); color: white; }
.fabrico-kit-options > article:first-child :is(h3, a) { color: white; }
.fabrico-kit-options h3 { margin: 0 0 .75rem; font-size: 1.4rem; font-weight: 700; text-align: center; }
.fabrico-kit-options p { margin: 0 0 .75rem; }
.fabrico-kit-options > article:first-child a:is(:hover, :focus-visible) { color: var(--pool-dome-warm); }
.fabrico-kit-options > article:first-child a:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-planning-section { border-top: 4px solid var(--pool-dome-copper); background: var(--pool-dome-navy); color: white; }
.fabrico-planning-section :is(h2, h3, a) { color: white; }
.fabrico-planning-section a:is(:hover, :focus-visible) { color: var(--pool-dome-warm); }
.fabrico-planning-section .fabrico-planning-measurements { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.fabrico-planning-measurements > div { padding: 0 1.25rem; text-align: center; }
.fabrico-planning-measurements > div + div { border-left: 1px solid var(--pool-dome-border); }
.fabrico-planning-measurements h3 { margin: 0 0 .5rem; font-weight: 700; }
.fabrico-planning-section .fabrico-columns p { margin-bottom: 0; }
.fabrico-planning-help { margin: 1.25rem 0 0; padding: 1rem 1.25rem; border-top: 1px solid var(--pool-dome-border); text-align: center; }
.fabrico-planning-section .fabrico-links { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--pool-dome-border); }
.fabrico-planning-section .fabrico-links a { display: flex; min-width: 0; min-height: 56px; justify-content: center; padding: .75rem; font-weight: 700; text-align: center; text-wrap: balance; text-decoration: none; }
.fabrico-planning-section .fabrico-links a + a { border-left: 1px solid var(--pool-dome-border); }
.fabrico-questions-section { border-top: 4px solid var(--pool-dome-navy); }
.fabrico-section.fabrico-closing { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; gap: 1.5rem; padding: 1.5rem; background: var(--pool-dome-navy); color: white; text-align: center; }
.fabrico-closing h2 { margin: 0 0 .75rem; color: white; font-size: clamp(1.5rem, 2.2vw, 2rem); }
.fabrico-closing p { margin: 0; }
.fabrico-closing p a { color: white; font-weight: 600; text-underline-offset: .18em; }
.fabrico-closing p a:is(:hover, :focus-visible) { color: var(--pool-dome-warm); }
.fabrico-closing p a:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-closing .pool-dome-product-cta { max-width: 24rem; margin: 0 auto; }
.fabrico-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.fabrico-columns h3 { font-size: 1.25rem; }
.fabrico-links { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.fabrico-links a { display: inline-flex; align-items: center; min-height: 44px; }
.fabrico-note { padding: 1rem 1.25rem; border-left: 4px solid var(--pool-dome-copper); background: var(--pool-dome-warm); }
.fabrico-page :where(.pool-dome-main) a:focus-visible, .fabrico-page :where(.pool-dome-main) button:focus-visible, .fabrico-page :where(.pool-dome-main) input:focus-visible, .fabrico-page :where(.pool-dome-main) select:focus-visible { outline: 3px solid var(--pool-dome-navy); outline-offset: 3px; }
.fabrico-hero-copy a:focus-visible, .fabrico-dealer-content a:focus-visible, .fabrico-closing a:focus-visible, .fabrico-planning-section a:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-hero-copy .pool-dome-product-cta:hover, .fabrico-closing .pool-dome-product-cta:hover { border-color: white; }
/* The shared header supplies its measured scroll-padding; add only a small gap. */
.fabrico-page :where(.pool-dome-main) [id] { scroll-margin-top: 1rem; }
.fabrico-content { line-height: 1.65; }
.fabrico-content .justify { text-align: left; }
.fabrico-content img { max-width: 100%; height: auto; }
.fabrico-content > table:first-of-type { margin: 1rem auto; }
.fabrico-content hr { max-width: 100%; }
.fabrico-form { max-width: 780px; margin-inline: auto; width: 100%; }
.fabrico-form label { display: block; font-weight: 700; margin-bottom: .4rem; }
.fabrico-form select { min-height: 48px; width: 100%; max-width: 100%; padding: .6rem; border: 1px solid var(--pool-dome-border); border-radius: 4px; background: white; color: var(--pool-dome-text); }
.fabrico-form .pool-dome-product-cta { margin-top: 1rem; border: 0; width: 100%; }
.fabrico-progress { display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: 0; list-style: none; }
.fabrico-progress a { display: inline-flex; min-height: 44px; align-items: center; }
.fabrico-error { color: var(--pool-dome-measuring-red); font-weight: 700; }
.fabrico-review { min-width: 0; }
.fabrico-review .content { width: 100%; max-width: 100%; margin: 0 auto; }
.fabrico-review table { max-width: 100%; margin-inline: auto; }
.fabrico-review img { max-width: 100%; height: auto; }
.fabrico-review input[type="text"], .fabrico-review input[type="email"] { max-width: 100%; }
.fabrico-page :where(.pool-dome-main) details { border-bottom: 1px solid var(--pool-dome-border); padding: .75rem 0; }
.fabrico-page :where(.pool-dome-main) summary { cursor: pointer; font-weight: 700; min-height: 44px; align-content: center; }
.fabrico-page :where(.pool-dome-main) details p { margin: .5rem 0; }
.fabrico-questions-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.fabrico-questions-list { min-width: 0; border: 0; border-radius: 0; }
.fabrico-questions-list details { padding: 0; border-bottom: 0; border-top: 1px solid var(--pool-dome-border); }
.fabrico-questions-list details:last-of-type { border-bottom: 1px solid var(--pool-dome-border); }
.fabrico-questions-list summary { display: grid; grid-template-columns: 1.5rem minmax(0, 1fr) 1.5rem; align-items: center; gap: .5rem; min-height: 72px; padding: .75rem; list-style: none; text-align: center; }
.fabrico-questions-list summary::-webkit-details-marker { display: none; }
.fabrico-questions-list summary > span:first-child { grid-column: 2; min-width: 0; text-wrap: balance; }
.fabrico-question-toggle { grid-column: 3; font-size: 1.5rem; line-height: 1; }
.fabrico-question-toggle::before { content: "+"; }
.fabrico-questions-list details[open] .fabrico-question-toggle::before { content: "−"; }
.fabrico-questions-list summary:focus-visible { outline: 3px solid var(--pool-dome-navy); outline-offset: -3px; }
.fabrico-guide-content .fabrico-questions-list summary:hover { background: var(--pool-dome-navy); color: white; }
.fabrico-guide-content .fabrico-questions-list summary:hover:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-questions-list details > p { margin: 0; padding: 0 1rem 1rem; }
.fabrico-questions-help { min-width: 0; padding: 1.25rem; border-left: 4px solid var(--pool-dome-copper); background: var(--pool-dome-mist); text-align: center; }
.fabrico-questions-help h3 { margin: 0 0 .75rem; font-size: 1.25rem; font-weight: 700; text-align: center; }
.fabrico-questions-help p { margin: 0 0 .75rem; }
.fabrico-questions-help ul { margin: 0 0 1rem; padding: 0; list-style: none; }
.fabrico-questions-help li + li { margin-top: .5rem; }
.fabrico-questions-help .pool-dome-secondary-cta { width: 100%; text-align: center; }
.fabrico-guide-header { padding: 1.5rem; border-radius: 8px; border-bottom: 4px solid var(--pool-dome-copper); background: var(--pool-dome-navy); color: white; text-align: center; }
.fabrico-guide-header h1 { margin: 0 auto .75rem; max-width: 56rem; color: white; font-size: clamp(1.85rem, 3vw, 2.65rem); font-weight: 700; }
.fabrico-guide-header > p { max-width: 56rem; margin: 0 auto; }
.fabrico-guide-hero { border-bottom: 4px solid var(--pool-dome-copper); }
.fabrico-guide-credit { margin: .75rem 0 0; font-size: .95rem; }
.fabrico-guide-credit a { color: white; text-underline-offset: .2em; }
.fabrico-guide-credit a:hover { color: var(--pool-dome-warm); }
.fabrico-guide-header .pool-dome-secondary-cta { border-color: var(--pool-dome-teal); }
.fabrico-guide-header a:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-guide-layout { min-width: 0; border: 1px solid var(--pool-dome-border); border-radius: 8px; overflow: clip; }
/* Topic links belong above the article; the shared right drawer handles product navigation. */
.fabrico-guide-layout .fabrico-guide-nav { position: static; display: flex; flex-wrap: wrap; border: 0; border-radius: 0; background: var(--pool-dome-navy); box-shadow: none; }
.fabrico-guide-layout .fabrico-guide-nav a { flex: 1 1 12rem; min-width: 0; min-height: 56px; justify-content: center; gap: .5rem; padding: .75rem 1rem; border: 1px solid var(--pool-dome-border); font-size: 1rem; text-align: center; text-wrap: balance; }
.fabrico-guide-nav a, .fabrico-guide-nav a:visited, .fabrico-guide-nav .bi { color: white; }
.fabrico-guide-nav a:hover { background: var(--pool-dome-warm); color: var(--pool-dome-navy); }
.fabrico-guide-nav a:hover .bi { color: var(--pool-dome-navy); }
.fabrico-guide-nav a:focus-visible { outline: 3px solid var(--pool-dome-warm); outline-offset: -4px; }
.fabrico-guide-nav a:hover:focus-visible { outline-color: var(--pool-dome-copper); }
.fabrico-guide-content { border: 0; border-radius: 0; background: white; color: var(--pool-dome-text); font-size: 1.125rem; }
.fabrico-guide-content > section { --pool-dome-specification-section-padding: 1.25rem; }
.fabrico-guide-content :is(p, li) { line-height: 1.65; }
.fabrico-guide-content :is(p, li) a { color: var(--pool-dome-blue); font-weight: 600; text-underline-offset: .18em; }
.fabrico-guide-content :is(p, li) a:hover { color: var(--pool-dome-copper); }
/* These padded sections already provide space above their headings. */
.fabrico-guide-content > section[id] { scroll-margin-top: 0; }
.fabrico-guide-content h2 { margin: 0 0 1.25rem; font-size: clamp(1.5rem, 2.3vw, 2rem); font-weight: 700; text-align: center; }
.fabrico-guide-content > section > h2 { margin: -1.25rem -1.25rem 1.25rem; padding: 1rem 1.25rem; border-bottom: 3px solid var(--pool-dome-copper); background: var(--pool-dome-navy); color: white; }
.fabrico-guide-content h3 { margin: 0 0 .75rem; font-size: 1.2rem; font-weight: 700; text-align: center; }
.fabrico-guide-content > section > :is(p, ul, ol) { max-width: 85ch; margin-inline: auto; }
.fabrico-guide-content.fabrico-compact-guide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fabrico-compact-guide > section + section { border-top: 0; border-left: 1px solid var(--pool-dome-border); }
.fabrico-compact-guide > section > h2 { display: flex; align-items: center; justify-content: center; min-height: 6.25rem; font-size: 1.5rem; }
.fabrico-guide-callout { margin-block: 1rem; padding: 1rem 1.25rem; border-left: 4px solid var(--pool-dome-copper); background: var(--pool-dome-navy); color: white; }
.fabrico-guide-callout p { margin: 0; }
.fabrico-guide-callout p + p { margin-top: .75rem; }
.fabrico-guide-content .fabrico-guide-callout a { color: white; }
.fabrico-guide-content .fabrico-guide-callout a:hover { color: var(--pool-dome-warm); }
.fabrico-guide-callout a:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-kit-contents-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 1rem; }
.fabrico-kit-contents-table :is(th, td) { padding: .65rem .75rem; border: 1px solid var(--pool-dome-border); vertical-align: middle; }
.fabrico-kit-contents-table thead th { background: var(--pool-dome-navy); color: white; text-align: center; }
.fabrico-kit-contents-table th:first-child { width: 60%; text-align: left; }
.fabrico-kit-contents-table tbody th { font-weight: 400; }
.fabrico-kit-contents-table td { text-align: center; font-weight: 600; }
.fabrico-kit-contents-table a { color: var(--pool-dome-blue); text-underline-offset: .18em; }
.fabrico-kit-contents-table a:hover { color: var(--pool-dome-copper); }
.fabrico-guide-actions { display: flex; flex-wrap: wrap; align-items: stretch; justify-content: center; gap: .75rem; margin-block: 1rem; }
.fabrico-guide-actions:last-child { margin-bottom: 0; }
.fabrico-page :is(.fabrico-guide-actions, .fabrico-fit-summary) .pool-dome-product-cta { grid-template-columns: minmax(0, 1fr) 1.25rem; gap: .5rem; width: fit-content; max-width: 100%; min-height: 48px; padding: .65rem 1rem; font-size: 1rem; }
.fabrico-fit-summary .pool-dome-product-cta { margin: 1rem auto 0; }
.fabrico-page :is(.fabrico-guide-actions, .fabrico-fit-summary) .pool-dome-product-cta-label { grid-area: 1 / 1; }
.fabrico-page :is(.fabrico-guide-actions, .fabrico-fit-summary) .pool-dome-product-cta > .bi { grid-area: 1 / 2; width: 1.25rem; height: 1.25rem; font-size: 1.25rem; }
.fabrico-page .fabrico-guide-review-notes { padding: 0; border: 1px solid var(--pool-dome-border); border-radius: 8px; background: var(--pool-dome-warm); }
.fabrico-guide-review-notes summary { padding: .75rem 1.25rem; }
.fabrico-guide-review-notes summary:hover { background: white; }
.fabrico-guide-review-notes summary:focus-visible { outline: 3px solid var(--pool-dome-navy); outline-offset: -4px; }
.fabrico-guide-review-notes ul { margin: 0; padding: 0 1.25rem 1rem 2.5rem; }
.fabrico-guide-review-notes li + li { margin-top: .5rem; }
.fabrico-guide-content .fabrico-columns { gap: 0; margin-block: 1.25rem; }
.fabrico-guide-content .fabrico-columns > div { padding-inline: 1.25rem; }
.fabrico-guide-content .fabrico-columns > div + div { border-left: 1px solid var(--pool-dome-border); }
.fabrico-guide-content .fabrico-columns:last-child { margin-bottom: 0; }
.fabrico-guide-content p:last-child { margin-bottom: 0; }
.fabrico-guide-content li + li { margin-top: .5rem; }
.fabrico-material-guide > section { --pool-dome-specification-section-padding: 1.25rem; }
.fabrico-material-guide h2 { margin-bottom: 1rem; }
.fabrico-material-guide p { margin-bottom: .75rem; line-height: 1.65; }
.fabrico-material-guide .fabrico-columns { margin-block: 0; }
.fabrico-material-guide .fabrico-guide-fact { max-width: none; margin: 1rem 0 0; padding: .75rem 1.25rem; }
.fabrico-material-guide .fabrico-guide-fact a { color: white; }
.fabrico-material-guide .fabrico-guide-fact a:hover { color: var(--pool-dome-warm); }
.fabrico-material-guide .fabrico-guide-fact a:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-feature-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(16rem, 1fr); align-items: center; gap: 1.5rem; }
.fabrico-feature-layout > div { min-width: 0; }
.fabrico-color-options { min-width: 0; padding: 1rem 1.25rem; border-left: 4px solid var(--pool-dome-copper); background: var(--pool-dome-navy); color: white; text-align: center; }
.fabrico-material-guide .fabrico-color-options h3 { color: white; }
.fabrico-replacement-guide { background: white; }
.fabrico-replacement-guide > section { --pool-dome-specification-section-padding: 1.25rem; }
.fabrico-replacement-guide h2 { margin-bottom: 1rem; }
.fabrico-replacement-guide p { margin-bottom: .75rem; line-height: 1.65; }
.fabrico-replacement-guide > section > .fabrico-replacement-intro { max-width: none; text-align: center; }
.fabrico-replacement-options > div { display: flex; flex-direction: column; align-items: center; text-align: center; }
.fabrico-replacement-options p { flex: 1; }
.fabrico-replacement-guide .pool-dome-product-cta { grid-template-columns: minmax(0, 1fr) 1.25rem; gap: .5rem; width: fit-content; max-width: 100%; min-height: 48px; margin: .25rem 0 0; padding: .65rem 1rem; font-size: 1rem; }
.fabrico-replacement-guide .pool-dome-product-cta-label { grid-area: 1 / 1; }
.fabrico-replacement-guide .pool-dome-product-cta > .bi { grid-area: 1 / 2; width: 1.25rem; height: 1.25rem; font-size: 1.25rem; }
.fabrico-replacement-guide > section > .fabrico-replacement-seasonal { max-width: none; margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--pool-dome-border); text-align: center; }
.fabrico-replacement-guide > #frame-check { border-top: 4px solid var(--pool-dome-copper); background: var(--pool-dome-navy); color: white; }
.fabrico-replacement-guide #frame-check :is(h2, h3, a) { color: white; }
.fabrico-replacement-guide #frame-check p a:hover { color: var(--pool-dome-warm); }
.fabrico-replacement-guide #frame-check a:focus-visible { outline-color: var(--pool-dome-warm); }
.fabrico-replacement-guide #frame-check .pool-dome-product-cta:hover { border-color: white; }
.fabrico-replacement-actions { display: flex; flex-wrap: wrap; align-items: stretch; justify-content: center; gap: .75rem; margin-top: 1rem; }
.fabrico-guide-media-row, .fabrico-guide-diagram-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 1.25rem; }
.fabrico-installation-example { background: var(--pool-dome-mist); }
.fabrico-installation-copy { min-width: 0; text-align: center; }
.fabrico-installation-example .fabrico-guide-diagram { max-width: 36rem; }
.fabrico-installation-detail { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem; margin: 1rem 0; }
.fabrico-installation-detail .fabrico-guide-diagram { flex: 0 1 160px; margin: 0; }
.fabrico-installation-detail p { flex: 1 1 14rem; margin: 0; }
.fabrico-guide-diagram { margin: 0 auto 1rem; max-width: 100%; text-align: center; }
.fabrico-guide-diagram a { display: inline-block; max-width: 100%; }
.fabrico-guide-diagram img { display: block; max-width: 100%; height: auto; margin: 0 auto; }
.fabrico-guide-diagram figcaption { margin: .5rem auto 0; max-width: 34rem; font-size: .925rem; }
.fabrico-guide-fact { padding: 1rem; background: var(--pool-dome-navy); color: white; text-align: center; }
.fabrico-guide-downloads { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin: 1rem 0; }
.fabrico-guide-downloads a { display: flex; max-width: 100%; gap: .5rem; align-items: center; justify-content: center; min-height: 48px; padding: .65rem 1rem; border: 1px solid var(--pool-dome-copper); border-radius: 8px; background: var(--pool-dome-copper); color: white; font-size: 1rem; text-align: center; font-weight: 700; text-decoration: none; }
.fabrico-guide-downloads a:hover { background: var(--pool-dome-navy); }
.fabrico-guide-downloads a > span[aria-hidden="true"] { flex: 0 0 auto; font-size: 1.5rem; line-height: 1; }
.fabrico-guide-downloads a:focus-visible { outline: 3px solid var(--pool-dome-copper); outline-offset: 3px; }
.fabrico-guide-content .fabrico-manual-copy { max-width: none; text-align: center; }
.fabrico-manual-directory { margin-top: 1.25rem; border-top: 1px solid var(--pool-dome-border); }
.fabrico-manual-row { display: grid; grid-template-columns: minmax(12rem, 1fr) minmax(0, 2fr); align-items: center; gap: 1rem; padding-block: .75rem; border-bottom: 1px solid var(--pool-dome-border); }
.fabrico-manual-row h3 { margin: 0; }
.fabrico-manual-row .fabrico-guide-downloads { margin: 0; }
.fabrico-manual-row .fabrico-guide-downloads a + a { background: var(--pool-dome-blue); color: white; border-color: var(--pool-dome-blue); }
.fabrico-manual-row .fabrico-guide-downloads a + a:hover { background: var(--pool-dome-navy); color: white; }
.fabrico-manual-row .fabrico-manual-note { margin: .75rem 0 0; font-size: 1rem; text-align: center; }
.fabrico-guide-resources { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; }
.fabrico-guide-resources a { display: grid; align-items: center; padding: .75rem; min-height: 56px; color: white; text-align: center; font-weight: 700; text-decoration: none; border: 1px solid var(--pool-dome-border); }
.fabrico-guide-resources a:hover { background: var(--pool-dome-warm); color: var(--pool-dome-navy); }
.fabrico-guide-resources a:focus-visible { outline: 3px solid var(--pool-dome-warm); outline-offset: -4px; }
.fabrico-guide-resources a:hover:focus-visible { outline-color: var(--pool-dome-copper); }
.fabrico-section.fabrico-guide-help { grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem); gap: 0; padding: 0; border-top: 4px solid var(--pool-dome-copper); overflow: clip; }
.fabrico-guide-help > div { min-width: 0; padding: 1.25rem 1.5rem; }
.fabrico-guide-help h2 { font-size: 1.5rem; font-weight: 700; }
.fabrico-guide-help p { max-width: 65ch; margin: 0 auto; }
.fabrico-guide-help-phone { display: flex; min-height: 44px; align-items: center; justify-content: center; margin-top: .25rem; color: white; font-size: 1.125rem; font-weight: 700; text-decoration: none; }
.fabrico-guide-help-phone:is(:hover, :focus-visible) { color: var(--pool-dome-warm); }
.fabrico-screen-swatches { display: flex; justify-content: center; gap: 1.5rem; flex-wrap: wrap; }
.fabrico-screen-swatches figure { margin: 0; text-align: center; }
.fabrico-screen-swatches img { max-width: 100%; height: auto; }
.fabrico-material-photo { max-width: 36rem; margin: 0 auto 1.25rem; text-align: center; }
.fabrico-material-photo img { display: block; width: 100%; height: auto; }
.fabrico-material-photo figcaption { margin-top: .5rem; font-size: .925rem; }
.fabrico-gallery-index { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.fabrico-gallery-index .pool-dome-gallery-index-card { background: white; }
.fabrico-gallery-index .pool-dome-gallery-index-card:nth-child(even) { background: var(--pool-dome-navy); color: white; }
.fabrico-gallery-index .pool-dome-gallery-index-card:nth-child(even) span { color: white; }
.fabrico-gallery-index .pool-dome-gallery-index-card img { transform: none; aspect-ratio: 3 / 2; height: auto; }
.fabrico-gallery-index .pool-dome-gallery-index-card:hover { background: var(--pool-dome-copper); color: white; }
.fabrico-gallery-index .pool-dome-gallery-index-card:hover span { color: white; }
.fabrico-album-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 1.5rem 0; }
.fabrico-album-grid figure { margin: 0; background: white; }
.fabrico-album-grid img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; }
.fabrico-album-grid a:hover img { transform: none; }
.fabrico-album-grid figure > a:hover { outline: 3px solid var(--pool-dome-copper); outline-offset: -3px; }
.fabrico-album-grid figcaption { padding: .75rem; text-align: center; }
.fabrico-album-grid .fabrico-archive-photo > a { display: grid; min-height: 110px; place-items: center; }
.fabrico-album-grid .fabrico-archive-photo img { width: auto; max-width: 100%; height: auto; aspect-ratio: auto; }
.fabrico-gallery-notes > p { max-width: 65rem; margin-inline: auto; }
.fabrico-section.fabrico-featured-installation { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: center; gap: 1.5rem; }
.fabrico-featured-photo { min-width: 0; margin: 0; text-align: center; }
.fabrico-featured-photo a { display: block; }
.fabrico-featured-photo img { display: block; width: 100%; height: auto; }
.fabrico-featured-photo figcaption { margin-top: .5rem; font-size: .925rem; }
.fabrico-gallery-notes { min-width: 0; }
.fabrico-gallery-notes h2 { margin: 0 0 1rem; font-size: 1.5rem; font-weight: 700; text-align: center; }
.fabrico-gallery-notes p:last-child { margin-bottom: 0; }
.fabrico-gallery-caution { border-left: 4px solid var(--pool-dome-copper); padding: .75rem 1rem; background: var(--pool-dome-navy); color: white; }
@media (max-width: 999px) {
    .fabrico-gallery-index, .fabrico-album-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 899px) {
    .fabrico-bracket-story { grid-template-columns: minmax(0, 1fr); }
    .fabrico-brand-fit, .fabrico-guide-content.fabrico-compact-guide, .fabrico-section.fabrico-featured-installation { grid-template-columns: minmax(0, 1fr); }
    .fabrico-compact-guide > section + section { border-top: 1px solid var(--pool-dome-border); border-left: 0; }
    .fabrico-compact-guide > section > h2 { min-height: 0; }
    .fabrico-guide-media-row { grid-template-columns: minmax(0, 1fr); }
    .fabrico-material-guide .fabrico-columns, .fabrico-replacement-guide .fabrico-columns, .fabrico-feature-layout { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .fabrico-material-guide .fabrico-columns > div, .fabrico-replacement-guide .fabrico-columns > div { padding-inline: 0; }
    .fabrico-material-guide .fabrico-columns > div + div, .fabrico-replacement-guide .fabrico-columns > div + div { padding-top: 1rem; border-left: 0; border-top: 1px solid var(--pool-dome-border); }
}
@media (max-width: 639px) {
    .fabrico-gallery-index, .fabrico-album-grid { grid-template-columns: minmax(0, 1fr); }
    .fabrico-manual-row, .fabrico-detail-resources { grid-template-columns: minmax(0, 1fr); }
    .fabrico-construction .fabrico-brand-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fabrico-kit-contents-table :is(th, td) { padding: .5rem .35rem; font-size: .875rem; overflow-wrap: anywhere; }
    .fabrico-kit-contents-table th:first-child { width: 46%; }
    .fabrico-product-details > .fabrico-detail-heading { margin: -1.25rem -1.25rem 1.25rem; padding: 1rem 1.25rem; }
    .fabrico-guide-resources { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fabrico-guide-content .fabrico-columns { gap: 1rem; }
    .fabrico-guide-content .fabrico-columns > div { padding: 0; }
    .fabrico-guide-content .fabrico-columns > div + div { padding-top: 1rem; border-left: 0; border-top: 1px solid var(--pool-dome-border); }
}
@media (max-width: 799px) {
    .fabrico-questions-layout { grid-template-columns: minmax(0, 1fr); }
    .fabrico-section.fabrico-closing { grid-template-columns: minmax(0, 1fr); }
    .fabrico-guide-help .fabrico-guide-help-actions { padding-top: 0; }
    .fabrico-planning-section .fabrico-planning-measurements { grid-template-columns: minmax(0, 1fr); }
    .fabrico-planning-measurements > div { padding: .75rem 0; }
    .fabrico-planning-measurements > div + div { border-left: 0; border-top: 1px solid var(--pool-dome-border); }
    .fabrico-planning-help { margin-top: .75rem; padding-inline: 0; }
}
@media (min-width: 640px) and (max-width: 1199px) {
    .fabrico-applications { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fabrico-applications--related > :last-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
    .fabrico-applications--related > :last-child > img { border-bottom: 0; }
}
@media (max-width: 1099px) {
    .fabrico-hero { grid-template-columns: minmax(0, 1fr); }
    .fabrico-hero-copy { padding: 1.75rem; }
    .fabrico-planning-section .fabrico-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fabrico-planning-section .fabrico-links a { border-bottom: 1px solid var(--pool-dome-border); }
    .fabrico-planning-section .fabrico-links a:nth-child(odd) { border-left: 0; }
    .fabrico-planning-section .fabrico-links a:last-child { grid-column: 1 / -1; border-bottom: 0; }
}
@media (max-width: 639px) {
    .fabrico-columns, .fabrico-materials, .fabrico-construction-topics, .fabrico-kit-options { grid-template-columns: minmax(0, 1fr); }
    .fabrico-section, .fabrico-hero-copy, .fabrico-kit-options > article { padding: 1.25rem; }
    .fabrico-hero h1 { font-size: 2rem; }
    .fabrico-dealer-strip { grid-template-columns: minmax(0, 1fr); }
    .fabrico-dealer-logo { width: 220px; }
    .fabrico-dealer-content { padding: 1.25rem; }
    .fabrico-dealer-content .fabrico-dealer-intro { font-size: 1.2rem; }
    .fabrico-construction-intro .fabrico-columns { gap: .75rem; }
    .fabrico-planning-section .fabrico-links { grid-template-columns: minmax(0, 1fr); }
    .fabrico-planning-section .fabrico-links a + a { border-left: 0; }
    .fabrico-applications { grid-template-columns: minmax(0, 1fr); }
    .fabrico-applications .pool-dome-product-card { display: grid; grid-template-columns: 38% minmax(0, 1fr); align-items: center; }
    .fabrico-applications .pool-dome-product-card > img { border-bottom: 0; }
    .fabrico-applications .pool-dome-product-body { padding: .875rem; }
    .fabrico-materials article + article { border-left: 0; border-top: 1px solid var(--pool-dome-border); }
    .fabrico-content img[style] { float: none !important; margin-inline: auto !important; display: block; }
}
@media (max-width: 399px) {
    .fabrico-page .pool-dome-hero-actions { grid-template-columns: minmax(0, 1fr); }
}
.fabrico-content .content { width: 100%; max-width: 100%; margin-inline: auto; }
.fabrico-content h1 { text-align: center; margin-bottom: 1.25rem; }
.fabrico-content table { max-width: 100%; }
.fabrico-content .invis { border: 0; }
.fabrico-copy-review { display: block; padding: .5rem; border-left: 4px solid var(--pool-dome-copper); background: var(--pool-dome-warm); color: var(--pool-dome-navy); font-weight: 700; }
.fabrico-gallery-links ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem 1.5rem; list-style: none; padding: 0; }
.fabrico-gallery-links a { display: block; min-height: 44px; }
@media (max-width: 639px) { .fabrico-gallery-links ul { grid-template-columns: minmax(0, 1fr); } }
.fabrico-page :where(.pool-dome-main) button, .fabrico-page :where(.pool-dome-main) a { touch-action: manipulation; }
.fabrico-page .pricing-value { font-variant-numeric: tabular-nums; }
.fabrico-review .pricing-card { max-width: 100%; }
.fabrico-content .fabrico-gallery-links { width: 100%; height: auto; }
.fabrico-applications > *, .fabrico-columns > * { min-width: 0; }
.fabrico-photo-table { width: 100%; border: 0; }
.fabrico-photo-table tbody { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.fabrico-photo-table tr { display: contents; }
.fabrico-photo-table td { display: block; padding: 0; }
.fabrico-gallery img { max-width: 100%; height: auto; border: 0; }
.fabrico-photo-table img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: contain; }
.fabrico-photo-table a { display: block; height: 100%; }
@media (max-width: 767px) { .fabrico-photo-table tbody { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 399px) { .fabrico-photo-table tbody { grid-template-columns: minmax(0, 1fr); } }
/* Keep recovered archival thumbnails at their real resolution. */
.fabrico-photo-table img { width: auto; max-width: 100%; max-height: 280px; margin-inline: auto; }
.fabrico-review input[type="image"] { min-height: 44px; min-width: 88px; padding: .5rem; object-fit: contain; }
