/* ORILIS editorial refinement: approved brand, clearer rhythm, purposeful motion. */

/* Legible navigation and secondary information across the shared shell. */
.nav{font-size:11px;letter-spacing:.075em;gap:20px}
.nav a{min-height:44px;display:inline-flex;align-items:center}
.site-header{transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease}
.site-header.is-solid{background:var(--paper);backdrop-filter:none}
.site-header.is-solid :focus-visible{outline-color:var(--burgundy)}
.section-kicker{font-size:11px;letter-spacing:.14em;line-height:1.6}
.availability-teaser .section-kicker,.office-page .overview-directory .section-kicker{color:#681e2d}
.building-back,.prestations-back{gap:10px;font-size:12px;letter-spacing:.06em}
.building-nav a span,.office-lightbox-close span,.office-lightbox figcaption{font-size:11px;letter-spacing:.06em}
.building-fact span{font-size:12px;color:#62534e}
.office-lightbox-arrow:focus-visible{outline:2px solid #ead5ad;outline-offset:4px}
.footer-refined .footer-navigation a,.footer-refined .footer-contact-links a,.footer-commercial>span{font-size:12px;line-height:1.8}
.site-footer a{min-height:44px}
.availability-back,.availability-source,.availability-sort label{font-size:12px}
.availability-hero p{color:#f0dce0}
.availability-teaser>div>div>span{color:#62534e;font-size:12px}
.contact-form label,.contact-form .field-label,.form-note{font-size:12px}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:#68574f;opacity:1}
@media(max-width:1020px){.site-header .nav{font-size:16px;gap:0}}
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-drawer:cubic-bezier(.32,.72,0,1)}
::selection{background:#681e2d;color:#fffaf4}
html{scroll-padding-top:100px}
body{caret-color:var(--burgundy)}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid var(--burgundy);outline-offset:5px}
:where(.building-hero,.prestations-hero,.availability-hero,.final-cta,.site-header:not(.is-scrolled)) :focus-visible{outline-color:#f4d6aa}
.reveal,.reveal.in-view{opacity:1;transform:none;transition:none}
.preloader{display:none}
.section{padding-top:88px;padding-bottom:88px}
.section-title{font-size:clamp(38px,4.5vw,68px);line-height:1.08;max-width:1050px}
.section-lede{font-size:15px;line-height:1.8;max-width:72ch}
.btn{gap:14px;font-size:11px;letter-spacing:.08em;min-height:50px;transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease,transform 120ms var(--ease-out)}
.btn:active,.partners-carousel-controls button:active{transform:scale(.97)}
.btn svg,.read svg,.universe-address svg{flex:none;width:20px;height:20px}
.building-hero{min-height:78svh;padding-bottom:64px}
.building-hero-bg{inset:0;transform:none}
:is(.office-page,.hotel-page,.gallery-page,.services-page) .building-hero h1{font-size:clamp(44px,5.6vw,80px);line-height:1.04;max-width:1080px}
:is(.office-page,.hotel-page,.gallery-page,.services-page) .building-hero p{font:400 16px/1.8 var(--sans);max-width:76ch;color:#f3e7e4}
.building-back,.prestations-back{margin-bottom:28px;min-height:44px;display:inline-flex;align-items:center}
.building-hero .eyebrow,.prestations-hero .eyebrow{letter-spacing:.12em;line-height:1.7}
.building-hero .story-cta{margin-top:26px;min-height:48px}
.office-labels a{font-size:12px;line-height:1.5;min-height:48px;display:inline-flex;align-items:center}
.building-facts{border:0}
.building-fact{padding:18px 0}
.building-fact strong{font-size:19px}
.office-media-block+.office-media-block{margin-top:76px}
.office-media-heading{grid-template-columns:1fr}
.office-media-heading>span{display:none}
.office-media-heading h2{font-size:clamp(32px,4vw,56px);line-height:1.12}
.office-gallery-grid{gap:16px;grid-template-rows:repeat(2,minmax(180px,22vw))}
.office-gallery-item img{transition:transform 350ms var(--ease-out)}
.office-gallery-item span{font-size:11px;letter-spacing:.04em;line-height:1.4}
.office-gallery-item::after{background:linear-gradient(0deg,rgba(25,7,12,.85),transparent 42%)}
.office-gallery-item:hover img,.office-gallery-item:focus-visible img{transform:none;filter:none}
.office-lightbox{transition:none}
.office-lightbox-close,.office-lightbox-arrow{min-width:44px;min-height:44px}
.programme-item{transition:background-color 180ms ease}
.programme-item:hover{padding-left:0;background:transparent}
.programme-item .meta{font-size:13px;line-height:1.7}
.universe-enquiry{background:var(--paper)}
.universe-enquiry-inner{display:flex;justify-content:space-between;align-items:center;gap:48px}
.universe-enquiry h2{font:500 clamp(36px,4vw,56px)/1.1 var(--serif);margin:0 0 18px}
.universe-enquiry p{max-width:65ch;font-size:15px;line-height:1.8;color:#62534e;margin:0}
.universe-enquiry .btn{flex-shrink:0;background:var(--burgundy);color:#fff}
.universe-address{padding:42px 5vw;background:#ede2d5}
.universe-address>.container{display:flex;justify-content:space-between;align-items:center;gap:32px}
.universe-address h2{font:500 28px/1.2 var(--serif);margin:0 0 12px}
.universe-address p{font-size:13px;margin:0;color:#62534e;line-height:1.7}
.universe-address-links{display:flex;flex-direction:column;gap:4px}
.universe-address a{display:flex;align-items:center;gap:12px;min-height:44px;font-size:12px;color:var(--burgundy);text-decoration:underline;text-underline-offset:5px}
.process-grid{gap:28px;border-left:0;margin-top:46px}
.process-step{border:0;padding:24px 0;min-height:0}
.process-step .step-no{font-size:14px;letter-spacing:0;font-variant-numeric:tabular-nums}
.process-step h3{margin:26px 0 14px;font-size:28px;line-height:1.18}
.process-step p{font-size:14px;line-height:1.8}
.news-grid{display:block;margin-top:42px}
.news-card{display:grid;grid-template-columns:110px minmax(0,1fr) minmax(180px,.8fr) 210px;gap:24px;align-items:center;border:0;border-top:1px solid var(--line);min-height:0;padding:30px 0;transition:none}
.news-card:last-child{border-bottom:1px solid var(--line)}
.news-card:hover{transform:none;box-shadow:none}
.news-card h3{margin:0;font-size:28px}
.news-card p{font-size:14px;line-height:1.7}
.news-card .date{font-size:11px;letter-spacing:.06em}
.news-card .read{display:flex;align-items:center;justify-content:flex-end;gap:12px;margin:0;font-size:11px;letter-spacing:.03em;text-transform:none;min-height:44px}
.final-cta h2{font-size:clamp(48px,7vw,92px);line-height:1.02}
.final-cta-bg{transform:none}
.contact-copy p{font-size:15px;line-height:1.8}
.contact-form :is(input,select,textarea){font-size:16px}
.prestations-hero h1{font-size:clamp(44px,6vw,86px);line-height:1.05}
.prestations-grid{border:0;column-gap:64px}
.prestation-card,.prestation-card--wide{border:0;border-top:1px solid var(--line);background:transparent;padding:28px 0;min-height:230px}
.prestation-index{font-size:12px;letter-spacing:.05em}
.prestation-value{font-size:clamp(38px,4vw,56px)}
.prestation-copy{font-size:14px;line-height:1.8;max-width:65ch}
.prestation-card--wide{min-height:180px}
.availability-teaser .btn{font-size:11px}
.availability-filters{border:0;border-radius:0;background:transparent;padding:0 20px 0 0;border-right:1px solid var(--line)}
.availability-field label,.availability-range legend,.availability-filters summary{font-size:13px}
.availability-field select,.availability-range input,.availability-sort select{font-size:14px;min-height:48px}
.availability-range label,.availability-range-note,.availability-reset,.availability-note{font-size:12px;color:#62534e}
.availability-overview,.availability-results-bar>p{font-size:14px;color:#62534e}
.availability-card{border:0;border-top:1px solid #cdb9a8;border-radius:0;background:transparent;padding:24px 8px 20px}
.availability-results{gap:28px 32px}
.availability-card-top{font-size:12px}
.availability-lot-type{font-size:11px;color:#62534e;margin-top:20px}
.availability-card h2{font-size:27px;margin-bottom:18px}
.availability-area strong{font-family:var(--sans);font-size:36px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.availability-area-detail,.availability-card dl>div,.availability-card>a{font-size:12px}
.availability-card dt,.availability-area-detail{color:#62534e}
.availability-card dd{font-variant-numeric:tabular-nums}
.lot-status{font-size:11px;background:#dfebdf;color:#265333}
.lot-status-option{color:#6d481a}
.availability-pagination span{font-variant-numeric:tabular-nums}
.availability-pagination button{border-radius:3px;font-size:12px}
@media(hover:hover) and (pointer:fine){
.office-gallery-item:hover img,.gallery-item:hover img{transform:scale(1.025)}
.news-card .read:hover,.universe-address a:hover{text-decoration:underline;text-underline-offset:5px}
.btn:hover svg{transform:translate(2px,-2px)}
.btn svg{transition:transform 160ms var(--ease-out)}
}
@media(max-width:1020px){
.news-card{grid-template-columns:100px 1fr;gap:12px 24px}
.news-card p,.news-card .read{grid-column:2}
.news-card .read{justify-content:flex-start}
.universe-enquiry-inner{align-items:flex-start;flex-direction:column;gap:26px}
}
@media(max-width:680px){
.section{padding-top:60px;padding-bottom:60px}
.section-title{font-size:38px}
.building-hero{min-height:76svh;padding:116px 6vw 42px}
:is(.office-page,.hotel-page,.gallery-page,.services-page) .building-hero h1{font-size:42px;line-height:1.08}
:is(.office-page,.hotel-page,.gallery-page,.services-page) .building-hero p{font-size:14px;line-height:1.7}
.office-gallery-grid{gap:8px;grid-template-rows:minmax(260px,70vw) minmax(150px,42vw)}
.office-media-heading h2{font-size:34px}
.office-media-block+.office-media-block{margin-top:54px}
.office-gallery-item span{font-size:10px}
.process-grid{gap:0;border:0}
.process-step{display:grid;grid-template-columns:36px 1fr;gap:0 18px;border-top:1px solid var(--line);padding:24px 0}
.process-step .step-no{padding-top:5px}
.process-step h3{margin:0 0 12px;font-size:27px}
.process-step p{grid-column:2}
.news-card{grid-template-columns:1fr;gap:14px;padding:26px 0}
.news-card p,.news-card .read{grid-column:1}
.news-card .read{margin-top:4px}
.universe-address{padding:34px 6vw}
.universe-address>.container{flex-direction:column;align-items:flex-start;gap:20px}
.prestations-grid{column-gap:0}
.prestation-card,.prestation-card--wide{min-height:0;padding:24px 0;gap:18px}
.prestation-value,.prestation-card--wide .prestation-value{margin-top:8px}
.availability-filters{border-right:0;padding:0}
.availability-field select,.availability-range input,.availability-sort select{font-size:16px}
.availability-results{gap:20px}
.final-cta h2{font-size:52px}
}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
.btn:active,.partners-carousel-controls button:active{transform:none}
}

/* Button surfaces respond to intent; the action label always stays readable. */
.motion-button{position:relative;isolation:isolate;overflow:hidden;gap:14px;transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease,transform 160ms var(--ease-out)}
.motion-button::before{content:"";position:absolute;z-index:-1;inset:0;background:currentColor;opacity:.09;transform:scaleX(0);transform-origin:right;transition:transform 200ms var(--ease-out);pointer-events:none}
.motion-button .button-label{position:relative;transition:transform 160ms var(--ease-out)}
.motion-button .button-icon{position:relative;flex:0 0 30px;display:grid;place-items:center;width:30px;height:30px;border:1px solid color-mix(in srgb,currentColor 28%,transparent);border-radius:50%;background:transparent;transition:border-color 180ms ease}
.motion-button .button-icon svg{width:18px;height:18px;transition:transform 180ms var(--ease-out)}
.motion-button .button-icon:not(.spaces-cta-arrow){margin-right:-6px}
.story-cta.motion-button::after{content:none}
.story-cta.motion-button{font-size:11px;letter-spacing:.08em;padding:10px 18px;min-height:50px}
.motion-button:active{transform:scale(.97)}
.motion-button:focus-visible::before{transform:scaleX(1)}
.motion-button:focus-visible,.motion-button:focus-visible :is(.button-label,.button-icon svg){transition:none;transform:none}
.motion-button:disabled,.motion-button[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
@media(hover:hover) and (pointer:fine){
  .motion-button:not(:disabled):not([aria-disabled="true"]):hover::before{transform:scaleX(1);transform-origin:left}
  .motion-button:hover .button-label{transform:translateX(-2px)}
  .motion-button:hover .button-icon svg{transform:translate(2px,-2px)}
  .motion-button:hover .spaces-cta-arrow{transform:none;background:transparent}
}
@media(prefers-reduced-motion:reduce){
  .motion-button,.motion-button *,.motion-button::before{transition:none!important}
  .motion-button:active,.motion-button:hover .button-label,.motion-button:hover .button-icon svg{transform:none}
}

/* A photographic editorial spread: one panorama, four universes, two final views. */
.immersion-gallery{background:var(--burgundy-deep);color:var(--paper);padding-bottom:88px}
.immersion-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:48px}
.immersion-heading .section-title{margin-bottom:0;max-width:920px}
.immersion-heading>p{font-size:12px;line-height:1.7;max-width:200px;color:#ead5ad;margin:0 0 5px}
.gallery .immersion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto;gap:42px 28px;margin-top:48px}
.gallery .immersion-grid>.gallery-item:nth-child(n){display:block;grid-column:auto;grid-row:auto;overflow:visible;min-width:0}
.gallery .immersion-grid>.immersion-view--lead:nth-child(n){grid-column:1/-1}
.gallery .immersion-grid .immersion-item{display:block;aspect-ratio:4/3;height:auto;background:#2a0e15}
.gallery .immersion-view--lead .immersion-item,.gallery .immersion-view:nth-child(n+6) .immersion-item{aspect-ratio:16/9}
.gallery .immersion-grid .immersion-item::after{content:none}
.gallery .immersion-grid .immersion-item img{height:100%;width:100%;object-fit:cover;transition:transform 350ms var(--ease-out)}
.gallery .immersion-grid .immersion-item .immersion-expand{display:grid;place-items:center;position:absolute;inset:auto 20px 20px auto;width:44px;height:44px;border-radius:50%;background:var(--paper);color:var(--burgundy);font-size:inherit;transition:transform 180ms var(--ease-out)}
.immersion-view figcaption{display:flex;justify-content:space-between;gap:20px;align-items:baseline;padding-top:17px}
.immersion-view figcaption strong{font:500 clamp(24px,2.5vw,34px)/1.15 var(--serif)}
.immersion-view figcaption>span{font-size:11px;line-height:1.6;color:#ead5ad;text-align:right}
.immersion-view--lead figcaption strong{font-size:clamp(28px,3vw,42px)}
.gallery .immersion-grid .immersion-item:focus-visible{outline:2px solid var(--champagne-light);outline-offset:6px}
.office-media .office-page-gallery{display:block}
.office-media-block{display:grid;grid-template-columns:minmax(200px,.65fr) minmax(0,1.35fr);align-items:center;gap:48px}
.office-media-heading{margin:0}
.office-media-heading h2{font-size:clamp(30px,3.4vw,48px)}
.office-media-block .office-gallery-grid--single{display:grid;grid-template-columns:1fr;grid-template-rows:none}
.office-gallery-grid--single .office-gallery-item{height:auto;aspect-ratio:4/3}
.office-gallery-grid--single .office-gallery-item img{width:100%;height:100%;object-fit:cover}
.office-gallery-grid--single .office-gallery-item span{font-size:11px;letter-spacing:.04em;line-height:1.6;max-width:calc(100% - 44px)}
.office-media-block+.office-media-block{padding-top:48px;margin-top:48px;border-top:1px solid var(--line)}
.prestations-visual-grid figure{margin:0;overflow:hidden}
.prestations-visual-grid img{width:100%;height:100%;object-fit:cover}
@media(hover:hover) and (pointer:fine){
.gallery .immersion-grid .immersion-item:hover img{transform:scale(1.025)}
.gallery .immersion-grid .immersion-item:hover .immersion-expand{transform:rotate(8deg)}
}
@media(max-width:1020px){
.immersion-heading{flex-direction:column;align-items:flex-start;gap:20px}
.immersion-heading>p{max-width:none}
.office-media-block{grid-template-columns:1fr;gap:26px}
}
@media(max-width:680px){
.immersion-gallery{padding-bottom:60px}
.gallery .immersion-grid{grid-template-columns:1fr;gap:30px;margin-top:32px}
.gallery .immersion-grid>.immersion-view--lead:nth-child(n){grid-column:auto}
.gallery .immersion-view--lead .immersion-item{aspect-ratio:4/3}
.immersion-view figcaption{gap:8px;flex-direction:column}
.immersion-view figcaption strong,.immersion-view--lead figcaption strong{font-size:28px}
.immersion-view figcaption>span{text-align:left;font-size:12px}
.gallery .immersion-grid .immersion-item .immersion-expand{right:14px;bottom:14px}
.office-media-block+.office-media-block{padding-top:32px;margin-top:32px}
.office-media-heading h2{font-size:32px}
}
@media(prefers-reduced-motion:reduce){
.gallery .immersion-grid .immersion-item:hover img,.gallery .immersion-grid .immersion-item:hover .immersion-expand{transform:none}
}
