/* Shared rhythm across web, print, events and portfolio. */
:root{--page-gutter:clamp(22px,5vw,74px);--section-space:clamp(56px,6.5vw,84px)}
#main-content>section{padding:var(--section-space) var(--page-gutter)}
#main-content>.scroll-statement{padding:58px var(--page-gutter)}
.scroll-statement-inner{margin-inline:auto}
.typography-refined .scroll-statement h2{max-width:850px}
.scroll-statement p{max-width:720px;font-size:18px;line-height:1.7}
#main-content>#supports-imprimes{padding-top:32px}
#main-content>#evenementiel{padding-top:68px;border-top:1px solid #ffffff14}
#main-content>.ambient-video-section{min-height:420px}
#main-content>.system-section{min-height:0}
#main-content>#methode+#systeme{padding-top:35px}
.section-head{gap:44px;margin-bottom:32px;align-items:end}
.section-head>div{min-width:0}
.keep-together{white-space:nowrap}
.section-head>p{font-size:14px;color:#b7b9ad}
.typography-refined .section-head h2{font-size:clamp(29px,3.1vw,40px);line-height:1.16;letter-spacing:-.8px;text-wrap:balance}
.typography-refined .event-offer h3{font-size:32px;line-height:1.15}
.typography-refined .print-card h3{font-size:25px;line-height:1.2}
.typography-refined .print-pack h3{font-size:29px;line-height:1.2}
.typography-refined .event-custom h3{font-size:25px;line-height:1.3}
.offers-grid .offer{padding:27px 23px;border-color:#ffffff25;border-radius:8px}
.offers-grid .offer.featured{border-color:#bba85d70}
.offers-grid .offer p{font-size:13px;line-height:1.75;min-height:0}
.offers-grid .offer ul{padding-top:14px}
.offers-grid .offer li{font-size:12px;line-height:1.7}
.offers-grid .offer-cta{margin-top:24px;font-size:12px;letter-spacing:0;text-transform:none;padding:14px 16px}
.portfolio-list{gap:48px}
.project+.project:not([hidden]){padding-top:42px;border-top:1px solid #ffffff18}
.project-content small{font-size:10px;line-height:1.6;letter-spacing:1.2px}
.project-content p{font-size:14px;color:#b7b9ad}
.print-visual>span{font-size:9px;line-height:1.4;bottom:10px;left:8px;right:8px}
.print-card-body{padding:25px}
.print-pack{margin-top:24px}
.event-grid{gap:24px}
.event-offer{padding:32px}
.event-offer .event-price{margin:24px 0}
.btn{transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}
.btn:hover{box-shadow:0 4px 20px #c8b56c12}
.btn:focus-visible,.project-link:focus-visible{outline:2px solid #dccd90;outline-offset:5px}
/* Only JavaScript-enhanced, off-screen blocks are concealed. No parallax or loops. */
.reveal.scroll-soft{transition:opacity .55s ease,transform .55s cubic-bezier(.2,.65,.3,1)!important;transition-delay:0s!important}
.reveal.scroll-soft:not(.in){opacity:0!important;transform:translateY(14px)!important}
.reveal.scroll-soft.in{opacity:1!important;transform:none!important}
.event-grid>.scroll-soft:nth-child(2),.print-grid>.scroll-soft:nth-child(2),.grid-3>.scroll-soft:nth-child(2){transition-delay:.06s!important}
.print-grid>.scroll-soft:nth-child(3),.grid-3>.scroll-soft:nth-child(3){transition-delay:.12s!important}
.scroll-soft:focus-within{opacity:1!important;transform:none!important;transition:none!important}
@media(max-width:980px){.project{gap:22px}.portfolio-list{gap:34px}.project+.project:not([hidden]){padding-top:30px}.offers-grid .offer h3{min-height:0}}
@media(max-width:600px){#main-content>section{padding:52px 20px}#main-content>.scroll-statement{padding:40px 20px}#main-content>#supports-imprimes{padding-top:22px}#main-content>#evenementiel{padding-top:48px}.section-head{gap:17px;margin-bottom:26px}.section-head>p{font-size:13px}.scroll-statement p{font-size:15px}.event-offer{padding:25px}.typography-refined .event-offer h3{font-size:28px}.typography-refined .print-card h3{font-size:23px}#main-content>.ambient-video-section{min-height:330px}.reveal.scroll-soft:not(.in){transform:translateY(9px)!important}.event-grid>.scroll-soft,.print-grid>.scroll-soft,.grid-3>.scroll-soft{transition-delay:0s!important}.print-included{gap:13px 10px}.event-included{margin-bottom:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.reveal.scroll-soft,.reveal.scroll-soft:not(.in),.reveal.scroll-soft.in{opacity:1!important;transform:none!important;transition:none!important}.btn{transition:none!important}}
@media print{.reveal.scroll-soft{opacity:1!important;transform:none!important;transition:none!important}}

/* A measured rotation; manual controls remain available on every screen. */
.carousel-pause{border:1px solid #bba85d70;border-radius:4px;background:transparent;color:#e4d8aa;padding:8px 12px;cursor:pointer;font:inherit;font-size:12px}
.carousel-controls button:focus-visible{outline:2px solid #dccd90;outline-offset:4px}
@media(max-width:980px){
  .carousel-ready{overflow:hidden;padding:0 0 12px}
  .carousel-ready .carousel-stage{display:block;position:relative;height:350px}
  .carousel-ready .carousel-item{position:absolute;left:50%;top:50%;width:calc(100% - 20px);min-height:310px;transform:translate(-50%,-50%) translateX(calc(var(--offset) * 110%))!important;opacity:0!important;pointer-events:none}
  .carousel-ready .carousel-item[data-active="true"]{opacity:1!important;pointer-events:auto}
  .carousel-ready .carousel-controls{display:flex;flex-wrap:wrap;gap:12px}
}
@media(prefers-reduced-motion:reduce){.carousel-item{transition:none!important}}
@media print{.carousel-ready .carousel-stage{display:block;height:auto}.carousel-ready .carousel-item{position:static;width:100%;transform:none!important;opacity:1!important;break-inside:avoid}.carousel-controls{display:none!important}}

/* Constant speed follows the fractional carousel position; no easing or hover stop. */
.carousel-continuous .carousel-item{transition:none!important;opacity:clamp(0,calc(2.5 - var(--abs)),1);will-change:transform}
@media(max-width:980px){.carousel-continuous .carousel-item{opacity:1!important}.carousel-continuous .carousel-stage{height:350px}}

/* A distinct coastal shot below the portfolio; static fallback on mobile/reduced motion. */
.ambient-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3;opacity:.78;filter:brightness(1.16) contrast(1.04) saturate(1.08)}
#images-locales{scroll-margin-top:90px}
