/*
Theme Name: Bufala Gelato
Theme URI: https://bufalagelato.com/
Author: DSDC
Author URI: https://dsdc.gr/
Description: Standalone WooCommerce theme for Bufala Gelato. Rebuilt from the original bufalagelato.com (sweettooth / WPBakery) with its real palette, typography and layout, but with no page-builder dependency. Bilingual EL/EN. Pairs with the "Bufala Gelato Core" plugin.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bufala-gelato
Tags: e-commerce, food-and-drink, dark-mode-support, custom-colors, custom-logo, custom-menu, featured-images, translation-ready, two-columns, right-sidebar
WC requires at least: 7.0
WC tested up to: 9.9
*/

/* =========================================================
   1. Design tokens — values taken from the original site's
      generated theme stylesheet (style_dynamic.css).
   ========================================================= */
:root{
	--bg-brand:        #fcb115;  /* primary amber            */
	--bg-brand-hover:  #fcc214;  /* menu hover               */
	--bg-gold:         #c9a74d;  /* secondary gold           */
	--bg-frame:        #e2b434;  /* paspartu frame           */

	--bg-body:         #303030;  /* content background       */
	--bg-bar:          #1c1c1c;  /* header / footer          */
	--bg-deep:         #262626;  /* alternating section      */
	--bg-black:        #111111;

	--bg-h1:           #f9f9f9;
	--bg-heading:      #ffffff;
	--bg-text:         #f2f2f2;
	--bg-muted:        #b9b3a8;
	--bg-line:         rgba(255,255,255,.14);

	--bg-font: "Roboto Condensed", "Helvetica Neue", Arial, "Noto Sans", sans-serif;

	--bg-radius:       6px;
	--bg-radius-lg:    10px;
	--bg-shadow:       0 22px 50px -24px rgba(0,0,0,.85);
	--bg-shadow-sm:    0 10px 26px -16px rgba(0,0,0,.8);

	--bg-wrap:         1300px;   /* eltdf-grid-1300          */
	--bg-wrap-narrow:  860px;
	--bg-gutter:       clamp(18px, 4vw, 40px);
	--bg-section-y:    clamp(52px, 7vw, 100px);

	--bg-topbar-h:     76px;
	--bg-menu-h:       60px;
}

/* =========================================================
   2. Reset / base
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--bg-menu-h) + 20px)}
@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

body{
	margin:0;
	background:var(--bg-body);
	color:var(--bg-text);
	font-family:var(--bg-font);
	font-size:16px;
	font-weight:400;
	line-height:1.7;
	-webkit-font-smoothing:antialiased;
	overflow-wrap:break-word;
}

img,svg,video{max-width:100%;height:auto;display:block}

a,p a{color:var(--bg-brand);font-weight:700;text-decoration:none}
a:hover,p a:hover{color:var(--bg-heading)}
:focus-visible{outline:3px solid var(--bg-brand);outline-offset:3px;border-radius:3px}
::selection{background:var(--bg-brand);color:var(--bg-bar)}

h1,h2,h3,h4,h5,h6{font-family:var(--bg-font);line-height:1.1;margin:0 0 .5em;text-wrap:balance}
h1{color:var(--bg-h1);font-weight:700;font-size:clamp(2.2rem,5.6vw,4rem);text-transform:uppercase}
h2{color:var(--bg-heading);font-weight:700;font-size:clamp(1.75rem,4.2vw,2.9rem);text-transform:uppercase}
h3{color:var(--bg-heading);font-weight:700;font-size:clamp(1.25rem,2.4vw,1.8rem)}
h4,h5,h6{color:var(--bg-brand);font-weight:700}
h4{font-size:1.15rem}
h5{font-size:1rem}
h6{font-size:.92rem;letter-spacing:.08em;text-transform:uppercase}
h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{color:var(--bg-heading)}

p{color:var(--bg-text);margin:0 0 1.15em}
p:last-child{margin-bottom:0}
ul,ol{padding-inline-start:1.25em}
blockquote{margin:0 0 1.5em;padding:.4em 0 .4em 1.2em;border-inline-start:4px solid var(--bg-brand);font-size:1.08em}
hr{border:0;border-top:1px solid var(--bg-line);margin:2.5rem 0}
table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}
th,td{padding:.7em .8em;border-bottom:1px solid var(--bg-line);text-align:start}
th{color:var(--bg-heading)}
code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}
pre{overflow-x:auto;background:var(--bg-black);color:var(--bg-text);padding:1.1em;border-radius:var(--bg-radius)}

.screen-reader-text{
	position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
	overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip-link{
	position:absolute;top:-100px;left:16px;z-index:9999;background:var(--bg-brand);color:var(--bg-bar);
	padding:12px 18px;border-radius:0 0 8px 8px;font-weight:700;
}
.skip-link:focus{top:0;color:var(--bg-bar)}

/* =========================================================
   3. Layout helpers
   ========================================================= */
.bg-wrap{width:100%;max-width:var(--bg-wrap);margin-inline:auto;padding-inline:var(--bg-gutter)}
.bg-wrap--narrow{max-width:var(--bg-wrap-narrow)}
.bg-section{padding-block:var(--bg-section-y)}
.bg-section--tight{padding-block:clamp(34px,4.5vw,60px)}
.bg-section--bar{background:var(--bg-bar)}
.bg-section--deep{background:var(--bg-deep)}
.bg-section--black{background:var(--bg-black)}
.bg-grid{display:grid;gap:clamp(16px,2.2vw,28px)}
.bg-grid--2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.bg-grid--3{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.bg-grid--4{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}
.bg-center{text-align:center}
.bg-eyebrow{
	display:inline-block;font-size:.8rem;font-weight:700;letter-spacing:.22em;
	text-transform:uppercase;color:var(--bg-brand);margin-bottom:.9rem;
}
.bg-lede{font-size:clamp(1.02rem,1.6vw,1.25rem);color:var(--bg-text);max-width:64ch}
.bg-center .bg-lede{margin-inline:auto}

/* =========================================================
   4. Buttons
   ========================================================= */
.bg-btn,
.wp-block-button__link,
button,input[type=submit],input[type=button],
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,.woocommerce a.button.alt,.woocommerce button.button.alt{
	display:inline-flex;align-items:center;justify-content:center;gap:.5em;
	font-family:inherit;font-size:.9rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
	padding:.9em 2em;border-radius:var(--bg-radius);border:2px solid var(--bg-brand);
	background:var(--bg-brand);color:var(--bg-bar);cursor:pointer;line-height:1.1;
	transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.bg-btn:hover,button:hover,input[type=submit]:hover,
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{
	background:var(--bg-brand-hover);border-color:var(--bg-brand-hover);color:var(--bg-bar);transform:translateY(-2px)
}
.bg-btn--ghost{background:transparent;color:var(--bg-brand);border-color:var(--bg-brand)}
.bg-btn--ghost:hover{background:var(--bg-brand);color:var(--bg-bar)}
.bg-btn--light{background:var(--bg-heading);border-color:var(--bg-heading);color:var(--bg-bar)}
.bg-btn--light:hover{background:var(--bg-brand);border-color:var(--bg-brand);color:var(--bg-bar)}
.bg-btn--sm{padding:.6em 1.3em;font-size:.78rem}

/* =========================================================
   5. Top bar
   ========================================================= */
.bg-topbar{background:var(--bg-bar);border-bottom:1px solid rgba(255,255,255,.07);font-size:.86rem}
.bg-topbar__inner{
	min-height:var(--bg-topbar-h);display:flex;align-items:center;
	gap:clamp(12px,2.4vw,28px);flex-wrap:wrap;justify-content:space-between;padding-block:.6rem;
}
.bg-topbar__contact{display:flex;align-items:center;gap:clamp(12px,2vw,26px);flex-wrap:wrap}
.bg-topbar a{color:var(--bg-brand);font-weight:700}
.bg-topbar a:hover{color:var(--bg-heading)}
.bg-topbar__links{display:flex;align-items:center;gap:clamp(10px,1.8vw,22px);flex-wrap:wrap;list-style:none;margin:0;padding:0}
.bg-topbar__links a{font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}
.bg-topbar__right{display:flex;align-items:center;gap:clamp(10px,1.8vw,22px);flex-wrap:wrap}

.bg-langs{display:flex;align-items:center;gap:.45rem;list-style:none;margin:0;padding:0}
.bg-langs a{display:flex;align-items:center;gap:.3rem;opacity:.55;font-size:.78rem;text-transform:uppercase}
.bg-langs img{width:18px;height:auto;border-radius:2px}
.bg-langs a:hover,.bg-langs .is-current a,.bg-langs .current-lang a{opacity:1}

@media (max-width:760px){
	.bg-topbar__inner{justify-content:center;text-align:center}
	.bg-topbar__links{justify-content:center}
}

/* =========================================================
   6. Header / navigation
   ========================================================= */
.bg-header{position:sticky;top:0;z-index:140;background:var(--bg-bar);border-bottom:1px solid #000}
.bg-header__inner{display:flex;align-items:center;gap:clamp(14px,2.2vw,30px);min-height:var(--bg-menu-h)}

.bg-brand{display:flex;align-items:center;flex:0 0 auto}
.bg-brand img{max-height:54px;width:auto}
.bg-brand__text{color:var(--bg-heading);font-weight:700;font-size:1.2rem;letter-spacing:.02em;text-transform:uppercase}
.bg-brand__text em{color:var(--bg-brand);font-style:normal}

.bg-nav{margin-inline-start:auto}
.bg-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:0}
.bg-nav li{position:relative}
.bg-nav > ul > li > a{
	display:flex;align-items:center;height:var(--bg-menu-h);
	padding:0 1px;margin:0 3px;color:var(--bg-brand);
	font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;
}
.bg-nav > ul > li > a:hover{color:var(--bg-brand-hover)}
.bg-nav > ul > li.current-menu-item > a,
.bg-nav > ul > li.current-menu-ancestor > a,
.bg-nav > ul > li.current_page_item > a{color:var(--bg-brand);box-shadow:inset 0 -3px 0 var(--bg-brand)}

.bg-nav .sub-menu{
	position:absolute;inset-inline-start:0;top:100%;min-width:246px;display:none;
	flex-direction:column;background:var(--bg-bar);border:1px solid var(--bg-line);
	border-radius:0 0 var(--bg-radius) var(--bg-radius);box-shadow:var(--bg-shadow-sm);padding:.5rem 0;
}
.bg-nav li:hover > .sub-menu,
.bg-nav li:focus-within > .sub-menu{display:flex}
.bg-nav .sub-menu a{
	display:block;padding:.55em 1.2em;color:var(--bg-brand);font-size:13px;font-weight:700;
}
.bg-nav .sub-menu a:hover{color:var(--bg-brand-hover);background:rgba(252,177,21,.08)}
.bg-nav .sub-menu .sub-menu{inset-inline-start:100%;top:0;border-radius:var(--bg-radius)}

.bg-header__actions{display:flex;align-items:center;gap:.7rem;flex:0 0 auto;margin-inline-start:auto}
.bg-nav + .bg-header__actions{margin-inline-start:clamp(10px,1.6vw,22px)}

.bg-cart{display:inline-flex;align-items:center;gap:.35rem;color:var(--bg-brand);font-size:.84rem;font-weight:700;text-transform:uppercase}
.bg-cart__count{
	min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--bg-brand);color:var(--bg-bar);
	font-size:.68rem;display:inline-flex;align-items:center;justify-content:center;
}

.bg-burger{
	display:none;width:42px;height:42px;border-radius:var(--bg-radius);border:1px solid var(--bg-line);
	background:transparent;align-items:center;justify-content:center;padding:0;
}
.bg-burger span{display:block;width:20px;height:2px;background:var(--bg-brand);position:relative}
.bg-burger span::before,.bg-burger span::after{content:"";position:absolute;left:0;width:20px;height:2px;background:var(--bg-brand)}
.bg-burger span::before{top:-6px}
.bg-burger span::after{top:6px}

@media (max-width:1100px){
	.bg-burger{display:inline-flex}
	.bg-nav{
		position:fixed;inset:auto 0 auto 0;top:var(--bg-menu-h);background:var(--bg-bar);
		border-bottom:1px solid var(--bg-line);padding:.5rem var(--bg-gutter) 1.4rem;
		max-height:calc(100dvh - var(--bg-menu-h));overflow-y:auto;display:none;margin:0;
	}
	.bg-nav.is-open{display:block}
	.bg-nav ul{flex-direction:column;align-items:stretch}
	.bg-nav li{border-bottom:1px solid rgba(255,255,255,.07)}
	.bg-nav > ul > li > a{height:auto;padding:.9em 0;font-size:1rem;box-shadow:none}
	.bg-nav .sub-menu{
		position:static;display:flex;box-shadow:none;border:0;padding:0 0 .6rem 1.1rem;
		min-width:0;background:transparent
	}
	.bg-nav .sub-menu a{padding:.5em 0;font-size:.92rem}
	.bg-nav .sub-menu li{border:0}
}

/* =========================================================
   7. Hero / slider
   ========================================================= */
.bg-hero{position:relative;overflow:hidden;background:var(--bg-black)}
.bg-hero__slide{position:relative;display:grid;align-items:center;min-height:clamp(420px,62vw,720px)}
.bg-hero__slide[hidden]{display:none}
.bg-hero__media{position:absolute;inset:0}
.bg-hero__media img{width:100%;height:100%;object-fit:cover}
.bg-hero__slide::after{
	content:"";position:absolute;inset:0;
	background:linear-gradient(90deg,rgba(17,17,17,.82) 0%,rgba(17,17,17,.45) 45%,rgba(17,17,17,.15) 100%);
}
.bg-hero__inner{position:relative;z-index:2;width:100%;padding-block:clamp(40px,7vw,90px)}
.bg-hero h1,.bg-hero h2{color:var(--bg-heading);max-width:18ch;margin-bottom:.35em}
.bg-hero__sub{font-size:clamp(1rem,1.9vw,1.35rem);max-width:46ch;color:var(--bg-text);margin-bottom:1.6rem}
.bg-hero__actions{display:flex;flex-wrap:wrap;gap:.8rem}
.bg-hero__dots{
	position:absolute;z-index:3;bottom:20px;left:0;right:0;display:flex;gap:.5rem;
	justify-content:center;list-style:none;margin:0;padding:0;
}
.bg-hero__dots button{
	width:11px;height:11px;padding:0;border-radius:50%;border:2px solid var(--bg-brand);
	background:transparent;
}
.bg-hero__dots button[aria-current="true"]{background:var(--bg-brand)}

/* Interior page header */
.bg-pagehead{background:var(--bg-bar);padding-block:clamp(46px,6.5vw,88px);position:relative;overflow:hidden}
.bg-pagehead__media{position:absolute;inset:0;opacity:.28}
.bg-pagehead__media img{width:100%;height:100%;object-fit:cover}
.bg-pagehead__inner{position:relative;z-index:2}
.bg-pagehead p{color:var(--bg-muted);max-width:62ch;margin:0}
.bg-breadcrumbs{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--bg-muted);margin-bottom:.9rem}
.bg-breadcrumbs a{color:var(--bg-muted);font-weight:400}
.bg-breadcrumbs a:hover{color:var(--bg-brand)}

/* =========================================================
   8. Tiles / cards
   ========================================================= */
.bg-tile{
	position:relative;display:block;border-radius:var(--bg-radius-lg);overflow:hidden;
	background:var(--bg-black);min-height:clamp(280px,32vw,400px);box-shadow:var(--bg-shadow);isolation:isolate;
}
.bg-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.3,1)}
.bg-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(17,17,17,.05) 25%,rgba(17,17,17,.9) 100%)}
.bg-tile:hover img{transform:scale(1.06)}
.bg-tile__body{
	position:relative;z-index:2;padding:clamp(20px,2.8vw,32px);display:flex;flex-direction:column;
	justify-content:flex-end;height:100%;min-height:inherit;
}
.bg-tile__title{
	color:var(--bg-brand);font-size:clamp(1.15rem,2.1vw,1.6rem);font-weight:700;
	text-transform:uppercase;letter-spacing:.03em;margin:0 0 .3em;
}
.bg-tile__text{color:var(--bg-heading);font-size:.98rem;margin:0}
.bg-tile__more{margin-top:.9rem;font-size:.75rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--bg-heading)}

.bg-card{
	background:var(--bg-bar);border:1px solid var(--bg-line);border-radius:var(--bg-radius-lg);
	overflow:hidden;box-shadow:var(--bg-shadow-sm);display:flex;flex-direction:column;height:100%;
}
.bg-card__media{aspect-ratio:4/3;background:var(--bg-black)}
.bg-card__media img{width:100%;height:100%;object-fit:cover}
.bg-card__body{padding:clamp(16px,2vw,24px);display:flex;flex-direction:column;gap:.5rem;flex:1}
.bg-card__title{font-size:1.15rem;margin:0;color:var(--bg-heading)}
.bg-card__title a{color:var(--bg-brand)}
.bg-card__title a:hover{color:var(--bg-heading)}
.bg-card__meta{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bg-muted);font-weight:700}
.bg-card__foot{margin-top:auto;padding-top:.7rem}

.bg-store__addr{font-style:normal;color:var(--bg-muted);font-size:.95rem}
.bg-store__list{list-style:none;margin:.4rem 0 0;padding:0;font-size:.92rem;color:var(--bg-muted)}
.bg-store__list li{padding:.15rem 0}

.bg-flavours{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}
.bg-flavours li{
	border:1px solid var(--bg-line);background:var(--bg-bar);border-radius:999px;
	padding:.4em 1.05em;font-size:.88rem;font-weight:700;color:var(--bg-brand);
}

/* =========================================================
   9. Split feature
   ========================================================= */
.bg-split{display:grid;gap:clamp(24px,4vw,60px);align-items:center;grid-template-columns:1fr}
@media (min-width:900px){
	.bg-split{grid-template-columns:1fr 1fr}
	.bg-split--reverse .bg-split__media{order:2}
}
.bg-split__media img{width:100%;border-radius:var(--bg-radius-lg)}

/* Delivery CTA */
.bg-delivery{display:flex;align-items:center;gap:clamp(18px,3vw,40px);flex-wrap:wrap;justify-content:center;text-align:center}
.bg-delivery__icon{width:clamp(84px,10vw,132px);flex:0 0 auto}
.bg-delivery h2{margin-bottom:.3em}
.bg-delivery h2 span{color:var(--bg-brand);display:block}

/* Store map */
.bg-storemap{max-width:720px;margin-inline:auto}
.bg-storemap img{width:100%}

/* =========================================================
   10. Footer
   ========================================================= */
.bg-footer{background:var(--bg-bar);color:var(--bg-muted);padding-block:clamp(44px,6vw,78px) 0}
.bg-footer a{color:var(--bg-brand)}
.bg-footer a:hover{color:var(--bg-heading)}
.bg-footer h3{color:var(--bg-heading);font-size:.95rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:1rem}
.bg-footer__cols{display:grid;gap:clamp(26px,4vw,48px);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.bg-footer ul{list-style:none;margin:0;padding:0}
.bg-footer li{padding:.22rem 0}
.bg-footer__logo img{max-width:230px;margin-bottom:1.2rem}

.bg-socials{display:flex;gap:.7rem;margin-top:1.1rem;flex-wrap:wrap}
.bg-socials a{display:block;width:40px;height:40px;transition:transform .2s ease,opacity .2s ease;opacity:.9}
.bg-socials a:hover{transform:translateY(-3px);opacity:1}
.bg-socials img{width:100%;height:100%;object-fit:contain}

.bg-footer__bar{
	margin-top:clamp(32px,4.5vw,56px);border-top:1px solid rgba(255,255,255,.1);
	padding-block:1.4rem;display:flex;flex-wrap:wrap;gap:.7rem 1.6rem;
	align-items:center;justify-content:space-between;font-size:.84rem;
}
.bg-footer__legal{display:flex;gap:1.2rem;flex-wrap:wrap;list-style:none;margin:0;padding:0}
.bg-footer__legal a{font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}
.bg-credit{color:var(--bg-muted);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}

/* =========================================================
   11. Posts, archives, comments
   ========================================================= */
.bg-entry{max-width:var(--bg-wrap-narrow);margin-inline:auto}
.bg-entry__meta{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bg-muted);margin-bottom:1.4rem}
.bg-entry__thumb{border-radius:var(--bg-radius-lg);overflow:hidden;margin:0 0 2rem;box-shadow:var(--bg-shadow)}
.bg-entry .alignwide{max-width:min(100%,1100px);margin-inline:auto}
.bg-entry .alignfull{width:100vw;max-width:100vw;margin-inline:calc(50% - 50vw)}
.alignleft{float:left;margin:.4rem 1.6rem 1.2rem 0}
.alignright{float:right;margin:.4rem 0 1.2rem 1.6rem}
.aligncenter{margin-inline:auto}
.wp-caption-text,figcaption{font-size:.84rem;color:var(--bg-muted);margin-top:.5rem;text-align:center}

.bg-pagination{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:center;margin-top:3rem}
.bg-pagination .page-numbers{
	display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;
	padding:0 .7em;border-radius:var(--bg-radius);border:1px solid var(--bg-line);
	background:var(--bg-bar);color:var(--bg-brand);font-weight:700
}
.bg-pagination .page-numbers.current,.bg-pagination .page-numbers:hover{background:var(--bg-brand);border-color:var(--bg-brand);color:var(--bg-bar)}

.comment-list{list-style:none;padding:0;margin:0 0 2rem}
.comment-list ul.children{list-style:none;padding-inline-start:clamp(14px,3vw,34px)}
.comment-body{background:var(--bg-bar);border:1px solid var(--bg-line);border-radius:var(--bg-radius);padding:1.1rem 1.3rem;margin-bottom:1rem}

/* =========================================================
   12. Forms
   ========================================================= */
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=password],
input[type=search],input[type=number],input[type=date],select,textarea{
	width:100%;font:inherit;color:var(--bg-text);background:var(--bg-black);
	border:1px solid var(--bg-line);border-radius:var(--bg-radius);
	padding:.8em 1em;transition:border-color .2s,box-shadow .2s
}
input::placeholder,textarea::placeholder{color:var(--bg-muted);opacity:.7}
input:focus,select:focus,textarea:focus{border-color:var(--bg-brand);box-shadow:0 0 0 3px rgba(252,177,21,.2);outline:none}
textarea{min-height:150px;resize:vertical}
label{display:block;color:var(--bg-heading);font-weight:700;font-size:.86rem;margin-bottom:.35rem}
.bg-field{margin-bottom:1.1rem}
.bg-field--inline{display:flex;gap:.6rem;flex-wrap:wrap}
.bg-field--inline input{flex:1 1 220px;width:auto}
.bg-form__row{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.bg-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.bg-notice{padding:.9em 1.1em;border-radius:var(--bg-radius);margin-bottom:1.2rem;font-weight:700}
.bg-notice--ok{background:rgba(252,177,21,.14);color:var(--bg-brand);border:1px solid var(--bg-brand)}
.bg-notice--err{background:rgba(207,46,46,.16);color:#ff9d9d;border:1px solid #cf2e2e}

/* =========================================================
   13. WooCommerce
   ========================================================= */
.woocommerce ul.products{display:grid;gap:clamp(16px,2.4vw,28px);grid-template-columns:repeat(auto-fit,minmax(225px,1fr));list-style:none;margin:0;padding:0}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product{
	width:auto!important;margin:0!important;float:none!important;background:var(--bg-bar);
	border:1px solid var(--bg-line);border-radius:var(--bg-radius-lg);overflow:hidden;
	box-shadow:var(--bg-shadow-sm);display:flex;flex-direction:column;text-align:center;padding-bottom:1.2rem
}
.woocommerce ul.products li.product a img{margin:0 0 1rem;aspect-ratio:1;object-fit:cover}
.woocommerce ul.products li.product .woocommerce-loop-product__title{
	color:var(--bg-heading);font-size:1.02rem!important;font-weight:700;padding:0 1rem .35rem!important;margin:0
}
.woocommerce ul.products li.product .price{color:var(--bg-brand);font-weight:700;font-size:1.05rem;margin-bottom:.8rem;display:block}
.woocommerce ul.products li.product .button{margin:auto 1rem 0}
.woocommerce span.onsale{
	background:var(--bg-brand);color:var(--bg-bar);border-radius:999px;font-weight:700;
	min-height:auto;min-width:auto;padding:.35em 1em;line-height:1.4;top:12px;left:12px;margin:0
}
.woocommerce div.product .product_title{color:var(--bg-heading);margin-bottom:.3em}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--bg-brand);font-size:1.6rem;font-weight:700}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 1.4rem;border-bottom:1px solid var(--bg-line)}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:none;border:0;border-radius:0;margin:0 1.4rem 0 0;padding:0}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{
	padding:.7em 0;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem;color:var(--bg-muted)
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--bg-brand);box-shadow:inset 0 -3px 0 var(--bg-brand)}
.woocommerce .quantity .qty{width:5.5em;text-align:center}
.woocommerce-message,.woocommerce-info,.woocommerce-error{
	border-top:0;border-radius:var(--bg-radius);background:var(--bg-bar);color:var(--bg-text);
	border:1px solid var(--bg-line);box-shadow:var(--bg-shadow-sm);padding:1em 1.2em 1em 3.2em
}
.woocommerce-message::before,.woocommerce-info::before,.woocommerce-error::before{top:1em;left:1.2em;color:var(--bg-brand)}
.woocommerce-message{border-inline-start:4px solid var(--bg-brand)}
.woocommerce .woocommerce-breadcrumb{font-size:.8rem;letter-spacing:.08em;color:var(--bg-muted);margin-bottom:1.6rem}
.woocommerce-cart table.cart,.woocommerce table.shop_table{
	border-radius:var(--bg-radius-lg);border-color:var(--bg-line);background:var(--bg-bar);overflow:hidden
}
.woocommerce .star-rating span{color:var(--bg-brand)}
.bg-shop-head{margin-bottom:2rem;display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;justify-content:space-between}

/* =========================================================
   14. Widgets & misc
   ========================================================= */
.widget{margin-bottom:2.2rem}
.widget-title{color:var(--bg-heading);font-size:.95rem;text-transform:uppercase;letter-spacing:.16em}
.widget ul{list-style:none;padding:0;margin:0}
.widget li{padding:.32rem 0;border-bottom:1px solid var(--bg-line)}
.bg-sidebar{position:sticky;top:calc(var(--bg-menu-h) + 20px)}
.bg-layout{display:grid;gap:clamp(28px,4vw,54px);grid-template-columns:1fr}
@media (min-width:1040px){.bg-layout--sidebar{grid-template-columns:minmax(0,1fr) 320px}}

.bg-map{border-radius:var(--bg-radius-lg);overflow:hidden;box-shadow:var(--bg-shadow);background:var(--bg-bar)}
.bg-map iframe{display:block;width:100%;border:0;min-height:420px}

.bg-anim{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.3,1)}
.bg-anim.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.bg-anim{opacity:1;transform:none}}
