:root { --bg:#000; --fg:#fff; --muted:#9a9a9a; --line:#2c2c2c; }
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif;letter-spacing:.01em} a{color:inherit;text-decoration:none} button,input,textarea{font:inherit}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:24px 4vw;border-bottom:1px solid var(--line);background:rgba(0,0,0,.94);backdrop-filter:blur(8px)}.brand{font-size:.93rem;letter-spacing:.18em;font-weight:700}.main-nav{display:flex;gap:28px;font-size:.84rem}.main-nav a{color:var(--muted)}.main-nav a:hover,.main-nav a.active{color:#fff}.menu-toggle{display:none;background:none;border:0;color:#fff;letter-spacing:.12em}
.hero{min-height:86vh;display:grid;grid-template-columns:1.5fr 1fr;align-items:end;gap:5vw;padding:5vw 4vw}.hero-image{min-height:68vh}.placeholder-image,.photo-placeholder{background:linear-gradient(145deg,#1b1b1b,#050505 48%,#2f2f2f);border:1px solid #161616}.hero-copy{padding-bottom:4vh;max-width:530px}.eyebrow{font-size:.72rem;letter-spacing:.2em;color:var(--muted);margin:0 0 18px}.hero h1,.page-intro h1{font-size:clamp(2.7rem,6vw,6.5rem);font-weight:400;line-height:.95;margin:0 0 24px}.hero-copy p:not(.eyebrow),.page-intro p,.prose p{color:#bdbdbd;line-height:1.75}.text-link{display:inline-block;margin-top:18px;border-bottom:1px solid #fff;padding-bottom:4px}.section-wrap,.page-main{padding:7vw 4vw}.section-heading h2,.prints-cta h2{font-size:clamp(2rem,4vw,4rem);font-weight:400;margin:0}.photo-grid{margin-top:50px;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.photo-card{display:block}.photo-placeholder{aspect-ratio:4/5}.photo-placeholder.tall{aspect-ratio:3/4}.photo-placeholder.wide{aspect-ratio:4/3}.photo-meta{display:flex;justify-content:space-between;gap:20px;padding-top:12px;color:#aaa;font-size:.8rem}.prints-cta{padding:10vw 4vw;text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.prints-cta h2{max-width:850px;margin:0 auto 32px}.outline-button{display:inline-block;border:1px solid #fff;background:transparent;color:#fff;padding:13px 22px;cursor:pointer}.outline-button:hover{background:#fff;color:#000}.site-footer{display:flex;justify-content:space-between;gap:20px;padding:28px 4vw;color:#777;font-size:.74rem}
.page-main{min-height:78vh}.page-main.narrow{max-width:850px}.page-intro{max-width:930px;margin-bottom:60px}.filter-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:38px}.filter{border:1px solid #333;background:#000;color:#aaa;padding:9px 14px;cursor:pointer}.filter.active,.filter:hover{color:#000;background:#fff;border-color:#fff}.masonry-grid{columns:3 280px;column-gap:24px}.gallery-item{break-inside:avoid;margin-bottom:32px}.gallery-item .photo-placeholder{width:100%}.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.product-card h2{font-size:1.25rem;font-weight:400;margin:18px 0 7px}.product-card p{color:#9f9f9f}.product-card .price{color:#fff;margin-bottom:20px}.prose{max-width:720px;font-size:1.08rem}.contact-form{display:grid;gap:24px;max-width:700px}.contact-form label{display:grid;gap:9px;color:#b8b8b8;font-size:.85rem}.contact-form input,.contact-form textarea{width:100%;background:#080808;color:#fff;border:1px solid #333;padding:14px;outline:none}.contact-form input:focus,.contact-form textarea:focus{border-color:#fff}
@media(max-width:800px){.menu-toggle{display:block}.main-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#000;border-bottom:1px solid var(--line);padding:22px 4vw;flex-direction:column;gap:18px}.main-nav.open{display:flex}.hero{grid-template-columns:1fr;align-items:start}.hero-image{min-height:55vh}.hero-copy{padding:10px 0 0}.photo-grid,.product-grid{grid-template-columns:1fr}.site-footer{flex-direction:column}.site-header{padding-top:20px;padding-bottom:20px}}
.real-photo,.grid-photo,.gallery-photo{display:block;width:100%;object-fit:cover;background:#111}.hero-image.real-photo{height:68vh;min-height:68vh;object-fit:contain}.grid-photo{aspect-ratio:4/5}.gallery-photo{height:auto}.sale-note{margin-top:8px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#777}.empty-note{color:#777}
.admin-header{display:flex;justify-content:space-between;align-items:end;gap:30px;padding:48px 4vw 28px;border-bottom:1px solid #2c2c2c}.admin-header h1,.admin-form-wrap h1{font-size:clamp(2rem,4vw,4.5rem);font-weight:400;margin:0}.admin-actions{display:flex;gap:12px;flex-wrap:wrap}.admin-primary{display:inline-block;border:1px solid #fff;background:#fff;color:#000;padding:13px 20px;cursor:pointer}.admin-main{padding:34px 4vw 80px}.admin-help{color:#999;margin:0 0 28px}.admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.admin-card{border:1px solid #292929;background:#080808;cursor:grab}.admin-card.dragging{opacity:.35}.admin-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.drag-handle{font-size:.64rem;letter-spacing:.18em;color:#777;padding:10px 12px;border-bottom:1px solid #222}.admin-card-body{padding:14px}.admin-card h2{font-size:1rem;font-weight:400;margin:0 0 7px}.admin-card p{font-size:.76rem;color:#888;margin:0 0 12px}.badges{display:flex;gap:7px;min-height:22px}.badges span{border:1px solid #333;padding:4px 7px;font-size:.65rem;color:#aaa}.card-actions{display:flex;align-items:center;gap:18px;border-top:1px solid #222;margin-top:13px;padding-top:12px}.card-actions a,.card-actions button{color:#fff;background:none;border:0;padding:0;cursor:pointer;font-size:.8rem}.card-actions button{color:#999}.save-status{position:fixed;right:22px;bottom:22px;background:#fff;color:#000;padding:10px 14px;font-size:.8rem;min-height:0}.admin-form-wrap{max-width:820px;margin:0 auto;padding:55px 4vw 90px}.admin-back{display:inline-block;color:#aaa;margin-bottom:50px}.admin-form{display:grid;gap:22px;margin-top:38px}.admin-form label{display:grid;gap:9px;color:#aaa;font-size:.83rem}.admin-form input,.admin-form textarea{background:#080808;border:1px solid #333;color:#fff;padding:13px}.admin-form input:focus,.admin-form textarea:focus{outline:none;border-color:#fff}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-form .check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:10px}.admin-form .check input{width:auto}.edit-preview{display:block;width:min(100%,650px);max-height:520px;object-fit:contain;background:#090909;margin-top:30px}.form-error{border:1px solid #666;padding:12px;color:#fff}.admin-empty{grid-column:1/-1;padding:50px;border:1px solid #222;color:#aaa}
@media(max-width:1050px){.admin-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:750px){.admin-header{align-items:start;flex-direction:column}.admin-grid{grid-template-columns:repeat(2,1fr)}.form-two{grid-template-columns:1fr}.hero-image.real-photo{height:auto;min-height:0}}@media(max-width:480px){.admin-grid{grid-template-columns:1fr}}

/* Phase 2.4: editable About page */
.admin-editor-wrap { max-width: 1100px; }
.admin-about-form { display: grid; gap: 14px; max-width: 900px; }
.admin-about-form label { color: #aaa; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.admin-about-form textarea { width: 100%; min-height: 440px; resize: vertical; background: #080808; color: #fff; border: 1px solid #333; padding: 18px; font: inherit; line-height: 1.65; box-sizing: border-box; }
.admin-about-form textarea:focus { outline: 1px solid #777; border-color: #777; }
.admin-save-button { justify-self: start; border: 0; cursor: pointer; }
.admin-success { border: 1px solid #444; padding: 12px 14px; margin-bottom: 20px; color: #fff; }
.about-copy p { white-space: pre-line; }

/* Phase 2.5: move home-page text block to the upper edge of the hero image */
@media (min-width: 801px) {
  .hero {
    align-items: start;
  }

  .hero-copy {
    align-self: start;
    padding-top: 4vh;
    padding-bottom: 0;
  }
}

/* Phase 2.6: restore gallery lightbox/slideshow and always fit the whole photograph */
.gallery-intro-row{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:38px}
.gallery-intro-row .page-intro{margin-bottom:0}
.slideshow-start{white-space:nowrap;margin-bottom:8px}
.gallery-open{display:block;width:100%;padding:0;border:0;background:none;color:inherit;cursor:zoom-in;text-align:left}
.gallery-open:focus-visible{outline:1px solid #fff;outline-offset:4px}
.gallery-item[hidden]{display:none!important}

body.slideshow-open{overflow:hidden}
.slideshow{position:fixed;inset:0;z-index:1000;display:none;background:#000;color:#fff}
.slideshow.open{display:grid;grid-template-columns:minmax(54px,6vw) minmax(0,1fr) minmax(54px,6vw);grid-template-rows:auto minmax(0,1fr)}
.slideshow-topbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 20px;border-bottom:1px solid #242424;background:#000}
.slideshow-counter{font-size:.78rem;color:#999;letter-spacing:.1em}
.slideshow-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.slideshow-actions button{border:1px solid #333;background:#000;color:#ccc;padding:8px 12px;cursor:pointer}
.slideshow-actions button:hover,.slideshow-actions button:focus-visible{background:#fff;color:#000;border-color:#fff}

.slideshow-stage{grid-column:2;grid-row:2;margin:0;min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;padding:18px 12px 14px;overflow:hidden}
.slideshow-stage img{display:block;width:auto!important;height:auto!important;max-width:100%!important;max-height:calc(100vh - 150px)!important;object-fit:contain!important}
.slideshow-stage figcaption{width:100%;display:flex;justify-content:space-between;gap:24px;padding-top:10px;color:#b7b7b7;font-size:.82rem}
.slideshow-stage figcaption #slideshowTitle{color:#fff}
.slideshow-nav{grid-row:2;align-self:stretch;border:0;background:#000;color:#777;font-size:3rem;font-weight:200;cursor:pointer;transition:color .15s,background .15s}
.slideshow-nav:hover,.slideshow-nav:focus-visible{color:#fff;background:#090909}
.slideshow-prev{grid-column:1}
.slideshow-next{grid-column:3}

/* In browser fullscreen the complete photograph must remain visible, never cropped. */
.slideshow:fullscreen,
.slideshow:-webkit-full-screen{width:100vw;height:100vh;background:#000}
.slideshow:fullscreen .slideshow-stage img,
.slideshow:-webkit-full-screen .slideshow-stage img{width:auto!important;height:auto!important;max-width:100%!important;max-height:calc(100vh - 145px)!important;object-fit:contain!important}

@media(max-width:700px){
  .gallery-intro-row{align-items:start;flex-direction:column}
  .slideshow-start{margin-bottom:0}
  .slideshow.open{grid-template-columns:42px minmax(0,1fr) 42px}
  .slideshow-topbar{padding:10px 12px}
  .slideshow-actions button{padding:7px 8px;font-size:.72rem}
  .slideshow-stage{padding:8px 2px 10px}
  .slideshow-stage img{max-height:calc(100vh - 140px)!important}
  .slideshow-stage figcaption{font-size:.72rem;flex-direction:column;gap:4px;padding:8px 4px 0}
  .slideshow-nav{font-size:2.1rem}
}

/* Phase 2.7: move Gallery heading directly under the header line */
@media (min-width: 801px) {
  .page-main:has(.gallery-intro-row) {
    padding-top: 28px;
  }
}
@media (max-width: 800px) {
  .page-main:has(.gallery-intro-row) {
    padding-top: 22px;
  }
}

/* Phase 3.7: clean fullscreen slideshow. Controls/text appear only on pointer activity. */
.slideshow:fullscreen.controls-hidden,
.slideshow:-webkit-full-screen.controls-hidden { cursor: none; }

.slideshow:fullscreen .slideshow-topbar,
.slideshow:fullscreen .slideshow-nav,
.slideshow:fullscreen .slideshow-stage figcaption,
.slideshow:-webkit-full-screen .slideshow-topbar,
.slideshow:-webkit-full-screen .slideshow-nav,
.slideshow:-webkit-full-screen .slideshow-stage figcaption {
  opacity: 1;
  transition: opacity .25s ease;
}

.slideshow:fullscreen.controls-hidden .slideshow-topbar,
.slideshow:fullscreen.controls-hidden .slideshow-nav,
.slideshow:fullscreen.controls-hidden .slideshow-stage figcaption,
.slideshow:-webkit-full-screen.controls-hidden .slideshow-topbar,
.slideshow:-webkit-full-screen.controls-hidden .slideshow-nav,
.slideshow:-webkit-full-screen.controls-hidden .slideshow-stage figcaption {
  opacity: 0;
  pointer-events: none;
}

/* When controls are hidden, let the photograph use almost the entire screen. */
.slideshow:fullscreen.controls-hidden .slideshow-stage,
.slideshow:-webkit-full-screen.controls-hidden .slideshow-stage {
  grid-column: 1 / -1;
  grid-row: 1 / -1;
  padding: 0;
}
.slideshow:fullscreen.controls-hidden .slideshow-stage img,
.slideshow:-webkit-full-screen.controls-hidden .slideshow-stage img {
  max-width: 100vw !important;
  max-height: 100vh !important;
}

/* Forside – navn på én linje */
@media (min-width: 801px) {
  .hero-copy {
    max-width: none;
    min-width: 0;
  }

  .hero-copy h1 {
    font-size: clamp(1.5rem, 2.6vw, 2.8rem);
    white-space: nowrap;
    line-height: 1.15;
  }
}
