@font-face {
    font-family: 'FjallaOne-Regular';
    font-style: normal;
    font-weight: 400;
    src: local('FjallaOne Regular'), local('FjallaOne Regular'), url(fonts/FjallaOne-Regular.ttf) format('truetype');
}
@font-face {
    font-family: 'Oswald-Light';
    font-style: normal;
    font-weight: 300;
    src: local('Oswald Light'), local('Oswald Light'), url(fonts/Oswald-Light.ttf) format('truetype');
}
@font-face {
    font-family: 'Oswald-Regular';
    font-style: normal;
    font-weight: 400;
    src: local('Oswald Regular'), local('Oswald Regular'), url(fonts/Oswald-Regular.ttf) format('truetype');
}
@font-face {
    font-family: 'Oswald-Bold';
    font-style: normal;
    font-weight: 700;
    src: local('Oswald Bold'), local('Oswald Bold'), url(fonts/Oswald-Bold.ttf) format('truetype');
}

* { outline: none; margin:0; padding:0; }

body {
	font-family:'Oswald-Light', sans-serif;
	line-height: 1.8em;
	letter-spacing: .05em;
	background: #ffffff;
	overflow-x: hidden;
	font-size: 1em; 
	margin:0 auto;
}

h1, h2, h3, h4, h5 {
	font-family:'FjallaOne-Regular';
	font-style: normal;
	font-weight: normal;
	display:block;
	width:100%;
}

h1 {
	font-size: 1em;
    text-align: left;
    background: #2b3a42;
    color: #fff;
    border-radius: .25em .25em 0 0;
    padding: .2em .2em .2em .5em;
}

h2 {
    padding: 1em 0 0 0;
    text-align: center;
	font-size:1.8em;
}

h3 {
	font-size:1.1em;
}

.breadcrumbs {
	border-bottom: .1em solid #2b3a42;
    padding: .2em 0 .2em .5em;
    margin: 0;
    line-height: 1em;
}

.breadcrumbs a {
	text-decoration: none;
    font-size: .8em;
    font-weight: bold;
    color: #2b3a42;
}

p {
	padding:0 0 1em 0;
	font-size:1.1em;
}

.l-switch {
	display: block;
    padding: 0 .5em 1em 0;
    margin: 0;
}

.flag-button {
    cursor: pointer;
    border: none;
    background: none;
	padding:0;
	margin:0;
}

.wave {
	text-align:center;
	margin: -.8em 0 0 0;
}

.wave svg {
    width: auto;
    height: 12px;
    overflow: visible;
}

.wave path {
    stroke: #2b3a42;
    stroke-width: 2px;
    stroke-linecap: round;
    stroke-dasharray: 150;
	fill: none;
}

img, svg {
    vertical-align: middle;
}


.row {
	margin:0 auto 2em auto;
	clear:both;
}

.row iframe {
	width:100%;
	height:300px;
	border-radius:.25em;
}

.prodcat-wrap,
.prod-wrap {
	display:inline-block;
	padding:.2em 0 0 0;
	width:CALC(300px + .2em);
	border: .1em solid #e5e7eb;
	border-radius: .25em;
	box-shadow: 0 4px 6px -1px #edebea;
	overflow:hidden;
}

.prodcat-wrap p, 
.prod-wrap p {
	text-align:left;
	padding:1em .5em .5em .5em;
	margin: 0;
    border-radius: 0 0 .25em .25em;
}

.prodcat-wrap a,
.prod-wrap a {
	display: inline-block;
	background: #606c38;
	color: #fff;
	text-decoration: none;
	border-radius: .25em .25em 0 0;
}
.prodcat-wrap a:hover,
.prod-wrap a:hover {
	background: #fff;
    color: #606c38;
}
.prodcat-wrap a:hover img,
.prod-wrap a:hover img {
	opacity:.5;
}

.prodcat-wrap a img, 
.prod-wrap a img {
	border-radius: .25em .25em 0 0;
	margin-bottom:.3em;
}

.prod-wrap p a {
	display: inline-block;
    float: right;
    background: #606c38;
    color: #fff;
    text-decoration: none;
    border-radius: .25em .25em 0 0;
    padding: .2em .5em;
	margin-right: 96px;
}

.prod-wrap h3 {
	padding-top:1em;
}

.price {
	display:block;
	text-align:right;
	font-size:1em;
	font-weight:bold;
	padding:0;
	margin:0 0 .5em 0;
}

.price span {
	display: inline-block;
    text-align: left;
    float: left;
    width: 3em;
    margin: 0;
    padding-left: .4em;
    background: #414e55;
    border: .1em solid #2b3a42;
    border-radius: .25em;
    color: #fff;
}

sup {
	color: #bbb;
    font-size: .7em;
    font-weight: 300;
}

small {
	display: block;
    background: #16a34a;
    color: #fff;
    position: absolute;
    float: left;
    padding: .3em .3em .2em .5em;
    font-size: .8em;
    border-radius: .5em;
    line-height: 1.8em;
    margin-top: -3em;
    margin-left: 1em;
}

.sale {
	color: #16a34a;
}

.pr-def {
	border-top:.2em solid #606c38;
	padding-top:.5em
}

small.lntr {
	display: inline;
    background: none;
    text-decoration: line-through;
    color: #999;
    position: relative;
    float: none;
}


/* From Uiverse.io by JulanDeAlb */ 
.menu-tgl {
  cursor: pointer;
  float:right;
}

.menu-tgl input {
  display: none;
}

.menu-tgl svg {
  /* The size of the SVG defines the overall size */
  height: 3em;
  /* Define the transition for transforming the SVG */
  transition: transform 600ms cubic-bezier(0.4, 0, 0.2, 1);
}

.line {
  fill: none;
  stroke: black;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
  /* Define the transition for transforming the Stroke */
  transition: stroke-dasharray 600ms cubic-bezier(0.4, 0, 0.2, 1),
              stroke-dashoffset 600ms cubic-bezier(0.4, 0, 0.2, 1);
}

.line-top-bottom {
  stroke-dasharray: 12 63;
}

.menu-tgl input:checked + svg {
  transform: rotate(-45deg);
}

.menu-tgl input:checked + svg .line-top-bottom {
  stroke-dasharray: 20 300;
  stroke-dashoffset: -32.42;
}

.menu-tgl input:checked ~ #menu {
  right: 0;
  transition: right .3s;
}

.menu-tgl input:checked ~ #overlay {
  display: block;
}

#menu {
  height: calc(100% - 3em);
  position: fixed;
  top: 3em;
  display: block;
  width: 289px;
  padding-top:1em;
  padding-right: 10px;
  padding-bottom: 3em;
  background-color: #fff;
  right: -300px;
  transition: right .3s;
  overflow: auto;
  border-left: 1px solid #e2e8f0;
  opacity:.9;
  z-index: 99;
  list-style: none;
  text-align:right;
  font-family: system-ui, -apple-system, sans-serif;
}

#menu a {
	display: inline-block;
    padding: .1em .8em;
    margin: 0 .5em .5em 0;
    border-radius: .5em;
    font-weight: 400;
    white-space: nowrap;
	border:.1em solid #606c38;
    background: #606c38;
    color: #fff;
    text-decoration: none;
}

#menu a:hover {
	background: #fff;
    color: #606c38;
}


#overlay
{
	position: fixed;
	width: 100%;
	height: 100%;
	top: 3em;
	left: 0;
	background: #000;
	opacity: 0.5;
	display: none;
	z-index: 98;
}

a {
	color: #0284c7;
    text-decoration: underline;
    -webkit-transition: .5s all ease;
    -o-transition: .5s all ease;
    transition: .5s all ease;
    text-decoration-style: dotted;
}
a:hover {
	color:#606c38;
	text-decoration-style: double;
}

.big-dot {
	color:#606c38;
	font-size:1.2em;
	padding: 0;
    margin: 0;
}

footer {
	display:block;
	color: #e2e8f0;
    margin-top: 2em;
    background: #2b3a42;
    padding: 3em 0;
}

footer a {
	font-family: system-ui, -apple-system, sans-serif;
	color: #eaeaea;
	text-decoration-style: solid;
}

footer a:hover {
	color: #e2e8f0;
	text-decoration: none;
}

footer li {
    list-style: none;
}

footer .social li {
    display: inline-block;
	margin: .2em .2em 0 0;
}

footer .social li a {
    display: inline-block;
    width: 2em;
    height: 2em;
    position: relative;
    color: #fff;
    background: #606c38;
    border-radius: 50%;
}

footer .social li a img {
	filter: invert(100%);
	margin:.25em;
}

.one-half,
.one-third,
.one-third-mid,
.one-fourth {
	display:inline-block;
	float:left;
	padding:0;
	margin-right:1%;
	margin-bottom:1%;
}

.one-half { width:49%; }
.one-third { width:32%; }
.one-third-mid { width:33%; }
.one-fourth { width:24%; }

.c-right {
	margin:2em 0 4em 0;
	border-top: .1em solid #606060;
	text-align:center;
}

.al-l {
	text-align:left;
}
.al-c {
	text-align:center;
}
.al-r {
	text-align:right;
}
.mt-2 {
	margin-top:2em;
}
.pt-2 {
	padding-top:2em;
}
.mb-2 {
	margin-bottom:2em;
}
.mb-4 {
	margin-bottom:4em;
}





/* ==========================================================================
   1. BASE STYLES (Shared by all alerts)
   ========================================================================== */
.alert, .alert-success, .alert-warning, .alert-error {
    padding: .4em .8em;
    margin: 1em 0 1em 0;
    border-radius: .25em;
    font-family: system-ui, -apple-system, sans-serif;
    font-size: .8em;
    border: .1em solid transparent;
}

/* Shared icon base */
.alert .info-btn, .alert-success .info-btn, .alert-warning .info-btn, .alert-error .info-btn {
    display: inline-block;
    position: relative;
    float: right;
    margin: -1.4em;
    line-height: 1.6em;
    width: 1.6em;
    height: 1.6em;
    min-width: 1.6em;
    color: #ffffff;
	border:none;
    border-radius: 50%;
    font-size: 1em;
    font-weight: bold;
    font-style: normal;
}

/* Shared link base transition */
.alert a, .alert-success a, .alert-warning a, .alert-error a {
    text-decoration: underline;
    text-decoration-style: dotted;
    text-underline-offset: 3px;
    font-weight: 600;
    transition: all .3s ease;
}


/* ==========================================================================
   2. THEME MODIFIERS (Unique colors per state)
   ========================================================================== */

/* 🔵 NEUTRAL INFO BOX (.alert) */
.alert {
    background-color: #f0f9ff;  /* Soft ice blue */
    border-color: #bae6fd;
    border-left: 4px solid #0284c7;
    color: #0369a1;
}
.alert .info-btn { background-color: #0284c7; }
.alert a { color: #0369a1; }
.alert a:hover { color: #0c4a6e; text-decoration-style: solid; }

/* 🟢 SUCCESS / QUESTION BOX (.alert-success) */
.alert-success {
    background-color: #f0fdf4;  /* Soft mint */
    border-color: #bbf7d0;
    border-left: 4px solid #16a34a;
    color: #166534;
}
.alert-success .info-btn { background-color: #16a34a; }
.alert-success a { color: #15803d; }
.alert-success a:hover { color: #166534; text-decoration-style: solid; }

/* 🟡 WARNING BOX (.alert-warning) */
.alert-warning {
    background-color: #fffbeb;  /* Soft amber/yellow */
    border-color: #fde68a;
    border-left: 4px solid #d97706;
    color: #92400e;
}
.alert-warning .info-btn { background-color: #d97706; }
.alert-warning a { color: #b45309; }
.alert-warning a:hover { color: #78350f; text-decoration-style: solid; }

/* 🔴 ERROR BOX (.alert-error) */
.alert-error {
    background-color: #fef2f2;  /* Soft rose/red */
    border-color: #fecaca;
    border-left: 4px solid #dc2626;
    color: #991b1b;
}
.alert-error .info-btn { background-color: #dc2626; }
.alert-error a { color: #b91c1c; }
.alert-error a:hover { color: #7f1d1d; text-decoration-style: solid; }




.clearall {
  clear:both;
  display: block;
  height: 0;
  margin: 0;
  padding: 0;
  border: none;
  overflow: hidden;
  width: 100%;
}

input {
	font-family: system-ui, -apple-system, sans-serif;
}

input[type=text], 
input[type=email],
select,
textarea {
  appearance: none;
  width: 100%;
  font-size: 1em;
  padding: 0.25em;
  margin:.25em;
  background-color: #fff;
  border: 1px solid #caced1;
  border-radius: 0.25em;
  color: #000;
  cursor: pointer;
}

select {
	display:inline-block;
	width: fit-content;
}

textarea {
	height:10em;
}

input[type=submit],
input[type=button] {
	display: inline-block;
	padding: 1em .5em 1em .5em;
    font-size: 1em;
    font-weight: bold;
    border-radius: .25em;
    border: none;
	background: #16a34a;
    color: #fff;
    text-decoration: none;
    font-family: system-ui, -apple-system, sans-serif;
	cursor: pointer;
}

input[type=submit].add-to-cart, 
input[type=submit].update-cart, 
input[type=submit].review-order, 
input[type=submit].place-order {
	background: #16a34a url("/images/cart-plus-white.png") no-repeat;
	background-position: right .4em center;
	background-size: auto 50%;
	padding: 1em 40px 1em .5em;
}

input[type=submit].update-cart {
	background: #16a34a url("/images/cart-upd-white.png") no-repeat;
	background-position: right .4em center;
	background-size: auto 50%;
}

input[type=submit].review-order {
	background: #16a34a url("/images/review-order.png") no-repeat;
	background-position: right .4em center;
	background-size: auto 50%;
}

input[type=submit].place-order {
	background: #16a34a url("/images/place-order.png") no-repeat;
	background-position: right .4em center;
	background-size: auto 50%;
}

.cart-edit {
	background: url(/images/icon-edit.png) center center no-repeat;
    background-size: auto 50%;
    border: .25em solid #2b3a42;
	border-radius: 0 0 .25em .25em;
    display: inline-block;
    width: 2em;
    height: 2em;
    position: relative;
    top: -.65em;
}

.cart-table {
	width:100%;
}

.cart-table th {
	background: #2b3a42;
    color: #fff;
    padding: .25em .5em;
}

.cart-table th a {
	color:#fff;
}

.cart-table td {
	padding-bottom: 2em;
    line-height: 1.5em;
}

.cart-table table td {
	padding-bottom: 0;
}

td.config-val {
	line-height: 2em;
}

.cart-table td span {
	display: inline-block;
}

.cart-table td span span {
	display: inline-block;
    background: #e2e8f0;
	color: #606c38;
    border-radius: .25em;
    padding: 0 .25em;
    margin: 0 .5em 0 0;
    font-weight: bold;
	line-height: 1.5em;
}

.cart-table th.item-name, 
.cart-table th.cart-total-title {
	text-align:left;
	border-radius:.25em 0 0 0;
}

.cart-table th.item-price, 
.cart-table th.cart-total {
	border-radius:0 .25em 0 0;
	width:5%;
	text-align:center;
	white-space: nowrap;
}

.cart-table th.cart-total-title,
.cart-table th.cart-total {
	border-radius:.25em;
	background: #3d7549;
}

.cart-table th.item-qty {
	background:#fff;
	text-align:left;
}

.back-to {
	display: inline-block;
	float:left; 
    font-size: 1em;
    font-weight: bold;
    padding: 1em;
    margin: .25em .25em .25em 0;
    border-radius: .25em;
    border: none;
	background-color: #e2e8f0; 
	color: #0284c7;
    text-decoration: none;
    font-family: system-ui, -apple-system, sans-serif;
}




@media screen 
and  (max-device-width: 599px) {
    h1 {
		text-align: center;
		padding: .2em .2em .2em .2em;
	}
	
	.row {
        max-width: 94%;
    }
	
	.one-half,
	.one-third,
	.one-third-mid,
	.one-fourth {
		display:block;
		width:100%;
		float:none;
		padding:0;
		margin:2em 0 0 0;
		text-align:center;
	}
}
@media screen 
and (min-device-width: 600px) 
and  (max-device-width: 799px) {
    .row {
        max-width: 94%;
    }
}
@media screen 
and (min-device-width: 800px) 
and  (max-device-width: 999px) {
    .row {
        max-width: 90%;
    }
}
@media screen 
and (min-device-width: 1000px) 
and  (max-device-width: 1199px) {
    .row {
        max-width: 92%;
    }
}
@media screen 
and (min-device-width: 1200px) 
and  (max-device-width: 1399px) {
    .row {
        max-width: 96%;
    }
}
@media screen 
and (min-device-width: 1400px) {
    .row {
        max-width: 90%;
    }
}








.accordion {
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 1em;
}

.accordion-item {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: .25em;
  overflow: hidden;
  box-shadow: 0 4px 6px -1px #edebea;
}

/* Hide the native checkbox completely */
.accordion-toggle {
  display: none;
}

.accordion-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: .75em;
  font-weight: 600;
  cursor: pointer;
  user-select: none;
  background-color: #ffffff;
  transition: background-color 0.2s ease;
}

.accordion-header:hover {
  background-color: #f9fafb;
}

.accordion-header .icon {
	float:right;
}

/* Arrow indicator rotation */
.accordion-header .icon::before {
  content: '▼';
  display: inline-block;
  font-size: 0.75em;
  transition: transform 0.3s ease;
  color: #9ca3af;
}

/* --- The Partially Open Magic --- */
/* Instead of display: none or max-height: 0, we use a CSS Grid trick for perfect transition height */
.accordion-content {
  display: grid;
  grid-template-rows: 4em; /* This gives a subtle, 40-50px "peek" preview when closed */
  transition: grid-template-rows 0.5s ease-in-out;
  padding: 0 1.25em;
}

/* Inner wrapper keeps padding tidy during transition collapse */
.content-inner {
  overflow: hidden;
  font-size: 0.95em;
  color: #4b5563;
  padding: 1em 0;
}

/* --- Opened State --- */
.accordion-toggle:checked ~ .accordion-content {
  grid-template-rows: 100%; /* Expands cleanly to fit full content size */
}

.accordion-toggle:checked ~ .accordion-header .icon::before {
  transform: rotate(180deg);
  color: #2563eb;
}







/* Dark semi-transparent background */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #00000080;
  backdrop-filter: blur(.3em); /* Modern subtle blur effect */
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 97;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}

/* Active state for smooth fade-in */
.modal-overlay.is-active {
  opacity: 1;
  pointer-events: auto;
}

/* Main content box covering 90% */
.modal-content {
  background: #ffffff;
  width: 90%;
  height: 90%;
  border-radius: .5em;
  position: relative;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  
  /* Smooth scale up effect */
  transform: scale(0.95);
  transition: transform 0.3s ease;
}

.modal-overlay.is-active .modal-content {
  transform: scale(1);
}

/* Scrollable area inside the 90% box */
.modal-body {
  padding: 30px;
  margin:0 .5em 0 0;
  overflow-y: auto;
  flex-grow: 1;
}

/* Close Button sticky to top right */
.modal-close {
  position: absolute;
  top: 15px;
  right: 20px;
  background: none;
  border: none;
  font-size: 2em;
  line-height: 1;
  cursor: pointer;
  color: #333;
  z-index: 98;
  transition: color 0.2s;
}

.modal-close:hover {
  color: #ff4d4d;
}

/* Simple Loader placeholder */
.loader {
  text-align: center;
  padding: 50px;
  font-style: italic;
  color: #666;
}

/* Info Icon Button Reset */
.info-btn {
    display: inline-block;
    width: 1.2em;
    height: 1.2em;
	padding: 0;
    margin: 0;
	color:#333;
    border: .1em solid #0284c7;
    cursor: pointer;
    font-size: 1.1em;
    border-radius: 50%;
    text-align: center;
    line-height: 1em;
	font-style: normal;
	font-weight:bold;
}

		








