/* Shared visual roles: approved Inter homepage system, preserving readable content hierarchy. */
body.g-preview{--font-heading:Inter,Arial,sans-serif;--font-ui:Inter,Arial,sans-serif}
body.g-preview :is(h1,h2,h3,h4){font-family:var(--font-ui);font-weight:500;letter-spacing:-.035em}
body.g-preview:not(.g-home) :is(.product-summary h1,.page-intro h1,.catalogue-results h1,.pb-gallery-heading h1,.project-catalogue-heading h1,.ap-heading h1){font-size:clamp(32px,3.1vw,44px);line-height:1.12;font-weight:500}
body.g-preview:not(.g-home) :is(.collection-card h2,.product-card h2,.ap-card h2,.pb-project-card h2){font-size:24px;line-height:1.2;font-weight:500}
body.g-preview .g-header .g-search{width:auto;gap:6px;white-space:nowrap}
body.g-preview .g-header .cv-search-label{font:400 13px/1 var(--font-ui)}
/* Underline follows the centered text, rather than the bottom of its44px target. */
body.g-preview .g-header :is(.g-directions>a,.g-contact-label,.g-request,.g-language){background-position:0 calc(50% + 11px)!important}
body.g-preview .g-header .g-language-current{text-underline-offset:5px}

/* Shared header rhythm: separate destinations while keeping the wordmark centered. */
@media(min-width:761px){body.g-preview .g-header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}}
@media(min-width:761px) and (max-width:1439px){body.g-preview .g-header .cv-search-label{display:none}}
@media(min-width:1440px){
 body.g-preview .g-header .g-directions,
 body.g-preview .g-header .g-tools,
 body.g-preview .g-header .g-contact-group{gap:clamp(28px,2vw,40px)}
}
@media(min-width:1001px) and (max-width:1439px){
 body.g-preview .g-header .g-directions,
 body.g-preview .g-header .g-tools,
 body.g-preview .g-header .g-contact-group{gap:18px}
}
@media(min-width:1001px) and (max-width:1300px){
 body.g-preview .g-header{gap:12px}
 body.g-preview .g-header .g-tools{gap:10px}
 body.g-preview .g-header .g-contact-group{gap:12px}
}
@media(min-width:761px) and (max-width:1000px){
 body.g-preview .g-header .g-directions{column-gap:16px}
 body.g-preview .g-header .g-tools,
 body.g-preview .g-header .g-contact-group{gap:16px}
}
@media(min-width:761px) and (max-width:1100px){body.g-preview .g-directions{min-width:0;flex-wrap:wrap;row-gap:0}body.g-preview .g-directions>a{min-height:28px}}
/* The control itself has a real 44px target; the visible capsule remains 24px. */
@media(max-width:760px){
 body.g-preview.g-quote-page .quote-buttons button[type=submit]{height:44px!important;min-height:44px!important;background:transparent!important;color:var(--paper);z-index:0}
 body.g-preview.g-quote-page .quote-buttons button[type=submit]::before{inset:10px 0;background:var(--ink);z-index:-1}
 body.g-preview.g-quote-page .quote-buttons button[type=submit]:hover::before{background:var(--paper);border:1px solid var(--ink)}
 body.g-preview.g-quote-page .quote-buttons button[type=submit]:hover{color:var(--ink)}
 body.g-preview:not(.g-home) :is(.collection-card h2,.product-card h2,.ap-card h2,.pb-project-card h2){font-size:21px}
}

/* The supplied announcement spans the viewport without cropping its lettering. */
body.g-preview.g-home .cv-showroom-banner{width:calc(100% + 2 * var(--gutter));max-width:none;margin:64px calc(-1 * var(--gutter)) 0;line-height:0}
body.g-preview.g-home .cv-showroom-banner img{display:block;width:100%;height:auto;max-width:none;aspect-ratio:2/1}
@media(max-width:760px){body.g-preview.g-home .cv-showroom-banner{margin-top:40px}}

/* The shared bold statement introduces support; the announcement closes the section. */
body.g-preview.g-home #showroom .cv-showroom-statement{padding:96px 0;text-align:center}
body.g-preview.g-home #showroom .cv-showroom-statement h2{margin:0 auto;max-width:1120px;font:700 clamp(34px,3.6vw,74px)/.99 var(--font-ui);letter-spacing:-.025em;word-spacing:.08em;text-transform:uppercase}
@media(max-width:760px){
 body.g-preview.g-home #showroom .cv-showroom-statement{padding:56px 0}
 body.g-preview.g-home #showroom .cv-showroom-statement h2{font-size:clamp(24px,7.5vw,57px);line-height:1.04}
}

body.g-preview.g-home #showroom{padding-top:0;border:0}
body.g-preview.g-home #showroom .ce-steps>li{border-top:0;padding-top:0}

/* Caption belongs to the photograph, with no separate strip or divider below. */
body.g-preview.g-home .ce-facade{padding-bottom:0;border-bottom:0}
body.g-preview.g-home .ce-facade>.ce-photo{position:relative;aspect-ratio:auto}
body.g-preview.g-home .ce-facade>.ce-photo img{display:block;height:auto;aspect-ratio:auto}
body.g-preview.g-home .ce-facade>.ce-photo::after{content:"";position:absolute;inset:auto 0 0;height:100px;background:linear-gradient(transparent,rgba(0,0,0,.55));pointer-events:none}
body.g-preview.g-home .cv-facade-credit{position:absolute;z-index:1;left:var(--gutter);right:var(--gutter);bottom:20px;color:#fff;font:400 13px/1.45 var(--font-ui);text-shadow:0 1px 3px #0008}
@media(max-width:760px){body.g-preview.g-home .cv-facade-credit{bottom:14px}}

/* Compact partner footer, with utilities available here and in the header. */
body.g-preview .footer.cv-partner-footer{display:block;padding-top:48px;padding-bottom:20px;border-top:0;background:var(--paper)}
body.g-preview .cv-footer-intro{text-align:center;max-width:740px;margin:0 auto 36px}
body.g-preview .cv-footer-rights{margin:0 auto 20px;font:400 14px/1.5 var(--font-ui);color:var(--muted);max-width:680px}
body.g-preview .cv-partner-footer .cv-social-links{display:flex;justify-content:center;gap:12px;margin:0}
body.g-preview .cv-social-links a{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#171717;color:#fff;transition:background-color .2s ease}
body.g-preview .cv-social-links a:hover{background:#404040;color:#fff}
body.g-preview .cv-partner-footer .cv-social-links svg{width:20px;height:20px}
body.g-preview .cv-footer-bar{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;font:400 12px/1.45 var(--font-ui)}
body.g-preview .cv-footer-company{text-align:right;color:var(--muted)}
body.g-preview .cv-footer-utility,body.g-preview .cv-partner-footer .cv-privacy-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px;margin:0}
body.g-preview .cv-footer-utility>a,body.g-preview .cv-partner-footer .cv-privacy-footer :is(a,button){display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;border-radius:0;background:none;color:var(--ink);font:400 12px/1.45 var(--font-ui);text-decoration:none;cursor:pointer}
body.g-preview .cv-footer-utility :is(a,button):hover{text-decoration:underline;text-underline-offset:4px}
body.g-preview .cv-partner-footer :is(a,button):focus-visible{outline:2px solid currentColor;outline-offset:4px}
@media(max-width:1000px){body.g-preview .cv-footer-bar{grid-template-columns:1fr 1fr}body.g-preview .cv-footer-utility{grid-column:1/-1;grid-row:1}}
@media(max-width:760px){
 body.g-preview .footer.cv-partner-footer{padding-top:36px;padding-bottom:20px}
 body.g-preview .cv-footer-intro{margin-bottom:20px}
 body.g-preview .cv-footer-rights{font-size:13px;line-height:1.55}
 body.g-preview .cv-footer-bar{display:flex;flex-direction:column;gap:8px;text-align:center}
 body.g-preview .cv-footer-company{text-align:center}
 body.g-preview .cv-footer-utility,body.g-preview .cv-partner-footer .cv-privacy-footer{gap:16px}
}

/* Partner list uses the compact footer text role. */
body.g-preview .cv-footer-partners{margin-top:24px}
body.g-preview .cv-footer-partners-title{margin:0 0 8px;font:600 14px/1.5 var(--font-ui)}
body.g-preview .cv-footer-partner-names{margin:0;font:400 13px/1.6 var(--font-ui);color:var(--muted);text-wrap:balance}

/* Owner: reduce the shared desktop top bar height, preserving its contents. */
@media(min-width:761px){body.g-preview .g-header{min-height:64px;height:64px;padding-block:0}}

/* Keep sticky offsets aligned with the compact desktop header. */
@media(min-width:761px){body.g-preview{--header:64px}}

@media(min-width:761px){body.g-preview .project-contextbar{top:var(--header)!important}}

/* Shared top bar has no separator. */
body.g-preview .g-header{border-bottom:0!important;box-shadow:none!important}
body.g-preview .g-header::after{border:0!important;box-shadow:none!important}
body.g-preview .pb-floating-panel{position:fixed;inset-inline:0;top:var(--panel-top,64px);z-index:45;background:var(--paper,#f7f6f4);padding:6px 12px 12px;box-sizing:border-box}
body.g-preview .pb-floating-panel[hidden]{display:none}
body.g-preview .pb-floating-panel>.pb-sidebar{margin:0!important;padding:0!important;border:0!important}
body.g-preview .pb-floating-panel .pb-content>.pb-products-action{margin:0;padding:8px 0 0}
body.g-preview .pb-floating-panel .pb-category-nav{margin:0;flex-wrap:nowrap;overflow-x:auto;justify-content:safe center}
body.g-preview .pb-floating-panel .pb-category-nav>a{flex-shrink:0}

body.g-preview .pb-floating-panel>.pb-sidebar{position:static!important;top:auto!important}
body.g-preview .pb-floating-panel>.pb-content{padding:0;margin:0}
body.g-preview .pb-floating-panel .pb-content>.pb-products-action{min-height:0;height:auto;padding:8px 0 0!important}

/* The light contact dialog keeps its own text colors on the black About page. */
body.g-preview:has(#cv-about-title) .contact-dialog :is(h2,button,summary,summary span,.contact-details a,.contact-channels a,.text-link){color:#171717!important}

/* Owner12Nov: narrower shared top bar; controls retain their44px targets. */
body.g-preview{--header:56px}
body.g-preview .g-header{height:56px!important;min-height:56px!important;padding-block:0!important}
body.g-preview .project-contextbar{top:var(--header)!important}
body.g-preview #mobile-menu{inset-block-start:var(--header)!important}
