/* CASFER film addition: complements the existing site stylesheet. */
.hero h1{text-transform:none}
.hero h1 em{color:var(--gold);font-weight:400}
.film-entry{display:inline-flex;align-items:center;gap:18px;text-decoration:none;color:var(--gold);font-size:clamp(13px,1.1vw,17px);line-height:1.4;max-width:100%;padding:3px 0}
.film-entry>span:last-child{border-bottom:1px solid #d4b0789c;padding-bottom:6px}
.play-ring{flex:0 0 48px;width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--gold);border-radius:50%;font-size:14px;padding-left:3px;transition:background .2s,color .2s}
.film-entry:hover .play-ring{background:var(--gold);color:var(--ink)}
.hero-copy .actions .film-entry{order:initial;border:0;min-width:0;padding:3px 0}
.hero-copy .actions .film-entry span{display:initial}
.hero-copy .actions .film-entry .play-ring{display:grid}
.film-intro.transformation{display:grid;grid-template-columns:1fr 1fr;height:auto;min-height:450px;background:#eee7dc;align-items:center;padding:0 6%;gap:5%}
.film-intro .transform-copy{padding:55px 0;max-width:570px}
.film-intro .transform-copy h2{font-size:clamp(32px,3.5vw,48px);line-height:1.1;margin-bottom:22px}
.film-intro .transform-copy>p:not(.eyebrow){line-height:1.8;font-size:14px;max-width:450px}
.film-actions{display:flex;flex-direction:column;align-items:flex-start;gap:17px;margin-top:27px}
.film-actions .button{padding:14px 22px}
.film-actions .text-link{font-size:12px;gap:20px}
.film-poster{display:block;align-self:stretch;position:relative;max-width:440px;width:100%;height:530px;justify-self:center;overflow:hidden;background:#171713}
.film-intro .film-poster img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 55%;filter:brightness(.90);transition:filter .2s}
.poster-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:74px;height:74px;display:grid;place-items:center;border:1px solid #e9d1a9;background:#18191655;border-radius:50%;font-size:22px;padding-left:4px;color:#fff8e9}
.poster-caption{position:absolute;bottom:0;left:0;right:0;padding:42px 15px 20px;text-align:center;font-size:10px;letter-spacing:.23em;text-transform:uppercase;color:#fff8e9;background:linear-gradient(transparent,#0009)}
.film-page{background:var(--ink);color:var(--ivory)}
.film-page .nav{position:relative;min-height:100px;padding:22px 6%;border-bottom:1px solid #ffffff26;background:var(--ink);color:var(--ivory)}
.film-page .brand{font-size:24px;letter-spacing:.25em}
.film-page .brand svg{width:35px;height:50px}
.film-page .nav .brand small{font-size:10px;letter-spacing:.43em;margin-top:5px!important}
.story-hero{display:grid;grid-template-columns:.95fr 1.05fr;gap:8%;padding:44px 8% 40px;align-items:center;max-width:1660px;margin:auto}
.back-link{display:inline-flex;gap:10px;color:var(--gold);text-decoration:none;border-bottom:1px solid #d4b07870;font-size:12px;line-height:1.5;padding-bottom:6px}
.story-copy>.back-link{margin-bottom:53px}
.story-copy .eyebrow{color:var(--gold);font-size:10px;letter-spacing:.25em;margin-bottom:20px}
.story-copy h1{font-size:clamp(48px,5.5vw,83px);text-transform:none;letter-spacing:-.035em;line-height:1.02;margin-bottom:29px}
.story-copy h1 em{color:var(--gold);font-weight:400}
.story-copy>p:not(.eyebrow):not(.story-tagline){max-width:390px;font-family:Georgia,serif;font-size:clamp(17px,1.5vw,22px);line-height:1.6;color:#dedace}
.story-rule{height:1px;width:35px;background:var(--gold);margin:30px 0}
.story-copy .story-tagline{font-family:Georgia,serif;color:var(--gold);font-size:29px}
.story-film{width:100%;max-width:460px;justify-self:end;align-self:center;scroll-margin-top:18px}
.film-player{position:relative;width:100%;background:#10110f;aspect-ratio:9/16;isolation:isolate}
.film-player video{width:100%;height:100%;display:block;object-fit:contain;background:#10110f}
.film-play{position:absolute;inset:0;border:0;background:transparent;color:#f1d7a8;display:grid;place-items:center}
.film-play>span{width:80px;height:80px;display:grid;place-items:center;padding-left:5px;border:1px solid #e2c38b;border-radius:50%;background:#181916bd;font-size:27px;box-shadow:0 3px 25px #0003}
.film-play:hover>span{background:#181916e8}
.film-status{font-size:12px;margin:8px 0 0;line-height:1.7;color:#e8ceb0}
.film-status:empty{display:none}
.story-film figcaption{text-align:center;font-family:Georgia,serif;font-size:13px;color:#dbd6c9;padding-top:14px}
.story-scenes{background:var(--ivory);color:var(--ink);padding:72px 7% 52px}
.story-scenes>h2{font-size:clamp(34px,4.1vw,59px);margin-bottom:18px}
.story-scenes .eyebrow{font-size:10px;margin-bottom:18px}
.scene-intro{font:23px/1.5 Georgia,serif;margin-bottom:38px}
.scene-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}
.scene-image{position:relative;display:block;overflow:hidden;cursor:zoom-in;background:transparent}
.scene-image img{width:100%;height:auto;object-fit:contain;display:block}
.scene-image>span{position:absolute;right:12px;top:12px;width:31px;height:31px;display:grid;place-items:center;border-radius:50%;border:1px solid #e4c58f;background:#16171388;color:#fff4e1;font-size:22px;line-height:1}
.scene-grid figcaption{font:clamp(18px,2vw,27px)/1.3 Georgia,serif;text-align:center;padding:20px 0}
.scene-grid figcaption small{display:block;font:9px/1.5 Arial,sans-serif;text-transform:uppercase;letter-spacing:.27em;color:#8d6c3e;margin-top:10px}
.scene-note{font:12px/1.8 Georgia,serif;color:#6e6c65;text-align:center;max-width:850px;margin:28px auto 0}
.story-transformation{display:grid;grid-template-columns:1.1fr 1fr;gap:7%;align-items:center;margin:42px 0 0;padding:42px 0 47px;border-top:1px solid #c5a57088}
.story-transformation h2{font-size:clamp(30px,3.6vw,49px);margin:0}
.story-transformation p{font:17px/1.7 Georgia,serif;max-width:400px;margin-bottom:20px}
.story-transformation .button{font-size:12px}
.story-panorama{position:relative;height:410px;overflow:hidden;background:#29271e}
.story-panorama img{width:100%;height:100%;object-fit:cover;object-position:center 57%;display:block}
.story-panorama:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,#0007)}
.story-panorama p{position:absolute;z-index:1;left:7%;bottom:42px;border-left:2px solid var(--gold);padding-left:23px;font:clamp(30px,3.7vw,53px)/1.2 Georgia,serif;color:var(--ivory);margin:0}
.story-contact{display:grid;grid-template-columns:1.8fr 1fr;gap:45px;align-items:center;padding:56px 7%}
.story-contact h2{font-size:clamp(29px,3vw,43px);border-left:2px solid var(--gold);padding-left:22px;margin:0}
.story-contact>div{display:flex;flex-direction:column;align-items:flex-start;gap:18px}
.story-contact .back-link{font-size:11px;border:0}
.story-contact .button{border:0;padding:10px 0;justify-content:flex-start;background:transparent}
.story-contact .button:hover{color:#f5dfba;background:transparent}
.story-contact .button svg{width:18px;height:18px;flex:none}
.story-contact a:focus-visible{outline:none;text-decoration:underline;text-underline-offset:5px}
.film-page footer{padding:30px 7%;background:var(--ink)}
.story-image-dialog{padding:0;border:0;border-radius:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:#11120f;color:var(--ivory);overflow:hidden}
.story-image-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.image-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:16px;padding:10px 20px;min-height:64px}
.story-image-dialog .image-toolbar h2{font:22px/1.2 Georgia,serif;margin:0 auto 0 0}
.image-toolbar .image-zoom{font:13px/1.4 Arial,sans-serif;padding:9px 12px;border:1px solid var(--gold);background:transparent;color:var(--gold);white-space:nowrap}
.story-image-dialog .close{position:static;width:44px;height:44px;display:grid;place-items:center;background:transparent;border:0;color:var(--ivory);font-size:29px;line-height:1;padding:0}
.image-stage{min-height:0;min-width:0;overflow:hidden;padding:12px;touch-action:pan-x pan-y pinch-zoom}
.story-image-dialog .image-stage img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;object-fit:contain}
.story-image-dialog .close:focus-visible,#image-dialog .close:focus-visible{outline:none;background:#ffffff26;border-radius:50%}
.story-image-dialog .close:hover,#image-dialog .close:hover{background:#ffffff26;border-radius:50%}
/* The existing homepage viewer also fits the complete image to the available screen. */
#image-dialog.image-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#11120f;color:var(--ivory);overflow:hidden}
#image-dialog.image-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
#image-dialog h2{margin:0;padding:20px 76px;font:clamp(17px,2.2vw,26px)/1.3 Georgia,serif;overflow-wrap:anywhere}
#image-dialog .close{position:absolute;top:10px;right:16px;width:44px;height:44px;padding:0;line-height:1;font-size:29px;border:0;outline:none;color:var(--ivory)}
#image-dialog #enlarged-image{min-width:0;min-height:0;overflow:hidden;padding:12px}
#image-dialog #enlarged-image img,#image-dialog #enlarged-image svg{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;margin:0}
#image-dialog .small{margin:0;padding:10px 16px;color:#c7c3b8;font:11px/1.6 Arial,sans-serif}
.image-caption{font:11px/1.6 Arial,sans-serif;text-align:center;padding:10px 16px;margin:0;color:#c7c3b8;border-top:1px solid #ffffff26}
@media(max-width:800px) and (orientation:portrait){
 .hero-copy .actions .film-entry{justify-content:center;font-size:13px;gap:12px}
 .hero-copy .actions .film-entry .play-ring{width:42px;height:42px;flex-basis:42px}
 .film-intro.transformation{grid-template-columns:1fr;padding:0;gap:0}
 .film-intro .transform-copy{padding:39px 7%;max-width:none}
 .film-intro .transform-copy h2{font-size:36px}
 .film-poster{max-width:none;max-height:540px;height:78vw;width:100%}
 .film-intro .film-poster img{object-position:center 51%}
 .film-page .nav{min-height:82px;padding:17px 6%;background:var(--ink)}
 .film-page .nav>nav:not(#mobile-nav){display:none}
 .film-page .menu-toggle{display:flex}
 .film-page .nav #mobile-nav{top:82px;background:#181916;padding:23px 6%;border-top:1px solid #ffffff18}
 .film-page .brand{font-size:19px}
 .film-page .brand svg{width:28px;height:41px}
 .story-hero{grid-template-columns:1fr;gap:25px;padding:28px 7% 35px}
 .story-copy>.back-link{margin-bottom:35px}
 .story-copy h1{font-size:54px;line-height:1.04;margin-bottom:23px}
 .story-copy>p:not(.eyebrow):not(.story-tagline){font-size:18px;max-width:450px}
 .story-copy h1 br{display:none}
 .story-copy h1 br:after{content:" "}
 .story-rule{margin:22px 0}
 .story-copy .story-tagline{font-size:25px;margin-bottom:2px}
 .story-film{justify-self:center;max-width:420px;width:100%}
 .story-scenes{padding:45px 7%}
 .story-scenes>h2{font-size:37px}
 .scene-intro{font-size:19px;margin-bottom:28px}
 .scene-grid{grid-template-columns:1fr;gap:26px;max-width:520px;margin:auto}
 .scene-grid figcaption{padding:15px 0 3px;font-size:25px}
 .scene-note{font-size:12px;margin-top:30px}
 .story-transformation{grid-template-columns:1fr;gap:22px;padding:32px 0 38px;margin-top:32px}
 .story-transformation h2{font-size:35px}
 .story-transformation p{font-size:16px}
 .story-panorama{height:310px}
 .story-panorama p{left:7%;bottom:30px;font-size:34px;padding-left:16px}
 .story-contact{grid-template-columns:1fr;padding:42px 7%;gap:27px}
 .story-contact h2{font-size:32px}
}
@media(max-width:1100px) and (orientation:landscape){
 .film-intro.transformation{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5%;padding:0 6%;min-height:0}
 .film-intro .transform-copy{padding:32px 0}
 .film-intro .transform-copy h2{font-size:clamp(28px,3.5vw,40px)}
 .film-intro .transform-copy>p:not(.eyebrow){font-size:13px;line-height:1.7}
 .film-poster{height:440px;max-width:360px}
 .story-hero{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:6%;padding:28px 7%}
 .story-copy>.back-link{margin-bottom:24px}
 .story-copy h1{font-size:clamp(34px,5vw,55px);margin-bottom:20px}
 .story-copy>p:not(.eyebrow):not(.story-tagline){font-size:16px}
 .story-copy .story-tagline{font-size:24px}
 .story-rule{margin:20px 0}
 .story-film{max-width:280px}
 .story-scenes{padding:42px 6%}
 .story-scenes>h2{font-size:36px}
 .scene-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
 .scene-grid figcaption{font-size:20px}
 .story-panorama{height:300px}
 .story-contact{gap:24px;padding:36px 6%}
 .story-contact h2{font-size:29px}
}
@media(max-width:600px){
 .image-toolbar{padding:10px 12px;gap:8px}
 .story-image-dialog .image-toolbar h2{font-size:18px}
 .image-toolbar .image-zoom{font-size:11px;padding:8px}
}
@media(max-width:380px){.hero-copy .actions .film-entry{font-size:11px;gap:10px}.story-copy h1{font-size:47px}.story-scenes>h2{font-size:33px}.film-actions .button{font-size:11px;gap:12px}}
/* Keep the wordmark discreet, with DESIGN readable on a phone. */
.nav .brand{font-size:clamp(22px,2vw,26px);gap:14px}
.nav .brand svg{width:36px;height:48px}
.nav .brand small{font-size:10px;letter-spacing:.38em}
@media(max-width:800px) and (orientation:portrait){
 .nav .brand{font-size:21px;gap:12px}
 .nav .brand svg{width:33px;height:44px}
 .nav .brand small{font-size:10px}
 body:not(.film-page) .nav{min-height:82px}
 body:not(.film-page) .hero{padding-top:82px}
 body:not(.film-page) .hero .image-note{top:calc(82px + 58vw)}
}
@media(prefers-reduced-motion:reduce){.play-ring,.scene-image img,.film-intro .film-poster img{transition:none}}

/* Complete source photographs, with matching frames and no cropped room details. */
.scene-image{aspect-ratio:706/1214;background:transparent}
.scene-image img{width:100%;height:100%;object-fit:contain;filter:none}
.scene-grid figure{min-width:0}
.scene-image img[src*="casfer-interieur-v4"],.story-image-dialog img[src*="casfer-interieur-v4"]{filter:saturate(.85) brightness(1.06)}
.film-intro .film-poster img{object-fit:contain;filter:brightness(.92)}
.film-poster{align-self:center;background:#181916}
.story-panorama{height:min(90svh,850px);background:#181916}
.story-panorama img{object-fit:contain;object-position:center}
.story-panorama:after{background:none;pointer-events:none}
.story-panorama p{background:#181916a6;padding:8px 16px;border:0}
/* No outlines, borders or shadows around any close button, including autofocus. */
dialog .close,dialog .close:focus,dialog .close:focus-visible,dialog .close:active,dialog .close:hover{
 border:0!important;outline:0!important;box-shadow:none!important;appearance:none;-webkit-appearance:none;
 width:44px;height:44px;padding:0;line-height:1;background:transparent;color:inherit;
}
dialog .close:focus-visible{color:var(--gold);background:#d4b0781a}
dialog:not(#image-dialog):not(.story-image-dialog) h2{padding-inline:48px}
#image-dialog h2{padding-inline:76px}
.language-switch{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none}
.language-switch button{border:0;background:none;color:inherit;padding:5px 3px;font:11px/1.4 Arial,sans-serif;letter-spacing:.08em;opacity:.66}
.language-switch button[aria-pressed=true]{color:var(--gold);opacity:1;text-decoration:underline;text-underline-offset:5px}
.language-switch button:hover{color:var(--gold);opacity:1}
.language-switch button:focus-visible{outline:0;color:var(--gold);text-decoration:underline;text-underline-offset:5px}
.nav{column-gap:20px}
.privacy-page .language-switch{margin-bottom:25px}
@media(max-width:800px) and (orientation:portrait){
 .nav{column-gap:8px}
 .nav .brand{font-size:19px;gap:9px}
 .nav .brand svg{width:30px;height:42px}
 .nav .brand small{font-size:10px}
 .language-switch{gap:3px;margin-left:auto}
 .language-switch button{font-size:10px;padding:6px 3px}
 .nav .menu-toggle{padding:10px}
 .film-poster{height:auto;max-height:none;aspect-ratio:706/1214;max-width:440px}
 .story-panorama{height:90svh}
 .story-panorama p{font-size:30px;bottom:20px;left:6%}
}
@media(max-width:1100px) and (orientation:landscape){
 .nav{column-gap:14px}
 .nav>nav:not(#mobile-nav){gap:18px}
 .language-switch{gap:5px}
 .story-panorama{height:90svh}
}
@media(max-width:360px){
 .nav{padding-inline:4%;column-gap:5px}
 .nav .brand{font-size:18px;gap:7px}
 .language-switch{gap:2px}
 .language-switch button{font-size:9px}
}
@media(max-width:620px) and (orientation:landscape){
 .nav .brand{font-size:18px;gap:8px}
 .nav .brand svg{width:30px;height:42px}
 .nav>nav:not(#mobile-nav){font-size:10px;gap:10px}
 .language-switch{gap:2px}
 .language-switch button{font-size:10px}
}
