/* Bussferier.no - samme designspråk som bussresor.se: mørkeblått, Oswald-overskrifter, gule knapper. */
:root{--blaa:#09355c;--marine:#062140;--gul:#fbe17e;--gul-mork:#f4cf3e;--lys:#eff4f7;--kant:#afc5d8;--tekst:#212529;--dempet:#55606f;--hvit:#fff;--rad:6px;--rod:#b4232a;--gronn:#1e7a46}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-padding-top:90px;-webkit-text-size-adjust:100%}
body{font-family:'Montserrat','Segoe UI',system-ui,-apple-system,sans-serif;color:var(--tekst);background:var(--lys);line-height:1.65;font-size:16px}
img{max-width:100%;display:block}
a{color:var(--blaa)}
h1,h2,h3{font-family:'Oswald','Arial Narrow',sans-serif;color:var(--blaa);line-height:1.2;letter-spacing:.01em}
.beholder{max-width:1200px;margin:0 auto;padding:0 16px}
.hopp{position:absolute;left:-999px;top:0;background:var(--gul);padding:8px 12px;z-index:2000}
.hopp:focus{left:8px}

/* Toppmeny */
.topp{background:#fff;position:sticky;top:0;z-index:1000;box-shadow:0 2px 12px rgba(0,0,0,.08);border-bottom:1px solid var(--kant)}
.topp-inner{display:flex;align-items:center;gap:14px;height:74px;max-width:1200px;margin:0 auto;padding:0 16px}
.logo img{height:64px;width:auto}
.meny{display:flex;gap:2px;margin-left:auto}
.meny a{font-family:'Oswald',sans-serif;font-weight:600;font-size:.95rem;text-transform:uppercase;letter-spacing:.04em;color:var(--blaa);text-decoration:none;padding:8px 12px;border-radius:5px}
.meny a:hover,.meny a:focus-visible{background:var(--blaa);color:#fff}
.burger{display:none;margin-left:auto;background:none;border:0;padding:8px;cursor:pointer;fill:var(--blaa)}
@media(max-width:860px){
  .topp-inner{height:62px}
  .logo img{height:48px}
  .burger{display:block}
  .meny{display:none;position:absolute;top:62px;left:0;right:0;background:#fff;flex-direction:column;padding:8px 16px 16px;border-bottom:1px solid var(--kant);box-shadow:0 10px 20px rgba(0,0,0,.08)}
  .meny.apen{display:flex}
  .meny a{padding:12px 8px;border-bottom:1px solid var(--lys)}
}

/* Forsidehero */
.hero{background:linear-gradient(135deg,var(--marine),var(--blaa));color:#fff;padding:44px 0 36px}
.hero h1{color:#fff;font-size:clamp(1.9rem,5vw,3.1rem);text-transform:uppercase;font-weight:700;margin-bottom:12px}
.hero p.ingress{font-size:1.08rem;max-width:720px;color:rgba(255,255,255,.92);margin-bottom:22px}
.hero p.ingress strong{color:#fff}
.sok{background:#fff;border-radius:8px;padding:14px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;align-items:end;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.sok label{display:block;font-family:'Oswald',sans-serif;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--dempet);margin-bottom:4px}
.sok input,.sok select{width:100%;font:inherit;font-size:1rem;padding:11px 12px;border:1px solid var(--kant);border-radius:5px;background:#fff;color:var(--tekst);min-height:46px}
.sok input:focus,.sok select:focus{outline:2px solid var(--blaa);outline-offset:1px}
.knapp{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-size:1rem;background:var(--gul);color:var(--marine);border:0;border-radius:5px;padding:12px 22px;min-height:46px;text-decoration:none;cursor:pointer;transition:background .15s}
.knapp:hover,.knapp:focus-visible{background:var(--gul-mork)}
.knapp-blaa{background:var(--blaa);color:#fff}
.knapp-blaa:hover,.knapp-blaa:focus-visible{background:var(--marine)}
.knapp-hvit{background:#fff;color:var(--blaa);border:1px solid var(--kant)}
.fakta-rad{margin-top:14px;font-size:.9rem;color:rgba(255,255,255,.85)}
@media(max-width:860px){.sok{grid-template-columns:1fr 1fr}.sok .sok-tekst{grid-column:1/-1}.sok .knapp{grid-column:1/-1}}
@media(max-width:420px){.sok{grid-template-columns:1fr}}

/* Seksjoner */
.seksjon{padding:40px 0}
.seksjon-hvit{background:#fff}
.seksjon h2{font-size:clamp(1.4rem,3.2vw,1.9rem);text-transform:uppercase;margin-bottom:8px}
.seksjon .under{color:var(--dempet);margin-bottom:22px;max-width:760px}
.resultat-linje{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.resultat-linje p{font-weight:600}
.nullstill{background:none;border:0;color:var(--blaa);text-decoration:underline;font:inherit;cursor:pointer;padding:6px 0}

/* Reisekort */
.kort-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:960px){.kort-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.kort-grid{grid-template-columns:1fr}}
.kort{background:#fff;border:1px solid var(--kant);border-radius:var(--rad);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .18s,transform .18s}
.kort:hover{box-shadow:0 10px 26px rgba(9,53,92,.16);transform:translateY(-2px)}
.kort-bilde{position:relative;aspect-ratio:3/2;background:var(--lys)}
.kort-bilde img{width:100%;height:100%;object-fit:cover}
.merke{position:absolute;left:10px;top:10px;background:var(--blaa);color:#fff;font-size:.75rem;font-weight:700;padding:4px 9px;border-radius:4px}
.kort-innhold{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
.kort h3{font-size:1.2rem;margin-bottom:4px}
.kort h3 a{text-decoration:none;color:var(--blaa)}
.kort h3 a::after{content:'';position:absolute;inset:0}
.kort{position:relative}
.kort-meta{font-size:.86rem;color:var(--dempet);margin-bottom:8px}
.kort p.kort-tekst{font-size:.93rem;margin-bottom:12px}
.kort-bunn{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;flex-wrap:wrap}
.pris{font-family:'Oswald',sans-serif;font-size:1.35rem;font-weight:700;color:var(--marine);line-height:1.1}
.pris small{display:block;font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:600;color:var(--dempet);text-transform:none}
.kort .knapp{position:relative;z-index:2;padding:10px 14px;font-size:.88rem;min-height:42px}
.datoer{font-size:.82rem;color:var(--tekst);margin-bottom:10px}
.ingen-treff{background:#fff;border:1px dashed var(--kant);border-radius:var(--rad);padding:24px;text-align:center}

/* Reisetyper */
.typer{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.type-knapp{display:block;background:#fff;border:1px solid var(--kant);border-radius:var(--rad);padding:14px 16px;text-decoration:none;color:var(--blaa);font-family:'Oswald',sans-serif;font-weight:600;font-size:1.05rem;text-align:left;cursor:pointer;font-size:1rem;width:100%}
.type-knapp span{display:block;font-family:'Montserrat',sans-serif;font-weight:400;font-size:.82rem;color:var(--dempet)}
.type-knapp:hover,.type-knapp:focus-visible{border-color:var(--blaa);box-shadow:0 4px 14px rgba(9,53,92,.12)}

/* Tekstinnhold */
.tekst{max-width:760px}
.tekst p{margin-bottom:1rem}
.tekst h2{margin:1.8rem 0 .7rem;font-size:1.35rem;text-transform:uppercase}
.tekst ul{margin:0 0 1rem 1.3rem}
.tekst li{margin-bottom:.35rem}
.side{padding:36px 0 56px}
.side h1{font-size:clamp(1.7rem,4vw,2.4rem);text-transform:uppercase;margin-bottom:16px}

/* FAQ */
.faq details{background:#fff;border:1px solid var(--kant);border-radius:var(--rad);margin-bottom:10px}
.faq summary{cursor:pointer;padding:14px 16px;font-weight:700;color:var(--blaa);list-style-position:inside}
.faq details p{padding:0 16px 14px}

/* Reiseside */
.brod{font-size:.85rem;color:var(--dempet);padding:14px 0 0}
.brod a{color:var(--dempet)}
.reise-topp{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;padding:16px 0 8px;align-items:start}
@media(max-width:900px){.reise-topp{grid-template-columns:1fr;gap:16px}}
.reise-bilde{border-radius:8px;overflow:hidden;aspect-ratio:3/2;background:var(--lys)}
.reise-bilde img{width:100%;height:100%;object-fit:cover}
.reise-topp h1{font-size:clamp(1.7rem,4vw,2.5rem);margin-bottom:10px}
.ingress{font-size:1.08rem;margin-bottom:16px}
.faktaboks{background:#fff;border:1px solid var(--kant);border-top:4px solid var(--gul);border-radius:var(--rad);padding:16px 18px;margin-bottom:16px}
.faktaboks dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.95rem}
.faktaboks dt{font-weight:700;color:var(--blaa)}
.bestill-boks{display:flex;flex-direction:column;gap:8px}
.bestill-boks .pris{font-size:1.8rem}
.liten{font-size:.84rem;color:var(--dempet)}
.avganger{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--kant);border-radius:var(--rad);overflow:hidden;font-size:.95rem}
.avganger th,.avganger td{padding:11px 12px;text-align:left;border-bottom:1px solid var(--lys);vertical-align:middle}
.avganger th{background:var(--blaa);color:#fff;font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.04em;font-size:.82rem}
.avganger td.tall{white-space:nowrap;font-weight:700}
.avganger .utsolgt{color:var(--rod);font-weight:700}
.avganger .faa{color:#9a5b00;font-weight:700}
.avganger .ledig{color:var(--gronn);font-weight:700}
.avganger .knapp{padding:8px 12px;min-height:40px;font-size:.85rem}
@media(max-width:640px){
  .avganger thead{display:none}
  .avganger,.avganger tbody,.avganger tr,.avganger td{display:block;width:100%}
  .avganger tr{border-bottom:1px solid var(--kant);padding:10px 12px}
  .avganger td{border:0;padding:3px 0}
  .avganger td[data-navn]::before{content:attr(data-navn) ': ';font-weight:600;color:var(--dempet)}
  .avganger .knapp{margin-top:6px;width:100%}
}
.to-kol{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media(max-width:760px){.to-kol{grid-template-columns:1fr}}
.liste-boks{background:#fff;border:1px solid var(--kant);border-radius:var(--rad);padding:16px 18px}
.liste-boks h2{font-size:1.15rem;text-transform:uppercase;margin-bottom:8px}
.liste-boks ul{margin-left:1.2rem}
.liste-boks li{margin-bottom:.3rem}
.dagsprogram{list-style:none;margin:0!important}
.dagsprogram li{padding:6px 0;border-bottom:1px solid var(--lys)}
.dagsprogram b{color:var(--blaa);display:inline-block;min-width:58px}
.info-merke{background:#fff8dc;border:1px solid #efd77a;border-radius:var(--rad);padding:12px 14px;font-size:.92rem;margin:16px 0}
.cta-bunn{background:linear-gradient(135deg,var(--marine),var(--blaa));color:#fff;border-radius:8px;padding:26px;text-align:center;margin-top:32px}
.cta-bunn h2{color:#fff;text-transform:uppercase;margin-bottom:6px}
.cta-bunn p{margin-bottom:14px;color:rgba(255,255,255,.9)}

/* Skjema */
.skjema label{display:block;font-weight:600;margin:12px 0 4px}
.skjema input,.skjema textarea{width:100%;font:inherit;padding:11px 12px;border:1px solid var(--kant);border-radius:5px;background:#fff}
.skjema textarea{min-height:150px}
.skjema .knapp{margin-top:16px}
.melding{padding:12px 14px;border-radius:var(--rad);margin-bottom:14px}
.melding.ok{background:#e6f4ea;border:1px solid #9bd0ac}
.melding.feil{background:#fdecec;border:1px solid #f0a8a8}
.honning{position:absolute;left:-5000px}

/* Bunn */
.bunn{background:var(--marine);color:rgba(255,255,255,.86);padding:40px 0 18px;font-size:.9rem;margin-top:0}
.bunn a{color:rgba(255,255,255,.9)}
.bunn-grid{display:grid;grid-template-columns:1.5fr 1.2fr 1fr;gap:28px}
.bunn h2{color:#fff;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.bunn ul{list-style:none}
.bunn li{margin-bottom:6px}
.bunn-logo{height:64px;width:auto;margin-bottom:10px;filter:brightness(0) invert(1)}
.bunn-nederst{border-top:1px solid rgba(255,255,255,.15);margin-top:26px;padding-top:14px;font-size:.82rem;color:rgba(255,255,255,.7)}
@media(max-width:760px){.bunn-grid{grid-template-columns:1fr;gap:18px}}
.skjult{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}
