/* A single refinement layer: original canvas, art direction and scroll timelines remain. */
:root{--ui-ease:cubic-bezier(.2,.65,.3,1)}
body header{z-index:60}
body header nav.wrap{display:grid;grid-template-columns:112px minmax(0,1fr) auto auto;gap:24px;height:84px;position:relative}
body header .wordmark{margin:0}
body header #nav{position:static;inset:auto;transform:none;width:auto;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:22px;padding:0;border:0;background:transparent}
body header #nav>a{font-size:12px;letter-spacing:0;line-height:1.4;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
body header #nav>a.nav-catalog{padding:10px 17px;border:1px solid var(--canvas-line,#b8aaa0)!important;border-radius:999px;min-height:42px;gap:8px;color:var(--canvas-fg);transition:background .2s var(--ui-ease),border-color .2s var(--ui-ease)}
body header #nav>a.nav-catalog::before,body header #nav>a.nav-catalog::after{content:none}
body header #nav>a.nav-catalog:is(:hover,:focus-visible){background:var(--canvas-hover);border-color:var(--canvas-fg)!important}
body header a.nav-cta.contact-action,body header a.nav-cta.contact-action:hover{display:inline-flex;background:#242222;border:1px solid #242222;border-radius:999px;color:#f7f3ea;min-height:44px;padding:10px 17px;gap:12px;font-size:11px;font-weight:500;white-space:nowrap;transition:background .2s var(--ui-ease)}
body header a.nav-cta.contact-action::before{content:none}
body header a.nav-cta.contact-action:hover{background:#4b333a;border-color:#4b333a;transform:none}
body header a.nav-cta.contact-action .cta-icon{color:inherit}
body header a.nav-cta.contact-action:focus-visible{outline:2px solid var(--canvas-fg);outline-offset:4px}
body header .lang{min-width:44px;min-height:44px;font-size:10px;padding:8px 0;color:var(--canvas-muted)}
body header .mobile{display:none}
body header.is-scrolled::after{height:22px}
/* Type hierarchy: keep the expressive arrival; quieten supporting chapter heads. */
.hero.wrap{padding-top:clamp(48px,5vw,78px);padding-bottom:56px;min-height:0}
.hero .hero-copy h1{font-size:clamp(64px,8.1vw,122px);line-height:1.01;letter-spacing:-.045em;margin-bottom:36px}
.hero .lede{max-width:54ch;line-height:1.9}
.hero .hero-bottom{border-top-color:var(--canvas-line);padding-top:18px}
.section:not(#tentang):not(#menu):not(#layanan){padding-block:clamp(64px,7vw,96px)}
.section-head{margin-bottom:38px}
.section-head h2{line-height:1.12}
#tentang>div>p{max-width:46ch;line-height:1.95}
#tentang .quote{font-size:clamp(25px,2.5vw,34px);max-width:350px}
#menu .menu-product-nav{gap:16px}
#menu .menu-product-nav button{min-height:44px;font-size:11px;padding-block:10px}
#menu .filter{min-height:44px}
#menu .product-info p{max-width:38ch;text-wrap:pretty}
/* Essential distinctions stay visible; operational detail is progressively disclosed. */
#layanan{padding-block:84px}
#layanan .service-journey{gap:clamp(40px,7vw,90px)}
#layanan .service-journey>.section-head{top:110px}
#layanan .service-journey .service{min-height:0;padding-block:36px 42px}
#layanan .service-journey .service h3{font-size:clamp(36px,3.5vw,49px);margin-bottom:14px}
#layanan .service-journey .service>.num{margin-bottom:18px}
#layanan .service-journey .service-descriptor{font-size:10px;letter-spacing:1.35px;margin-bottom:18px;line-height:1.7}
#layanan .service-journey .service>p{font-size:14px;line-height:1.85;max-width:48ch}
#layanan .service-inclusions{border:0;border-radius:8px;background:color-mix(in srgb,var(--canvas-fg) 5%,transparent);padding:0 18px;margin:14px 0 22px}
#layanan .service-inclusions summary{min-height:52px;display:flex;align-items:center;padding:14px 28px 14px 0;font-size:12px;line-height:1.6}
#layanan .service-inclusions>ul{margin:2px 0 16px;padding-left:18px}
#layanan .service-inclusions>.service-note{padding-bottom:18px;margin-bottom:0}
#layanan .service-inclusions[open]{background:color-mix(in srgb,var(--canvas-fg) 7%,transparent)}
#layanan .service-context{max-height:290px;object-fit:contain}
#layanan .cinematic-setup{margin-top:64px;padding-top:48px}
/* Seamless access: a softly bounded editorial pause, rather than a promotional slab. */
.catalog-access{background:linear-gradient(180deg,transparent,#f4f0e8 18%,#f4f0e8 82%,transparent);padding:80px 0 88px;position:relative}
.catalog-access .catalog-access-grid{gap:clamp(32px,6vw,80px)}
.catalog-access h2{font-size:clamp(34px,3.6vw,50px)}
.catalog-access .eyebrow{color:#796c62}
.catalog-access-copy>p{font-size:14px;line-height:1.85}
.catalog-actions .catalog-link{min-height:48px;transition:color .2s ease}
.catalog-access .catalog-status{color:#6d6259;opacity:1;font-size:11px!important}
.catalog-access .catalog-download:disabled{color:#6d6259;opacity:1}
#public-events .public-copy>p:not(.public-lede),#partnerships .partnership-copy .partnership-bottom p{line-height:1.9;text-wrap:pretty}
#partnerships .partnership-copy>h2{font-size:clamp(39px,4vw,56px)}
#pengalaman .chapter-heading{margin-bottom:40px;padding-bottom:20px}
#pengalaman .chapter-record{border:0;border-left:1px solid var(--canvas-line);padding:28px 0 28px 48px;min-height:0}
#pengalaman .chapter-route{opacity:.5}
#pengalaman .chapter-story p{max-width:48ch;font-size:14px}
#pengalaman .chapter-note{max-width:80ch}
#faq .faq-intro h3{font-size:clamp(36px,4vw,52px)}
#faq details{padding-block:18px}
#faq summary{min-height:44px;align-items:center;font-size:13px}
#faq details p{line-height:1.9}
#kontak .inquiry-guide{margin-top:40px;padding-top:30px}
#kontak input,#kontak select,#kontak textarea{min-height:46px}
.site-footer{padding-top:52px}
/* Touch layout begins before links and the two CTAs can collide. */
@media(max-width:1080px){
 body header nav.wrap{grid-template-columns:80px minmax(0,1fr) auto 40px;gap:14px;height:72px}
 body header .wordmark{width:80px;height:60px}
 body header .brand-logo{width:80px;height:80px;top:-10px}
 body header .lang{justify-self:end;grid-column:2;grid-row:1}
 body header .nav-cta{grid-column:3;grid-row:1}
 body header .mobile{display:flex;align-items:center;justify-content:center;grid-column:4;grid-row:1;width:40px;height:44px;min-height:44px;padding:0;font-size:22px;color:var(--canvas-fg);background:none;border:0}
 body header #nav{position:absolute;left:calc((100vw - 100%)/-2);right:calc((100vw - 100%)/-2);top:72px;width:auto;transform:none;display:none;flex-direction:column;align-items:stretch;justify-content:start;gap:2px;background:var(--canvas-bg,#f1ede6);padding:16px max(5.5vw,20px) 24px;border-bottom:1px solid var(--canvas-line);max-height:calc(100svh - 72px);overflow-y:auto}
 body header #nav.open{display:flex}
 body header #nav>a{align-self:stretch;font-size:14px;padding:12px 0;min-height:48px}
 body header #nav>a.nav-catalog{align-self:flex-start;padding:11px 20px;margin-top:10px;font-size:13px}
 body header #nav>a:not(.nav-catalog)::before{content:none}
 body header a.nav-cta.contact-action{display:inline-flex}
}
@media(max-width:800px){
 .hero .hero-copy h1{font-size:clamp(54px,10vw,78px);margin-bottom:28px}
 .hero.wrap{padding-block:44px 40px}
 .section:not(#tentang):not(#menu):not(#layanan){padding-block:60px}
 .section-head{gap:24px;margin-bottom:30px}
 #layanan{padding-block:60px}
 #layanan .service-journey .service{padding-block:30px 36px}
 #layanan .service-journey>.section-head{position:static;margin-bottom:28px}
 #layanan .service-context{max-height:none}
 #layanan .service-inclusions{padding-inline:14px}
 #public-events .event-context-grid>.public-copy{grid-row:1}
 #public-events .event-context-grid>.context-image{grid-row:2}
 #pengalaman .chapter-record{border-left:0;border-top:1px solid var(--canvas-line);padding:32px 0 0}
 .catalog-access{padding:56px 0 64px}
 #kontak .inquiry-guide{gap:24px;margin-top:34px}
}
@media(max-width:420px){
 body header nav.wrap{width:calc(100% - 28px);grid-template-columns:64px minmax(36px,1fr) auto 36px;gap:6px}
 body header .wordmark{width:64px;height:54px}
 body header .brand-logo{width:72px;height:72px;left:-4px;top:-9px}
 body header .lang{font-size:9px;min-width:36px}
 body header a.nav-cta.contact-action{padding:10px 11px;font-size:10px;gap:7px;min-height:42px}
 body header a.nav-cta.contact-action .cta-icon{width:14px;height:14px}
 body header .mobile{width:36px}
 .hero .hero-copy h1{font-size:clamp(46px,12.3vw,54px)}
}
@media(prefers-reduced-motion:reduce){
 body header *,body header *::before,body header *::after,.catalog-actions *{transition:none!important;animation:none!important}
 #layanan .service-journey .service{transform:none!important}
}
@keyframes otw-menu-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1080px) and (prefers-reduced-motion:no-preference){body header #nav.open{animation:otw-menu-in .18s ease-out}}
@media(prefers-reduced-motion:no-preference){#layanan details[open]>ul,#faq details[open]>p{animation:otw-menu-in .18s ease-out}}
