/* ============================================================
   Reassembly by Field Assembly: public site
   Palette: carbon blue, pale pink, magenta accent.
   Newsreader (headings) + Schibsted Grotesk (text) + DM Mono
   (only for typed values in the sample inquiry).
   Full-width bands, a centered container, plain sentence-case
   labels. Self-hosted fonts, no third-party requests.
   ============================================================ */

@font-face{font-family:"Newsreader";src:url(fonts/newsreader-400-600-latin.woff2) format("woff2");font-weight:400 600;font-display:swap;}
@font-face{font-family:"Schibsted Grotesk";src:url(fonts/schibsted-grotesk-400-700.woff2) format("woff2");font-weight:400 700;font-display:swap;}
@font-face{font-family:"DM Mono";src:url(fonts/dm-mono-400.woff2) format("woff2");font-weight:400;font-display:swap;}
@font-face{font-family:"DM Mono";src:url(fonts/dm-mono-500.woff2) format("woff2");font-weight:500;font-display:swap;}

:root{
  --sheet:#ffffff;
  --tint:#fbeef2;        /* pale pink band */
  --copy:#f6d3de;        /* pink panel */
  --ink:#1b2887;         /* carbon blue */
  --ink-deep:#111a5c;
  --navy:#141a3a;
  --ink-dim:#4a5290;
  --rule:#d3d6ea;
  --rule-strong:#b7bbdc;
  --mark:#b3134f;        /* magenta accent */
  --on-blue:#e6e8fb;

  --display:"Newsreader",Iowan Old Style,Georgia,serif;
  --text:"Schibsted Grotesk","Helvetica Neue",Arial,sans-serif;
  --typed:"DM Mono",ui-monospace,Menlo,Consolas,monospace;

  --pad-x:clamp(1rem,5vw,3.5rem);
  --max:70rem;
  --r:4px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{background:var(--sheet);color:var(--ink);font-family:var(--text);font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;}
a{color:var(--ink);text-decoration-thickness:1px;text-underline-offset:.2em;}
a:hover{color:var(--mark);}
:focus-visible{outline:2px solid var(--mark);outline-offset:3px;}
::selection{background:var(--copy);color:var(--ink-deep);}
.skip{position:absolute;left:1rem;top:-10rem;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:10;}
.skip:focus{top:1rem;}
.in{max-width:var(--max);margin:0 auto;padding-left:var(--pad-x);padding-right:var(--pad-x);}
p{max-width:42rem;}
p + p{margin-top:.8rem;}
.dim{color:var(--ink-dim);}
.typed{font-family:var(--typed);}

h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.01em;text-wrap:balance;}
h2{font-size:clamp(1.75rem,3vw,2.35rem);line-height:1.15;margin-bottom:.9rem;}
h3{font-family:var(--text);font-weight:700;font-size:1.06rem;line-height:1.3;margin-bottom:.3rem;letter-spacing:0;}

/* ---------- masthead ---------- */
.mast{border-bottom:1px solid var(--rule);background:#fff;}
.mast-in{max-width:var(--max);margin:0 auto;padding:.9rem var(--pad-x);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 2rem;}
.mark{text-decoration:none;display:inline-flex;align-items:center;gap:.7rem;flex:0 0 auto;color:#1c2066;}
.mark-symbol{display:block;width:2.4rem;height:2.4rem;flex:none;}
.mark .mark-type{display:flex;flex-direction:column;gap:.15rem;}
.mark b{font-weight:700;font-size:1.5rem;letter-spacing:-.03em;line-height:1;}
.mark .mark-byline{font-size:.78rem;color:var(--ink-dim);line-height:1.2;}
.mark:hover{color:#1c2066;}
.mast nav{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.4rem;font-size:.95rem;}
.mast nav a{text-decoration:none;color:var(--ink-dim);}
.mast nav a:hover{color:var(--ink);text-decoration:underline;}
.mast nav .go{color:#fff;background:var(--ink);font-weight:600;padding:.5rem .95rem;border-radius:var(--r);}
.mast nav .go:hover{background:var(--ink-deep);color:var(--copy);text-decoration:none;}

/* ---------- buttons ---------- */
.btn{display:inline-block;background:var(--ink);color:#fff;font-weight:600;font-size:1rem;text-decoration:none;padding:.85rem 1.4rem;border:1px solid var(--ink);border-radius:var(--r);cursor:pointer;min-height:44px;}
.btn:hover{background:var(--ink-deep);color:#fff;}
.btn-line{display:inline-flex;align-items:center;min-height:44px;padding:.6rem 1.1rem;border:1px solid var(--ink);border-radius:var(--r);color:var(--ink);background:transparent;font-weight:600;font-size:.95rem;text-decoration:none;}
.btn-line:hover{background:var(--ink);color:#fff;}

/* ---------- bands ---------- */
.band{padding:clamp(2.6rem,6vw,4.5rem) 0;}
.band.tint{background:var(--tint);}
.band.white{background:#fff;}
.band-head{margin-bottom:1.6rem;}
.band-head p{font-size:1.1rem;}

/* ---------- hero ---------- */
.hero{background:var(--tint);color:var(--ink);border-bottom:1px solid var(--rule);padding:clamp(2.6rem,6vw,4.5rem) 0;}
.hero .in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr);gap:2rem 3rem;align-items:center;}
.hero .copy{padding-bottom:0;}
.hero .kicker{font-weight:600;font-size:.98rem;color:var(--ink-dim);margin-bottom:1rem;}
h1{font-size:clamp(2.4rem,4.6vw,3.5rem);line-height:1.06;color:var(--ink-deep);margin-bottom:1.2rem;}
h1 .l2{display:block;}
.hero .lede{font-size:1.12rem;line-height:1.55;color:var(--ink);max-width:32rem;}
.hero .own{margin-top:1rem;font-weight:600;color:var(--ink-deep);max-width:32rem;}
.hero .cta{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.2rem;margin-top:1.7rem;}
.hero .offer{display:inline-block;background:#fff;color:var(--mark);border:1px solid var(--mark);font-weight:600;font-size:.92rem;padding:.45rem .8rem;border-radius:var(--r);}
.hero .shot{align-self:center;}
.hero .shot img{display:block;width:100%;aspect-ratio:4/3.4;object-fit:cover;object-position:top;border:1px solid var(--rule-strong);border-radius:var(--r);background:#fff;}
.hero .shot figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}

/* ---------- worked example: before / after ---------- */
.ba{position:relative;}
.ba input{position:absolute;opacity:0;pointer-events:none;}
.ba-tabs{display:flex;gap:.4rem;margin-bottom:.9rem;}
.ba-tabs label{font-weight:600;font-size:.95rem;padding:.5rem 1rem;border:1px solid var(--rule-strong);border-radius:var(--r);cursor:pointer;color:var(--ink-dim);background:#fff;}
#ba-after:checked ~ .ba-tabs label[for=ba-after],#ba-before:checked ~ .ba-tabs label[for=ba-before]{color:#fff;background:var(--ink);border-color:var(--ink);}
#ba-after:focus-visible ~ .ba-tabs label[for=ba-after],#ba-before:focus-visible ~ .ba-tabs label[for=ba-before]{outline:2px solid var(--mark);outline-offset:2px;}
.ba-frame{display:none;border:1px solid var(--rule-strong);border-radius:var(--r);background:#fff;padding:clamp(.5rem,1.5vw,1rem);}
#ba-after:checked ~ .ba-a,#ba-before:checked ~ .ba-b{display:block;}
.ba-frame img{display:block;width:100%;height:auto;border:1px solid var(--rule);}
.ba-frame img.tall{max-width:52rem;margin:0 auto;}
.ba-frame figcaption{font-size:.9rem;color:var(--ink-dim);margin-top:.7rem;}

/* ---------- scope ---------- */
.scope{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem 3rem;margin-top:1.8rem;}
.scope li{padding-top:1rem;border-top:2px solid var(--ink);}
.scope .n{display:none;}
.scope p{font-size:1rem;}
.regulated{margin-top:1.6rem;font-size:.95rem;max-width:48rem;}
.regulated b{font-weight:600;color:var(--ink);}

/* ---------- sample inquiry ---------- */
.inq{margin:2.4rem 0 .4rem;}
.inq figcaption{font-size:.95rem;color:var(--ink-dim);margin-bottom:.8rem;}
.inq figcaption .typed{font-family:var(--text);font-weight:700;color:var(--ink);margin-right:.5rem;}
.inq-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:1.2rem;align-items:start;}
.inq-sheet{padding:1rem 1.1rem;font-size:.95rem;background:#fff;border-radius:var(--r);}
.inq-sheet.before{border:1px solid var(--rule-strong);color:var(--ink-dim);}
.inq-sheet.after{border:1px solid var(--ink);}
.inq-h{font-weight:600;font-size:.9rem;color:var(--ink-dim);margin-bottom:.6rem;}
.inq dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.35rem 1rem;}
.inq dt{font-size:.88rem;color:var(--ink-dim);padding-top:.05rem;}
.inq dd{font-family:var(--typed);font-size:.92rem;}

/* ---------- more work: thumbnail grid ---------- */
.more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;margin-top:1.2rem;}
.more-group{margin-top:2.2rem;}
.more-group:first-of-type{margin-top:0;}
.more-group h3{font-family:var(--display);font-weight:600;font-size:1.35rem;letter-spacing:-.01em;}
.more-group h3 a{text-decoration:none;}
.more-group h3 a:hover{text-decoration:underline;}
.card{display:block;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--rule-strong);border-radius:var(--r);overflow:hidden;}
.card:hover{border-color:var(--ink);color:var(--ink);}
.card .pic{aspect-ratio:4/3;overflow:hidden;background:var(--tint);border-bottom:1px solid var(--rule);}
.card .pic img{display:block;width:100%;height:100%;object-fit:cover;object-position:top;}
.card .txt{padding:.9rem 1rem 1rem;}
.card .txt b{display:block;font-weight:700;margin-bottom:.15rem;}
.card .txt span{font-size:.93rem;color:var(--ink-dim);line-height:1.45;display:block;}
.card:hover .txt b{text-decoration:underline;}
.more-foot{margin-top:1.6rem;font-size:.95rem;}

/* ---------- what you own: pink panel ---------- */
.envelope{margin:1.8rem 0 1.2rem;background:var(--copy);padding:1.5rem clamp(1rem,3vw,2rem) 1.7rem;border-radius:var(--r);}
.envelope .label,.sig{display:none;}
.inv{width:100%;border-collapse:collapse;font-size:1rem;}
.inv caption{text-align:left;font-weight:700;font-size:1.15rem;padding-bottom:.7rem;}
.inv th{font-weight:600;font-size:.88rem;color:var(--ink-dim);text-align:left;padding:.4rem .8rem .4rem 0;border-bottom:1px solid var(--ink);}
.inv td{padding:.8rem .8rem .8rem 0;border-bottom:1px solid rgba(27,40,135,.22);vertical-align:top;}
.inv tr:last-child td{border-bottom:0;}
.inv td:first-child{font-weight:600;}
.inv th:last-child,.inv td:last-child{text-align:right;padding-right:0;width:1%;}
.owner{font-weight:700;color:var(--mark);}

/* ---------- schedule ---------- */
.sched{margin-top:1.6rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;}
.sched .step{border-top:2px solid var(--ink);padding-top:.8rem;min-width:0;}
.sched .when{font-weight:600;font-size:.9rem;color:var(--ink-dim);display:block;margin-bottom:.3rem;}
.sched .bar{display:none;}
.sched p{font-size:.98rem;}

/* ---------- price ---------- */
.ledger{margin-top:1.5rem;max-width:46rem;background:#fff;border:1px solid var(--rule-strong);border-radius:var(--r);padding:0 1.2rem;}
.ledger .row{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding:1rem 0;border-bottom:1px solid var(--rule);}
.ledger .row:last-child{border-bottom:0;}
.ledger .what{flex:0 1 auto;font-weight:600;}
.ledger .what small{display:block;color:var(--ink-dim);font-weight:400;font-size:.92rem;line-height:1.45;margin-top:.15rem;}
.ledger small.offer{margin-top:.35rem;color:var(--mark);}
.ledger .amt{flex:0 0 auto;font-weight:700;font-size:1.15rem;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;}
.terms{margin-top:1.2rem;font-size:.95rem;}

/* ---------- who builds this ---------- */
.who{display:grid;grid-template-columns:minmax(0,14rem) minmax(0,1fr);gap:1.5rem 3rem;align-items:start;}
.who-pic img{display:block;width:100%;border-radius:var(--r);border:1px solid var(--rule-strong);}
.who-pic figcaption{font-size:.9rem;color:var(--ink-dim);margin-top:.6rem;}
.who-txt p{max-width:38rem;}
@media (max-width:52rem){.who{grid-template-columns:minmax(0,1fr);}.who-pic{max-width:12rem;}}

/* ---------- request form (navy band) ---------- */
#request{background:var(--navy);color:#fff;}
#request h2{color:#fff;}
#request .lede{font-size:1.15rem;line-height:1.55;}
#request p{color:var(--on-blue);}
.req{margin-top:1.6rem;max-width:44rem;}
.field{margin-bottom:1.2rem;}
.field label,.checks legend{display:block;font-weight:600;font-size:.92rem;color:var(--on-blue);margin-bottom:.4rem;}
.field .opt{font-weight:400;}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:0 1.5rem;}
input[type=text],input[type=email],input[type=tel],textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink-deep);background:#fff;border:1px solid #fff;padding:.6rem .75rem;border-radius:var(--r);min-height:46px;}
input::placeholder,textarea::placeholder{color:#6d74a8;}
textarea{min-height:7rem;resize:vertical;}
input:focus,textarea:focus{outline:2px solid var(--copy);outline-offset:1px;}
fieldset{border:0;}
.checks{margin-bottom:1.2rem;}
.checks label{display:flex;gap:.75rem;align-items:flex-start;padding:.4rem 0;cursor:pointer;color:#fff;}
.checks input{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:1.2rem;height:1.2rem;margin-top:.2rem;border:1px solid #fff;border-radius:3px;background:#fff;display:grid;place-content:center;cursor:pointer;}
.checks input::after{content:"";width:.66rem;height:.66rem;border-radius:2px;background:var(--mark);transform:scale(0);transition:transform .12s;}
.checks input:checked::after{transform:scale(1);}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden;}
.sign{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;border-top:1px solid #4a5290;padding-top:1.3rem;}
.sign p{font-size:.92rem;max-width:26rem;}
#request .btn{background:#fff;color:var(--ink-deep);border-color:#fff;}
#request .btn:hover{background:var(--copy);border-color:var(--copy);}
#request a{color:#fff;}
#request :focus-visible{outline-color:var(--copy);}
.status{margin-top:1rem;font-size:.95rem;min-height:1.5rem;}
.status.ok{border-left:2px solid var(--copy);padding-left:.8rem;}
.status.err{color:var(--copy);}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--rule);background:#fff;}
.foot-in{max-width:var(--max);margin:0 auto;padding:1.3rem var(--pad-x) 2.2rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 1rem;font-size:.92rem;color:var(--ink-dim);}
.foot-in > p{flex:1 1 28rem;}
.foot-mark{display:inline-flex;align-items:center;flex:none;}
.foot-mark img{display:block;}
.foot nav{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;}
.foot-in .typed{font-family:var(--text);}

/* ---------- inner pages: tools, projects, legal ---------- */
.page-head{background:var(--tint);border-bottom:1px solid var(--rule);padding:clamp(2.2rem,5vw,3.4rem) 0;}
.page-head .kicker{font-weight:600;font-size:.95rem;color:var(--ink-dim);margin-bottom:.7rem;}
.page-head .kicker a{color:var(--ink-dim);text-decoration:none;}
.page-head .kicker a:hover{text-decoration:underline;color:var(--ink);}
.page-head h1{color:var(--ink-deep);font-size:clamp(2.2rem,4.2vw,3.2rem);margin-bottom:.9rem;}
.page-head .short{font-size:1.12rem;line-height:1.55;color:var(--ink);max-width:44rem;}
.legal{max-width:46rem;margin:0 auto;padding:clamp(2rem,5vw,3.5rem) var(--pad-x) 1rem;}
.legal .kicker{font-weight:600;font-size:.92rem;color:var(--ink-dim);margin-bottom:1rem;}
.legal h1{color:var(--ink);font-size:clamp(2.2rem,5vw,3.2rem);margin-bottom:1rem;}
.legal .dates{display:flex;flex-wrap:wrap;gap:.3rem 2rem;font-size:.9rem;color:var(--ink-dim);border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);padding:.6rem 0;margin-bottom:2rem;}
.legal .short{font-size:1.15rem;line-height:1.55;margin-bottom:2rem;}
.legal h2{font-size:clamp(1.4rem,2.6vw,1.8rem);margin:2.4rem 0 .7rem;}
.legal h2 .n{display:none;}
.legal ul{margin:.6rem 0 .8rem 1.2rem;max-width:40rem;}
.legal li{margin:.25rem 0;}
.legal p + ul{margin-top:.5rem;}
.tool-shot{margin:1.4rem 0 0;}
.tool-shot img{display:block;width:100%;max-width:840px;height:auto;border:1px solid var(--rule-strong);border-radius:var(--r);}
.tool-shot.narrow img{max-width:520px;}
.tool-shot figcaption{font-size:.9rem;color:var(--ink-dim);margin-top:.6rem;}
.tool-shot + p{margin-top:2rem;}
.legal.case{max-width:62rem;}
.legal.case .tool-shot img{max-width:none;}
.case-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem 1.6rem;margin-top:1.4rem;}
.case-pair .tool-shot{margin:0;}
.legal .cta-line{margin:2.4rem 0 2.6rem;}
.legal .cta-line a{display:inline-block;background:var(--ink);color:#fff;font-weight:600;text-decoration:none;padding:.85rem 1.4rem;border-radius:var(--r);}
.legal .cta-line a:hover{background:var(--ink-deep);}
.plain{padding:clamp(3rem,10vw,7rem) var(--pad-x);max-width:40rem;margin:0 auto;}
.plain h1{color:var(--ink);font-size:clamp(2.4rem,6vw,3.8rem);margin-bottom:1.2rem;}

.faq{display:grid;gap:1.5rem;max-width:46rem;}
.faq h3{font-size:1.15rem;margin-bottom:.35rem;}
.faq p{font-size:1rem;}

/* ---------- narrow screens ---------- */
@media (max-width:60rem){
  .more-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .sched{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:52rem){
  .hero .in{grid-template-columns:minmax(0,1fr);}
  .hero .shot{display:none;}
  .scope{grid-template-columns:minmax(0,1fr);}
  .inq-pair{grid-template-columns:minmax(0,1fr);}
  .pair{grid-template-columns:minmax(0,1fr);}
  .case-pair{grid-template-columns:minmax(0,1fr);}
  .inv thead{display:none;}
  .inv tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;padding:.8rem 0;border-bottom:1px solid rgba(27,40,135,.22);}
  .inv tr:last-child{border-bottom:0;}
  .inv td{border:0;padding:0;}
  .inv td:nth-child(2){grid-column:1;grid-row:2;color:var(--ink-dim);font-size:.95rem;}
  .inv td:last-child{grid-column:2;grid-row:1 / span 2;align-self:center;}
}
@media (max-width:36rem){
  .more-grid{grid-template-columns:minmax(0,1fr);}
  .sched{grid-template-columns:minmax(0,1fr);}
  .mark-symbol{width:2.1rem;height:2.1rem;}
  .mark b{font-size:1.35rem;}
  .mast nav{gap:.5rem .9rem;font-size:.9rem;}
  .mast nav .go{display:none;}
}
