/* Centered masthead. The compensating space keeps the document stable while it contracts. */
:root{--header-open-height:132px;--header-compact-height:98px;--admin-bar-offset:0px;--page-progress:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--admin-bar-offset) + var(--header-compact-height) + 22px)}
html.monalu-scrolling{scroll-behavior:auto!important;overflow-anchor:none}
.header-marker{height:0;pointer-events:none}
.header{display:grid;grid-template-columns:minmax(0,1fr) 260px minmax(0,1fr);grid-template-rows:88px 44px;grid-template-areas:"signature brand cta" "nav nav nav";column-gap:24px;row-gap:0;height:var(--header-open-height);padding:0 max(6%,calc((100vw - 1380px)/2));position:sticky;top:var(--admin-bar-offset);z-index:80;background:rgba(255,249,252,.98);border-bottom:1px solid #e9cbd9;box-shadow:0 6px 30px #54203800;transition:height .45s cubic-bezier(.22,1,.36,1),grid-template-rows .45s cubic-bezier(.22,1,.36,1),box-shadow .45s,background .45s;isolation:isolate}
.admin-bar .header{top:var(--admin-bar-offset,32px)}
.header .brand{grid-area:brand;justify-self:center;width:228px;max-width:100%;transition:width .45s cubic-bezier(.22,1,.36,1);display:block;line-height:0}
.header .brand img{width:100%;height:auto;filter:brightness(.66) saturate(.9)}
.header-signature{grid-area:signature;justify-self:start;line-height:1.6}
.header-signature>span{font-size:9px;letter-spacing:1.9px;color:var(--rose);display:block}
.header-signature>small{font-family:var(--serif);font-style:italic;font-size:14px;display:block;margin-top:3px;color:#795262}
.header .nav-cta{grid-area:cta;justify-self:end;margin:0;font-size:11px;padding:12px 19px;gap:16px;min-height:44px;white-space:nowrap}
.cta-short{display:none}
.header .nav{grid-area:nav;position:static;display:flex;justify-content:center;align-items:center;gap:36px;height:44px;padding:0;border:0;font-size:12px;width:100%;transition:height .45s cubic-bezier(.22,1,.36,1)}
.header .nav a{position:relative;display:flex;align-items:center;height:100%;padding:0 2px;white-space:nowrap}
.header .nav a:after{content:"";position:absolute;bottom:4px;left:2px;right:2px;height:1px;background:var(--rose);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.22,1,.36,1)}
.header .nav a:hover:after,.header .nav a[aria-current=location]:after{transform:scaleX(1)}
.header .nav a[aria-current=location]{color:var(--rose)}
.header .menu-toggle{display:none}
.header-space{height:0;transition:height .45s cubic-bezier(.22,1,.36,1)}
.header.is-compact{height:var(--header-compact-height);grid-template-rows:58px 40px;background:rgba(255,248,252,.94);box-shadow:0 6px 28px #58223812;backdrop-filter:blur(15px)}
.header.is-compact .brand{width:152px}
.header.is-compact .nav{height:40px}
.header.is-compact+.header-space{height:calc(var(--header-open-height) - var(--header-compact-height))}
.header.is-compact .header-signature>small{display:none}
.reading-progress{position:absolute;bottom:-1px;left:0;width:100%;height:2px;pointer-events:none;background:linear-gradient(90deg,#eab1cd,#a52f61);transform:scaleX(var(--page-progress));transform-origin:left;opacity:0;transition:opacity .4s}
.header.is-compact .reading-progress{opacity:1}
.skip-link{z-index:99999}
.booking-intro{top:calc(var(--admin-bar-offset) + var(--header-compact-height) + 30px)}
/* The content is visible by default. JavaScript adds cancellable, one-time entrances. */
.motion-line{display:block;overflow:clip;padding-bottom:.18em;margin-bottom:-.18em}
.motion-line-inner{display:block;transform-origin:left bottom}
.hero-backgrounds{inset:-40px 0;transform:translate3d(0,var(--hero-shift,0px),0)}
.hero-background{transform:scale(1.085);transition:opacity 1.5s ease,transform 9s cubic-bezier(.2,.55,.3,1)}
.hero-background.is-active{transform:scale(1.015)}
.hero-editorial{transform:translate3d(0,var(--hero-copy-shift,0px),0)}
.about-photo{translate:0 var(--portrait-shift,0px)}
.service-card{transition:box-shadow .4s,border-color .4s;transform-origin:center bottom}
.service-card:hover{box-shadow:0 18px 42px #8d31551a;border-color:#dba6c0}
.service-card .service-arrow{transition:transform .4s,background-color .4s,color .4s}
.service-card:hover .service-arrow{transform:rotate(45deg);background:var(--rose);color:white}
.certificate-card,.studio-photo{transition:box-shadow .4s,border-color .4s}
.certificate-card:hover{box-shadow:0 12px 30px #8d315514;border-color:#ca84a6}
.studio-photo img{transition:filter .6s}
.studio-photo:hover img{filter:saturate(1.1)}
@media(max-width:1050px){.header{grid-template-columns:minmax(0,1fr) 230px minmax(0,1fr);column-gap:18px}.header-signature>span{font-size:8px;letter-spacing:1.2px}.header-signature>small{font-size:12px}.header .nav-cta{padding:11px 13px;gap:10px;font-size:10px}.header .nav{gap:30px}}
@media(max-width:760px){
 :root{--header-open-height:88px;--header-compact-height:66px}
 .header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:88px;grid-template-areas:"menu brand cta";column-gap:8px;padding:0 5%;height:88px}
 .header-signature{display:none}
 .header .brand{width:168px;max-width:42vw}
 .header .menu-toggle{display:grid;grid-area:menu;justify-self:start;place-items:center;width:44px;height:44px;padding:10px;margin-left:-10px}
 .menu-lines{position:relative;width:22px;height:14px;display:block}
 .menu-lines i{position:absolute;left:0;width:22px;height:1.5px;background:var(--rose);transition:transform .3s,top .3s}
 .menu-lines i:first-child{top:3px}.menu-lines i:last-child{top:11px}
 .menu-toggle[aria-expanded=true] .menu-lines i:first-child{top:7px;transform:rotate(45deg)}
 .menu-toggle[aria-expanded=true] .menu-lines i:last-child{top:7px;transform:rotate(-45deg)}
 .header .nav-cta{padding:10px 11px;min-height:42px;font-size:10px;gap:6px}
 .cta-long{display:none}.cta-short{display:inline}
 .header .nav{display:none;position:absolute;top:100%;left:0;right:0;height:auto;width:100%;grid-area:auto;flex-direction:column;align-items:stretch;gap:0;padding:16px 7% 24px;background:#fff8fc;border-bottom:1px solid #edcbdb;box-shadow:0 16px 22px #60203910;max-height:calc(100dvh - var(--admin-bar-offset) - var(--header-open-height));overflow-y:auto}
 .header .nav.open{display:flex}
 .header .nav a{min-height:48px;font:23px var(--serif);padding:10px 0;border-bottom:1px solid #f1dce6;white-space:normal}
 .header .nav a:after{display:none}
 .header.is-compact{grid-template-rows:66px}
 .header.is-compact .brand{width:128px;max-width:36vw}
 .header.is-compact .nav{height:auto}
 .booking-intro{position:static}
 .hero-backgrounds,.hero-editorial{transform:none}
 .about-photo{translate:none}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .header,.header .brand,.header .nav,.header-space,.header .nav a:after,.menu-lines i{transition:none}
 .hero-backgrounds,.hero-background,.hero-background.is-active,.hero-editorial{transform:none;transition:none}
 .about-photo{translate:none}
 .service-card .service-arrow{transition:none}.service-card:hover .service-arrow{transform:none}
 .reading-progress{transition:none}
}

/* Home masthead overlays the slider; the compact and inner-page headers stay solid. */
.header--overlay+.header-space+main{margin-top:calc(-1 * var(--header-open-height))}
.header--overlay:not(.is-compact){background:transparent;border-bottom-color:#ffffff38;box-shadow:none;color:#fff}
.header--overlay:not(.is-compact) .brand img{filter:brightness(0) invert(1)}
.header--overlay:not(.is-compact) .header-signature>span,.header--overlay:not(.is-compact) .header-signature>small,.header--overlay:not(.is-compact) .nav a{color:#fff}
.header--overlay:not(.is-compact) .nav a:after{background:#fff}
.header--overlay:not(.is-compact) .nav-cta{background:transparent;border-color:#ffffffb3;color:#fff}
.header--overlay:not(.is-compact) .nav-cta:hover{background:#fff;color:var(--rose-dark)}
.header--overlay:not(.is-compact) .menu-lines i{background:#fff}
.header--overlay:not(.is-compact) :focus-visible{outline-color:#fff}
.header--overlay+.header-space+main .hero-slider{min-height:710px;height:min(980px,100svh);padding-top:calc(var(--header-open-height) + 42px)}
.hero-slider:before{content:"";position:absolute;inset:0 0 auto;height:280px;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#29131fc9,transparent)}
@media(max-width:760px){
 .header--overlay:not(.is-compact) .nav{background:rgba(66,29,47,.98);border-bottom-color:#ffffff38}
 .header--overlay:not(.is-compact) .nav a{border-bottom-color:#ffffff26}
 .header--overlay+.header-space+main .hero-slider{height:auto;min-height:800px;padding-top:calc(var(--header-open-height) + 64px)}
}
@media(max-width:420px){.header--overlay+.header-space+main .hero-slider{min-height:788px;padding-top:calc(var(--header-open-height) + 52px)}}

/* Drawn icons keep their appearance on iOS/Android, independent of emoji fonts. */
.monalu-icon{display:inline-block;vertical-align:-.16em;flex-shrink:0}
.hero-controls .monalu-icon,.gallery-controls .monalu-icon{width:20px;height:20px}.hero-controls .hero-play .monalu-icon{width:14px;height:14px}.hero-play .monalu-icon[hidden]{display:none}.nav-cta .monalu-icon{width:15px;height:15px}

/* Keep a focused anchor section flush with its boundary, without an offset into the next section. */
main > section[tabindex="-1"]:focus-visible{outline-offset:0}
