:root{--color-bg:#f6f3ec;--color-surface:#eee9df;--color-text:#252a25;--color-accent:#87612f;--color-accent-700:#725126;--color-divider:#d7d3c9;--font-body:Arial,Helvetica,sans-serif;--font-heading:Georgia,'Times New Roman',serif}
html{scroll-behavior:smooth;scroll-padding-top:90px}body{font-size:16px;-webkit-font-smoothing:antialiased}a{color:var(--color-accent-700)}p{ text-align:left!important;hyphens:none!important}button,input,textarea,select{font:inherit}button,a,input,textarea,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #967039;outline-offset:5px}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:#fff;padding:14px}.skip-link:focus{top:10px}.nav{position:sticky!important;top:0!important;transform:none!important;min-height:82px;backdrop-filter:blur(14px);background:rgba(246,243,236,.96)!important}.nav-brand span span:first-child{font-size:21px!important}.nav-undertekst{letter-spacing:.19em!important}.nav>a:not(.nav-brand){font-family:var(--font-body);font-size:14px}.nav-fast{position:sticky!important}.nav-skjult{opacity:1!important;pointer-events:auto!important;transform:none!important}
#hero{isolation:isolate}#hero-tekst{padding-bottom:90px!important}#hero h1{font-size:clamp(46px,6vw,80px)!important;max-width:12ch!important;line-height:1.08!important;letter-spacing:-.04em!important}#hero-ingress{font-size:18px!important;line-height:1.75!important;max-width:51ch!important}#hero-knapper>a{font-family:var(--font-body)!important;font-size:14px!important;padding:17px 25px!important}#hero-tekst>span{font-size:12px!important;letter-spacing:.19em!important}#top>section{padding-top:82px!important;padding-bottom:78px!important}#top>hr{opacity:.7}#oppdrag>div{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:34px!important}#oppdrag>div>div{border:0!important;padding:28px!important;background:#eeebe3;border-top:2px solid #a88852!important}#oppdrag h2{font-size:27px!important;line-height:1.2!important}#oppdrag p{font-size:16px!important;line-height:1.8!important;margin-top:20px!important}.service-link{display:inline-block;margin-top:16px;font-size:14px;font-weight:600;text-decoration:none}.service-link:hover{text-decoration:underline}#repertoar h2,#galleri h2,#ommeg h2,#kalender h2,#kontakt h2,.area-section h2,.faq-section h2{font-size:clamp(30px,3.5vw,43px)!important;line-height:1.18!important;letter-spacing:-.03em!important}#galleri-grid img{transition:transform .4s}.plate{border:0;outline:0;filter:none;overflow:hidden}#galleri-grid figure:hover img{transform:scale(1.025)}#kalender-rad{gap:48px!important}#kalender-panel{background:#eee9df;padding:28px;border-top:2px solid #a88852}#panel-dato{text-transform:capitalize}#kommende:empty{display:none}.calendar-status{font-size:14px;line-height:1.6;margin-top:18px;color:#5e584c}#skjema-rad>.card{background:#fffdf8;border:1px solid #ddd7c9;box-shadow:0 16px 48px #29241908}.input{background:#fffdf8!important;border-color:#bdb7aa!important;min-height:48px}.btn-primary{background:#283b32!important;color:#fff!important;border-color:#283b32!important;font-family:var(--font-body)!important;font-size:14px!important;min-height:48px}.btn-primary:hover{background:#365044!important}#send-note{max-width:38ch;color:#5d594f!important}.area-section{max-width:760px}.area-section p,.faq-section p{font-size:17px;line-height:1.8}.eyebrow{display:block;text-transform:uppercase;letter-spacing:.15em;font-size:12px;color:#725126;margin-bottom:18px}.faq-section details{padding:22px 0;border-bottom:1px solid #d7d3c9}.faq-section summary{font-size:18px;cursor:pointer}.faq-section details p{max-width:68ch}.youtube-link{display:inline-block;margin-top:20px}#tid-hjelp{font-size:14px;line-height:1.6;color:#725126}.service-page{max-width:1100px;margin:auto;padding:65px 28px 90px}.service-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}.service-hero h1{font-size:clamp(38px,5vw,64px);line-height:1.1;margin:20px 0}.service-hero p{font-size:18px;line-height:1.8}.service-hero img{width:100%;aspect-ratio:4/5;object-fit:cover}.service-body{max-width:720px;margin:70px 0}.service-body h2{margin-top:44px}.service-body p{font-size:17px;line-height:1.8}.service-nav{display:flex;gap:20px;flex-wrap:wrap;padding:25px 28px;max-width:1156px;margin:auto;align-items:center;border-bottom:1px solid #d7d3c9}.service-nav a:first-child{font-family:var(--font-heading);font-size:23px;margin-right:auto;text-decoration:none;color:#252a25}.service-footer{padding:28px;border-top:1px solid #d7d3c9}.video-consent{width:100%;height:100%;min-height:270px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;background:#24382f;color:#fff;padding:30px;border:0;cursor:pointer;text-align:center}.video-consent span{font-size:14px;max-width:32ch}.video-consent strong{font-family:var(--font-heading);font-size:28px}.video-consent:hover{background:#304b3f}
@media(min-width:1000px){#galleri-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media(max-width:900px){#oppdrag>div{grid-template-columns:repeat(2,minmax(0,1fr))!important}.service-hero{gap:30px}}@media(max-width:720px){.nav{min-height:70px}#hero-tekst{padding:0 22px 55px!important}#hero h1{font-size:49px!important}#hero-ingress{font-size:16px!important;line-height:1.7!important}#hero-tekst>span{font-size:10px!important}#top{padding:0 22px!important}#top>section{padding-top:55px!important;padding-bottom:52px!important}#oppdrag>div{grid-template-columns:1fr!important;gap:16px!important}#oppdrag>div>div{padding:24px!important}#kalender-panel{padding:22px}#skjema-rad>.card{padding:22px!important}#skjema-felt{grid-template-columns:1fr!important}#hero-knapper{gap:10px!important}#hero-knapper>a{padding:14px 17px!important}.service-hero{grid-template-columns:1fr}.service-hero img{aspect-ratio:4/3}.service-page{padding:40px 22px}.service-nav{padding:22px}.service-nav a:first-child{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
.nav .nav-brand,.nav a:not(.nav-brand):not(.btn),.nav #meny-knapp{color:#252a25!important}.nav .nav-undertekst{color:#605d53!important}.nav .nav-brand svg g,.nav .nav-brand svg path{stroke:#87612f!important}.nav.nav-fast #nav-cta,.nav #nav-cta{color:#fff!important;border-color:#283b32!important}#hero{margin-top:0!important}.dag-merke{font-size:9px;line-height:1.2}#opptak{scroll-margin-top:100px}.nav-brand{font-weight:400!important}
html,body{overflow-x:clip}#kal-legend>span:nth-child(4){display:none!important}#kalender-panel>.card{border:0;background:transparent;padding:0!important}.nav.nav-fast,.nav{box-shadow:0 1px 0 #d7d3c9}

/* Let the hero photograph continue behind the navigation, with a soft tint. */
:root { --studio-nav-height: 82px; }
.nav {
  min-height: var(--studio-nav-height);
  border-bottom: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none;
  background: linear-gradient(180deg, rgba(18, 23, 19, .36), rgba(18, 23, 19, .12)) !important;
  transition: background 240ms ease, color 240ms ease;
}
.nav::after {
  content: "";
  position: absolute;
  inset: 100% 0 auto;
  height: 36px;
  background: linear-gradient(rgba(18, 23, 19, .12), transparent);
  pointer-events: none;
}
/* The navigation overlays the hero, so its height is already included. */
#hero {
  margin-top: calc(-1 * var(--studio-nav-height)) !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  height: auto;
  padding-top: calc(var(--studio-nav-height) + 40px);
}
#hero-tekst { flex-shrink: 0; }
.nav:not(.nav-fast) .nav-brand,
.nav:not(.nav-fast) a:not(.nav-brand):not(.btn),
.nav:not(.nav-fast) #meny-knapp { color: #f7f4ef !important; }
.nav:not(.nav-fast) .nav-undertekst { color: rgba(247, 244, 239, .8) !important; }
.nav:not(.nav-fast) .nav-brand svg g,
.nav:not(.nav-fast) .nav-brand svg path { stroke: #d8b06a !important; }
.nav:not(.nav-fast) #nav-cta {
  background: rgba(247, 244, 239, .07) !important;
  border-color: rgba(247, 244, 239, .55) !important;
  color: #f7f4ef !important;
}
.nav:not(.nav-fast) #nav-cta:hover { background: rgba(247, 244, 239, .16) !important; }
.nav.nav-fast {
  background: rgba(246, 243, 236, .97) !important;
  backdrop-filter: blur(12px);
  border-bottom: 0 !important;
  box-shadow: none !important;
}
.nav.nav-fast::after { background: linear-gradient(rgba(246, 243, 236, .18), transparent); height: 16px; }
@media (max-width: 720px) { :root { --studio-nav-height: 70px; } }

/* Gallery: stable image frames, readable captions and an uncropped viewer. */
#galleri-grid { display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important; gap:32px 24px; margin:0; padding:0; overflow:visible; }
#galleri-grid > * { min-width:0; max-width:none !important; margin:0; }
.gallery-intro { margin:-8px 0 28px; color:#615d53; line-height:1.7; }
.gallery-image { display:block; position:relative; width:100%; aspect-ratio:4/5; padding:0; border:0; border-radius:5px; overflow:hidden; background:#ded9ce; cursor:zoom-in; }
#galleri-grid img { display:block; width:100%; height:100%; object-fit:cover; }
#galleri-grid figcaption { font-size:14px; line-height:1.6; margin-top:12px; color:#57564e; }
.gallery-open { position:absolute; bottom:14px; right:14px; padding:8px 12px; border-radius:3px; background:#203229e8; color:#fff; font:12px var(--font-body); }
#galleri-prikker { display:none !important; }
.gallery-is-open { overflow:hidden; }
#bildevisning { padding:0; border:0; background:#18251f; color:#fff; border-radius:6px; width:min(1120px,calc(100vw - 32px)); max-width:none; max-height:calc(100dvh - 32px); }
#bildevisning::backdrop { background:#09110de8; backdrop-filter:blur(5px); }
.viewer-content { padding:16px 20px; }
.viewer-toolbar,.viewer-footer { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.viewer-toolbar { margin-bottom:12px; }
#bildevisning button { min-width:48px; min-height:44px; padding:8px 14px; border:1px solid #748178; border-radius:3px; color:#fff; background:transparent; font:inherit; cursor:pointer; }
#bildevisning button:hover { background:#354a3d; }
#stort-bilde { display:block; width:100%; height:min(72dvh,800px); object-fit:contain; }
.viewer-footer { margin-top:12px; }
#bilde-caption { margin:0; font-size:14px; line-height:1.5; text-align:center; }
#bilde-teller { font-size:14px; }
.gallery-image:focus-visible,#bildevisning button:focus-visible,.performance-link:focus-visible,.calendar-day:focus-visible { outline:3px solid #b8893e; outline-offset:4px; }
@media(max-width:1000px) { #galleri-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media(max-width:600px) {
  #galleri-grid { grid-template-columns:1fr !important; gap:26px; }
  .gallery-image { aspect-ratio:4/5; }
  .viewer-content { padding:12px; }
  #stort-bilde { height:64dvh; }
  .viewer-footer { gap:10px; }
}

/* Calendar history has its own solid colour and a check mark. */
.calendar-day { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; aspect-ratio:1; min-width:0; padding:4px 2px; border:1px solid #a99470; border-radius:4px; background:transparent; color:#303b32; font:inherit; cursor:pointer; }
.calendar-day strong { font-weight:500; }
.calendar-day .dag-merke { font-size:9px; line-height:1.2; }
.calendar-day.passert { border-color:transparent; color:#87877e; cursor:default; }
.calendar-day.spilt { background:#304a3d; border-color:#304a3d; color:#fff; }
.calendar-day.spilt::after { content:'✓'; position:absolute; top:3px; right:5px; font-size:11px; }
.calendar-day.opptatt { background:#e8d8bc; border-color:#aa854d; color:#493619; }
.calendar-day.ukjent { border-style:dashed; border-color:#8a8b7f; }
.calendar-day[aria-pressed=true] { outline:3px solid #a97628; outline-offset:2px; }
.calendar-day:not(:disabled):hover { box-shadow:inset 0 0 0 2px currentColor; }
#kal-legend>span:nth-child(2)>span { background:#e8d8bc !important; border-color:#aa854d !important; }
#kal-legend>span:nth-child(3)>span { background:#304a3d !important; color:white; text-align:center; }
#kal-legend>span:nth-child(3)>span::after { content:'✓'; font-size:11px; }
#kalender-panel { scroll-margin-top:105px; align-self:start; }
#panel-cta[hidden] { display:none !important; }
.event-detail { padding:14px 0; border-top:1px solid var(--color-divider); }
.event-detail p { margin:6px 0; }
.performance-heading { margin:30px 0 4px; font:500 11px/1.5 var(--font-body); letter-spacing:.1em; text-transform:uppercase; color:#615d53; }
.performance-link { display:flex; flex-direction:column; gap:3px; width:100%; padding:16px 0; border:0; border-bottom:1px solid #d3cbbb; background:transparent; color:#303b32; text-align:left; font:14px/1.5 var(--font-body); cursor:pointer; }
.performance-link strong { font-size:17px; font-weight:500; }
.performance-date { color:#62543e; font-size:12px; }
.performance-details { font-size:12px; color:#73511e; margin-top:3px; }
.performance-link:hover .performance-details { text-decoration:underline; }
.performance-link { display:grid; grid-template-columns:78px minmax(0,1fr) 18px; gap:12px; align-items:start; }
.performance-body { display:flex; flex-direction:column; gap:3px; min-width:0; overflow-wrap:anywhere; }
.performance-compact { grid-template-columns:44px minmax(0,1fr) 18px; padding:12px 0; }
.performance-compact strong { font-size:16px; line-height:1.4; }
.performance-place { font-size:13px; color:#625d52; line-height:1.4; }
.performance-date { padding-top:3px; }
.performance-more { background:transparent; color:#654719; border:0; padding:14px 0; font:600 14px/1.5 var(--font-body); cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.performance-more[hidden] { display:none; }
#kalender-panel>.card { padding:0 0 20px!important; border:0; background:transparent; }
#kalender-panel .performance-heading { margin-top:20px; }
#oppdragsliste { width:min(680px,calc(100% - 32px)); max-height:85dvh; box-sizing:border-box; border:1px solid #d3cbbb; border-radius:8px; padding:28px; background:#fffdf8; color:#303b32; overflow:auto; }
#oppdragsliste::backdrop { background:#19251fcc; }
.engagement-dialog-header { display:flex; align-items:center; justify-content:space-between; gap:15px; position:sticky;top:-28px;background:#fffdf8;padding:8px 0;z-index:1; }
.engagement-dialog-header h2 { margin:0; font-size:30px; }
#oppdragsliste h3 { margin:30px 0 6px; font-size:22px;line-height:1.3; }
#oppdragsliste .performance-date { font-size:12px; }
.video-slot,.video-slot iframe,.video-slot video { position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-slot video { object-fit:contain; background:#17140f; }
.video-preview { position:absolute; inset:0; width:100%; height:100%; border:0; padding:0; background:#18271f; color:white; cursor:pointer; display:grid; place-items:center; }
.video-preview img { position:absolute; width:100%; height:100%; object-fit:cover; }
.video-preview::after { content:''; position:absolute; inset:0; background:linear-gradient(transparent 45%,#000a); }
.video-preview-play { z-index:1; display:grid; place-items:center; width:72px; height:72px; border-radius:50%; background:#1a302ed9; border:1px solid #fff9; font-size:28px; padding-left:4px; box-sizing:border-box; }
.video-preview-caption { z-index:1; position:absolute; bottom:28px; left:15px; right:15px; font-size:15px; }
.video-preview:hover .video-preview-play { background:#294c3c; transform:scale(1.05); }
.video-preview[hidden],.video-resume[hidden],.video-error[hidden] { display:none; }
.video-resume { position:absolute; left:10%; right:10%; top:42%; padding:16px; border:1px solid #fff8; border-radius:4px; background:#283b32; color:#fff; cursor:pointer; }
.video-error { position:absolute; left:12px; right:12px; bottom:10px; padding:12px; background:#fffdf8; color:#303b32; font-size:14px; }
@media(max-width:480px) { #oppdragsliste{padding:20px;} .engagement-dialog-header h2{font-size:25px;} #oppdragsliste .performance-link{grid-template-columns:64px minmax(0,1fr) 16px;gap:8px;} }
@media(max-width:720px) { .calendar-day { min-height:42px; } .calendar-day .dag-merke { display:none; } .calendar-day.spilt::after { top:1px; right:3px; font-size:10px; } }

/* A quiet route to IT services; the music hero remains the main introduction. */
.nav-it { white-space:nowrap; }
.nav .nav-undertekst { display:block!important; }
#hero-tekst .hero-it-link { margin:20px 0 0; font-size:13px; line-height:1.7; }
.hero-it-link a { color:#e5dfd3; text-decoration:underline; text-decoration-color:#e5dfd366; text-underline-offset:4px; }
.hero-it-link a:hover { color:#fff; text-decoration-color:#fff; }
.mobile-it { display:block; padding:15px 0; font-family:var(--font-heading); font-size:27px; line-height:34px; text-decoration:none; border-bottom:1px solid var(--color-divider); }
@media(max-width:980px) {
  .nav { padding-block:9px!important; gap:12px!important; flex-wrap:nowrap!important; justify-content:space-between; }
  .nav a:not(.nav-brand):not(.btn), #nav-cta { display:none!important; }
  #meny-knapp { display:flex!important; }
  #mobilmeny:not([hidden]) { display:flex; }
}
@media(max-width:380px) {
  .nav { padding-inline:18px!important; }
  .nav-brand { gap:8px!important; }
  .nav-brand>svg { width:30px; height:30px; }
  .nav-brand span span:first-child { font-size:19px!important; }
  .nav .nav-undertekst { font-size:8px!important; letter-spacing:.12em!important; }
}
