/* Shared storefront layout. Keep vendor/theme assets unchanged. */
.fetc-site { background: #fff; color: #342a23; }
/* The theme locks body scrolling for its dashboard; storefront pages scroll normally. */
body.fetc-site:not(.modal-open) { overflow-y: auto; }
.fetc-site #app { min-height: 100vh; padding: 0 !important; }
.fetc-site #content { margin: 0 !important; padding: 0 !important; height: auto !important; overflow: visible !important; }
.fetc-site .site-header { background: #fff; border-bottom: 1px solid #e9e1d8; }
.site-header-inner, .site-page, .site-footer-inner { width: min(100%, 1320px); margin-inline: auto; padding-inline: clamp(16px, 3vw, 40px); }
.site-header-inner { min-height: 88px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.site-brand img { width: 190px; max-width: 100%; height: auto; }
.site-brand { display: block; text-decoration: none; border: 0; }
.fetc-site #holidayHeader { position: static !important; height: auto !important; }
.fetc-site .site-nav { position: relative; background: #fff; border-bottom: 1px solid #e9e1d8; z-index: 1030; }
.site-nav .menu { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px; padding: 10px 16px; margin: 0; }
.site-nav .menu-item { position: relative; padding: 0 !important; }
.site-nav .menu-link, .site-nav .text-link { display: flex; align-items: center; padding: 12px 18px; min-height: 44px; color: #342a23; text-decoration: none; font-size: 14px; font-weight: 600; border-radius: 8px; }
.site-nav a:hover { background: #faf6f1; color: #805637; }
.site-nav .menu-control { display: none; }
.fetc-site a:focus-visible, .fetc-site button:focus-visible { outline: 3px solid #996c49; outline-offset: 3px; }
.site-page { padding-block: clamp(24px, 4vw, 48px); min-height: 40vh; }
.site-page > .container, .site-page > .container-fluid { max-width: 100%; padding-inline: 0; }
.site-page img { max-width: 100%; }
.site-page .main-title, .site-page .text-title { font-size: clamp(26px, 4vw, 48px); line-height: 1.15; }
.site-page .sub-text, .site-page .page-header { line-height: 1.3; }
.site-page .card-text, .site-page .banner-text { line-height: 1.65; }
.site-page .card-img-overlay { overflow-wrap: anywhere; }
.site-page .row > * { min-width: 0; }
.site-page .row, .site-footer-inner .row { --bs-gutter-x: 24px; }
.site-page > .row, .site-page > .container > .row, .site-contactus > .container > .col-12 > .row { margin-inline: 0; }
.site-page iframe { display: block; max-width: 100%; }
.site-page #flipBook { width: 100% !important; height: min(75vh, 850px) !important; min-height: 450px; }
.fetc-site #footer { position: static !important; display: block; margin: 0 !important; width: 100%; height: auto !important; padding: 40px 0 24px; border-top: 1px solid #e9e1d8; background: #faf6f1; }
.site-footer-inner .ftr-subtext { line-height: 1.65; }
.site-footer-inner a { overflow-wrap: anywhere; }
.site-footer-inner img { width: 24px !important; height: 24px; object-fit: contain; }
.site-footer-inner .footercredits_holder { padding-top: 8px; }
/* Products: a stable sidebar and a flexible product grid. */
.site-products #pos { height: auto !important; min-height: 0; overflow: visible; }
.site-products .pos-container { display: grid !important; grid-template-columns: 230px minmax(0, 1fr); height: auto !important; padding: 0; }
.site-products .pos-menu { position: static !important; width: auto !important; height: auto !important; border-right: 1px solid #e9e1d8; padding-right: 16px; }
.site-products .product-content { min-width: 0; width: auto !important; margin: 0 !important; padding-left: 24px; }
.site-products .product-content > div { margin: 0 !important; }
.site-products .nav-container, .site-products .nav { margin: 0 !important; padding: 0 !important; }
.site-products .category-card .card-body { padding: 12px; font-size: 14px !important; }
.site-products .page-header { margin: 0 !important; font-size: clamp(22px, 3vw, 32px); }
.site-products .page-header small { display: block; margin-top: 8px; font-size: 15px; }
.site-products .line-separator { display: none; }
.site-products .product-content .row.gx-4 { margin: 24px -8px 0 !important; padding-bottom: 0 !important; }
.site-products .product-content .row.gx-4 > div { padding-inline: 8px; }
.site-products .product-card { border: 1px solid #e9e1d8 !important; border-radius: 12px !important; overflow: hidden; }
.site-products .product-card .img { width: 100% !important; height: 180px !important; background-size: contain; background-position: center; background-repeat: no-repeat; margin: 12px 0; }
.site-products .product-card .title { line-height: 1.4; overflow-wrap: anywhere; }
/* Company, contact, and events. */
.site-aboutus .col-12.mx-3 { margin-inline: 0 !important; }
.site-aboutus .card[style*="max-height"] { max-height: none !important; }
.site-aboutus .fs-4 { font-size: clamp(16px, 2vw, 23px) !important; line-height: 1.65; }
.site-contactus .contact-details { padding: clamp(20px, 3vw, 40px); }
.site-contactus .contact-details > .mt-3 > .row { margin: 20px 0 !important; flex-wrap: nowrap; gap: 12px; }
.site-contactus .contact-details > .mt-3 > .row > :first-child { width: 44px !important; padding: 0 !important; flex-shrink: 0; }
.site-contactus .contact-details > .mt-3 > .row > :last-child { flex: 1; width: auto; min-width: 0; }
.site-contactus .contact-text { font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.site-contactus .contact-text .text-nowrap { white-space: normal !important; display: block; }
.site-contactus .contact-phone-list { display: grid; gap: 10px; margin: 0; }
.site-contactus .contact-phone-list > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.site-contactus .contact-phone-list dt, .site-contactus .contact-phone-list dd { margin: 0; }
.site-contactus .contact-phone-list a { color: inherit; text-decoration: none; white-space: nowrap; }
.site-contactus .contact-phone-list a:hover { text-decoration: underline; }
.site-contactus iframe { width: 100% !important; height: 420px; border-radius: 12px; }
.site-contactus .card .col-4 img { max-width: 72px; }
.site-event .event-highlights { margin: 24px -8px 0; position: static; }
.site-event .event-highlights > div { width: 25%; padding-inline: 8px; }
.site-event .event-highlights .event-card { width: 100% !important; height: auto !important; }
.site-event .event-highlights img { aspect-ratio: 4 / 3; object-fit: cover; }
.site-event .event-highlights .card-body { padding: 14px !important; }
.site-event .event-highlight-title { margin: 0; padding: 12px 8px; width: 100%; background: #d6a783; color: #17120e; font-size: clamp(14px, 1.4vw, 20px); font-weight: 700; line-height: 1.4; text-align: center; }
/* Category photos share the same square frame at every slider width. */
.site-index .featured-categories .slider-container { grid-auto-columns: calc((100% - 32px) / 3); align-items: start; padding-inline: 0; }
.site-index .featured-category-card { width: 100%; min-width: 0; }
.site-index .featured-category-media { aspect-ratio: 1 / 1; overflow: hidden; }
.site-index .featured-category-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.site-index .featured-category-card .card-body { text-align: center; justify-content: center; }
.site-index .featured-category-card .md-text { overflow-wrap: anywhere; }
.site-event .px-7 { padding-inline: 16px !important; }
.fetc-site #ModalPage .modal-dialog { width: auto !important; max-width: 1100px !important; margin: 24px auto; padding-inline: 12px; }
.fetc-site #ModalPage .modal-content { margin: 0 !important; }
.fetc-site #ModalPage .modal-body { margin: 0 !important; padding: 20px !important; }
.fetc-site #ModalPage .quantity-selector { margin-inline: 0 !important; }
.fetc-site #ModalPage .size { height: auto !important; min-height: 23px; line-height: 1.5; }
.fetc-site #ModalPage .col-md-9.col-xl-6 { flex-wrap: wrap; gap: 8px; }
@media (min-width: 768px) { .fetc-site .site-nav.collapse { display: block !important; } }
@media (max-width: 991px) {
    .site-index .featured-categories .slider-container { grid-auto-columns: calc((100% - 16px) / 2); }
    .site-products .pos-container { grid-template-columns: minmax(0, 1fr); }
    .site-products .product-content { padding-left: 0; }
    .site-products .product-content .row.gx-4 > div { width: 50%; }
}
@media (max-width: 767px) {
    .site-index .featured-categories .slider-container { grid-auto-columns: calc(100% - 32px); }
    .site-header-inner { min-height: 72px; }
    .site-brand img { width: 155px; }
    .site-nav .menu { flex-direction: column; align-items: stretch; padding: 12px 16px; }
    .site-nav .dropdown-menu { position: static !important; transform: none !important; width: 100%; }
    .site-page .mt-5, .site-page .my-5 { margin-top: 28px !important; }
    .site-page .mb-5, .site-page .my-5 { margin-bottom: 28px !important; }
    .site-page .mx-5 { margin-inline: 0 !important; }
    .site-page .px-5 { padding-inline: 16px !important; }
    .site-page .home-image, .site-page .event-image { min-height: 190px; object-fit: cover; }
    .site-page .card-img-overlay { margin: 0 !important; padding: 16px !important; }
    .site-page .card-img-overlay .card-text { font-size: 13px; padding-bottom: 0 !important; }
    .site-index .banner-text, .site-aboutus .banner-text { font-size: 16px !important; }
    .site-index .slider-container .card { width: 100% !important; }
    .site-contactus .contact-details { padding: 0; }
    .site-contactus .main-title { margin-top: 0 !important; }
    .site-contactus .row.mx-2 { margin-inline: -12px !important; }
    .site-contactus iframe { height: 300px; }
    .site-event .event-highlights > div { width: 50%; }
    .site-footer-inner { text-align: left; }
    .site-footer-inner .text-center { text-align: left !important; }
    .fetc-site #ModalPage .modal-dialog { margin-block: 12px; }
    .fetc-site #ModalPage .modal-body { padding: 16px !important; }
    .fetc-site #ModalPage .modal-pos-product-img img { display: block; margin-inline: auto; max-height: 240px; object-fit: contain; }
    .fetc-site #ModalPage .row.justify-content-center > div { width: 50% !important; }
}
@media (max-width: 399px) { .site-products .product-content .row.gx-4 > div { width: 100%; } }
@media (prefers-reduced-motion: reduce) { .fetc-site .snowflake, .fetc-site #penguin-wrapper { display: none !important; } }
