:root{
  --ink-field:#1E1420;
  --ink-raise:#2C1E30;
  --ink-text:#F0E8F0;
  --ink-peach:#F2A57A;
  --ink-mute:#998A99;
  --ink-dark:#1F2937;
  --rule:rgba(240,232,240,.14);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{margin:0;padding:0;}
body{
  background:var(--ink-field);
  color:var(--ink-text);
  font-family:'Instrument Serif',Georgia,serif;
  font-size:1.1875rem;
  line-height:1.62;
}
@media (max-width:860px){
  body{font-size:1.125rem;line-height:1.6;}
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--ink-peach);}
a:hover,a:focus-visible{color:#FFC59C;}
p{margin:0 0 1.05em;}
ul,ol{margin:0 0 1.05em;padding-left:1.15em;}
h1,h2,h3,h4{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  letter-spacing:-0.02em;
  margin:0 0 .7em;
  font-weight:500;
  color:var(--ink-text);
}
h1{font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.05;font-weight:500;}
h2{font-size:clamp(1.7rem,3.2vw,2.7rem);line-height:1.15;font-weight:500;}
h3{
  font-size:1.25rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink-peach);
}
:focus-visible{outline:2px solid var(--ink-peach);outline-offset:3px;}
.skip-link{
  position:absolute;
  left:.8rem;top:-4rem;
  background:var(--ink-peach);
  color:var(--ink-dark);
  padding:.6rem 1rem;
  z-index:200;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  text-decoration:none;
}
.skip-link:focus{top:.8rem;}
.page-shell{min-height:100vh;display:flex;flex-direction:column;}
.gutter{
  width:min(1200px,100%);
  margin-inline:auto;
  padding-inline:clamp(1.1rem,4vw,3rem);
}
main{flex:1;}
main > section{
  padding-block:clamp(2.5rem,6vw,5.2rem);
  border-bottom:1px solid var(--rule);
}

/* Masthead */
.masthead{
  position:sticky;
  top:0;
  z-index:100;
  height:64px;
  background:rgba(30,20,32,.94);
  border-bottom:1px solid var(--rule);
}
.masthead__bar{
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.masthead__mark{
  display:flex;
  align-items:center;
  gap:.7rem;
  color:var(--ink-text);
  text-decoration:none;
}
.masthead__mark:hover,.masthead__mark:focus-visible{color:var(--ink-peach);}
.masthead__mark svg{display:block;flex-shrink:0;}
.masthead__name{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-weight:500;
  font-size:1rem;
  letter-spacing:-.01em;
}
.menu-toggle{
  display:flex;
  align-items:center;
  gap:.65rem;
  background:transparent;
  border:0;
  color:var(--ink-text);
  cursor:pointer;
  padding:.4rem .15rem;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
}
.menu-toggle__bars{
  width:22px;
  height:12px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.menu-toggle__bars span{
  display:block;
  height:1.5px;
  width:22px;
  background:currentColor;
}
.menu-toggle__caption{
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-weight:500;
}

/* Full menu */
.fullmenu{display:none;position:fixed;inset:0;background:var(--ink-raise);z-index:90;}
.fullmenu.open{display:block;}
.fullmenu__inner{padding-top:5.4rem;padding-bottom:3rem;}
.fullmenu__contact p{color:var(--ink-text);}
.fullmenu__contact a{color:var(--ink-text);text-decoration:none;border-bottom:1px solid var(--rule);}
.fullmenu__contact a:hover{color:var(--ink-peach);}
.fullmenu__contact svg{margin-bottom:1.2rem;display:block;}
.fullmenu__link{
  display:block;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-weight:500;
  font-size:clamp(2rem,5.5vw,3.8rem);
  line-height:1.08;
  letter-spacing:-0.02em;
  color:var(--ink-text);
  text-decoration:none;
  border-bottom:1px solid var(--rule);
  padding:.4rem 0;
  transition:color .2s ease,transform .2s ease;
}
.fullmenu__link:hover,.fullmenu__link:focus-visible{
  color:var(--ink-peach);
  transform:translateX(10px);
}
.fullmenu__link[aria-current="page"]{color:var(--ink-peach);}
.fullmenu__link[aria-current="page"]::before{
  content:"";
  display:inline-block;
  width:.42rem;height:.42rem;
  border-radius:50%;
  background:var(--ink-peach);
  margin-right:.7rem;
  vertical-align:middle;
}
.no-js .fullmenu{display:block;position:static;background:transparent;border-bottom:1px solid var(--rule);}
.no-js .fullmenu__inner{padding-top:1.4rem;padding-bottom:1.6rem;}
.no-js .fullmenu__link{font-size:1.05rem;}
.no-js .menu-toggle{display:none;}

/* Spreads and type */
.spread{display:grid;grid-template-columns:1fr 1.618fr;gap:clamp(1.6rem,4vw,4rem);}
@media (max-width:860px){.spread{grid-template-columns:1fr;}}
.kicker{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ink-peach);
  margin:0 0 1rem;
}
.spread__rail .kicker + p,
.dossier__meta{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-size:.88rem;
  font-weight:500;
  color:var(--ink-mute);
  letter-spacing:.02em;
  margin:0 0 .45rem;
}
.marginal{
  font-family:'Instrument Serif',Georgia,serif;
  font-style:italic;
  color:var(--ink-mute);
  font-size:1.05rem;
}
code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88em;color:var(--ink-peach);}
.dropcap{
  float:left;
  font-family:'Instrument Serif',Georgia,serif;
  font-size:4.1em;
  line-height:.78;
  padding:.06em .14em 0 0;
  color:var(--ink-peach);
}
.mag-cols{columns:2;column-gap:2.6rem;}
@media (max-width:980px){.mag-cols{columns:1;}}
.mag-cols p{orphans:2;widows:2;}
.mag-cols p:first-child{margin-top:0;}
.pullout{
  font-family:'Instrument Serif',Georgia,serif;
  font-style:italic;
  font-size:1.5rem;
  line-height:1.35;
  color:var(--ink-text);
  border-left:3px solid var(--ink-peach);
  padding:.35rem 0 .35rem 1.2rem;
  margin:1.5rem 0;
  break-inside:avoid;
}
.btn-peach,.btn-line{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-weight:500;
  padding:.85rem 1.6rem;
  border-radius:2px;
  text-decoration:none;
  display:inline-block;
  cursor:pointer;
  font-size:.95rem;
  letter-spacing:-.01em;
}
.btn-peach{background:var(--ink-peach);color:var(--ink-dark);border:1px solid var(--ink-peach);}
.btn-peach:hover,.btn-peach:focus-visible{background:#FFC59C;color:var(--ink-dark);}
.btn-line{background:transparent;color:var(--ink-text);border:1px solid var(--ink-mute);}
.btn-line:hover,.btn-line:focus-visible{background:var(--ink-text);color:var(--ink-field);border-color:var(--ink-text);}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.4rem;}
.panel-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.15rem;
}
@media (max-width:860px){.panel-row{grid-template-columns:1fr;}}
.panel{
  background:var(--ink-raise);
  border:1px solid var(--rule);
  padding:clamp(1.15rem,2vw,1.75rem);
  border-radius:2px;
}
.panel h3{margin-bottom:.7rem;}
.panel .marginal{margin-bottom:0;}
.phase-list{list-style:none;margin:0;padding:0;}
.phase-list li{
  border-top:1px solid var(--rule);
  padding:1.45rem 0 1.2rem;
  display:grid;
  grid-template-columns:1fr 1.618fr;
  gap:clamp(1rem,3vw,2.4rem);
}
.phase-list li:last-child{border-bottom:1px solid var(--rule);}
@media (max-width:860px){.phase-list li{grid-template-columns:1fr;}}
.phase-list h3{margin-bottom:.35rem;}
.stack-list{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-size:.9rem;
  color:var(--ink-mute);
  list-style:none;
  padding:0;
  margin:0 0 1.2rem;
}
.stack-list li{border-top:1px solid var(--rule);padding:.45rem 0;}
.qa{border-top:1px solid var(--rule);}
.qa__item{border-bottom:1px solid var(--rule);padding:1.3rem 0;}
.qa__item h3{margin-bottom:.5rem;}
.cta-band{
  background:var(--ink-raise);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
}
main > section:has(> .cta-band){padding-bottom:0;border-bottom:0;}
main > section > .cta-band{padding-block:clamp(2.5rem,6vw,5.2rem);}
.cta-band h2{margin-bottom:.6rem;}
.price-table{width:100%;border-collapse:collapse;font-family:'Schibsted Grotesk',system-ui,sans-serif;font-size:.92rem;}
.price-table th,.price-table td{
  border-bottom:1px solid var(--rule);
  padding:.9rem .55rem;
  text-align:left;
  vertical-align:top;
}
.price-table th{color:var(--ink-mute);font-weight:500;letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;}
.price-table td:last-child{color:var(--ink-peach);font-weight:500;}

/* Dossiers */
.dossier{padding-block:clamp(1.2rem,3vw,2.2rem);border-top:1px solid var(--rule);}
.dossier:first-of-type{border-top:0;}
.dossier__body h3{
  font-size:1.05rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink-mute);
  font-weight:500;
  margin:1.2rem 0 .4rem;
}
.dossier__figure{margin:0 0 1.3rem;}
.dossier__figure img{width:100%;object-fit:cover;max-height:420px;}
.dossier__figure figcaption{margin-top:.55rem;}
.note{border-top:1px solid var(--rule);padding:clamp(2rem,4vw,3.2rem) 0;}
.note:first-of-type{border-top:0;padding-top:0;}
.note__date{
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-mute);
  margin:0 0 .6rem;
}
.lift-in{opacity:1;transform:none;}
.js .lift-in{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease;}
.js .lift-in.shown{opacity:1;transform:none;}
.no-js .lift-in{opacity:1!important;transform:none!important;}
@media (prefers-reduced-motion:reduce){
  .lift-in,.js .lift-in{opacity:1!important;transform:none!important;transition:none!important;}
  html{scroll-behavior:auto;}
}

/* Forms */
.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem 1.2rem;
}
.field--wide{grid-column:1 / -1;}
@media (max-width:860px){.form-grid{grid-template-columns:1fr;}}
.field label{
  display:block;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-size:.82rem;
  font-weight:500;
  letter-spacing:.04em;
  margin-bottom:.35rem;
  color:var(--ink-text);
}
.field input,.field select,.field textarea{
  width:100%;
  background:var(--ink-raise);
  color:var(--ink-text);
  border:1px solid var(--ink-mute);
  border-radius:2px;
  padding:.75rem .85rem;
  font-family:'Schibsted Grotesk',system-ui,sans-serif;
  font-size:1rem;
}
.field textarea{min-height:10rem;resize:vertical;font-family:'Instrument Serif',Georgia,serif;}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{
  outline:2px solid var(--ink-peach);
  outline-offset:2px;
  border-color:var(--ink-peach);
}
.field-check{display:flex;gap:.65rem;align-items:flex-start;}
.field-check input{margin-top:.35rem;accent-color:var(--ink-peach);}
.alert{padding:1rem 1.15rem;border:1px solid var(--rule);margin-bottom:1.2rem;background:var(--ink-raise);}
.alert--ok{border-color:var(--ink-peach);}
.alert--bad{border-color:#C48B8B;}
.hp-field{position:absolute;left:-9999px;height:0;overflow:hidden;}

/* Footer */
.colophon{margin-top:auto;border-top:1px solid var(--rule);}
.colophon__map{height:300px;overflow:hidden;border:0;}
.colophon__map iframe{width:100%;height:100%;border:0;display:block;}
@media (max-width:860px){.colophon__map{height:220px;}}
.colophon__grid{
  display:grid;
  grid-template-columns:1.618fr 1fr 1fr 1fr;
  gap:clamp(1.4rem,3vw,2.4rem);
  padding:clamp(2rem,4vw,3.4rem) 0 1.6rem;
}
@media (max-width:980px){.colophon__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:860px){.colophon__grid{grid-template-columns:1fr;}}
.colophon__grid h2{
  font-size:.78rem;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-peach);
  margin:0 0 .8rem;
}
.colophon__grid ul{list-style:none;padding:0;margin:0 0 1rem;}
.colophon__grid li{margin:0 0 .35rem;}
.colophon__grid a{color:var(--ink-text);text-decoration:none;border-bottom:1px solid var(--rule);}
.colophon__grid a:hover{color:var(--ink-peach);}
.colophon__grid p{font-size:1.05rem;color:var(--ink-text);}
.legal-strip{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:1rem;
  padding:1rem 0 1.5rem;
  border-top:1px solid var(--rule);
  font-size:.95rem;
  color:var(--ink-mute);
}
.legal-strip p{margin:0;}
@media (max-width:860px){.legal-strip{flex-direction:column;}}
.cookie-bar{
  position:fixed;
  left:1.2rem;
  bottom:1.2rem;
  z-index:120;
  max-width:420px;
  background:var(--ink-raise);
  border:1px solid var(--rule);
  padding:1.1rem 1.2rem;
}
.cookie-bar p{font-size:1.05rem;margin:0 0 1rem;}
.cookie-bar__btns{display:flex;flex-wrap:wrap;gap:.6rem;}
@media (max-width:520px){
  .cookie-bar{left:.7rem;right:.7rem;max-width:none;}
}
