

.header-telephone a {
	font-size: 2.0em;
}
.header-email a {
	font-size: 1.3em;
}

.header-address {
    text-align: right;
    max-width: 150px;
    margin-left: auto;  /* pushes the 150px block to the right */
}



.header-address, .header-address a {
	font-size: 0.7em;
	margin-top: -10px;
}


@media (max-width: 768px) {

	.header-telephone a {
		font-size: 2.0em;
	}
	.header-email a {
		font-size: 1.3em;
	}

    .header-address {
        text-align: center;
		width: 100%;
    }
	

	.header-address, .header-address a {
		font-size: 0.7em;
		margin-top: -10px;
	}
	
	.header-address {
        text-align: center;
        max-width: 100%;
        margin-left: 0;
	}
}

@media screen and (max-width: 576px) {

	.header-telephone a {
		font-size: clamp(1rem, 8vw, 5rem);
	}
	.header-email a {
		font-size: clamp(1rem, 6vw, 5rem);
	}
	
    .header-address {
        text-align: center;
		width: 100%;
    }

	.header-address, .header-address a {
		font-size: clamp(0.7rem, 4vw, 5rem);
		margin-top: -10px;
	}
}

/* || General Layout Styles */



.debug {
	background-color: var(--palette-black);
	color: var(--palette-white);
	font-weight: bold;
	font-size: 1.6em;
	margin-bottom: .7rem;
}

.debug-title {
	background-color: var(--palette-gray);
	color: var(--palette-white);
}

.debug-data {
	background-color: var(--palette-beige);
	color: var(--palette-black);
}



@media only screen and (min-width: 960px) {
	.navbar .navbar-nav .nav-item .nav-link {
	  padding: 0 0.9em;
	}
	.navbar .navbar-nav .nav-item:not(:last-child) .nav-link {
	  border-right-color: var(--theme-bg-nav-text);
	  border-right-width: 1px;
	  border-right-style: solid;
	}
  }

.nav-link {
	font-weight: bold;
}

@media screen and (min-width: 576px) {
	.padding-40 {
		padding-right: 40px;
	}
}

.font-style-bold {
	font-weight:500;
}

.font-style-1 {
	font-size: 1.3em;
	margin-bottom: .7rem;
}


.font-style-2 {
	font-size: .9em;
	margin-bottom: .45rem;
}


.font-style-4 {
	padding: .25rem .5rem;
    font-size: 1.2rem;
    line-height: 1.5;
    border-radius: .2rem;
}


.font-style-5 {
	padding: .25rem .5rem;
    font-size: 0.8rem;
    line-height: 1.5;
    border-radius: .2rem;
	font-weight: 700;
}

.font-style-6 {
	padding: .25rem .5rem;
    font-size: 0.7rem;
    line-height: 1.5;
    border-radius: .2rem;
	font-weight: 700;
}

.navigation {
	background-color: var(--palette-white);
	border: 0px;
	border-bottom: 1px;
	border-style: solid;
	border-color: var(--theme-border);
}

.mobile-header {
	/* background-color: var(--palette-olive); */
}


.banner {
	/* background-color: var(--palette-olive); */
}

.content {
	/*  background-color: var(--palette-olive); */
}



.product-image-width {
	/* max-height: 90px; */
	width: 80%;
	margin: 0px auto;
	display: table;
	height: auto;
}

.image-wrapper {
	background-color: var(--palette-white);
    padding: 5px !important;
	border: 1px;
	border-style: solid;
	border-color: var(--theme-border);
	max-width: 400px;
}

.image-wrapper-card-width-fix {
	margin-right: 10px;
}

.message {
	width: auto !important;
}

@media (max-width: 768px) {

    .image-wrapper {
		max-width: 100%;
		margin-bottom: 30px !important;
	}

	.message {
		width: 100% !important;
	}

	.bs-notice {
		width: 100% !important;
		margin-left: 0px !important;
	}
}





.bg-gradient-1 {
	/* background-image: linear-gradient(to right top, var(--palette-olive-100), var(--palette-olive-200), var(--palette-olive-300), var(--palette-olive-400), var(--palette-olive-500));  */
}


.footer {
	background-color: var(--palette-white);
    bottom: 0;
    width: 100%;
    height: 60px;
	border: 0px;
	border-top: 1px;
	border-style: solid;
	border-color: var(--palette-gray);
}

.footer-icons  {
	display: flex;
}
.footer-icons a {
	padding: 0px;
}

.footer-icons img {
	/* max-height: 90px; */
	width: 35px;
	margin: 0px auto;
	display: table;
	height: auto;
}



@media (max-width: 768px) {
	.nav-title, .nav-link, .dropdown-item {
		font-size: 1.5rem;
	}
	.font-style-1 {
		font-size: 5.5vw;
	}
	
	.font-style-5 {
		font-size: 1.2rem;
	}

	
	.footer {
		bottom: 0;
	}
	
	.nav-form-w {
		width: 100% !important;
	}
	
	.date-w-m {
		width:100% !important;
	}
}




.card {
	background-color: var(--palette-white);
}

.card-body {
    padding: 0.9rem;
}



.card h5 {
	font-size: 1.4em;
}

.card-height {
    min-height: 80px;
}


.card > a.card {
    width: 200px;
}

@media (max-width: 700px) {
	
.card-img-top {
    /* width: 60%; */
    object-fit: contain;
	
}

.card h5 {
	font-size: 2.2em;
}

.card p {
	font-size: 1.3em;
}

.link-buffer-top {
	padding-top: 10px;
}

.link-buffer-bottom {
	padding-bottom: 10px;
}




}

@media (min-width: 701px) {
	
.card-img-top {
    width: 100%;
    height: 15vw;
    object-fit: contain;
}
	
.products-img-top {
    width: 100%;
    height: 20vw;
    object-fit: contain;
}


}

@media (min-width: 701px) and (max-width: 900px) {
	
	.card-img-top {
		width: 100%;
		min-height: 200px;
		object-fit: contain;
	}
	
	.products-img-top {
		width: 100%;
		min-height: 200px;
		object-fit: contain;
	}
	
}


.products-header-container {
	margin-bottom:2em;

}

.products-header {
	padding: 20px;
	border: 1px solid var(--theme-notice-border);
	border-width: 1px;
	border-radius: 1px;

	box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px;

	border-color: var(--theme-notice-default-border);
	border-width: 2px;
	background-color: var(--theme-notice-default-bg);
}
  
.products-header h4 {
	color: var(--theme-notice-default-header);
}

.products-header p a {
	color: var(--theme-notice-default-header);
	font-weight: bold;
}


/* Bootstrap notice */ 

.bs-notice {
	padding: 20px;
	margin: 20px 0;
	border: 1px solid var(--theme-notice-border);
	border-width: 1px;
	border-radius: 1px;
	margin-left: 50px;

	box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px;
  }
  .bs-notice-xl {
	margin-left: 0px;
  }
  .bs-notice-lg {
	margin-left: 50px;
  }
  .bs-notice-md {
	margin-left: 100px;
  }
  .bs-notice-sm {
	margin-left: 150px;
  }
  .bs-notice-xs {
	margin-left: 200px;
  }
  .bs-notice h4 {
	margin-top: 0;
	margin-bottom: 5px;
  }
  .bs-notice p:last-child {
	margin-bottom: 0;
  }
  .bs-notice code {
	border-radius: 4px;
  }
  .bs-notice+.bs-notice {
	margin-top: -5px;
  }

  .bs-notice-default {
	
  }
  
  .notice-bg {
	display: flex;  
	flex-wrap: wrap;
	border-color: var(--theme-notice-default-border);
	border-width: 2px;
	background-color: var(--theme-notice-default-bg);
	
  }
  
  .bs-notice-default h4 {
	color: var(--theme-notice-default-header);
  }
  .bs-notice-default p a {
	color: var(--theme-notice-default-header);
	font-weight: bold;
  }


  .bs-notice-primary {
	border-color: var(--theme-notice-primary-border);
	border-width: 2px;
	background-color: var(--theme-notice-primary-bg);
	
  }
  

  .bs-notice-primary h4 {
	color: var(--theme-notice-primary-header);
  }
  .bs-notice-primary p a {
	color: var(--theme-notice-primary-header);
	font-weight: bold;
  }


  .bs-notice-success {
	border-color: var(--theme-notice-success-border);
	border-width: 2px;
	background-color: var(--theme-notice-success-bg);
	
  }

  .bs-notice-success h4 {
	color: var(--theme-notice-success-header);
  }
  .bs-notice-success p a {
	color: var(--theme-notice-success-header);
	font-weight: bold;
  }


  .bs-notice-danger {
	border-color: var(--theme-notice-danger-border);
	border-width: 2px;
	background-color: var(--theme-notice-danger-bg);
  }  

  .bs-notice-danger h4 {
	color: var(--theme-notice-danger-header);
  }
  .bs-notice-danger p a {
	color: var(--theme-notice-danger-header);
	font-weight: bold;
  }


  .bs-notice-warning {
	border-color: var(--theme-notice-warning-border);
	border-width: 2px;
	background-color: var(--theme-notice-warning-bg);
  }

  .bs-notice-warning h4 {
	color: var(--theme-notice-warning-header);
  }
  .bs-notice-warning p a {
	color: var(--theme-notice-warning-header);
	font-weight: bold;
  }


  .bs-notice-info {
	border-color: var(--theme-notice-info-border);
	border-width: 2px;
	background-color: var(--theme-notice-info-bg);
  }
  
  .bs-notice-info h4 {
	color: var(--theme-notice-info-header);
	font-size: 1.3em;
  }
  .bs-notice-info p a {
	color: var(--theme-notice-info-header);
	font-weight: bold;
  }
  .bs-notice-info .date {
	color: var(--theme-notice-info-header);
  }
  /* bg transparency and disabled effects for Bootstrap notice */ 
  .bs-notice-default.transparent {
	background-color: var(--theme-notice-default-transparent)
  }
  .bs-notice-success.transparent {
	background-color: var(--theme-notice-success-transparent)
  }
  .bs-notice-warning.transparent {
	background-color: var(--theme-notice-warning-transparent)
  }
  .bs-notice-danger.transparent {
	background-color: var(--theme-notice-danger-transparent)
  }
  .bs-notice-info.transparent {
	background-color: var(--theme-notice-info-transparent)
  }
  .bs-notice.disabled {
	opacity: 0.4;
  }


  
  .float-right-top {
	position: absolute;
	right: 0;
	top: 0;
  } 


  .bullet-group {
	list-style-position: inside;
  }

  .Keywords-group {
	list-style-position: inside;
  }


  .description ol, .description ul {
	padding-left:0rem !important;
  }



  
.f-wrap { margin-left: 2rem; margin-right: 2rem; padding: 1rem 0 2rem; }
.f-item { border-bottom: 1px solid rgba(8, 16, 1, 0.378); }
.f-item:last-child { border-bottom: none; }
.f-btn { width: 100%; background: none; border: none; cursor: pointer; padding: 1.25rem 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; text-align: left; }
.f-btn-title {  font-size: 1.1rem; font-weight: 500; letter-spacing: 0.01em; }
.f-icon { flex-shrink: 0; font-size: 1.1rem; color: #131a08; transition: transform 0.3s ease; }
.f-body { overflow: hidden; max-height: 0; transition: max-height 0.35s ease; }
.f-body-inner { padding: 0 0 1.5rem; font-size: 0.95rem; line-height: 1.8; }
.f-body-inner p { margin: 0 0 0.85rem; }
.f-body-inner p:last-child { margin: 0; }
.f-body-inner a {  text-decoration: underline; text-underline-offset: 3px; }
.f-body-inner strong { font-weight: 500;  }



  .benefits{list-style:none;padding:0;margin:24px 0;display:grid;gap:11px}
  .benefits li{display:flex;gap:12px;align-items:flex-start;font-size:15px}
  .benefits .ic{flex:0 0 22px;height:22px;border-radius:50%;background:var(--rose-soft);
    color:var(--rose);display:grid;place-items:center;font-size:12px;font-weight:700;margin-top:1px}

	.panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
    padding:22px;margin-top:8px;box-shadow:var(--shadow)}
  

.site-banner {
		border-radius: 9px;
		box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px;
}

.site-notice {
		background: var(--bs-kraft) !important;
		color: var(--bs-green-deep) !important;
		border-radius: 18px;
}

.site-notice-title {
		color: var(--bs-green-deep) !important;
		font-size: 1.6em;
		font-weight: bold;
}

.hero-image img{aspect-ratio:1/1;object-fit:cover;width:100%}

/* Home category tiles (full-bleed image + colour reveal on load) */
.cat-tile{position:relative;display:flex;flex-direction:column;justify-content:flex-end;aspect-ratio:4/5;border-radius:14px;overflow:hidden;text-decoration:none;padding:16px}
.cat-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.cat-tile:hover img{transform:scale(1.06)}
.cat-tile .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(30,33,22,.65),rgba(30,33,22,.05) 55%,transparent)}
.cat-tile .cat-name{position:relative;z-index:2;color:#fff;font-weight:600;font-size:1.15rem;line-height:1.2;text-shadow:0 1px 8px rgba(0,0,0,.35)}

/* Highlighted product group headers */
.highlight-header{text-align:center;padding:28px 12px 6px}
.highlight-header h3{font-family:"Fraunces",Georgia,serif;font-weight:600;color:var(--bs-green-deep);display:inline-block;margin:0 0 8px;padding-bottom:10px;border-bottom:3px solid var(--bs-rose)}
.highlight-header p{color:var(--bs-green);max-width:640px;margin:0 auto;font-size:.95rem}

/* Highlighted product group: single row, scrolls horizontally instead of wrapping (items keep their normal col-* width) */
.hp-slider{position:relative;padding:0 34px}
.hp-scroll-row{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;justify-content:flex-start;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--bs-rose) transparent}
.hp-scroll-row::-webkit-scrollbar{height:8px}
.hp-scroll-row::-webkit-scrollbar-track{background:transparent}
.hp-scroll-row::-webkit-scrollbar-thumb{background:var(--bs-rose);border-radius:4px}
.hp-scroll-row>[class*="col-"]{flex-shrink:0;scroll-snap-align:start}

/* Consistent item width below Bootstrap's sm breakpoint, where the col-* classes leave width unset
   (fixes cards/images rendering at different heights on phones) */
@media (max-width:575.98px){
    .hp-scroll-row>[class*="col-"]{width:78%!important;max-width:280px}
}

/* Left/right slider arrows */
.hp-arrow{position:absolute;top:38%;transform:translateY(-50%);z-index:2;width:36px;height:36px;border:none;border-radius:50%;background:var(--bs-dark);color:var(--bs-white);box-shadow:0 2px 6px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s}
.hp-arrow:hover{background:var(--bs-rose);color:#fff}
.hp-arrow:disabled{opacity:.3;cursor:default;pointer-events:none}
.hp-arrow-left{left:0}
.hp-arrow-right{right:0}
@media (max-width:575.98px){.hp-arrow{width:30px;height:30px}}

/* Highlighted product cards (large square-ish image, name/price below) */
.hp-card{display:flex;flex-direction:column;text-decoration:none}
.hp-image{position:relative;aspect-ratio:4/5;border-radius:14px;overflow:hidden}
.hp-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.hp-card:hover .hp-image img{transform:scale(1.06)}
.hp-name{margin-top:10px;font-weight:600;text-align:center;color:var(--bs-green-deep)}
.hp-price{text-align:center;color:var(--bs-rose);font-weight:600;font-size:.9rem}

    /* This element defines the size the iframe will take.
       In this example we want to have a ratio of 25:14 */
    .aspect-ratio {
      position: relative;
      width: 100%;
      height: 0;
      padding-bottom: 56%; /* The height of the item will now be 56% of the width. */
    }

    /* Adjust the iframe so it's rendered in the outer-width and outer-height of it's parent */
    .aspect-ratio iframe {
      position: absolute;
      width: 100%;
      height: 100%;
      left: 0;
      top: 0;
    }

/* Reviews / testimonial cards */
.review-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background-color: var(--palette-bright-white);
	border: 1px solid var(--palette-lightgray);
	border-radius: 14px;
	padding: 1.5rem 1.5rem 1.25rem;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
	transition: box-shadow .25s ease, transform .25s ease;
	overflow: hidden;
}

.review-card:hover {
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.09);
	transform: translateY(-2px);
}

.review-card-quote {
	position: absolute;
	top: 0.5rem;
	right: 0.9rem;
	font-size: 3rem;
	line-height: 1;
	color: var(--bs-green, var(--palette-green));
	opacity: 0.12;
	pointer-events: none;
}

.review-card-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-bottom: 0.9rem;
}

.review-avatar {
	flex: 0 0 auto;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--bs-green, var(--palette-green));
	color: var(--palette-bright-white);
	font-weight: 600;
	font-size: 1.4rem;
	letter-spacing: 0.02em;
}

.review-avatar-photo {
	object-fit: cover;
	background-color: var(--palette-lightgray);
}

.review-avatar-link {
	flex: 0 0 auto;
	display: block;
	border-radius: 50%;
	cursor: zoom-in;
	transition: opacity .2s ease;
}

.review-avatar-link:hover {
	opacity: 0.85;
}

.review-author-name {
	font-weight: 600;
	line-height: 1.2;
}

.review-stars {
	color: var(--palette-warningyellow);
	font-size: 0.8rem;
	line-height: 1;
	margin-top: 0.2rem;
}

.review-stars .bi-star {
	color: var(--palette-lightgray);
}

.review-author-meta {
	font-size: 0.8rem;
	color: var(--palette-gray);
}

.review-card-body {
	position: relative;
	flex: 1 1 auto;
	min-height: 8.4rem;
}

/* Force one consistent typographic style regardless of any formatting
   carried over in the stored review text (font, size, color, etc.) */
.review-card-body,
.review-card-body * {
	font-family: inherit !important;
	font-size: 0.98rem !important;
	font-weight: 400 !important;
	font-style: normal !important;
	color: var(--palette-black) !important;
	line-height: 1.55 !important;
	background: none !important;
}

.review-card-body p {
	margin: 0;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 6;
	overflow: hidden;
}

.review-card-footer {
	margin-top: 1rem;
	padding-top: 0.75rem;
	border-top: 1px solid var(--palette-lightgray);
	font-size: 0.85rem;
}

.review-card-footer a {
	color: var(--bs-rose, var(--palette-green));
	text-decoration: none;
	font-weight: 600;
}

.review-card-footer a:hover {
	text-decoration: underline;
}

@media (max-width: 576px) {
	.review-card {
		padding: 1.15rem 1.15rem 1rem;
	}

	.review-card-quote {
		font-size: 2.4rem;
	}

	.review-avatar {
		width: 56px;
		height: 56px;
		font-size: 1.1rem;
	}
}

/* Blog cards */
.blog-card {
	display: flex;
	flex-direction: column;
	background-color: var(--palette-bright-white);
	border: 1px solid var(--palette-lightgray);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
	transition: box-shadow .25s ease, transform .25s ease;
}

.blog-card:hover {
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.09);
	transform: translateY(-2px);
}

.blog-card-image {
	position: relative;
	display: block;
	aspect-ratio: 2.4 / 1;
	background-color: var(--palette-lightgray);
	overflow: hidden;
}

.blog-card-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	opacity: 0;
	transition: transform .5s ease, opacity .3s ease;
}

.blog-card:hover .blog-card-image img {
	transform: scale(1.05);
}

.blog-card-body {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 1.25rem 1.5rem 1.5rem;
}

.blog-card-date {
	font-size: 0.8rem;
	color: var(--palette-gray);
	margin-bottom: 0.3rem;
}

.blog-card-title {
	display: block;
	font-family: "Fraunces", Georgia, serif;
	font-weight: 600;
	font-size: 1.3rem;
	color: var(--bs-green, var(--palette-green));
	text-decoration: none;
	margin-bottom: 0.6rem;
	line-height: 1.25;
}

.blog-card-title:hover {
	text-decoration: underline;
}

.blog-card-summary {
	color: var(--palette-black);
	font-size: 0.98rem;
	line-height: 1.55;
	flex: 1 1 auto;
	margin: 0 0 1.1rem;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
}

.blog-card-cta {
	align-self: flex-start;
}

@media (max-width: 576px) {
	.blog-card-body {
		padding: 1.1rem 1.15rem 1.25rem;
	}

	.blog-card-title {
		font-size: 1.15rem;
	}
}