/* Extends the accepted plum/rose/paper palette and existing typography. */
.interactive-only { display:none; }
.has-hospitality-demo .interactive-only { display:block; }
.has-hospitality-demo .choices, .has-hospitality-demo .question-chips { display:flex; }
.preview-disclosure { padding:18px 22px; margin-bottom:26px; border:1px solid var(--line); border-left:3px solid var(--plum); border-radius:12px; background:var(--paper); color:var(--plum); font-size:15px; line-height:1.6; }
.hero-subtitle { color:var(--plum); font-size:22px; font-weight:600; margin-top:24px; }
.source-map { display:grid; justify-items:center; gap:8px; text-align:center; padding:28px; border:1px solid var(--line); border-radius:20px; background:var(--paper); margin-bottom:28px; color:var(--plum); }
.source-map strong { font:600 35px/1.2 var(--serif); }
.source-map p { max-width:65ch; color:var(--muted); font-size:14px; }
.choices, .question-chips { gap:8px; flex-wrap:wrap; margin-block:22px; }
.choices button,.question-chips button,.stepper button,.unit-grid button { padding:12px 18px; min-height:44px; border:1px solid var(--line); border-radius:12px; background:var(--paper); color:var(--plum); cursor:pointer; font-size:14px; text-align:left; }
.choices button[aria-pressed=true],.question-chips button[aria-pressed=true],.stepper button[aria-pressed=true],.unit-grid button[aria-pressed=true] { background:var(--plum); color:var(--paper); border-color:var(--plum); }
.connected-stage > .choices { padding-inline:28px; }
.visit-list { list-style:none; margin:24px 0; }
.visit-list li { padding:14px 0; border-top:1px solid var(--line); font-size:15px; }
.visit-list strong { display:block; color:var(--plum); margin-bottom:4px; }
.source-line,.detail-note { font-size:14px!important; line-height:1.65; color:var(--muted); margin-top:18px; overflow-wrap:anywhere; }
.service-request,.work-queue { margin-block:22px; padding:22px; border-radius:16px; border:1px solid var(--line); background:var(--paper); font-size:15px; }
.service-request p,.work-queue p { margin-bottom:12px; }
.compact-ask { margin-top:24px; border-top:1px solid var(--line); padding-top:20px; }
label { font-size:14px; font-weight:600; color:var(--plum); }
.compact-ask input, .ask-form input { display:block; width:100%; padding:14px 16px; margin-top:8px; border:1px solid var(--plum-soft); border-radius:12px; background:var(--paper); color:var(--ink); min-width:0; font-weight:400; }
input::placeholder { color:var(--muted); opacity:1; }
input:focus-visible,summary:focus-visible { outline:3px solid var(--plum); outline-offset:4px; }
.input-row { display:grid; grid-template-columns:1fr auto; gap:12px; align-items:end; }
.host-strip { background:var(--rose); padding:28px 32px; border-bottom:1px solid var(--line); }
.host-strip .staff-metrics { max-width:660px; }
.observations { padding:28px 32px; border-top:1px solid var(--line); }
.observation-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:20px; }
.observation { min-height:80px; padding:18px; text-align:left; background:var(--rose); border:1px solid var(--line); border-radius:12px; color:var(--plum); font-size:15px; cursor:pointer; }
.observation span { display:block; margin-top:8px; }
.reset-row { margin-top:20px; }
.ask-console { max-width:100%; padding:32px; }
.ask-console > .eyebrow { margin-bottom:20px; }
.answer-card { padding:28px; margin-top:24px; border-radius:20px; background:var(--rose); color:var(--ink); }
.answer-card h3 { font-size:35px; line-height:1.15; max-width:40ch; margin-block:16px; }
.answer-card dl, .support-board dl { margin-block:24px; font-size:15px; }
dt { font-size:13px; color:var(--plum); font-weight:600; margin-top:18px; }
dd { margin-top:6px; overflow-wrap:anywhere; }
.answer-items { padding-left:20px; margin-top:20px; columns:2; font-size:15px; }
.answer-items li { break-inside:avoid; margin-bottom:8px; }
.answer-card .interactive-only { margin-top:22px; }
.draft { white-space:pre-line; font-size:15px; background:var(--paper); border-left:3px solid var(--plum); padding:22px; margin-top:22px; }
.draft[hidden] { display:none; }
.analysis-section { background:var(--paper); }
.unit-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:26px; }
.has-hospitality-demo .unit-grid { display:grid; }
.unit-grid strong { display:block; font:600 35px/1.2 var(--serif); margin-block:12px 4px; }
.unit-grid small { font-size:13px; }
.analysis-board,.evening-board { overflow:hidden; border:1px solid var(--line); border-radius:28px; }
.stepper { flex-wrap:wrap; gap:8px; padding:22px 28px 0; }
.has-hospitality-demo .stepper { display:flex; }
.stepper button { flex:1; min-width:120px; }
.analysis-content { padding:28px; }
.analysis-content > h3 { font-size:44px; line-height:1.15; }
.analysis-content .staff-metrics { max-width:900px; }
.calculation { padding:20px; background:var(--rose); border-radius:16px; margin-top:20px; }
.calculation summary { font-weight:600; color:var(--plum); cursor:pointer; padding-block:8px; }
.calculation p { margin-top:16px; font-size:15px; }
.analysis-answer { margin-top:26px; padding:26px; border-left:3px solid var(--plum); background:var(--rose); }
.analysis-answer p + p { margin-top:14px; }
.source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.info-card { padding:28px; border-bottom:1px solid var(--line); }
.info-card:nth-child(odd) { border-right:1px solid var(--line); }
.info-card h4 { font:600 29px/1.2 var(--serif); color:var(--plum); margin-bottom:18px; }
.info-card > p { font-size:15px; margin-top:14px; }
.large-number { font:600 44px/1.2 var(--serif); color:var(--plum); }
.service-timeline { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; list-style:none; padding:28px; border-bottom:1px solid var(--line); font-size:14px; color:var(--muted); }
.service-timeline strong { display:block; color:var(--plum); font-size:15px; }
.evening-response { padding:28px; }
.support-board { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.support-board > article { padding:28px; border:1px solid var(--line); border-radius:20px; background:var(--paper); }
.support-board h3 { font-size:35px; line-height:1.15; margin-block:18px; }
.support-next .button,.support-next .text-link { margin-top:22px; }
.status-label { font-size:13px; line-height:1.5; white-space:normal; }
.sector-status,.stage-note,.preview-footnote,.source-gap { font-size:14px; }
.preview-head .eyebrow { font-size:12px; }
.hero-note { font-size:14px; }
.stage-grid { grid-template-columns:1fr; }
.stage-screen { background:var(--paper); overflow:auto; }
.stage-screen img { width:100%; height:auto!important; aspect-ratio:auto!important; object-fit:contain!important; }
.stage-copy { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.image-open { display:block; color:var(--plum); }
.image-open > span { display:block; padding:12px 18px; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.image-dialog { position:fixed; inset:0; width:min(96vw,1600px); max-width:96vw; height:94vh; max-height:94vh; margin:auto; border:1px solid var(--line); border-radius:20px; background:var(--paper); color:var(--ink); padding:22px; }
.image-dialog::backdrop { background:rgba(42,11,22,.8); }
.dialog-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; }
.dialog-scroll { height:calc(100% - 76px); overflow:auto; border:1px solid var(--line); border-radius:12px; }
.dialog-scroll img { max-width:none; width:max(100%,var(--capture-width,1100px)); height:auto; }
.image-dialog .dialog-portrait img { width:min(100%,440px); max-width:100%; margin-inline:auto; }
.image-help { color:var(--muted); font-size:14px; margin-block:14px; }
.journey-image { height:auto!important; background:var(--paper); }
.journey-image img { width:100%; height:auto!important; object-fit:contain!important; object-position:center!important; }
.menu-concept { padding:28px; background:var(--paper); color:var(--plum); }
.menu-concept h3 { font-size:35px; margin-block:16px; }
.menu-concept ul { list-style:none; }
.menu-concept li { display:flex; justify-content:space-between; gap:18px; padding:18px 0; border-top:1px solid var(--line); font-size:17px; }
.menu-concept p { margin-top:16px; font-size:15px; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.faq-grid details { padding:22px; background:var(--paper); border:1px solid var(--line); border-radius:16px; }
.faq-grid summary { cursor:pointer; color:var(--plum); font-weight:600; padding-block:8px; }
.faq-grid p { margin-top:14px; font-size:15px; }
@media(max-width:1080px) {
  .site-nav { grid-template-columns:1fr auto; grid-template-rows:70px; column-gap:18px; row-gap:0; align-content:start; }
  .site-nav > .brand { grid-column:1; grid-row:1; align-self:center; }
  .site-nav .nav-toggle { grid-column:2; grid-row:1; align-self:center; }
  .site-nav .nav-links { grid-column:1/-1; grid-row:2; }
  .site-nav .nav-meta { grid-column:1/-1; grid-row:3; margin:0 0 18px; }
  .site-nav.js .nav-meta { display:none; }
  .site-nav.js[data-open=true] .nav-meta { display:flex; }
  .site-header:has([data-open=true]) { max-height:100dvh; overflow-y:auto; }
  .site-header:has(.site-nav:not(.js)) { position:relative; }
}
@media(max-width:820px) {
  .support-board,.stage-copy { grid-template-columns:1fr; }
  .observation-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:560px) {
  .ask-console,.analysis-content,.source-map,.observations,.host-strip { padding:22px; }
  .unit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .unit-grid button { padding:14px; }
  .unit-grid strong { font-size:29px; }
  .source-grid,.faq-grid,.input-row { grid-template-columns:1fr; }
  .info-card:nth-child(odd) { border-right:0; }
  .answer-card { padding:22px; }
  .answer-card h3 { font-size:29px; }
  .answer-items { columns:1; }
  .staff-metrics { gap:18px; grid-template-columns:1fr; }
  .staff-metrics > div { display:flex; align-items:baseline; gap:18px; }
  .staff-metrics strong { font-size:35px; }
  .staff-metrics span { font-size:14px; }
  .observation-grid { grid-template-columns:1fr; }
  .service-timeline { grid-template-columns:1fr 1fr; }
  .stage-screen img { min-width:100%; }
  .hero-subtitle { font-size:18px; }
  .image-dialog { padding:14px; }
  .dialog-bar { align-items:start; }
}

.observations > .eyebrow,.ask-console > .eyebrow,.answer-card > .eyebrow,.analysis-content > .eyebrow,.analysis-answer > .eyebrow,.support-board article > .eyebrow { color:var(--plum-soft); }
.answer-items summary { cursor:pointer; padding:8px 0; }
.answer-items details p { font-size:14px; margin-block:12px; }
.stage-copy .stage-note { font-size:14px!important; opacity:1; }
#hospitality-resan .section-heading h2,#fraga-entreakt .section-heading h2,#analyse .section-heading h2,#hela-kvallen .section-heading h2,#digital-support .section-heading h2 { max-width:22ch; text-wrap:balance; }
.preview-event h2 { max-width:22ch; }
.host-strip > .eyebrow { color:var(--plum-soft); }

/* Final quality polish: reuse established sizes, palette and components. */
.feature-card h3 { max-width:none; text-wrap:balance; }
.sector-card h3 { text-wrap:balance; }
#interval .section-heading h2,#pausen .section-heading h2 { max-width:22ch; text-wrap:balance; }
.preview-event > span,.mini-step span,.preview-metric span,.preview-question small,.preview-columns .eyebrow { font-size:14px; }
.mini-step,.preview-staff > p:not(.eyebrow),.preview-staff .source-gap { font-size:14px; }
.preview-head .eyebrow { font-size:14px; }
.analysis-content > .interactive-only { margin-top:22px; }
.analysis-content > p:not(.eyebrow):not(.source-line) { margin-top:18px; }
.payment-concept li { flex-wrap:wrap; }
@media(max-width:560px) { .preview-head { flex-wrap:wrap; } .preview-head > .eyebrow { flex-basis:100%; max-width:none; } }
