/* Arctic Horizons Tab Brochure Styles */
:root {
  --radius: 18px;
  --ink-dark: #0d1220;
  --ink: #18263a;
  --ink-soft: #435268;
  --focus-ring: 2px solid #ffd36a;
  --gradient-aurora: radial-gradient(circle at 30% 30%, rgba(180,255,210,0.9), rgba(120,220,190,0.55) 35%, rgba(75,40,130,0.55) 62%, rgba(30,20,60,0.85));
  --gradient-indigo: linear-gradient(135deg, #0a3d62 0%, #0d538a 50%, #0a2c46 100%);
  --gradient-snow: linear-gradient(180deg, rgba(255,255,255,0.85), rgba(230,242,255,0.92));
  --aurora-accent: #c0ffd9;
  --indreberg-accent: #bfe1ff;
  --panel-max: 960px;
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
  margin: 0; font-family: 'Source Sans 3', system-ui, sans-serif; color: var(--ink);
  background: #06121b; /* solid fallback */
  -webkit-font-smoothing: antialiased; overflow-x: hidden; display: flex; min-height: 100vh; position:relative; }
html { background:#06121b; }
/* Fixed, non-scrolling gradient layer to prevent mobile viewport scroll jump changing perceived colors */
body::before {
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  /* Static (non-changing) background: base color plus a very soft radial glow that does NOT vary vertically */
  background:
    radial-gradient(circle at 50% 25%, rgba(120,255,210,0.10), rgba(120,255,210,0) 55%),
    #06141c;
  transition: background .6s ease;
}
body.theme-indreberg::before {
  background:
    radial-gradient(circle at 50% 25%, rgba(140,205,255,0.10), rgba(140,205,255,0) 55%),
    #051521;
}
@media (prefers-reduced-motion: reduce) { body::before { transition:none; } }

/* -------------------------------------------------- */
/* Indreberg Light Coastal Theme (full page variant)  */
/* Applies when user selects Indreberg tab (body has  */
/* class .theme-indreberg) and specifically styles the */
/* Indreberg panel so the whole experience shifts to  */
/* a light airy coastal feel without touching aurora.  */
/* -------------------------------------------------- */
body.theme-indreberg {
  color:#0e324a;
}
body.theme-indreberg::before {
  background:
    radial-gradient(circle at 40% 25%, rgba(180,225,255,0.65), rgba(255,255,255,0) 55%),
    linear-gradient(180deg,#f7fbff,#e6f4ff 60%, #d9efff);
}
/* Ensure base canvas also light (the original dark body fill could show at edges) */
html.theme-indreberg, body.theme-indreberg { background:#eef7fd; }

/* Light variant of tab rail & its heading when in Indreberg theme */
body.theme-indreberg .tab-rail {
  background: rgba(250,253,255,0.72);
  border-left: 1px solid rgba(40,110,150,0.12);
  backdrop-filter: blur(18px) saturate(1.35);
  -webkit-backdrop-filter: blur(18px) saturate(1.35);
}
body.theme-indreberg .tab-rail:before { background: linear-gradient(180deg,rgba(60,150,200,0.08),transparent); }
body.theme-indreberg .tab-rail h2 { color:#0d4765; }

/* Neutralize inherited dark badge contrast on light rail when not selected */
body.theme-indreberg [role=tab] { color:#0f3852; }
body.theme-indreberg .tab-aurora { color:#0e1530; }


/* Light panel surface */
.panel.panel-indreberg {
  background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(232,245,255,0.90) 55%, rgba(215,238,255,0.95));
  backdrop-filter: blur(10px) saturate(1.15);
  -webkit-backdrop-filter: blur(10px) saturate(1.15);
  box-shadow: 0 10px 40px -18px rgba(0,55,110,0.25);
  border-radius: 0 0 36px 0; /* gentle coastal panel contour */
}

/* Heading already has a light gradient; increase subtle contrast */
.panel.panel-indreberg h1 span {
  background:none;
  -webkit-background-clip:initial; background-clip:initial;
  color:#0d324a; /* clean dark coastal ink */
  -webkit-text-stroke:0;
  text-shadow:none;
  filter:none;
}

/* Badge & fact list on light surface */
.panel-indreberg .badge {
  background: linear-gradient(135deg,#ffffffcc,#e3f4ffdd);
  color:#0d3e5e;
  border:1px solid #b5daf1;
  text-shadow: 0 1px 0 rgba(255,255,255,0.6);
}

.panel-indreberg .highlights li {
  background: linear-gradient(145deg, rgba(255,255,255,0.85), rgba(230,245,255,0.75));
  border:1px solid #c2e2f5;
  box-shadow: 0 2px 6px -2px rgba(40,90,130,0.15);
  color:#0f3c55;
}
.panel-indreberg .highlights li svg {
  filter:none;
  stroke:#0d4b75 !important;
}

/* Image frame: lighten chrome */
.panel-indreberg .tour-image {
  background: linear-gradient(145deg,#ffffff,#e3f4ff);
  border:1px solid #c2dff1;
  box-shadow:0 8px 24px -12px rgba(30,80,120,0.25);
}
.panel-indreberg .tour-image img { filter:saturate(1.08) brightness(1.02) contrast(1.02); }

/* Buttons tuned for coastal palette */
.panel-indreberg .button.gradient {
  background: linear-gradient(90deg,#e0f4ff,#b9e6ff 45%,#9fd8ff);
  color:#0d3a55;
}
.panel-indreberg .button.gradient:hover { background: linear-gradient(90deg,#f4fbff,#c9edff 45%,#b2e1ff); }
.panel-indreberg .button.outline {
  border:2px solid #8bc8ec;
  color:#0d3a55;
}
.panel-indreberg .button.outline:hover { background: linear-gradient(90deg,#ffffff,#e3f5ff); }

/* Scrollbar accent inside Indreberg panel */
.panel-indreberg::-webkit-scrollbar-track { background: rgba(180,220,245,0.45); }
.panel-indreberg::-webkit-scrollbar-thumb { background: linear-gradient(180deg,#b9e6ff,#8bc8ec); }

/* Make selected Indreberg tab ring slightly brighter against light panel */
.tab-indreberg[aria-selected=true] {
  box-shadow:0 0 0 2px rgba(160,210,245,0.95), 0 8px 26px -12px rgba(0,60,110,0.35);
}

/* Mobile layout: ensure Indreberg retains light feel even when both panels visible */
@media (max-width:1366px) {
  .panel.panel-indreberg { border-radius:0; }
}

main { flex: 1 1 auto; display:flex; }

/* Hide swipe hint by default (only shown on small screens via media query) */
.swipe-hint { display:none; }

/* Layout grid: content area with right-side tab rail */
.site-shell { display: grid; grid-template-columns: 1fr auto; width: 100%; }
.tab-rail { position: relative; background: rgba(15,25,40,0.55); backdrop-filter: blur(14px); border-left: 1px solid rgba(255,255,255,0.08); display:flex; flex-direction:column; align-items:stretch; padding: 1rem .4rem 1rem .4rem; gap:.75rem; min-width: 92px; width:92px; }
.tab-rail:before { content:""; position:absolute; inset:0; background: linear-gradient(180deg,rgba(255,255,255,0.1),transparent); pointer-events:none; }

.tab-rail h2 { font-size: .75rem; letter-spacing:.13em; text-transform:uppercase; color:#c5d2e5; font-weight:600; margin:0 0 .5rem .4rem; }
/* Side Book Now button */
/* Simplified high-contrast Book Now button: white with black text */
.book-now-side {
  display:block; margin:.35rem .5rem 0; padding:.7rem .65rem .68rem; 
  text-align:center; font-size:.62rem; letter-spacing:.20em; text-transform:uppercase; font-weight:800; 
  background: linear-gradient(180deg,#ffffff,#f2f4f7); color:#111; border-radius:16px; text-decoration:none; line-height:1.12; 
  box-shadow:0 6px 18px -8px rgba(0,0,0,.55), 0 0 0 1px rgba(0,0,0,.08); 
  position:relative; cursor:pointer; transition: transform .35s cubic-bezier(.16,.8,.26,1), box-shadow .35s, background .35s, color .35s; 
  border:1px solid rgba(0,0,0,0.08);
}
.book-now-side:hover { transform:translateY(-3px); box-shadow:0 10px 26px -10px rgba(0,0,0,.7), 0 0 0 1px rgba(0,0,0,.12); background: linear-gradient(180deg,#ffffff,#e9edf2); }
.book-now-side:active { transform:translateY(-1px); box-shadow:0 6px 18px -8px rgba(0,0,0,.6); }
.book-now-side:focus-visible { outline: var(--focus-ring); outline-offset:4px; }
/* Light theme variant keeps same styling; adjust shadow tint slightly */
body.theme-indreberg .book-now-side { box-shadow:0 6px 18px -8px rgba(0,60,110,.35), 0 0 0 1px rgba(0,60,110,0.12); border-color:rgba(0,60,110,0.15); }
body.theme-indreberg .book-now-side:hover { box-shadow:0 12px 26px -12px rgba(0,70,120,.45), 0 0 0 1px rgba(0,60,110,0.18); }
@media (prefers-reduced-motion: reduce) { .book-now-side { transition: background .25s, color .25s, box-shadow .25s; } }

/* Instagram link (desktop sidebar) */
.instagram-link { display:flex; align-items:center; justify-content:center; width:46px; height:46px; margin:.15rem .4rem 0; border-radius:16px; background: radial-gradient(circle at 30% 30%, #fdf497, #fd5949 45%, #d6249f 68%, #285AEB); box-shadow:0 4px 14px -6px rgba(0,0,0,.55); text-decoration:none; position:relative; }
.instagram-link svg { width:24px; height:24px; }
.instagram-link:focus-visible { outline: var(--focus-ring); outline-offset:3px; }
.instagram-link:hover { filter:brightness(1.08); }
body.theme-indreberg .instagram-link { box-shadow:0 4px 14px -6px rgba(0,60,110,.35); }

/* Mobile persistent Book Now button shares styling with .book-now-side */
.mobile-book-now { position:fixed; left:.75rem; bottom:.75rem; z-index:1000; display:none; text-transform:uppercase; }

/* Tabs */
[role=tablist] { display:flex; flex-direction:column; gap:.75rem; margin:0; padding:0; list-style:none; align-items:stretch; }
[role=tab] { all: unset; cursor: pointer; position:relative; width:100%; height: 170px; border-radius: 18px; font-size:.85rem; letter-spacing:.05em; text-transform:uppercase; font-weight:600; color:#f2f6fa; display:flex; align-items:center; justify-content:center; overflow:hidden; }
[role=tab] .tab-text { display:flex; flex-direction:column; align-items:center; gap:.35rem; transform: rotate(-90deg); }
[role=tab] span.label { font-size:.8rem; font-weight:700; letter-spacing:.11em; opacity:.9; }
[role=tab] small { font-size:.55rem; letter-spacing:.25em; opacity:.75; font-weight:600; }
[role=tab]:focus-visible { outline: var(--focus-ring); outline-offset:2px; }
[role=tab][aria-selected=true] { box-shadow: 0 4px 18px -6px rgba(0,0,0,0.55); }

/* Tab theme backgrounds */
.tab-aurora { background: linear-gradient(135deg,#86f5c5,#8b7bff); color:#0e1530; }
.tab-aurora[aria-selected=true] { box-shadow:0 0 0 2px rgba(145,255,220,0.7), 0 6px 22px -10px rgba(0,0,0,.7); }
.tab-indreberg { 
  /* Updated to a lighter blue & white palette per request */
  background: linear-gradient(155deg,#ffffff,#eef9ff 35%,#d4efff 60%,#b4e4ff 85%);
  color:#0e324a; /* deeper ink for contrast on very light background */
}
.tab-indreberg[aria-selected=true] { 
  /* Subtle luminous ring tuned for lighter scheme */
  box-shadow:0 0 0 2px rgba(185,225,255,0.9), 0 6px 22px -10px rgba(0,0,0,.65);
}

/* Panels */
.panels { position:relative; overflow:hidden; min-height:100vh; }
@media (min-width:901px) {
  /* Desktop: allow panels region to grow; avoid affecting mobile horizontal swipe sizing */
  .panels { flex:1 1 auto; }
}
.panel { position:absolute; inset:0; overflow-y:auto; padding: clamp(1.5rem, 2.5vw, 3.5rem) clamp(1.1rem, 2.5vw, 3rem) clamp(3rem,4vw,4.5rem); display:flex; flex-direction:column; gap:1.4rem; opacity:0; pointer-events:none; transform: translateX(40px) scale(.97); transition: opacity .5s, transform .6s; max-width: var(--panel-max); }
.panel[aria-hidden=false] { opacity:1; pointer-events:auto; transform: translateX(0) scale(1); }
.panel header { margin-bottom:.5rem; }
.panel h1 { font-family:'Playfair Display',serif; font-size: clamp(2.15rem, 1.8rem + 1.2vw, 3rem); margin:0 0 .6rem; line-height:1.05; }
.panel h1 span { background: linear-gradient(90deg,#b1ffd5,#baa9ff 55%,#a7ffe4); -webkit-background-clip:text; background-clip:text; color:transparent; filter: drop-shadow(0 4px 18px rgba(150,255,210,0.35)); }
/* Override: simplify Indreberg heading to solid high-contrast text (previous gradient removed) */
.panel.panel-indreberg h1 span {
  background:none !important;
  -webkit-background-clip:initial !important; background-clip:initial !important;
  color:#000 !important;
  filter:none !important;
  text-shadow:none !important;
  -webkit-text-stroke:0 !important;
}
/* Aurora heading override: user requested white writing on Northern Lights tab */
.panel.panel-aurora h1 span { background:none; color:#ffffff; -webkit-background-clip:initial; background-clip:initial; filter: drop-shadow(0 3px 12px rgba(0,0,0,0.5)); }
/* Make all standard text within Aurora panel white for readability */
.panel-aurora { color:#f5f9ff; }
.panel-aurora .lede { color:#f0f7ff; }
.panel-aurora .highlights li { color:#f7fbff; }
.lede { font-size: clamp(1.05rem, 1.2rem + .4vw, 1.45rem); font-weight:300; line-height:1.5; max-width: 60ch; }
.tour-image { margin:1rem 0 .25rem; border-radius:20px; overflow:hidden; background: rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.18); position:relative; box-shadow:0 8px 26px -14px rgba(0,0,0,0.55); }
.panel-indreberg .tour-image { background:rgba(0,40,70,0.45); }
.tour-image img { width:100%; height:100%; display:block; object-fit:cover; aspect-ratio: 4/3; filter:saturate(1.12) brightness(.95); transition: transform .7s ease, filter .7s ease; }
.tour-image:hover img, .tour-image:focus-within img { transform:scale(1.05); filter:saturate(1.22) brightness(1); }


/* Fact list refinements */
.highlights.fact-list { position:relative; }
.highlights li span strong { font-weight:700; letter-spacing:.03em; }
.badge { display:inline-flex; gap:.35rem; background: rgba(0,0,0,0.45); color:#fff; padding:.45rem .85rem; border-radius:40px; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,0.15); }
.panel-indreberg .badge { background: rgba(255,255,255,0.15); color:#000; }

.highlights { list-style:none; padding:0; margin:1rem 0 0; display:grid; gap:.8rem; }
.highlights li { display:flex; gap:.65rem; align-items:flex-start; font-size:.9rem; background: rgba(255,255,255,0.08); padding:.75rem 1rem; border-radius:12px; backdrop-filter:blur(6px); border:1px solid rgba(255,255,255,0.15); }
.panel-indreberg .highlights li { background: rgba(0,30,55,0.35); border:1px solid rgba(255,255,255,0.18); }
.highlights li svg { flex:0 0 auto; width:18px; height:18px; filter: drop-shadow(0 0 6px rgba(255,255,255,0.4)); }

/* Pricing fact styling */
.highlights li.fact-price { position:relative; }
.highlights li.fact-price .price-amount { font-weight:700; letter-spacing:.02em; margin-left:.25rem; white-space:nowrap; }
.highlights li.fact-price .price-meta { display:block; font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; opacity:.65; margin-top:.2rem; }
.panel-aurora li.fact-price .price-amount { text-shadow:0 0 8px rgba(150,255,210,0.45); }
.panel-indreberg li.fact-price .price-amount { text-shadow:0 0 6px rgba(140,205,255,0.35); }

.cta-row { display:flex; flex-wrap:wrap; gap:.9rem; margin-top:.6rem; }
.button { --btn-bg:#0a1424; --btn-color:#fff; background:var(--btn-bg); color:var(--btn-color); padding:.85rem 1.35rem; font-weight:600; border:0; font-size:.9rem; letter-spacing:.05em; border-radius:14px; cursor:pointer; position:relative; overflow:hidden; transition: background .35s, transform .35s; }
.button.gradient { background: linear-gradient(90deg,#7af1c0,#8f82ff); color:#081326; }
.button.outline { background:transparent; border:2px solid rgba(255,255,255,0.55); }
.button:hover { transform:translateY(-3px); box-shadow:0 6px 22px -10px rgba(0,0,0,0.7); }
.button:active { transform:translateY(0); }
.button:focus-visible { outline: var(--focus-ring); outline-offset:3px; }

/* Panel Book Now button (mobile only) */
.panel-book-now {
  display: none;
}

@media (max-width: 1366px) {
  .panel-book-now {
    display: inline-block;
    width: 100%;
    text-align: center;
    padding: 0.85rem 1.35rem;
    background: linear-gradient(90deg, #7af1c0, #8f82ff);
    color: #081326;
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.05em;
    border-radius: 14px;
    text-decoration: none;
    margin-top: 1rem;
    margin-bottom: 0.5rem;
    box-shadow: 0 4px 14px -6px rgba(0, 0, 0, 0.5);
    transition: transform 0.3s, box-shadow 0.3s;
  }
  
  .panel-book-now:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px -8px rgba(0, 0, 0, 0.55);
  }
  
  .panel-book-now:active {
    transform: translateY(0);
  }
  
  .panel-book-now:focus-visible {
    outline: var(--focus-ring);
    outline-offset: 3px;
  }
  
  .panel-indreberg .panel-book-now {
    background: linear-gradient(90deg, #5bc5f5, #3a9fd5);
    color: #fff;
  }
}

/* Scrollbar style within panel */
.panel::-webkit-scrollbar { width: 10px; }
.panel::-webkit-scrollbar-track { background: rgba(255,255,255,0.05); }
.panel::-webkit-scrollbar-thumb { background: linear-gradient(180deg,#7af1c0,#6b5bff); border-radius:20px; }

/* Responsive: collapse rail to top bar */
@media (max-width: 1366px) {
  /* Reverted: mobile uses swipe panels, hides side tab rail */
  .site-shell { grid-template-columns: 100%; grid-template-rows: auto 1fr; }
  .tab-rail { display:none; }
  .swipe-hint { display:block; text-align:center; font-size:.75rem; letter-spacing:.15em; text-transform:uppercase; color:#c5d2e5; padding:.65rem .75rem .2rem; opacity:.85; }
  .swipe-hint__text { display:inline-block; animation: hintPulse 4s infinite; margin-right:.4rem; }
  /* Book button inside swipe hint (kept) */
  .swipe-hint .swipe-book { display:inline-block; margin-top:.35rem; font-size:.6rem; letter-spacing:.15em; padding:.45rem .7rem; border:1px solid rgba(255,255,255,0.45); background:rgba(255,255,255,0.07); }
  .swipe-hint .swipe-book:hover { background:rgba(255,255,255,0.15); }
  .swipe-hint .swipe-instagram { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; margin:.35rem .2rem 0 .45rem; border-radius:12px; background: radial-gradient(circle at 30% 30%, #fdf497, #fd5949 45%, #d6249f 68%, #285AEB); text-decoration:none; }
  .swipe-hint .swipe-instagram svg { width:22px; height:22px; }
  .swipe-hint .swipe-instagram:focus-visible { outline: var(--focus-ring); outline-offset:2px; }
  .swipe-hint .swipe-instagram:hover { filter:brightness(1.1); }
  main { flex-direction: row; }
  @keyframes hintPulse { 0%,100% { opacity:.25; transform:translateX(0);} 50% { opacity:.9; transform:translateX(6px);} }
  .panels { position:relative; display:grid; grid-auto-flow:column; grid-auto-columns: 100%; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; min-height:100vh; }
  .panels::-webkit-scrollbar { height:10px; }
  .panels::-webkit-scrollbar-thumb { background: linear-gradient(90deg,#7af1c0,#6b5bff); border-radius:20px; }
  /* Theme-aware horizontal scrollbar (mobile) overrides */
  .panels.panel-active-indreberg::-webkit-scrollbar-thumb { background: linear-gradient(90deg,#b9e6ff,#8bc8ec); }
  .panels.panel-active-indreberg::-webkit-scrollbar-track { background: rgba(180,220,245,0.35); }
  .panels.panel-active-aurora::-webkit-scrollbar-track { background: rgba(120,255,210,0.18); }
  /* Firefox fallback */
  .panels.panel-active-aurora { scrollbar-color: #55ddb4 rgba(120,255,210,0.12); }
  .panels.panel-active-indreberg { scrollbar-color: #6abfe9 rgba(180,220,245,0.25); }
  .panel { position:relative; inset:auto; opacity:1 !important; pointer-events:auto; transform:none !important; max-width: unset; scroll-snap-align:start; height:100%; display:flex; }
  /* Single image scales naturally; no horizontal ribbon needed */
  .mobile-book-now { display:block; max-width:92px; width:auto; box-sizing:border-box; padding:.65rem .5rem; letter-spacing:.12em; }
}

/* White style override for mobile & swipe hint buttons */
.swipe-hint .swipe-book, .mobile-book-now {
  font-size:.6rem; letter-spacing:.17em; padding:.58rem .65rem .6rem; 
  border:1px solid rgba(0,0,0,0.18); background:linear-gradient(180deg,#ffffff,#f1f3f6); color:#111; 
  font-weight:700; border-radius:14px; text-decoration:none; line-height:1.1; text-align:center; white-space:nowrap; 
  box-shadow:0 4px 14px -6px rgba(0,0,0,.5), 0 0 0 1px rgba(0,0,0,.06); transition:background .3s, box-shadow .3s, transform .3s; 
}
.swipe-hint .swipe-book:hover, .mobile-book-now:hover { background:linear-gradient(180deg,#ffffff,#e7ebef); box-shadow:0 6px 18px -8px rgba(0,0,0,.55), 0 0 0 1px rgba(0,0,0,.1); transform:translateY(-2px); }
.mobile-book-now:active, .swipe-hint .swipe-book:active { transform:translateY(-1px); }
.mobile-book-now:focus-visible, .swipe-hint .swipe-book:focus-visible { outline: var(--focus-ring); outline-offset:3px; }

/* Mobile-specific tightening: make fixed Book Now button thinner than sidebar */
@media (max-width:1366px) {
  .mobile-book-now {
    padding:.5rem .45rem .52rem !important; font-size:.55rem !important; letter-spacing:.16em !important; 
    white-space:normal !important; line-height:1.15; max-width:78px; width:auto; position:fixed; 
    animation:none !important; box-shadow:0 4px 14px -6px rgba(0,0,0,.5), 0 0 0 1px rgba(0,0,0,.08);
  }
  .mobile-book-now::after { display:none !important; }
}

/* Respect reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
  .mobile-book-now { animation:none !important; }
  .mobile-book-now::after { animation:none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .panel { transition:none; }
  .button:hover { transform:none; }
}

/* --- Booking form (inline, bottom on mobile, right sidebar on desktop) --- */
.booking-form-container {
  background: rgba(11, 21, 37, 0.95);
  color: #f5f9ff;
  border-radius: 18px;
  padding: 1.5rem;
  margin-top: 2rem;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.15);
}

.panel-indreberg .booking-form-container {
  background: rgba(248, 251, 255, 0.95);
  color: #0d324a;
  border: 1px solid rgba(0, 50, 80, 0.2);
}

.booking-title {
  margin: 0 0 1rem;
  font-family: 'Playfair Display', serif;
  font-size: 1.5rem;
}

.booking-field {
  margin-bottom: 0.85rem;
}

.booking-field label {
  display: block;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.8;
  margin-bottom: 0.2rem;
}

.booking-field input,
.booking-field select {
  width: 100%;
  padding: 0.55rem 0.6rem;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: rgba(2, 10, 24, 0.9);
  color: #fff;
  font-size: 0.9rem;
  font-family: inherit;
}

.panel-indreberg .booking-field input,
.panel-indreberg .booking-field select {
  border: 1px solid rgba(0, 50, 80, 0.3);
  background: rgba(255, 255, 255, 0.7);
  color: #0d324a;
}

.booking-field input:focus,
.booking-field select:focus {
  outline: var(--focus-ring);
  outline-offset: 2px;
}

.booking-summary {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.panel-indreberg .booking-summary {
  border-top: 1px solid rgba(0, 50, 80, 0.2);
}

.booking-price {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5rem;
  font-size: 1.1rem;
}

.booking-total {
  font-size: 1.4rem;
  font-weight: 700;
}

.booking-note {
  font-size: 0.75rem;
  opacity: 0.7;
  margin: 0.5rem 0 0;
}

.booking-submit {
  width: 100%;
  padding: 0.85rem;
  background: linear-gradient(90deg, #7af1c0, #8f82ff);
  color: #081326;
  border: none;
  border-radius: 14px;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: transform 0.3s, box-shadow 0.3s;
  margin-top: 1rem;
}

.panel-indreberg .booking-submit {
  background: linear-gradient(90deg, #5bc5f5, #3a9fd5);
  color: #fff;
}

.booking-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 22px -10px rgba(0, 0, 0, 0.7);
}

.booking-submit:active {
  transform: translateY(0);
}

.booking-submit:focus-visible {
  outline: var(--focus-ring);
  outline-offset: 3px;
}

.booking-error {
  color: #ff6b6b;
  font-size: 0.85rem;
  margin-top: 0.5rem;
  min-height: 1.2rem;
}

.panel-indreberg .booking-error {
  color: #d63031;
}

/* Desktop: booking form in right sidebar next to tab rail */
@media (min-width: 1367px) {
  .panel {
    display: grid !important;
    grid-template-columns: minmax(auto, 900px) 360px;
    gap: 2rem;
    align-items: start;
    max-width: none !important;
    padding-right: 1.5rem !important;
    justify-content: start;
  }
  
  .panel > *:not(.booking-form-container) {
    grid-column: 1;
    max-width: 900px;
  }
  
  .booking-form-container {
    grid-column: 2;
    grid-row: 1 / -1;
    position: sticky;
    top: 2rem;
    margin-top: 0;
    max-height: calc(100vh - 4rem);
    overflow-y: auto;
  }
}

/* Mobile: booking form at bottom */
@media (max-width: 1366px) {
  .booking-form-container {
    scroll-margin-top: 1rem;
  }
}

/* Custom Calendar Styles */
.booking-calendar {
  background: rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  padding: 0.75rem;
  border: 1px solid rgba(177, 255, 213, 0.15);
  width: 100%;
  box-sizing: border-box;
  min-height: 280px;
}

.calendar-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 250px;
  color: #b1ffd5;
  font-size: 0.9rem;
  opacity: 0.7;
}

.panel-indreberg .calendar-loading {
  color: #0d324a;
}

.calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.calendar-title {
  font-weight: 600;
  font-size: 0.95rem;
  color: #b1ffd5;
}
.calendar-nav {
  background: none;
  border: none;
  color: #b1ffd5;
  font-size: 1.2rem;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  transition: opacity 0.2s;
}
.calendar-nav:hover {
  opacity: 0.7;
}
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 3px;
  width: 100%;
}
.calendar-day-name {
  text-align: center;
  font-size: 0.65rem;
  color: rgba(177, 255, 213, 0.6);
  padding: 0.25rem 0.1rem;
  text-transform: uppercase;
  font-weight: 600;
}
.calendar-date {
  aspect-ratio: 1;
  background: rgba(177, 255, 213, 0.08);
  border: 1px solid rgba(177, 255, 213, 0.2);
  border-radius: 6px;
  color: #b1ffd5;
  font-size: 0.8rem;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
}
.calendar-date:hover:not(:disabled) {
  background: rgba(177, 255, 213, 0.15);
  border-color: rgba(177, 255, 213, 0.4);
  transform: scale(1.05);
}
.calendar-date--past,
.calendar-date--booked {
  opacity: 0.3;
  cursor: not-allowed;
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(177, 255, 213, 0.05);
}
.calendar-date--booked {
  text-decoration: line-through;
}
.calendar-date--selected {
  background: linear-gradient(135deg, #7af1c0, #8f82ff);
  color: #081326;
  border-color: transparent;
  font-weight: 700;
}
.calendar-date--other {
  visibility: hidden;
}

/* Indreberg theme calendar */
.panel-indreberg .booking-calendar {
  background: rgba(0, 0, 0, 0.03);
  border-color: rgba(0, 50, 80, 0.25);
}
.panel-indreberg .calendar-title {
  color: #0d324a;
  font-weight: 600;
}
.panel-indreberg .calendar-nav {
  color: #0d324a;
}
.panel-indreberg .calendar-day-name {
  color: #0d324a;
  opacity: 0.7;
}
.panel-indreberg .calendar-date {
  background: rgba(255, 255, 255, 0.5);
  border-color: rgba(0, 50, 80, 0.2);
  color: #0d324a;
  font-weight: 600;
}
.panel-indreberg .calendar-date:hover:not(:disabled) {
  background: rgba(91, 197, 245, 0.15);
  border-color: rgba(0, 50, 80, 0.4);
}
.panel-indreberg .calendar-date--past,
.panel-indreberg .calendar-date--booked {
  background: rgba(0, 0, 0, 0.05);
  border-color: rgba(0, 50, 80, 0.1);
  color: rgba(13, 50, 74, 0.4);
  opacity: 0.6;
}
.panel-indreberg .calendar-date--selected {
  background: linear-gradient(135deg, #5bc5f5, #3a9fd5);
  color: #fff;
  border-color: rgba(0, 50, 80, 0.3);
  font-weight: 700;
}

/* Prevent background scroll when modal open */
body.booking-open {
  overflow: hidden;
}