/* Six pieces of a canopy, held together by the photographs. */
html{scroll-behavior:auto;overflow-anchor:none}
body,main{overflow-anchor:none}
.page-heading,.project-arrival,.home-arrival,.arrival-bottom{border-bottom:0;border-top:0}
.page-heading::after,.page-heading::before{border:0}
.portfolio{padding-top:0}
.expertise-canopy{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(8,clamp(85px,8.5vw,142px));gap:10px;padding-top:0;padding-bottom:100px}
.expertise-tile{position:relative;overflow:hidden;isolation:isolate;min-width:0;background:var(--pine)}
.expertise-tile:nth-child(1){grid-area:1/1/4/7;border-radius:0 150px 0 150px}
.expertise-tile:nth-child(2){grid-area:1/7/3/13;border-radius:130px 0 130px 0}
.expertise-tile:nth-child(3){grid-area:3/8/6/13;border-radius:110px 0 0 110px}
.expertise-tile:nth-child(4){grid-area:4/1/6/8;border-radius:0 0 130px 0}
.expertise-tile:nth-child(5){grid-area:6/2/9/8;border-radius:130px 0 130px 0}
.expertise-tile:nth-child(6){grid-area:6/8/9/13;border-radius:0 130px 0 0}
.expertise-tile>img{transition:transform 1.3s cubic-bezier(.22,1,.36,1);height:100%;width:100%;object-fit:cover}
.expertise-index{display:none}
.expertise-reveal{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;padding:30px;background:#14281ec2;color:var(--paper);opacity:0;transition:opacity .45s ease}
.expertise-reveal h2{font-size:clamp(38px,4.8vw,82px);line-height:1.02;letter-spacing:-.045em;transform:translateY(14px);transition:transform .6s cubic-bezier(.22,1,.36,1)}
.expertise-cta{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:10px 16px;background:var(--paper);color:var(--pine);border-radius:0 17px 0 17px;font:500 11px/1.5 var(--sans);transform:translateY(22px);transition:transform .65s cubic-bezier(.22,1,.36,1),background .25s,color .25s}
.expertise-cta svg{width:22px;height:22px}
.expertise-tile:hover .expertise-reveal,.expertise-tile:focus-visible .expertise-reveal{opacity:1}
.expertise-tile:hover>img,.expertise-tile:focus-visible>img{transform:scale(1.055) rotate(-.35deg)}
.expertise-tile:hover h2,.expertise-tile:hover .expertise-cta,.expertise-tile:focus-visible h2,.expertise-tile:focus-visible .expertise-cta{transform:translateY(0)}
.expertise-cta:hover{background:#675b4e;color:white}
.expertise-tile:focus-visible{outline-offset:4px}
/* A control, rather than a permanent label over the garden. */
.garden-film .film-toggle{left:auto;right:20px;bottom:20px;width:44px;height:44px;padding:0;gap:0;display:grid;place-items:center;border-radius:50%;background:#f4f2e9d9;color:#273e30;border:1px solid #ffffff70;opacity:0;transform:translateY(5px);pointer-events:none;transition:opacity .25s,transform .35s,background .25s,color .25s}
.garden-film .film-glyph{width:22px;height:22px;padding:0;display:grid;place-items:center;border:0}
.garden-film .film-glyph svg{width:21px;height:21px}
.garden-film:hover .film-toggle,.garden-film:focus-within .film-toggle,.cinema-frame:hover .film-toggle,.garden-film.show-controls .film-toggle,.garden-film[data-user-paused=true] .film-toggle,.garden-film[data-blocked=true] .film-toggle{opacity:1;transform:none;pointer-events:auto}
.garden-film .film-toggle:hover{background:#253b2d;color:#fff;transform:none}
.cinema-film .film-toggle{top:24px;bottom:auto;left:auto;right:24px}
.film-button-label{display:none}
.garden-film .film-status:empty{display:none}
[data-arrow-corner=left] .image-arrow,[data-arrow-corner=left] .walk-arrow{left:20px;right:auto}
[data-arrow-corner=right] .image-arrow,[data-arrow-corner=right] .walk-arrow{right:20px;left:auto}
[data-arrow-corner=left]:hover .image-arrow,[data-arrow-corner=left]:hover .walk-arrow{transform:translate(4px,-4px)}
@media(max-width:720px){
 .expertise-canopy{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(9,70px);gap:7px;padding-inline:var(--gutter);padding-bottom:70px}
 .expertise-tile:nth-child(1){grid-area:1/1/4/4;border-radius:0 65px 0 65px}
 .expertise-tile:nth-child(2){grid-area:1/4/3/7;border-radius:65px 0 65px 0}
 .expertise-tile:nth-child(3){grid-area:3/4/6/7;border-radius:65px 0 0 65px}
 .expertise-tile:nth-child(4){grid-area:4/1/6/4;border-radius:0 0 60px 0}
 .expertise-tile:nth-child(5){grid-area:6/1/9/4;border-radius:65px 0 65px 0}
 .expertise-tile:nth-child(6){grid-area:6/4/10/7;border-radius:0 65px 0 0}
 .expertise-reveal{padding:15px 8px;gap:15px;background:linear-gradient(0deg,#162b21a8,#162b2120);opacity:1}
 .expertise-reveal h2{font-size:clamp(28px,7.3vw,43px);transform:none;text-align:center;text-shadow:0 2px 15px #13281e55}
 .expertise-cta{font-size:9px;gap:8px;padding:7px 10px;transform:none}
 .expertise-cta svg{width:17px;height:17px}
 .garden-film .film-toggle{width:40px;height:40px;right:16px;bottom:16px}
 .cinema-film .film-toggle{top:20px;bottom:auto;right:20px}
}
@media(hover:none){.expertise-reveal{opacity:1}.expertise-reveal h2,.expertise-cta{transform:none}}
@media(prefers-reduced-motion:reduce){.expertise-tile img,.expertise-reveal,.expertise-reveal h2,.expertise-cta,.garden-film .film-toggle{transition:none}}

@media(max-width:720px){.project-story{display:block;padding-top:55px}.project-story>.eyebrow{margin-bottom:24px}.project-story h2{font-size:clamp(29px,7.7vw,38px);max-width:none;line-height:1.38}.project-story p{font-size:16px;line-height:1.8;max-width:none;margin-top:22px}}

/* Filled calls to action; no resting underline borrowed from text links. */
a.text-link,button.text-link,.header-contact,.walk-down{border:0;box-shadow:none;text-decoration:none}
.text-link::after,.header-contact::after,.walk-down::after{border:0}
.site-header .header-contact,.site-header.is-overlay .header-contact,.site-header.is-docked .header-contact{border:0;background:#fff;color:var(--bark);border-radius:0 19px 0 19px;padding:12px 18px;gap:25px;transition:background .3s,color .3s,transform .35s}
.site-header .header-contact:hover,.site-header.is-overlay .header-contact:hover,.site-header.is-docked .header-contact:hover{background:var(--bark);color:#fff;border:0}
.walk-down{display:inline-flex;align-items:center;gap:22px;min-height:48px;padding:11px 16px;margin-left:-16px;border-radius:0 20px 0 20px;transition:background .3s,color .3s,transform .35s}
.walk-down>span:last-child{display:grid;place-items:center;width:27px;height:27px;font-size:25px;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.walk-down:hover,.walk-down:focus-visible{background:var(--paper);color:var(--pine)}
.walk-down:hover>span:last-child,.walk-down:focus-visible>span:last-child{transform:translateY(4px)}
.contact-form-actions>.contact-back{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px!important;background:#e7dfd3;border:0;border-radius:0 18px 0 18px;font-size:12px;color:var(--bark);min-width:100px;transition:background .25s,color .25s}
.contact-back svg{width:18px;height:18px;transition:transform .3s}
.contact-form-actions>.contact-back:hover{background:var(--bark);color:#fff}
.contact-back:hover svg{transform:translateX(-3px)}
.contact-form-actions>.contact-next,.contact-form-actions>.contact-submit{border:0;background:var(--pine);color:var(--paper)}
.contact-form-actions>.contact-next:hover,.contact-form-actions>.contact-submit:hover{background:var(--bark);color:#fff}
.contact-form-actions .enter-symbol{width:22px;height:22px}
/* Fieldset's native legend layout cannot distribute the remaining height. */
body[data-page=contact] .contact-journey.is-stepped>[data-contact-step="1"]{display:flex;flex-direction:column}
body[data-page=contact] .contact-journey.is-stepped>[data-contact-step="1"][hidden]{display:none}
body[data-page=contact] .contact-project-fields{display:flex;flex-direction:column;flex:1;min-height:0}
body[data-page=contact] .contact-project-fields>label{flex-shrink:0}
body[data-page=contact] .contact-project-fields>label:has(textarea){display:flex;flex-direction:column;flex:1;min-height:0;margin-bottom:0}
body[data-page=contact] .contact-project-fields textarea{flex:1;min-height:65px;height:0;padding:10px 12px;border:0;background:#e9e3d9;border-radius:0 18px 0 18px;resize:none;line-height:1.65}
body[data-page=contact] .contact-project-fields textarea:focus{outline:1px solid var(--bark);outline-offset:2px}
@media(max-width:720px){.contact-form-actions>.contact-back{min-width:85px;padding-inline:10px!important}.walk-down{font-size:12px;gap:18px}}
@media(max-height:500px) and (min-width:721px){body[data-page=contact] .contact-project-fields{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;align-items:stretch}body[data-page=contact] .contact-project-fields textarea{min-height:65px;flex:1}}

.contact-journey #form-status:empty{display:none}

/* Wide métier photographs keep their native aspect and never inherit the hero camera. */
.service-opening-image{height:auto;min-height:0;aspect-ratio:2000/1333;max-width:1400px;width:calc(100% - 2 * var(--gutter));margin:0 auto;overflow:hidden;border-radius:0 clamp(55px,8vw,130px) 0 0}
.service-opening-image img{width:100%;height:100%;object-fit:cover;transform:none!important;animation:none!important;object-position:center;image-rendering:auto}
.service-description{padding-top:65px}
@media(max-width:720px){.service-opening-image{width:100%;max-width:none;aspect-ratio:1.5;border-radius:0 65px 0 0}.service-description{display:block;padding-top:40px}.service-description>.eyebrow{margin-bottom:24px}.service-description p{font-size:16px;line-height:1.85}}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}

/* The form uses a quiet underline and its own short validation messages. */
body[data-page=contact] .contact-journey :is(input:not([type=radio],[type=checkbox]),textarea):focus,
body[data-page=contact] .contact-journey :is(input:not([type=radio],[type=checkbox]),textarea):focus-visible{outline:none;outline-offset:0;box-shadow:inset 0 -1px 0 #71615588;border-color:#71615588}
body[data-page=contact] .contact-journey textarea:focus{background:#e6dfd3}
body[data-page=contact] .contact-journey .project-choice:has(input:focus-visible){outline:1px solid #71615566;outline-offset:2px}
body[data-page=contact] .contact-journey .consent input:focus-visible{outline:1px solid #71615588;outline-offset:2px}
.contact-journey .field-error{display:block;flex:none;min-height:15px;margin-top:5px;font:400 11px/1.4 var(--sans);letter-spacing:0;color:#705342}
.contact-journey .consent .field-error{font-size:10px}
.contact-journey label:has(textarea) .field-error{margin-top:5px}

.contact-journey :is(button,a):focus-visible{outline:1px solid #71615577;outline-offset:3px}

/* Italic type keeps its natural word space, without layout padding. */
body :is(h1,h2,h3,h4,legend) em,.footer-title em{padding-inline:0!important;margin-inline:0!important;text-indent:0!important}
body>footer{border-top-right-radius:clamp(70px,10vw,155px);overflow:hidden}
.service-arrival .arrival-photo{transform:none!important;animation:none!important;object-position:50% 50%}
.service-arrival h1{font-size:clamp(75px,10.2vw,170px);line-height:1.05;max-width:100%}
@media(max-width:720px){.service-arrival h1{font-size:clamp(53px,14vw,83px);line-height:1.08}.service-arrival .arrival-copy{bottom:155px}.service-arrival .arrival-bottom{gap:20px}body>footer{border-top-right-radius:72px}}

.cinema-film .film-toggle{top:auto;bottom:90px;right:var(--gutter)}

/* The heritage reads as a single signature, even over a bright photograph. */
.arrival-heritage{flex-direction:column;align-items:flex-start;gap:3px}
.arrival-heritage>span{font-size:clamp(15px,1.5vw,21px);font-weight:600;line-height:1.45;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 2px #10251de0,0 3px 16px #10251da0}
.service-arrival .arrival-bottom{justify-content:flex-end}
body[data-page=entretien] .service-description p{margin-bottom:18px;white-space:normal;word-spacing:normal}
.maintenance-services{max-width:710px;margin:8px 0 20px}
.maintenance-services h2{font:500 15px/1.65 var(--sans);letter-spacing:0;margin:0 0 8px}
.maintenance-services ul{list-style:disc;margin:0;padding:0 0 0 20px}
.maintenance-services li{padding-left:3px;margin:0 0 5px;font-size:15px;line-height:1.7;white-space:normal;word-spacing:normal}
.maintenance-services li::marker{color:var(--bark);font-size:.8em}
@media(max-width:720px){.service-arrival .arrival-bottom{align-items:stretch}.maintenance-services h2,.maintenance-services li{font-size:16px}.arrival-heritage{gap:2px}}
@media(max-height:500px) and (max-width:720px){.home-arrival .arrival-heritage{top:100px}.home-arrival .arrival-heritage strong{font-size:52px}.home-arrival .arrival-heritage>span{font-size:13px}.home-arrival .arrival-copy{bottom:86px}.home-arrival .arrival-copy h1{font-size:50px}.home-arrival .arrival-copy>.eyebrow{margin-bottom:12px}}
