/* Villepreux proposal 1.1.8. Styles are restricted to this article. */
body.cg-villepreux-project #sp-main-body, body:has(.cg-vp-proposal) #sp-main-body { padding:0!important; background:#fff; }
body.cg-villepreux-project #sp-main-body > .container, body:has(.cg-vp-proposal) #sp-main-body > .container { width:100%!important; max-width:none!important; padding:0!important; }
body.cg-villepreux-project #sp-main-body .container-inner, body:has(.cg-vp-proposal) #sp-main-body .container-inner { width:100%; max-width:none; }
body.cg-villepreux-project #sp-main-body > .container > .container-inner > .row, body:has(.cg-vp-proposal) #sp-main-body > .container > .container-inner > .row { margin:0!important; }
body.cg-villepreux-project #sp-component, body:has(.cg-vp-proposal) #sp-component { width:100%!important; max-width:none!important; padding:0!important; flex:0 0 100%; }
body.cg-villepreux-project #sp-page-title, body:has(.cg-vp-proposal) #sp-page-title { display:none; }
.cg-vp-proposal { --vp-ink:#172026; --vp-muted:#606a6c; --vp-gold:#bf9453; --vp-gold-light:#e0bd80; --vp-cream:#f6f3ec; --vp-line:#e1ded5; --vp-header-offset:0px; color:var(--vp-ink); background:#fff; margin:0!important; padding:0!important; border:0!important; border-radius:0!important; box-shadow:none!important; font-family:"Montserrat",Arial,sans-serif; font-size:15px; line-height:1.75; min-width:0; }
.cg-vp-proposal *, .cg-vp-proposal *::before, .cg-vp-proposal *::after { box-sizing:border-box; }
.cg-vp-proposal [hidden] { display:none!important; }
.cg-vp-proposal [id] { scroll-margin-top:calc(var(--vp-header-offset) + 80px); }
.cg-vp-wrap { width:calc(100% - 80px); max-width:1200px; margin:0 auto; }
.cg-vp-proposal h1, .cg-vp-proposal h2, .cg-vp-proposal h3, .cg-vp-proposal p, .cg-vp-proposal figure { margin-top:0; text-transform:none; }
.cg-vp-proposal h1, .cg-vp-proposal h2 { color:var(--vp-ink); font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.035em; line-height:1.13; }
.cg-vp-proposal h1 { font-size:clamp(38px,4.5vw,62px); margin:0; }
.cg-vp-proposal h2 { font-size:clamp(31px,3.25vw,45px); margin:0 0 24px; }
.cg-vp-proposal h1 em, .cg-vp-proposal h2 em { color:#9e773e; font-weight:400; }
.cg-vp-proposal h3 { color:var(--vp-ink); font-size:19px; font-weight:600; line-height:1.45; letter-spacing:-.02em; margin:0 0 12px; }
.cg-vp-proposal p { color:var(--vp-muted); margin-bottom:17px; }
.cg-vp-proposal strong { color:inherit; font-weight:700; }
.cg-vp-proposal a { text-decoration:none; }
.cg-vp-proposal button { font-family:inherit; }
.cg-vp-proposal a:focus-visible, .cg-vp-proposal button:focus-visible { outline:3px solid var(--vp-gold); outline-offset:4px; }
.cg-vp-proposal img { display:block; max-width:100%; height:auto; }
.cg-vp-proposal .cg-vp-eyebrow { color:#987138; margin:0 0 20px; font-size:10px; line-height:1.6; letter-spacing:.17em; text-transform:uppercase; font-weight:700; }
.cg-vp-hero { padding:54px 0 0; background:#fff; }
.cg-vp-hero-heading { display:grid; grid-template-columns:1.35fr 1fr; gap:70px; align-items:end; margin:0 0 35px; }
.cg-vp-hero-intro { max-width:425px; padding-bottom:3px; }
.cg-vp-proposal .cg-vp-location { color:var(--vp-ink); font-size:11px; font-weight:700; letter-spacing:.08em; margin:0 0 11px; text-transform:uppercase; }
.cg-vp-proposal .cg-vp-hero-intro > p:not(.cg-vp-location) { line-height:1.8; margin-bottom:14px; }
.cg-vp-link { display:inline-flex; align-items:center; gap:20px; padding:5px 0; border-bottom:1px solid var(--vp-gold); color:var(--vp-ink)!important; font-size:12px; font-weight:600; }
.cg-vp-link:hover { color:#967039!important; }
.cg-vp-photo { margin:0; min-width:0; }
.cg-vp-photo > a { position:relative; display:block; background:#e5e4df; overflow:hidden; border-radius:6px; }
.cg-vp-photo img { width:100%; height:100%; object-fit:cover; transition:transform .3s; }
.cg-vp-photo a:hover img { transform:scale(1.018); }
.cg-vp-photo figcaption { display:flex; justify-content:space-between; gap:18px; padding:12px 0 0; color:var(--vp-muted); font-size:11px; line-height:1.6; }
.cg-vp-hero-photo > a { aspect-ratio:2048/682; border-radius:8px 8px 0 0; }
.cg-vp-hero-photo figcaption { padding:11px 16px; background:#172026; color:#eee6d6; font-size:10px; }
.cg-vp-zoom { position:absolute; right:13px; bottom:13px; width:32px; height:32px; background:rgba(255,255,255,.94); color:#172026; display:flex; align-items:center; justify-content:center; border-radius:50%; font-size:19px; line-height:1; }
.cg-vp-stats { display:grid; grid-template-columns:repeat(3,1fr) 1.3fr; gap:25px; padding:29px 0 28px; }
.cg-vp-stats > div { border-right:1px solid var(--vp-line); }
.cg-vp-stats > div:last-child { border-right:0; }
.cg-vp-stats strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:38px; line-height:1.15; font-weight:400; }
.cg-vp-stats small { font-size:19px; }
.cg-vp-stats span { display:block; margin-top:8px; color:var(--vp-muted); font-size:10px; line-height:1.6; }
.cg-vp-stats .cg-vp-stat-colors strong { font-family:inherit; font-size:16px; line-height:1.45; font-weight:600; }
.cg-vp-stat-colors small { color:#987138; font-size:13px; white-space:nowrap; }
.cg-vp-nav { position:sticky; top:var(--vp-header-offset); z-index:25; border-top:1px solid var(--vp-line); border-bottom:1px solid var(--vp-line); background:rgba(255,255,255,.97); }
.cg-vp-nav > div { display:flex; gap:31px; overflow:auto; scrollbar-width:none; }
.cg-vp-nav > div::-webkit-scrollbar { display:none; }
.cg-vp-nav a { flex:none; padding:19px 0; color:var(--vp-ink); font-size:11px; font-weight:600; white-space:nowrap; }
.cg-vp-nav a:hover { color:#99713c; }
.cg-vp-section { padding:75px 0; }
.cg-vp-section-cream { background:var(--vp-cream); }
.cg-vp-section-heading { display:grid; grid-template-columns:1.2fr 1fr; gap:75px; align-items:end; margin:0 0 32px; }
.cg-vp-section-heading h2 { margin:0; }
.cg-vp-section-heading > p { max-width:490px; margin:0 0 3px; }
.cg-vp-material-layout { display:grid; grid-template-columns:1.25fr .8fr; gap:100px; align-items:center; }
.cg-vp-material-layout .cg-vp-lead { font-size:16px; color:#37454b; }
.cg-vp-material-photo { max-width:380px; justify-self:end; }
.cg-vp-material-photo > a { aspect-ratio:1; background:#08090a; }
.cg-vp-colors { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
.cg-vp-colors > span { display:inline-flex; align-items:center; gap:10px; padding:8px 13px; border:1px solid var(--vp-line); border-radius:25px; font-size:11px; font-weight:600; }
.cg-vp-colors i { width:12px; height:12px; border-radius:50%; }
.cg-vp-dot-warm { background:#e3aa55; box-shadow:0 0 9px #e3aa5560; }
.cg-vp-dot-cool { background:#eff7ff; border:1px solid #bbcbd8; }
.cg-vp-dot-flash { border:1px solid #b69760; background:linear-gradient(135deg,#e2ae61 50%,#edf5ff 50%); }
.cg-vp-gallery-bar { display:flex; justify-content:space-between; align-items:center; gap:18px; margin:0 0 28px; }
.cg-vp-filters { display:flex; flex-wrap:wrap; gap:8px; }
.cg-vp-filters button { border:1px solid #d5d1c7; background:transparent; color:#3a4648; cursor:pointer; font-size:11px; font-weight:600; line-height:1.4; padding:12px 18px; border-radius:25px; }
.cg-vp-filters button[aria-pressed="true"] { color:#fff; background:#172026; border-color:#172026; }
.cg-vp-filters button:hover { border-color:#172026; }
.cg-vp-proposal .cg-vp-gallery-count { color:var(--vp-muted); font-size:11px; margin:0; white-space:nowrap; }
.cg-vp-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 25px; }
.cg-vp-gallery .cg-vp-photo > a { aspect-ratio:1672/941; }
.cg-vp-gallery .cg-vp-photo-wide { grid-column:1/-1; }
.cg-vp-gallery .cg-vp-photo-wide > a { aspect-ratio:2048/682; }
.cg-vp-image-tag { position:absolute; top:13px; left:13px; color:#fff; background:rgba(23,32,38,.83); padding:4px 10px; border-radius:20px; font-size:10px; line-height:1.6; }
.cg-vp-proposal .cg-vp-note { font-size:11px; line-height:1.7; margin:24px 0 0; }
.cg-vp-section-dark { background:#172026; }
.cg-vp-section-dark h2, .cg-vp-section-dark h3 { color:#f7f4eb; }
.cg-vp-section-dark p, .cg-vp-section-dark figcaption { color:#bac3c5; }
.cg-vp-section-dark .cg-vp-eyebrow { color:#d9b273; }
.cg-vp-mount-layout { display:grid; grid-template-columns:1.3fr 1fr; gap:60px; align-items:center; }
.cg-vp-mount-photo > a { aspect-ratio:1588/991; }
.cg-vp-mount-steps { list-style:none; margin:0; padding:0; }
.cg-vp-mount-steps li { display:grid; grid-template-columns:34px 1fr; gap:20px; padding:21px 0; border-bottom:1px solid #ffffff20; }
.cg-vp-mount-steps li:first-child { padding-top:0; }
.cg-vp-mount-steps li:last-child { border-bottom:0; padding-bottom:0; }
.cg-vp-mount-steps li > span { color:#d9b273; font-family:Georgia,"Times New Roman",serif; font-size:25px; line-height:1.4; }
.cg-vp-mount-steps h3 { font-size:17px; margin-bottom:8px; }
.cg-vp-mount-steps p { font-size:13px; line-height:1.75; margin:0; }
.cg-vp-check-grid, .cg-vp-calendar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; }
.cg-vp-check-card { padding:32px 34px; border:1px solid var(--vp-line); border-radius:7px; background:#fff; }
.cg-vp-proposal .cg-vp-card-label { display:block; color:#987138; font-size:10px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; margin:0 0 18px; }
.cg-vp-check-card h3 { font-size:21px; margin-bottom:18px; }
.cg-vp-check-card p { font-size:13px; line-height:1.85; }
.cg-vp-check-card p:last-child { margin-bottom:0; }
.cg-vp-calendar-card { padding:32px 35px; background:#fff; border:1px solid var(--vp-line); border-radius:7px; }
.cg-vp-proposal .cg-vp-calendar-month { color:var(--vp-ink); font-size:20px; line-height:1.4; margin:0; font-weight:600; }
.cg-vp-calendar-month span { margin-left:12px; font-size:13px; color:var(--vp-muted); font-weight:400; }
.cg-vp-proposal .cg-vp-calendar-range { display:flex; align-items:center; gap:27px; margin:18px 0 17px; line-height:1; color:#ad8140; }
.cg-vp-calendar-range strong { font-family:Georgia,"Times New Roman",serif; font-size:62px; font-weight:400; letter-spacing:-.04em; }
.cg-vp-calendar-range span { color:#abb0ad; font-size:25px; }
.cg-vp-calendar-card > p:last-child { margin:0; font-size:12px; }
.cg-vp-contact { display:flex; justify-content:space-between; align-items:center; gap:35px; margin-top:40px; padding-top:31px; border-top:1px solid #d7d2c7; }
.cg-vp-contact h3 { font-size:21px; margin:0 0 9px; }
.cg-vp-contact p { font-size:12px; max-width:600px; margin:0; }
.cg-vp-contact-links { display:flex; align-items:center; gap:23px; flex-shrink:0; }
.cg-vp-button { display:inline-flex; align-items:center; justify-content:center; gap:22px; min-height:46px; padding:12px 18px; background:#172026; color:#fff!important; border-radius:4px; font-size:11px; font-weight:600; }
.cg-vp-button:hover { background:#a37b40; }
.cg-vp-no-scroll { overflow:hidden; }
.cg-vp-proposal .cg-vp-lightbox { position:fixed; inset:0; margin:0; padding:68px 25px 25px; width:100vw; max-width:none; height:100vh; height:100dvh; max-height:none; border:0; background:rgba(10,15,18,.97); color:#fff; }
.cg-vp-lightbox::backdrop { background:rgba(10,15,18,.96); }
.cg-vp-lightbox[open] { display:flex; align-items:center; justify-content:center; }
.cg-vp-lightbox-inner { width:100%; max-width:1500px; display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:20px; align-items:center; }
.cg-vp-lightbox figure { min-width:0; margin:0; }
.cg-vp-lightbox figure img { width:auto; height:auto; max-width:100%; max-height:calc(100vh - 165px); max-height:calc(100dvh - 165px); margin:auto; object-fit:contain; }
.cg-vp-lightbox figcaption { display:flex; justify-content:space-between; gap:25px; margin:16px 0 0; color:#e0e2de; font-size:12px; line-height:1.6; }
.cg-vp-lightbox-count { color:#d3b17b; white-space:nowrap; }
.cg-vp-lightbox button { display:flex; align-items:center; justify-content:center; border:1px solid #ffffff40; border-radius:50%; background:#ffffff10; color:#fff; width:44px; height:44px; font-size:32px; line-height:1; cursor:pointer; }
.cg-vp-lightbox button:hover { background:#ffffff25; }
.cg-vp-lightbox .cg-vp-lightbox-close { position:absolute; top:17px; right:22px; }
.cg-vp-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:960px) { .cg-vp-wrap { width:calc(100% - 48px); } .cg-vp-hero-heading { gap:35px; } .cg-vp-section-heading { gap:35px; } .cg-vp-material-layout { gap:45px; } .cg-vp-mount-layout { gap:35px; } .cg-vp-contact { align-items:flex-start; flex-direction:column; gap:23px; } }
@media (max-width:720px) { .cg-vp-hero { padding-top:34px; } .cg-vp-hero-heading, .cg-vp-section-heading, .cg-vp-material-layout, .cg-vp-mount-layout { grid-template-columns:1fr; gap:25px; } .cg-vp-hero-heading { margin-bottom:27px; } .cg-vp-hero-intro { max-width:none; } .cg-vp-stats { grid-template-columns:repeat(2,1fr); gap:24px; padding:25px 0; } .cg-vp-stats > div:nth-child(2) { border:0; } .cg-vp-stats strong { font-size:34px; } .cg-vp-nav > div { gap:24px; } .cg-vp-nav a { padding:16px 0; } .cg-vp-section { padding:49px 0; } .cg-vp-material-photo { justify-self:center; max-width:320px; width:100%; } .cg-vp-gallery { gap:20px 16px; } .cg-vp-check-grid, .cg-vp-calendar { grid-template-columns:1fr; gap:18px; } .cg-vp-mount-steps li:first-child { padding-top:7px; } .cg-vp-check-card, .cg-vp-calendar-card { padding:25px; } .cg-vp-contact h3 { font-size:20px; } .cg-vp-lightbox-inner { grid-template-columns:30px minmax(0,1fr) 30px; gap:6px; } .cg-vp-lightbox button { width:30px; height:38px; border-radius:5px; font-size:26px; } .cg-vp-lightbox .cg-vp-lightbox-close { width:39px; height:39px; border-radius:50%; right:15px; } .cg-vp-proposal .cg-vp-lightbox { padding:66px 10px 24px; } .cg-vp-lightbox figcaption { font-size:10px; gap:14px; } }
@media (max-width:480px) { .cg-vp-wrap { width:calc(100% - 36px); } .cg-vp-proposal h1 { font-size:38px; } .cg-vp-proposal h2 { font-size:32px; } .cg-vp-proposal .cg-vp-hero-photo figcaption { font-size:9px; gap:12px; padding:10px 11px; } .cg-vp-hero-photo figcaption > span:last-child { display:none; } .cg-vp-gallery { grid-template-columns:1fr; gap:22px; } .cg-vp-gallery .cg-vp-photo-wide > a { aspect-ratio:2048/682; } .cg-vp-gallery-bar { flex-wrap:wrap; gap:12px; } .cg-vp-filters { gap:6px; } .cg-vp-filters button { padding:11px 13px; font-size:10px; } .cg-vp-zoom { width:27px; height:27px; font-size:17px; right:10px; bottom:10px; } .cg-vp-contact-links { flex-wrap:wrap; gap:20px; } .cg-vp-lightbox figcaption { flex-direction:column; gap:8px; text-align:center; } }
@media (prefers-reduced-motion:reduce) { .cg-vp-proposal * { transition:none!important; scroll-behavior:auto!important; } }
