/*
 * IRPRO — design layer for Kumo CMS (child of Corporate; loaded after cms-design.css).
 *
 * The world of the brief: gloves, boots, shoe covers and aprons for food lines,
 * clean rooms, clinics, hotels and spas. Its vernacular gives the palette and the
 * details:
 *   - "food-line blue": the blue used for gloves, covers and aprons on food
 *     lines because no food is blue. It is the action colour (buttons, links).
 *   - steel wash: the cool grey of stainless benches, for soft bands.
 *   - QC tag yellow: the inspection tag; used only for the stations of the quality
 *     line and the small "inspected" marks. Never for text on white.
 *   - IBM Plex (Sans Thai for headings, Thai Looped for reading): an engineering
 *     family, plain and exact, with looped Thai that older buyers read easily.
 * Shapes are crisp (6px), not pills: this is equipment, not an app.
 * The one signature: the quality line (.irp-line), raw material -> delivery.
 */

/* ---- Fonts (self-hosted, SIL OFL 1.1, see ../fonts/OFL-ibm-plex.txt) ----------- */
@font-face { font-family: 'IRP Plex Thai'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/IBMPlexSansThai-SemiBold.woff2) format('woff2'); }
@font-face { font-family: 'IRP Plex Thai'; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/IBMPlexSansThai-Bold.woff2) format('woff2'); }
@font-face { font-family: 'IRP Plex'; font-style: normal; font-weight: 100 700; font-display: swap; src: url(../fonts/IBMPlexSansVar-Roman-Latin1.woff2) format('woff2'); unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20AC, U+2122, U+2212, U+FB01-FB02; }

:root {
	--irp-blue: #1F4FA3;
	--irp-blue-deep: #173D80;
	--irp-ink: #142033;
	--irp-wash: #E9EEF3;
	--irp-tag: #F2C230;

	--sk-bg: #F6F8FA;
	--sk-surface: #FFFFFF;
	--sk-soft: var(--irp-wash);
	--sk-border: #D8DFE6;
	--sk-border-strong: #B9C3CE;
	--sk-ink: var(--irp-ink);
	--sk-text: #344050;
	--sk-muted: #586374;
	--sk-dark: var(--irp-ink);
	--sk-dark-surface: #1C2A40;
	--sk-dark-border: rgba(255, 255, 255, .16);
	--sk-dark-ink: #FFFFFF;
	--sk-dark-text: #C3CCD8;
	--sk-btn: var(--primary, #1F4FA3);
	--sk-btn-ink: #FFFFFF;
	--sk-btn-hover: var(--irp-blue-deep);
	--sk-accent: var(--secondary, #F2C230);
	--sk-accent-ink: var(--irp-ink);
	--sk-link: var(--irp-blue);
	--sk-pastel-blue: #E3ECF8;
	--sk-pastel-cream: #FCF3D4;
	--sk-radius-sm: 4px;
	--sk-radius-card: 6px;
	--sk-radius-media: 4px;
	--sk-radius-btn: 6px;
	--sk-card-border: 1px solid var(--sk-border);
	--sk-card-padding: 26px;
	--sk-shadow: none;
	--sk-shadow-hover: 0 1px 0 var(--sk-border-strong), 0 10px 24px rgba(20, 32, 51, .07);
	--sk-shadow-media: 0 18px 40px rgba(20, 32, 51, .14);
	--sk-font-display: 'IRP Plex', 'IRP Plex Thai', sans-serif;
	--sk-font-body: 'IRP Plex', 'IBM Plex Sans Thai Looped', sans-serif;
	--sk-font-mono: 'IRP Plex', 'IBM Plex Sans Thai Looped', sans-serif;
	--sk-heading-weight: 700;
	--sk-tracking: -0.01em;
	--sk-hero-size: clamp(2.1rem, 1.5rem + 2.4vw, 3.5rem);
	--sk-display-size: clamp(1.75rem, 1.35rem + 1.5vw, 2.6rem);
	--sk-h2-size: clamp(1.5rem, 1.25rem + .9vw, 2.05rem);
	--sk-body-size: 16px;
	--sk-section-y: 96px;
	--sk-section-y-compact: 56px;
	--sk-section-y-spacious: 128px;
	--sk-header-bg: #FFFFFF;
	--sk-header-border: var(--sk-border);
	--sk-footer-bg: var(--irp-ink);
	--sk-footer-ink: #FFFFFF;
	--sk-footer-text: #C3CCD8;
	--sk-footer-border: rgba(255, 255, 255, .14);
	--sk-page-header-bg: var(--irp-wash);
}

/* ---- Base ------------------------------------------------------------------ */
.cms-theme-irpro { font-feature-settings: "tnum" 1; }
.cms-theme-irpro p { max-width: 72ch; }
.cms-theme-irpro .text-center p, .cms-theme-irpro .text-md-center p { margin-left: auto; margin-right: auto; }
html[lang="th"] .cms-theme-irpro h1, html[lang="th"] .cms-theme-irpro h2, html[lang="th"] .cms-theme-irpro h3 { line-height: 1.38; }
html[lang="th"] .cms-theme-irpro .sk-h-hero, html[lang="th"] .cms-theme-irpro .sk-h-display { line-height: 1.32; letter-spacing: 0; }
.cms-theme-irpro .sk-h-hero { font-weight: 700; }
.cms-theme-irpro .cms-text a:not(.btn), .cms-theme-irpro .post-content a:not(.btn) { color: var(--irp-blue); text-decoration-thickness: 1px; }
.cms-theme-irpro :focus-visible { outline: 3px solid var(--irp-blue); outline-offset: 2px; }
.cms-theme-irpro ::selection { background: #CFE0FA; }
.cms-theme-irpro .sk-text-lead { font-size: 1.125rem; }

/* ---- Buttons: squared, solid blue; outline in ink ------------------------- */
.cms-theme-irpro .btn, .cms-theme-irpro .sk-btn { font-weight: 600; letter-spacing: 0; }
.cms-theme-irpro .sk-btn-outline { border-width: 1.5px; border-color: var(--irp-ink); }
.cms-theme-irpro .sk-btn-outline:hover { background: var(--irp-ink); border-color: var(--irp-ink); color: #fff !important; }
.cms-theme-irpro .sk-btn-accent { background: var(--irp-tag); border-color: var(--irp-tag); color: var(--irp-ink) !important; }
.cms-theme-irpro .sk-tone-dark .sk-btn-primary { background: var(--irp-tag); border-color: var(--irp-tag); color: var(--irp-ink) !important; }
.cms-theme-irpro .sk-tone-dark .sk-btn-primary:hover { filter: brightness(.94); }
.cms-theme-irpro .sk-tone-dark .sk-btn-outline:hover { background: #fff; color: var(--irp-ink) !important; }

/* ---- Header (builder) ------------------------------------------------------ */
.cms-theme-irpro #header .header-body { box-shadow: none; }
.cms-theme-irpro .hf-top--dark { background: var(--irp-ink) !important; }
.cms-theme-irpro .hf-top { font-size: 13.5px; }
.cms-theme-irpro .hf-top .hf-text { color: #C3CCD8; }
.cms-theme-irpro .hf-header .hf-main { min-height: 76px; }
.cms-theme-irpro .hf-header .cms-logo-text { font-family: 'IRP Plex', 'IRP Plex Thai', sans-serif; font-weight: 700; font-size: 1.6rem; letter-spacing: .02em; color: var(--irp-ink); }
.cms-theme-irpro .hf-main .hf-phone a, .cms-theme-irpro .hf-main .hf-phone { color: var(--irp-ink); font-weight: 600; }
.cms-theme-irpro .hf-main .hf-phone i { color: var(--irp-blue); }
html .cms-theme-irpro #header .header-nav-main nav > ul > li > a { font-size: 15px; font-weight: 500; opacity: 1; }
html .cms-theme-irpro #header .header-nav-main nav > ul > li > a.active,
html .cms-theme-irpro #header .header-nav nav > ul > li.active > a { color: var(--irp-blue) !important; box-shadow: inset 0 -2px 0 var(--irp-blue); }
@media (max-width: 991.98px) {
	html .cms-theme-irpro #header .header-nav-main nav > ul > li > a.active { box-shadow: none; }
}

/* ---- Inner page header ----------------------------------------------------- */
.cms-theme-irpro .page-header { padding: 56px 0 48px; margin-bottom: 0; border-bottom: 0 !important; background: var(--irp-wash) !important; }
.cms-theme-irpro .page-header h1 { font-size: var(--sk-display-size); }

/* ---- Bands ----------------------------------------------------------------- */
.cms-theme-irpro .sk-tone-soft { background: var(--irp-wash) !important; }
.cms-theme-irpro .sk-tone-surface { background: #fff !important; }
.cms-theme-irpro .sk-tone-dark { background: var(--irp-ink) !important; }
.cms-theme-irpro .sk-tone-brand { background: var(--irp-blue) !important; }
.cms-theme-irpro .sk-tone-dark .sk-text-muted, .cms-theme-irpro .sk-tone-dark .sk-text-muted p { color: var(--sk-dark-text); }


/* ---- Badges ------------------------------------------------------------------ */
.cms-theme-irpro .sk-badge-pill { border-radius: 4px; border-color: var(--sk-border-strong); font-size: 13px; padding: 5px 10px; }
.cms-theme-irpro .sk-badge-solid { border-radius: 4px; background: var(--irp-tag); color: var(--irp-ink); font-size: 13px; padding: 5px 10px; }
.cms-theme-irpro .sk-badge-eyebrow { color: var(--irp-blue); }

/* ---- Cards and features -------------------------------------------------------- */
.cms-theme-irpro .sk-col-card { border-radius: 6px; }
.cms-theme-irpro .sk-col-card:hover { box-shadow: var(--sk-shadow-hover); }
.cms-theme-irpro .sk-feature-title { font-weight: 700; font-size: 1.1rem; }
.cms-theme-irpro .sk-feature-icon { border-radius: 6px; color: var(--irp-blue); }
.cms-theme-irpro .sk-feature-tile .sk-feature-icon, .cms-theme-irpro .sk-feature-inline .sk-feature-icon { background: #fff; border: 1px solid var(--sk-border); }
.cms-theme-irpro .sk-tone-soft .sk-feature-tile .sk-feature-icon { background: #fff; }
.cms-theme-irpro .sk-feature-number { font-family: var(--sk-font-display); background: transparent; color: var(--irp-blue); padding: 0; font-size: 14px; font-weight: 700; }
.cms-theme-irpro .sk-stat-value { color: var(--irp-blue); font-weight: 700; letter-spacing: -0.02em; }
.cms-theme-irpro .sk-tone-dark .sk-stat-value { color: var(--irp-tag); }

/* Industries: chips as plain tags */
.cms-theme-irpro .sk-chip { border-radius: 4px; font-size: 15px; padding: 9px 14px; border-color: var(--sk-border-strong); }
.cms-theme-irpro .sk-chip i { color: var(--irp-blue); }

/* ---- Signature: the quality line, raw material -> delivery ----------------------- */
.cms-theme-irpro .irp-line .row:has(> .irp-station) { --irp-marker: 34px; row-gap: 32px; }
.cms-theme-irpro .irp-line .irp-station { position: relative; }
.cms-theme-irpro .irp-line .sk-feature { position: relative; padding-top: calc(var(--irp-marker) + 22px); }
.cms-theme-irpro .irp-line .sk-feature-number {
	position: absolute; top: 0; left: 0; z-index: 1;
	display: inline-flex; align-items: center; justify-content: center;
	width: var(--irp-marker); height: var(--irp-marker); border-radius: 3px;
	background: var(--irp-tag); color: var(--irp-ink); font-size: 14px; font-weight: 700;
	box-shadow: 0 0 0 5px var(--irp-wash);
}
.cms-theme-irpro .irp-line .sk-feature::before {
	content: ""; position: absolute; top: calc(var(--irp-marker) / 2 - 1px); left: 0; right: -24px; height: 2px; background: var(--irp-ink);
}
.cms-theme-irpro .irp-line .irp-station:last-child .sk-feature::before { right: 0; background: linear-gradient(90deg, var(--irp-ink) 40%, transparent); }
.cms-theme-irpro .irp-line .sk-feature-title { font-size: 1.05rem; margin-bottom: 6px; }
.cms-theme-irpro .irp-line .sk-feature-text { font-size: .95rem; color: var(--sk-text); }
@media (min-width: 992px) {
	.cms-theme-irpro .irp-line .irp-station { flex: 1 1 0; max-width: none; }
}
@media (max-width: 991.98px) {
	.cms-theme-irpro .irp-line .row:has(> .irp-station) { row-gap: 0; --bs-gutter-y: 0; }
	.cms-theme-irpro .irp-line .sk-feature { padding: 0 0 28px calc(var(--irp-marker) + 20px); }
	.cms-theme-irpro .irp-line .sk-feature::before { top: 0; bottom: 0; left: calc(var(--irp-marker) / 2 - 1px); right: auto; width: 2px; height: auto; }
	.cms-theme-irpro .irp-line .irp-station:last-child .sk-feature::before { background: linear-gradient(180deg, var(--irp-ink) 30%, transparent); right: auto; }
}

/* ---- Home intro: product mosaic ---------------------------------------------------- */
.cms-theme-irpro .irp-mosaic .row { --bs-gutter-x: 12px; --bs-gutter-y: 12px; }
.cms-theme-irpro .irp-mosaic img { border-radius: 4px; border: 1px solid var(--sk-border); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; background: #fff; }
.cms-theme-irpro .irp-facts-band { padding-bottom: 8px; }
.cms-theme-irpro .irp-facts-band > .container { border-top: 1px solid var(--sk-border); border-bottom: 1px solid var(--sk-border); padding-top: 22px; padding-bottom: 22px; }
.cms-theme-irpro .irp-facts-band .sk-feature-inline .sk-feature-icon { width: 38px; height: 38px; font-size: 1rem; flex: 0 0 38px; }
.cms-theme-irpro .irp-facts-band .sk-feature-title { font-size: .98rem; margin: 0; }
.cms-theme-irpro .irp-facts-band .sk-feature-text { font-size: .9rem; margin: 0; }

/* ---- Slider: brand bands with framed product photos ------------------------------- */
.cms-theme-irpro .irp-slider .cms-slider .cms-layer-text h2 { font-family: var(--sk-font-display); font-weight: 700; line-height: 1.3; letter-spacing: 0; color: inherit; }
.cms-theme-irpro .irp-slider .cms-slider .cms-layer-text p { line-height: 1.6; max-width: none; color: inherit; }
.cms-theme-irpro .irp-slider .cms-slider .btn { border-radius: 6px; font-weight: 600; padding: 12px 22px; font-size: 15px; }
.cms-theme-irpro .irp-slider .cms-slider .btn-light { background: #fff; border-color: #fff; color: var(--irp-ink) !important; }
.cms-theme-irpro .irp-slider .cms-slider .btn-secondary { background: var(--irp-tag); border-color: var(--irp-tag); color: var(--irp-ink) !important; }
.cms-theme-irpro .irp-slider .owl-dots .owl-dot span { background: rgba(255, 255, 255, .45) !important; border-radius: 2px; width: 22px; height: 4px; }
.cms-theme-irpro .irp-slider .owl-dots .owl-dot.active span { background: #fff !important; }
@media (prefers-reduced-motion: reduce) {
	.cms-theme-irpro .irp-slider [data-appear-animation] { animation: none !important; opacity: 1 !important; }
}

/* ---- Product catalogue ---------------------------------------------------------- */
.cms-theme-irpro .sk-category-card { border-radius: 6px; min-height: 210px; }
.cms-theme-irpro .sk-category-card.has-image .sk-category-text { background-image: linear-gradient(180deg, rgba(20, 32, 51, 0), rgba(20, 32, 51, .86) 55%); }
.cms-theme-irpro .sk-category-icon { width: 38px; height: 38px; border-radius: 4px; background: #fff; color: var(--irp-blue); display: inline-flex; align-items: center; justify-content: center; font-size: 1rem; }
.cms-theme-irpro .sk-category-name { font-family: var(--sk-font-display); font-size: 1.1rem; }
.cms-theme-irpro .sk-product-card--standard { background: #fff; border: 1px solid var(--sk-border); border-radius: 6px; padding: 10px 10px 16px; transition: border-color .18s ease, box-shadow .18s ease; }
.cms-theme-irpro .sk-product-card--standard:hover { border-color: var(--sk-border-strong); box-shadow: var(--sk-shadow-hover); }
.cms-theme-irpro .sk-product-card--standard .sk-product-body { padding: 14px 6px 0; }
.cms-theme-irpro .sk-product-card:hover .sk-product-media img { transform: none; }
.cms-theme-irpro .sk-product-excerpt { font-size: .9rem; color: var(--sk-muted); display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cms-theme-irpro .sk-price-text { color: var(--irp-blue); font-weight: 600; font-size: .95rem; }
.cms-theme-irpro .sk-product-more { color: var(--irp-blue); }
.cms-theme-irpro .sk-filter-chip { border-radius: 4px; }
.cms-theme-irpro .sk-filter-chip.is-active { background: var(--irp-blue); border-color: var(--irp-blue); color: #fff; }
.cms-theme-irpro .sk-products-search input, .cms-theme-irpro .sk-products-sort select { border-radius: 4px; }

/* ---- Gallery ------------------------------------------------------------------- */
.cms-theme-irpro .cms-gallery img, .cms-theme-irpro .lightbox img { border-radius: 4px; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; background: #fff; }
.cms-theme-irpro .cms-gallery a.img-thumbnail { padding: 0; border: 1px solid var(--sk-border); border-radius: 4px; }

/* ---- FAQ --------------------------------------------------------------------- */
html .cms-theme-irpro .cms-accordion .accordion-toggle:after { color: var(--irp-blue); }

/* ---- Contact page: details list ------------------------------------------------ */
.cms-theme-irpro .irp-contact .sk-feature-inline { padding: 14px 0; border-bottom: 1px solid var(--sk-border); margin: 0; }
.cms-theme-irpro .irp-contact .sk-feature-inline:last-child { border-bottom: 0; }
.cms-theme-irpro .irp-contact .sk-feature-title { font-size: 1rem; }

/* ---- Footer (builder, dark) ---------------------------------------------------- */
.cms-theme-irpro .hf-footer { font-size: 14.5px; }
.cms-theme-irpro .hf-footer .hf-heading { color: #fff; font-family: var(--sk-font-display); font-weight: 600; }
.cms-theme-irpro .hf-footer .cms-logo-text { color: #fff; font-weight: 700; letter-spacing: .02em; }
.cms-theme-irpro .hf-footer a:not(.btn):hover { color: #fff; }
.cms-theme-irpro .hf-footer-bottom { font-size: 13px; }

/* ---- Blog ---------------------------------------------------------------------- */
.cms-theme-irpro .post .post-image img, .cms-theme-irpro .cms-post-card img { border-radius: 4px; }

/* ---- Misc ----------------------------------------------------------------------- */
.cms-theme-irpro .scroll-to-top { border-radius: 6px; background: var(--irp-blue); }
@media (prefers-reduced-motion: reduce) {
	.cms-theme-irpro .sk-product-card--standard { transition: none; }
}

/* ---- Fixes after review ---------------------------------------------------------- */
.cms-theme-irpro .irp-slider .cms-layer-text h2, .cms-theme-irpro .irp-slider .cms-layer-text p { font-size: inherit; margin: 0; }
.cms-theme-irpro .sk-category-card, .cms-theme-irpro .sk-category-card:hover, .cms-theme-irpro .sk-product-title a, .cms-theme-irpro .sk-product-title a:hover { text-decoration: none !important; }
.cms-theme-irpro .sk-product-more { text-decoration: none; font-size: .925rem; }
.cms-theme-irpro .sk-product-more::after { content: " \203A"; }
.cms-theme-irpro .sk-product-card:hover .sk-product-more { text-decoration: underline; text-underline-offset: 3px; }
.cms-theme-irpro .cms-accordion .card { border: 0 !important; border-bottom: 1px solid var(--sk-border-strong) !important; border-radius: 0 !important; }
.cms-theme-irpro .cms-accordion .card:first-child { border-top: 1px solid var(--sk-border-strong) !important; }
.cms-theme-irpro section.irp-slider { padding-top: 0 !important; padding-bottom: 0 !important; }
@media (max-width: 575.98px) { .cms-theme-irpro .hf-main .hf-button { display: none; } }
.cms-theme-irpro .sk-product-more, .cms-theme-irpro .sk-products-more { text-decoration: none !important; }
html .cms-theme-irpro #header .header-nav-main nav > ul > li > a.active, html .cms-theme-irpro #header .header-nav-main nav > ul > li.active > a, html .cms-theme-irpro #header .header-nav-main nav > ul > li > a.current-page-active { background: transparent !important; }
html .cms-theme-irpro #header .header-nav-main nav > ul > li > a { text-transform: none !important; }
