:root{
  --bg:#fbf8f3;
  --bg2:#f3eadf;
  --card:#fffaf4;
  --card2:#f6ecdf;
  --text:#30251d;
  --muted:#746457;
  --accent:#8a674d;
  --accent-dark:#6f523d;
  --line:rgba(92,68,48,.14);
  --shadow:0 14px 34px rgba(61,43,28,.10);
}

*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(900px 360px at 15% 0%, rgba(255,255,255,.88), transparent 62%),
    linear-gradient(180deg,var(--bg),#f4ecdf 100%);
  font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.65;
}
a{color:var(--accent-dark)}
a:hover{color:var(--accent)}

.page, main.page, main{
  width:min(1120px, calc(100% - 32px));
  margin:0 auto;
}
.section{
  margin:28px auto;
}

/* Forside */
.home-hero{
  max-width:1120px;
  margin:32px auto 24px;
  padding:34px;
  border-radius:30px;
  background:linear-gradient(135deg,rgba(255,250,244,.96),rgba(243,234,222,.92));
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);
  gap:38px;
  align-items:center;
}
.hero-text h1,
h1.hero-title,
.hero-title{
  margin:0 0 14px;
  font-size:clamp(2rem,4.2vw,3.65rem);
  line-height:1.06;
  letter-spacing:-.045em;
  color:#241b15;
}
.lead,.hero-sub{
  max-width:650px;
  margin:0 0 22px;
  color:var(--muted);
  font-size:clamp(1rem,1.45vw,1.12rem);
}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0 26px}
.btn,.btn-primary,.btn-secondary,.btn-cta,.btn-vipps,.btn-ghost,button.btn-primary,button.btn-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 20px;
  border-radius:999px;
  font-weight:700;
  text-decoration:none;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease;
}
.btn-primary,.btn-cta,.btn-vipps{
  background:linear-gradient(180deg,var(--accent),var(--accent-dark)) !important;
  color:#fff !important;
  box-shadow:0 10px 22px rgba(94,65,43,.18) !important;
}
.btn-primary:hover,.btn-cta:hover,.btn-vipps:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 28px rgba(94,65,43,.24) !important;
}
.btn-secondary,.btn-ghost,.btn-plain{
  background:#f4eadf !important;
  color:var(--accent-dark) !important;
  border-color:var(--line) !important;
}

.quick-cards{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:8px;
}
.quick-card{
  display:block;
  position:relative;
  min-height:98px;
  padding:22px 24px;
  overflow:hidden;
  border-radius:22px;
  background:linear-gradient(135deg,#fffaf4,#f2e6d8);
  border:1px solid var(--line);
  box-shadow:0 10px 24px rgba(61,43,28,.08);
  text-decoration:none;
  color:var(--text);
  transition:transform .18s ease,box-shadow .18s ease;
}
.quick-card:after{
  content:"";
  position:absolute;
  right:-24px;
  bottom:-38px;
  width:118px;
  height:118px;
  border-radius:50%;
  background:rgba(138,103,77,.08);
}
.quick-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px rgba(61,43,28,.13)}
.qc-title{font-weight:800;font-size:1.1rem;margin-bottom:3px;color:#241b15}
.qc-text{color:var(--muted);font-size:.98rem}
.hero-img{margin:0 auto;max-width:460px;border-radius:28px;overflow:hidden;box-shadow:0 18px 42px rgba(61,43,28,.17)}
.hero-img img,img.hero-img,.event-img,.event-hero{
  display:block;
  width:100%;
  height:auto;
  border-radius:24px !important;
  box-shadow:0 14px 34px rgba(61,43,28,.14) !important;
}

/* Undersider */
.subpage-header{
  width:min(1120px, calc(100% - 32px));
  margin:24px auto 0;
}
.back-home{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  border-radius:999px;
  background:#fffaf4;
  color:var(--accent-dark);
  text-decoration:none;
  font-weight:800;
  border:1px solid var(--line);
  box-shadow:0 8px 20px rgba(61,43,28,.07);
}
.back-home:hover{transform:translateY(-1px)}

.simple-card,
.event-card,
.contact-card,
.person-card,
section.section:not(.home-hero){
  background:linear-gradient(135deg,#fffaf4,#f5eadc) !important;
  border:1px solid var(--line) !important;
  border-radius:26px !important;
  box-shadow:var(--shadow) !important;
  padding:clamp(22px,3vw,34px) !important;
}
section.section:not(.home-hero){max-width:980px}
section.section h2,
.section-title,
.event-card h2,
.event-card h3,
.contact-card h3{
  color:#241b15 !important;
  margin-top:0;
  line-height:1.18;
  letter-spacing:-.02em;
}
section.section h2,
.section-title{font-size:clamp(1.7rem,3vw,2.35rem);text-align:center;background:transparent !important;display:block !important;padding:0 !important}
section.section p, section.section li, .contact-card p{color:var(--muted)}
ul.clean{list-style:none;padding-left:0}
ul.clean li{margin:7px 0}

.hero-banner{
  width:min(1120px, calc(100% - 32px));
  margin:28px auto 16px;
  padding:36px 26px !important;
  text-align:center;
  border-radius:28px;
  background:linear-gradient(135deg,#fffaf4,#f1e4d5) !important;
  border:1px solid var(--line) !important;
  box-shadow:var(--shadow) !important;
}
.hero-banner:before{color:rgba(138,103,77,.06) !important}
.info-strip,.month-bar{
  max-width:980px;
  margin:18px auto 24px !important;
  padding:12px 16px !important;
  border-radius:18px !important;
  background:#fffaf4 !important;
  border:1px solid var(--line) !important;
  color:var(--accent-dark) !important;
  box-shadow:0 10px 24px rgba(61,43,28,.07) !important;
}
.month-bar a{
  background:#f1e5d8 !important;
  color:var(--accent-dark) !important;
  border:1px solid var(--line) !important;
}
.month-bar a:hover,.month-bar a.is-active{background:#e7d6c4 !important}
.event-with-media{display:flex;gap:20px;align-items:flex-start}
.event-thumb{width:140px;height:140px;object-fit:cover;border-radius:18px;box-shadow:0 10px 24px rgba(61,43,28,.12);flex:0 0 140px}
.event-shell{width:min(980px, calc(100% - 32px));margin:0 auto 34px;padding:0 !important;max-width:none !important}

.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:20px;align-items:start}
.contact-form input,.contact-form textarea,.shk-form input,input,textarea{
  width:100%;
  border:1px solid var(--line) !important;
  border-radius:16px !important;
  padding:12px 14px !important;
  background:#fffaf4 !important;
  color:var(--text) !important;
}
label{font-weight:800;color:var(--accent-dark)}
.chip{display:inline-flex;padding:4px 9px;border-radius:999px;background:#eadccc;color:var(--accent-dark);font-weight:800;margin-right:8px}
.center{text-align:center;margin-left:auto;margin-right:auto}
.muted,.note,.tiny,.form-help{color:var(--muted) !important}

.shk-dialog,.modal-card{
  background:#fffaf4 !important;
  border-radius:24px !important;
  border:1px solid var(--line) !important;
}
.shk-form label{color:var(--accent-dark) !important}
.copy-btn{background:var(--accent) !important;color:#fff !important;border-radius:999px !important;border:0 !important}
code,pre{background:#f6ecdf !important;border-color:var(--line) !important;color:var(--text) !important}

footer,.site-footer{
  text-align:center;
  padding:28px 20px 40px;
  color:#7d6d5f;
  font-size:.95rem;
}

@media(max-width:820px){
  .home-hero{padding:22px;margin-top:18px;border-radius:24px}
  .hero-grid{grid-template-columns:1fr;gap:24px}
  .hero-media{order:-1}
  .hero-img{max-width:360px}
  .quick-cards{grid-template-columns:1fr}
  .contact-layout{grid-template-columns:1fr}
  .event-with-media{flex-direction:column}
  .event-thumb{width:100%;height:210px;flex:auto}
}

/* V2: Book time alene og sentrert */
.hero-cta{
  justify-content:center !important;
  text-align:center !important;
}
.hero-cta .btn{
  margin-left:auto;
  margin-right:auto;
}

/* V3: mobil-scroll fix */
html, body {
  min-height: 100%;
  height: auto !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
}
body.nav-open {
  overflow-y: auto !important;
  position: static !important;
}
.nav-overlay[hidden] { display: none !important; }
.nav-overlay { pointer-events: none; }
.subpage-main { padding-bottom: 40px; }
.event-list { display: grid; gap: 22px; margin-top: 24px; }
.event-card details { margin-top: 14px; }
.event-card summary {
  list-style: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  border-radius: 999px;
  background: linear-gradient(180deg,var(--accent),var(--accent-dark));
  color: #fff;
  font-weight: 800;
  box-shadow: 0 10px 22px rgba(94,65,43,.18);
}
.event-card summary::-webkit-details-marker { display:none; }
.event-card details[open] summary { margin-bottom: 16px; }
.event-meta { color: var(--accent-dark) !important; font-weight: 800; margin: 8px 0 14px; }
.event-full { border-top: 1px solid var(--line); padding-top: 16px; }
.event-img-wide {
  display:block;
  width:100%;
  max-height:360px;
  object-fit:cover;
  border-radius:22px;
  margin:0 0 18px;
  box-shadow:0 14px 34px rgba(61,43,28,.14);
}
@media(max-width:820px){
  .page, main.page, main, .subpage-header { width: min(100% - 22px, 1120px); }
  .section { margin: 16px auto; }
  .simple-card, .event-card, .contact-card, .person-card, section.section:not(.home-hero) { padding: 18px !important; border-radius: 22px !important; }
  .event-img-wide { max-height: 240px; border-radius: 18px; }
}


/* V4: HARD MOBIL-SCROLL FIX - legg sist i CSS */
html,
body {
  width: 100% !important;
  min-height: 100% !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  overflow-x: hidden !important;
  position: static !important;
  touch-action: pan-y !important;
  -webkit-overflow-scrolling: touch !important;
}

body,
main,
.page,
main.page,
.section,
.home-hero,
.hero-grid,
.hero-text,
.hero-media,
.quick-cards,
.quick-card,
.simple-card,
.event-card,
.contact-card,
.subpage-main,
.event-list {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  position: relative !important;
}

.nav-overlay,
.nav-panel,
.site-nav {
  display: none !important;
  position: static !important;
  height: auto !important;
  overflow: visible !important;
}

body.nav-open {
  overflow: visible !important;
  position: static !important;
  height: auto !important;
}

@media (max-width: 820px) {
  body { padding-bottom: 32px !important; }
  .home-hero { margin-bottom: 18px !important; }
  footer { padding-bottom: 28px !important; }
}

/* V5: eventkort – jevnere, roligere og mer profesjonelt */
.simple-event-list {
  display: grid !important;
  gap: 20px !important;
}

.event-card {
  text-align: center !important;
  padding: clamp(20px, 2.6vw, 30px) !important;
}

.event-card h2 {
  font-size: clamp(1.45rem, 2.2vw, 1.95rem) !important;
  text-align: center !important;
  margin: 16px 0 8px !important;
}

.event-meta {
  text-align: center !important;
  margin: 0 0 16px !important;
  font-size: 1rem !important;
}

.event-card details {
  text-align: center !important;
}

.event-card summary {
  margin: 0 auto !important;
}

.event-full {
  text-align: left !important;
  max-width: 760px !important;
  margin: 18px auto 0 !important;
  line-height: 1.72 !important;
}

.event-full h3 {
  text-align: left !important;
  margin-top: 22px !important;
}

.event-img-wide {
  width: 100% !important;
  height: 300px !important;
  max-height: none !important;
  object-fit: cover !important;
  border-radius: 22px !important;
  margin: 0 auto 18px !important;
}

.event-img-wide.focus-top {
  object-position: center 32% !important;
}

.event-img-wide.focus-medium {
  object-position: center 34% !important;
}

.event-img-wide.focus-center {
  object-position: center center !important;
}

@media (max-width: 820px) {
  .event-card h2 {
    font-size: clamp(1.35rem, 6vw, 1.7rem) !important;
  }

  .event-img-wide {
    height: 220px !important;
    border-radius: 18px !important;
  }

  .event-full {
    font-size: 1rem !important;
  }
}
