.hfm { --hfm-ink:#212d45; --hfm-gold:#fbbf3c; box-sizing:border-box; max-width:1120px; width:calc(100% - 40px); margin:64px auto; color:var(--hfm-ink); text-align:left; scroll-margin-top:32px; font-family:inherit; }
.hfm *, .hfm *::before, .hfm *::after {box-sizing:border-box;}
.hfm [hidden] {display:none!important;}
.hfm .hfm-intro {text-align:center; margin-bottom:28px;}
#bestillingsskjema.hfm p {text-align:left!important;}
#bestillingsskjema.hfm .hfm-intro p {text-align:center!important;}
.hfm .hfm-kicker {font-size:13px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; margin:0 0 10px; color:#665015;}
.hfm h2 {font-size:clamp(27px,3vw,40px); line-height:1.2; margin:0 0 12px; color:var(--hfm-ink);}
.hfm .hfm-intro p:last-child {margin:0; color:#566070;}
.hfm .hfm-card {background:#fff; border:1px solid #dce1e8; border-radius:16px; box-shadow:0 12px 35px #212d450a; overflow:hidden;}
.hfm .hfm-steps {list-style:none; margin:0; padding:24px 32px; display:grid; grid-template-columns:repeat(3,1fr); gap:16px; border-bottom:1px solid #e5e8ec; background:#fafbfc;}
.hfm .hfm-steps li {display:flex; align-items:center; gap:10px; color:#677080; font-size:14px; font-weight:600; margin:0; padding:0;}
.hfm .hfm-steps span {width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:#e8ebef; flex-shrink:0;}
.hfm .hfm-steps .is-current {color:var(--hfm-ink);}
.hfm .hfm-steps .is-current span {background:var(--hfm-gold);}
.hfm .hfm-steps .is-done span {background:var(--hfm-ink); color:#fff;}
.hfm form {padding:28px 32px 30px; margin:0;}
.hfm .hfm-progress {font-size:12px; color:#687386; margin:0 0 8px;}
.hfm h3 {font-size:24px; line-height:1.3; margin:0 0 8px; color:var(--hfm-ink);}
.hfm h3:focus {outline:none;}
.hfm .hfm-hint {font-size:14px; color:#586373; margin:0 0 24px;}
.hfm details {border:1px solid #dce1e8; border-radius:9px; margin:0 0 10px; overflow:hidden;}
.hfm summary {padding:15px 18px; font-size:15px; font-weight:700; cursor:pointer; background:#f7f8fa; list-style-position:inside;}
.hfm summary [data-category-count] {float:right; font-size:12px; font-weight:500; color:#586373; margin-top:3px;}
.hfm .hfm-items {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:16px;}
.hfm .hfm-item {border:1px solid #e0e4ea; border-radius:8px; padding:12px; min-width:0; transition:border-color .15s;}
.hfm .hfm-item.hfm-selected {border-color:#c08a10; background:#fffcf2;}
.hfm .hfm-item-label {display:flex; align-items:center; gap:10px; font-size:14px; min-height:38px; margin-bottom:10px; line-height:1.3;}
.hfm .hfm-item-label img {width:30px; height:30px; object-fit:contain; flex-shrink:0;}
.hfm .hfm-counter {display:grid; grid-template-columns:40px 1fr 40px; border:1px solid #cbd2dc; border-radius:6px; overflow:hidden;}
.hfm .hfm-counter button {font-size:23px; padding:0; min-height:40px; border:0; border-radius:0; background:#f2f4f7; color:var(--hfm-ink); line-height:1;}
.hfm .hfm-counter input {width:100%; min-width:0; border:0; border-radius:0; text-align:center; background:#fff; color:var(--hfm-ink); padding:4px; height:40px; font-size:16px; appearance:textfield;}
.hfm .hfm-counter input::-webkit-inner-spin-button,.hfm .hfm-counter input::-webkit-outer-spin-button {-webkit-appearance:none; margin:0;}
.hfm .hfm-addresses {display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.hfm fieldset {min-width:0; padding:20px; margin:0 0 20px; border:1px solid #dce1e8; border-radius:10px;}
.hfm legend {font-size:17px; font-weight:700; padding:0 6px; color:var(--hfm-ink);}
.hfm .hfm-fields {display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.hfm .hfm-field {display:flex; flex-direction:column; gap:6px; min-width:0;}
.hfm .hfm-wide {grid-column:1/-1;}
.hfm .hfm-field label {font-size:13px; font-weight:600; color:var(--hfm-ink); line-height:1.5;}
.hfm .hfm-field input,.hfm .hfm-field select,.hfm .hfm-field textarea {font:inherit; font-size:16px; color:var(--hfm-ink); background:#fff; border:1px solid #bcc5d1; border-radius:6px; padding:11px 12px; width:100%; min-height:46px; box-shadow:none; margin:0;}
.hfm .hfm-field textarea {resize:vertical; min-height:90px;}
.hfm input[aria-invalid=true] {border-color:#ae2828;}
.hfm input:focus,.hfm select:focus,.hfm textarea:focus {border-color:#83610f; outline:2px solid #fbbf3c70; outline-offset:1px;}
.hfm button:focus-visible,.hfm summary:focus-visible {outline:3px solid #926b11; outline-offset:3px;}
.hfm .hfm-checks {display:flex; flex-wrap:wrap; gap:12px 24px;}
.hfm .hfm-check {display:flex; align-items:center; gap:9px; font-size:14px; cursor:pointer; min-height:36px;}
.hfm .hfm-check input {accent-color:#8a6100; width:18px; height:18px; margin:0;}
.hfm .hfm-summary {background:#f7f8fa; border-radius:10px; padding:20px; margin-bottom:24px;}
.hfm .hfm-summary h4 {margin:0 0 14px; font-size:17px; color:var(--hfm-ink);}
.hfm .hfm-summary dl {margin:0; display:grid; grid-template-columns:90px 1fr; gap:8px 12px; font-size:14px;}
.hfm .hfm-summary dt {font-weight:600;}
.hfm .hfm-summary dd {margin:0; overflow-wrap:anywhere;}
.hfm .hfm-summary ul {display:flex; flex-wrap:wrap; gap:4px 18px; list-style:none; padding:12px 0 0; margin:12px 0 0; border-top:1px solid #dde2e8; font-size:13px;}
.hfm .hfm-footer {border-top:1px solid #e1e5eb; padding-top:22px; margin-top:24px; display:flex; justify-content:space-between; align-items:center; gap:20px;}
.hfm .hfm-total {margin:0; font-size:13px; color:#5c6777;}
.hfm .hfm-total strong {display:block; color:var(--hfm-ink); font-size:23px; margin-top:3px; line-height:1.3;}
.hfm .hfm-actions {display:flex; gap:12px;}
.hfm .hfm-actions button {font:inherit; font-weight:600; font-size:14px; line-height:1.3; padding:14px 24px; min-height:48px; border:1px solid var(--hfm-gold); border-radius:6px; background:var(--hfm-gold); color:#172238; text-transform:none; cursor:pointer;}
.hfm .hfm-actions [data-back] {background:#fff; border-color:#c6ced8;}
.hfm button:disabled {opacity:.65; cursor:wait;}
.hfm .hfm-error {background:#fff1f0; border-left:3px solid #ad2923; padding:12px 16px; color:#8b201c; font-size:14px; margin:18px 0 0;}
.hfm .hfm-privacy {font-size:12px; color:#626d7e; margin:18px 0 0;}
@media(max-width:767px) {
 .hfm {width:calc(100% - 28px); margin:40px auto;}
 .hfm .hfm-steps {padding:18px 12px; gap:8px;}
 .hfm .hfm-steps li {flex-direction:column; gap:6px; text-align:center; font-size:11px;}
 .hfm form {padding:22px 16px;}
 .hfm .hfm-items {grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px;}
 .hfm .hfm-item {padding:10px 8px;}
 .hfm .hfm-item-label {font-size:12px; gap:6px; min-height:44px;}
 .hfm .hfm-item-label img {width:25px; height:25px;}
 .hfm .hfm-counter {grid-template-columns:34px 1fr 34px;}
 .hfm .hfm-addresses {grid-template-columns:1fr; gap:0;}
 .hfm fieldset {padding:16px 12px;}
 .hfm .hfm-fields {gap:14px 10px;}
 .hfm [data-panel="3"] .hfm-fields {grid-template-columns:1fr;}
 .hfm .hfm-footer {align-items:stretch; flex-direction:column; gap:16px;}
 .hfm .hfm-total {display:flex; align-items:center; justify-content:space-between;}
 .hfm .hfm-total strong {margin:0;}
 .hfm .hfm-actions {justify-content:flex-end;}
 .hfm .hfm-actions button {flex:1; padding:14px 16px;}
 .hfm h3 {font-size:22px;}
}
