/* Sally ID: Instrument Serif / Instrument Sans / Outfit.
   Profile palette only. The full logo uses Morgonhimmel on Midnatt. */
:root {
  --color-paper:#FFFEF8;
  --color-surface:#FFFFFF;
  --color-mist:#DCEEFA;
  --color-soap:#DCEEFA;
  --color-ink:#18111F;
  --color-ink-soft:#1C4A7C;
  --color-brand:#1C4A7C;
  --color-sky:#74B8E5;
  --color-mid-blue:#4881B0;
  --color-line:#1c4a7c26;
  --font-display:"Instrument Serif",Georgia,serif;
  --font-body:"Instrument Sans",Arial,sans-serif;
  --font-label:"Outfit",Arial,sans-serif;
}
body { font-size:1rem; line-height:1.56; }
h1,.hero-title,.statement { font-family:var(--font-display); font-weight:400; }
h2,.section-head h2,.cta-band h2,.story-visual h2,.rut-copy h2 { font:700 clamp(1.65rem,2.65vw,2.6rem)/1.23 var(--font-body); letter-spacing:-.035em; }
h2 em { font-family:var(--font-display); font-weight:400; font-size:1.2em; }
.lead { font:400 clamp(1.06rem,1.5vw,1.31rem)/1.48 var(--font-body); }
.eyebrow { font-family:var(--font-label); letter-spacing:.12em; }
.site-header { color:var(--color-paper); border-color:#74b8e526; }
.site-header::before { background:var(--color-ink); }
.site-header.is-scrolled { border-color:#74b8e540; }
.header-inner,.site-header.is-scrolled .header-inner { min-height:8rem; padding-block:.65rem; gap:1.2rem; }
.site-header .logo img,.site-header.is-scrolled .logo img { width:140px; height:105px; object-fit:contain; transform:none; transition:none; }
.logo:hover img { transform:none; }
.page-curtain img { width:min(16rem,65vw); height:auto; object-fit:contain; }
.nav-list a { color:var(--color-paper); font-family:var(--font-body); }
.nav-list a:hover,.nav-list a[aria-current="page"] { color:var(--color-sky); }
.nav-list a::after { background:var(--color-sky); }
.site-header .header-cta { --btn-bg:var(--color-sky); --btn-fg:var(--color-ink); }
.site-header .header-cta::before { background:var(--color-paper); }
.site-header :focus-visible,.site-footer :focus-visible { outline-color:var(--color-sky); }
.menu-toggle { color:var(--color-sky); border:1px solid #74b8e555; }
.btn { border-radius:1.15rem .3rem 1.15rem .3rem; }
.btn::before { background:var(--color-sky); }
.btn--light::before { background:var(--color-paper); }
.hero-title em::after { background:var(--color-sky) !important; opacity:.6; }
.sun-seal { background:var(--color-sky); color:var(--color-ink); }
.scene-panel { background:var(--color-brand); color:var(--color-paper); }
.scene-heading .eyebrow,.scene-status,.scene-bottom { color:var(--color-paper); }
.scene-status i { background:var(--color-sky); box-shadow:0 0 0 4px #74b8e526; }
.scene-loop-meter { background:#ffffff35; }
.scene-loop-meter i { background:var(--color-sky); }
.floating-note { background:var(--color-paper); }
.floating-chip { background:var(--color-sky); color:var(--color-ink); }
.hero-bottom,.hero-details > span,.hero-copy .lead { color:var(--color-brand); }
.marquee { background:var(--color-ink); }
.marquee-group li { color:var(--color-sky); }
.marquee-group li::after { background:var(--color-sky); }
.service-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
.service-list > li,.service-list > li:nth-child(4),.service-list > li:nth-child(5),.service-list > li:last-child { grid-column:auto; --tile:var(--color-mist); }
.service-list > li:nth-child(4n+2),.service-list > li:nth-child(4n+3) { --tile:var(--color-sky); }
.service-row { padding-bottom:4.7rem; border-radius:2.2rem .4rem 2.2rem .4rem; }
.service-row:hover { padding-bottom:4.7rem; }
.service-row h3 { font:700 clamp(1.3rem,2.1vw,1.7rem)/1.23 var(--font-body); }
.service-row p { font-size:1rem; max-width:38ch; }
.service-link-label { margin-top:auto; font:.78rem var(--font-label); color:var(--color-brand); }
.service-detail { background:var(--color-mist); border-radius:2.2rem .4rem 2.2rem .4rem; }
.service-detail:nth-child(even) { background:var(--color-sky); }
.service-detail:nth-child(odd) { background:var(--color-mist); }
.service-detail h2 { font-size:clamp(1.65rem,3vw,2.3rem); }
.service-detail p,.service-detail .checklist { color:var(--color-brand); }
.joy-ribbon { background:var(--color-sky); }
.clean-story { background:var(--color-brand); }
.clean-story[data-active-step="1"] { background:var(--color-ink); }
.clean-story[data-active-step="2"] { background:var(--color-brand); }
.clean-story .story-scene { background:var(--color-sky); }
.clean-story[data-active-step="1"] .story-scene { background:var(--color-mist); }
.clean-story[data-active-step="2"] .story-scene { background:var(--color-paper); }
.story-step h3 { font-family:var(--font-display); font-weight:400; }
.story-step.is-active .story-number { background:var(--color-sky); color:var(--color-ink); }
.story-visual h2 { color:var(--color-paper); }
.story-visual h2 em { color:var(--color-sky); }
.values-section,.page-om-oss .section--mist { background:var(--color-mist); }
.rut-section { background:var(--color-sky); }
.rut-art span { font:400 clamp(2.7rem,5vw,4.5rem)/1.08 var(--font-display); }
.rut-copy p:not(.eyebrow) { color:var(--color-brand); }
.section--soap { background:var(--color-mist); }
.site-footer { background:var(--color-ink); }
.site-footer .logo img { width:160px; height:auto; transform:none; }
.page-hero,.page-boka .page-hero,.page-om-oss .page-hero,.page-kontakt .page-hero { background:var(--color-mist); }
.page-hero h1 { font-size:clamp(3.1rem,5.5vw,5rem); }
.form legend { font:700 1.25rem/1.3 var(--font-body); }
.quote-summary { position:sticky; top:9rem; align-self:start; display:grid; gap:1.4rem; padding:2rem; border-radius:2rem .4rem; background:var(--color-brand); color:var(--color-paper); }
.quote-summary h2 { font-size:1.6rem; color:var(--color-paper); }
.quote-summary ol { display:grid; gap:1.3rem; margin:0; padding-left:1.3rem; }
.quote-summary li { padding-left:.3rem; color:var(--color-mist); font-size:.95rem; }
.quote-summary strong { color:var(--color-paper); }
.quote-summary p,.quote-summary small { color:var(--color-mist); font-size:.9rem; }
.quote-summary a { color:var(--color-sky); }
.quote-summary .eyebrow { color:var(--color-sky); }
.form-note,.field-hint { font-size:.84rem; color:var(--color-ink-soft); }
.field-help,.quote-note { font-size:.84rem; }
.field-toggle { display:flex; align-items:center; gap:.6rem; font-size:.9rem; font-weight:400; }
.field-toggle input { width:1.1rem; height:1.1rem; min-height:1.1rem; padding:0; accent-color:var(--color-brand); }
.quote-steps p { margin-top:.35rem; }
.quote-intro { max-width:44rem; }
.rut-art .rut-number { font:400 clamp(3rem,5vw,5rem)/1.1 var(--font-display); }
.rut-number b { display:block; margin-top:1rem; font:400 .75rem var(--font-label); letter-spacing:.1em; text-transform:uppercase; }
.form-note { padding:1rem 1.2rem; background:var(--color-mist); border-radius:.5rem; }
[hidden] { display:none !important; }
.preview-notice { padding:.8rem 1rem; background:var(--color-mist); color:var(--color-brand); border-radius:.5rem; font-size:.85rem; }
.choice input:checked + span { background:var(--color-mist); border-color:var(--color-brand); }
.choice-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.choice span { font-size:.92rem; overflow-wrap:anywhere; }
.inline-check { display:flex; align-items:center; gap:.65rem; font-size:.9rem; }
.inline-check input { width:1.1rem; min-height:1.1rem; accent-color:var(--color-brand); }
.thanks-mark circle { stroke:var(--color-sky); }
.thanks-mark path { stroke:var(--color-brand); }
@media(max-width:1050px) and (min-width:861px) {
  .header-inner { gap:.6rem; }
  .nav-list { gap:0; }
  .nav-list a { padding-inline:.55rem; font-size:.78rem; }
  .header-cta { padding-inline:1rem; font-size:.75rem; }
}
@media(max-width:959px) { .quote-summary { position:static; } }
@media(max-width:860px) {
  .nav { background:var(--color-ink); overflow-y:auto; justify-content:flex-start; padding-top:9rem; padding-bottom:2rem; }
  .nav-list a { font-family:var(--font-display); font-size:clamp(2rem,6vw,3rem); line-height:1.25; }
  .nav-list a:hover,.nav-list a[aria-current="page"] { color:var(--color-sky); }
  .nav-contact a { color:var(--color-mist); }
}
@media(max-width:600px) {
  .service-list { grid-template-columns:1fr; }
  .service-list > li:last-child { grid-column:auto; }
  .service-row,.service-row:hover { padding:1.65rem 1.65rem 4.4rem; }
  .service-row h3 { font-size:1.6rem; }
  .quote-summary { padding:1.6rem; }
  .field input,.field select,.field textarea { font-size:1rem; }
  .form-row--2 { grid-template-columns:1fr; }
  .choice span { padding:.75rem; }
}
