/* ===== เดิมมาจาก: css/pages/contact/01-base.css ===== */
/* Source: contact.html */
/* ==================================================
   CSS หน้าติดต่อ
   ใช้กับ contact.html
================================================== */

:root {
    --navy: #082d67;
    --navy-dark: #051e45;
    --blue: #0d4aa6;
    --red: #df1722;
    --red-dark: #b91019;
    --white: #ffffff;
    --light: #f3f6fa;
    --border: #dfe6ef;
    --text: #17243a;
    --muted: #5f6e82;
    --shadow: 0 15px 40px rgba(8, 45, 103, 0.14);
}

/* =========================================
   ตั้งค่าพื้นฐาน
========================================= */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    color: var(--text);
    background: var(--white);
    font-family: "Noto Sans Thai", sans-serif;
    line-height: 1.75;
}

a {
    color: inherit;
    text-decoration: none;
}

.container {
    width: min(1180px, calc(100% - 40px));
    margin-inline: auto;
}

.section-space {
    padding: 95px 0;
}

.section-label {
    color: var(--red);
    font-weight: 800;
}

.section-heading {
    max-width: 760px;
    margin: 0 auto 42px;
    text-align: center;
}

.section-heading h2 {
    margin: 8px 0 12px;
    color: var(--navy);
    font-size: clamp(30px, 3.5vw, 44px);
    line-height: 1.35;
}

.section-heading > p:last-child {
    color: var(--muted);
}

/* =========================================
   Navbar เหมือนทุกหน้า
========================================= */
.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: var(--white);
    box-shadow: 0 3px 15px rgba(3, 26, 60, 0.09);
}

.topbar {
    color: var(--white);
    background: var(--navy-dark);
    font-size: 14px;
}

.topbar-content {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.topbar-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

.topbar a {
    color: var(--white);
}

.topbar i {
    margin-right: 5px;
}

.navbar-content {
    min-height: 86px;
    display: flex;
    align-items: center;
    gap: 28px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-right: auto;
    color: var(--navy);
}

.brand-logo {
    width: 48px;
    height: 55px;
    flex: 0 0 48px;
    display: grid;
    place-items: center;
    color: var(--white);
    background: var(--navy);
    border: 3px solid var(--red);
    border-radius: 10px 10px 20px 20px;
    font-size: 25px;
    font-weight: 800;
}

.brand-name {
    white-space: nowrap;
}

.brand-name strong,
.brand-name span {
    display: block;
    line-height: 1.4;
}

.brand-name strong {
    font-size: 16px;
}

.brand-name span {
    font-size: 14px;
    font-weight: 600;
}

.nav-menu {
    display: flex;
    align-items: center;
    gap: 22px;
}

.nav-menu a {
    position: relative;
    padding: 29px 0;
    color: var(--navy);
    white-space: nowrap;
    font-size: 15px;
    font-weight: 600;
}

.nav-menu a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 18px;
    left: 0;
    height: 3px;
    background: var(--red);
    transform: scaleX(0);
    transition: transform 0.2s;
}

.nav-menu a:hover::after,
.nav-menu a.active::after {
    transform: scaleX(1);
}

.contact-button {
    flex: 0 0 auto;
    padding: 10px 17px;
    color: var(--white);
    background: var(--red);
    border-radius: 7px;
    white-space: nowrap;
    font-weight: 700;
}

.contact-button:hover {
    background: var(--red-dark);
}

/* =========================================
   แบนเนอร์
========================================= */
.page-banner {
    position: relative;
    overflow: hidden;
    color: var(--white);
    background:
        radial-gradient(
            circle at 80% 50%,
            rgba(49, 122, 231, 0.55),
            transparent 32%
        ),
        linear-gradient(
            120deg,
            var(--navy-dark),
            var(--navy)
        );
}

.banner-decoration {
    position: absolute;
    top: -150px;
    right: -50px;
    width: 430px;
    height: 430px;
    border: 80px solid rgba(255, 255, 255, 0.05);
    border-radius: 50%;
}

.banner-content {
    position: relative;
    z-index: 1;
    min-height: 330px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.banner-content > p:first-child {
    color: #c5d9f7;
    font-weight: 700;
}

.banner-content h1 {
    margin-top: 7px;
    font-size: clamp(42px, 5vw, 65px);
    line-height: 1.2;
}

.banner-description {
    margin-top: 10px;
    color: #d4e1f5;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 20px;
    font-size: 14px;
}

.breadcrumb a {
    color: #bad1f3;
}

.breadcrumb span {
    font-weight: 700;
}

/* =========================================
   การ์ดข้อมูลติดต่อ
========================================= */
.contact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}

.contact-card {
    min-height: 190px;
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 27px;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 14px;
    transition: 0.25s;
}

.contact-card:hover {
    border-color: #a7bce0;
    transform: translateY(-5px);
    box-shadow: var(--shadow);
}

.contact-address {
    grid-column: span 2;
}

.contact-icon {
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    color: var(--white);
    background: var(--navy);
    border-radius: 13px;
    font-size: 26px;
}

.contact-icon.red {
    background: var(--red);
}

.contact-card h3 {
    color: var(--navy);
    font-size: 19px;
}

.contact-card p,
.contact-card a {
    display: block;
    margin-top: 8px;
    color: var(--muted);
}

.contact-card a:hover {
    color: var(--red);
}

/* =========================================
   ส่วนปุ่มโทรศัพท์
========================================= */
.call-section {
    padding: 50px 0;
    color: var(--white);
    background:
        linear-gradient(
            135deg,
            var(--navy-dark),
            var(--navy)
        );
}

.call-content {
    display: flex;
    align-items: center;
    gap: 25px;
}

.call-icon {
    flex: 0 0 75px;
    width: 75px;
    height: 75px;
    display: grid;
    place-items: center;
    color: var(--white);
    background: var(--red);
    border-radius: 18px;
    font-size: 33px;
}

.call-text {
    margin-right: auto;
}

.call-text h2 {
    margin: 2px 0;
    font-size: clamp(26px, 3vw, 37px);
}

.call-text span {
    color: #c6d8f3;
}

.call-button {
    padding: 13px 22px;
    color: var(--navy);
    background: var(--white);
    border-radius: 8px;
    white-space: nowrap;
    font-weight: 800;
    transition: 0.2s;
}

.call-button:hover {
    transform: translateY(-2px);
}

/* =========================================
   ที่ตั้งและแผนที่
========================================= */
.location-grid {
    display: grid;
    grid-template-columns: 0.95fr 1.05fr;
    align-items: center;
    gap: 65px;
}

.location-content h2 {
    margin: 8px 0 15px;
    color: var(--navy);
    font-size: clamp(30px, 3.5vw, 44px);
    line-height: 1.35;
}

.location-content > p:not(.section-label) {
    color: var(--muted);
}

.address-box {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin-top: 24px;
    padding: 18px;
    color: var(--navy);
    background: var(--light);
    border-radius: 10px;
}

.address-box i {
    flex: 0 0 auto;
    margin-top: 3px;
    color: var(--red);
    font-size: 22px;
}

.location-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 20px;
    padding: 11px 20px;
    color: var(--white);
    background: var(--navy);
    border-radius: 7px;
    font-weight: 700;
}

.map-placeholder {
    position: relative;
    min-height: 450px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: var(--navy);
    text-align: center;
    background: #e7edf5;
    border: 1px solid var(--border);
    border-radius: 20px;
}

.map-grid {
    position: absolute;
    inset: 0;
    opacity: 0.45;
    background-image:
        linear-gradient(#b8c7d9 1px, transparent 1px),
        linear-gradient(90deg, #b8c7d9 1px, transparent 1px);
    background-size: 45px 45px;
}

.map-pin,
.map-placeholder strong,
.map-placeholder span {
    position: relative;
    z-index: 1;
}

.map-pin {
    width: 75px;
    height: 75px;
    display: grid;
    place-items: center;
    color: var(--white);
    background: var(--red);
    border-radius: 50%;
    font-size: 37px;
    box-shadow: var(--shadow);
}

.map-placeholder strong {
    margin-top: 18px;
    font-size: 22px;
}

.map-placeholder span {
    color: var(--muted);
}

/* =========================================
   ประเภทบริการ
========================================= */
.service-area {
    background: var(--light);
}

.service-area-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 17px;
}

.service-area-grid div {
    min-height: 150px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: var(--navy);
    text-align: center;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: 12px;
}

.service-area-grid i {
    color: var(--red);
    font-size: 39px;
}

.service-area-grid span {
    font-weight: 700;
}

/* =========================================
   ติดต่อด้านล่าง
========================================= */
.contact-strip {
    padding: 55px 0;
    color: var(--white);
    background: var(--red);
}

.contact-strip-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
}

.contact-strip h2 {
    margin: 3px 0;
    font-size: clamp(28px, 3vw, 38px);
}

.strip-button {
    padding: 13px 23px;
    color: var(--navy);
    background: var(--white);
    border-radius: 8px;
    white-space: nowrap;
    font-weight: 800;
}

/* =========================================
   Footer เหมือนทุกหน้า
========================================= */
.footer {
    padding-top: 55px;
    color: #d6e2f4;
    background: var(--navy-dark);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.65fr 1.2fr;
    gap: 55px;
    padding-bottom: 45px;
}

.footer h3,
.footer h4 {
    margin-bottom: 17px;
    color: var(--white);
}

.footer-menu ul {
    list-style: none;
}

.footer-menu li {
    margin-bottom: 7px;
}

.footer-menu a:hover {
    color: var(--white);
}

.footer-contact p {
    margin-bottom: 10px;
}

.footer-contact i {
    margin-right: 7px;
    color: #ff515b;
}

.footer-bottom {
    padding: 17px 20px;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, 0.14);
    font-size: 13px;
}

/* =========================================
   แท็บเล็ต
========================================= */
@media (min-width: 1051px) {
    .navbar-content { gap: 18px; }
    .nav-menu { gap: 15px; }
    .nav-menu a { font-size: 14px; }
    .contact-button { padding-inline: 17px; }
}

@media (max-width: 1050px) {
    .nav-menu,
    .contact-button {
        display: none;
    }

    .contact-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .location-grid {
        grid-template-columns: 1fr;
    }

    .service-area-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }
}

/* =========================================
   โทรศัพท์
========================================= */
@media (max-width: 700px) {
    .container {
        width: min(100% - 30px, 1180px);
    }

    .section-space {
        padding: 65px 0;
    }

    .topbar-content {
        padding-block: 8px;
        flex-direction: column;
        gap: 3px;
        text-align: center;
    }

    .topbar-left {
        flex-wrap: wrap;
        justify-content: center;
    }

    .brand-name strong {
        font-size: 13px;
    }

    .brand-name span {
        font-size: 12px;
    }

    .banner-content {
        min-height: 260px;
    }

    .contact-grid,
    .service-area-grid {
        grid-template-columns: 1fr;
    }

    .contact-address {
        grid-column: auto;
    }

    .call-content {
        flex-direction: column;
        align-items: flex-start;
    }

    .call-button {
        width: 100%;
        text-align: center;
    }

    .map-placeholder {
        min-height: 330px;
    }

    .contact-strip-content {
        flex-direction: column;
        align-items: flex-start;
    }

    .strip-button {
        width: 100%;
        text-align: center;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }
}

/* =========================================
   ส่วนติดต่อด้านล่าง ใช้รูปแบบเดียวกันทุกหน้า
========================================= */
.shared-contact-strip {
    padding: 55px 0;
    color: #ffffff;
    background: #df1722;
}

.shared-contact-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 35px;
}

.shared-contact-strip p {
    margin: 0;
    font-weight: 700;
}

.shared-contact-strip h2 {
    margin: 3px 0;
    color: #ffffff;
    font-size: clamp(28px, 3vw, 38px);
    line-height: 1.4;
}

.shared-contact-strip span {
    color: #ffffff;
}

.shared-contact-actions {
    display: flex;
    flex-shrink: 0;
    gap: 12px;
}

.shared-contact-button {
    min-height: 50px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 23px;
    border-radius: 7px;
    font-weight: 700;
    text-decoration: none;
}

.shared-contact-button.light {
    color: #082d67;
    background: #ffffff;
}

.shared-contact-button.dark {
    color: #ffffff;
    background: #051e45;
}

@media (max-width: 700px) {
    .shared-contact-content,
    .shared-contact-actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .shared-contact-actions,
    .shared-contact-button {
        width: 100%;
    }
}

/* =========================================
   Footer รูปแบบใหม่ — ใช้เหมือนกันทุกหน้า
========================================= */
.footer {
    position: relative;
    overflow: hidden;
}

.footer::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 4px;
    background: linear-gradient(90deg, #df1722 0 34%, #ffffff 34% 66%, #0d4aa6 66%);
}

.footer-grid {
    grid-template-columns: 1fr 0.62fr 1.45fr;
    align-items: start;
    gap: 48px;
}

.footer-company h3 {
    position: relative;
    padding-bottom: 17px;
    line-height: 1.55;
}

.footer-company h3::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 52px;
    height: 3px;
    background: #df1722;
    border-radius: 99px;
}

.footer-company p {
    margin-top: 18px;
    color: #b9c9df;
    line-height: 1.9;
}

.footer-menu h4 {
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.footer-menu a {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 4px 0 4px 17px;
    transition: color 0.25s ease, transform 0.25s ease;
}

.footer-menu a::before {
    content: "";
    position: absolute;
    left: 0;
    width: 6px;
    height: 6px;
    background: #df1722;
    border-radius: 50%;
}

.footer-menu a:hover {
    color: #ffffff;
    transform: translateX(4px);
}

.footer-contact-modern {
    padding: 25px;
    background: rgba(255, 255, 255, 0.055);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 18px;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16);
}

.footer-section-heading {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 19px;
}

.footer-heading-icon {
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    display: grid;
    place-items: center;
    color: #ffffff;
    background: #df1722;
    border-radius: 13px;
    font-size: 21px;
}

.footer-eyebrow {
    margin: 0 !important;
    color: #ff7d85 !important;
    font-size: 12px;
    font-weight: 700;
}

.footer-section-heading h4 {
    margin: 1px 0 0;
    font-size: 19px;
}

.footer-address-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 15px;
    padding: 14px 15px;
    color: #c8d6e9;
    background: rgba(5, 30, 69, 0.54);
    border-radius: 12px;
}

.footer-address-card > i {
    margin-top: 3px;
    color: #ff515b;
    font-size: 18px;
}

.footer-address-card strong {
    display: block;
    margin-bottom: 3px;
    color: #ffffff;
    font-size: 13px;
}

.footer-address-card address {
    margin: 0;
    font-style: normal;
    font-size: 13px;
    line-height: 1.7;
}

.footer-contact-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.footer-person-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 13px;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    transition: transform 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}

.footer-person-card:hover {
    color: #ffffff;
    background: rgba(223, 23, 34, 0.2);
    border-color: rgba(255, 81, 91, 0.55);
    transform: translateY(-3px);
}

.footer-person-icon {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    color: #ffffff;
    background: #df1722;
    border-radius: 10px;
}

.footer-person-info {
    min-width: 0;
}

.footer-person-info small,
.footer-person-info strong,
.footer-person-info b {
    display: block;
    line-height: 1.35;
}

.footer-person-info small {
    color: #9fb3cf;
    font-size: 10px;
}

.footer-person-info strong {
    margin: 2px 0;
    font-size: 14px;
}

.footer-person-info b {
    color: #ff7d85;
    white-space: nowrap;
    font-size: 13px;
}

.footer-call-icon {
    color: #ff7d85;
    font-size: 14px;
}

.footer-bottom {
    color: #9fb3cf;
    background: rgba(0, 0, 0, 0.12);
}

@media (max-width: 1100px) {
    .footer-grid {
        grid-template-columns: 1fr 1fr;
    }

    .footer-contact-modern {
        grid-column: 1 / -1;
    }
}

@media (max-width: 700px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .footer-contact-modern {
        grid-column: auto;
        padding: 20px;
    }

    .footer-contact-list {
        grid-template-columns: 1fr;
    }
}
/* การ์ดผู้ติดต่อใหม่ในหน้าติดต่อ */
.contact-person-card {
    position: relative;
    overflow: hidden;
    border-top: 4px solid var(--red);
}

.contact-person-card::after {
    content: "";
    position: absolute;
    right: -32px;
    bottom: -32px;
    width: 95px;
    height: 95px;
    background: rgba(223, 23, 34, 0.07);
    border-radius: 50%;
}

.contact-person-detail {
    position: relative;
    z-index: 1;
}

.contact-role {
    display: inline-block;
    margin-bottom: 4px;
    color: var(--red);
    font-size: 12px;
    font-weight: 800;
}

.contact-person-detail h3 {
    margin-bottom: 7px;
    font-size: 23px;
}

.contact-call-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--navy);
    font-size: 17px;
    font-weight: 800;
}

.contact-call-link:hover {
    color: var(--red);
}

.call-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.call-button-secondary {
    color: #ffffff;
    background: var(--navy-dark);
}

@media (max-width: 700px) {
    .call-actions {
        width: 100%;
        flex-direction: column;
    }

    .call-actions .call-button {
        width: 100%;
    }
}

/* =========================================
   Footer ปรับใหม่ — เรียบ โปร่ง และสมดุล
========================================= */
.footer::before {
    display: none;
}

.footer-grid {
    grid-template-columns: 1.05fr 0.62fr 1.2fr;
    align-items: start;
    gap: clamp(38px, 5vw, 76px);
}

.footer-company h3::after {
    width: 42px;
    height: 2px;
}

.footer-contact-modern {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.footer-section-heading {
    gap: 11px;
    margin-bottom: 17px;
    padding-bottom: 13px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.footer-heading-icon {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
    background: rgba(223, 23, 34, 0.16);
    border: 1px solid rgba(255, 81, 91, 0.35);
    border-radius: 9px;
    color: #ff626b;
    font-size: 17px;
}

.footer-eyebrow {
    color: #ff7078 !important;
    font-size: 11px;
    letter-spacing: 0.2px;
}

.footer-section-heading h4 {
    margin: 0;
    font-size: 18px;
}

.footer-address-card {
    gap: 11px;
    margin-bottom: 12px;
    padding: 5px 0 13px;
    background: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0;
}

.footer-address-card > i {
    margin-top: 4px;
    color: #ff626b;
    font-size: 16px;
}

.footer-address-card strong {
    margin-bottom: 2px;
    font-size: 12px;
}

.footer-address-card address {
    color: #b9c9df;
    font-size: 12px;
    line-height: 1.7;
}

.footer-contact-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

.footer-person-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.045);
    border: 1px solid transparent;
    border-radius: 9px;
}

.footer-person-card:hover {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
    transform: translateX(4px);
}

.footer-person-icon {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    color: #ff626b;
    background: rgba(223, 23, 34, 0.14);
    border-radius: 8px;
    font-size: 13px;
}

.footer-person-info {
    display: grid;
    grid-template-columns: minmax(85px, auto) 1fr;
    align-items: center;
    column-gap: 12px;
    flex: 1;
}

.footer-person-info small {
    display: none;
}

.footer-person-info strong {
    margin: 0;
    color: #ffffff;
    font-size: 13px;
}

.footer-person-info b {
    color: #ff7b83;
    text-align: right;
    font-size: 14px;
}

.footer-call-icon {
    margin-left: 3px;
    color: #ff626b;
    font-size: 13px;
}

@media (max-width: 1100px) {
    .footer-grid {
        grid-template-columns: 1fr 0.65fr;
    }

    .footer-contact-modern {
        grid-column: 1 / -1;
        max-width: 680px;
    }
}

@media (max-width: 700px) {
    .footer-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .footer-contact-modern {
        grid-column: auto;
        max-width: none;
        padding: 0;
    }

    .footer-person-info {
        grid-template-columns: 1fr;
        gap: 1px;
    }

    .footer-person-info b {
        text-align: left;
    }
}

/* ข้อความนำหัวข้อสีแดง เช่น “ความไว้วางใจ” */
.section-label,
.section-kicker {
    margin-bottom: 9px;
    color: #df1722;
    font-size: clamp(18px, 1.35vw, 22px);
    font-weight: 800;
    line-height: 1.4;
    letter-spacing: 0.15px;
}

@media (max-width: 700px) {
    .section-label,
    .section-kicker {
        font-size: 18px;
    }
}

/* =========================================
   ข้อความนำหัวข้อสีแดง — ขนาดใหญ่และเด่นชัด
========================================= */
.section-label,
.section-kicker {
    position: relative;
    display: inline-block;
    margin: 0 0 20px;
    padding-bottom: 11px;
    color: #df1722;
    font-size: clamp(25px, 2.15vw, 32px);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.2px;
}

.section-label::after,
.section-kicker::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 52px;
    height: 4px;
    background: linear-gradient(90deg, #df1722, #ff626b);
    border-radius: 99px;
}

.section-heading .section-label,
.section-heading .section-kicker {
    display: table;
    margin-right: auto;
    margin-left: auto;
    text-align: center;
}

.section-heading .section-label::after,
.section-heading .section-kicker::after {
    left: 50%;
    transform: translateX(-50%);
}

@media (max-width: 700px) {
    .section-label,
    .section-kicker {
        margin-bottom: 16px;
        padding-bottom: 9px;
        font-size: 24px;
    }

    .section-label::after,
    .section-kicker::after {
        width: 44px;
        height: 3px;
    }
}

/* โลโก้บริษัทใน Navbar */
.brand-logo {
    width: 66px;
    height: 66px;
    flex: 0 0 66px;
    display: grid;
    place-items: center;
    overflow: visible;
    padding: 0;
    color: transparent;
    background: transparent;
    border: 0;
    border-radius: 0;
}

.brand-logo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 3px 5px rgba(5, 30, 69, 0.18));
}

@media (max-width: 700px) {
    .brand-logo {
        width: 54px;
        height: 54px;
        flex-basis: 54px;
    }
}
/* Header / Navbar ปรับใหม่ */
.site-header { border-top: 4px solid #df1722; }
.topbar { background: linear-gradient(90deg, #051e45, #082d67); }
.topbar-content { min-height: 38px; }
.topbar-left a { display: inline-flex; align-items: center; gap: 6px; color: #fff; font-size: 13px; font-weight: 600; }
.topbar-left a i { color: #ff626b; }
.navbar { background: rgba(255,255,255,.98); }
.navbar-content { position: relative; min-height: 92px; gap: 22px; }
.brand { margin-right: auto; gap: 14px; }
.brand-logo { width: 72px; height: 72px; flex-basis: 72px; }
.brand-name strong { color: #082d67; font-size: 17px; font-weight: 800; }
.brand-name span { margin-top: 1px; color: #334967; font-size: 14px; font-weight: 700; }
.nav-menu a { font-size: 14px; font-weight: 700; }
.contact-button { border-radius: 9px; box-shadow: 0 8px 18px rgba(223,23,34,.18); }
.nav-toggle { width: 46px; height: 46px; display: none; place-items: center; color: #fff; background: #082d67; border: 0; border-radius: 10px; font-size: 24px; cursor: pointer; }

@media (max-width: 1100px) {
    .navbar-content { min-height: 82px; }
    .brand-logo { width: 62px; height: 62px; flex-basis: 62px; }
    .nav-toggle { display: grid; flex: 0 0 46px; }
    .nav-menu { position: absolute; z-index: 20; top: calc(100% + 1px); right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; padding: 10px; background: #fff; border-top: 3px solid #df1722; border-radius: 0 0 14px 14px; box-shadow: 0 18px 35px rgba(5,30,69,.18); }
    .nav-menu.open { display: flex; }
    .nav-menu a { padding: 13px 15px; border-bottom: 1px solid #edf1f6; }
    .nav-menu a:last-child { border-bottom: 0; }
    .nav-menu a::after { display: none; }
    .nav-menu a.active { color: #df1722; background: #fff3f4; border-radius: 8px; }
}

@media (max-width: 700px) {
    .topbar-content { min-height: 42px; padding: 6px 0; flex-direction: row; overflow-x: auto; justify-content: flex-start; text-align: left; scrollbar-width: none; }
    .topbar-content::-webkit-scrollbar { display: none; }
    .topbar-left { flex-wrap: nowrap; justify-content: flex-start; white-space: nowrap; }
    .topbar-right, .topbar-content > span:last-child { display: none; }
    .navbar-content { min-height: 76px; gap: 12px; }
    .brand-logo { width: 54px; height: 54px; flex-basis: 54px; }
    .brand-name strong { font-size: 13px; }
    .brand-name span { font-size: 12px; }
    .contact-button { display: none; }
}
/* ปรับขนาดตัวอักษร Header ให้ชัดขึ้นเหมือนกันทุกหน้า */
.topbar-left a { font-size: 14px; }
.brand-name strong { font-size: 19px; line-height: 1.35; }
.brand-name span { font-size: 15px; line-height: 1.35; }
.nav-menu a { font-size: 15px; }
.contact-button { font-size: 15px; }

@media (max-width: 700px) {
    .topbar-left a { font-size: 13px; }
    .brand-name strong { font-size: 15px; }
    .brand-name span { font-size: 13px; }
    .nav-menu a { font-size: 15px; }
}
/* ทำปุ่มติดต่อข้าง Hamburger ให้เหมือนกันทุกหน้า */
@media (min-width: 701px) and (max-width: 1100px) {
    .contact-button {
        display: inline-flex !important;
        flex: 0 0 auto;
    }
}

@media (max-width: 700px) {
    .contact-button {
        display: none !important;
    }
}


/* =========================================
   ปรับหน้าติดต่อให้เน้นข้อมูลที่จำเป็น
========================================= */
.contact-information {
    background: linear-gradient(180deg, #ffffff 0%, #f8faff 100%);
}

.contact-information .section-heading {
    max-width: 850px;
}

.contact-information .section-heading > p:last-child {
    color: #4e5f77;
    font-size: 17px;
    line-height: 1.8;
}

.contact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

.contact-address {
    grid-column: 1 / -1;
}

.contact-card {
    min-height: 220px;
    padding: 30px;
    border-radius: 17px;
    box-shadow: 0 10px 28px rgba(8, 45, 103, 0.07);
}

.contact-address {
    min-height: 185px;
}

.contact-card h3 {
    font-size: 22px;
}

.contact-card p,
.contact-card a {
    color: #40516a;
    font-size: 16px;
    line-height: 1.75;
}

.contact-note {
    display: block;
    margin-top: 10px;
    color: #66758a !important;
    font-size: 14px !important;
    line-height: 1.7;
}

/* ข้อมูลที่ควรเตรียมก่อนโทร */
.contact-preparation {
    margin-top: 34px;
    padding: 30px;
    background: #082d67;
    border-radius: 18px;
    box-shadow: 0 16px 38px rgba(8, 45, 103, 0.15);
}

.contact-preparation-heading {
    margin-bottom: 23px;
}

.contact-preparation-heading p {
    color: #ff858c;
    font-size: 15px;
    font-weight: 800;
}

.contact-preparation-heading h3 {
    margin-top: 3px;
    color: #ffffff;
    font-size: clamp(24px, 2.7vw, 32px);
    line-height: 1.4;
}

.contact-preparation-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.contact-preparation-grid > div {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    padding: 18px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 12px;
}

.contact-preparation-grid i {
    margin-top: 2px;
    color: #ff7d85;
    font-size: 21px;
}

.contact-preparation-grid span,
.contact-preparation-grid strong {
    display: block;
}

.contact-preparation-grid strong {
    margin-bottom: 3px;
    color: #ffffff;
    font-size: 16px;
}

.contact-preparation-grid span {
    color: #d7e3f3;
    font-size: 14px;
    line-height: 1.7;
}

/* ส่วนโทรติดต่อ */
.call-section {
    padding: 60px 0;
}

.call-text {
    max-width: 560px;
}

.call-text p {
    color: #ff858c;
    font-weight: 800;
}

.call-text span {
    display: block;
    max-width: 600px;
    color: #d6e2f3;
    font-size: 16px;
    line-height: 1.75;
}

/* ที่ตั้ง */
.location-content > p:not(.section-label) {
    color: #40516a;
    font-size: 16px;
    line-height: 1.8;
}

.map-placeholder span {
    max-width: 340px;
    padding-inline: 20px;
    color: #4e5f77;
    line-height: 1.7;
}

/* ประเภทพื้นที่ให้บริการ */
.service-area-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

.service-area-grid div {
    min-height: 205px;
    padding: 24px 18px;
    box-shadow: 0 8px 24px rgba(8, 45, 103, 0.06);
}

.service-area-grid small {
    display: block;
    max-width: 220px;
    color: #5f6e82;
    font-size: 13px;
    line-height: 1.65;
}

@media (max-width: 1050px) {
    .contact-grid,
    .contact-preparation-grid {
        grid-template-columns: 1fr;
    }

    .contact-address {
        grid-column: auto;
    }

    .service-area-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .contact-card {
        min-height: 0;
        padding: 23px 20px;
    }

    .contact-preparation {
        padding: 23px 20px;
    }

    .contact-preparation-grid,
    .service-area-grid {
        grid-template-columns: 1fr;
    }

    .service-area-grid div {
        min-height: 180px;
    }
}


/* =========================================
   ปรับส่วนพื้นที่และประเภทบริการให้สวยและอ่านง่ายขึ้น
========================================= */
.service-area {
    background: #f3f6fa;
}

.service-area .section-heading {
    max-width: 920px;
    margin-bottom: 38px;
}

.service-area .section-heading > p:last-child {
    color: #58697f;
    font-size: 17px;
    line-height: 1.8;
}

.service-area-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 22px !important;
}

.service-card {
    position: relative;
    min-height: 252px;
    padding: 22px 22px 24px;
    background: #ffffff;
    border: 1px solid #d9e2ee;
    border-top: 4px solid #df1722;
    border-radius: 18px;
    box-shadow: 0 10px 26px rgba(8, 45, 103, 0.07);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.service-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 34px rgba(8, 45, 103, 0.12);
}

.service-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.service-card-icon {
    position: relative;
    width: 58px;
    height: 58px;
    flex: 0 0 58px;
    display: grid;
    place-items: center;
    border-radius: 15px;
    font-size: 26px;
    box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.16);
}

.service-card-icon.blue {
    color: #ffffff;
    background: linear-gradient(145deg, #1b4d9c, #082d67);
}

.service-card-icon.red {
    color: #ffffff;
    background: linear-gradient(145deg, #ef2330, #c3101b);
}

.service-card-icon .icon-dot {
    position: absolute;
    top: -5px;
    right: -4px;
    width: 16px;
    height: 16px;
    background: #ff4c57;
    border: 3px solid #ffffff;
    border-radius: 50%;
}

.service-card-number {
    color: #d7dde6;
    font-size: 28px;
    font-weight: 800;
    line-height: 1;
}

.service-card h3 {
    margin: 0 0 10px 0;
    color: #082d67;
    font-size: 18px;
    line-height: 1.45;
}

.service-card p {
    margin: 0;
    color: #55667c;
    font-size: 15px;
    line-height: 1.78;
}

@media (max-width: 1100px) {
    .service-area-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 700px) {
    .service-area .section-heading {
        margin-bottom: 28px;
    }

    .service-area .section-heading > p:last-child {
        font-size: 16px;
    }

    .service-area-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .service-card {
        min-height: 0;
        padding: 20px;
    }

    .service-card h3 {
        font-size: 17px;
    }

    .service-card p {
        font-size: 14px;
    }
}


/* =========================================
   แผนที่ Google Maps แบบโต้ตอบได้
========================================= */
.map-embed {
    min-height: 450px;
    overflow: hidden;
    background: #e7edf5;
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: 0 14px 35px rgba(8, 45, 103, 0.09);
}

.map-embed iframe {
    width: 100%;
    height: 450px;
    display: block;
    border: 0;
}

@media (max-width: 700px) {
    .map-embed,
    .map-embed iframe {
        min-height: 340px;
        height: 340px;
    }
}


/* =========================================
   ปรับขนาดตัวอักษรให้อ่านง่ายขึ้นทั้งเว็บไซต์
   แก้เฉพาะขนาดตัวอักษร ระยะบรรทัด และความชัดเจน
========================================= */
body {
    font-size: 17px;
    line-height: 1.82;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* ข้อความเนื้อหาหลัก */
main p:not(.section-label):not(.section-kicker):not(.hero-kicker):not(.hero-label):not(.contact-role):not(.footer-eyebrow) {
    font-size: 17px !important;
    line-height: 1.85 !important;
}

main li {
    font-size: 16.5px !important;
    line-height: 1.8 !important;
}

/* คำอธิบายหัวข้อและแบนเนอร์ */
.section-heading > p:last-child,
.banner-description,
.about-banner-description,
.hero-description,
.hero-slide-content > p:not(.hero-kicker),
.position-intro > p:last-of-type,
.content-heading > p:last-child {
    font-size: 18px !important;
    line-height: 1.85 !important;
}

/* หัวข้อในการ์ด */
main h3 {
    font-size: 21px;
    line-height: 1.48;
}

/* ข้อความสรุปหรือคำอธิบายขนาดเล็ก */
.quick-summary-item small,
.contact-role,
.recruiter-link span,
.contact-note,
.service-area-grid small,
.overview-card small,
.footer-eyebrow {
    font-size: 14.5px !important;
    line-height: 1.65 !important;
}

.quick-summary-item strong,
.recruiter-link b,
.contact-call-link,
.info-card strong {
    font-size: 18px !important;
    line-height: 1.5 !important;
}

/* ปุ่มและลิงก์สำคัญ */
.btn,
.button,
.hero-button,
.cta-button,
.contact-button,
.call-button,
.strip-button,
.shared-contact-button,
.location-button,
.text-link {
    font-size: 16px !important;
    line-height: 1.5 !important;
}

/* Breadcrumb */
.breadcrumb {
    font-size: 15.5px !important;
    line-height: 1.6 !important;
}

/* Header */
.topbar,
.topbar a,
.topbar-left a,
.topbar-location,
.topbar-right {
    font-size: 14.5px !important;
}

.nav-menu a {
    font-size: 15.5px !important;
}

.brand-name strong {
    font-size: 19px !important;
}

.brand-name span,
.brand-name small {
    font-size: 15px !important;
}

/* Footer ให้อ่านได้โดยไม่ต้องเพ่ง */
.footer-company p,
.footer-menu a,
.footer-address-card address {
    font-size: 14.5px !important;
    line-height: 1.8 !important;
}

.footer h3 {
    font-size: 20px;
    line-height: 1.55;
}

.footer h4,
.footer-section-heading h4 {
    font-size: 18.5px !important;
}

.footer-address-card strong,
.footer-person-info strong {
    font-size: 14px !important;
}

.footer-person-info b {
    font-size: 15px !important;
}

.footer-bottom {
    font-size: 13.5px !important;
}

/* โทรศัพท์ */
@media (max-width: 700px) {
    body {
        font-size: 16.5px;
    }

    main p:not(.section-label):not(.section-kicker):not(.hero-kicker):not(.hero-label):not(.contact-role):not(.footer-eyebrow) {
        font-size: 16.5px !important;
        line-height: 1.82 !important;
    }

    main li {
        font-size: 16px !important;
        line-height: 1.78 !important;
    }

    .section-heading > p:last-child,
    .banner-description,
    .about-banner-description,
    .hero-description,
    .hero-slide-content > p:not(.hero-kicker),
    .position-intro > p:last-of-type,
    .content-heading > p:last-child {
        font-size: 16.5px !important;
    }

    main h3 {
        font-size: 19px;
    }

    .topbar,
    .topbar a,
    .topbar-left a,
    .topbar-location,
    .topbar-right {
        font-size: 13.5px !important;
    }

    .brand-name strong {
        font-size: 15px !important;
    }

    .brand-name span,
    .brand-name small {
        font-size: 13px !important;
    }

    .footer-company p,
    .footer-menu a,
    .footer-address-card address {
        font-size: 14px !important;
    }
}


/* =========================================
   HEADER มาตรฐานเดียวกันทุกหน้า
   อ้างอิงขนาดและการจัดวางจากภาพตัวอย่าง
========================================= */
.site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
    width: 100% !important;
    background: #ffffff !important;
    border-top: 4px solid #df1722 !important;
    box-shadow: 0 3px 15px rgba(3, 26, 60, 0.09) !important;
}

.site-header .container {
    width: min(1180px, calc(100% - 40px)) !important;
    margin-inline: auto !important;
}

/* แถบข้อมูลด้านบน */
.site-header .topbar {
    height: 40px !important;
    min-height: 40px !important;
    color: #ffffff !important;
    background: #082d67 !important;
    font-size: 14px !important;
}

.site-header .topbar-content {
    min-height: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
    padding: 0 !important;
}

.site-header .topbar-left {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    min-width: 0 !important;
}

.site-header .topbar-left a,
.site-header .topbar-right {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    color: #ffffff !important;
    white-space: nowrap !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

.site-header .topbar-left a i,
.site-header .topbar-right i {
    margin: 0 !important;
    color: #ff5963 !important;
    font-size: 15px !important;
    line-height: 1 !important;
}

.site-header .topbar-divider {
    color: rgba(255, 255, 255, 0.88) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

/* แถบเมนูหลัก */
.site-header .navbar {
    height: 92px !important;
    min-height: 92px !important;
    background: #ffffff !important;
}

.site-header .navbar-content {
    position: relative !important;
    min-height: 92px !important;
    height: 92px !important;
    display: flex !important;
    align-items: center !important;
    gap: 22px !important;
    padding: 0 !important;
}

.site-header .brand {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    margin-right: auto !important;
    color: #082d67 !important;
    white-space: nowrap !important;
}

.site-header .brand-logo {
    width: 72px !important;
    height: 72px !important;
    flex: 0 0 72px !important;
    display: grid !important;
    place-items: center !important;
    overflow: visible !important;
    padding: 0 !important;
    color: transparent !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
}

.site-header .brand-logo img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: contain !important;
    filter: drop-shadow(0 3px 5px rgba(5, 30, 69, 0.18)) !important;
}

.site-header .brand-name {
    white-space: nowrap !important;
}

.site-header .brand-name strong,
.site-header .brand-name span,
.site-header .brand-name small {
    display: block !important;
    margin: 0 !important;
    line-height: 1.35 !important;
}

.site-header .brand-name strong {
    color: #082d67 !important;
    font-size: 19px !important;
    font-weight: 800 !important;
}

.site-header .brand-name span,
.site-header .brand-name small {
    margin-top: 1px !important;
    color: #334967 !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

.site-header .nav-menu {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.site-header .nav-menu a {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    min-height: 92px !important;
    padding: 0 !important;
    color: #082d67 !important;
    white-space: nowrap !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

.site-header .nav-menu a::after {
    content: "" !important;
    position: absolute !important;
    right: 0 !important;
    bottom: 20px !important;
    left: 0 !important;
    height: 3px !important;
    background: #df1722 !important;
    border-radius: 99px !important;
    transform: scaleX(0) !important;
    transform-origin: center !important;
    transition: transform 0.2s ease !important;
}

.site-header .nav-menu a:hover::after,
.site-header .nav-menu a.active::after {
    transform: scaleX(1) !important;
}

.site-header .contact-button {
    min-width: 132px !important;
    min-height: 46px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    padding: 10px 20px !important;
    color: #ffffff !important;
    background: #df1722 !important;
    border-radius: 9px !important;
    white-space: nowrap !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
    box-shadow: 0 8px 18px rgba(223, 23, 34, 0.20) !important;
    transition: background 0.2s ease, transform 0.2s ease !important;
}

.site-header .contact-button:hover {
    color: #ffffff !important;
    background: #b91019 !important;
    transform: translateY(-2px) !important;
}

.site-header .nav-toggle {
    width: 46px !important;
    height: 46px !important;
    display: none !important;
    place-items: center !important;
    flex: 0 0 46px !important;
    padding: 0 !important;
    color: #ffffff !important;
    background: #082d67 !important;
    border: 0 !important;
    border-radius: 10px !important;
    font-size: 24px !important;
    cursor: pointer !important;
}

/* แท็บเล็ต */
@media (max-width: 1100px) {
    .site-header .navbar,
    .site-header .navbar-content {
        height: 82px !important;
        min-height: 82px !important;
    }

    .site-header .brand-logo {
        width: 62px !important;
        height: 62px !important;
        flex-basis: 62px !important;
    }

    .site-header .nav-toggle {
        display: grid !important;
    }

    .site-header .nav-menu {
        position: absolute !important;
        z-index: 20 !important;
        top: calc(100% + 1px) !important;
        right: 0 !important;
        left: 0 !important;
        display: none !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
        padding: 10px !important;
        background: #ffffff !important;
        border-top: 3px solid #df1722 !important;
        border-radius: 0 0 14px 14px !important;
        box-shadow: 0 18px 35px rgba(5, 30, 69, 0.18) !important;
    }

    .site-header .nav-menu.open {
        display: flex !important;
    }

    .site-header .nav-menu a {
        min-height: 0 !important;
        padding: 13px 15px !important;
        border-bottom: 1px solid #edf1f6 !important;
    }

    .site-header .nav-menu a:last-child {
        border-bottom: 0 !important;
    }

    .site-header .nav-menu a::after {
        display: none !important;
    }

    .site-header .nav-menu a.active {
        color: #df1722 !important;
        background: #fff3f4 !important;
        border-radius: 8px !important;
    }
}

/* โทรศัพท์ */
@media (max-width: 700px) {
    .site-header .container {
        width: min(100% - 30px, 1180px) !important;
    }

    .site-header .topbar,
    .site-header .topbar-content {
        height: 42px !important;
        min-height: 42px !important;
    }

    .site-header .topbar-content {
        justify-content: flex-start !important;
        overflow-x: auto !important;
        padding: 6px 0 !important;
        scrollbar-width: none !important;
    }

    .site-header .topbar-content::-webkit-scrollbar {
        display: none !important;
    }

    .site-header .topbar-left {
        flex-wrap: nowrap !important;
        white-space: nowrap !important;
    }

    .site-header .topbar-right {
        display: none !important;
    }

    .site-header .topbar-left a {
        font-size: 13px !important;
    }

    .site-header .navbar,
    .site-header .navbar-content {
        height: 76px !important;
        min-height: 76px !important;
    }

    .site-header .navbar-content {
        gap: 12px !important;
    }

    .site-header .brand {
        gap: 10px !important;
    }

    .site-header .brand-logo {
        width: 54px !important;
        height: 54px !important;
        flex-basis: 54px !important;
    }

    .site-header .brand-name strong {
        font-size: 13px !important;
    }

    .site-header .brand-name span,
    .site-header .brand-name small {
        font-size: 12px !important;
    }

    .site-header .contact-button {
        display: none !important;
    }
}


/* ===== เดิมมาจาก: css/pages/contact/02-final-shared-navbar.css ===== */
/* Source: contact.html | style id: final-shared-navbar */
/* =========================================================
   FINAL SHARED HEADER — identical on every HTML page
   No logo frame, no menu boxes, equal typography on every link.
========================================================= */
.site-header,
.site-header * {
    box-sizing: border-box !important;
    font-family: "Noto Sans Thai", Tahoma, Arial, sans-serif !important;
}

.site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 99999 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    border: 0 !important;
    box-shadow: 0 4px 18px rgba(5, 30, 69, 0.10) !important;
}

.site-header .container,
.site-header .topbar-content,
.site-header .navbar-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
}

.site-header .topbar {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #ffffff !important;
    background: linear-gradient(90deg, #061f48 0%, #114fae 100%) !important;
    border-top: 4px solid #df1722 !important;
    border-right: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

.site-header .topbar-content {
    min-height: 46px !important;
    padding: 0 28px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 24px !important;
}

.site-header .topbar-left,
.site-header .topbar-right {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
}

.site-header .topbar a,
.site-header .topbar a:link,
.site-header .topbar a:visited,
.site-header .topbar a:hover,
.site-header .topbar a:active,
.site-header .topbar span {
    color: #ffffff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
}

.site-header .topbar a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    white-space: nowrap !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}

.site-header .topbar i {
    margin: 0 !important;
    color: #ff5963 !important;
    font-size: 17px !important;
    line-height: 1 !important;
}

.site-header .topbar-divider {
    opacity: .65 !important;
}

.site-header .navbar {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.site-header .navbar-content {
    position: relative !important;
    min-height: 108px !important;
    padding: 0 28px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 24px !important;
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.site-header .brand,
.site-header .brand:link,
.site-header .brand:visited,
.site-header .brand:hover,
.site-header .brand:active,
.site-header .brand:focus,
.site-header .brand:focus-visible {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 15px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #082d67 !important;
    text-decoration: none !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
}

.site-header .brand-logo {
    flex: 0 0 80px !important;
    width: 80px !important;
    height: 80px !important;
    min-width: 80px !important;
    min-height: 80px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    overflow: visible !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.site-header .brand-logo::before,
.site-header .brand-logo::after {
    display: none !important;
    content: none !important;
}

.site-header .brand-logo img {
    display: block !important;
    width: 80px !important;
    height: 80px !important;
    max-width: 80px !important;
    max-height: 80px !important;
    margin: 0 !important;
    padding: 0 !important;
    object-fit: contain !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transform: none !important;
}

.site-header .brand-name {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 260px !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.35 !important;
}

.site-header .brand-name strong,
.site-header .brand-name span,
.site-header .brand-name small {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.site-header .brand-name strong {
    color: #082d67 !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
}

.site-header .brand-name span,
.site-header .brand-name small {
    color: #df1722 !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
}

.site-header .nav-menu {
    position: static !important;
    flex: 0 1 auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 0 0 auto !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 16px !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.site-header .nav-menu > a,
.site-header .nav-menu > a:link,
.site-header .nav-menu > a:visited,
.site-header .nav-menu > a:hover,
.site-header .nav-menu > a:active,
.site-header .nav-menu > a.active,
.site-header .nav-menu > a:focus,
.site-header .nav-menu > a:focus-visible {
    position: relative !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 54px !important;
    margin: 0 !important;
    padding: 15px 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #102a50 !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 18px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    white-space: nowrap !important;
    text-align: center !important;
    text-decoration: none !important;
    text-transform: none !important;
    transform: none !important;
    opacity: 1 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.site-header .nav-menu > a::before {
    display: none !important;
    content: none !important;
}

.site-header .nav-menu > a::after {
    content: "" !important;
    position: absolute !important;
    right: 50% !important;
    bottom: 7px !important;
    left: 50% !important;
    width: auto !important;
    height: 3px !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #df1722 !important;
    border: 0 !important;
    border-radius: 99px !important;
    box-shadow: none !important;
    transform: none !important;
    transition: left .2s ease, right .2s ease !important;
}

.site-header .nav-menu > a:hover::after,
.site-header .nav-menu > a.active::after,
.site-header .nav-menu > a[aria-current="page"]::after,
.site-header .nav-menu > a:focus-visible::after {
    right: 0 !important;
    left: 0 !important;
}

.site-header .contact-button,
.site-header .menu-button {
    display: none !important;
}

.site-header .nav-toggle {
    flex: 0 0 50px !important;
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    margin: 0 0 0 auto !important;
    padding: 0 !important;
    display: none !important;
    place-items: center !important;
    color: #ffffff !important;
    background: #082d67 !important;
    border: 0 !important;
    outline: 0 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    font-size: 28px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.site-header .nav-toggle:focus,
.site-header .nav-toggle:focus-visible,
.site-header .nav-toggle:hover,
.site-header .nav-toggle:active {
    color: #ffffff !important;
    background: #082d67 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    transform: none !important;
}

@media (max-width: 1250px) {
    .site-header .navbar-content {
        min-height: 98px !important;
    }

    .site-header .brand-logo,
    .site-header .brand-logo img {
        flex-basis: 72px !important;
        width: 72px !important;
        height: 72px !important;
        min-width: 72px !important;
        min-height: 72px !important;
        max-width: 72px !important;
        max-height: 72px !important;
    }

    .site-header .brand-name {
        min-width: 240px !important;
    }

    .site-header .brand-name strong {
        font-size: 19px !important;
    }

    .site-header .brand-name span,
    .site-header .brand-name small {
        font-size: 17px !important;
    }

    .site-header .nav-toggle {
        display: grid !important;
    }

    .site-header .nav-menu {
        position: absolute !important;
        z-index: 1000 !important;
        top: 100% !important;
        right: 28px !important;
        left: 28px !important;
        width: auto !important;
        margin: 0 !important;
        padding: 8px 18px 14px !important;
        display: none !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0 !important;
        background: #ffffff !important;
        border: 0 !important;
        border-top: 4px solid #df1722 !important;
        border-radius: 0 0 10px 10px !important;
        box-shadow: 0 18px 35px rgba(5, 30, 69, .18) !important;
    }

    .site-header .nav-menu.open {
        display: flex !important;
    }

    .site-header .nav-menu > a,
    .site-header .nav-menu > a:link,
    .site-header .nav-menu > a:visited,
    .site-header .nav-menu > a:hover,
    .site-header .nav-menu > a:active,
    .site-header .nav-menu > a.active,
    .site-header .nav-menu > a:focus,
    .site-header .nav-menu > a:focus-visible {
        width: 100% !important;
        min-height: 54px !important;
        padding: 14px 8px !important;
        justify-content: flex-start !important;
        color: #102a50 !important;
        background: transparent !important;
        border: 0 !important;
        border-bottom: 1px solid #edf1f6 !important;
        outline: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        font-size: 18px !important;
        font-weight: 700 !important;
        text-align: left !important;
    }

    .site-header .nav-menu > a:last-child {
        border-bottom: 0 !important;
    }

    .site-header .nav-menu > a::after {
        display: none !important;
        content: none !important;
    }

    .site-header .nav-menu > a.active,
    .site-header .nav-menu > a[aria-current="page"] {
        color: #df1722 !important;
    }
}

@media (max-width: 760px) {
    .site-header .topbar-content {
        min-height: 0 !important;
        padding: 8px 16px !important;
        flex-direction: column !important;
        gap: 5px !important;
        text-align: center !important;
    }

    .site-header .topbar-left {
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 4px 10px !important;
    }

    .site-header .topbar-divider {
        display: none !important;
    }

    .site-header .topbar,
    .site-header .topbar a,
    .site-header .topbar span {
        font-size: 13px !important;
    }

    .site-header .navbar-content {
        min-height: 86px !important;
        padding: 0 16px !important;
        gap: 11px !important;
    }

    .site-header .brand {
        gap: 10px !important;
    }

    .site-header .brand-logo,
    .site-header .brand-logo img {
        flex-basis: 58px !important;
        width: 58px !important;
        height: 58px !important;
        min-width: 58px !important;
        min-height: 58px !important;
        max-width: 58px !important;
        max-height: 58px !important;
    }

    .site-header .brand-name {
        min-width: 0 !important;
    }

    .site-header .brand-name strong {
        font-size: 14px !important;
    }

    .site-header .brand-name span,
    .site-header .brand-name small {
        font-size: 13px !important;
    }

    .site-header .nav-toggle {
        flex-basis: 46px !important;
        width: 46px !important;
        height: 46px !important;
        min-width: 46px !important;
        min-height: 46px !important;
        font-size: 25px !important;
    }

    .site-header .nav-menu {
        right: 16px !important;
        left: 16px !important;
    }
}

@media (max-width: 430px) {
    .site-header .topbar-right {
        display: none !important;
    }

    .site-header .brand-logo,
    .site-header .brand-logo img {
        flex-basis: 52px !important;
        width: 52px !important;
        height: 52px !important;
        min-width: 52px !important;
        min-height: 52px !important;
        max-width: 52px !important;
        max-height: 52px !important;
    }

    .site-header .brand-name strong {
        font-size: 12.5px !important;
    }

    .site-header .brand-name span,
    .site-header .brand-name small {
        font-size: 12px !important;
    }
}

/* ===== เดิมมาจาก: css/common/content-wide.css ===== */
/* =========================================================
   การจัดวางเนื้อหาแบบกว้างเต็มหน้า
   - ใช้เฉพาะข้อมูลภายใน <main>
   - ไม่เปลี่ยน Navbar และ Footer
   - เว้นขอบหน้าจออย่างสมดุลเพื่อให้อ่านง่าย
========================================================= */
:root {
    --content-wide-max: 1600px;
    --content-wide-gutter: clamp(24px, 4vw, 72px);
    --content-wide-gap: clamp(28px, 3.4vw, 64px);
}

main {
    width: 100%;
    overflow: hidden;
}

/* ขยายเฉพาะพื้นที่ข้อมูล ไม่กระทบแถบเมนูและ Footer */
main .container {
    width: calc(100% - (var(--content-wide-gutter) * 2)) !important;
    max-width: var(--content-wide-max) !important;
    margin-right: auto !important;
    margin-left: auto !important;
}

/* รักษาระยะห่างของหัวข้อให้โปร่งและอ่านง่าย */
main .section-heading,
main .wide-heading,
main .job-summary-heading {
    max-width: 980px !important;
}

/* จัดเลย์เอาต์สองคอลัมน์ให้ใช้พื้นที่จออย่างสมดุล */
main .intro-grid,
main .about-intro-grid,
main .origin-layout,
main .company-profile-grid,
main .service-process-layout,
main .reports-grid,
main .report-grid,
main .position-layout,
main .apply-layout,
main .location-grid,
main .welfare-content {
    column-gap: var(--content-wide-gap) !important;
}

/* ทำให้กลุ่มการ์ดกระจายเต็มพื้นที่และมีระยะเท่ากัน */
main .trust-grid,
main .service-grid,
main .operation-grid,
main .scope-grid,
main .training-grid,
main .quality-grid,
main .support-grid,
main .equipment-grid,
main .benefit-grid,
main .qualification-grid,
main .contact-grid,
main .content-grid,
main .profile-cards,
main .operation-list-grid,
main .about-extra-photo-grid,
main .contact-preparation-grid {
    gap: clamp(20px, 2vw, 34px) !important;
}

/* หน้าแรก */
main .hero-slide-content {
    width: calc(100% - (var(--content-wide-gutter) * 2)) !important;
    max-width: var(--content-wide-max) !important;
}

main .hero-slide-content > * {
    max-width: 900px !important;
}

main .trust-grid article,
main .service-card,
main .operation-card,
main .process-step {
    height: 100%;
}

/* หน้าเกี่ยวกับเรา */
main .about-intro-grid {
    grid-template-columns: minmax(420px, 0.95fr) minmax(0, 1.05fr) !important;
}

main .origin-layout {
    grid-template-columns: minmax(320px, 0.7fr) minmax(0, 1.3fr) !important;
}

main .company-profile-grid {
    grid-template-columns: minmax(0, 1.12fr) minmax(380px, 0.88fr) !important;
}

main .origin-content,
main .company-info-panel,
main .contact-preparation {
    padding: clamp(28px, 3vw, 46px) !important;
}

/* หน้าบทความ */
main .featured {
    grid-template-columns: minmax(0, 1.15fr) minmax(420px, 0.85fr) !important;
}

main .content-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

main .featured-copy,
main .card-body {
    padding: clamp(26px, 2.4vw, 42px) !important;
}

/* หน้ารับสมัครงาน */
main .position-layout,
main .apply-layout {
    grid-template-columns: minmax(360px, 0.78fr) minmax(0, 1.22fr) !important;
}

main .job-summary-row {
    grid-template-columns: 78px minmax(230px, 0.55fr) minmax(0, 1.45fr) !important;
    padding-right: clamp(28px, 3vw, 48px) !important;
    padding-left: clamp(28px, 3vw, 48px) !important;
}

/* หน้าติดต่อ */
main .contact-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

main .location-grid {
    grid-template-columns: minmax(360px, 0.72fr) minmax(0, 1.28fr) !important;
}

main .map-embed,
main .map-placeholder {
    width: 100% !important;
}

/* หน้าบริการและมาตรฐาน */
main .service-types .service-grid,
main .training-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

main .scope-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

main .quality-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

main .equipment-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

/* จอใหญ่พิเศษ: เพิ่มพื้นที่หายใจโดยไม่ให้ข้อมูลติดขอบ */
@media (min-width: 1700px) {
    main .section-space,
    main .section {
        padding-top: 100px !important;
        padding-bottom: 100px !important;
    }
}

/* แท็บเล็ตและโน้ตบุ๊กขนาดกลาง */
@media (max-width: 1180px) {
    :root {
        --content-wide-gutter: clamp(22px, 3.2vw, 42px);
        --content-wide-gap: clamp(28px, 4vw, 52px);
    }

    main .about-intro-grid,
    main .origin-layout,
    main .company-profile-grid,
    main .intro-grid,
    main .service-process-layout,
    main .reports-grid,
    main .report-grid,
    main .position-layout,
    main .apply-layout,
    main .location-grid,
    main .welfare-content,
    main .featured {
        grid-template-columns: 1fr !important;
    }

    main .content-grid,
    main .service-types .service-grid,
    main .scope-grid,
    main .training-grid,
    main .quality-grid,
    main .support-grid,
    main .equipment-grid,
    main .benefit-grid,
    main .qualification-grid,
    main .contact-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    main .contact-address {
        grid-column: auto !important;
    }

    main .position-intro {
        position: static !important;
    }
}

/* โทรศัพท์ */
@media (max-width: 700px) {
    :root {
        --content-wide-gutter: 16px;
    }

    main .container,
    main .hero-slide-content {
        width: calc(100% - 32px) !important;
    }

    main .content-grid,
    main .service-types .service-grid,
    main .scope-grid,
    main .training-grid,
    main .quality-grid,
    main .support-grid,
    main .equipment-grid,
    main .benefit-grid,
    main .qualification-grid,
    main .contact-grid,
    main .profile-cards,
    main .operation-list-grid,
    main .about-extra-photo-grid,
    main .contact-preparation-grid {
        grid-template-columns: 1fr !important;
    }

    main .job-summary-row {
        grid-template-columns: 44px 1fr !important;
        gap: 14px !important;
        padding: 22px 18px !important;
    }

    main .job-summary-detail {
        grid-column: 2 !important;
    }
}


/* ===== เดิมมาจาก: css/pages/contact/03-contact-same-style-final.css ===== */
/* Source: contact.html | style id: contact-same-style-final */
/* =========================================================
   Contact Page — รูปแบบเดียวกับ Services / Standards / Careers
========================================================= */
.contact-professional {
    --contact-gutter: clamp(28px, 7.6vw, 146px);
    --section-gap: 96px;
    --radius: 18px;
    --line: #dce5ef;
    --shadow: 0 14px 34px rgba(8,45,103,.09);
    overflow-x: hidden;
    color: #17243a;
    background: #ffffff;
    font-size: 17px;
    line-height: 1.82;
}

.contact-professional main {
    overflow: hidden;
}

/* ขอบซ้าย–ขวาเท่ากันทุกส่วน */
.contact-professional main .container,
.contact-professional .banner-content,
.contact-professional .contact-highlight-grid,
.contact-professional .shared-contact-content,
.contact-professional .footer > .container {
    width: calc(100% - var(--contact-gutter) - var(--contact-gutter)) !important;
    max-width: none !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    box-sizing: border-box !important;
}

.contact-professional main > section,
.contact-professional .page-banner,
.contact-professional .call-section,
.contact-professional .shared-contact-strip,
.contact-professional .footer {
    width: 100% !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
}

.contact-professional .section-space {
    padding-top: var(--section-gap) !important;
    padding-bottom: var(--section-gap) !important;
}

/* แบนเนอร์ */
.contact-professional .page-banner {
    min-height: 390px !important;
    background:
        radial-gradient(circle at 82% 22%, rgba(61,132,234,.43), transparent 28%),
        linear-gradient(118deg, #031a3c 0%, #082d67 56%, #0d4aa6 100%) !important;
}

.contact-professional .page-banner::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
    background-size: 46px 46px;
    pointer-events: none;
}

.contact-professional .banner-decoration {
    top: -185px !important;
    right: -72px !important;
    width: 530px !important;
    height: 530px !important;
    border: 88px solid rgba(255,255,255,.05) !important;
}

.contact-professional .banner-content {
    min-height: 390px !important;
    padding-top: 68px !important;
    padding-bottom: 80px !important;
}

.contact-professional .banner-kicker {
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;
    width: fit-content !important;
    margin: 0 0 8px !important;
    color: #ff7f88 !important;
    font-size: 17px !important;
    font-weight: 800 !important;
}

.contact-professional .banner-content h1 {
    margin: 0 !important;
    color: #ffffff !important;
    font-size: clamp(50px, 5.4vw, 72px) !important;
    line-height: 1.12 !important;
}

.contact-professional .banner-description {
    max-width: 800px !important;
    margin-top: 18px !important;
    color: #e2ebf8 !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.8 !important;
}

.contact-professional .breadcrumb {
    width: fit-content !important;
    margin-top: 27px !important;
    padding: 9px 13px !important;
    color: #ffffff !important;
    background: rgba(255,255,255,.08) !important;
    border: 1px solid rgba(255,255,255,.15) !important;
    border-radius: 8px !important;
}

/* การ์ด 4 ใบใต้แบนเนอร์ */
.contact-highlight-strip {
    position: relative;
    z-index: 8;
    margin-top: -42px;
}

.contact-highlight-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    align-items: stretch;
    gap: 18px;
}

.contact-highlight-card {
    position: relative;
    min-height: 148px;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 23px 21px;
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 18px 40px rgba(8,45,103,.14);
}

.contact-highlight-card::after {
    content: "";
    position: absolute;
    right: 20px;
    bottom: 0;
    left: 20px;
    height: 3px;
    background: linear-gradient(90deg, #df1722, #0d4aa6);
    border-radius: 99px 99px 0 0;
}

.contact-highlight-icon {
    width: 54px;
    height: 54px;
    flex: 0 0 54px;
    display: grid;
    place-items: center;
    color: #ffffff;
    border-radius: 14px;
    font-size: 23px;
}

.contact-highlight-icon.blue {
    background: linear-gradient(145deg, #0d4aa6, #082d67);
}

.contact-highlight-icon.red {
    background: linear-gradient(145deg, #ef2630, #bd0d16);
}

.contact-highlight-card h3 {
    color: #082d67;
    font-size: 18px;
    line-height: 1.45;
}

.contact-highlight-card p {
    margin-top: 4px;
    color: #52627a;
    font-size: 14px !important;
    line-height: 1.65 !important;
}

/* หัวข้อ */
.contact-professional .section-heading {
    width: min(100%, 860px) !important;
    max-width: 860px !important;
    margin: 0 auto 48px !important;
}

.contact-professional .section-heading h2,
.contact-professional .location-content h2 {
    margin-top: 10px !important;
    margin-bottom: 16px !important;
    color: #082d67 !important;
    font-size: clamp(34px, 3.6vw, 50px) !important;
    line-height: 1.3 !important;
}

.contact-professional .section-heading > p:last-child,
.contact-professional .location-content > p:not(.section-label) {
    color: #52627a !important;
    font-size: 17px !important;
    line-height: 1.9 !important;
}

/* ข้อมูลติดต่อ */
.contact-professional .contact-information {
    padding-top: 112px !important;
    background: linear-gradient(180deg, #ffffff, #f8faff) !important;
}

.contact-professional .contact-grid {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    grid-auto-rows: 1fr !important;
    align-items: stretch !important;
    gap: 22px !important;
}

.contact-professional .contact-card {
    min-height: 220px !important;
    height: 100% !important;
    padding: 28px !important;
    border-radius: var(--radius) !important;
    box-shadow: var(--shadow) !important;
}

.contact-professional .contact-address {
    grid-column: 1 / -1 !important;
    min-height: 180px !important;
}

.contact-professional .contact-person-card {
    border-top: 4px solid #df1722 !important;
}

.contact-professional .contact-card h3 {
    color: #082d67 !important;
    font-size: 22px !important;
}

.contact-professional .contact-card p,
.contact-professional .contact-card a,
.contact-professional .contact-note {
    color: #52627a !important;
    line-height: 1.8 !important;
}

.contact-professional .contact-call-link {
    color: #082d67 !important;
    font-size: 18px !important;
}

/* ข้อมูลก่อนโทร */
.contact-professional .contact-preparation {
    margin-top: 34px !important;
    padding: 32px !important;
    background:
        radial-gradient(circle at 92% 8%, rgba(255,255,255,.1), transparent 24%),
        linear-gradient(145deg, #0d4aa6, #041b3f) !important;
    border-radius: var(--radius) !important;
}

.contact-professional .contact-preparation-grid {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 14px !important;
}

.contact-professional .contact-preparation-grid > div {
    min-height: 116px;
    padding: 18px !important;
    border-radius: 12px !important;
}

/* แถบโทร */
.contact-professional .call-section {
    padding: 62px 0 !important;
    background:
        radial-gradient(circle at 90% 20%, rgba(255,255,255,.1), transparent 22%),
        linear-gradient(135deg, #031a3c, #082d67 65%, #0d4aa6) !important;
}

.contact-professional .call-content {
    display: grid !important;
    grid-template-columns: 76px minmax(0,1fr) auto !important;
    align-items: center !important;
    gap: 24px !important;
}

.contact-professional .call-icon {
    width: 76px !important;
    height: 76px !important;
    flex-basis: 76px !important;
}

.contact-professional .call-actions {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 11px !important;
}

/* ที่ตั้งและแผนที่ */
.contact-professional .location-grid {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    align-items: center !important;
    gap: clamp(48px,5vw,78px) !important;
}

.contact-professional .address-box {
    padding: 19px !important;
    background: #f5f8fc !important;
    border: 1px solid #e0e7f0 !important;
    border-radius: 11px !important;
}

.contact-professional .map-embed {
    width: 100% !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 3 !important;
    border-radius: 22px !important;
    box-shadow: var(--shadow) !important;
}

.contact-professional .map-embed iframe {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
}

/* CTA */
.contact-professional .shared-contact-strip {
    padding: 62px 0 !important;
    background:
        radial-gradient(circle at 88% 20%,rgba(255,255,255,.12),transparent 23%),
        linear-gradient(110deg,#df1722 0%,#c20e18 48%,#082d67 48%,#041b3f 100%) !important;
}

.contact-professional .shared-contact-content {
    display: grid !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    align-items: center !important;
    gap: 36px !important;
}

.contact-professional .shared-contact-actions {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 12px !important;
}

/* ป้องกันคอลัมน์ล้น */
.contact-professional main .container > *,
.contact-professional .contact-grid > *,
.contact-professional .location-grid > *,
.contact-professional .contact-preparation-grid > *,
.contact-highlight-grid > * {
    min-width: 0 !important;
}

/* Responsive */
@media (max-width: 1180px) {
    .contact-professional {
        --contact-gutter: 40px;
        --section-gap: 82px;
    }

    .contact-highlight-grid,
    .contact-professional .contact-grid,
    .contact-professional .contact-preparation-grid {
        grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    }

    .contact-professional .location-grid {
        grid-template-columns: 1fr !important;
    }

    .contact-professional .call-content {
        grid-template-columns: 76px 1fr !important;
    }

    .contact-professional .call-actions {
        grid-column: 1 / -1;
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
    }

    .contact-professional .shared-contact-content {
        grid-template-columns: 1fr !important;
    }

    .contact-professional .shared-contact-actions {
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
    }
}

@media (max-width: 700px) {
    .contact-professional {
        --contact-gutter: 16px;
        --section-gap: 68px;
    }

    .contact-professional .page-banner,
    .contact-professional .banner-content {
        min-height: 320px !important;
    }

    .contact-professional .banner-content {
        padding-top: 50px !important;
        padding-bottom: 68px !important;
    }

    .contact-professional .banner-content h1 {
        font-size: 42px !important;
    }

    .contact-highlight-strip {
        margin-top: -28px;
    }

    .contact-highlight-grid,
    .contact-professional .contact-grid,
    .contact-professional .contact-preparation-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .contact-highlight-card {
        min-height: 112px !important;
    }

    .contact-professional .contact-information {
        padding-top: 82px !important;
    }

    .contact-professional .contact-address {
        grid-column: auto !important;
    }

    .contact-professional .contact-preparation {
        padding: 23px 20px !important;
    }

    .contact-professional .call-content {
        grid-template-columns: 1fr !important;
    }

    .contact-professional .call-actions {
        width: 100% !important;
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .contact-professional .call-actions .call-button {
        width: 100% !important;
    }

    .contact-professional .shared-contact-actions {
        width: 100% !important;
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .contact-professional .shared-contact-button {
        width: 100% !important;
    }
}


/* ===== เดิมมาจาก: css/pages/contact/04-unique-contact-layout.css ===== */
/* Source: contact.html | style id: unique-contact-layout */
/* มาตรฐานร่วม: เฉพาะความกว้างและตัวอักษร ส่วนการจัดวางแต่ละหน้าแยกกัน */
body[class*="unique-"]{
  --page-gutter:clamp(24px,7.6vw,146px);
  overflow-x:hidden;
  color:#1f3048;
  background:#fff;
  font-family:"Noto Sans Thai",sans-serif;
  font-size:17px;
  line-height:1.82;
}
body[class*="unique-"] main .container,
body[class*="unique-"] main .page-shell,
body[class*="unique-"] .footer>.container{
  width:calc(100% - var(--page-gutter) - var(--page-gutter))!important;
  max-width:none!important;
  margin-inline:auto!important;
  padding-inline:0!important;
  box-sizing:border-box!important;
}
body[class*="unique-"] main>section{
  width:100%!important;
  max-width:none!important;
}
body[class*="unique-"] main img{max-width:100%;display:block}
@media(max-width:1180px){body[class*="unique-"]{--page-gutter:40px}}
@media(max-width:700px){body[class*="unique-"]{--page-gutter:16px;font-size:16px}}

.unique-contact .page-banner{
  min-height:330px!important;
  background:
    linear-gradient(105deg,#041b3f 0 72%,#df1722 72%)!important;
}
.unique-contact .banner-content{
  min-height:330px!important;
  max-width:780px!important;
  justify-content:center!important;
}
.unique-contact .banner-content h1{font-size:clamp(52px,5.5vw,72px)!important;color:#fff!important}
.unique-contact .banner-decoration{
  top:auto!important;bottom:-150px!important;right:6vw!important;
  width:350px!important;height:350px!important;border-width:60px!important;
}

/* แผนที่ขึ้นก่อน เป็น hero ต่อเนื่อง */
.unique-contact .location{
  padding:0!important;
  background:#f5f7fa!important;
}
.unique-contact .location-grid{
  width:100%!important;
  grid-template-columns:.78fr 1.22fr!important;
  gap:0!important;
  align-items:stretch!important;
}
.unique-contact .location-content{
  padding:70px var(--page-gutter)!important;
  background:#f5f7fa!important;
}
.unique-contact .map-embed{
  min-height:620px!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.unique-contact .map-embed iframe{height:620px!important}

/* Contact info เป็น asymmetric dashboard */
.unique-contact .contact-information{padding:105px 0!important;background:#fff!important}
.unique-contact .contact-grid{
  display:grid!important;
  grid-template-columns:1.15fr .85fr!important;
  grid-template-rows:auto auto!important;
  gap:18px!important;
}
.unique-contact .contact-address{
  grid-column:1!important;
  grid-row:1/3!important;
  min-height:100%!important;
  align-items:center!important;
  padding:42px!important;
  background:#082d67!important;
  border:0!important;
  border-radius:22px 4px 22px 4px!important;
}
.unique-contact .contact-address h3,
.unique-contact .contact-address p,
.unique-contact .contact-address .contact-note{color:#fff!important}
.unique-contact .contact-person-card{
  min-height:210px!important;
  padding:28px!important;
  border:1px solid #dfe6ef!important;
  border-left:5px solid #df1722!important;
  border-top:0!important;
  border-radius:10px!important;
  box-shadow:none!important;
}
.unique-contact .contact-grid>.contact-card:last-child{
  grid-column:1/-1!important;
  min-height:150px!important;
  border-radius:10px!important;
}
.unique-contact .contact-preparation{
  display:grid!important;
  grid-template-columns:.7fr 1.3fr!important;
  gap:34px!important;
  align-items:center!important;
  margin-top:28px!important;
  padding:34px!important;
  border-radius:16px!important;
}

/* facts เป็น ribbon หลัง contact */
.unique-contact .contact-highlight-strip{
  margin:0!important;
  padding:38px 0!important;
  background:#051e45!important;
}
.unique-contact .contact-highlight-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:0!important;
  width:calc(100% - var(--page-gutter) - var(--page-gutter))!important;
  margin-inline:auto!important;
}
.unique-contact .contact-highlight-card{
  min-height:110px!important;
  padding:20px 24px!important;
  color:#fff!important;
  background:transparent!important;
  border:0!important;
  border-right:1px solid rgba(255,255,255,.14)!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.unique-contact .contact-highlight-card h3{color:#fff!important}
.unique-contact .contact-highlight-card p{color:#c9d8eb!important}
.unique-contact .contact-highlight-card::after{display:none!important}

/* Call เป็น red ticket */
.unique-contact .call-section{
  padding:58px 0!important;
  background:#df1722!important;
}
.unique-contact .call-content{
  grid-template-columns:90px minmax(0,1fr) auto!important;
}
.unique-contact .call-icon{
  background:#fff!important;color:#df1722!important;border-radius:50%!important;
}
.unique-contact .call-button{border-radius:999px!important}
@media(max-width:1000px){
  .unique-contact .location-grid,
  .unique-contact .contact-preparation{grid-template-columns:1fr!important}
  .unique-contact .map-embed,.unique-contact .map-embed iframe{min-height:420px!important;height:420px!important}
  .unique-contact .contact-highlight-grid{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:700px){
  .unique-contact .page-banner,.unique-contact .banner-content{min-height:300px!important}
  .unique-contact .contact-grid{grid-template-columns:1fr!important}
  .unique-contact .contact-address{grid-column:auto!important;grid-row:auto!important}
  .unique-contact .contact-grid>.contact-card:last-child{grid-column:auto!important}
  .unique-contact .contact-highlight-grid{grid-template-columns:1fr!important}
  .unique-contact .call-content{grid-template-columns:1fr!important}
}


/* ===== เดิมมาจาก: css/pages/contact/05-shared-example-hero.css ===== */
/* Source: contact.html | style id: shared-example-hero */
/* =========================================================
   แบนเนอร์ด้านบนแบบเดียวกับตัวอย่าง:
   ซ้ายกรมท่า / แถบแดงเฉียง / ขวาน้ำเงิน / ลายตาราง / วงกลมโปร่ง
========================================================= */
body[class*="unique-"] .page-banner,
body[class*="unique-"] .page-hero,
body.unique-careers .career-hero {
    position: relative !important;
    isolation: isolate !important;
    min-height: 420px !important;
    overflow: hidden !important;
    color: #ffffff !important;
    background:
        linear-gradient(
            103deg,
            #041b3f 0%,
            #041b3f 56%,
            #ec1220 56%,
            #ec1220 60%,
            #1554ad 60%,
            #1554ad 100%
        ) !important;
}

/* ลายตารางเต็มแบนเนอร์ */
body[class*="unique-"] .page-banner::before,
body[class*="unique-"] .page-hero::before,
body.unique-careers .career-hero::before {
    content: "" !important;
    position: absolute !important;
    z-index: -1 !important;
    inset: 0 !important;
    display: block !important;
    pointer-events: none !important;
    background:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) !important;
    background-size: 44px 44px !important;
    opacity: 1 !important;
}

/* วงกลมโปร่งด้านขวา */
body[class*="unique-"] .page-banner::after,
body[class*="unique-"] .page-hero::after,
body.unique-careers .career-hero::after {
    content: "" !important;
    position: absolute !important;
    z-index: -1 !important;
    top: 50% !important;
    right: 3.5vw !important;
    width: min(31vw, 520px) !important;
    height: min(31vw, 520px) !important;
    display: block !important;
    transform: translateY(-50%) !important;
    border: clamp(52px, 5vw, 88px) solid rgba(255,255,255,.055) !important;
    border-radius: 50% !important;
    background: rgba(6,49,123,.08) !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
}

/* ซ่อนวงกลม/ของตกแต่งเดิม */
body[class*="unique-"] .banner-circle,
body[class*="unique-"] .banner-decoration {
    display: none !important;
}

/* จัดตำแหน่งข้อความเหมือนตัวอย่าง */
body[class*="unique-"] .banner-content,
body[class*="unique-"] .page-hero > .container,
body.unique-careers .career-hero-inner {
    position: relative !important;
    z-index: 2 !important;
    min-height: 420px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    max-width: none !important;
    margin-inline: auto !important;
    padding-top: 58px !important;
    padding-bottom: 70px !important;
    text-align: left !important;
}

/* ตัดเส้นแต่งเดิมของบางหน้า */
body.unique-articles .page-hero > .container,
body.unique-activities .page-hero > .container {
    border-left: 0 !important;
    padding-left: 0 !important;
}

/* ชื่อบริษัทด้านบน */
body[class*="unique-"] .banner-content > p:first-child,
body[class*="unique-"] .page-hero > .container > p:first-child,
body.unique-careers .hero-eyebrow {
    margin: 0 0 10px !important;
    color: #ff858d !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    line-height: 1.5 !important;
}

/* หัวข้อหลัก */
body[class*="unique-"] .banner-content h1,
body[class*="unique-"] .page-hero h1,
body.unique-careers .career-hero h1 {
    max-width: 860px !important;
    margin: 0 !important;
    color: #ffffff !important;
    font-size: clamp(52px, 5.8vw, 78px) !important;
    font-weight: 800 !important;
    line-height: 1.12 !important;
    letter-spacing: -1px !important;
    text-align: left !important;
}

/* คำอธิบาย */
body[class*="unique-"] .banner-description,
body[class*="unique-"] .page-hero .lead,
body.unique-careers .hero-description {
    max-width: 820px !important;
    margin: 20px 0 0 !important;
    color: #e0e9f7 !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    line-height: 1.85 !important;
    text-align: left !important;
}

/* Breadcrumb */
body[class*="unique-"] .breadcrumb {
    width: fit-content !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    margin-top: 27px !important;
    padding: 11px 14px !important;
    color: #ffffff !important;
    background: rgba(255,255,255,.08) !important;
    border: 1px solid rgba(255,255,255,.17) !important;
    border-radius: 8px !important;
    backdrop-filter: blur(4px) !important;
    font-size: 15px !important;
}

body[class*="unique-"] .breadcrumb a {
    color: #d9e5f4 !important;
}

/* ป้องกัน CSS เฉพาะหน้าเปลี่ยน alignment */
body.unique-standards .page-banner,
body.unique-activities .page-hero {
    text-align: left !important;
}

body.unique-standards .banner-content,
body.unique-activities .page-hero > .container {
    align-items: flex-start !important;
    text-align: left !important;
}

body.unique-standards .breadcrumb {
    justify-content: flex-start !important;
}

/* แท็บเล็ต */
@media (max-width: 1050px) {
    body[class*="unique-"] .page-banner,
    body[class*="unique-"] .page-hero,
    body.unique-careers .career-hero {
        background:
            linear-gradient(
                101deg,
                #041b3f 0%,
                #041b3f 64%,
                #ec1220 64%,
                #ec1220 68%,
                #1554ad 68%,
                #1554ad 100%
            ) !important;
    }

    body[class*="unique-"] .page-banner::after,
    body[class*="unique-"] .page-hero::after,
    body.unique-careers .career-hero::after {
        right: -100px !important;
        width: 420px !important;
        height: 420px !important;
    }
}

/* โทรศัพท์: เน้นให้อ่านง่าย โดยยังเก็บแถบแดงและน้ำเงิน */
@media (max-width: 700px) {
    body[class*="unique-"] .page-banner,
    body[class*="unique-"] .page-hero,
    body.unique-careers .career-hero {
        min-height: 340px !important;
        background:
            linear-gradient(
                102deg,
                #041b3f 0%,
                #041b3f 82%,
                #ec1220 82%,
                #ec1220 86%,
                #1554ad 86%,
                #1554ad 100%
            ) !important;
    }

    body[class*="unique-"] .banner-content,
    body[class*="unique-"] .page-hero > .container,
    body.unique-careers .career-hero-inner {
        min-height: 340px !important;
        padding-top: 44px !important;
        padding-bottom: 52px !important;
    }

    body[class*="unique-"] .page-banner::after,
    body[class*="unique-"] .page-hero::after,
    body.unique-careers .career-hero::after {
        right: -170px !important;
        width: 330px !important;
        height: 330px !important;
        border-width: 54px !important;
    }

    body[class*="unique-"] .banner-content h1,
    body[class*="unique-"] .page-hero h1,
    body.unique-careers .career-hero h1 {
        font-size: 43px !important;
        letter-spacing: 0 !important;
    }

    body[class*="unique-"] .banner-description,
    body[class*="unique-"] .page-hero .lead,
    body.unique-careers .hero-description {
        max-width: 86% !important;
        font-size: 16px !important;
        line-height: 1.75 !important;
    }
}


/* ===== เดิมมาจาก: css/pages/contact/06-contact-map-fill-frame-final.css ===== */
/* Source: contact.html | style id: contact-map-fill-frame-final */
/* ทำให้ Google Maps สูงเต็มกรอบด้านขวา โดยไม่เปลี่ยนส่วนอื่น */
.unique-contact .location-grid {
    align-items: stretch !important;
}

.unique-contact .map-embed {
    position: relative !important;
    align-self: stretch !important;
    height: auto !important;
    min-height: 620px !important;
    overflow: hidden !important;
}

.unique-contact .map-embed iframe {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 100% !important;
    min-height: 100% !important;
    display: block !important;
    border: 0 !important;
}

@media (max-width: 1180px) {
    .unique-contact .map-embed {
        height: 420px !important;
        min-height: 420px !important;
    }
}

