/* Partnertemaer for Solsjekk (solsjekk-partnere.js). Brukes både av sida og
   av tilbudsrapporten (.sko), også når rapporten tegnes som PDF på serveren.

   Soleie (soleie.no): oransje sol #fea500, marineblå #142647, tekst #161c27,
   fersken #ffe4b2/#fff2d9, pilleknapper i versaler, Red Hat Display.
   Hvit tekst på #fea500 holder ikke kontrast (2:1), så knappeteksten er mørk.

   SunPool (sunpool.no): mørk grønn #0a3532/#113633, krem #fbf8f3, tekst
   #272727, lime #d9ff8f som lys aksent på mørkt, knapper med 10 px radius.
   Overskrifter i Roboto, brødtekst i Nunito Sans (nærmeste frie til Avenir
   Light, som nettsida deres bruker). */

/* ── Felles for partnersidene ───────────────────────────────── */
html.p-brand .sk-crumbs, html.p-brand .sk-related, html.p-brand .sk-footer,
html.p-brand .sk-nav, html.p-brand .sk-lead, html.p-brand .only-solkart { display: none !important; }
.p-head { display: none; }
html.p-brand .p-head { display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 4px 0 18px; margin-bottom: 18px; border-bottom: 1px solid var(--rule); }
.p-head img { height: 34px; width: auto; display: block; }
.p-head a { color: var(--ink-soft); font-size: 14px; text-decoration: none; }
.p-head a:hover { color: var(--accent-deep); text-decoration: underline; }
html.p-brand .intro .partner { display: none; }
.p-foot { display: none; }
html.p-brand .p-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px;
  margin-top: 22px; font-size: 13px; color: var(--ink-faint); }
.p-foot a { color: var(--ink-soft); }
.p-sent { display: flex; align-items: center; gap: 10px; justify-content: center; font-size: 14px; color: var(--ink-soft); margin-top: 8px; }
.p-sent.ok { color: var(--moss); }
.p-sent.err { color: var(--warn); }

/* ── Soleie ─────────────────────────────────────────────────── */
html.p-soleie {
  --ink: #161c27; --ink-soft: #3d4555; --ink-faint: #6b7280;
  --paper: #ffffff; --paper-warm: #fff8ea; --rule: #f1e3c8;
  --accent: #fea500; --accent-deep: #142647; --accent-pale: #fff2d9; --on-accent: #161c27;
  --font-head: "Red Hat Display", system-ui, sans-serif;
  --font-body: "Red Hat Display", system-ui, sans-serif;
  --focus: rgb(254 165 0 / 0.35);
}
html.p-soleie body { background: radial-gradient(ellipse at 85% -10%, #ffe4b2 0%, transparent 50%), #ffffff; }
html.p-soleie .btn { border-radius: 50px; text-transform: uppercase; letter-spacing: .5px; font-size: 14px;
  border: 1px solid #f29900; padding: 12px 24px; }
html.p-soleie .btn:hover { background: #ffe4b2; color: #161c27; }
html.p-soleie .btn--ghost { background: transparent; border: 2px solid #fea500; color: #161c27; }
html.p-soleie .btn--ghost:hover { background: #fff2d9; }
html.p-soleie .intro h1 { font-weight: 700; letter-spacing: -.01em; }
html.p-soleie .panel h2 { font-weight: 700; }
html.p-soleie .stage { border-radius: 150px 18px 150px 18px / 60px 18px 60px 18px; }
html.p-soleie .mapcol { border-radius: inherit; border-top-right-radius: 0; border-bottom-right-radius: 0; }
html.p-soleie .kpi b { color: #142647; }
html.p-soleie .seg button.on { background: #142647; border-color: #142647; }
@media (max-width: 900px) { html.p-soleie .stage { border-radius: 18px; } }

.sko.p-soleie {
  --papir: #ffffff; --krem: #fff2d9; --krem-50: #fffaf0;
  --blekk: #142647; --terra: #ea7315; --skifer: #3d4a63;
  --dempet: #5f6778; --haar: #f0e2cb; --sand: #ffc861;
  --sko-head: "Red Hat Display", system-ui, sans-serif;
  --sko-body: "Red Hat Display", system-ui, sans-serif;
  color: #161c27;
}
.sko.p-soleie .sko-cover__title, .sko.p-soleie .sko-h1, .sko.p-soleie .sko-section__title { font-weight: 700; }
.sko.p-soleie .sko-cover__brand img { height: 10mm; }

/* ── SunPool ────────────────────────────────────────────────── */
html.p-sunpool {
  --ink: #272727; --ink-soft: #4a4f4d; --ink-faint: #737a77;
  --paper: #ffffff; --paper-warm: #fbf8f3; --rule: #e2ddd3;
  --accent: #113633; --accent-deep: #0a3532; --accent-pale: #eaf1ec; --on-accent: #fbf8f3;
  --moss: #2f6b4f; --moss-pale: #eef6e6;
  --font-head: "Roboto", system-ui, sans-serif;
  --font-body: "Nunito Sans", system-ui, sans-serif;
  --focus: rgb(17 54 51 / 0.3);
}
html.p-sunpool body { background: #fbf8f3; }
html.p-sunpool .p-head { background: #fbf8f3; }
html.p-sunpool .btn { border-radius: 10px; border: 2px solid #113633; font-weight: 700; letter-spacing: .1em; font-size: 14px; }
html.p-sunpool .btn:hover { background: #0a3532; border-color: #0a3532; }
html.p-sunpool .btn--ghost { background: transparent; color: #113633; }
html.p-sunpool .btn--ghost:hover { background: #eaf1ec; }
html.p-sunpool .intro h1, html.p-sunpool .panel h2 { font-weight: 700; letter-spacing: -.01em; }
html.p-sunpool .intro h1 small { font-weight: 400; }
html.p-sunpool .steps li.on::after { background: #0a3532; box-shadow: 0 0 0 4px #d9ff8f; }
html.p-sunpool .stage { border-radius: 10px; }
html.p-sunpool .card.on { box-shadow: 0 0 0 1px #113633, inset 4px 0 0 #d9ff8f; }

.sko.p-sunpool {
  --papir: #ffffff; --krem: #fbf8f3; --krem-50: #fdfbf8;
  --blekk: #0a3532; --terra: #d9785f; --skifer: #45605c;
  --gevinst: #2f6b4f; --dempet: #5d6664; --haar: #e2ddd3; --sand: #d9ff8f;
  --sko-head: "Roboto", system-ui, sans-serif;
  --sko-body: "Nunito Sans", system-ui, sans-serif;
  color: #272727;
}
.sko.p-sunpool .sko-cover__title, .sko.p-sunpool .sko-h1, .sko.p-sunpool .sko-section__title { font-weight: 700; }
.sko.p-sunpool .sko-cover__brand img { height: 7mm; }

/* ── Solcellespesialisten, /solsjekk/oslo (24. sept 2026) ──────
   Fargene er fra websites/packages/shared/src/styles/tokens.css: tangerine
   #f1913e, sienna #ec643a, gul #fcc614, whitesmoke #f6f4f2, platinum #dee2e6,
   tekst #212529, rich black #0c1014. Tekst på tangerine er mørk (7,97:1),
   hvit holder ikke kontrast. Plus Jakarta Sans overalt. */
html.p-oslo {
  --ink: #212529; --ink-soft: #495057; --ink-faint: #6c757d;
  --paper: #ffffff; --paper-warm: #fbf9f7; --rule: #dee2e6;
  --accent: #f1913e; --accent-deep: #0c1014; --accent-pale: #fdeedf; --on-accent: #212529;
  --font-head: "Plus Jakarta Sans", system-ui, sans-serif;
  --font-body: "Plus Jakarta Sans", system-ui, sans-serif;
  --focus: #2d62ff;
}
html.p-oslo body { background: #f6f4f2; }
html.p-oslo .btn { border-radius: 10px; font-weight: 700; }
html.p-oslo .btn:hover { background: #f67736; }
html.p-oslo .btn--ghost { background: transparent; color: #212529; border-color: #ced4da; }
html.p-oslo .btn--ghost:hover { background: #fdeedf; }
html.p-oslo .intro h1, html.p-oslo .panel h2 { font-weight: 700; letter-spacing: -.015em; }
html.p-oslo .steps li.on::after { background: #f1913e; box-shadow: 0 0 0 4px rgb(241 145 62 / 0.25); }
html.p-oslo .p-head img { height: 30px; }
/* Linja under undertittelen (`fremheving` i solsjekk-partnere.js), samme budskap som annonsene */
.intro h1 small .p-fremheving { display: block; margin-top: 8px; font-weight: 700; color: var(--ink); }

/* Kontaktsteget: hvem som søker Klimaoslo (obligatorisk) */
.soknad-valg { display: grid; gap: 6px; margin-top: 4px; }
.soknad-valg .check { margin: 0; }
.soknad-valg .check input { border-radius: 50%; }

.sko.p-oslo {
  --papir: #ffffff; --krem: #f6f4f2; --krem-50: #fbf9f7;
  --blekk: #0c1014; --terra: #ec643a; --skifer: #495057;
  --dempet: #6c757d; --haar: #dee2e6; --sand: #fcc614;
  --sko-head: "Plus Jakarta Sans", system-ui, sans-serif;
  --sko-body: "Plus Jakarta Sans", system-ui, sans-serif;
  color: #212529;
}
.sko.p-oslo .sko-h1, .sko.p-oslo .sko-section__title { font-weight: 700; }

/* Tilbudsmalen (solsjekk-oslotilbud.js) */
.sko .skt-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8mm;
  padding-bottom: 4mm; border-bottom: 2px solid var(--blekk); }
.sko .skt-head img { height: 9mm; width: auto; display: block; }
.sko .skt-head__meta { text-align: right; font-size: 12px; line-height: 1.5; color: var(--skifer); }
.sko .skt-head__meta b { color: var(--blekk); }
.sko .skt-tittel { font-family: var(--sko-head); font-size: 34px; font-weight: 700; line-height: 1.05; margin: 0; }
.sko .skt-parter { display: grid; grid-template-columns: 1fr 1fr; gap: 8mm; }
.sko .skt-parter div > b { display: block; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--skifer); border-bottom: 1px solid var(--blekk); padding-bottom: 1.5mm; margin-bottom: 2mm; }
.sko .skt-parter p { font-size: 13px; line-height: 1.5; }
.sko .skt-tegning { margin: 0; }
.sko .skt-tegning img { display: block; width: 100%; height: auto; max-height: 150mm; object-fit: contain; background: var(--krem); }
.sko .skt-tegning figcaption { margin-top: 1.5mm; }
.sko .skt-pris td.num, .sko .skt-pris th.num { white-space: nowrap; }
.sko .skt-pris .skt-total td { font-size: 15px; font-weight: 700; border-top: 2px solid var(--blekk); border-bottom: 0; }
.sko .skt-pris .skt-info td { color: var(--skifer); }
.sko .skt-anslag { border: 1.5px solid var(--terra); padding: 4mm 5mm; }
.sko .skt-anslag b.skt-merke { color: var(--blekk); }
.sko .skt-liste { margin: 0; padding-left: 5mm; font-size: 13px; line-height: 1.5; }
.sko .skt-liste li + li { margin-top: 1mm; }
.sko .skt-valgt { display: inline-block; font-weight: 700; border: 1.5px solid var(--blekk); padding: 1mm 3mm; }
.sko .skt-sign { display: grid; grid-template-columns: 1fr 1fr; gap: 10mm; margin-top: 4mm; }
.sko .skt-sign div > b { display: block; font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 9mm; }
.sko .skt-sign span { display: block; border-top: 1px solid var(--blekk); padding-top: 1.2mm; font-size: 11px; color: var(--skifer); margin-bottom: 8mm; }
.sko .skt-sign span:last-child { margin-bottom: 0; }
.sko .skt-aksept, .sko .skt-anslag, .sko .skt-parter, .sko .skt-tegning, .sko .skt-prisblokk, .sko .skt-anleggblokk,
.sko .skt-pris tr { break-inside: avoid; page-break-inside: avoid; }
/* Lange firmanavn, adresser og e-postadresser brytes i stedet for å gå ut i margen. */
.sko .skt-parter p, .sko .sko-sub, .sko .skt-head__meta, .sko .skt-pris td, .sko .sko-facts dd { overflow-wrap: anywhere; }
.sko .skt-parter > div, .sko .skt-anleggblokk > * { min-width: 0; }
.sko .sko-facts dd { white-space: normal; }
/* Kildene flyter etter aksepten i stedet for å starte på ny side (ingen nesten tomme sider). */
.sko .sheet.skt-slutt { break-before: auto; page-break-before: auto; }
/* Vilkårsdelen (inkludert, forbehold, gyldighet, søknad, aksept) starter på ny side, så
   «Inkludert i prisen» ikke deles fra lista si under tegningen. */
.sko .sheet.skt-side2 { break-before: page; page-break-before: always; }
.sko .skt-hold { break-inside: avoid; page-break-inside: avoid; }

/* Søknadsspørsmål og vilkår i kontaktsteget (partner med soknadsporsmal/soknadsvilkar) */
.skq { margin-top: 12px; }
.skq fieldset { border: 0; margin: 12px 0 0; padding: 0; min-width: 0; }
.skq legend { font-size: 13.5px; font-weight: 600; color: var(--ink); padding: 0; margin-bottom: 2px; }
.skq .hint { margin: 0 0 4px; }
.skq .jn { display: flex; gap: 18px; }
.skq .jn .check { margin: 0; }
.skq textarea { min-height: 60px; }
.skq .note { margin-top: 8px; }
.skq .check a { color: var(--accent-deep); }
/* Opplysninger til søknaden i tilbudet */
.sko .skt-opplysninger { margin-top: 3mm; break-inside: avoid; page-break-inside: avoid; }
.sko .skt-svar { display: grid; grid-template-columns: 1fr auto; gap: 0 5mm; margin: 0 0 2mm; font-size: 12.5px; }
.sko .skt-svar dt, .sko .skt-svar dd { margin: 0; padding: 1.6mm 0; border-bottom: 1px solid var(--haar); overflow-wrap: anywhere; }
.sko .skt-svar dd { font-weight: 600; max-width: 80mm; }
/* Bunnmarg i utskriften for tilbudet: arkene flyter over flere sider, og uten marg
   gikk teksten helt ned til papirkanten. Navngitt side, så andre rapporter ikke påvirkes. */
@page skoOslo { margin-bottom: 12mm; }
.sko.p-oslo .sheet { page: skoOslo; }
/* «Søknaden til Klimaoslo» deles ikke over to sider (kontrollen 25.9.2026). */
.sko .skt-soknad { break-inside: avoid; page-break-inside: avoid; }
.sko .skt-soknad > .sko-h3 { break-after: avoid; page-break-after: avoid; }

/* Søknadsopplysninger etter leadet (Carl 25.9.2026): i kvitteringen og alene via lenken i e-posten. */
.done .skq-kort { text-align: left; margin-top: 18px; padding: 16px 18px; border: 1px solid var(--rule); border-radius: 12px; background: var(--paper-warm); }
.skq h3 { font-family: var(--font-head, "Newsreader", Georgia, serif); font-size: 19px; margin: 0 0 4px; line-height: 1.25; }
.skq .skq-send { margin-top: 14px; }
.skq .p-sent { justify-content: flex-start; text-align: left; }
.soknad-side { max-width: 680px; margin: 0 auto 24px; background: var(--paper); border: 1px solid var(--rule); border-radius: 18px; }
/* `.panel` (display:flex) overstyrer [hidden], så den tomme seksjonen viste seg som en hvit boks øverst (25. sept 2026) */
.soknad-side[hidden] { display: none; }
html.soknad-modus .steps, html.soknad-modus .stage, html.soknad-modus .maplegend, html.soknad-modus .intro { display: none !important; }
