/* Photo-only proposal using the site's original styles and components. */
.photo-presta{overflow:clip}.photo-presta__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.14fr);align-items:center;gap:clamp(32px,5vw,80px)}
.photo-copy{grid-column:1;grid-row:1;min-width:0}.photo-composition{grid-column:2;grid-row:1;position:relative;isolation:isolate;width:100%;aspect-ratio:1/.94;min-width:0;align-self:start;margin-top:20px}
.photo-presta--flip .photo-presta__grid{grid-template-columns:minmax(0,1.14fr) minmax(0,1fr)}.photo-presta--flip .photo-copy{grid-column:2}.photo-presta--flip .photo-composition{grid-column:1}
.photo-copy .presta__head{display:block;margin-bottom:24px}.photo-copy .presta__num{display:block;margin-bottom:12px}.photo-copy h2{margin:0}.photo-copy .lead-in{font-family:var(--font-display);font-size:var(--fs-h4);line-height:1.33;letter-spacing:-.03em;margin-bottom:22px}
.photo-tile{position:absolute;margin:0}.photo-open{display:block;border:0;padding:0;background:var(--paper);width:100%;border-radius:var(--radius-media);overflow:hidden;box-shadow:0 20px 40px -12px #04171c40,0 5px 12px -4px #04171c22;cursor:zoom-in;line-height:0;transition:none!important}.photo-open:hover{box-shadow:0 20px 40px -12px #04171c40,0 5px 12px -4px #04171c22;transform:none}.photo-open img{display:block;width:100%;height:auto;max-width:none;opacity:1;transform:none}.photo-open:focus-visible{outline:3px solid var(--teal-600);outline-offset:5px}.photo-tile--0{width:89%;left:5%;top:20%;z-index:2;transform:rotate(-1.5deg)}.photo-tile--1{width:41%;left:0;top:0;z-index:3;transform:rotate(-5deg)}.photo-tile--2{width:41%;right:0;bottom:0;z-index:3;transform:rotate(5deg)}
.composition--plein-jour .photo-tile--0{left:2%;top:16%;transform:rotate(1deg)}.composition--plein-jour .photo-tile--1{left:auto;right:0;top:0;transform:rotate(4deg)}.composition--plein-jour .photo-tile--2{right:auto;left:1%;bottom:0;width:32%;transform:rotate(-5deg)}
.composition--drive-in{aspect-ratio:1/.99}.composition--drive-in .photo-tile--0{left:4%;top:19%;width:92%;transform:rotate(1.5deg)}.composition--drive-in .photo-tile--1{width:44%;left:-1%;transform:rotate(-4deg)}.composition--drive-in .photo-tile--2{width:43%;right:0;transform:rotate(4deg)}
.composition--interieur .photo-tile--0{left:6%;top:18%;transform:rotate(-1deg)}.composition--interieur .photo-tile--1{left:auto;right:0;transform:rotate(4deg)}.composition--interieur .photo-tile--2{right:auto;left:0;transform:rotate(-4deg)}
.composition--piscine .photo-tile--0{left:4%;top:20%;transform:rotate(1.5deg)}.composition--piscine .photo-tile--1{width:44%;transform:rotate(-4deg)}.composition--piscine .photo-tile--2{width:43%;transform:rotate(4deg)}
.photo-composition--single{aspect-ratio:auto;max-width:440px;justify-self:center;margin:0}.photo-composition--single .photo-tile{position:relative;inset:auto;width:100%;transform:none}
.photo-story h3{font-family:var(--font-display);font-size:var(--fs-h3);line-height:1.2;letter-spacing:-.03em}.photo-story .presta__sub{margin-top:30px}.photo-story .duo{grid-template-columns:1fr}.photo-story .spec>div{min-width:0}.photo-story{overflow-wrap:break-word}.photos-ready .photo-story:not(.is-expanded){max-height:185px;overflow:hidden;mask-image:linear-gradient(#000 0%,#000 45%,#0008 78%,transparent 100%);-webkit-mask-image:linear-gradient(#000 0%,#000 45%,#0008 78%,transparent 100%)}
.photo-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}.photo-more{display:none;cursor:pointer}.photos-ready .photo-more{display:inline-flex}.photo-actions .btn{min-height:48px;font-size:var(--fs-small)}.more-symbol{font-size:22px;line-height:1}.photo-guide{margin-top:22px}.photo-presta--text .photo-presta__grid{display:block;max-width:860px}.photo-presta--text .photo-copy{width:100%}
.subnav-bar__inner{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch}.subnav-bar__inner::-webkit-scrollbar{display:none;width:0;height:0}
#photo-viewer{position:fixed;inset:0;margin:auto;width:min(1300px,96vw);max-height:94dvh;padding:58px 18px 18px;border:0;border-radius:var(--radius-media);background:var(--night-900);color:white}#photo-viewer::backdrop{background:#04171ce8}#photo-viewer>img{display:block;width:100%;height:auto;max-height:calc(90dvh - 140px);object-fit:contain}#photo-viewer p{text-align:center;margin:14px 0 0;font-size:14px}.photo-close{position:absolute;right:18px;top:14px;border:1px solid #ffffff66;border-radius:var(--radius-pill);background:transparent;color:white;padding:6px 16px;cursor:pointer}
@media(max-width:959px){.photo-presta__grid,.photo-presta--flip .photo-presta__grid{display:flex;flex-direction:column;align-items:stretch;gap:30px}.photo-composition{order:0;width:94%;align-self:center;margin:10px 0 8px;aspect-ratio:1/.96;max-width:620px}.photo-copy{order:1}.photo-open{box-shadow:0 15px 28px -10px #04171c40,0 3px 8px #04171c18}.photo-open:hover{box-shadow:0 15px 28px -10px #04171c40,0 3px 8px #04171c18}.photo-tile--0{width:93%;left:3%;top:21%}.photo-tile--1{width:43%}.photo-tile--2{width:43%}.composition--drive-in{aspect-ratio:1/1}.composition--plein-jour .photo-tile--0{width:94%;top:17%}.composition--interieur .photo-tile--0{width:92%;left:3%}.photo-composition--single{width:min(88%,420px);aspect-ratio:auto}.photo-composition--single .photo-tile{width:100%;top:auto;left:auto}.photo-copy .presta__head{margin-bottom:20px}.photo-copy .lead-in{margin-bottom:18px}.photos-ready .photo-story:not(.is-expanded){max-height:170px}.photo-actions{gap:12px}.photo-actions .btn{padding:0 18px;white-space:normal}.photo-presta--text .photo-presta__grid{max-width:none}}
@media(prefers-reduced-motion:reduce){.photo-presta *,#photo-viewer{scroll-behavior:auto!important}}
/* Each composition has its own balance; photographs remain opaque. */
.photo-presta.theme-paper{--paper:#fff;--bg:#fff;background:#fff}.photo-presta{border-bottom:1px solid #e4e9e7}
.composition--plein-jour{aspect-ratio:1/.97}.composition--plein-jour .photo-tile--0{width:88%;left:0;top:23%;transform:rotate(-2deg)}.composition--plein-jour .photo-tile--1{width:48%;right:0;top:0;transform:rotate(4deg)}.composition--plein-jour .photo-tile--2{width:48%;left:auto;right:0;bottom:0;transform:rotate(-3deg)}
.composition--interieur{aspect-ratio:1/.98}.composition--interieur .photo-tile--0{width:82%;left:18%;top:20%;transform:rotate(2deg)}.composition--interieur .photo-tile--1{width:46%;right:auto;left:0;top:0;transform:rotate(-4deg)}.composition--interieur .photo-tile--2{width:47%;left:0;bottom:0;transform:rotate(3deg)}
.composition--piscine{aspect-ratio:1/1.02}.composition--piscine .photo-tile--0{width:94%;left:3%;top:0;transform:rotate(-1deg)}.composition--piscine .photo-tile--1{width:51%;left:0;top:auto;bottom:8%;transform:rotate(-5deg)}.composition--piscine .photo-tile--2{width:50%;right:0;bottom:0;transform:rotate(5deg)}
.composition--mapping{aspect-ratio:1/1.18}.composition--mapping .photo-tile--0{width:66%;left:2%;top:0;transform:rotate(-2deg)}.composition--mapping .photo-tile--1{width:70%;left:auto;right:0;top:auto;bottom:0;transform:rotate(3deg)}
.composition--balcon{aspect-ratio:1/1.06}.composition--balcon .photo-tile--0{width:86%;left:0;top:20%;transform:rotate(-3deg)}.composition--balcon .photo-tile--1{width:44%;left:auto;right:0;top:0;transform:rotate(3deg)}.composition--balcon .photo-tile--2{width:48%;right:0;bottom:0;transform:rotate(6deg)}.composition--balcon .photo-tile--2 img{aspect-ratio:1.45;object-fit:cover;object-position:30% 25%}
.composition--concert{aspect-ratio:1/.9}.composition--concert .photo-tile--0{width:98%;left:1%;top:17%;transform:rotate(0deg)}.composition--concert .photo-tile--1{width:43%;left:0;top:0;transform:rotate(-5deg)}.composition--concert .photo-tile--2{width:49%;right:0;bottom:0;transform:rotate(3deg)}.composition--concert .photo-tile--2 img{aspect-ratio:1.85;object-fit:cover;object-position:50% 100%}
.photo-variants{padding-block:18px 24px}.photo-variants p{font-size:12px;color:var(--muted);margin:0 0 12px}.photo-variants>div{display:flex;flex-wrap:wrap;gap:8px}.photo-variants .chip[aria-current=true]{background:var(--night-900);color:white;border-color:var(--night-900)}
body.photo-contrast main{background:var(--night-900)}body.photo-contrast .photo-presta{margin:20px 16px 32px;border-radius:var(--radius-panel);border:0}body.photo-contrast .photo-presta+.photo-presta{margin-top:32px}body.photo-contrast .page-head,body.photo-contrast .photo-variants,body.photo-contrast .subnav-bar{background:var(--paper)}
body.photo-night .photo-presta{background:var(--night-900);color:var(--paper);--fg:var(--paper);--muted:#b9cdd0;--line:#ffffff24;--line-strong:#ffffff66;border-bottom:1px solid #ffffff26}body.photo-night .photo-presta .presta__num{color:var(--teal-300)}body.photo-night .photo-composition{background:white;border-radius:var(--radius-panel);outline:20px solid white;box-shadow:0 15px 36px #0002}body.photo-night .photo-actions .btn:not(.btn--outline){--btn-bg:var(--paper);--btn-fg:var(--night-900)}body.photo-night .photo-actions .btn--outline{--btn-bg:#ffffff10;--btn-fg:#fff}
@media(max-width:959px){.composition--plein-jour .photo-tile--2{width:48%}.composition--mapping{aspect-ratio:1/1.18}.photo-composition{margin-top:12px;margin-bottom:15px}.photo-variants .chip{font-size:12px;padding:8px 12px}body.photo-contrast .photo-presta{margin:16px 8px 22px;border-radius:32px}body.photo-contrast .photo-presta .container{width:auto;padding-inline:16px}body.photo-night .photo-composition{width:85%;outline-width:14px;margin-top:24px;margin-bottom:24px}}
body.photo-night .photo-composition{background:transparent;outline:0;box-shadow:none}body.photo-night .photo-composition::before{content:'';position:absolute;inset:-20px;background:#fff;border-radius:var(--radius-panel);box-shadow:0 15px 36px #0002;z-index:0;pointer-events:none}
@media(max-width:959px){body.photo-night .photo-composition::before{inset:-14px}}
/* Blend the last dark separator into the closing CTA and footer background. */
body.photo-contrast .cta-band::after{content:'';position:absolute;inset:0 0 auto;height:clamp(96px,12vw,180px);background:linear-gradient(to bottom,var(--night-900),transparent);z-index:-1;pointer-events:none}
/* White introduction and service navigation, including the unselected pills. */
.page-head,.photo-variants,.subnav-bar,body.photo-contrast .page-head,body.photo-contrast .photo-variants,body.photo-contrast .subnav-bar{background:#fff}
.site-header:not([data-tone="dark"]):not([data-menu-open]){--hdr-bg:#fff}
.subnav-bar .chip:not(.is-active):not([aria-pressed="true"]):not([aria-selected="true"]){--chip-bg:#fff}
/* Keep identical photo geometry before, during and after the text reveal. */
@media(min-width:960px){
 .photo-composition{position:sticky;top:var(--photo-sticky-top);max-width:var(--photo-sticky-width);justify-self:center;align-self:start}
 .photo-copy{align-self:start}
}
/* Prevent the footer becoming a scroll anchor while the last service expands. */
html.photos-ready{overflow-anchor:none}
.photo-presta{overflow-anchor:none}
.photos-ready .photo-story{position:relative;display:flow-root;overflow:hidden}
.photos-ready .photo-story:not(.is-expanded){mask-image:none;-webkit-mask-image:none}
.photos-ready .photo-story::after{content:'';position:absolute;inset:auto 0 0;height:100px;background:linear-gradient(transparent,#fff);pointer-events:none;opacity:1;transition:opacity 280ms ease}
.photos-ready .photo-story.is-expanded::after{opacity:0}
.photos-ready .photo-story.is-animating{max-height:none}
body.photo-night .photo-story::after{background:linear-gradient(transparent,var(--night-900))}
@media(prefers-reduced-motion:reduce){.photos-ready .photo-story::after{transition:none}}
/* Keep the pool collage compact with the selected landscape photographs. */
.composition--piscine{aspect-ratio:1/.82}
.composition--piscine .photo-tile--2{bottom:3%}
/* One full photograph for the concert, with its original proportions. */
.composition--concert.photo-composition--single{width:100%;max-width:var(--photo-sticky-width,100%);aspect-ratio:1401/1013;margin-top:20px}
.composition--concert.photo-composition--single .photo-tile{position:relative;inset:auto;width:100%;transform:none}
@media(max-width:959px){.composition--concert.photo-composition--single{width:94%;max-width:620px;margin:12px 0 15px}}
/* Balcony: two landscape views in an offset pair, distinct from the mapping duo. */
.composition--balcon{aspect-ratio:1/.91}
.composition--balcon .photo-tile--0{width:90%;left:auto;right:0;top:0;transform:rotate(2deg)}
.composition--balcon .photo-tile--1{width:66%;left:0;right:auto;top:auto;bottom:0;transform:rotate(-3deg)}
/* Bring each mobile heading a little closer without crowding the photographs. */
@media(max-width:959px){
 .photo-presta__grid,.photo-presta--flip .photo-presta__grid{gap:20px}
 .photo-composition,.composition--concert.photo-composition--single{margin-bottom:5px}
}
