/* Custom styles to work with Bootstrap */

/* General and font styling is now handled by Bootstrap */
html, body {
    height: 100%;
}

html {
    overflow-y: scroll;
}

body {
    display: flex;
    flex-direction: column;
    scroll-behavior: smooth;
    background-color: #005a85;
    color: #322c29;

    font-family: "Red Hat Text", sans-serif;
}

h1, h2, h3 {
    font-weight: 600;
}

h4, h5, h6 {
    font-weight: 500;
}

p {
    font-weight: 300;
}

main {
    flex: 1;
}

.image-col {
    flex: 0 0 48%;   /* adjust percentage here */
    max-width: 48%;  /* keeps column sizing consistent */
    padding: 0;
}

.contact-details {
    padding-top: 40px;
}

.contact-details li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 10px;
}

.contact-details li i {
    flex-shrink: 0;
    margin-top: 3px;
}

.content {
    padding-top:20px;
}

.product-price {
    padding-top: 10px;
}

.subsection-title,
.product-price,
.product-title {
    color: #fae598;
}

.text-col {
    flex: 0 0 52%;   /* adjust percentage here */
    max-width: 52%;
}

.image-text-right{
    background: #497d7f
}

/* Shared image behaviour */
.craft-image,
.product-detail-image {
    width: 100%;
    display: block;
}

/* Craft section */
.craft-section {
    background-color: white;
}

/* Homepage / gallery craft images */
.craft-image {
    max-height: 600px;
    object-fit: cover;
}

.product-detail-image {
    width: 100%;
    max-height: 600px;
    height: auto;
    object-fit: contain;
    margin: auto;
    cursor: zoom-in;
    transition: transform 0.15s ease;
}

.product-detail-image.zoomed {
    transform: scale(2);
    cursor: zoom-out;
}

/* Carousel alignment */
.carousel-item {
    text-align: center;
}

/* Thumbnails container */
.product-thumbnails-wrapper {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.product-thumbnails {
    flex-wrap: nowrap;
    gap: 10px;
}

/* Thumbnail images */
.product-thumb {
    flex: 0 0 auto;
    width: 80px;
    height: 80px;
    object-fit: cover;
    cursor: pointer;

    opacity: 0.6;
    border: 2px solid transparent;

    transition: opacity 0.2s ease, border-color 0.2s ease;
}

/* Thumbnail hover */
.product-thumb:hover {
    opacity: 1;
}

/* Active thumbnail */
.product-thumb.active-thumb {
    opacity: 1;
    border-color: #fae598;
}

/* Custom styles for gallery product cards */
.product-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

.product-image {
    width: 100%;
    max-height: 350px;
    height: auto;
    margin: auto;
    object-fit: cover;
    display: block;
}

#header-banner {
    position: relative;
    width: 100%;
    z-index: 1000;
}

.nav-link {
    font-size: x-large;
    letter-spacing: 1px;
    color: white;
    text-decoration: none;
    transition: color 0.2s ease;
}

/* Unvisited link */
.nav-link:link {
    color: white;
}

/* Visited link */
.nav-link:visited {
    color: white;
}

/* Hover (only on devices that support hover) */
@media (hover: hover) {
    .nav-link:hover {
        color: #fae598;
    }
}

/* Keyboard navigation */
.nav-link:focus-visible {
    color: #fae598;
    outline: 2px solid #fae598;
    outline-offset: 4px;
    border-radius: 2px;
}

/* Fallback for older browsers */
.nav-link:focus {
    color: #fae598;
}

/* While the link is being clicked/tapped */
.nav-link:active {
    color: #fae598;
}

/* Current page */
.nav-link.active,
.nav-link[aria-current="page"] {
    color: #fae598;
}

.override-bootstrap > a {
    text-decoration:none;
}

.homepage-shop-btn {
    margin-left: 7em;
    margin-right: 7em;
}

.btn-container {
    padding-top: 20px;
}

.custom-btn,
.email-btn {
    font-size: medium;
    background-color: #0487c6;
    color: #fff;
    padding: 10px;
    width: 100%;
    transition: transform 0.2s ease, box-shadow 0.2s ease;

    --bs-btn-bg: #0487c6; /* base background */
    --bs-btn-border-color: #0487c6;
    --bs-btn-background-hover: #0487c6;
    --bs-btn-active-bg: #0487c6;
    --bs-btn-active-border-color: #0487c6;

    --bs-btn-hover-color: #fbe671; /* darker shade for hover */
    --bs-btn-hover-background-color: #0487c6;
    --bs-btn-hover-bg: #0487c6;
    --bs-btn-hover-border-color: #0487c6;
    --bs-btn-active-color: #fbe671;

    --bs-gradient: none;
}

.email-btn:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}

/* Carousel controls on hover */
.carousel-control-prev-icon,
.carousel-control-next-icon {
    filter: invert(1);
    background-color: rgba(0, 0, 0, 0.5);
    border-radius: 50%;
    padding: 1.5rem;
    transition: background-color 0.3s ease;
}

.carousel-control-prev:hover .carousel-control-prev-icon,
.carousel-control-next:hover .carousel-control-next-icon {
    background-color: rgba(0, 0, 0, 0.8);
}

/* Updated CSS to fix the carousel image height issue and width */
.home-image-section {
    max-width: 100%; /* Limits the max-width of the entire carousel container */
    margin: 0 auto; /* Centers the container on the page */
}

.home-title-container {
    padding-left: 7rem;
    padding-right: 7rem;
}

.home-title {
    font-weight: 100;
    font-size: 2.5rem;
    font-style: italic;
    line-height: 1.2;
    text-align: center;
    color: white;
}

.home-image > img {
    display: block;
    width: 100%;
    object-fit: cover;
    object-position: 0 54%;
    height: 740px;
}

.section-heading {
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #333; /* The line */
    border-bottom-color: white;
}

.container {
    color: white;
}

.workshops-item > a {
    text-decoration: none;
    color: inherit;
}

.workshops-item > img {
    height: 220px;
    display: block;
}

.workshop-detail-post > img {
    height: 420px;
    display: block;
}

h2 {
    color: white;
}

h3 {
    color: white;
}
.offcanvas {
    background-color: #005a85;
    opacity: 70%;
    --bs-offcanvas-width: 50%;
}

.offcanvas .nav-link {
    color: white;
    font-size: 1.5rem;
    padding: 12px 0;
}

.offcanvas .nav-link:hover {
    color: #fae598;
}

.faq-item {
    padding-top: 2rem;
}

.faq-item > p {
    font-size: large;
}

.faq-item > p > a {
    color: inherit;
}

@media (max-width: 767px) {
    .craft-image, .carousel-item > img {
        height: auto;
    }
}

@media (max-width: 767px) {
    .product-card {
        transition: none;
    }
}

@media (max-width: 767px) {
    .home-image > img {
        object-position: 30%;
    }

    .home-title-container {
        padding-left: 0;
        padding-right: 0;
    }
}
