/* Icon grid: applications in five columns, mobile as icon rows. */
.product-features { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; list-style:none; padding:0; margin:24px 0 0; }
.product-features > li { display:block; min-width:0; padding:0; text-align:center; }
.product-features h3 { margin:0; font-size:clamp(18px,1.4vw,20.16px); font-style:italic; font-weight:600; line-height:1.3; hyphens:auto; overflow-wrap:break-word; }
.product-features p { overflow-wrap:anywhere; hyphens:auto; margin:4px 0 0; color:var(--coverit-muted); font-size:15px; font-weight:300; line-height:1.6; }
.product-features__icon { display:block; width:56px; height:56px; margin:0 auto 24px; background:var(--coverit-accent); mask-size:contain; mask-repeat:no-repeat; mask-position:center; }
.product-features__mark { display:block; width:32px; height:2px; margin:0 auto 20px; background:var(--coverit-accent); }
.product-features__link a { display:inline-flex; align-items:center; min-height:44px; color:var(--coverit-accent); }
@media(max-width:1024px) { .product-features { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:767px) {
    .product-features, .product-features--laying { grid-template-columns:minmax(0,1fr); gap:23px; }
    .product-features:not(.product-features--cards) > li { display:flex; align-items:flex-start; gap:16px; text-align:left; }
    .product-features__icon { flex:none; margin:0; }
    .product-features h3 { font-size:18px; }
}

/* Application grid (icon grid of the use categories; not the laying, card or image variants): hairline grid behind the cells,
   no outer frame. Every cell draws only its own left (::before) and top (::after) edge, so an incomplete last row never gets lines
   into empty slots. The cells on the outer edge fade their line to transparent at the grid edge (--edge-t/-b/-l/-r); which cells
   those are follows from the column count per breakpoint: first column :nth-child(Nn+1), last column :nth-child(Nn) or the last
   child, first row :nth-child(-n+N), bottom edge :nth-last-child(-n+N) (the last N cells have no cell below). Titles break only at
   authored soft hyphens or hyphens and balance their lines; the column count per width keeps the longest unbroken word inside a cell. */
.product-features:not(.product-features--laying, .product-features--cards, .product-features--images) { --grid-line: var(--coverit-border); --grid-fade: 50%; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0; margin-top:8px; }
.product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li { position:relative; padding:28px 12px 32px; }
.product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li::before,
.product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li::after { content:""; position:absolute; pointer-events:none; }
.product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li::before { inset:0 auto 0 0; width:1px; background:linear-gradient(to bottom, var(--edge-t, var(--grid-line)), var(--grid-line) var(--grid-fade), var(--grid-line) calc(100% - var(--grid-fade)), var(--edge-b, var(--grid-line))); }
.product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li::after { inset:0 0 auto 0; height:1px; background:linear-gradient(to right, var(--edge-l, var(--grid-line)), var(--grid-line) var(--grid-fade), var(--grid-line) calc(100% - var(--grid-fade)), var(--edge-r, var(--grid-line))); }
.product-features:not(.product-features--laying, .product-features--cards, .product-features--images) h3 { hyphens:manual; text-wrap:balance; }
@media(min-width:1281px) {
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(5n+1) { --edge-l:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(5n+1)::before { display:none; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(5n),
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:last-child { --edge-r:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(-n+5) { --edge-t:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(-n+5)::after { display:none; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-last-child(-n+5) { --edge-b:transparent; }
}
@media(min-width:1025px) and (max-width:1280px) {
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(4n+1) { --edge-l:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(4n+1)::before { display:none; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(4n),
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:last-child { --edge-r:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(-n+4) { --edge-t:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(-n+4)::after { display:none; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-last-child(-n+4) { --edge-b:transparent; }
}
@media(min-width:768px) and (max-width:1024px) {
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(3n+1) { --edge-l:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(3n+1)::before { display:none; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(3n),
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:last-child { --edge-r:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(-n+3) { --edge-t:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-child(-n+3)::after { display:none; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:nth-last-child(-n+3) { --edge-b:transparent; }
}
@media(max-width:767px) {
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) { --grid-fade: 20%; grid-template-columns:minmax(0,1fr); margin-top:0; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li { padding:20px 0; --edge-l:transparent; --edge-r:transparent; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li::before,
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li:first-child::after { display:none; }
}

/* Text below a section. */
.product-section__note { margin-top:32px; color:var(--coverit-muted); font-size:15px; line-height:1.75; }
.product-section__note > :last-child { margin-bottom:0; }
.product-section__note:empty { display:none; }
.product-section__image-notice { margin:12px 0 0; color:var(--coverit-muted); font-size:12px; line-height:1.5; text-align:right; max-inline-size:none; }
.product-card-image:has(> .product-card-image__notice) { position:relative; }
.product-card-image__notice { position:absolute; right:8px; bottom:8px; max-width:calc(100% - 16px); padding:4px 8px; background:color-mix(in srgb, var(--coverit-background) 85%, transparent); color:var(--coverit-muted); font-size:12px; line-height:1.4; text-align:right; }
.product-section__note a:not(.coverit-button) { color:var(--coverit-accent); display:inline-flex; align-items:center; min-height:44px; }
.product-section__note ul { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 40px; margin:0 0 32px; padding:0; list-style:none; text-align:center; }
.product-section__note li { padding:0; border:0; font-weight:300; }
.product-section__note li strong { display:block; margin-bottom:4px; color:var(--coverit-text); font-size:clamp(18px,1.4vw,20.16px); font-style:italic; font-weight:600; line-height:1.3; }
@media(max-width:1024px) { .product-section__note ul { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .product-section__note ul { grid-template-columns:1fr; gap:23px; text-align:left; } }

/* Laying section (DESIGN.md "Verlegeabschnitt"): hierarchy section title > group title (Verlegearten, Verlegeschritte) > item
   title > text. Laying methods: one card per method, columns follow the count (1 to 5) so that no card stands alone; the
   icon sits above the title. Steps: one numbered list in reading order. */
.product-features__label { margin:40px 0 0; color:var(--coverit-accent); font-size:clamp(20px,1.7vw,24px); font-style:italic; font-weight:700; line-height:1.3; }
.product-features__label + .product-features--laying { margin-top:16px; }
.product-features--laying + .product-features__label { margin-top:56px; }
.product-features--laying { grid-template-columns:repeat(var(--laying-columns,4),minmax(0,1fr)); gap:24px 40px; margin-top:32px; }
.product-features--count-1 { --laying-columns:1; }
.product-features--count-2 { --laying-columns:2; }
.product-features--count-3 { --laying-columns:3; }
.product-features--count-4 { --laying-columns:4; }
.product-features--count-5 { --laying-columns:5; }
.product-features--laying > li { display:block; padding:24px 0 0; border-top:1px solid var(--coverit-border); text-align:left; }
.product-features--laying .product-features__icon { width:48px; height:48px; margin:0 0 16px; }
.product-features--laying h3 { margin:0; hyphens:manual; }
.product-features--laying p { max-width:42ch; margin-top:8px; hyphens:manual; }
.frame-type-coverit_product_section.frame-layout-1 .product-section__note { max-width:64rem; margin-top:16px; }
.frame-type-coverit_product_section.frame-layout-1 .product-section__note ul { counter-reset:laying-step; grid-template-columns:minmax(0,1fr); gap:0; margin:0 0 24px; text-align:left; }
.frame-type-coverit_product_section.frame-layout-1 .product-section__note li { counter-increment:laying-step; position:relative; display:block; padding:20px 0 20px 68px; border-top:1px solid var(--coverit-border); }
.frame-type-coverit_product_section.frame-layout-1 .product-section__note li::before { content:counter(laying-step, decimal-leading-zero); position:absolute; left:0; top:20px; color:var(--coverit-accent); font-size:clamp(18px,1.4vw,20.16px); font-style:italic; font-weight:600; line-height:1.3; }
.frame-type-coverit_product_section.frame-layout-1 .product-section__note li a:not(.coverit-button) { display:inline; min-height:0; }
@media(max-width:1024px) {
    .product-features--laying { column-gap:32px; }
    .product-features--count-4 { --laying-columns:2; }
    .product-features--count-5 { --laying-columns:6; }
    .product-features--count-5 > li { grid-column:span 2; }
    .product-features--count-5 > li:nth-child(n+4) { grid-column:span 3; }
}
@media(max-width:767px) {
    .product-features--laying { grid-template-columns:minmax(0,1fr); gap:0; margin-top:24px; }
    .product-features__label { margin-top:32px; }
    .product-features--laying + .product-features__label { margin-top:40px; }
    .product-features.product-features--laying > li { display:flex; align-items:flex-start; grid-column:auto; gap:16px; padding:16px 0; }
    .product-features.product-features--laying > li:not(:has(p)) { align-items:center; }
    .product-features--laying .product-features__icon { width:40px; height:40px; margin:0; }
    .frame-type-coverit_product_section.frame-layout-1 .product-section__note li { padding:16px 0 16px 56px; }
    .frame-type-coverit_product_section.frame-layout-1 .product-section__note li::before { top:16px; }
}

/* Cards without images (editorial answers). */
.product-features--cards { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.product-features--cards > li { display:flex; flex-direction:column; padding:0; text-align:left; border:1px solid var(--coverit-border); }
.product-features--cards > li:has(> .product-card-actions:empty) { padding-bottom:20px; }
.product-features--cards h3 { padding:20px 20px 0; color:var(--coverit-text); font-size:clamp(18px,1.4vw,20.16px); font-style:italic; font-weight:600; }
.product-features--cards .product-card-copy > p { margin:8px 0 0; padding:0 20px; color:var(--coverit-muted); font-size:14px; line-height:1.6; }
/* Specifications read like the configurator values: divider, then text colour. */
.product-features--cards .product-card-copy > .product-card-details { margin:16px 20px 0; padding:16px 0 0; border-top:1px solid var(--coverit-border); color:var(--coverit-text); line-height:1.75; }
.product-features--cards img { width:100%; aspect-ratio:4/3; object-fit:contain; margin-bottom:24px; }
@media(max-width:1024px) { .product-features--cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) { .product-features--cards { grid-template-columns:minmax(0,1fr); } .product-features--cards h3 { padding:16px 16px 0; } .product-features--cards .product-card-copy > p { padding:0 16px; } .product-features--cards .product-card-copy > .product-card-details { margin-inline:16px; padding-inline:0; } }

/* System and comparison cards: 280 px image, copy, full-width actions on a shared baseline. */
.product-features--images > li { display:flex; flex-direction:column; min-height:360px; padding:0; overflow:hidden; text-align:left; }
.product-features--images > li { position:relative; }
.product-features--images > li.is-current { border-color:var(--coverit-accent); outline:1px solid var(--coverit-accent); outline-offset:-2px; }
/* Image corner tags: current product (outlined, top left) and the "also as sheet" link as a 45° corner ribbon (top right).
   The ribbon is a square corner box cut to the band by clip-path, so the control itself never extends past the card.
   Font-relative geometry keeps the complete label visible when text is enlarged; the square is capped at the card width.
   At 14px the band is 44px thick (edge projection 62.4px). The rotated label sits in a child. */
.product-features .product-card-current { pointer-events:none; position:absolute; z-index:1; top:16px; left:0; margin:0; padding:10px 16px; border:1px solid var(--coverit-accent); border-left:0; background:var(--coverit-background); color:var(--coverit-accent); font-size:14px; font-weight:600; line-height:1.25; }
.product-card-ribbon { --ribbon-centre:4.7142857em; --ribbon-size:min(100%, calc(2 * var(--ribbon-centre) + 2.2285714em)); position:absolute; z-index:1; top:0; right:0; width:var(--ribbon-size); height:var(--ribbon-size); background:var(--coverit-accent); color:var(--coverit-background); font-size:14px; font-weight:600; line-height:1.25; text-decoration:none; clip-path:polygon(0 0, 4.4571429em 0, 100% calc(100% - 4.4571429em), 100% 100%); }
.product-card-ribbon > span { position:absolute; top:calc((100% - 2.2285714em) / 2); left:calc((100% + 2.2285714em) / 2); display:flex; justify-content:center; align-items:center; width:17.1428571em; height:3.1428571em; padding:0 16px; border:1px solid var(--coverit-accent); text-align:center; transform:translate(-50%,-50%) rotate(45deg); }
.product-card-ribbon[aria-current] { pointer-events:none; }
.product-card-ribbon:is(a):hover, .product-card-ribbon:focus-visible { background:var(--coverit-background); color:var(--coverit-accent); }
.product-card-ribbon:focus-visible { outline:none; }
.product-card-ribbon:focus-visible > span { outline:2px solid var(--coverit-text); outline-offset:-5px; }
.product-features--images > li > .product-card-image { display:block; padding:0; }
.product-features--images img { display:block; width:100%; height:280px; aspect-ratio:auto; margin:0; object-fit:cover; }
.product-features--images > li:not(:has(.product-card-image)) { background:var(--coverit-surface); }
.product-card-image:focus-visible { outline:3px solid var(--coverit-accent); outline-offset:-3px; }
.product-card-actions { display:flex; flex-direction:column; gap:16px; margin-top:auto; padding:20px; }
.product-card-actions:empty { display:none; }
.product-card-actions .coverit-button { width:100%; margin:0; gap:16px; line-height:1.25; }
.product-card-actions .coverit-button--outline { background:transparent; border-color:var(--coverit-border); color:var(--coverit-muted); }
.product-card-actions .coverit-button--outline:hover { background:var(--coverit-muted); border-color:var(--coverit-muted); color:var(--coverit-background); }
.product-card-actions .coverit-button::after,
.product-advice a::after { content:""; flex:none; width:14px; height:14px; background:currentColor; mask:var(--coverit-action-icon) center / contain no-repeat; }
.product-card-actions .coverit-button--outline { --coverit-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.2 4.8 20.4 12l-7.2 7.2-1.7-1.7 4.3-4.3H3.6v-2.4h12.2l-4.3-4.3z'/%3E%3C/svg%3E"); }
.product-card-actions .coverit-button:not(.coverit-button--outline) { --coverit-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4'%3E%3Cpath d='M2 3h3l3 13h11l3-10H6M9 20h.01M18 20h.01'/%3E%3C/svg%3E"); }
/* Thickness and size values as square chips (label/value rows from CardSpecsProcessor). */
.product-card-specs { display:grid; gap:12px; margin:16px 20px 0; padding:16px 0 0; border-top:1px solid var(--coverit-border); }
.product-card-specs > p { margin:0; display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.product-card-specs__label { flex:0 0 100%; color:var(--coverit-muted); font-size:14px; }
.product-card-specs__value { margin:0; padding:4px 10px; border:1px solid var(--coverit-border); color:var(--coverit-text); font-size:14px; font-weight:600; line-height:1.5; max-width:100%; }
@media(max-width:767px) { .product-card-specs { margin-inline:16px; } }
/* Request action instead of a missing shop link: arrow, not the cart. */
.product-card-actions .coverit-button--request { --coverit-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.2 4.8 20.4 12l-7.2 7.2-1.7-1.7 4.3-4.3H3.6v-2.4h12.2l-4.3-4.3z'/%3E%3C/svg%3E"); }
/* Document action of a card without image (link to a document card on the page): download icon instead of the arrow. */
.product-card-actions .coverit-button--outline[href*="#document-"] { --coverit-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11 2h2v12l4-4 1.4 1.4L12 18l-6.4-6.6L7 10l4 4V2ZM3 17h2v3h14v-3h2v5H3v-5Z'/%3E%3C/svg%3E"); }
/* Exactly four image cards (a step sequence) stay in one row instead of leaving the fourth alone. */
@media(min-width:1025px) { .product-features--images:has(> li:nth-child(4):last-child) { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media(max-width:1024px) { .product-features--images { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:767px) {
    /* Narrow cards: smaller corner tags keep the current-product tag clear of the ribbon down to 320 px. */
    .product-features .product-card-current { top:12px; padding:8px 12px; font-size:13px; }
    .product-card-ribbon { --ribbon-centre:4.3076923em; font-size:13px; }
    .product-card-ribbon > span { width:16.9230769em; }
}
@media(max-width:767px) {
    .product-features--images { grid-template-columns:minmax(0,1fr); gap:16px; }
    .product-features--images > li { display:flex; }
    .product-features--images > li:not(:has(.product-card-image)) { min-height:0; }
    .product-features--images > li:has(> .product-card-actions:empty) { padding-bottom:16px; }
    .product-card-actions { padding:16px; gap:12px; }
    .product-card-actions .coverit-button { padding:16px 12px; font-size:14px; }
}

/* Shared row tracks align titles, copy and actions across a row without clipping translations. */
@supports(grid-template-rows:subgrid) {
    @media(min-width:768px) {
        .product-features--images > li { display:grid; grid-row:span 3; grid-template-columns:minmax(0,1fr); grid-template-rows:subgrid; gap:0; }
        .product-features--images .product-card-image { grid-row:1; }
        .product-features--images .product-card-copy { grid-row:2; }
        .product-features--images .product-card-actions { grid-row:3; }
        .product-features--images .product-card-actions { align-self:end; }
        /* A card without image starts its text at the top of the image track; the action stays on the shared baseline. */
        .product-features--images > li:not(:has(.product-card-image)) .product-card-copy { grid-row:1 / 3; align-self:start; }
    }
}
.product-features--images:has(> li:nth-child(2):last-child) { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:767px) { .product-features--images:has(> li:nth-child(2):last-child) { grid-template-columns:minmax(0,1fr); } }

/* A single product uses the same card fields as a full-width product introduction. */
.product-features--images:has(> li:only-child) { grid-template-columns:minmax(0,1fr); }
.product-features--images:has(> li:only-child) > li { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:1fr auto; grid-row:auto; }
.product-features--images:has(> li:only-child) .product-card-image { grid-column:2; grid-row:1 / 3; align-self:stretch; }
.product-features--images:has(> li:only-child) img { height:100%; min-height:360px; object-fit:contain; }
.product-features--images:has(> li:only-child) .product-card-copy { display:flex; flex-direction:column; gap:20px; grid-column:1; grid-row:1; padding:32px; }
.product-features--images:has(> li:only-child) .product-card-copy h3 { padding:0; font-size:var(--coverit-claim); }
.product-features--images:has(> li:only-child) .product-card-copy > p { padding:0; margin:0; font-size:var(--coverit-body); }
.product-features--images:has(> li:only-child) .product-card-actions { grid-column:1; grid-row:2; padding:0 32px 32px; }
@media(max-width:767px) {
    .product-features--images:has(> li:only-child) > li { grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto auto; }
    .product-features--images:has(> li:only-child) .product-card-image { grid-column:1; grid-row:1; }
    .product-features--images:has(> li:only-child) img { height:auto; min-height:0; aspect-ratio:4/3; }
    .product-features--images:has(> li:only-child) .product-card-copy { grid-row:2; padding:20px; }
    .product-features--images:has(> li:only-child) .product-card-actions { grid-row:3; padding:0 20px 20px; }
}

/* Advice band: phone and e-mail as equal full-width contact actions. */
.product-advice p:has(a) { display:flex; gap:16px; margin:24px 0 0; }
.product-advice a { flex:1 1 0; display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:62px; padding:20px 18px; border:1px solid var(--coverit-accent); color:var(--coverit-muted); font-weight:600; line-height:1.25; text-decoration:none; }
.product-advice a:hover { background:var(--coverit-accent); color:var(--coverit-background); }
.product-advice a[href^="tel:"] { --coverit-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15.1 15.1 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.3 0 .7-.2 1z'/%3E%3C/svg%3E"); }
.product-advice a[href^="mailto:"] { --coverit-action-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 5h20v14H2zm2 2v.5l8 5 8-5V7zm16 2.9-8 5-8-5V17h16z'/%3E%3C/svg%3E"); }
.product-advice a:not([href^="tel:"]):not([href^="mailto:"])::after { display:none; }
@media(max-width:767px) {
    .product-advice p:has(a) { flex-direction:column; }
    .product-advice a { min-height:52px; padding:16px 12px; font-size:14px; }
}
/* The closing advice block (heading, text, call and mail) is always centred; the action row keeps the reading width. */
.frame-type-coverit_advice > header { display:flex; justify-content:center; text-align:center; }
.product-advice { display:flex; flex-direction:column; align-items:center; text-align:center; }
.product-advice p:has(a) { width:100%; max-inline-size:var(--coverit-measure); }

/* Balanced product sections (user decision 02.11.2026, DESIGN.md "Produktabschnitte"): from tablet up the section title and its
   text block sit centred over the full-width grids instead of hanging left with an empty right half. Running text keeps a left
   edge inside the centred reading block; a single short paragraph is centred. Grids centre an incomplete last row, so no single
   card or icon hangs left. Notes after a grid read as a quiet footnote. */
.product-section__note { font-size:16px; font-weight:400; }
.product-section__note ul + p:last-child, .product-features + .product-section__note:not(:has(> :nth-child(2))) { font-size:13px; }
@media(min-width:768px) {
    :is(.frame-type-coverit_product_section, .frame-type-coverit_feature_cards) > header { display:flex; justify-content:center; text-align:center; }
    .coverit-native-configuration > h2 { display:table; margin-inline:auto; }
    /* The laying section keeps its group titles (Verlegearten, Verlegeschritte) and lists on one left edge under the centred title. */
    :is(.frame-type-coverit_product_section, .frame-type-coverit_feature_cards):not(:has(.product-features--laying)) .product-section__note { margin-inline:auto; max-inline-size:var(--coverit-measure); }
    :is(.frame-type-coverit_product_section, .frame-type-coverit_feature_cards):not(:has(.product-features--laying)) .product-section__note:not(:has(> :nth-child(2))) { text-align:center; }
    .frame-type-coverit_product_section.frame-layout-1:not(:has(.product-features--laying)) .product-section__note { max-inline-size:64rem; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) { display:flex; flex-wrap:wrap; justify-content:center; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li { flex:0 0 calc(100% / 3); }
}
@media(min-width:1025px) {
    /* Only free card grids (5 or more cards) centre an incomplete last row; 1, 2 and 4 cards keep their own layouts above.
       The grid is doubled (6 tracks, cards span 2) so rows still share heights and inner alignment. */
    .product-features--cards:has(> li:nth-child(5)) { grid-template-columns:repeat(6,minmax(0,1fr)); }
    .product-features--cards:has(> li:nth-child(5)) > li { grid-column:span 2; }
    .product-features--cards:has(> li:nth-child(5)) > li:last-child:nth-child(3n+1) { grid-column:3 / span 2; }
    .product-features--cards:has(> li:nth-child(5)) > li:nth-last-child(2):nth-child(3n+1) { grid-column:2 / span 2; }
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li { flex-basis:25%; }
}
@media(min-width:768px) and (max-width:1024px) {
    .product-features--cards:has(> li:nth-child(3)) { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .product-features--cards:has(> li:nth-child(3)) > li { grid-column:span 2; }
    .product-features--cards:has(> li:nth-child(3)) > li:last-child:nth-child(2n+1) { grid-column:2 / span 2; }
}
@media(min-width:1281px) {
    .product-features:not(.product-features--laying, .product-features--cards, .product-features--images) > li { flex-basis:20%; }
}
