/*
  Theme: kaosok-bridge replica
  Font: DB_Heavent → Noto Sans Thai (Google Fonts fallback)
*/

@font-face {
    font-family: "DB_Heavent";
    src: local("DB_Heavent");
    font-weight: normal;
}

*, ::before, ::after { box-sizing: border-box; }

:root {
    --primary: #008480;
    --secondary: #000;
    --light: #fff;
    --dark: #000;
}

body {
    font-family: 'Noto Sans Thai', 'DB_Heavent', sans-serif;
}

p {
    font-family: 'Noto Sans Thai', 'DB_Heavent', sans-serif;
    font-size: 20px;
}

h1, .h1, h2, .h2, h3, .h3,
h4, .h4, h5, .h5, h6, .h6 {
    font-family: 'Noto Sans Thai', 'DB_Heavent', sans-serif;
}

/* ── Font size helpers ── */
.font-size-20 { font-size: 20px; }
.font-size-22 { font-size: 22px; }
.font-size-24 { font-size: 24px; }
.font-size-25 { font-size: 25px; }
.font-size-28 { font-size: 28px; }
.font-size-32 { font-size: 32px; }
.font-size-35 { font-size: 35px; }
.font-size-36 { font-size: 36px; }
.font-size-48 { font-size: 48px; }
.font-size-60 { font-size: 60px; }
.font-size-70 { font-size: 70px; }

/* ── Spinner ── */
#spinner {
    opacity: 0;
    visibility: hidden;
    transition: opacity .5s ease-out, visibility 0s linear .5s;
    z-index: 99999;
}
#spinner.show {
    transition: opacity .5s ease-out, visibility 0s linear 0s;
    visibility: visible;
    opacity: 1;
}
.text-primary { color: #008480 !important; }
.spinner-grow { color: #008480 !important; }

/* ── Back to Top ── */
.back-to-top {
    position: fixed;
    display: none;
    right: 30px;
    bottom: 30px;
    z-index: 99;
}

/* ── Navbar ── */
.fixed-top { transition: .5s; }

/* Dark background from: header > div.wow */
header > div.wow {
    background-color: #262626 !important;
}
header > div.wow.bg-dark {
    background-color: rgba(38, 38, 38, .7) !important;
}

.navbar .navbar-nav .nav-link {
    font-family: 'Noto Sans Thai', 'DB_Heavent', sans-serif;
    font-size: 22px;
    margin-right: 20px;
    padding: 25px 0;
    color: #fff !important;
    font-weight: 500;
    outline: none;
}
.navbar .navbar-nav .nav-link:hover {
    color: #ccc !important;
}
.navbar .navbar-nav .nav-link.active {
    color: #fff !important;
    background-color: rgba(101, 79, 44, 100);
    padding-left: 8px;
    padding-right: 8px;
}

.navbar-toggler { border: 1px solid #fff; }
.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Dropdown 3D-flip animation */
@media (min-width: 992px) {
    .navbar .nav-item .dropdown-menu {
        display: block;
        visibility: hidden;
        top: 100%;
        transform: rotateX(-75deg);
        transform-origin: 0% 0%;
        transition: .5s;
        opacity: 0;
    }
    .navbar .nav-item:hover .dropdown-menu {
        transform: rotateX(0deg);
        visibility: visible;
        opacity: 1;
    }
}

@media (max-width: 991.98px) {
    .navbar .navbar-nav {
        margin-top: 10px;
        border-top: 1px solid rgba(0,0,0,.07);
    }
    .navbar .navbar-nav .nav-link {
        padding: 10px 0;
        margin-right: 0;
    }
}

/* ── Buttons ── */
.btn {
    font-family: 'Noto Sans Thai', 'DB_Heavent', sans-serif;
    font-weight: bold;
    transition: .5s;
}

.btn-outline-primary {
    background: linear-gradient(90deg, rgba(75,140,119,1) 0%, rgba(39,128,158,1) 100%);
    border: 0;
    color: #fff;
    border-radius: 50px;
}

.btn-outline-dark {
    border-color: #333;
    color: #333;
    border-radius: 4px;
    font-size: 20px;
    padding: 6px 20px;
    transition: .3s;
}
.btn-outline-dark:hover {
    background: #333;
    color: #fff;
}

.btn-lg-square {
    width: 48px;
    height: 48px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: normal;
    border-radius: 50px !important;
}

.btn-primary {
    background: linear-gradient(90deg, rgba(75,140,119,1) 0%, rgba(39,128,158,1) 100%);
    border: 0;
    border-radius: 50px;
    color: #fff;
}
.btn-primary:hover {
    background: linear-gradient(90deg, rgba(39,128,158,1) 0%, rgba(75,140,119,1) 100%);
    color: #fff;
}

/* ── Cards ── */
div.card {
    border-radius: 25px;
    border: none;
    box-shadow: 5px 8px 12px -7px rgba(0, 0, 0, 0.7);
}

/* ── Entry content colours ── */
.entry-content h2,
.entry-content p b,
.entry-content h3,
.entry-content h1,
.entry-content strong { color: #008480; }
.entry-content hr { width: 340px; height: 5px; margin: auto; }
.entry-content h2 { font-size: 40px; }

/* ── Footer ── */
#footer-container {
    padding-bottom: 200px;
    padding-top: 20px;
}

.footer .btn.btn-link {
    display: block;
    margin-bottom: 5px;
    padding: 0;
    text-align: left;
    color: rgba(255,255,255,.5);
    font-weight: normal;
    text-transform: capitalize;
    transition: .3s;
    text-decoration: none;
}
.footer .btn.btn-link::before {
    position: relative;
    content: "\f105";
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    color: rgba(255,255,255,.5);
    margin-right: 10px;
}
.footer .btn.btn-link:hover {
    color: var(--light);
    letter-spacing: 1px;
    box-shadow: none;
}
.footer .btn.btn-square {
    color: rgba(255,255,255,.5);
    border: 1px solid rgba(255,255,255,.5);
}
.footer .btn.btn-square:hover {
    color: var(--secondary);
    border-color: var(--light);
}
.footer .copyright {
    padding: 25px 0;
    font-size: 15px;
    border-top: 1px solid rgba(256,256,256,.1);
}
.footer .copyright a { color: var(--secondary); }
.footer .copyright a:hover { color: var(--primary); }

@media (max-width: 1300px) {
    #footer-container { padding-top: 0; padding-bottom: 100px; }
}
@media (max-width: 991.98px) {
    #footer-container { padding-bottom: 100px; }
}

/* ── Carousel caption positioning ── */
.carousel-caption {
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: rgba(0,0,0,0);
    z-index: 1;
}

.carousel-control-prev,
.carousel-control-next { width: 15%; }

.carousel-control-prev-icon,
.carousel-control-next-icon {
    width: 3rem;
    height: 3rem;
    background-color: var(--dark);
    border: 12px solid var(--dark);
    border-radius: 3rem;
}

@media (max-width: 768px) {
    #header-carousel .carousel-item {
        position: relative;
        min-height: 300px;
    }
}

/* ── News cards ── */
.news-card { border-radius: 16px !important; overflow: hidden; transition: transform .3s, box-shadow .3s; }
.news-card:hover { transform: translateY(-6px); box-shadow: 5px 16px 28px -7px rgba(0,0,0,0.2) !important; }
.news-img { width:100%; height:220px; object-fit:cover; }

/* ── WOW animation classes ── */
.wow { visibility: hidden; }
