/* Launch Desk. Shared styles. Page layout lives inline on each element, as it does in the design
   references; this file holds the fonts, the hover, focus and active states, and the moving parts. */
@font-face{font-family:'Schibsted Grotesk';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/schibsted-grotesk.woff2) format('woff2')}
@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/public-sans.woff2) format('woff2')}
[hidden]{display:none!important}
button{font:inherit;color:inherit}
body[data-menu-open]{overflow:hidden}

/* scroll progress, header shadow, breathing field, pulse */
.ld-progress{position:fixed;top:0;left:0;height:3px;width:0;background:#FF6A2C;z-index:60;transition:width .1s linear}
.ld-navshadow{position:absolute;left:0;right:0;bottom:-12px;height:12px;background:linear-gradient(rgba(11,18,32,.08),rgba(11,18,32,0));opacity:0;transition:opacity .3s ease-out;pointer-events:none}
header[data-scrolled] .ld-navshadow{opacity:1}
.ld-breathe{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(60% 80% at 20% 30%,#EFE9DE 0%,rgba(239,233,222,0) 70%),radial-gradient(50% 70% at 85% 70%,#FFF1E8 0%,rgba(255,241,232,0) 70%);background-size:160% 160%,160% 160%;background-repeat:no-repeat;animation:ldBreathe 18s ease-in-out infinite}
.ld-pulse{position:relative;display:inline-block;width:10px;height:10px}
.ld-pulse span{position:absolute;inset:0;border-radius:50%}
.ld-pulse span:first-child{background:#FF6A2C}
.ld-pulse span:last-child{border:2px solid #FF6A2C;animation:ldPulse 2.4s ease-out infinite}

/* phone menu closing: the opening motion played backwards (the opening one is inline on the elements) */
@keyframes ldSlideOut{from{transform:translateX(0)}to{transform:translateX(100%)}}
@keyframes ldFadeOut{from{opacity:1}to{opacity:0}}
#ld-menu[data-closing]{pointer-events:none}
#ld-menu[data-closing] [role=dialog]>div:first-child{animation:ldFadeOut .3s ease-in both!important}
#ld-menu[data-closing] [role=dialog]>div:last-child{animation:ldSlideOut .38s cubic-bezier(.8,0,.8,.3) both!important}

/* Prices, in Brief: a still orange dot beside each price. It pulses only while its row is hovered or focused,
   so the prices stay still and the announcement bar keeps the one live signal on the page. */
.ld-pricedot{position:relative;display:inline-block;width:8px;height:8px;margin-right:12px;border-radius:50%;background:#FF6A2C;vertical-align:middle;top:-2px}
.ld-pricedot::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #FF6A2C;opacity:0}
a:hover>span>.ld-pricedot::after,a:focus-visible>span>.ld-pricedot::after{animation:ldPulse 2.4s ease-out infinite}

/* section reveals: content is only hidden once the script has said it is running */
html.js [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.2,.6,.2,1),transform .7s cubic-bezier(.2,.6,.2,1)}
html.js [data-reveal][data-on]{opacity:1;transform:none}
html.js [data-num]:not([data-ready]){visibility:hidden}

/* the five stops: lit by default, dimmed by the script until each one scrolls in */
.ld-dot{width:36px;height:36px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;letter-spacing:.04em;border:1px solid #FF6A2C;background:#FF6A2C;color:#0B1220;transition:background .7s ease-out,border-color .7s ease-out,color .7s ease-out}
.ld-line{flex:1;width:1px;background:#FF6A2C;transition:background .7s ease-out}
.ld-stop-title{margin:0;font-family:'Schibsted Grotesk',sans-serif;font-size:24px;font-weight:600;line-height:1.25;color:#F7F3EC;transition:color .7s ease-out}
.ld-stop-body{margin:0;font-size:17px;line-height:1.6;color:#C9CEDB;transition:color .7s ease-out;text-wrap:pretty}
[data-stop][data-unlit] .ld-dot{border-color:rgba(255,255,255,.35);background:transparent;color:#F7F3EC}
[data-stop][data-unlit] .ld-stop-title{color:#A9B0C2}
[data-stop][data-unlit] .ld-stop-body{color:#8E96AA}
[data-stop][data-dimline] .ld-line{background:rgba(255,255,255,.18)}

/* services sub-nav */
.ld-tab{padding:12px 0;border-bottom:2px solid transparent;color:#5B6070;transition:color .2s ease-out,border-color .2s ease-out}
.ld-tab[data-on]{border-bottom-color:#FF6A2C;color:#0B1220}

@media (prefers-reduced-motion:reduce){html.js [data-reveal]{opacity:1;transform:none;transition:none}}

/* hover, focus and active states, one class per distinct state in the design */
.h1:hover{opacity:0.7!important}
.h2:hover{border-bottom-color:#0B1220!important}
.h3:hover{transform:translateY(-2px)!important;background:#E85C20!important}
.h4:hover{background:#EFE9DE!important}
.h5:hover{background:#E85C20!important}
.h6:hover{color:#0B1220!important;transform:scale(1.06)!important}
.h7:hover{transform:translateY(-4px)!important;border-color:#0B1220!important;box-shadow:6px 6px 0 0 #FF6A2C!important}
.h8:hover{transform:translateY(-2px)!important;background:#0B1220!important;color:#F7F3EC!important}
.h9:hover{color:#0B1220!important}
.h10:hover{color:#F7F3EC!important;border-bottom-color:#F7F3EC!important}
.h11:hover{color:#F7F3EC!important}
.h12:hover{background:#FFE4D4!important}
.h13:hover{transform:translateY(-4px)!important;box-shadow:6px 6px 0 0 #FF6A2C!important}
.h14:hover{transform:scale(1.03)!important}
.f1:focus{left:16px!important}
.a1:active{transform:translateY(0)!important;background:#D4511A!important}
.a2:active{transform:translateY(0)!important}
.a3:active{background:#D4511A!important}
