/* ==========================================================
   MODERN UI  :  สไตล์ส่วนที่ปรับปรุงใหม่
   - หน้าสินค้า / รายละเอียดสินค้า / ติดต่อเรา
   - หน้านโยบาย (PDPA)
   - ปุ่มติดต่อลอย (Floating Contact)
   ---------------------------------------------------------
   สีหลัก  #163E93   สีรอง #FECD07   LINE #06C755
   ========================================================== */

:root {
	--m-primary: #163E93;
	--m-primary-dark: #102c6b;
	--m-primary-soft: #eef3ff;
	--m-accent: #FECD07;
	--m-line: #06C755;
	--m-fb: #0866FF;
	--m-text: #2b3245;
	--m-muted: #7a8196;
	--m-border: #e6e9f2;
	--m-radius: 16px;
	--m-shadow: 0 10px 30px rgba(22, 62, 147, .08);
	--m-shadow-hover: 0 18px 40px rgba(22, 62, 147, .16);
}

/* ---------------- ปุ่มสไตล์ใหม่ ---------------- */

.btn-modern {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	font-family: 'Kanit', sans-serif;
	font-size: 16px;
	line-height: 1;
	padding: 14px 26px;
	border-radius: 40px;
	border: 2px solid transparent;
	cursor: pointer;
	text-decoration: none !important;
	transition: all .25s ease;
}

.btn-modern i { font-size: 17px; }

.btn-modern--primary { background: var(--m-primary); color: #FFF !important; }
.btn-modern--primary:hover { background: var(--m-primary-dark); color: #FFF !important; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(22, 62, 147, .28); }

.btn-modern--line { background: var(--m-line); color: #FFF !important; }
.btn-modern--line:hover { background: #05a948; color: #FFF !important; transform: translateY(-2px); box-shadow: 0 10px 22px rgba(6, 199, 85, .3); }

.btn-modern--ghost { background: #FFF; color: var(--m-primary) !important; border-color: #cfd9ee; }
.btn-modern--ghost:hover { border-color: var(--m-primary); background: var(--m-primary-soft); }

.btn-modern--accent { background: var(--m-accent); color: #26313f !important; }
.btn-modern--accent:hover { background: #f2c000; transform: translateY(-2px); }

.btn-modern--block { width: 100%; }

/* ---------------- หัวข้อกลางแบบใหม่ ---------------- */

.m-section { padding: 56px 0; background: #f6f8fc; }
.m-section--white { background: #FFF; }

.m-head { text-align: center; margin-bottom: 36px; }

.m-head__eyebrow {
	display: inline-block;
	font-family: 'Kanit', sans-serif;
	font-size: 14px;
	letter-spacing: 1px;
	color: var(--m-primary);
	background: var(--m-primary-soft);
	padding: 6px 16px;
	border-radius: 30px;
	margin-bottom: 12px;
}

.m-head h2,
.m-head h1 {
	font-family: 'Kanit', sans-serif;
	color: var(--m-text);
	margin: 0 0 10px 0;
	font-size: 32px;
	line-height: 44px;
}

.m-head p {
	font-family: 'Kanit', sans-serif;
	color: var(--m-muted);
	font-size: 16px;
	max-width: 720px;
	margin: 0 auto !important;
}

/* ==========================================================
   หน้าสินค้า : แถบเครื่องมือ + การ์ดสินค้า
   ========================================================== */

.shop-toolbar {
	background: #FFF;
	border-radius: var(--m-radius);
	box-shadow: var(--m-shadow);
	padding: 16px 20px;
	margin-bottom: 26px;
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	font-family: 'Kanit', sans-serif;
}

.shop-toolbar__count {
	font-size: 15px;
	color: var(--m-muted);
	white-space: nowrap;
}

.shop-toolbar__count b { color: var(--m-primary); font-size: 18px; }

.shop-search {
	flex: 1 1 260px;
	position: relative;
}

.shop-search i {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	color: #a9b1c6;
}

.shop-search input {
	width: 100%;
	height: 46px;
	border: 1px solid var(--m-border);
	border-radius: 30px;
	padding: 0 18px 0 44px;
	font-family: 'Kanit', sans-serif;
	font-size: 15px;
	color: var(--m-text);
	background: #fbfcfe;
	outline: none;
	transition: .2s;
}

.shop-search input:focus {
	border-color: var(--m-primary);
	background: #FFF;
	box-shadow: 0 0 0 4px rgba(22, 62, 147, .08);
}

.shop-sort select {
	height: 46px;
	border: 1px solid var(--m-border);
	border-radius: 30px;
	padding: 0 18px;
	font-family: 'Kanit', sans-serif;
	font-size: 15px;
	color: var(--m-text);
	background: #fbfcfe;
	outline: none;
	cursor: pointer;
}

/* --------- การ์ดสินค้า --------- */

.p-card {
	display: block;
	background: #FFF;
	border-radius: var(--m-radius);
	overflow: hidden;
	box-shadow: var(--m-shadow);
	height: 100%;
	text-decoration: none !important;
	transition: transform .3s ease, box-shadow .3s ease;
}

.p-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--m-shadow-hover);
}

.p-card__media {
	position: relative;
	width: 100%;
	padding-top: 78%;
	overflow: hidden;
	background: #eef1f6;
}

.p-card__media img {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .5s ease;
}

.p-card:hover .p-card__media img { transform: scale(1.07); }

.p-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	background: rgba(255, 255, 255, .92);
	color: var(--m-primary);
	font-family: 'Kanit', sans-serif;
	font-size: 12px;
	padding: 5px 12px;
	border-radius: 20px;
	box-shadow: 0 4px 10px rgba(0, 0, 0, .08);
}

.p-card__overlay {
	position: absolute;
	inset: 0;
	top: 0; left: 0; right: 0; bottom: 0;
	background: linear-gradient(to top, rgba(22, 62, 147, .78), rgba(22, 62, 147, 0) 55%);
	opacity: 0;
	transition: opacity .3s ease;
	display: flex;
	align-items: flex-end;
	justify-content: center;
	padding-bottom: 16px;
}

.p-card:hover .p-card__overlay { opacity: 1; }

.p-card__overlay span {
	background: #FFF;
	color: var(--m-primary);
	font-family: 'Kanit', sans-serif;
	font-size: 14px;
	padding: 8px 18px;
	border-radius: 30px;
	transform: translateY(8px);
	transition: transform .3s ease;
}

.p-card:hover .p-card__overlay span { transform: translateY(0); }

.p-card__body { padding: 14px 16px 18px 16px; }

.p-card__title {
	font-family: 'Kanit', sans-serif;
	font-size: 16px;
	line-height: 25px;
	color: var(--m-text);
	min-height: 50px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	transition: color .2s;
}

.p-card:hover .p-card__title { color: var(--m-primary); }

.p-card__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 10px;
	font-family: 'Kanit', sans-serif;
	font-size: 13px;
	color: var(--m-muted);
}

.p-card__cta {
	color: var(--m-primary);
	font-size: 14px;
}

.p-empty {
	display: none;
	text-align: center;
	padding: 50px 20px;
	font-family: 'Kanit', sans-serif;
	color: var(--m-muted);
}

.p-empty i { font-size: 46px; color: #c9d2e5; margin-bottom: 14px; display: block; }

/* --------- แถบ CTA ท้ายหน้า --------- */

.m-cta {
	background: linear-gradient(120deg, #163E93 0%, #2559c9 100%);
	border-radius: var(--m-radius);
	padding: 36px 30px;
	text-align: center;
	color: #FFF;
	font-family: 'Kanit', sans-serif;
	box-shadow: var(--m-shadow);
}

.m-cta h3 { color: #FFF; font-size: 26px; margin: 0 0 8px 0; font-family: 'Kanit', sans-serif; }
.m-cta p { color: rgba(255, 255, 255, .85) !important; margin-bottom: 20px !important; }
.m-cta__btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* ==========================================================
   หน้ารายละเอียดสินค้า
   ========================================================== */

.pd-wrap {
	background: #FFF;
	border-radius: var(--m-radius);
	box-shadow: var(--m-shadow);
	padding: 24px;
	font-family: 'Kanit', sans-serif;
}

.pd-figure {
	border-radius: 14px;
	overflow: hidden;
	background: #f1f4f9;
	position: relative;
}

.pd-figure img { width: 100%; display: block; }

.pd-title {
	font-family: 'Kanit', sans-serif;
	font-size: 28px;
	line-height: 40px;
	color: var(--m-text);
	margin: 0 0 12px 0;
}

.pd-meta {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	align-items: center;
	font-size: 14px;
	color: var(--m-muted);
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: 1px dashed var(--m-border);
}

.pd-meta .stars { color: var(--m-accent); }

.pd-points { list-style: none; padding: 0; margin: 0 0 20px 0; }

.pd-points li {
	position: relative;
	padding-left: 30px;
	margin-bottom: 10px;
	font-size: 15px;
	color: #4b5264;
	line-height: 26px;
}

.pd-points li i {
	position: absolute;
	left: 0;
	top: 5px;
	color: var(--m-line);
}

.pd-contact-box {
	background: var(--m-primary-soft);
	border-radius: 14px;
	padding: 18px;
	margin-top: 4px;
}

.pd-contact-box__label {
	font-size: 15px;
	color: var(--m-primary);
	margin-bottom: 12px;
}

.pd-tabs {
	display: flex;
	gap: 8px;
	border-bottom: 2px solid var(--m-border);
	margin: 30px 0 20px 0;
	flex-wrap: wrap;
}

.pd-tab {
	font-family: 'Kanit', sans-serif;
	font-size: 16px;
	padding: 12px 22px;
	border: none;
	background: none;
	color: var(--m-muted);
	cursor: pointer;
	border-bottom: 3px solid transparent;
	margin-bottom: -2px;
	transition: .2s;
}

.pd-tab.is-active { color: var(--m-primary); border-bottom-color: var(--m-primary); }

.pd-panel { display: none; font-size: 16px; line-height: 30px; color: #4b5264; }
.pd-panel.is-active { display: block; }
.pd-panel img { max-width: 100%; height: auto; border-radius: 10px; }

/* ==========================================================
   หน้าติดต่อเรา
   ========================================================== */

.contact-hero {
	background: linear-gradient(120deg, #163E93 0%, #2559c9 100%);
	border-radius: var(--m-radius);
	color: #FFF;
	padding: 40px 34px;
	font-family: 'Kanit', sans-serif;
	box-shadow: var(--m-shadow);
}

.contact-hero h1 { color: #FFF; font-size: 30px; line-height: 44px; margin: 0 0 10px 0; }
.contact-hero p { color: rgba(255, 255, 255, .88) !important; font-size: 16px; line-height: 28px; }

.contact-hero__tags { margin-top: 18px; display: flex; gap: 10px; flex-wrap: wrap; }

.contact-hero__tags span {
	background: rgba(255, 255, 255, .16);
	border: 1px solid rgba(255, 255, 255, .25);
	padding: 7px 16px;
	border-radius: 30px;
	font-size: 14px;
}

.c-card {
	background: #FFF;
	border-radius: var(--m-radius);
	box-shadow: var(--m-shadow);
	padding: 26px 22px;
	text-align: center;
	height: 100%;
	font-family: 'Kanit', sans-serif;
	transition: transform .25s ease, box-shadow .25s ease;
	display: block;
	text-decoration: none !important;
}

.c-card:hover { transform: translateY(-5px); box-shadow: var(--m-shadow-hover); }

.c-card__icon {
	width: 62px;
	height: 62px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 14px auto;
	font-size: 24px;
	color: #FFF;
}

.c-card__icon--tel { background: var(--m-primary); }
.c-card__icon--line { background: var(--m-line); }
.c-card__icon--mail { background: #ef6c3b; }
.c-card__icon--fb { background: var(--m-fb); }

.c-card__label { font-size: 14px; color: var(--m-muted); }
.c-card__value { font-size: 19px; color: var(--m-text); margin-top: 4px; word-break: break-all; }
.c-card:hover .c-card__value { color: var(--m-primary); }

.contact-form-box {
	background: #FFF;
	border-radius: var(--m-radius);
	box-shadow: var(--m-shadow);
	padding: 28px;
	font-family: 'Kanit', sans-serif;
}

.contact-form-box h3 { font-family: 'Kanit', sans-serif; font-size: 22px; color: var(--m-text); margin: 0 0 6px 0; }
.contact-form-box .sub { color: var(--m-muted); font-size: 15px; margin-bottom: 20px !important; }

.m-field { margin-bottom: 16px; }

.m-field label {
	display: block;
	font-size: 15px;
	color: #444c60;
	margin-bottom: 6px;
}

.m-field label .req { color: #e03131; }

.m-field input,
.m-field textarea {
	width: 100%;
	border: 1px solid var(--m-border);
	border-radius: 12px;
	padding: 12px 16px;
	font-family: 'Kanit', sans-serif;
	font-size: 15px;
	color: var(--m-text);
	background: #fbfcfe;
	outline: none;
	transition: .2s;
}

.m-field textarea { min-height: 130px; resize: vertical; }

.m-field input:focus,
.m-field textarea:focus {
	border-color: var(--m-primary);
	background: #FFF;
	box-shadow: 0 0 0 4px rgba(22, 62, 147, .08);
}

.m-consent {
	background: #f7f9fd;
	border: 1px solid var(--m-border);
	border-radius: 12px;
	padding: 14px 16px;
	font-size: 14px;
	line-height: 24px;
	color: #5b6377;
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin-bottom: 18px;
}

.m-consent input { margin-top: 5px; flex: 0 0 auto; }
.m-consent a { color: var(--m-primary); text-decoration: underline; }

.m-alert {
	border-radius: 12px;
	padding: 16px 18px;
	font-family: 'Kanit', sans-serif;
	font-size: 15px;
	line-height: 26px;
	margin-bottom: 18px;
}

.m-alert--ok { background: #e8f8ef; color: #12734a; border: 1px solid #bce8d1; }
.m-alert--err { background: #fdecec; color: #b42318; border: 1px solid #f6cfcb; }

.contact-side {
	background: #FFF;
	border-radius: var(--m-radius);
	box-shadow: var(--m-shadow);
	padding: 24px;
	font-family: 'Kanit', sans-serif;
	height: 100%;
}

.contact-side h3 { font-family: 'Kanit', sans-serif; font-size: 20px; color: var(--m-text); margin: 0 0 14px 0; }

.contact-side__row {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	padding: 12px 0;
	border-bottom: 1px dashed var(--m-border);
	font-size: 15px;
	color: #4b5264;
}

.contact-side__row:last-child { border-bottom: none; }
.contact-side__row i { color: var(--m-primary); width: 20px; text-align: center; margin-top: 4px; }
.contact-side__row a { color: #4b5264; }
.contact-side__row a:hover { color: var(--m-primary); }

.contact-gallery-title {
	font-family: 'Kanit', sans-serif;
	font-size: 22px;
	color: var(--m-text);
	margin-bottom: 16px;
}

/* ==========================================================
   ปุ่มติดต่อลอย (แสดงตลอด ไม่ต้องกดเปิด)
   ========================================================== */

.float-contact {
	position: fixed;
	right: 16px;
	bottom: 18px;
	z-index: 9990;
	display: flex;
	flex-direction: column;
	gap: 10px;
	align-items: flex-end;
	font-family: 'Kanit', sans-serif;
}

.float-contact__btn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	height: 52px;
	padding: 0 20px 0 16px;
	border-radius: 30px;
	color: #FFF !important;
	font-size: 15px;
	text-decoration: none !important;
	box-shadow: 0 8px 20px rgba(0, 0, 0, .22);
	transition: transform .2s ease, box-shadow .2s ease;
	white-space: nowrap;
}

.float-contact__btn i { font-size: 20px; }

.float-contact__btn:hover {
	transform: translateY(-3px) scale(1.02);
	box-shadow: 0 12px 26px rgba(0, 0, 0, .28);
	color: #FFF !important;
}

.float-contact__btn--tel { background: #ff7a18; }
.float-contact__btn--line { background: var(--m-line); }
.float-contact__btn--fb { background: var(--m-fb); }
.float-contact__btn--top { background: var(--m-primary); padding: 0; width: 52px; justify-content: center; }

@media (max-width: 767px) {
	.float-contact { right: 10px; bottom: 10px; gap: 8px; }
	.float-contact__btn { height: 48px; font-size: 14px; padding: 0 16px 0 14px; }
	.float-contact__btn--top { width: 48px; padding: 0; }
	.float-contact__label { display: none; }           /* จอเล็กแสดงเฉพาะไอคอน */
	.float-contact__btn { padding: 0; width: 48px; justify-content: center; }
}

/* ==========================================================
   หน้านโยบาย (PDPA)
   ========================================================== */

.section-policy { background: #f6f8fc; padding: 44px 0 60px 0; }

.policy-doc {
	background: #FFF;
	border-radius: var(--m-radius);
	box-shadow: var(--m-shadow);
	padding: 38px 40px;
	font-family: 'Kanit', sans-serif;
	color: #4b5264;
	font-size: 16px;
	line-height: 30px;
}

.policy-doc__head { border-bottom: 1px solid var(--m-border); padding-bottom: 22px; margin-bottom: 26px; }

.policy-doc h1 { font-size: 32px; line-height: 46px; color: var(--m-text); margin: 0 0 10px 0; }

.policy-doc__meta {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	font-size: 14px;
	color: var(--m-muted);
	margin-bottom: 14px !important;
}

.policy-doc__lead { font-size: 16px; line-height: 30px; color: #5b6377 !important; }

.policy-doc h2 {
	font-family: 'Kanit', sans-serif;
	font-size: 22px;
	line-height: 34px;
	color: var(--m-primary);
	margin: 34px 0 12px 0;
	padding-top: 6px;
	scroll-margin-top: 120px;
}

.policy-doc h3 { font-family: 'Kanit', sans-serif; font-size: 18px; color: var(--m-text); margin: 20px 0 8px 0; }

.policy-doc p { margin-bottom: 12px !important; line-height: 30px !important; color: #4b5264 !important; }

.policy-doc ul { padding-left: 22px; margin-bottom: 16px; }
.policy-doc ul li { margin-bottom: 8px; }
.policy-doc a { color: var(--m-primary); text-decoration: underline; }
.policy-doc code { background: #f1f4f9; color: #b4437a; padding: 2px 7px; border-radius: 5px; font-size: 14px; }

.policy-table { width: 100%; border-collapse: collapse; margin-bottom: 18px; font-size: 15px; }

.policy-table th {
	background: var(--m-primary);
	color: #FFF;
	font-weight: 400;
	padding: 12px 14px;
	text-align: left;
	border: 1px solid var(--m-primary);
}

.policy-table td { padding: 12px 14px; border: 1px solid var(--m-border); vertical-align: top; line-height: 26px; }
.policy-table tbody tr:nth-child(even) { background: #fafbfe; }

.policy-note {
	background: #fff8e6;
	border-left: 4px solid var(--m-accent);
	border-radius: 10px;
	padding: 16px 18px;
	margin: 18px 0;
	font-size: 15px;
	line-height: 28px;
	color: #6b5b2a;
}

.policy-note i { color: #d9a400; margin-right: 6px; }

.policy-small { font-size: 14px; color: var(--m-muted); }

.policy-rights { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 18px 0; }

.policy-rights__item {
	display: flex;
	gap: 12px;
	background: #f8fafe;
	border: 1px solid var(--m-border);
	border-radius: 12px;
	padding: 14px 16px;
	font-size: 15px;
	line-height: 26px;
}

.policy-rights__item i { color: var(--m-primary); margin-top: 5px; }
.policy-rights__item strong { color: var(--m-text); }

.policy-contact {
	background: var(--m-primary-soft);
	border-radius: 12px;
	padding: 18px 20px;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	font-size: 15px;
}

.policy-contact i { color: var(--m-primary); width: 20px; }

.policy-links {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 30px;
	padding-top: 22px;
	border-top: 1px solid var(--m-border);
}

.policy-links a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #f4f7fd;
	border: 1px solid var(--m-border);
	border-radius: 30px;
	padding: 10px 20px;
	font-size: 15px;
	color: var(--m-primary);
	text-decoration: none !important;
	transition: .2s;
}

.policy-links a:hover { background: var(--m-primary); color: #FFF; border-color: var(--m-primary); }

/* สารบัญด้านข้าง */
.policy-toc {
	position: sticky;
	top: 110px;
	background: #FFF;
	border-radius: var(--m-radius);
	box-shadow: var(--m-shadow);
	padding: 20px 18px;
	font-family: 'Kanit', sans-serif;
}

.policy-toc__title { font-size: 16px; color: var(--m-text); margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--m-border); }

.policy-toc a {
	display: block;
	font-size: 14px;
	line-height: 22px;
	color: #6b7280;
	padding: 7px 10px;
	border-radius: 8px;
	text-decoration: none !important;
	transition: .18s;
}

.policy-toc a:hover { background: var(--m-primary-soft); color: var(--m-primary); }

/* สถานะความยินยอมในหน้านโยบายคุกกี้ */
.cookie-status {
	background: #f8fafe;
	border: 1px solid var(--m-border);
	border-radius: 14px;
	padding: 20px 22px;
	margin-bottom: 8px;
}

.cookie-status__head { font-size: 17px; color: var(--m-primary); margin-bottom: 10px; }
.cookie-status__list { list-style: none; padding: 0 !important; margin: 0 0 10px 0; }
.cookie-status__list li { margin-bottom: 6px; font-size: 15px; }
.cookie-status__meta { font-size: 13px; color: var(--m-muted) !important; }
.cookie-status__btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }

.dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 8px; }
.dot--on { background: #16a34a; }
.dot--off { background: #cbd5e1; }

.cookie-type {
	border: 1px solid var(--m-border);
	border-radius: 12px;
	padding: 16px 18px;
	margin-bottom: 12px;
	background: #fbfcfe;
}

.cookie-type h3 { margin: 0 0 6px 0; font-size: 17px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.badge-always, .badge-optional {
	font-size: 12px;
	padding: 4px 12px;
	border-radius: 20px;
	line-height: 18px;
}

.badge-always { background: #e8f8ef; color: #12734a; }
.badge-optional { background: #fff4e5; color: #9a6400; }

/* ---------------- จอเล็ก ---------------- */

@media (max-width: 991px) {
	.policy-rights { grid-template-columns: 1fr; }
	.policy-contact { grid-template-columns: 1fr; }
	.policy-doc { padding: 26px 20px; }
	.policy-doc h1 { font-size: 26px; line-height: 40px; }
	.policy-doc h2 { font-size: 20px; line-height: 32px; }
	.m-head h2, .m-head h1 { font-size: 26px; line-height: 38px; }
	.contact-hero { padding: 28px 22px; }
	.contact-hero h1 { font-size: 24px; line-height: 36px; }
	.pd-title { font-size: 23px; line-height: 34px; }
}

@media (max-width: 575px) {
	.m-section { padding: 36px 0; }
	.p-card__title { font-size: 15px; min-height: 46px; }
	.shop-toolbar { padding: 14px; }
	.pd-wrap { padding: 16px; }
	.contact-form-box { padding: 20px 18px; }
}

/* ---------------- ลิงก์นโยบายท้ายเว็บ ---------------- */

.footer-policy-links {
	margin-top: 10px;
	font-family: 'Kanit', sans-serif;
	font-size: 14px;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
}

.footer-policy-links a {
	color: rgba(255, 255, 255, .82);
	text-decoration: none;
	transition: .2s;
}

.footer-policy-links a:hover { color: #FECD07; text-decoration: underline; }
.footer-policy-links span { color: rgba(255, 255, 255, .35); }

@media (max-width: 575px) {
	.footer-policy-links { justify-content: center; text-align: center; }
	.footer-policy-links span { display: none; }
	.footer-policy-links a { flex: 1 1 100%; padding: 3px 0; }
}

/* ปุ่มแทน Facebook SDK กรณียังไม่ยินยอมคุกกี้การตลาด */
.fb-fallback-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #0866FF;
	color: #FFF !important;
	font-family: 'Kanit', sans-serif;
	font-size: 14px;
	padding: 8px 18px;
	border-radius: 30px;
	text-decoration: none !important;
	transition: .2s;
}

.fb-fallback-btn:hover { background: #0552cc; transform: translateY(-2px); }

/* ==========================================================
   ปุ่มติดต่อหลัก (โทร / LINE) พร้อมลูกเล่น
   ========================================================== */

.cta-btn {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	width: 100%;
	padding: 16px 20px;
	border-radius: 18px;
	overflow: hidden;
	text-decoration: none !important;
	font-family: 'Kanit', sans-serif;
	color: #FFF !important;
	isolation: isolate;
	transition: transform .28s cubic-bezier(.22, 1, .36, 1), box-shadow .28s ease;
}

.cta-btn--tel {
	background: linear-gradient(120deg, #163E93 0%, #2f6bd8 100%);
	box-shadow: 0 10px 26px rgba(22, 62, 147, .30);
}

.cta-btn--line {
	background: linear-gradient(120deg, #06C755 0%, #37d97f 100%);
	box-shadow: 0 10px 26px rgba(6, 199, 85, .30);
}

.cta-btn:hover {
	transform: translateY(-4px);
	color: #FFF !important;
}

.cta-btn--tel:hover { box-shadow: 0 18px 38px rgba(22, 62, 147, .42); }
.cta-btn--line:hover { box-shadow: 0 18px 38px rgba(6, 199, 85, .42); }

.cta-btn:active { transform: translateY(-1px) scale(.99); }

/* แสงกวาดผ่านตอนชี้เมาส์ */
.cta-btn:before {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 45%;
	height: 100%;
	background: linear-gradient(100deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .38) 50%, rgba(255, 255, 255, 0) 100%);
	transform: skewX(-18deg);
	z-index: -1;
	transition: left .6s ease;
}

.cta-btn:hover:before { left: 120%; }

/* ไอคอนวงกลม + คลื่นกระเพื่อม */
.cta-btn__icon {
	position: relative;
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .18);
	border: 1px solid rgba(255, 255, 255, .35);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
}

.cta-btn__ring {
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	bottom: -1px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, .6);
	animation: ctaRing 2.4s ease-out infinite;
}

@keyframes ctaRing {
	0%   { transform: scale(1);    opacity: .7; }
	70%  { transform: scale(1.45); opacity: 0; }
	100% { transform: scale(1.45); opacity: 0; }
}

/* ไอคอนโทรศัพท์สั่นเบา ๆ เป็นระยะ */
.cta-btn--tel .cta-btn__icon i {
	animation: ctaShake 3.2s ease-in-out infinite;
	transform-origin: 50% 60%;
}

@keyframes ctaShake {
	0%, 82%, 100% { transform: rotate(0deg); }
	85% { transform: rotate(-14deg); }
	88% { transform: rotate(12deg); }
	91% { transform: rotate(-9deg); }
	94% { transform: rotate(7deg); }
	97% { transform: rotate(-3deg); }
}

/* ไอคอน LINE เด้งเบา ๆ */
.cta-btn--line .cta-btn__icon i {
	animation: ctaBounce 2.8s ease-in-out infinite;
}

@keyframes ctaBounce {
	0%, 70%, 100% { transform: translateY(0); }
	78% { transform: translateY(-5px); }
	86% { transform: translateY(0); }
	92% { transform: translateY(-2px); }
}

.cta-btn:hover .cta-btn__icon {
	background: rgba(255, 255, 255, .28);
}

.cta-btn__text {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
	line-height: 1.25;
}

.cta-btn__label {
	font-size: 13px;
	color: rgba(255, 255, 255, .85);
	margin-bottom: 3px;
}

.cta-btn__value {
	font-size: 24px;
	font-weight: 500;
	letter-spacing: .3px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cta-btn__arrow {
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .16);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	transition: transform .28s ease, background .28s ease;
}

.cta-btn:hover .cta-btn__arrow {
	background: rgba(255, 255, 255, .32);
	transform: translateX(5px);
}

@media (max-width: 575px) {
	.cta-btn { padding: 14px 16px; gap: 12px; border-radius: 16px; }
	.cta-btn__icon { flex: 0 0 46px; width: 46px; height: 46px; font-size: 19px; }
	.cta-btn__value { font-size: 21px; }
	.cta-btn__label { font-size: 12px; }
}

/* ผู้ใช้ที่ตั้งค่าลดการเคลื่อนไหว : ปิดอนิเมชันทั้งหมด */
@media (prefers-reduced-motion: reduce) {
	.cta-btn, .cta-btn * { animation: none !important; transition: none !important; }
}

/* ---- ปุ่มติดต่อขนาดกะทัดรัด (ใช้ในคอลัมน์แคบ เช่น หน้ารายละเอียดสินค้า) ---- */

.cta-btn--sm { padding: 12px 14px; gap: 12px; border-radius: 15px; }
.cta-btn--sm .cta-btn__icon { flex: 0 0 42px; width: 42px; height: 42px; font-size: 18px; }
.cta-btn--sm .cta-btn__label { font-size: 12px; margin-bottom: 1px; }
.cta-btn--sm .cta-btn__value { font-size: 19px; }
.cta-btn--sm .cta-btn__arrow { width: 28px; height: 28px; font-size: 12px; }

/* ---- ปุ่มขอใบเสนอราคา (แบบเส้นขอบ เติมสีเมื่อชี้เมาส์) ---- */

.cta-btn--quote {
	background: #FFF;
	border: 2px dashed #b9c8e8;
	color: var(--m-primary) !important;
	box-shadow: none;
	justify-content: center;
	text-align: center;
	padding: 13px 16px;
}

.cta-btn--quote .cta-btn__icon {
	background: var(--m-primary-soft);
	border-color: transparent;
	color: var(--m-primary);
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	font-size: 17px;
}

.cta-btn--quote .cta-btn__ring { border-color: rgba(22, 62, 147, .35); }
.cta-btn--quote .cta-btn__label { color: #8b93a7; }
.cta-btn--quote .cta-btn__value { font-size: 17px; color: var(--m-primary); }

.cta-btn--quote .cta-btn__arrow {
	background: var(--m-primary-soft);
	color: var(--m-primary);
}

.cta-btn--quote:hover {
	background: linear-gradient(120deg, #163E93 0%, #2f6bd8 100%);
	border-color: transparent;
	color: #FFF !important;
	box-shadow: 0 16px 34px rgba(22, 62, 147, .32);
}

.cta-btn--quote:hover .cta-btn__icon,
.cta-btn--quote:hover .cta-btn__arrow {
	background: rgba(255, 255, 255, .22);
	color: #FFF;
}

.cta-btn--quote:hover .cta-btn__label { color: rgba(255, 255, 255, .85); }
.cta-btn--quote:hover .cta-btn__value { color: #FFF; }

/* ==========================================================
   หน้าผลงาน (Portfolio)
   ========================================================== */

.pf-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 18px;
}

.pf-item {
	position: relative;
	display: block;
	border-radius: 16px;
	overflow: hidden;
	background: #e9edf5;
	box-shadow: var(--m-shadow);
	text-decoration: none !important;
	aspect-ratio: 4 / 3;
	opacity: 0;
	transform: translateY(18px);
	transition: opacity .5s ease, transform .5s cubic-bezier(.22, 1, .36, 1), box-shadow .3s ease;
}

.pf-item.is-in { opacity: 1; transform: translateY(0); }

.pf-item:hover { box-shadow: var(--m-shadow-hover); }

.pf-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .55s cubic-bezier(.22, 1, .36, 1);
}

.pf-item:hover img { transform: scale(1.08); }

.pf-item__overlay {
	position: absolute;
	inset: 0;
	top: 0; left: 0; right: 0; bottom: 0;
	background: linear-gradient(to top, rgba(22, 62, 147, .85) 0%, rgba(22, 62, 147, .15) 55%, rgba(22, 62, 147, 0) 100%);
	opacity: 0;
	transition: opacity .35s ease;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	font-family: 'Kanit', sans-serif;
}

.pf-item:hover .pf-item__overlay { opacity: 1; }

.pf-item__zoom {
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: var(--m-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	transform: scale(.7);
	transition: transform .35s cubic-bezier(.22, 1, .36, 1);
}

.pf-item:hover .pf-item__zoom { transform: scale(1); }

.pf-item__no {
	color: #FFF;
	font-size: 14px;
	transform: translateY(8px);
	transition: transform .35s ease;
}

.pf-item:hover .pf-item__no { transform: translateY(0); }

/* จอเล็ก : 2 คอลัมน์ */
@media (max-width: 767px) {
	.pf-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.pf-item { border-radius: 12px; }
	.pf-item__zoom { width: 38px; height: 38px; font-size: 14px; }
	.pf-item__no { font-size: 12px; }
}

/* เบราว์เซอร์เก่าที่ไม่รองรับ aspect-ratio */
@supports not (aspect-ratio: 4 / 3) {
	.pf-item { height: 0; padding-top: 75%; }
	.pf-item img { position: absolute; top: 0; left: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.pf-item { opacity: 1; transform: none; transition: none; }
}

/* แก้ปุ่มขนาดเล็กไม่ให้ข้อความล้น/ถูกตัด เมื่ออยู่ในคอลัมน์แคบ */
.cta-btn--sm .cta-btn__label,
.cta-btn--sm .cta-btn__value {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cta-btn--sm .cta-btn__value { font-size: 18px; }
.cta-btn--sm .cta-btn__arrow { display: none; }              /* คอลัมน์แคบ ตัดลูกศรออกให้ข้อความเต็ม */
.cta-btn--sm.cta-btn--quote .cta-btn__arrow { display: flex; } /* ปุ่มเต็มความกว้างยังมีลูกศรได้ */

@media (min-width: 992px) and (max-width: 1199px) {
	.cta-btn--sm .cta-btn__value { font-size: 16px; }
	.cta-btn--sm .cta-btn__icon { flex: 0 0 38px; width: 38px; height: 38px; font-size: 16px; }
}

/* ==========================================================
   หน้าต่างดูรูป + ซูม (Image Modal)
   ========================================================== */

.imgmodal {
	position: fixed;
	inset: 0;
	top: 0; left: 0; right: 0; bottom: 0;
	z-index: 10070;
	display: none;
	background: rgba(9, 14, 26, .94);
	font-family: 'Kanit', sans-serif;
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	animation: imgmodalIn .25s ease;
}

.imgmodal.is-open { display: block; }

@keyframes imgmodalIn {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.imgmodal__bar {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 62px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 0 16px;
	z-index: 3;
	background: linear-gradient(to bottom, rgba(0, 0, 0, .55), rgba(0, 0, 0, 0));
}

.imgmodal__counter {
	color: rgba(255, 255, 255, .88);
	font-size: 15px;
	letter-spacing: .5px;
}

.imgmodal__tools { display: flex; gap: 8px; }

.imgmodal__tools button {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, .12);
	color: #FFF;
	font-size: 16px;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}

.imgmodal__tools button:hover {
	background: rgba(255, 255, 255, .26);
	transform: translateY(-2px);
}

.imgmodal__tools .imgmodal__close:hover { background: #e03131; }

.imgmodal__stage {
	position: absolute;
	inset: 0;
	top: 0; left: 0; right: 0; bottom: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	padding: 70px 16px 92px 16px;
	touch-action: none;
}

.imgmodal__stage img {
	max-width: 100%;
	max-height: 100%;
	border-radius: 10px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, .55);
	transform-origin: center center;
	user-select: none;
	-webkit-user-drag: none;
	cursor: zoom-in;
}

.imgmodal__stage img.is-zoomed { cursor: grab; }
.imgmodal__stage img.is-grabbing { cursor: grabbing; }

.imgmodal__loader {
	position: absolute;
	width: 46px;
	height: 46px;
	border: 3px solid rgba(255, 255, 255, .25);
	border-top-color: #FFF;
	border-radius: 50%;
	animation: imgmodalSpin .8s linear infinite;
	display: none;
}

@keyframes imgmodalSpin { to { transform: rotate(360deg); } }

.imgmodal__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: none;
	background: rgba(255, 255, 255, .14);
	color: #FFF;
	font-size: 20px;
	cursor: pointer;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s ease, transform .2s ease;
}

.imgmodal__nav:hover { background: rgba(255, 255, 255, .3); }
.imgmodal__nav--prev { left: 18px; }
.imgmodal__nav--next { right: 18px; }
.imgmodal__nav--prev:hover { transform: translateY(-50%) translateX(-3px); }
.imgmodal__nav--next:hover { transform: translateY(-50%) translateX(3px); }

.imgmodal__caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 46px;
	text-align: center;
	color: rgba(255, 255, 255, .92);
	font-size: 15px;
	padding: 0 20px;
	z-index: 2;
	pointer-events: none;
}

.imgmodal__hint {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 16px;
	text-align: center;
	color: rgba(255, 255, 255, .45);
	font-size: 12.5px;
	z-index: 2;
	pointer-events: none;
	transition: opacity .25s ease;
}

.imgmodal.is-zoomed .imgmodal__hint { opacity: 0; }

@media (max-width: 767px) {
	.imgmodal__stage { padding: 62px 6px 86px 6px; }
	.imgmodal__nav { width: 42px; height: 42px; font-size: 16px; }
	.imgmodal__nav--prev { left: 8px; }
	.imgmodal__nav--next { right: 8px; }
	.imgmodal__tools button { width: 38px; height: 38px; font-size: 14px; }
	.imgmodal__caption { font-size: 13px; bottom: 44px; }
	.imgmodal__hint { font-size: 11px; }
}
