@font-face {
	font-family: "Noto Sans Thai";
	font-style: normal;
	font-weight: 100 900;
	font-stretch: 100%;
	font-display: swap;
	src: url("../fonts/NotoSansThai-variable.ttf") format("truetype");
}

.km15-brand { min-width: 0; font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.3; }
.km15-brand a { color: var(--km15-brand); font-weight: 700; text-decoration: none; white-space: nowrap; }
.km15-brand .custom-logo-link { display: block; }
.km15-brand img.custom-logo { display: block; width: auto; max-width: min(320px, 100%); max-height: 72px; }
.km15-header-inner { min-height: 84px; }
.km15-header-contact .km15-button { min-height: 48px; padding-inline: 16px; white-space: nowrap; }
.km15-menu-toggle { display: none; }
.km15-primary-nav { min-width: 0; }

.km15-menu-toggle:focus-visible, .km15-button:focus-visible { outline: 3px solid #242824; outline-offset: 3px; }
.km15-menu-toggle:hover { color: var(--km15-phone); }
.km15-button { overflow-wrap: anywhere; }
.km15-button:hover { color: #fff; filter: brightness(.93); }

/* B starter pattern styles are deliberately scoped; normal Page blocks keep core styling. */
.km15-b-home { --km15-b-section-gap: 72px; --km15-b-ground: #F7F7F1; --km15-b-surface: #FFFFFF; --km15-b-text: #242824; --km15-b-muted: #525A54; --km15-b-border: #D9DDD5; width: 100%; color: var(--km15-b-text); }
.km15-b-home > .wp-block-group { box-sizing: border-box; padding-inline: var(--km15-gutter); }
.km15-b-home .km15-b-hero { padding-block: 40px; }
.km15-b-home .km15-b-hero-columns { align-items: center; gap: clamp(20px, 3vw, 44px); }
.km15-b-home .km15-b-title { margin: 0; color: var(--km15-b-text); font-size: clamp(2.15rem, 4vw, 3.55rem); line-height: 1.25; text-wrap: balance; }
.km15-b-home .km15-b-supporting { margin-block: 16px 0; color: var(--km15-b-muted); font-size: clamp(1.25rem, 2vw, 1.7rem); }
.km15-b-home .km15-b-intro { margin-top: 8px; color: var(--km15-b-muted); font-size: clamp(1.1rem, 1.7vw, 1.4rem); }
.km15-b-home .km15-b-hero-media { min-width: 0; }
.km15-b-home .km15-b-image { min-height: 260px; margin: 0; border: 1px dashed var(--km15-b-border); background: #F0F1EB; }
.km15-b-home .km15-b-image img { display: block; width: 100%; height: auto; max-height: 560px; object-fit: contain; }
.km15-b-home .km15-b-locality { padding-block: 18px; background: #F0F1EB; }
.km15-b-home .km15-b-locality-columns { align-items: center; gap: 24px; margin-bottom: 0; }
.km15-b-home .km15-b-locality-title { margin: 0; font-size: clamp(1.2rem, 2.3vw, 1.6rem); }
.km15-b-home .km15-b-delivery-copy { margin: 0; color: var(--km15-b-muted); }
.km15-b-home .km15-b-section { padding-block: var(--km15-b-section-gap); }
.km15-b-home .km15-b-section-title { margin-top: 0; font-size: clamp(1.75rem, 3.2vw, 2.8rem); }
.km15-b-home .km15-b-shop-section .wc-block-product-categories-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.km15-b-home .km15-b-shop-section .wc-block-product-categories-list-item { min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--km15-b-border); border-radius: 5px; background: var(--km15-b-surface); }
.km15-b-home .km15-b-shop-section .wc-block-product-categories-list-item__name { color: var(--km15-b-text); font-weight: 700; }
.km15-b-home .km15-b-about-columns { align-items: center; gap: 32px; }
.km15-b-home .km15-b-about-section { background: var(--km15-b-surface); }

@media (min-width: 768px) and (max-width: 1023px) {
	.km15-header-inner { flex-wrap: wrap; gap: 8px 16px; padding-block: 10px; }
	.km15-brand { font-size: 1.2rem; }
	.km15-menu-toggle { display: inline-flex; min-width: 64px; min-height: 48px; align-items: center; justify-content: center; flex-direction: column; gap: 2px; padding: 4px; border: 0; background: transparent; color: var(--km15-text); font-weight: 700; cursor: pointer; }
	.km15-menu-toggle[hidden] { display: none; }
	.km15-menu-toggle-icon { display: grid; gap: 4px; }
	.km15-menu-toggle-icon span { display: block; width: 28px; height: 3px; background: currentColor; }
	.km15-primary-nav { flex-basis: 100%; }
	.km15-menu-enhanced .km15-primary-nav:not(.is-open) { display: none; }
	.km15-primary-nav ul { gap: 8px 14px; }
	.km15-b-home { --km15-b-section-gap: 56px; }
	.km15-b-home .km15-b-hero-columns { display: block; }
	.km15-b-home .km15-b-hero-copy { max-width: 720px; }
	.km15-b-home .km15-b-hero-media { width: min(100%, 820px); margin: 24px auto 0; }
	.km15-b-home .km15-b-title { font-size: clamp(2.1rem, 4.5vw, 3rem); }
	.km15-b-home .km15-b-shop-section .wc-block-product-categories-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
	.km15-header-inner { min-height: 72px; flex-wrap: wrap; gap: 8px 16px; padding-block: 10px; }
	.km15-brand { max-width: calc(100% - 88px); overflow-wrap: anywhere; font-size: clamp(1.25rem, 5.5vw, 1.7rem); }
	.km15-brand a { white-space: normal; overflow-wrap: anywhere; }
	.km15-brand img.custom-logo { max-width: min(220px, 100%); max-height: 56px; }
	.km15-menu-toggle { display: inline-flex; min-width: 64px; min-height: 48px; align-items: center; justify-content: center; flex-direction: column; gap: 2px; padding: 4px; border: 0; background: transparent; color: var(--km15-text); font-weight: 700; cursor: pointer; }
	.km15-menu-toggle[hidden] { display: none; }
	.km15-menu-toggle-icon { display: grid; gap: 4px; }
	.km15-menu-toggle-icon span { display: block; width: 28px; height: 3px; background: currentColor; }
	.km15-primary-nav { width: 100%; flex-basis: 100%; }
	.km15-menu-enhanced .km15-primary-nav:not(.is-open) { display: none; }
	.km15-primary-nav ul { display: grid; gap: 0; }
	.km15-primary-nav li { border-top: 1px solid var(--km15-border); }
	.km15-primary-nav a { display: block; min-height: 48px; padding: 11px 2px; }
	.km15-header-contact { display: none; }
	.km15-b-home { --km15-b-section-gap: 40px; }
	.km15-b-home .km15-b-hero { padding-block: 26px 20px; }
	.km15-b-home .km15-b-hero-columns { display: flex; flex-direction: column; gap: 18px; }
	.km15-b-home .km15-b-hero-columns > .wp-block-column { flex-basis: auto !important; width: 100%; }
	.km15-b-home .km15-b-title { font-size: clamp(1.875rem, 8.4vw, 2.25rem); line-height: 1.3; }
	.km15-b-home .km15-b-supporting { margin-top: 8px; font-size: 1.2rem; }
	.km15-b-home .km15-b-intro { font-size: 1rem; }
	.km15-b-home .km15-b-image { min-height: 180px; }
	.km15-b-home .km15-b-locality { padding-block: 16px; }
	.km15-b-home .km15-b-locality-columns { display: block; }
	.km15-b-home .km15-b-locality-columns > .wp-block-column + .wp-block-column { margin-top: 8px; }
	.km15-b-home .km15-b-shop-section .wc-block-product-categories-list { display: block; }
	.km15-b-home .km15-b-shop-section .wc-block-product-categories-list-item { min-height: 52px; padding: 12px 2px; border: 0; border-top: 1px solid var(--km15-b-border); border-radius: 0; background: transparent; }
	.km15-b-home .km15-b-about-columns { display: flex; flex-direction: column; gap: 18px; }
	.km15-b-home .km15-b-about-columns > .wp-block-column { width: 100%; }
}
