@charset "utf-8";
 
@font-face {
    font-family: "OptimaLTPro-Roman";
    src: url("https://db.onlinewebfonts.com/t/b6718b05abed06cc4525f3a4ab71be65.eot");
    src: url("https://db.onlinewebfonts.com/t/b6718b05abed06cc4525f3a4ab71be65.eot?#iefix")format("embedded-opentype"),
    url("https://db.onlinewebfonts.com/t/b6718b05abed06cc4525f3a4ab71be65.woff2")format("woff2"),
    url("https://db.onlinewebfonts.com/t/b6718b05abed06cc4525f3a4ab71be65.woff")format("woff"),
    url("https://db.onlinewebfonts.com/t/b6718b05abed06cc4525f3a4ab71be65.ttf")format("truetype"),
    url("https://db.onlinewebfonts.com/t/b6718b05abed06cc4525f3a4ab71be65.svg#OptimaLTPro-Roman")format("svg");
}
 
 

 
@font-face {
  font-family: 'SukhumvitSet';
  src: url('../fonts/SukhumvitSet-Medium.woff2') format('woff2');
  font-weight: 400;  
  font-style: normal;
  font-display: swap;
}


 div#loadPage, div#loadPage_content {
   position: fixed;
   margin: auto;
   left: 0;
   top: 0;
   width: 100%;
   height: 100%;
   color: #000;
   background-color: #FFF;
   z-index: 500000000;
   text-align: center;
   opacity: .7;
   padding-top: 200px;
   vertical-align: middle;
   filter: alpha(opacity=70);
   display: none
 }
 /* ====== preload ========== */
 img {
   max-width: 100%;
 }
 html {
   width: 100%;
 }
 
 :root {
  --color-primary: #000000;
  --color-hover: #666666;
  --color-accent: #000000;
  --color-bg: #ffffff; 
  --color-text:#333333;
  --color-text2:#ffffff;
  --color-text-remark: #b6b5b2;
  --color-border: #2C2C36;
  --border:#000;
}

/* Example usage */
body {
  background-color: var(--color-bg);
  color: var(--color-text);
  font-family: "OptimaLTPro-Roman" ,SukhumvitSet; 
   font-size: clamp(16px, 2.5vw, 16px);
}

  
.fade.in {
    opacity: 1
}
 
a {
  color: var(--color-accent);
  text-decoration: none;
}

a:hover {
  color: var(--color-hover);
}
  
 .stop-scrolling {
   /*overflow: hidden;*/
 }

 /* Chrome, Safari, Edge */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type=number] {
    -moz-appearance: textfield;
}

.btn{
  display:inline-block;
   letter-spacing:0.5px;
  border:1px solid #333;
  width:187px;
  padding:14px 0;
  font-size:15px;

  background-color:transparent;
  color:#333;

  text-align:center;
  line-height:1;
  border-radius:30px;
  margin:0 10px;

  cursor:pointer;
  transition:all .25s ease;
}

/* hover */
.btn:hover{
  background:#333;
  color:#fff;
}
 h1 {
   margin: 0;  
   padding: 0;  
   font-size: clamp(28px, 4vw, 36px);
   line-height: 120%;
   font-weight: normal;
   letter-spacing: 0px;
 }
 h2 {
   margin: 0;  
   padding: 0;    
   font-size: clamp(20px, 3vw, 24px);
   line-height: 100%;
   font-weight: normal;
   letter-spacing: 1px;
 }
 h3 {
   margin: 0;  
   padding: 0;
   font-size: clamp(18px, 2.5vw, 20px);
   line-height: 100%;
   font-weight: normal;
   letter-spacing: 1px;
 }

 

 a, a:hover, a:link {
   text-decoration: none;
 }
 .bull {
   font-family: "sans-serif";
   width: 20px;
 }

 
.popup-dev {
  width: 100%;
  height: 100%;
  z-index: 999999;
  top: 0;
  bottom: 0;
  position: fixed;
  background: #fff;
  padding: 20px 0 0px 0;
  overflow: scroll;
  text-align: center;
  display: none;
}
 

input:focus::-webkit-input-placeholder {
    color: transparent;
}

 
 table {
  font-family: "OptimaLTPro-Roman" ,SukhumvitSet; 
 }


 table th {
   padding: 2px 0; vertical-align: top;
    }

 table td {
   padding: 2px 0;
   border: 0 !important;
 }
 table tr {
   border: 0 !important;
 }
 ul, li {}
 .header ul, .header li , .footer ul, .footer li {
   margin: 0;
   padding: 0;
   list-style: none;
 }
 
 .clear {
   clear: both;
 }
 
 .top5 {
   margin-top: 5px; 
 }
 .top10 {
   margin-top: 10px;
 }
 .top20 {
   margin-top: 20px;
 }
 
 .top40 {
   margin-top: 40px;
 }
 
 


 .webshow {}
 .mobileshow {
   display: none;
 }
 
 #load_popup img {
   /*	width: 100%;*/
 }
 area:focus {
   outline: 0;
 }

 
 .area_content {
   width: 94%;
   margin-left: auto;
   margin-right: auto;
   position: relative;
   max-width: 1200px;
   border: 0px #000 solid;
   text-align: left;  
 }
 .padding_page {
   padding: 60px 0;
 } 

.popup{
    width: 100%;
  height: 100%;
  z-index: 999999;
  top: 0;
  bottom: 0;
  position: fixed;
  background: var(--color-text); color: var(--color-text);
  padding: 20px 0 0px 0;
  overflow: scroll;
  text-align: center;
  display: none;
}
 
.fixed{
    position: fixed !important; width: 100%; z-index: 999;
}

 

.bg_head{
   background: #ffffff;   width: 100%;   
}



.logo{
  margin: 20px 0 0; text-align: center;
}

.logo img{
  height: 50px !important;
}

 
 .toppage{
  padding-top: 100px;
 }
 

 

.head{
  display: flex; height: 150px;
  justify-content: space-between;
	position: fixed; 
	top: 0; 
	left: 0; 
	width: 100%;
	z-index: 99;
  -webkit-transition: opacity .3s;
  transition: opacity .3s;
}

.head::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
  
  /*z-index: 100;*/
}
.head.hide{
  opacity: 0;
  pointer-events: none;
}
.head.hide a{
  pointer-events: none!important;
}
.head.active{
  opacity: 1;
  pointer-events: auto;
} 
@media all and (min-width: 769px) {
}
@media all and (min-width: 1021px) {
  .head::after{
    z-index: 1;
  }
}
 
@media all and (max-width: 1020px) {
.head{
  height: auto;
}

  .head .container{
    margin: 0; max-width: 100%; min-width: 100%;
  }
  .head .col-sm-3 ,.head .col-sm-9{
min-width: 100%; max-width: none !important;  padding-left: 0; padding-right: 0;
margin-left: 0; margin-right: 0; 
  }
}

.menu-header{
     padding: 10px 0; text-align: center; position: relative; z-index: 99;
     display: block;
}

.menu-header li{
	display: inline-block; vertical-align: text-top;
	margin: 10px 20px;  font-size: 18px; line-height: 100%;
	 cursor: pointer;  transition:0.6s cubic-bezier(0.01, 1.69,    0.99, 0.94); 
} 

.menu-header a{
  color: var(--color-accent);
}
 
.menu-header li:hover{
	  
} 

.h-contact{
  background-color: #000; color: #fff; padding: 7px 40px;
  border-radius: 50px; margin-top: -10px; margin-left: 80px;
   transition:transform .4s ease;  border: 1px #000 solid;
}

.h-contact:hover , .dropdown2-title:hover{
  color: var(--color-hover) !important;
  background-color: #fff; border: 1px #000 solid;
}

.btn-home{
 margin: 0px 20px !important; 
}

.btn-home img{
  height: 35px;
}

 



@media all and (max-width: 1200px) {
.menu-header li{
	 
	margin: 30px 10px 0;  font-size: 18px; line-height: 100%; 
} 
 
}

@media all and (max-width: 1050px) {
  .logo{
    margin: 20px 0 !important; text-align: center;
  }

.logo img{
	 height:35px !important;
} 	

 .toppage{
  padding-top: 75px;
 }

  
.bg_head .col-12{
  padding: 0; 
}


 .menu-header{
    display: none; position: relative; text-align: left; background-color: #fff; height: 100%;
    margin: 0; padding: 0;
  }

  .menu-header li{
	width: 100%;
	margin: 0;  
	padding: 10px 5%; border-bottom: 1px #000 solid;
} 

.btn-home{
  border-bottom: 0 !important; margin: 0 !important; padding: 10px 5% !important;
}


/* Icon 1 */

#nav-icon1 { 
  width: 35px;
  height: 25px;
  position: absolute; right: 0;
  margin: 10px 20px 0 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .5s ease-in-out;
  -moz-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  cursor: pointer;
}

#nav-icon1 span {
  display: block;
  position: absolute;
  height: 1px ;
  width: 100%;
  background: #000 ;
  border-radius: 5px;
  opacity: 1;
  left: 0;
  -webkit-transform: rotate(0deg);
  -moz-transform: rotate(0deg);
  -o-transform: rotate(0deg);
  transform: rotate(0deg);
  -webkit-transition: .25s ease-in-out;
  -moz-transition: .25s ease-in-out;
  -o-transition: .25s ease-in-out;
  transition: .25s ease-in-out;
}

#nav-icon1 span:nth-child(1) {
  top: 0px;
}

#nav-icon1 span:nth-child(2) {
  top: 7px;
}

#nav-icon1 span:nth-child(3) {
  top: 14px;
}

#nav-icon1.open span:nth-child(1) {
  top: 18px;
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -o-transform: rotate(135deg);
  transform: rotate(135deg);
}

#nav-icon1.open span:nth-child(2) {
  opacity: 0;
  left: -60px;
}

#nav-icon1.open span:nth-child(3) {
  top: 18px;
  -webkit-transform: rotate(-135deg);
  -moz-transform: rotate(-135deg);
  -o-transform: rotate(-135deg);
  transform: rotate(-135deg);
}


.h-contact{
   background-color: #fff; color: #000;  margin: 0; padding: 0;
   border: 0;
}

.h-contact:hover , .dropdown2-title:hover{
  color: var(--color-text) !important;
}


.dropdown2-content {
	 display: none; 
  position: relative;  z-index: 999 !important; 
  min-width: 100%;
	margin-left: 0;
    z-index: 1; padding:0;
}

.dropdown2-content .area{
   background-color: #ffffff;  
    box-shadow: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
	padding: 10px 0  ;  text-align: left;
   font-size: 16px; line-height: 120%;
}


}

@media all and (max-width: 768px) {
  .logo{
    margin: 20px 0 !important; text-align: center;
  }

.logo img{
	 height:35px !important;
} 	

 .toppage{
  padding-top: 75px;
 }
 

 




}

 
.banner{
  position: relative; 
}

.banner img{
  width: 100%;
}

.banner::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 0px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}

.banner-text{
 position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  color: #fff; font-size: 48px; line-height: 140%;
   /* minimal effect */
    opacity: 0;
    animation: fadeUp 1s ease forwards;

    text-shadow: 0 2px 10px rgba(0,0,0,0.35);
}
 
@keyframes fadeUp{
    from{
        opacity:0;
        filter: blur(6px);
        transform: translate(-50%, -40%);
    }
    to{
        opacity:1;
        filter: blur(0);
        transform: translate(-50%, -50%);
    }
}

@media all and (max-width: 768px){
  .banner-text{
   font-size: 30px; line-height: 140%;  width: 100%;
}
}

.ttl{
  color:var(--color-text) !important;
}

.dark-modal .modal-content {
    background-color: #333;
    color: #fff;
    border: none;
}

.dark-modal .modal-header {
    border-bottom: 1px solid #444;
}

.dark-modal .btn-close {
    filter: invert(1); /* ปุ่ม X เป็นสีขาว */
}


.foot{
  position: relative;
  background-color: #fff; padding: 0 !important;
  z-index: 2;   margin: 0 !important;
}

.foot-social img{
  width: 30px; margin-right: 5px;
}
.foot .logo{
   
  padding: 0px 60px 40px;
  font-size: 0;
}
.foot .foot-nav{
  display: flex;
  position: relative;
}
.foot .foot-nav::before,
.foot .foot-nav::after{
  content: "";
  display: block;
  position: absolute;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
.foot .foot-nav::before{
  top: 0;
}
.foot .foot-nav::after{
  bottom: 0;
}
.foot .foot-nav .nav-box{
  position: relative;
  width: 50%;
  padding: 60px;
  box-sizing: border-box;
}
.foot .foot-nav .nav-box:first-child::after{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  background: #333;
  width: 1px;
  height: 100%;
  z-index: 1;
  transform: scaleY(var(--border));
  transform-origin: 50% 0;
}
.foot .foot-nav .nav-box > p{
  display: inline-block;
  margin-right: 50px;
}
.foot .foot-nav .nav-box > p:last-child{
  margin-right: 0;
}
.foot .foot-nav .nav-box a{
  font-size: 15px;
  color: #333;
  line-height: 2.6;
  white-space: nowrap;
}

.foot p{
  margin: 0; padding: 0;
}
.foot .copyright{
  padding: 30px 60px 30px;
  font-size: 11px; margin: 0 !important;
  line-height: 1;   position: relative;
}
.foot .foot-nav .nav-box > p.none{
  pointer-events: none;
}
.foot .foot-nav .nav-box .none a {
  color: #ccc;
}
@media all and (max-width: 1490px){
  .foot .foot-nav .nav-box:first-child{
    display: flex;
    flex-wrap: wrap;
  }
  .foot .foot-nav .nav-box:first-child > p{
    width: 135px;
  }
}
@media all and (max-width: 768px){
  .foot .logo{
   text-align: center;
    padding: 10.417% 0;
    margin: 0 auto;
  }
  .foot .foot-nav .nav-box{
    padding: 10.417%;
  }
  .foot .foot-nav .nav-box > p{
    display: block;
    width: auto;
  }
  .foot .foot-nav .nav-box > p + p{
    margin-left: 0;
    margin-top: 10.417%;
  }
  .foot .foot-nav .nav-box a{
    font-size: 3.125vw;
    line-height: 1.6;
  }
   
}



.totop{
  position: absolute; cursor: pointer;
  bottom: 0px;   height: 100%; 
  right: 0px;  width: 60px;
}
.totop::after{
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  background: #333;
  width: 1px;
  height: 100%;
  z-index: 1;
  transform: scaleY(var(--border));
  transform-origin: 50% 0;
} 
 
.totop img{
  display: block;  padding: 18px;  
}

@media all and (max-width: 768px) {
  .totop{
   display: none;
    width: 11.286%;
    height: 0;
    padding-bottom: 11.286%;
  }
  .totop a{
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 35.789%;
    height: 42.105%;
    padding: 28.9475% 32.1055%;
  }
}

 @media screen and (max-width: 1400px) {}
 @media screen and (max-width: 1300px) {}
 @media screen and (max-width: 70em) {
  
     
}

 @media screen and (max-width: 50em) {
  body ,html{
    width: 100%; position: relative; overflow-x: hidden;
  }
     .logo{
          
     }
   
	
.area_content{
	width:90%;  margin-left: auto; margin-right: auto;
}
	 	
.webshow{
		display: none;
	}

	.mobileshow{
		display: block;
	}
	
	
 .head-memeber2{
         display: block; position: absolute; right: 0;
      margin: 20px 70px 0 0;
     }
     
     .head-memeber2 li{
         display: inline-block; vertical-align: top;
     }
     	
     .head-lang{
        min-width: 20px; text-align: left;
      padding: 0px 0px; border-radius: 0px;
}
     
    
     
     .head-memeber2 img{
         width: 25px; margin-top: 5px;
     }
     
     .head-lang select{
         border: 0; margin: 0;
     }
      
    .bg_header .container{
        min-width: 100%; padding: 0; margin: 0;
    }
    
    .col-md-2,.col-md-10 ,.col-md-6{
        min-width: 100%;   
        
    }
	 
    
	 
 
     
     
}

 @media screen and (max-width: 40em) {
      
 
.register-area h1{
  font-size: 24px; line-height: 140%;
}
 
     
}

/* 📱 Responsive */
  @media (max-width: 1024px) {
    .slide {
      flex: 0 0 50%;
      min-width: 50%; /* Tablet แสดง 2 รูป */
    }
    .slider-container::before,
    .slider-container::after {
      width: 25%; /* เงาปรับตามสัดส่วน */
    }
  }

  @media (max-width: 600px) {
    .slide {
      flex: 0 0 100%;
      min-width: 100%; /* Mobile แสดง 1 รูป */
      padding: 0 0.25rem;
    }
    .slide img {
      height: 220px;
    }
    .slider-container::before,
    .slider-container::after {
      display: none; /* มือถือไม่ต้องใช้เงา */
    }
  }


  .home-ads{

  }

    .home-ads img{
    width: 100%;
  }

  
/* The container */
.container2 {
  margin-top: 20px;
  display: inline-block;
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}


/* Hide the browser's default checkbox */
.container2 input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/* Create a custom checkbox */
.checkmark {
  position: absolute;
  top: 0;
  left: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
    border: 1px #aaaaaa solid;
}

/* On mouse-over, add a grey background color */
.container2:hover input ~ .checkmark {
  background-color: #ccc;
}

/* When the checkbox is checked, add a blue background */
.container2 input:checked ~ .checkmark {
  background-color: var(--color-primary);
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the checkmark when checked */
.container2 input:checked ~ .checkmark:after {
  display: block;
}

/* Style the checkmark/indicator */
.container2 .checkmark:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}


h2.page_title{
  display: flex; font-size: 2.865vw; color: var(--color-text);
  justify-content: space-between;
  align-items: baseline;
  position: relative; 
  letter-spacing: -0.02em;
  line-height: 1;
}
h2.page_title::before{
  content: "";
  display: block;
  position: absolute;
  left: 0;
  bottom: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
h2.page_title .jp{ 
  letter-spacing: 0.04em;
}
@media all and (min-width: 769px) {
  h2.page_title{
    padding: 40px 11.905% ;
    font-size: 110px;
  }
  h2.page_title .jp{
    font-size: 19px;
  }
}
@media all and (max-width: 768px) {
  h2.page_title{
    padding: 9.895% 5.208% 7.292%;
    font-size: 12.5vw;
  }
  h2.page_title .jp{
    font-size: 2.604vw;
  }

  .container2 {
  margin-top: 0px; 
  padding-left: 35px;
  margin-bottom: 12px; 
}
}


  h3.hd{
  position: relative;
  padding: 62px 0;
  font-size: 48px;
  text-align: center;
  line-height: 1;
}
h3.hd span{
  display: block;
  margin-top: 14px;
  font-size: 16px;
}

@media all and (min-width: 769px) and (max-width: 1040px){
h3.hd{
  font-size: 36px; line-height: 120%; 
}
}

@media all and (max-width: 768px) {
h3.hd{
  font-size: 30px; line-height: 120%; 
}
}

.breadcrumb{
  position: relative;
  display: flex;
  flex-wrap: wrap;
  padding: 15px 60px 0;
}
.breadcrumb::before,
.breadcrumb::after{
  content: "";
  display: block;
  position: absolute;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
.breadcrumb::before{
  top: 0;
}
.breadcrumb::after{
  bottom: 0;
}
.breadcrumb p{
  font-size: 13px;
  color: #aaa;
  letter-spacing: 0.06em;
  line-height: 1.6;
}
.breadcrumb p + p::before{
  content: '/';
  display: inline-block;
  margin: 0 14px;
  font-size: 13px;
  color: #333;
}
.breadcrumb a{
  font-size: 13px;
  color: #333;
}
@media all and (min-width: 769px) {
}
@media all and (max-width: 768px) {
  .breadcrumb{
    padding: 5.208%;
  }
  .breadcrumb p{
    font-size: 2.604vw;
  }
  .breadcrumb p + p::before{
    margin: 0 2.604vw;
    font-size: 2.604vw;
  }
  .breadcrumb a{
    font-size: 2.604vw;
  }
}


.register{
    background-image: var(--bg);
    background-size: cover;
    background-position: center;
    padding: 80px 0;
}

.register-area{
  width: 94%;
   margin-left: auto;
   margin-right: auto;
   position: relative;
   max-width: 1000px; 
   text-align: left;  
  background: #fff;   min-height: 400px;
  padding: 50px 80px;
}

.register-area h1{
  display: inline-block; visibility: top; position: relative;
}


.register-area h1::after{
  content: "";
  display: block; 
  bottom: 0; margin-top: 20px;
  left: auto; right: auto;
  background: #333;
  width: 100px;
  height: 5px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}

.register .col-sm{
  margin-top: 20px;
}

.input_contact{
    color:#999; border-radius: 0 ;
}

.input_contact:valid{
    color:#000;
}

.register-icon{
  margin-top: 50px; text-align: center;
}

.register-icon img{
   width: 50px; margin: 0 2px;
}

.btn-register{
  margin-top: 40px;
}

@media (max-width:768px){
 


.register-area{
  width: 94%;
  padding: 20px;
}

.register-icon{
  margin-top: 30px; 
}

.register-icon img{
   width: 35px; margin: 0 2px;
}

 

.btn-register{
  margin-top: 20px;
}



}

.value{
  position: relative;  background: #fff;
  padding: 80px 0;
}

 

.value::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 0px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}

.value-wrap{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:40px;
  max-width:1280px;
  margin:auto;
}

/* default */
.value-wrap > div{ 
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  text-shadow: 0 2px 6px rgba(0,0,0,0.25);
  width:min(260px,100%);
  aspect-ratio:1/1;

  
}

/* แถวเดียว */
.value-wrap.layout-row{
  flex-wrap:nowrap;
  justify-content:center;
}

/* แถวละ 3 */
.value-wrap.layout-3 > div{
  flex:0 0 calc(26.333% - 40px);
}

@media (max-width:768px){
.value{
  position: relative;  background: #fff;
  padding: 40px ;
}

.value-wrap{
   gap:20px;
}

.value-wrap > div{ 
  flex:0 0 calc(50% - 20px);
}

.value-wrap.layout-3 > div{
  flex:0 0 calc(50% - 20px);
}

.value-wrap.layout-row{
  flex-wrap:wrap;
  justify-content:center;
}

}
 
.value-box{
  font-size:clamp(18px,2vw,26px);
  color:var(--texthilight);
  background:var(--bghilight);

  position:relative;
  overflow:hidden;
  cursor:pointer;

  transition:
    transform .6s cubic-bezier(.22,.61,.36,1),
    box-shadow .35s ease,
    opacity .6s ease,
    filter .6s ease;

  /* initial state */
  opacity:0;
  transform:translateY(40px) scale(.96);
  filter:blur(6px);
}

/* hover */
.value-box:hover{
  transform:translateY(-10px) scale(1.02);
  box-shadow:0 16px 40px rgba(0,0,0,0.18);
  font-weight: bold;
}

/* highlight glow */
.value-box::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at center, rgba(255,255,255,.35), transparent 70%);
  opacity:0;
  transition:opacity .4s;
}

.value-box:hover::after{
  opacity:1;
}

/* show animation */
.value-box.show{
  opacity:1;
  transform:translateY(0) scale(1);
  filter:blur(0);
}

/* stagger delay */
.value-box.show:nth-child(1){ transition-delay:.05s;}
.value-box.show:nth-child(2){ transition-delay:.12s;}
.value-box.show:nth-child(3){ transition-delay:.19s;}
.value-box.show:nth-child(4){ transition-delay:.26s;}
.value-box.show:nth-child(5){ transition-delay:.33s;}
.value-box.show:nth-child(6){ transition-delay:.40s;}


body.modal-open{
    overflow:hidden;
} 

.value-modal h1{
  text-align: center;
}


.modal-full{
    position:fixed;
    inset:0;
    background:#fff;
    z-index:9999;
    display:none; padding-bottom: 80px;
    overflow-y:auto;
}

.modal-full.active{
    display:block;
}

 
.modal-content{
    max-width:1100px;
    margin:auto;
    padding:40px 20px;
    text-align:center; border: 0;
}

.modal-img{
    width:100%;
    height:auto;
    margin-bottom:20px;
}

.modal-text{
    margin-top: 50px;
    margin-bottom:30px;
}

.modal-close{
   background:url('../../../img/common/arrow.svg') no-repeat center;
  background-size:contain;
  width:48px; left: 50px;
  height:48px;
  transform:rotate(180deg);
    cursor:pointer;  margin-left: auto; margin-right: auto;
}


.location{
  position: relative;  background: #d5d3c7;
  padding: 80px 0; 
}

 

.location::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 0px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}

.location-text{
  padding: 50px;
}
.location-btn{
  margin-top:40px;
  text-align:center;
}

.map-container{
  aspect-ratio:16/9;
  position:relative;
}

#graphic-map,
#google-map{
  position:absolute;
  inset:0;  transition:opacity .3s;
}



#graphic-map img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.btn-map{
  display:inline-block;
   letter-spacing:0.5px;
  border:1px solid #333;
  width:187px;
  padding:14px 0;
  font-size:15px;

  background-color:transparent;
  color:#333;

  text-align:center;
  line-height:1;
  border-radius:30px;
  margin:0 10px;

  cursor:pointer;
  transition:all .25s ease;
}

/* hover */
.btn-map:hover{
  background:#333;
  color:#fff;
}

/* active */
.btn-active{
  background:#333;
  color:#fff;
}


 @media (max-width:576px){


  .location-text{
    padding: 0px 0 20px;
  }

  .btn-map{
    width:140px;
    padding:12px 0;
    font-size:14px;
    margin:5px;
  }

}

.information{
  position: relative;  background: #606060;
  padding: 80px 0;  color: var(--color-text2);
}

.information-detail{
  margin-top: 50px;
}

.information-detail ul{
  padding: 20px 20px; border-bottom: 1px #7d7d7d solid;
  margin: 0;
}
 
.information-detail li{
  display: inline-block; vertical-align: top; width: 45%; padding: 0;
}

.brochure-area{
  text-align: right; margin-top: 80px;
}

.brochure{
  display: inline-block; vertical-align: top; text-align: center;
  background: #d5d3c7; color: var(--color-text); padding: 40px; min-width: 100px; min-height: 100px;
}

.brochure img{
  max-width: 350px; margin-top: 20px;
}

@media (max-width:992px){
 .brochure img{
  max-width: 100%;  
}
}

@media (max-width:768px){
  .brochure-area ,.information-detail{
   margin-top: 40px;
}
   .brochure img{
  max-width: 100%;  
}
 }

.plan{
  position: relative;  background: #ffffff;
  padding: 80px 20px; 
}

.plan::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 0px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}
 
 
.plan-slider-wrap{
  display:flex; position: relative;
  align-items:center;
  gap:20px;
  margin-top:40px;
  overflow:hidden;
}

#plan-slide{
  flex:1;
  max-width:1200px;
  margin:auto;
  position:relative;
}

 
/* ซ่อน icon default */
#plan-slide .swiper-button-prev::after,
#plan-slide .swiper-button-next::after{
  display:none;
}

.swiper-button-next{
  background:url('../../../img/common/arrow.svg') no-repeat center;
  background-size:contain;
  width:48px; right: 50px;
  height:48px;  z-index: 9;
}

.swiper-button-next::after{
  display:none;
}

.swiper-button-prev{
  background:url('../../../img/common/arrow.svg') no-repeat center;
  background-size:contain;
  width:48px; left: 50px;
  height:48px;
  transform:rotate(180deg);
}

.swiper-button-prev::after{
  display:none;
}

.swiper-button-prev,
.swiper-button-next{
  transition:0.3s;
}

.swiper-button-prev:hover,
.swiper-button-next:hover{
  background-image: url('data:image/svg+xml;charset=utf8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%3Csvg%20id%3D%22a%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2049%2049%22%3E%3Ccircle%20id%3D%22b%22%20cx%3D%2224.5%22%20cy%3D%2224.5%22%20r%3D%2224%22%20style%3D%22fill%3A%23333%3B%20stroke%3A%23fff%3B%20stroke-linejoin%3Around%3B%22%2F%3E%3Cpath%20id%3D%22c%22%20d%3D%22m25.71%2C17.68l-.73.72%2C5.27%2C5.22-13.11-.02v1.02l13.12.02-5.29%2C5.2.73.73%2C6.53-6.43-6.52-6.46Z%22%20style%3D%22fill%3A%23fff%3B%20fill-rule%3Aevenodd%3B%22%2F%3E%3C%2Fsvg%3E');
  
}


 
#plan-slide .swiper-slide{
  display:flex;
  align-items:stretch;
  width:100%;  height:auto;
  max-width:100%;
  box-sizing:border-box;
}

.swiper-slide{
  max-width:100%;
}

/* swiper wrapper */
#plan-slide .swiper-wrapper{
  align-items:stretch;
}

 

/* card */
.plan-detail{
  display:flex;
  width:100%;
  height:100%;
}

#plan-slide{
  overflow:hidden;
}

*{
  box-sizing:border-box;
}


/* plan card */
.plan-detail{
  display:flex;
  width:100%;
  background:#edece8;
  gap:20px;

  border-radius:8px;
  overflow:hidden;
  box-shadow:0 8px 25px rgba(0,0,0,0.08);

  min-width:0;
}

/* left content */
.plan-detail > div:first-child{
  flex:1;
}

/* title */
.plan-detail .title{
  display:inline-block;
  background:#a29e92;
  color:#fff;
  padding:20px 30px;
  font-size:24px;
}

/* icon list */
.plan-detail .area-icon{
  padding:20px 30px;
}

.plan-detail .area-icon li{
  background-image:var(--bgicon);
  background-size:40px;
  background-position:left top;
  background-repeat:no-repeat;

  min-height:30px;
  margin-top:20px;
  padding-left:60px;
}

/* image side */
.plan-detail .unit{
  width:50%;
  padding:20px;
  box-sizing:border-box;
}

.plan-detail .unit-area{
  text-align:center;
}

.plan-detail .unit img{
  width:100%;
  height:auto;
  max-width:100%;
  display:block;
  transition:transform .4s ease;
}

/* hover */
.plan-detail:hover img{
  transform:scale(1.04);
}


/* tablet */
@media (max-width:992px){
  .plan-detail{
  flex-direction:column;
}
.plan-detail .title{
  font-size:20px;
  padding:16px 24px;
}

.plan-detail .area-icon{
  padding:16px 24px;
}

.plan-detail .unit{
  width:100%;
  padding:0 30px 20px;
}


}
@media (max-width:768px){
 .plan{
    padding: 40px 10%  ;
  }
.plan-slider-wrap{
  gap:10px;
}

.plan-detail{
  flex-direction:column;
}

.plan-detail .unit{
  width:100%;
  padding:0 30px 20px;
}

.plan-detail .unit img{
  max-width:100%;
  margin:auto;
}

.plan-detail .title{
  font-size:18px;
  padding:14px 30px;
}

.plan-detail .area-icon{
  padding:10px 30px;
}

.plan-detail .area-icon li{
  background-size:32px;
  padding-left:50px;
}

}

.plan-detail .unit-area{
    border: 1px #a29e92 solid;
}
 

 .homeplan-modal{
  position:fixed;
  inset:0;
  z-index:9999;
  display:none;
}

.homeplan-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.85);
  backdrop-filter:blur(4px);
}

.homeplan-content{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px;
}

/* swiper container */

.homeplanSwiper{
  width:100%;
  max-width:1000px;
}

/* slide */

.homeplan-slide .swiper-slide{
  display:flex;
  align-items:center;
  justify-content:center;
}

/* image */

.homeplan-slide img{
  max-width:80vw;
  max-height:80vh;
  width:auto;
  height:auto;

  border-radius:12px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);

  background:#fff;
  padding:0px;
}

/* navigation */

.homeplan-next,
.homeplan-prev{
  color:#fff;
}

/* close button */

.homeplan-close{
  position:absolute;
  top:20px;
  right:25px;
  color:#fff;
  font-size:28px;
  cursor:pointer;
  z-index:10;
}


.facility{
  position: relative; 
}

.facility img{
  width: 100%;
}

 
.facility-text{
 position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  color: #fff; 
   /* minimal effect */
    opacity: 0;
    animation: fadeUp 1s ease forwards;

    text-shadow: 0 2px 10px rgba(0,0,0,0.35);
}
 
@media (max-width:768px){
  .facility{ 
  }
  .facility-text{
    width: 100%; padding: 0 20px;
  }

  .facility-text br{
    display: none;
  }
}

.gallery{
  position: relative;  background: #ffffff;
  padding: 80px 0; 
}

.gallery::after{
  content:"";
  position:absolute;
  bottom:0;
  left:0;
  width:100%;
  height:1px;
  background:#333;

  transform:scaleY(0.5) scaleX(var(--border));
  transform-origin:0 50%;
}

.gallery-swiper{
  width:100%;
  margin:auto;
}

.gallery-swiper .swiper-slide{
  height:260px; width:auto;
  overflow:hidden;
  box-shadow:0 8px 20px rgba(0,0,0,0.08);
}


 
.gallery-swiper img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:.4s;
}






.gallery-swiper .swiper-slide:hover img{
  transform:scale(1.05);
}

@media (min-width:992px){
  .gallery-swiper{
    max-width:1200px;
  }
   .gallery-swiper .swiper-slide{
    height:250px;
  }

}

@media (max-width:768px){

.gallery-swiper .swiper-slide{
    height:200px;
  }



}


.gallery-modal{
  position:fixed;
  inset:0;
  /*background:rgba(255,255,255,0.95);*/
  background:rgba(0,0,0,.85);
  backdrop-filter:blur(4px);
  display:none;
  z-index:9999;
}

.gallery-popup{
  width:80%;
  height:80%;
  margin:5% auto;
}

 
 
.gallery-popup .swiper-slide{
  display:flex;
  align-items:center;
  justify-content:center;
}

/* image */


.gallery-popup img{
  max-width:80vw;
  max-height:80vh;
  width:auto;
  height:auto;

  border-radius:12px;
  box-shadow:0 20px 60px rgba(0,0,0,.5);

  background:#fff;
  padding:10px;
}


.gallery-close{
  position:absolute;
  top:20px;
  right:30px;
  color:#fff;
  font-size:30px;
  cursor:pointer;
  z-index:10;
}


@media (max-width:768px){
.gallery-popup{
  width:100%;
  height:100%;
  margin:5% auto;
}
}


.finance{
  background:#edece8; position: relative;
}

.finance::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}


.finance-wrap{
  display:flex;
  flex-wrap:wrap;
}

.finance-left,
.finance-right{
  position: relative;
  flex:1 1 50%;
  min-height:400px;
}

 .finance-left::before{
    content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  background: #333;
  width: 0px;
  height:100%;
  z-index: 1;
  transform: scaleY(var(--border));
  transform-origin: 50% 0;
  }

.finance-left .area{
  padding: 80px;
}

.calculate{
  background:url(../../../img/project/calculate3.jpg) center center no-repeat;
  background-size:cover; position: relative;
}

.calculate-text{
 position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
  color: #fff;  
    text-shadow: 0 2px 10px rgba(0,0,0,0.35);
}

.calculate-text h1{
  line-height: 1.8;
}

.calculate-btn{
  margin-top:40px;
  text-align:center;
}


@media (max-width:992px){
.finance-left .area{
  padding: 40px;
}
}

@media (max-width:768px){

  .finance-left,
  .finance-right{
    flex:1 1 100%;
  }

  .finance-left .area{
  padding: 20px;
}
 
  .finance-right{
    min-height: 200px;
  }
  .calculate-text{
    width: 100%;
  }

  .calculate-btn{
  margin-top:20px; 
}

}

.input-wrap{
  display:flex;
  align-items:center;
  background:#edece8;
  padding:6px 10px; 
  border-bottom: 1px #b2b1ae solid;
}

.input_cal{
  flex:1;
  border:none;
  background:transparent;
  outline:none;
}

.input-unit{
  margin-left:10px; 
}

.remark{
  font-size: 14px;
  color: var(--color-text-remark);
  margin-top: 10px;
}



 
.contact{
   background:#ffffff; position: relative;
   padding: 80px 0;
}

.contact-logo img{
  height: 50px;
}

.contact::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}

.contact-wrap{
  display:flex;
  flex-wrap:wrap;
}

.contact-left,
.contact-right{
  position: relative;
  flex:1 1 50%;   
}

.contact-left{
  padding-right: 80px;
  border-right: 1px #7f7f7f solid;
}

.contact-right{
  padding-left: 80px;
}

.contact .tel{
   font-size: clamp(24px, 2.5vw, 36px); line-height: 100%;
}


.contact-icon{
  margin-top: 20px; 
}

.contact-icon img{
   width: 50px; margin: 0 2px;
}



/* mobile */
@media (max-width:768px){
.contact{
    padding: 40px 0;
}

.contact-logo img{
  height: 40px;
}


.contact-left,
.contact-right{
  flex:1 1 100%;
}

.contact-left{
  padding-right:0;
  border-right:none;
  margin-bottom:40px;
}

.contact-right{
  padding-left:0;
}

}

.thankyou{
   background:#ffffff; position: relative;
     margin-top: 50px; 
   min-height: 400px;
}

 

.thankyou::after{
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #333;
  width: 100%;
  height: 1px;
  z-index: 1;
  transform: scaleX(var(--border));
  transform-origin: 0 50%;
}

.thankyou-text{
   position: absolute;
    top: 50%; 
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;  line-height: 140%; 
}

.thankyou-text h2{
  padding: 10px 0;
}

@media (max-width:992px){
   .btn{ width: 130px; }
}

@media (max-width:768px){
  .register, .value, .information ,.location  ,.gallery{ 
    padding: 40px 0; 
  } 
 
  .btn{ width: 120px; }

  
.swiper-button-next{
  background:url('../../../img/common/arrow.svg') no-repeat center;
  background-size:contain;
   width: 6.510vw; height: 6.510vw; 
  margin: 0 2.604%;  
  z-index: 9; right: 0px; 
}

 

.swiper-button-prev{
  background:url('../../../img/common/arrow.svg') no-repeat center;
  background-size:contain; 
   width: 6.510vw;  height: 6.510vw; 
     left: 0px;  margin: 0 2.604%;
  transform:rotate(180deg);
}

 }


 .hilight {
  position: relative;
  width: 100%;  padding: 80px 0;
}

@media (max-width:768px){
 .hilight { 
  padding: 40px 0;
}
}

.hilight picture,
.hilight img {
  width: 100%; 
}

.hilight-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  
  color: #fff;
  text-align: center;

  /* เงา */
  text-shadow: 0 2px 10px rgba(0,0,0,0.6);

  z-index: 2;
}

 
.hilight-text {
  opacity: 0;
  transform: translate(-50%, -30%); /* เริ่มสูงขึ้นนิด */
  transition: all 0.8s ease;
}

.hilight-text.show {
  opacity: 1;
  transform: translate(-50%, -50%);
}