/* Layout: a consultancy page. Full-width project photography, plain headlines, a two-column grid
   (label left, content right), hairline rules, no accent colour. Fitz Roy only in the logo and footer. */
:root{
  --bg:#121518;          /* charcoal ground */
  --bg2:#171B1F;
  --hd:#D9DCDE;          /* headings, never pure white */
  --tx:#9AA2A7;          /* body */
  --mute:#6C757B;
  --line:rgba(217,220,222,.1);
  --line2:rgba(217,220,222,.22);
  --gutter:clamp(16px,4vw,56px);
  --max:1280px;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--tx);font-family:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;font-size:17px;line-height:1.6}
img,svg{display:block;max-width:100%}
a{color:var(--hd);text-decoration-color:var(--line2);text-underline-offset:4px}
a:hover{text-decoration-color:var(--hd)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--hd);outline-offset:3px}
h1,h2,h3{margin:0;color:var(--hd);font-weight:500;letter-spacing:-.02em;line-height:1.12;text-wrap:balance}
p{margin:0}
ul,ol{list-style:none;margin:0;padding:0}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter);width:100%}
.skip{position:absolute;left:-999px;top:8px;background:var(--hd);color:var(--bg);padding:8px 12px;z-index:50}
.skip:focus{left:8px}

/* header */
.top{position:relative;z-index:20;border-bottom:1px solid var(--line)}
.top.over{position:absolute;top:0;left:0;right:0;border-bottom:0;background:linear-gradient(180deg,rgba(18,21,24,.92) 0%,rgba(18,21,24,.6) 55%,rgba(18,21,24,0) 100%);padding-bottom:28px}
.bar{display:flex;align-items:center;justify-content:space-between;height:84px;gap:24px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--hd);font-size:18px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}
.brand i{font-style:normal;font-weight:400;color:var(--tx);margin-left:2px}
.mark{width:36px;height:auto;color:var(--hd)}
.nav{display:flex;gap:32px}
.nav a{color:var(--tx);text-decoration:none;font-size:15.5px}
.nav a:hover,.nav a[aria-current]{color:var(--hd)}

/* buttons and links */
.btn{display:inline-block;background:var(--hd);color:var(--bg);text-decoration:none;font-weight:500;font-size:16px;padding:14px 24px;border-radius:2px;border:0;cursor:pointer;font-family:inherit;line-height:1.2;transition:background .2s}
.btn:hover{background:#EEF0F1}
.cta-links{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:28px}
.cta-links a:not(.btn){font-size:16px}

/* photography */
.hero{position:relative}
.hero-img{height:min(78vh,780px);min-height:420px;overflow:hidden;background:var(--bg2)}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero.inner .hero-img{height:min(70vh,700px)}
.hero-cap{padding-top:12px;font-size:13.5px;color:var(--mute);text-align:right}

/* intro */
.intro{padding:clamp(48px,6vw,88px) 0 clamp(56px,7vw,104px);border-bottom:1px solid var(--line)}
.intro-in{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:end}
.intro h1{font-size:clamp(30px,3.6vw,52px);max-width:24ch}
.intro-side p:first-child{font-size:17px;max-width:34ch}

/* title block for inner pages */
.head{padding:clamp(64px,8vw,112px) 0 clamp(40px,5vw,64px);border-bottom:1px solid var(--line)}
.hero.inner+.head{padding-top:clamp(40px,5vw,64px)}
.head h1{font-size:clamp(32px,4vw,56px);max-width:22ch}
.head .lede{margin-top:18px;max-width:52ch;font-size:clamp(17px,1.4vw,19px)}
.crumb{margin-bottom:18px;font-size:14.5px}
.crumb a{color:var(--mute);text-decoration:none}
.crumb a:hover{color:var(--hd)}

/* sections */
.sec{padding:clamp(64px,8vw,112px) 0;border-bottom:1px solid var(--line)}
.sec.tight{padding:clamp(40px,5vw,72px) 0}
.label{font-size:14.5px;font-weight:500;color:var(--mute);letter-spacing:0;margin-bottom:24px}
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,7vw,112px)}
.split:has(>h2.label){grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.split>*{min-width:0}
.note{margin-top:22px;font-size:15px;color:var(--mute)}

/* service list */
.svc li{border-top:1px solid var(--line)}
.svc li:last-child{border-bottom:1px solid var(--line)}
.svc a{display:grid;gap:4px;padding:20px 0;text-decoration:none}
.svc b{font-weight:500;color:var(--hd);font-size:19px;letter-spacing:-.01em}
.svc span{color:var(--tx);font-size:15.5px;max-width:52ch}
.svc a:hover b{text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:5px}
.svc.big a{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:32px;align-items:baseline;padding:28px 0}
.svc.big b{font-size:clamp(22px,2.2vw,30px)}
.svc.big span{font-size:17px}

/* track record */
.record li{border-top:1px solid var(--line)}
.record li:last-child{border-bottom:1px solid var(--line)}
.record a,.record li.nolink{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:18px;align-items:baseline;padding:16px 0;text-decoration:none}
.record.also li:last-child{border-bottom:0}
.rv{color:var(--hd);font-weight:500}
.rn{color:var(--hd)}
.rp{color:var(--mute);font-size:15px;text-align:right}
.record a:hover .rn{text-decoration:underline;text-decoration-color:var(--line2);text-underline-offset:5px}
.record+.record.also{border-top:0}

/* project figures */
.figs3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
.figs2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.4vw,32px)}
.fig{display:block;text-decoration:none}
.fig-img{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--bg2)}
.figs3 .fig-img{aspect-ratio:4/5}
.fig-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease)}
.fig:hover .fig-img img{transform:scale(1.03)}
.fig-cap{display:grid;gap:2px;padding-top:14px}
.fig-cap b{font-weight:500;color:var(--hd);font-size:18px;letter-spacing:-.01em}
.fig-cap span{color:var(--mute);font-size:15px}
.fig-cap i{font-style:normal;color:var(--tx);margin-left:8px}
.fig.wide .fig-img{aspect-ratio:21/9}

/* clients */
.clients{display:flex;flex-wrap:wrap;gap:12px 34px;max-width:1000px}
.clients span{color:var(--hd);font-size:clamp(18px,1.6vw,22px);letter-spacing:-.01em}

/* project detail */
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 28px;margin:0}
.facts div{border-top:1px solid var(--line);padding:14px 0 18px}
.facts dt{font-size:14px;color:var(--mute)}
.facts dd{margin:4px 0 0;font-size:19px;color:var(--hd)}
.facts.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}
.facts.one-col{grid-template-columns:1fr;align-self:start}
.cs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(28px,4vw,64px)}
.cs .label{margin-bottom:12px}
.cs p{font-size:16.5px;color:var(--tx)}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.gallery .g{display:block;aspect-ratio:4/3;overflow:hidden;background:var(--bg2)}
.gallery img{width:100%;height:100%;object-fit:cover}
.plain li{border-top:1px solid var(--line);padding:12px 0;font-size:16px}
.plain li:last-child{border-bottom:1px solid var(--line)}
.next-wrap{display:flex;align-items:flex-end}
.next{display:block;width:100%;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none;font-size:22px;color:var(--hd)}
.next small{display:block;font-size:14px;color:var(--mute);margin-bottom:4px}

/* about, contact */
.prose p{margin-bottom:18px;font-size:18px;max-width:58ch}
.creds li{border-top:1px solid var(--line);padding:12px 0}
.creds li:last-child{border-bottom:1px solid var(--line)}
.creds b{display:block;font-weight:500;color:var(--hd)}
.creds span{font-size:14.5px;color:var(--mute)}
.form{display:grid;gap:18px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form label{display:grid;gap:6px;font-size:14.5px;color:var(--tx)}
.form input,.form select,.form textarea{font:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--line2);border-radius:2px;background:var(--bg2);color:var(--hd);width:100%}
.form textarea{resize:vertical}
.form .btn{justify-self:start}
.hp{position:absolute;left:-9999px}
.split.contact{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}

/* closing band and footer */
.cta-band{border-bottom:0}
.cta-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,6vw,96px);align-items:end}
.cta-in h2{font-size:clamp(30px,3.4vw,46px)}
.cta-in p{max-width:44ch}
.cta-in .cta-links{grid-column:2;margin-top:0}
.foot{border-top:1px solid var(--line);padding:0 0 28px;color:var(--mute);font-size:15px}
.foot-line{color:rgba(217,220,222,.28);overflow:hidden}
.fitz-line{width:min(100%,720px);height:auto;margin:56px auto 0}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px;padding-top:40px;border-top:1px solid var(--line)}
.foot h2{font-size:14px;font-weight:500;color:var(--hd);margin-bottom:12px}
.foot a{display:block;color:var(--tx);text-decoration:none;padding:3px 0}
.foot a:hover{color:var(--hd)}
.foot .brand{display:flex;margin-bottom:14px;font-size:17px}
.legal{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:40px;padding-top:18px;border-top:1px solid var(--line);font-size:13px}

/* motion: quiet. The opening photo settles once; sections fade in as they arrive. */
@keyframes settle{from{transform:scale(1.04)}to{transform:none}}
.js .hero-img img{animation:settle 2.2s var(--ease) both}
.js .fade{opacity:0;transform:translateY(14px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.js .fade.in{opacity:1;transform:none}

@media (max-width:1000px){
  .foot-grid{grid-template-columns:1fr 1fr}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  body{font-size:16.5px}
  .bar{height:auto;padding:16px 0;flex-wrap:wrap;gap:10px 20px}
  .brand i{display:none}
  .nav{gap:20px}
  .nav a{font-size:15px}
  .hero-img{height:56vh;min-height:320px}
  .intro-in,.split,.split:has(>h2.label),.split.contact,.cta-in,.cs{grid-template-columns:1fr}
  .cta-in .cta-links{grid-column:auto}
  .figs3,.figs2,.gallery{grid-template-columns:1fr}
  .figs3 .fig-img{aspect-ratio:4/3}
  .svc.big a{grid-template-columns:1fr;gap:4px}
  .record a,.record li.nolink{grid-template-columns:76px minmax(0,1fr);row-gap:2px;padding:14px 0}
  .rp{grid-column:2;text-align:left}
  .f2{grid-template-columns:1fr}
  .fig.wide .fig-img{aspect-ratio:4/3}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
