/**  ----------------------------------------
* animation rotate-center
* ----------------------------------------*/
.rotate-center { -webkit-animation: rotate-center 100s linear infinite both; animation: rotate-center 100s linear infinite both; }
@-webkit-keyframes rotate-center {
0% {  -webkit-transform: rotate(0); transform: rotate(0); }
100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
}

@keyframes rotate-center {
0% { -webkit-transform: rotate(0); transform: rotate(0); }
100% {  -webkit-transform: rotate(360deg); transform: rotate(360deg); } 
}

/* --- animation slide_up_down  ------------- */
.slide_up_down { -webkit-animation: slide_up_down 1.7s ease-in-out infinite alternate both; animation: slide_up_down 1.7s ease-in-out infinite alternate both; }
@-webkit-keyframes slide_up_down {
0% { -webkit-transform: translateY(0); transform: translateY(0); }
100% { -webkit-transform: translateY(-20px); transform: translateY(-20px); }
}
@keyframes slide_up_down {
0% {  -webkit-transform: translateY(0); transform: translateY(0); }
100% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } 
}
/* --- animation slide_down_up  ------------- */
.slide_down_up { -webkit-animation: slide_down_up 1.7s ease-in-out infinite alternate both; animation: slide_down_up 1.7s ease-in-out infinite alternate both; }
@-webkit-keyframes slide_down_up {
0% { -webkit-transform: translateY(20px); transform: translateY(-20); }
100% { -webkit-transform: translateY(0px); transform: translateY(0px); }
}
@keyframes slide_down_up {
0% {  -webkit-transform: translateY(20px); transform: translateY(20px); }
100% { -webkit-transform: translateY(0px); transform: translateY(0px); } 
}

.card-box{ width: 100%; height: 100%;  } 
.promiseArea { padding: 50px 0px;  position: relative; overflow: hidden}
.promiseArea  strong{color:#0199ff;}
.promiseArea .title-4{ border-bottom: solid 1px #fff;}
.promiseArea .leftBox, .promiseArea .rightBox { width: 50%; max-width: 620px}
.promiseArea .leftBox p{ font-weight: 600 }
@media (max-width:840px) {
.promiseArea .rightBox {  width: 100% ; max-width: 100%;  margin-bottom: 140px }
.promiseArea .leftBox{   width: 100% ; max-width: 100%; margin-bottom: 40px }
}
  
@keyframes animate-pulse{
0%{ box-shadow: 0 0 0 0 rgba(255,109,74,0.7), 0 0 0 0 rgba(255,109,74,0.7); }
40%{ box-shadow: 0 0 0 20px rgba(255,109,74,0.0), 0 0 0 0 rgba(255,109,74,0.7);  }
80%{ box-shadow: 0 0 0 20px rgba(255,109,74,0.0), 0 0 0 30px rgba(255,109,74,0); }
100%{ box-shadow: 0 0 0 0 rgba(255,109,74,0.0), 0 0 0 30px rgba(255,109,74,0);     }
}
/*** ----------------------------------------
 * animation slide-up-down
 * ----------------------------------------*/
.slide-up-down {
  -webkit-animation: slide-up-down 1.7s ease-in-out infinite alternate both;
  animation: slide-up-down 1.7s ease-in-out infinite alternate both; }

/* ------- */
@-webkit-keyframes slide-up-down {
0% {  -webkit-transform: translateY(0); transform: translateY(0); }
100% { -webkit-transform: translateY(-20px); transform: translateY(-20px); }
}
@keyframes slide-up-down {
0% { -webkit-transform: translateY(0); transform: translateY(0); }
100% { -webkit-transform: translateY(-20px); transform: translateY(-20px); } 
}
@-webkit-keyframes rotate {
to {-webkit-transform: rotate(360deg); transform: rotate(360deg);}
}
@keyframes rotate {
to { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
}

@-webkit-keyframes rotateCenter {
0% { -webkit-transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg);}
100% {  -webkit-transform: translate(-50%, -50%) rotate(360deg);  transform: translate(-50%, -50%) rotate(360deg); }
}
@keyframes rotateCenter {
0% { -webkit-transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg);  }
100% {-webkit-transform: translate(-50%, -50%) rotate(360deg); transform: translate(-50%, -50%) rotate(360deg); }
}
@-webkit-keyframes rotateCenter2 {
0% { -webkit-transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg);  }
100% { -webkit-transform: translate(-50%, -50%) rotate(-360deg); transform: translate(-50%, -50%) rotate(-360deg); }
}
@keyframes rotateCenter2 {
0% { -webkit-transform: translate(-50%, -50%) rotate(0deg); transform: translate(-50%, -50%) rotate(0deg); }
100% { -webkit-transform: translate(-50%, -50%) rotate(-360deg); transform: translate(-50%, -50%) rotate(-360deg); }
}

@keyframes growAndFade {
0% { opacity: 0.75;  transform: scale(0);  }
100% {  opacity: 0; transform: scale(1); }
}
 
 .box_container .text, .box_container { font-size: 60px; font-weight: 900; line-height: 200px; text-transform: uppercase;  text-align: center; color: rgba(19, 149, 186, 0); border-radius: 50%;}
.box { background-image: transparent; height: 30vh; width: 30vw; position: relative;  display: flex; align-items: center; justify-content: center; box-sizing: border-box;}
[class^='ci'] { border-radius: 50%; height:30vh;  width: 30vh; mix-blend-mode: screen; position: absolute;}
.box_container { color: rgba(19, 149, 186, 0); margin: 40px auto 0 auto;}


.circle1 {  background-color: rgba(231, 54, 75, 1);-webkit-animation: circle1 4s ease infinite forwards;animation: circle1 4s ease infinite alternate;}
.circle2 {  background-color: rgba(13, 60, 85,1);-webkit-animation: circle2 4s ease infinite forwards;animation: circle2 4s ease infinite alternate ;}

.box_container .text_merge {  width: 400px; height: 160px; margin-top: 100px; font-size: 50px; line-height: 80px; text-align: center; color: white;  z-index:2;   -webkit-animation: text_02 5s infinite alternate ease-in; animation: text_02 7s infinite alternate ease-in;}
.text_merge { background: rgba(19, 149, 186, 0); -webkit-animation: text_02 4s infinite alternate ease-in; animation: text_02 4s infinite alternate ease-in;}
.text {margin-top: 50px;background: rgba(19, 149, 186, 0);  -webkit-animation: text_01 4s infinite alternate ease-in; animation: text_01 4s infinite alternate ease-in;}


@keyframes text_01 {
100% {  color: rgba(19, 149, 186, 0); }
60% {color: rgba(19, 149, 186, 0);}
0% {color: white; }
}
@-webkit-keyframes text_01 {
  100% { color: rgba(19, 149, 186, 0); }
  60% {color: rgba(19, 149, 186, 0);}
  0% { color: white; }
}

@keyframes text_02 {
  0% { color: rgba(19, 149, 186, 0);  }
  60% {color: rgba(19, 149, 186, 0);}
  100% { color: white; }
}
@-webkit-keyframes text_02 {
  0% { color: rgba(19, 149, 186, 0); }
  60% {color: rgba(19, 149, 186, 0);}
  100% { color: white; }
}

/*Keyframes*/ 
/*>>>>>>>>>>>>>>>>>>>>>>>>C1>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
/*---------------------------------------c1-blue-(dev)-*/
@-webkit-keyframes circle1 {
  from { transform: translate(-80%, 0%); }
  to {  transform: translate(0, 0); }
}
@keyframes circle1 {
  from { transform: translate(-80%, 0%); }
  to { transform: translate(0, 0); }
}
 /*>>>>>>>>>>>>>>>>>>>>>>>>C3>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>*/
/*---------------------------------------c3-pink-(data)*/
@-webkit-keyframes circle2 {
  from { transform: translate(80%, 0%); }
  to { transform: translate(0, 0); }
}
@keyframes circle2 {
  from { transform: translate(80%, 0%);  }
  to { transform: translate(0, 0); }
}
@keyframes fade {
  0% {  opacity: 0 }
  30% { opacity: 0 }
  100% { opacity: 1 }
}

.brand-gradient{ background:linear-gradient(to right, rgba(33,173,167,1) 0%, rgba(128,191,51,1) 100%);}

 
.p-lead { font-size: 1.125rem;  max-width: 550px;  margin-bottom: 30px; font-weight:500; line-height:2rem;text-align: justify;  }
 @media (max-width: 1280px) {
.p-lead { max-width: 100%;  }
}
 @media (max-width: 1024px) {
.p-lead { font-size: 1rem;font-weight:400; line-height:1.6rem;   }
}

 

.hero { height: 100vh; display: flex; flex-wrap: wrap; align-items: center; position: relative;  }

.hero-grid { display: grid; grid-template-columns: 1.15fr 1fr; align-items: flex-start; gap:50px;  }
.hero-desc {border-left: 2px solid #21ADA7; padding-left: 30px;  text-align: justify; }
.hero-desc p { font-size: 1.125rem; max-width: 640px;  margin-bottom: 30px; font-weight: 400; text-align: justify;  }
.hero-bg {  position: absolute; top: 0; right: 0; width: 100%;  height: 100%; object-fit: cover; }
.hero-content { position: relative;  z-index: 10; width: 100%;text-align: justify; }
@media (max-width: 1160px) {
 .hero { height: auto;padding: 80px 0px;  }   
.hero-desc p { font-size:1rem;  }   
}
@media (max-width: 840px) {
.hero { height: auto; } 
.hero-grid { grid-template-columns: 1fr; gap: 40px; padding-bottom: 40px; }
.hero-content { padding: 40px 0px; }
}
@media (max-width:767.98px) {
.hero-desc {  padding-left: 20px; }
.hero-content { padding: 0px; }    
}


.story { height: 100vh; display: flex; flex-wrap: wrap;  justify-content: center; align-items:center; position: relative;  }
.story-content { max-width: 720px;margin: auto;  position: relative;  z-index: 10; width: 100%;text-align: justify; }
.story-content p { font-size: 1.125rem;   margin:5px 0px; font-weight:500; line-height:1.875rem; text-align: center;  }
@media (max-width:767.98px) {
.story { height: auto; padding-bottom: 50px;}
.story-content { max-width: 100%; margin-bottom:50px; }   
.story-content p { font-size:1rem;  text-align: left;  }    
}

.section { padding: 160px 0;  position: relative;  }
@media (max-width:1280px) {
.section { padding:50px 30px; }
}
 @media (max-width:1024px) {
.section.esg { padding:50px 0px; }
}
@media (max-width:767.98px) {
.section { padding:50px 0px; }
}
@media (max-width:320px) {
.section { padding:0px; }
}
.section-short { padding: 0px 0;  position: relative;  }
.section-wave { padding: 80px;  position: relative;  }

.wave-mask-top {  width: 100vw;  height: auto; position: absolute;  top: 0px; left: 0px;  z-index: 2; pointer-events: none;}
.wave-mask-bottom {  width: 100vw;  height: auto; position: absolute;  bottom: 0px; left: 0px;  z-index: 2; pointer-events: none;}
.grid-asym { display: grid; grid-template-columns:1fr 1fr; gap: 50px; align-items: start; }
.grid-desc{ max-width: 550px; position: relative;z-index: 3;  }
.grid-img{  width: 100%; max-width: 800px;  }

.img-reveal { position: relative; z-index: 3; border-radius:  15px; overflow: hidden}
.img-reveal img { width: 100%; height: 100%; object-fit: cover; display: block;  transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1);}
 
 @media (max-width:1024px) {
.philosohy .img-reveal{ width: 100%; max-width:400px; margin: auto; order: 1}
.philosohy .hero-content{order: 2}
.esg .img-reveal{ width: 100%; max-width:500px; margin: auto 0px; order: 1}    
.esg .grid-desc{ max-width: 100%;padding: 0px 30px;}     
}
 @media (max-width:767.98px) {
  .section-wave { padding: 80px 0px;  position: relative;  }
  .esg .grid-desc{  padding: 0px 20px;}     
}

.service-list { margin-top: 80px; border-top: 1px solid rgba(0,0,0,0.1);  }
.service-item { padding: 50px 0; border-bottom: 1px solid rgba(0,0,0,0.1); display: grid; grid-template-columns: 0.4fr 1fr 0.6fr; align-items: center; transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
.service-item:hover { padding-left: 30px; background: #f8faf9;  }
.service-title { font-size: 1.5rem;  font-weight: 700; }
.service-desc { color: #667570;  font-size: 1rem; padding-right: 40px; font-weight: 400; text-align: justify;  }


.cta-box {   text-align: center; padding: 200px 40px; position: relative; overflow: hidden; }
.cta-box h2 { font-size: clamp(2rem, 5vw, 3.5rem); font-weight:600; margin-bottom: 50px; letter-spacing: 2px;  position: relative;  z-index: 2; }
.cta-box h3 {font-size: clamp(1.375rem, 5vw, 1.75rem); font-weight:700;}
.cta-box p{  font-size: 1.125rem;  font-weight: 500; line-height: 2rem;   text-align: center;  }
.cta-box .inner{max-width: 550px; margin: auto}
.cta-blur { width: -webkit-fit-content;  width: -moz-fit-content; width: fit-content;  max-width: 720px; margin: auto; position: relative; padding: 60px; border-width: 8px; border-style: solid; border-color: transparent;  border-radius: 20px; border-image-source: linear-gradient(to right, rgba(33,173,167,1) 0%, rgba(128,191,51,1) 100%);  border-image-slice: 1; backdrop-filter: blur(4px);  -webkit-backdrop-filter: blur(4px);}
 /* 響應式優化 */
@media (max-width: 1024px) {
.grid-asym, .service-item { grid-template-columns: 1fr; gap: 40px; }
.service-item { padding: 30px 0; } 
.cta-box { padding: 100px 40px;}
 .cta-box h2 { font-size: 2.125rem;  margin-bottom: 30px;  }
 .cta-box h3 {font-size:1.5rem; }
 .cta-box p{  font-size: 1rem;  line-height:1.675rem; }
  
}
@media (max-width:992px) {
 .cta-box { padding: 40px 40px 80px 40px;}
}
@media (max-width:767.98px) {
 .cta-box { padding:40px 0px;}
.cta-blur {  padding: 20px;  } 
.cta-box h2 { font-size: 1.875rem;   }   
.cta-box h3 { font-size: 1.375rem;   }       
.cta-box p{  font-size:1rem;  }
}

@media (max-width:320px) {
 .cta-box { padding:40px 0px;}
.cta-blur {  padding: 20px;  } 
.cta-box h2 { font-size: 1.5rem;   }   
.cta-box h3 { font-size: 1.175rem;   }       
.cta-box p{  font-size:.9rem;  }
}



.vision-box{ margin: 80px auto; padding:30px 0px; position: relative;z-index: 1 }
.vision-box-2{ margin: 80px auto auto auto; padding:30px 0px 0px 0px; position: relative;z-index: 1 }
.vision-wrap{ width: -webkit-fit-content;  width: -moz-fit-content; width: fit-content;  max-width: 720px; margin:40px auto; position: relative; padding:0px 20px; }
.vision-wrap h3{ font-size: 2rem;   margin-bottom: 30px; font-weight: 600; text-align: justify; }
.vision-wrap p{ font-size: 1.125rem;  margin-bottom: 30px; font-weight: 500;  line-height: 2rem; text-align: justify; }

.icon-list{ width: 100%; display: flex; flex-wrap: wrap; margin: 10px 0px;  padding: 0px; list-style: none}
 .icon-list li{width: calc(100%/3 - 20px); margin: 10px;}
.icon-list li .item{ display: flex;  flex-wrap: wrap; flex-direction: column; justify-content: center;  padding: 10px; border-radius:0px 50px 0px 50px; background-image: linear-gradient(to right, rgba(33,173,167,1) 0%, rgba(128,191,51,1) 100%);  border: solid 1px rgba(255,255,255,.5); box-shadow: 0px 3px 5px rgba(33,173,167,.3)}
.icon-list li .item i{width: 80px; height: 80px; margin: auto; filter: grayscale(1) brightness(500)}
.icon-list li .item h3{margin:10px auto auto auto;font-size: 1.125rem; font-weight: 500; color: #fff;}

@media (max-width: 1280px) {
.vision-wrap{ max-width: 740px;  }
.vision-wrap h3{ font-size: 1.875rem; text-align: center;  }
}
@media (max-width: 1024px) {
.vision-box{ margin: 0px auto; padding:30px 0px; }  
 .icon-list{ width: 100%; max-width: 70%; margin: 30px auto;  }
}
@media (max-width: 767.98px) {
.vision-wrap{ max-width: 100%; padding:0px; }
.vision-wrap h3{ font-size: 1.5rem; }
.vision-wrap p{ font-size: 1rem;line-height: 1.65rem;   }  
.vision-box{ padding:0px; }  
 .icon-list{  max-width: 100%; margin: 30px auto;  }
.icon-list li .item { border-radius:0px 20px 0px 20px; }   
.icon-list li .item i{width: 50px; height: 50px; }
.icon-list li .item h3{ font-size: 1rem; }
}
@media (max-width: 320px) {
.icon-list{ width: calc(100% + 20px); margin: 30px auto;}  
 .icon-list li{width: calc(100%/3 - 6px); margin: 10px 3px;}
.icon-list li .item i{width: 50px; height: 50px; }
.icon-list li .item h3{ font-size: .75rem; }    
}

/*bg circle*/
.fix-bg {  position: absolute; top: 0; right: 0; width: 100%;  height: 100%;  z-index: 0;pointer-events: none }
.img-object {  width: 100%; height: 100%; object-fit: contain;  object-position: center; }


.pop-1 span { position: absolute; right:0px; top:10%;  width:80%;  height: 50%; display: block; -ms-transform: translateX(20%); transform: translateX(20%); }
.pop-1 span img{  animation: moving2 7s linear 0s infinite alternate; }

.pop-2 span { position: absolute; left:-10%; top:20%;  width:50%;  height:50%; -ms-transform: translateY(-50%);  transform: translateY(-50%); opacity: .5 }
.pop-2 span img{ animation: moving 3s linear 0s infinite alternate;}

.pop-3 {width: 50%; height: 50%;  position: absolute; top:25%; right:10%;  }
.pop-3 span {width: 100%;height: 100%;display: block;border-radius: 50%; background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 58%, rgba(255, 255, 255, 0.8) 70%, rgba(255, 255, 255, 0.8) 100%);-ms-transform: translate(50%, -50%);transform: translate(50%, -50%); opacity: 0.35; }
.pop-3 img {animation: translateY-rotate 10s linear 0s infinite alternate; }

 
.pop-4 {position: absolute; right:0px;bottom:0;  width:50%;  height: 50%; opacity: .75 }
.pop-4 span {width: 100%;height: 100%;display: block;-ms-transform: translateY(-10%);transform: translateY(-10%); }
.pop-4 img {  animation: moving3 7s linear 0s infinite alternate;}

.pop-5 {width: 50%; height: 50%;  position: absolute;z-index: 0; bottom:0; right:0px; opacity: .5 }
.pop-5 span {width: 100%;height: 100%;display: block;-ms-transform: translateY(20%);transform: translateY(20%); } 
.pop-5 span img {animation:banner-scale 5s linear 0s infinite alternate; }

 

@keyframes moving {
  0% {-webkit-transform: translateY(0);transform: translateY(0);}
  100% {-webkit-transform: translateY(5%);transform: translateY(5%);} 
}
@keyframes moving2 {
  0% {-webkit-transform: translateY(0) scale(1);transform: translateY(0) scale(1); }
  100% {-webkit-transform: translateY(6%) scale(0.8);transform: translateY(6%) scale(0.8);} 
}
@keyframes moving3 {
  0% {-webkit-transform: translateY(0);transform: translateY(0);}
  100% {-webkit-transform: translateY(15%);transform: translateY(15%);} 
}
@keyframes banner-scale {
  0% {transform: scale(1);}
  100% {transform: scale(0.7);}
}
@keyframes translateY-rotate {
  0% { -webkit-transform: translateY(0%) rotate(0);transform: translateY(0%) rotate(0);}
  100% { -webkit-transform: translateY(30%) rotate(360deg);transform: translateY(30%) rotate(360deg);} 
}


 

/* --- 區塊三：低碳材料銀行 Dark Theme --- */

.materials-bank {background:linear-gradient(to right, rgba(33,173,167,1) 0%, rgba(128,191,51,1) 100%);  color: #fff;  padding: 160px 0;  position: relative;z-index: 1 }
.materials-bank::after {  content: "";  position: absolute;  bottom: 0;  right: 0;  width: 40%; height: 100%;  background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 251, 219, 0.4) 100%); transform: skewX(-15deg);}
.bank-card  { width: -webkit-fit-content;  width: -moz-fit-content; width: fit-content; background: linear-gradient(to bottom, rgba(255, 235, 59, .3), rgba(238, 255, 106, .1)); max-width: 720px; margin: auto; position: relative; padding: 60px; border-width: 8px; border-style: solid; border-color: transparent;  border-radius: 20px; border-image-source: linear-gradient(to right, rgba(255,255,255,.5) 0%, rgba(128,191,51,1) 100%);  border-image-slice: 1; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); z-index: 6}
.bank-content { max-width: 800px;  margin: 0 auto; text-align: center;  }
.bank-content h2 {  color: #fff;margin: auto  auto 20px auto; text-align: center;}
.bank-card h3 {  font-size: 1.875rem;font-weight: 500; letter-spacing: 0.2em; color: #fff;  margin-bottom: 24px;  }
.bank-card p {  font-size: 1.125rem;  color: #fff; max-width: 600px; margin: 0 auto; font-weight: 500; }



@media (max-width:767.98px) {
.bank-card  { padding:20px; }   
 .bank-card p {  font-size:1rem; line-height: 1.65rem;}    
}

.nodes-grid {  display: flex; flex-wrap: wrap; }
.node-item { width: calc(100%/3 - 20px); margin:10px;  background: #fff; padding: 40px; border-radius: 15px; box-shadow: 0 4px 20px rgba(0,0,0,0.02);  border-top: 2px solid transparent;  transition: border-color 0.3s ease; position: relative; overflow: hidden }
.node-item figure{position: absolute; width: 100%; height: 100%; left:0px; top:0px;z-index: 0;    border-radius: 15px;  overflow: hidden;background: #000; }
.node-item figure img{ width: 100%; height: auto; opacity: .5;border-radius: 15px; }
.node-item .inner{  width: 100%; height: 100%; position: relative;z-index: 9 }
.node-number { font-size: 0.9rem;  color:#fff; font-weight: 700;  margin-bottom: 16px; display: block;  }
.node-item h4 {  font-size: 1.25rem;  margin-bottom: 16px;font-weight: 600; color: #8ec31e  }
.node-item p {  font-size: 1rem; line-height: 1.5rem; margin: 0px auto;  color: #fff;font-weight: 500; }

@media (max-width: 1280px) {
.node-item { padding:40px 20px; }
}

@media (max-width: 1160px) {
.node-item { padding:15px 20px; }
}
@media (max-width: 1024px) {
.node-item { padding:15px 20px; }
.node-item h4 {  font-size: 1.125rem;  margin-bottom: 10px;  }
.node-item p {  font-size:0.9rem;  line-height: 1.375rem;  }
}


/* --- RWD RWD 響應式斷點設計 --- */
@media (max-width: 992px) {
.grid-split { grid-template-columns: 1fr; gap: 40px; }
 .node-item { width:100%; margin:20px auto; padding: 50px 40px;}
.satoyama { padding: 100px 0;  }
.materials-bank { padding: 100px 0;  }
.ecosystem { padding: 100px 0;}
.cta { padding: 100px 0;  }
}
@media (max-width:767.98px) {
.node-item { padding:30px 20px; }
}
@media (max-width:320px) {
.node-number { font-size: 0.75rem; margin-bottom: 8px;  }    
.node-item { padding:10px 20px; }
}
 
/* 媒體報導三欄網格 */
.media-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));  gap: 30px;  }
.media-card { background-color:rgba(255,255,255,.5); border-radius:5px; box-shadow: 0 4px 15px rgba(0,0,0,0.02); display: flex; flex-direction: column;  border: 1px solid rgba(0,0,0,0.03); overflow: hidden; }
.video-container { position: relative; width: 100%; padding-top: 62.725%; /* 16:9 黃金比例 */ background-color: #000; z-index: 0 }
.video-container iframe  { position: absolute; top: 0; left: 0; bottom: 0; right: 0;  width: 100%; height: 100%; border: none; }

.video-placeholder { background: rgba(0,0,0,.5);  display: flex; align-items: center; justify-content: center;  color: #fff; padding: 20px; text-align: center; font-size: 15px; font-weight: 500; position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index:99  }


.video-container figure  { position: absolute; top: 0; left: 0; bottom: 0; right: 0;  width: 100%; height: 100%; border: none;}
.video-container figure img { max-width:100%; height: auto; object-fit: cover; margin: auto; display: block; border-radius:0px;   transition: all 0.5s ease-in-out;}






.media-info { padding: 28px 24px; display: flex; flex-direction: column; flex-grow: 1;  }
.media-tag {  font-size: 0.875rem; font-weight: 600; color:#40b47b; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 8px; }
.media-info h4 { font-size: 1.125rem; color: #40b47b; margin-bottom: 16px;  line-height: 1.5; font-weight: 600; }
.media-info p { font-size: 1rem;  margin-bottom: 24px; flex-grow: 1;  line-height: 1.6; text-align: justify;  }

@media (max-width:320px) {
 .media-grid { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));   }   
}

.bg-philosohy { background-image: attr(src url); background-repeat: no-repeat; background-size:100% auto ;background-position:left bottom;  position: absolute;z-index:-1;  width: 100%;  height: 100%; top: 0px; right: 0; bottom: 0; left: 0; transition: 0.8s 1s;  }
.bg-philosohy-top { background-image: attr(src url); background-repeat: no-repeat; background-size:auto 100%;background-position:right top;  position: absolute;z-index:0;  width: 50%;  height: 50%;   right:18%; bottom:-10%;  transition: 0.8s 1s;}

@media (max-width: 1024px) {
 .bg-philosohy-top { background-size: 100% auto; }   
 }
@media (max-width: 767.98px) {
 .bg-philosohy-top { bottom:-18%;   }   
 }
.bg-end { background-image: attr(src url); background-repeat: no-repeat; background-size:100% auto;background-position:right bottom;  background-color: #eedebc; position: absolute;z-index:-1;  width: 100%;  height: 100%; top: 0px; right: 0; bottom: 0; left: 0; transition: 0.8s 1s;  }


.bg-end-background { background-image: attr(src url); background-repeat: no-repeat; background-size:100% auto ;background-position:left bottom;  background-attachment: fixed; position: absolute;z-index:-1;background-color:#010c3f;  width: 100%;  height: 100%; top: 0px; right: 0; bottom: 0; left: 0; transition: 0.8s 1s; -webkit-filter: brightness(0.35); }
@media (max-width: 1024px) {
.bg-end-background {  background-size:120% auto ;  }	
}
@media (max-width:767.98px) {
.bg-end-background {  background-position:left bottom;  background-attachment:local;  }
}



/* ==========================================================================
friendly.html. 區塊一：vision Section (主視覺區)
========================================================================== */
.vision { background:linear-gradient(to right, rgba(33,173,167,1) 0%, rgba(128,191,51,1) 100%);  color: #fff; padding: 100px 24px; position: relative;  overflow: hidden;  }

/* 背景裝飾光暈 */
.vision::before { content: ""; position: absolute; top: -10%; left: -10%;  width: 400px; height: 400px; background:  rgba(16, 185, 129, 0.15); filter: blur(150px); opacity: 0.15; pointer-events: none;  }
.vision-container { max-width: 1000px;  margin: 0 auto; }
.badge { display: inline-block; background-color: rgba(16, 185, 129, 0.15); color: #34d399;  border: 1px solid rgba(16, 185, 129, 0.3); padding: 6px 16px;  border-radius: 50px; font-size: 14px; font-weight: 500; letter-spacing: 1px; margin-bottom: 24px; }
.vision p { font-size: 18px; color: #cbd5e1;  font-weight: 300;  max-width: 800px; }
.vision p span { color: #34d399; font-weight: 400; }

/* ==========================================================================
3. 區塊二：Intro Section (核心理念銜接區)
========================================================================== */
.intro { max-width: 850px; margin: 0 auto; padding: 80px 24px 40px 24px;  text-align: center; border-bottom: 1px solid #e2e8f0;  }
.intro h2 { font-size:4rem; letter-spacing: 4px; margin-bottom: 8px;  text-align: center; }
.intro h3 { letter-spacing: 1px; margin-bottom: 24px; text-align: center; }
.intro .desc { max-width: 650px; margin: 0 auto 24px auto; }

/* ==========================================================================
4. 區塊三：SMART Grid Section (卡片排版)
========================================================================== */
.smart-section { margin: 0 auto; padding: 80px 0px;position: relative; z-index: 1}
.smart-grid {display: flex; flex-wrap: wrap; }
.smart-card {display: flex; flex-direction: column; width: calc(100%/3 - 20px); margin: 10px; padding: 32px 24px; border-radius: 16px;
background:linear-gradient(to top, rgba(221,250,225,.65) 0%, rgba(255,255,255,.35) 100%);  border:2px solid #fff;  box-shadow: 0 1px 3px rgba(0,0,0,0.02); transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);  }
.card-letter { font-size: 64px; font-weight: 900;  color: #4eb276; line-height: 1;  margin-bottom: 8px; user-select: none;  }
.smart-card h4 {margin: 5px 0px; font-size: 0.875rem; font-weight: 700; color: #4eb276;;  }
.card-meta { font-size: 1rem; color: #94a3b8; font-weight: 500; letter-spacing: 0.5px;  margin-bottom: 24px;  }
.card-highlight { font-size: 1.125rem; font-weight: 700; color:#000; border-left: 2px solid #4eb276; padding-left: 10px;  margin-bottom: 16px; line-height: 1.4; }
.smart-card .card-body { margin: 0px; padding: 0px 10px; font-size:0.95rem; color: #475569; font-weight: 400;  line-height: 1.75rem;  }
@media (max-width:992px) {
.smart-card { width: calc(100%/2 - 20px);  }
}

@media (max-width:767.98px) {
 .smart-card { width: 100%; margin: 10px auto;  }
   
}

/* ==========================================================================
★ 核心修改：取消線條，全面擴大「多層次發光呼吸圓圈」
========================================================================== */
.bg-blur-container { position: fixed; top: 0; left: 0;  width: 100vw;  height: 100vh; z-index:0;  pointer-events: none;  overflow: hidden;  }
.blur-circle { position: absolute; border-radius: 50%; mix-blend-mode: multiply; /* 讓顏色重疊時產生細緻的漸層混合 */ transition: filter 0.5s ease;  }

/* 圓圈 1：左上科技綠（慢速大呼吸） */
.circle-1 { width: 200px; height: 200px; background: radial-gradient(circle, rgba(16, 185, 129, 0.4) 0%, rgba(16, 185, 129, 0.7) 70%); top: 50%; left: -10%;   animation: breatheAlpha 14s ease-in-out infinite alternate;  }

/* 圓圈 2：右下翡翠綠（中速呼吸 + 飄移） */
.circle-2 { width: 350px; height:350px; background: radial-gradient(circle, rgba(52, 211, 153, 0.35) 0%, rgba(52, 211, 153, 0.8) 70%); bottom: -5%; right: -10%;   animation: breatheBeta 18s ease-in-out infinite alternate; }

/* 圓圈 3：左中柔和藍綠（快速深層呼吸） */
.circle-3 {  width: 280px; height: 280px; background: radial-gradient(circle, rgba(34, 211, 238, 0.3) 0%, rgba(34, 211, 238, 0.9) 70%); top: 45%; left: -5%;  animation: breatheGamma 12s ease-in-out infinite alternate; }

/* 圓圈 4：右中亮綠（錯開步調呼吸） */
.circle-4 { width: 500px; height: 500px;  background: radial-gradient(circle, rgba(16, 185, 129, 0.75) 0%, rgba(16, 185, 129, 0) 70%); top: 20%; right: 5%; filter: blur(30px); animation: breatheAlpha 22s ease-in-out infinite alternate-reverse;  }

/* 圓圈 5：置中低調大光暈（穩固中場背景） */
.circle-5 {  width: 700px;  height: 700px; background: radial-gradient(circle, rgba(52, 211, 153, 0.5) 0%, rgba(52, 211, 153, 0) 70%); top: 30%; left: 35%; filter: blur(50px); animation: breatheBeta 25s ease-in-out infinite alternate-reverse; }

/* --- 呼吸與大小忽大忽小動態軌跡 --- */
@keyframes breatheAlpha {
0% {transform: translate(0, 0) scale(0.8);filter: blur(80px);  }
50% { transform: translate(40px, 0px) scale(1.15); filter: blur(40px); }
100% {transform: translate(-20px, 50px) scale(0.95); filter: blur(100px);
}
}
@keyframes breatheBeta {
0% { transform: translate(0, 0) scale(1.2); filter: blur(40px);}
50% { transform: translate(-50px, 40px) scale(0.85); filter: blur(100px);  }
100% { transform: translate(30px, -20px) scale(1.05); filter: blur(30px);  }
}
@keyframes breatheGamma {
0% { transform: translate(0, 0) scale(0.9) rotate(0deg); filter: blur(90px); }
100% { transform: translate(50px, 60px) scale(1.25) rotate(10deg); filter: blur(130px); }
}
@media (max-width:767.98px) {
    .circle-2 { width: 100px; height:100px;}   
 .circle-3 {  width:80px; height:80px; }  
}
