﻿/* =====================
   Font Face Definitions
====================== */

@font-face {
    font-family: 'Silka';
    src: url('../fonts/Silka-Light.otf') format('opentype');
    font-weight: 300;
    font-style: normal;
}
@font-face {
    font-family: 'Silka';
    src: url('../fonts/Silka-Regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
}
@font-face {
    font-family: 'Silka';
    src: url('../fonts/Silka-Medium.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
}
@font-face {
    font-family: 'Silka';
    src: url('../fonts/Silka-SemiBold.otf') format('opentype');
    font-weight: 600;
    font-style: normal;
}
@font-face {
    font-family: 'Silka';
    src: url('../fonts/Silka-Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
}

/* =====================
   Base Element Styles
====================== */
body {
    padding: 0;
    font-family: 'Silka', Arial, "Times New Roman", Times, serif;
    padding-bottom: 100px; 
}
html {
  position: relative;
  min-height: 100%;
}
img {
    border: 0;
}
a {
    text-decoration: none;
    font-weight: 500;
    color: #456380;
}

/* =====================
   Navigation Styles
====================== */
#mainNav{  
  background-color: #4d4c44 !important;
}
#mainNav a{
    color: #fff;
}

.booking-section-header {
    background-color: #f9f8f5 !important;
}

.topLoggo{
    max-height: 50px;
}
.nav-item{
    color: #ffffff !important;
    font-weight: 400;
    padding: 4px 8px;
    border-radius: 12px;
    transition: background-color 0.25s ease, color 0.25s ease;
}
.nav-item:hover{
    background-color: #ffffff12;

    padding: 4px 8px;
}
.nav-item-sm {
    color: #ffffffaf !important;
    font-weight: 400;
    padding: 2px 6px;
    font-size: 0.875rem;
    margin-right: 40px;
    transition: transform 0.25s ease, color 0.25s ease;
}
.nav-item-sm:hover {
    color: #ffffffaf !important;
    background-color: #ffffff00;
    font-weight: 400;
    padding: 2px 6px;
    font-size: 0.875rem;
    transform: translateX(-6px);
}

.nav-link {
    color: #ffffff !important;
    font-weight: 400;
    padding: 4px 8px;
    height: 30px;
    display: flex;
    align-items: center;
}
.nav-link-sm {
    color: #ffffffaf !important;
    font-weight: 400;
    padding: 2px 6px;
    height: 24px;
    display: flex;
    align-items: center;
    font-size: 0.875rem;
}

.navbar-nav .nav-link {
  position: relative;
  transition: color 0.2s ease;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
  color: #ffffffff !important;
}

/* @keyframes navActivePop {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.00);
  }
  100% {
    transform: scale(1);
  }
} */

/* @keyframes navItemHighlight {
  0% {
    box-shadow: 0 0 0 rgba(255, 255, 255, 0);
  }
  40% {
    box-shadow: 0 0 18px rgba(255, 255, 255, 0.154);
  }
  100% {
    box-shadow: 0 0 0 rgba(255, 255, 255, 0);
  }
} */

.navbar-nav .nav-item.active,
.navbar-nav .nav-item.active:hover {
  background-color: #ffffff;
  border-radius: 12px;
  animation: /* navItemHighlight 300ms ease-out, */ navItemBgFade 300ms ease-out;
}

.navbar-nav .nav-item.active .nav-link {
  color: #2C3340 !important;
 /*  animation: navActivePop 300ms ease-out; */
 /*  transform-origin: center; */
}

.navbar-nav .nav-link.active:hover,
.navbar-nav .nav-link.active:focus {
  color: #2C3340 !important;
  background-color: #ffffff;
}


/* =====================
   Typography & Headings
====================== */
.rubrik{
    font-weight: 600;
    font-size:1.5em;
}

.ingress{
    font-weight: 400;
}
.underRubbe{
    font-weight:bold;
    font-size:1.1em;
}
.link{
    font-weight:bold;
    font-size:1.0em;
}

/* =====================
   System & Error Messages
====================== */
.sysMed {
    color: #993333;
    font-weight: bold;
    margin-bottom: 10px;
    margin-top: 10px;
    display:inline-block;
}
.error {
    color: #993333;
    font-weight: bold;
    font-size:1.2em;
}

/* =====================
   Layout & Containers
====================== */
#visaText {
    font-size:1.1em;
}
#kundTextDiv {
    font-size: 1.1em;
}
#h_visaRules {
    display:none;
    margin:0px 0px 20px 0px;
    width:350px;
}
#bokaFormPage {
  max-width: 1000px;
}
#logginForm {   
    background-color: #f5f5f5;
    border-radius: 12px;
}
#litenLoggaBotom {
    position:relative;
    top:-70px;
    float:right;
}
.topLoggo {
	max-width: 500px;
}
#logInOut {
    text-align: right;
    margin: 0px 0px 20px 0px;
    padding: 0;
    font-size: 1.0em;
    color: #555;
}
.footerWrap {
  position: absolute;
  background-color: #f9f8f5;
  width: 100%;
  bottom: 0;
  left: 0;
  font-size: 0.75em;
}

/* =====================
   Global Pages Menu
====================== */
ul#globalpages, ul#globalpages li {
    list-style: none;
    margin: 0;
    padding: 0;
    background-color: #cdcdcd;
}
ul#globalpages {
    margin-bottom: 0.6em; 
    float:left;
    height: inherit;
    width: inherit;
}
ul#globalpages li.break, .menu-break {
    clear: both;
}
.menu-break {
    margin: 0;
    padding: 0;
}
ul#globalpages li {
    float: left;
}
ul#globalpages li a {
    display: block;
    float: left;
    padding: 0.65em;
    color: #333;
    text-decoration: none;
}
ul#globalpages li.current a {
    background-color: #e4e4e4;
    margin: 0px;
}
ul#globalpages li a:hover {
    background-color: #d8d8d8;
}

/* =====================
   Activity Info & Calendar
====================== */
.aktivitetInfoText{
    background-color: #f8f9fa;
    border-radius: 12px;
}
/* fullCalender */
#calFilterForm {
    width: 900px;
    margin: 0 auto;
}
#calendar {
    width: 900px;
    margin: 0 auto;
}
.booked,
.booked div,
.booked span {
background-color: #e0e0e0;
color: #999999;
}
.free,
.free div,
.free span {
    background-color: #9abe76;
    color: #333333;
}
.reserved,
.reserved div,
.reserved span {
    background-color: #f8d578;
    color: #333333;
}

/* =====================
   List & Item Details
====================== */
.titelLista {
    padding: 10px 0px 5px 20px;
}
.itemDetail {
    padding: 0px 0px 0px 200px;
    margin: 0px 0px 0px 0px;
}
.itemDetailLink {
    display:inline;
    padding: 0px 0px 0px 20px;
}
.clearFix {
    clear: both;
}

/* =====================
   Basket Styles
====================== */
.basket-dropdown .nav-link {
    position: relative;
}

.basket-count {
    min-width: 1.5rem;
    text-align: center;
    padding: 4px 5px 4px 4px;
    font-size: 0.8rem;
    font-weight: 600;
    margin-top: 1px;
    background-color: #fff;
    line-height: normal;
}

.basket-dropdown.active .basket-count {
    background-color: #212529;
    color: #ffffff;
    font-weight: 500;
}

.basket-dropdown-menu {
    width: 320px;
    max-width: calc(100vw - 2rem);
    border: none;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
    z-index: 5000;
    position: absolute;
    top: calc(100% + 0.75rem);
    right: 0;
    display: none;
    background-color: #ffffff;
}

.basket-dropdown,
.user-dropdown {
    position: relative;
}

.basket-dropdown-menu,
.user-dropdown-menu {
    width: 320px;
    max-width: calc(100vw - 2rem);
    border: none;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
    z-index: 5000;
    position: absolute;
    top: calc(100% + 0.75rem);
    right: 0;
    display: none;
    background-color: #ffffff;
}

.user-dropdown-menu {
    width: 220px;
    padding: 0.75rem 0;
}

.basket-preview {
    padding: 1rem 1.25rem;
}

.basket-preview__header {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    padding-bottom: 0.5rem;
    color: #2C3340;
}

.basket-preview__body {
    max-height: 680px;
    overflow-y: hidden;
}

.basket-preview__item {
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.basket-preview__item:last-of-type {
    border-bottom: none;
}

.basket-preview__item strong {
    color: #2C3340;
}

.basket-preview__more {
    padding-top: 0.5rem;
}

.basket-preview__footer {
    text-align: right;
}
.basket-preview__footer .btn {
    min-width: 200px;
}

.basket-dropdown .basket-toggle,
.user-dropdown .user-toggle {
    color: rgba(255, 255, 255, 0.8);
    border: 0;
    background: transparent;
    cursor: pointer;
}

.basket-dropdown .basket-toggle:hover,
.basket-dropdown .basket-toggle:focus,
.basket-dropdown.is-open .basket-toggle,
.user-dropdown .user-toggle:hover,
.user-dropdown .user-toggle:focus,
.user-dropdown.is-open .user-toggle {
    color: #ffffff;
    text-decoration: none;
}

.basket-dropdown.is-open .basket-dropdown-menu,
.user-dropdown.is-open .user-dropdown-menu {
    display: block;
}

.user-dropdown-link {
    display: block;
    padding: 0.5rem 1.25rem;
    color: #e74c3c !important;
    font-size: 0.95rem;
}

.user-dropdown-link:hover,
.user-dropdown-link:focus {
    color: #c9483a !important;
    text-decoration: none;
    border-radius: 12px;
}
.basketItem {
    background-color: #f8f9fa;
    border-radius: 24px;
    padding: 24px;
    margin-bottom: 24px;
}

.basketItem td {
    color: #878B94;
}
.basketInfoText {
    color: #303030 !important;
}
.btn-trash {
    color: #ff5353;
    border-radius: 6px;
}
.btn-trash:hover {
    background-color: #00000006;
    color: #ff0000;

}


.deleteItem {
    float: right;
    padding-right: 20px;

}
.basketItemDelLink {
    color: #993333;
}
.basketItemError {
    border: 1px solid;
    border-color: #993333;
}
.basketItemFull {
    background-color: red;
}
.basketItemSuccess {
    background-color: #875e29 !important;
}
.faGreen{
  color: red;
}

/* =====================
   Modal & Button Styles
====================== */
.modal-header, .close {
    background-color: #2C3340;
    color:white !important;
    text-align: center;
}
.successText {
    color: #875e29 !important;
}
.warnText {
    color: red;
}
.dNone {
    display: none;
}
.greenButton {
    background-color: #9abe76;
    font-weight:bold;
}

/* =====================
   Form & Search Styles
====================== */
.listSearchForm {
    border-bottom: solid 1px;
    border-color: #fd0000;
}

/* =====================
   Activity
====================== */
.aktKeyDiv {
    margin-top: 10px;
    margin-bottom: 10px;
}
.aktRecDiv {
    margin-left: 10px; 
    padding-bottom: 5px;
}
.aktRecDayDiv {
    width: 10%;
    display: inline-block;
}
.aktRecDateDiv {
    width: 40%;
    display: inline-block;
}
.aktRecUrlDiv {
    display: inline-block;
}

/* =====================
   Status Text Styles
====================== */
/* .freeText {
  
    color: #9abe76;    
 
}
.bookedText {
  
    color: #999999;    
 
} */
.reservedText {
    padding: 6px;
    margin-right: 6px;
    color: #ff9500;
    background-color: #ffffff00;
    font-weight: 500;
}
/* .passedText {
  
} */

/* =====================
   Datepicker Styles
====================== */
.datepicker td, .datepicker th {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 0.85rem;
}
.datepicker th {
    border-radius: 0px !important;
}



.selector td, .selector th {
    width: 2.5rem;
    height: 2.5rem;
    font-size: 0.85rem;
}
.selector {
    margin-bottom: 3rem;
}

/* Active day color */
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active.disabled,
.datepicker table tr td.active.disabled:hover {
  background-image: -moz-linear-gradient(to bottom, #08c, #08c);
  background-image: -ms-linear-gradient(to bottom, #08c, #08c);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#08c));
  background-image: -webkit-linear-gradient(to bottom, #08c, #08c);
  background-image: -o-linear-gradient(to bottom, #08c, #08c);
  background-image: linear-gradient(to bottom, #08c, #08c);
}

/* Active month color */
.datepicker table tr td span.active,
.datepicker table tr td span.active:hover,
.datepicker table tr td span.active.disabled,
.datepicker table tr td span.active.disabled:hover {
  background-image: -moz-linear-gradient(to bottom, #08c, #08c);
  background-image: -ms-linear-gradient(to bottom, #08c, #08c);
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08c), to(#08c));
  background-image: -webkit-linear-gradient(to bottom, #08c, #08c);
  background-image: -o-linear-gradient(to bottom, #08c, #08c);
  background-image: linear-gradient(to bottom, #08c, #08c);
}


/* =====================
   Validation & Info Styles
====================== */
.validateErrorText{
  font-size: 90% !important;
}
.infoPlatta {
	background-color: #f5f5f5;
    border-radius: 12px;
}
.begransad{
    color: red;
}

/* =====================
   Table & Heading Styles
====================== */
th {
    background-color: #f5f5f5;
    border: none !important;
    font-weight: 500;
}
th h4 {
    
}
td {
    border-top: none !important;
}
.firstColHead {
    border-top-left-radius: 12px;
    border-bottom-left-radius: 12px;
}
.lastColHead {
    border-top-right-radius: 12px;
    border-bottom-right-radius: 12px;
}

/* =====================
   Bootstrap Color Overrides
====================== */
.bg-primary    { background-color: #2C3340 !important; }
.bg-secondary  { background-color: #EA413E !important; }
.bg-success    { background-color: #875e29 !important; }
.bg-danger     { background-color: #e74c3c !important; }
/* .bg-warning    { background-color: #f1c40f !important; }
.bg-info       { background-color: #1abc9c !important; }
.bg-light      { background-color: #ecf0f1 !important; }
.bg-dark       { background-color: #34495e !important; }
.bg-white      { background-color: #fff !important; } */

/* .text-primary    { color: #3498db !important; }
.text-secondary  { color: #7f8c8d !important; }
.text-success    { color: #2ecc71 !important; }
.text-danger     { color: #e74c3c !important; }
.text-warning    { color: #f1c40f !important; }
.text-info       { color: #1abc9c !important; }*/
.text-light      { color: #d0d0d0 !important; }/*
.text-dark       { color: #34495e !important; }
.text-white      { color: #fff !important; } */
.text-muted      { color: #909090 !important;}

/* Button Overrides */
.btn-primary {
  color: #fff;
  background-color: #2C3340;
  border-color: #2C3340;
}
.btn-primary:hover {
  color: #fff;
  background-color: #2C3340;
  border-color: #2C3340;
  opacity: 80%;
}
.btn-primary:focus {
  color: #fff;
  background-color: #2C3340;
  border-color: #2C3340;
  opacity: 80%;
}

.btn-success {
  color: #fff;
  background-color: #875e29 !important;
  border-color: #875e29 !important;
}
.btn-success:hover {
  color: #fff;
  background-color: #875e29 !important;
  border-color: #875e29 !important;
  opacity: 80%;
}

.btn-success:focus, .btn-success.focus {
  color: #fff;
  background-color: #875e29 !important;
  border-color: #875e29 !important;
  box-shadow: 0 0 0 0.2rem #875e29 !important;
}

.btn-success.disabled, .btn-success:disabled {
  color: #fff;
  background-color: #875e29 !important;
  border-color: #875e29 !important;
}

/* Boostrap Form Validation Check */
.was-validated .form-control:valid,
.form-control.is-valid,
.was-validated .custom-select:valid,
.custom-select.is-valid {
    background-image: url("/img/check.svg");
    background-size: 1rem;
    background-position: center right 0.75rem;
    background-repeat: no-repeat;
}

/* =====================
   Custom Utilities (Tailwind-like)
====================== */
.rounded-none { border-radius: 0 !important; }
.rounded-sm   { border-radius: 0.125rem !important; }
.rounded      { border-radius: 0.25rem !important; }
.rounded-md   { border-radius: 0.375rem !important; }
.rounded-lg   { border-radius: 0.5rem !important; }
.rounded-xl   { border-radius: 0.75rem !important; }
.rounded-2xl  { border-radius: 1rem !important; }
.rounded-3xl  { border-radius: 1.5rem !important; }
.rounded-pill { border-radius: 50rem !important; }

.text-xs   { font-size: 0.75rem !important; }
.text-sm   { font-size: 0.875rem !important; }
.text-base { font-size: 1rem !important; }
.text-lg   { font-size: 1.125rem !important; }
.text-xl   { font-size: 1.25rem !important; }
.text-2xl  { font-size: 1.5rem !important; }
.text-3xl  { font-size: 1.875rem !important; }
.text-4xl  { font-size: 2.25rem !important; }
.text-5xl  { font-size: 3rem !important; }

.font-light { font-weight: 300 !important; }
.font-normal { font-weight: 400 !important; }
.font-medium { font-weight: 500 !important; }
.font-semibold { font-weight: 600 !important; }
.font-bold { font-weight: 700 !important; }



.activity-panel {
	opacity: 1;
	transform: none;
}

.js-enabled .activity-panel {
	opacity: 0;
	transform: translateY(-6px);
	transition: opacity 0.4s ease, transform 0.4s ease;
}

.js-enabled .activity-panel.is-visible {
	opacity: 1;
	transform: none;
}

@keyframes navItemBgFade {
  0% {
    background-color: rgba(255, 255, 255, 0);
  }
  100% {
    background-color: #ffffff;
  }
}

/* Mina bokningar skeleton loading */
.booking-page-shell {
	min-height: 320px;
}

.booking-page-content {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity 0.35s ease, transform 0.35s ease;
}

.booking-page-content.is-ready,
html:not(.is-bookings-loading) .booking-page-content {
	opacity: 1;
	transform: none;
}

.booking-skeleton-overlay {
	opacity: 0;
	visibility: hidden;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 2.5rem 1rem;
	background: rgba(255, 255, 255, 0.94);
	backdrop-filter: blur(1.5px);
	transition: opacity 0.35s ease, visibility 0.35s ease;
	z-index: 30;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

html.is-bookings-loading .booking-skeleton-overlay {
	opacity: 1;
	visibility: visible;
}

html.is-bookings-loading .booking-page-content {
	opacity: 0;
	transform: translateY(8px);
}

.skeleton-shimmer {
	position: relative;
	overflow: hidden;
	background-color: #e5e5e5;
	border-radius: 8px;
}

.skeleton-shimmer::after {
	content: '';
	position: absolute;
	top: 0;
	left: -150%;
	width: 50%;
	height: 100%;
	background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0));
	animation: skeleton-shimmer 1.4s ease-in-out infinite;
}

@keyframes skeleton-shimmer {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(300%);
	}
}

.booking-skeleton-heading {
	height: 28px;
	width: 40%;
	max-width: 280px;
}

.booking-skeleton-filter {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
}

.booking-skeleton-filter .skeleton-label {
	height: 16px;
	width: 200px;
	border-radius: 4px;
}

.booking-skeleton-filter .skeleton-input {
	height: 40px;
	width: 220px;
	border-radius: 12px;
}

.booking-skeleton-filter .skeleton-button {
	height: 40px;
	width: 88px;
	border-radius: 999px;
}

.booking-skeleton-table {
	border-radius: 16px;
	border: 1px solid #e4e7ec;
	background: #ffffff;
	overflow: hidden;
}

.booking-skeleton-table .skeleton-table-header,
.booking-skeleton-table .skeleton-table-row {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 0.75rem;
	padding: 0.85rem 1.25rem;
}

.booking-skeleton-table .skeleton-table-header {
	background-color: #f1f3f5;
}

.booking-skeleton-table .skeleton-table-row {
	background-color: #fafafa;
}

.booking-skeleton-table .skeleton-cell {
	height: 16px;
	border-radius: 6px;
}
