@charset "utf-8";
/* =========================================================
   中信校園養生村

   共用元件 ─ 按鈕 / SNS / 區塊標題 / 工具類別
   0. header
   1~6 首頁 index.html（主視覺、介紹區、故事、推薦輪播、聯絡、footer）
   gotop
   RWD          ─ 首頁與共用元件的響應式
   關於我們     about.html
   最新消息     news.html
   樂活生活     life.html
   入住資訊     room.html
   活動報名     event.html
   我要參觀     visit.html
   ========================================================= */

/* ---------- variables ---------- */
:root{
  --teal-dark : #2E7A76;
  --teal      : #2C9796;
  --teal-btn  : #3DABAC;
  --brown     : #B47743;
  --dark      : #3C4A4A;
  --text      : #4A4F4E;
  --gray      : #7A8180;

  --mint      : #D9EDEC;
  --cream     : #EEE4C1;
  --peach     : #F3D0B4;
  --beige     : #F0E9E1;
  --shadow    : #E9D9CC;

  --wrap      : 1440px;
  --gutter    : 24px;
  --head-h    : 96px;

  --font-tc   : "Noto Sans TC", "微軟正黑體", "Microsoft JhengHei", sans-serif;
  --font-en   : "Helvetica Neue", Helvetica, Arial, "Noto Sans TC", sans-serif;
}

/* bootstrap 5 fix */
@media (prefers-reduced-motion: no-preference) {
	:root {scroll-behavior: auto;}
}

/* ---------- base ---------- */
body{
  font-family:var(--font-tc);
  color:var(--text);
  background:#fff;
  font-size:16px;
  line-height:1.9;
  letter-spacing:.04em;
  overflow-x:hidden;
}

a{ color:inherit; text-decoration:none; transition:color .25s, opacity .25s, background-color .25s; }
a:hover{ color:var(--teal); text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,p{ margin:0; }
button{ font-family:inherit; border:0; background:none; padding:0; cursor:pointer; color:inherit; }

.wrap{
  width:100%;
  max-width:calc(var(--wrap) + var(--gutter) * 2);
  margin:0 auto;
  padding:0 var(--gutter);
}
.container, .container-fluid, .container-xxl{
	padding-left: 15px;
	padding-right: 15px;
}
.wow{visibility: hidden;}

/* =========================================================
   共用元件
   ========================================================= */

/* 我要參觀 */
.btn-visit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:150px;
  height:50px;
  padding:0 26px;
  border-radius:999px;
  background:var(--teal-btn);
  color:#fff;
  font-size:17px;
  font-weight:500;
  letter-spacing:.1em;
  white-space:nowrap;
}
.btn-visit:hover{ background:var(--teal-dark); color:#fff; }

/* 了解更多（白色膠囊） */
.btn-more{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:26px;
  min-width:240px;
  height:58px;
  padding:0 12px 0 34px;
  border-radius:999px;
  background:#fff;
  color:var(--dark);
  font-size:17px;
  letter-spacing:.12em;
}
.btn-more__ico{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:34px;
  height:34px;
  border-radius:50%;
  background:var(--beige);
  font-family:var(--font-en);
  font-size:16px;
  line-height:1;
  letter-spacing:0;
  color:var(--dark);
  transition:background-color .25s, color .25s;
}
.btn-more:hover{ color:var(--teal-dark); }
.btn-more:hover .btn-more__ico{ background:var(--mint); color:var(--teal-dark); }

/* SNS icons */
.sns{ display:flex; align-items:center; gap:12px; }
.sns__item{ display:block; width:44px; height:44px; }
.sns__item img{ width:100%; height:100%; }
.sns__item:hover{ opacity:.75; }

/* 區塊標題（中文標題 + 英文浮水印） */
.sec-head{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px;
  margin-bottom:44px;
}
.sec-head__title{
  font-size:clamp(24px, 2.2vw, 40px);
  font-weight:700;
  color:var(--dark);
  letter-spacing:.06em;
  line-height:1.4;
}
.sec-head__title span{ color:var(--teal); }
.sec-head__side{ text-align:right; }
.sec-head__en{
  font-family:var(--font-en);
  font-size:clamp(40px, 5vw, 90px);
  line-height:1;
  font-weight:400;
  color:#fff;
  letter-spacing:.01em;
  margin-bottom:6px;
}
.sec-head__sub{
  font-size:clamp(13px, 1vw, 16px);
  color:var(--text);
	font-weight:500;
  letter-spacing:.08em;
}

.link-teal{ color:var(--teal); text-decoration:underline; text-underline-offset:4px; }

/* 通用工具 */
.flex{ display:flex; flex-wrap:wrap; }
.hide{ display:none !important; }
.mb-10{margin-bottom: 10px;}
.mb-20{margin-bottom: 20px;}

/* =========================================================
   0. header
   ========================================================= */
.header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:120;
  transition:background-color .3s, box-shadow .3s;
}
.header.is-fixed{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(6px);
  box-shadow:0 2px 14px rgba(60,74,74,.08);
}
.header__inner{
  display:flex;
  align-items:center;
  gap:24px;
  height:var(--head-h);
  padding:0 40px;
}
.header__logos{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:25px;
}
.header__logo,
.header__logo2{ display:block; }
.header__logo img{ width:160px; }
.header__logo2 img{
	position: relative;
	width:200px;
	top: -5px;
}

.gnav{ margin-left:auto; }
.gnav__list{ display:flex; align-items:center; gap:clamp(18px, 2.2vw, 42px); }
.gnav__list a{
  position:relative;
  display:block;
  font-size:17px;
  font-weight:500;
  color:var(--dark);
  letter-spacing:.12em;
  padding:6px 2px;
}
.gnav__list a::after{
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:100%; height:2px;
  background:var(--teal);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s;
}
.gnav__list a:hover{ color:var(--teal); }
.gnav__list a:hover::after{ transform:scaleX(1); }
.gnav__foot{ display:none; }

/* 子選單（桌機：滑入或鍵盤聚焦時顯示） */
.gnav__item--sub{ position:relative; }
.gnav__sub{
  position:absolute;
  top:calc(100% + 12px);
  left:50%;
  min-width:150px;
  padding:10px 0;
  background:#fff;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(60,74,74,.14);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%, 8px);
  transition:opacity .25s, visibility .25s, transform .25s;
}
/* 補上主選項與子選單間的空隙，滑鼠移過去時不會中斷 */
.gnav__sub::before{
  content:"";
  position:absolute;
  left:0; right:0;
  bottom:100%;
  height:14px;
}
/* 只在桌機版作用：hover */
@media (min-width:1201px){
  .gnav__item--sub:hover > .gnav__sub,
  .gnav__item--sub:focus-within > .gnav__sub{
    opacity:1;
    visibility:visible;
    transform:translate(-50%, 0);
  }
}
.gnav__list .gnav__sub a{
  padding:9px 22px;
  font-size:15px;
  letter-spacing:.08em;
  text-align:center;
  white-space:nowrap;
  color:var(--dark);
}
.gnav__list .gnav__sub a::after{ display:none; }
.gnav__list .gnav__sub a:hover{ color:var(--teal); background:var(--mint); }

.header__side{ display:flex; align-items:center; gap:14px; flex:0 0 auto; }

.menu-btn{
  display:none;
  position:relative;
  z-index:130;
  width:44px;
  height:44px;
}
.menu-btn img{ width:100%; height:100%; }

.nav-mask{
  position:fixed;
  inset:0;
  z-index:110;
  background:rgba(60,74,74,.45);
  opacity:0;
  visibility:hidden;
  transition:opacity .3s, visibility .3s;
}
.nav-mask.is-show{ opacity:1; visibility:visible; }

/* =========================================================
   1. 主視覺
   ========================================================= */
.kv{
  position:relative;
  padding:calc(var(--head-h) + 30px) 0 90px;
  background:url("../img/index/kv_bg.jpg") no-repeat center center / cover;
  overflow:hidden;
}
.kv__inner{
  display:flex;
  align-items:center;
  gap:clamp(20px, 3vw, 60px);
  width:100%;
  max-width:1840px;
  margin:0 auto;
  padding:0 40px;
}
.kv__visual{
  position:relative;
  flex:1 1 60%;
  min-width:0;
  padding-bottom:8%;
}
.kv__pic{
  margin:0;
  border-radius:999px;
  overflow:hidden;
  background:var(--shadow);
  box-shadow:1.2vw 1.2vw 0 0 var(--shadow);
}
.kv__pic img{ width:100%; }
.kv__pic--main{ width:82%; }
.kv__pic--sub{
  position:absolute;
  right:0;
  bottom:0;
  width:44%;
}

.kv__text{ flex:1 1 40%; min-width:0; }
.kv__eyebrow{
  display:flex;
  align-items:center;
  gap:20px;
  font-size:clamp(16px, 1.15vw, 21px);
  font-weight:700;
  color:var(--dark);
  letter-spacing:.06em;
}
.kv__eyebrow::after{
  content:"";
  flex:0 0 auto;
  width:clamp(40px, 4vw, 78px);
  height:3px;
  background:#fff;
}
/* 藝術字體標題以圖片呈現 */
.kv__title{
  width:100%;
  max-width:570px;
  margin:clamp(14px, 1.6vw, 30px) 0 clamp(20px, 2.9vw, 56px);
  line-height:0;
}
.kv__title img{ width:100%; }
.kv__desc{
  font-size:clamp(16px, 1.05vw, 20px);
  line-height:2.1;
  color:var(--text);
  letter-spacing:.05em;
}

/* =========================================================
   2. 介紹區（accordion）
   ========================================================= */
.intro__item{
  position:relative;
  height:106px;
  overflow:hidden;
  transition:background-color .4s;
}
.intro__item[data-intro="01"]{ background:var(--mint); }
.intro__item[data-intro="02"]{ background:var(--cream); }
.intro__item[data-intro="03"]{ background:var(--peach); }

.intro__grid{
  display:grid;
  /* 右側圖片最多 920px，且不超過內容區的 56%，避免中等寬度時左側文字被壓縮 */
  grid-template-columns:minmax(0,1fr) minmax(0, min(920px, 56%));
  align-items:start;
  gap:clamp(24px, 3vw, 40px);
  padding:34px 40px 90px max(40px, calc((100% - var(--wrap)) / 2));
}

.intro__head{
  display:flex;
  align-items:baseline;
  gap:26px;
  width:100%;
  text-align:left;
}
.intro__num{
  font-family:var(--font-en);
  font-size:clamp(20px, 1.5vw, 28px);
  font-weight:400;
  color:#fff;
  line-height:1;
}
.intro__name{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:14px;
  padding-bottom:8px;
  font-size:clamp(17px, 1.15vw, 21px);
  font-weight:700;
  letter-spacing:.14em;
  color:var(--dark);
  border-bottom:1px solid rgba(60,74,74,.35);
  transition:opacity .3s;
}
.ico-arrow{
  width:11px; height:11px;
  border-right:2px solid var(--dark);
  border-bottom:2px solid var(--dark);
  transform:translateY(-3px) rotate(45deg);
}
.intro__head:hover .intro__name{ opacity:.6; }
.intro__item.is-open .intro__name{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}

.intro__body{ padding-top:clamp(30px, 4vw, 76px); }
.intro__en{
  font-family:var(--font-en);
  font-size:clamp(52px, 7vw, 134px);
  line-height:1;
  font-weight:400;
  color:rgba(255,255,255,.82);
  letter-spacing:0;
  margin-bottom:18px;
}
.intro__title{
  font-size:clamp(24px, 2.3vw, 44px);
  font-weight:700;
  letter-spacing:.14em;
  color:var(--dark);
  margin-bottom:26px;
}
.intro__desc{
  max-width:520px;
  margin-bottom:clamp(26px, 3vw, 54px);
  font-size:clamp(16px, 1vw, 19px);
  line-height:2.1;
  color:var(--text);
}
.intro__pic{
  margin:0;
  border-radius:10px;
  overflow:hidden;
}
.intro__pic img{ width:100%; }

/* =========================================================
   3. 故事區
   ========================================================= */
.story{
  padding:clamp(60px, 6vw, 110px) 0 clamp(70px, 7vw, 130px);
	background-color: #efe9e1;
	background-image: url(../img/index/bg1.png);
	background-repeat: no-repeat;
	background-position: bottom center;
	background-size: 100% auto;
}
.story__pic{
	max-width: 1200px;
  margin:0 auto;
  border-radius:12px;
  overflow:hidden;
}

/* =========================================================
   4. 推薦區（輪播）
   ========================================================= */
.testi{
  padding:clamp(60px, 6vw, 110px) 0 clamp(70px, 7vw, 120px);
	background-color: #efe9e1;
	background-image: url(../img/index/bg2.png);
	background-repeat: no-repeat;
	background-position: bottom center;
	background-size: 100% auto;
}

.slider{ position:relative; }
/* 視窗不夠寬時，內縮卡片區讓兩側箭頭有位置 */
@media (max-width:1580px){
  .testi .wrap{
    padding-left:clamp(46px, 5vw, 92px);
    padding-right:clamp(46px, 5vw, 92px);
  }
}
.slider__viewport{ overflow:hidden; padding:6px 0; }
.slider__track{
  display:flex;
  align-items:stretch;
  transition:transform .6s cubic-bezier(.33,.9,.35,1);
}
.slider__slide{
  flex:0 0 33.3333%;
  max-width:33.3333%;
  padding:0 14px;
}
.card{
  display:flex;
  flex-direction:column;
  height:100%;
  padding:16px 16px 30px;
  border-radius:8px;
  background:#fff;
  box-shadow:0 6px 20px rgba(60,74,74,.06);
  transition:transform .3s, box-shadow .3s;
}
.card:hover{ transform:translateY(-6px); box-shadow:0 14px 28px rgba(60,74,74,.12); }
.card__pic{
  position:relative;
  margin:0 0 24px;
  border-radius:6px;
  overflow:hidden;
  aspect-ratio:520 / 400;
}
.card__pic img{ width:100%; height:100%; object-fit:cover; }
.card__tag{
  position:absolute;
  right:14px;
  bottom:12px;
  color:#fff;
  text-align:right;
  text-shadow:0 1px 6px rgba(0,0,0,.35);
}
.card__age{
  font-family:var(--font-en);
  font-size:44px;
  font-weight:400;
  line-height:1;
}
.card__age span{
  font-family:var(--font-tc);
  font-size:19px;
  letter-spacing:.06em;
}
.card__job{
  display:inline-block;
  margin-top:6px;
  padding-top:6px;
  border-top:1px solid rgba(255,255,255,.85);
  font-size:17px;
  letter-spacing:.08em;
  line-height:1.4;
}
.card__body{ display:flex; flex-direction:column; flex:1 1 auto; padding:0 8px; }
.card__name{
  font-size:21px;
  font-weight:500;
  color:var(--dark);
  letter-spacing:.08em;
  margin-bottom:10px;
}
.card__quote{
  font-size:16px;
  font-weight:500;
  color:var(--brown);
  letter-spacing:.1em;
  margin-bottom:12px;
}
.card__desc{
  flex:1 1 auto;
  font-size:15px;
  line-height:1.95;
  color:var(--text);
  margin-bottom:22px;
}
.card__link{
  align-self:flex-start;
  font-size:15px;
  color:var(--gray);
  letter-spacing:.1em;
  border-bottom:1px solid transparent;
}
.card__link:hover{ color:var(--teal); border-bottom-color:var(--teal); }

/* 左右箭頭：置於卡片區兩側 */
.slider__stage{ position:relative; }
.slider__arrow{
  position:absolute;
  top:50%;
  z-index:3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:56px;
  opacity:.85;
  transform:translateY(-50%);
  transition:opacity .25s, transform .25s;
}
/* max-width:none：避免在收縮寬度的 flex 容器中被壓成 0 */
.slider__arrow img{ width:16px; max-width:none; }
.slider__arrow:hover{ opacity:1; }
.slider__arrow--prev{ right:100%; margin-right:6px; }
.slider__arrow--next{ left:100%;  margin-left:6px; }
.slider__arrow--prev:hover{ transform:translateY(-50%) translateX(-4px); }
.slider__arrow--next:hover{ transform:translateY(-50%) translateX(4px); }
.slider.is-static .slider__arrow{ display:none; }

.slider__dots{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  margin-top:34px;
}
.slider__dot{
  width:9px; height:9px;
  border-radius:50%;
  background:rgba(60,74,74,.22);
  transition:background-color .3s, transform .3s;
}
.slider__dot.is-active{ background:var(--teal); transform:scale(1.25); }

/* =========================================================
   5. 聯絡資訊
   ========================================================= */
.contact{
  padding:clamp(60px, 6vw, 120px) 0 clamp(60px, 6vw, 120px);
  background:var(--mint);
}
.contact__inner{
  display:flex;
  align-items:center;
  gap:clamp(30px, 4vw, 80px);
  width:100%;
  max-width:1840px;
  margin:0 auto;
  padding:0 40px;
}
.contact__text{
  flex:1 1 50%;
  min-width:0;
  padding-left:max(0px, calc((100vw - var(--wrap)) / 2 - 40px));
}
.contact__title{
  font-size:clamp(24px, 2.2vw, 42px);
  font-weight:700;
  letter-spacing:.06em;
  color:var(--dark);
  margin-bottom:30px;
}
.contact__title span{ color:var(--teal); }
.contact__lead{
  padding-bottom:clamp(26px, 2.6vw, 44px);
  margin-bottom:clamp(26px, 2.6vw, 40px);
  border-bottom:1px solid rgba(60,74,74,.16);
  font-size:clamp(16px, 1.1vw, 20px);
  font-weight:500;
  line-height:2;
  letter-spacing:.18em;
  color:var(--brown);
}
.contact__list li{
  display:flex;
  gap:0;
  font-size:clamp(16px, 1vw, 17px);
	font-weight: 500;
  line-height:2.3;
  color:var(--text);
}
.contact__label{
  flex:0 0 auto;
  letter-spacing:.1em;
}
.contact__label::after{
  content:"｜";
  color:rgba(60,74,74,.4);
}
.contact__value{ min-width:0; }

.contact__map{ flex:1 1 50%; min-width:0; }
.contact__map-link{
  display:block;
  border-radius:20px;
  overflow:hidden;
}
.contact__map-link iframe{
	width: 100%;
	height: 460px;
}

/* =========================================================
   6. footer
   ========================================================= */
.footer{
  padding:60px 0 46px;
  background-color: var(--beige);
  color:var(--text);
	border-top: 1px solid #ccc;
}
.footer__inner{
  display:flex;
  justify-content:space-between;
  gap:40px;
  padding:0 40px;
}
.footer__info{ flex:0 0 auto; max-width:640px; }
.footer__brand{ display:flex; align-items:center; gap:22px; }
.footer__logo img{ width:207px; }
.footer__contact{
  margin-top:clamp(40px, 6vw, 116px);
  font-size:16px;
  line-height:2;
}
.footer__copy{
  margin-top:26px;
  font-size:15px;
  color:var(--gray);
  letter-spacing:.02em;
}

.footer__sitemap{ display:flex; gap:clamp(20px, 2.4vw, 46px); }
.fnav{ display:flex; gap:clamp(20px, 2.6vw, 52px); }
.fnav__col{ min-width:0; }
.fnav__title{
  margin-bottom:22px;
  font-size:18px;
  font-weight:700;
  color:var(--dark);
  letter-spacing:.1em;
  white-space:nowrap;
}
.fnav__col li{
  font-size:16px;
  line-height:2.1;
  white-space:nowrap;
}
.fnav__col li a{ color:var(--text); }

/* =========================================================
   gotop
   ========================================================= */
.gotop{
  position:fixed;
  right:26px;
  bottom:40px;
  z-index:100;
  width:36px;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px);
  transition:opacity .3s, visibility .3s, transform .3s;
}
.gotop.is-show{ opacity:1; visibility:visible; transform:none; }
.gotop:hover{ transform:translateY(-4px); }

/* =========================================================
   RWD
   ========================================================= */
@media (max-width:1400px){
  .fnav__col li,
  .fnav__title{ white-space:normal; }

  /* header 內容提早縮小 */
  :root{ --head-h:80px; }
  .header__inner{ padding:0 24px; }
  .header__logos{ gap:26px; }
  .header__logo img{ width:150px; }
  .header__logo2 img{ width:162px; }
  .gnav__list{ gap:20px; }
  .gnav__list a{ font-size:15px; letter-spacing:.06em; }
  .btn-visit{ min-width:126px; height:44px; font-size:15px; }
  .sns__item{ width:38px; height:38px; }
}

@media (max-width:1200px){
  .kv__inner,
  .contact__inner,
  .footer__inner{ padding:0 24px; }
  .footer__sitemap{ flex-direction:column; align-items:flex-start; gap:26px; }

  /* ---------- header：切換為手機版（漢堡選單） ---------- */
  .menu-btn{ display:block; }
  /* 選單按鈕靠齊最右側（.gnav 已抽離文件流，需自行推到右邊） */
  .header__side{ margin-left:auto; }
  .header__logos{ gap:20px; }
  .header__logo img{ width:140px; }
  .header__logo2 img{ width:150px; }
  .header__side .btn-visit--head,
  .header__side .sns--head{ display:none; }
  .header{ background:rgba(255,255,255,.94); box-shadow:0 2px 12px rgba(60,74,74,.08); }

  .gnav{
    position:fixed;
    top:0;
    right:0;
    width:min(320px, 84vw);
    height:100dvh;
    margin:0;
    padding:calc(var(--head-h) + 24px) 28px 40px;
    background:#fff;
    box-shadow:-6px 0 24px rgba(60,74,74,.14);
    transform:translateX(105%);
    transition:transform .35s ease;
    overflow-y:auto;
    z-index:115;
  }
  .gnav.is-open{ transform:none; }
  .gnav__list{ display:block; }
  .gnav__list li + li{ border-top:1px solid rgba(60,74,74,.1); }
  .gnav__list a{ padding:16px 2px; font-size:17px; }
  .gnav__list a::after{ display:none; }

  /* 子選單：手機版直接展開在主選項下方 */
  .gnav__item--sub > a{ padding-bottom:8px; }
  .gnav__sub{
    position:static;
    min-width:0;
    padding:0 0 12px;
    background:none;
    border-radius:0;
    box-shadow:none;
    opacity:1;
    visibility:visible;
    transform:none;
    transition:none;
  }
  .gnav__sub::before{ display:none; }
  .gnav__list .gnav__sub li{ border-top:0; }
  .gnav__list .gnav__sub a{
    position:relative;
    padding:7px 2px 7px 18px;
    font-size:15px;
    text-align:left;
    color:var(--gray);
  }
  .gnav__list .gnav__sub a::before{
    content:"";
    position:absolute;
    left:2px;
    top:50%;
    width:8px;
    height:1px;
    background:currentColor;
  }
  .gnav__list .gnav__sub a:hover{ color:var(--teal); background:none; }
  .gnav__foot{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:22px;
    margin-top:34px;
  }
}

/* -------- 手機 / 平板 -------- */
@media (max-width:991px){
  body{ font-size:15px; }

  /* KV */
  .kv{ padding:calc(var(--head-h) + 26px) 0 60px; }
  .kv__inner{ flex-direction:column; align-items:stretch; gap:36px; }
  .kv__visual{ order:2; padding-bottom:12%; }
  .kv__text{ order:1; }
  .kv__pic{ box-shadow:16px 16px 0 0 var(--shadow); }
  .kv__title{ max-width: 400px; margin-bottom:20px; }

  /* 介紹區：標題列固定在最上方，展開後依序顯示圖片與內文 */
  .intro__item{ height:84px; }
  .intro__grid{
    grid-template-columns:minmax(0,1fr);
    gap:0;
    padding:24px 24px 54px;
  }
  .intro__left{ display:contents; }
  .intro__head{ order:1; gap:18px; }
  .intro__right{ order:2; margin-top:26px; }
	.intro__pic{max-width: 600px; margin-left: auto; margin-right: auto;}
  .intro__body{ order:3; padding-top:26px; }
  .intro__en{ margin-bottom:10px; }
  .intro__title{ margin-bottom:18px; }
  .btn-more{ min-width:200px; height:52px; font-size:16px; padding-left:26px; }

  /* 區塊標題 */
  .sec-head{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    margin-bottom:28px;
  }
  .sec-head__side{ text-align:left; }
  .sec-head__en{ color:rgba(255,255,255,.9); }

  /* 輪播 */
  .slider__slide{ flex:0 0 50%; max-width:50%; padding:0 8px; }
  .card__age{ font-size:36px; }

  /* 聯絡 */
  .contact__inner{ flex-direction:column; align-items:stretch; }
  .contact__text{ padding-left:0; }

  /* footer：右側各單元連結不顯示 */
  .footer__sitemap{ display:none; }
  .footer__inner{ display:block; }
  .footer__info{ max-width:none; }
  .footer__brand{ flex-direction:column; align-items:flex-start; gap:18px; }
  .footer__contact{ margin-top:28px; }

  .gotop{ right:14px; bottom:20px; width:30px; }
}

@media (max-width:640px){
  /* 小螢幕：縮小 header 左右留白，讓兩個 logo 排得下 */
  .header__inner{ padding:0 16px; gap:12px; }
  .header__logos{ gap:14px; }
  .header__logo img{ width:110px; }
  .header__logo2 img{ width:130px; top: -2px; }

  .kv__visual{ padding-bottom:16%; }
  .kv__pic--main{ width:88%; }
  .kv__pic--sub{ width:48%; }
  .kv__eyebrow{ gap:12px; }

  .intro__item{ height:76px; }
  .intro__num{ font-size:18px; }

  .slider__slide{ flex:0 0 100%; max-width:100%; }
  .slider__arrow{ width:32px; height:48px; }
  .card__pic{ margin-bottom:18px; }

  .contact__list li{ flex-direction:column; line-height:1.9; margin-bottom:14px; }
  .contact__label::after{ content:""; }
  .contact__label{ color:var(--gray); font-size:14px; }
  .contact__map-link iframe{ height: 300px; }

  .footer{ padding:44px 0 34px; }
  .footer__logo img{ width:180px; }
}

/* =========================================================
   關於我們 about.html
   ========================================================= */

/* ---------- 目前所在頁 ---------- */
.gnav__list a.is-current{ color:var(--teal); }
.gnav__list a.is-current::after{ transform:scaleX(1); }

/* ---------- 主視覺 ---------- */
.kv-about{
  position:relative;
  padding:calc(var(--head-h) + 40px) 0 90px;
  background:url("../img/index/kv_bg.jpg") no-repeat center center / cover;
  overflow:hidden;
}
.kv-about__inner{
  display:flex;
  align-items:center;
  gap:clamp(24px, 8.7vw, 167px);
  width:100%;
  max-width:1920px;
  margin:0 auto;
  padding:0 clamp(24px, 12.6vw, 243px) 0 clamp(24px, 7.6vw, 147px);
}
.kv-about__visual{ flex:1 1 60%; min-width:0; }
.kv-about__pic{
  margin:0;
  aspect-ratio:3 / 2;
  border-radius:999px;
  overflow:hidden;
  background:var(--shadow);
  box-shadow:1.2vw 1.2vw 0 0 var(--shadow);
}
.kv-about__pic img{ width:100%; height:100%; object-fit:cover; }

.kv-about__text{ flex:1 1 40%; min-width:0; }
.kv-about__en{
  font-family:var(--font-en);
  font-size:clamp(46px, 5.5vw, 105px);
  line-height:1;
  color:#fff;
  letter-spacing:.01em;
}
.kv-about__title{
  display:flex;
  align-items:center;
  gap:clamp(16px, 1.6vw, 30px);
  margin:clamp(8px, 1vw, 18px) 0 clamp(20px, 2.2vw, 42px);
  font-size:clamp(28px, 2.6vw, 50px);
  font-weight:700;
  letter-spacing:.08em;
  color:var(--dark);
  white-space:nowrap;
}
.kv-about__title-txt{ flex:0 0 auto; }
.kv-about__title-txt span{ color:var(--teal); }
.kv-about__title::after{
  content:"";
  flex:1 1 auto;
  height:1px;
  background:rgba(60,74,74,.3);
}
.kv-about__desc{
  font-size:clamp(16px, 1.05vw, 19px);
  line-height:2.2;
  color:var(--text);
  letter-spacing:.04em;
}
.kv-about__desc strong{ font-weight:700; color:var(--dark); }

/* 右側快速連結：固定在畫面右側、垂直置中 */
.sidelink{
  position:fixed;
  top:50%;
  right:20px;
  z-index:90;
  display:flex;
  flex-direction:column;
  gap:25px;
  transform:translateY(-50%);
}
.sidelink__item{
  display:flex;
  align-items:center;
  justify-content:center;
  width:80px;
  height:80px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 4px 14px rgba(60,74,74,.1);
  color:var(--dark);
  font-size:15px;
  line-height:1.35;
  letter-spacing:.04em;
  text-align:center;
  transition:background-color .25s, color .25s;
}
.sidelink__item:hover{
  background:var(--teal-btn);
  color:#fff;
}

/* ---------- 標語 ---------- */
.quote{ padding:clamp(30px, 3vw, 40px) 0; }
.quote--mint{ background:var(--mint); }
.quote--cream{ background:var(--cream); }
.quote .wrap{ text-align:center; }

.quote__box{
  position:relative;
  display:inline-block;
  margin:0;
  padding:clamp(20px, 2.4vw, 46px) clamp(24px, 2.4vw, 46px);
}
.quote__mark{
  position:absolute;
  width:clamp(17px, 1.4vw, 26px);
}
.quote__mark--start{ top:0; left:0; }
.quote__mark--end{ right:0; bottom:0; }

.quote__text{
  font-size:clamp(19px, 2.1vw, 32px);
  font-weight:500;
  line-height:1.6;
  letter-spacing:.05em;
  color:var(--dark);
}
.quote__hl{
  display:inline-block;
  margin:0 .2em;
  padding:.05em .3em;
  font-style:normal;
  font-weight:700;
  color:#fff;
  letter-spacing:.08em;
}
.quote__hl--yellow{ background:#EFBE23; }
.quote__hl--orange{ background:#FF6F30; }

/* ---------- 01 / 02 內容區 ---------- */
.about-sec{
  background:var(--beige);
  padding:clamp(40px, 3vw, 56px) 0 clamp(50px, 4.5vw, 86px);
}
.about-sec__grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0, min(886px, 55%));
  align-items:start;
  gap:clamp(24px, 3vw, 50px);
  padding-left:max(40px, calc((100% - var(--wrap)) / 2));
  padding-right:clamp(24px, 4vw, 78px);
}
.about-sec__label{
  display:flex;
  align-items:center;
  gap:clamp(12px, 1.1vw, 20px);
}
.about-sec__num{
  font-family:var(--font-en);
  font-size:clamp(18px, 1.35vw, 26px);
  line-height:1;
  color:#BCB2A8;
}
.about-sec__name{
  padding-bottom:6px;
  font-size:clamp(16px, 1.05vw, 20px);
  font-weight:500;
  letter-spacing:.14em;
  color:var(--dark);
  border-bottom:1px solid rgba(60,74,74,.35);
}
.about-sec__en{
  margin:clamp(28px, 4.4vw, 84px) 0 clamp(12px, 1.2vw, 22px);
  font-family:var(--font-en);
  font-size:clamp(48px, 6.5vw, 125px);
  line-height:1;
  color:rgba(255,255,255,.9);
}
.about-sec__title{
  margin-bottom:clamp(20px, 2vw, 38px);
  font-size:clamp(22px, 2.2vw, 42px);
  font-weight:700;
  letter-spacing:.06em;
  color:var(--dark);
}
.about-sec__lead{
  margin-bottom:clamp(22px, 2.6vw, 50px);
  font-size:clamp(16px, 1.05vw, 19px);
  font-weight:500;
  line-height:2;
  letter-spacing:.14em;
  color:var(--brown);
}
.about-sec__desc{
  max-width:600px;
  font-size:clamp(16px, 1vw, 18px);
  line-height:2.1;
  color:var(--text);
}
.about-sec__desc + .about-sec__desc{ margin-top:1.6em; }
.about-sec__pic{
  margin:0;
  border-radius:10px;
  overflow:hidden;
}
.about-sec__pic img{ width:100%; }

/* ---------- 四項服務 ---------- */
.feature{
  padding:clamp(30px, 3vw, 56px) 0 clamp(60px, 6vw, 120px);
  background-color:#efe9e1;
  background-image:url(../img/index/bg1.png);
  background-repeat:no-repeat;
  background-position:bottom center;
  background-size:100% auto;
}
.feature__list{
  --f-gap   : clamp(20px, 2vw, 39px);
  --f-offset: clamp(0px, 4.3vw, 82px);
  display:flex;
  flex-wrap:wrap;
  gap:clamp(24px, 3.5vw, 67px) var(--f-gap);
}
.feature__item{
  flex:0 0 calc((100% - var(--f-offset) - var(--f-gap)) / 2);
  min-width:0;
}
/* 第二列整體往右錯開 */
.feature__item:nth-child(3){ margin-left:var(--f-offset); }

.fcard{
  display:flex;
  align-items:center;
  gap:clamp(16px, 2.5vw, 48px);
  height:100%;
  padding:clamp(22px, 2.3vw, 44px);
  border-radius:10px;
  background:#fff;
  box-shadow:0 6px 18px rgba(60,74,74,.07);
  transition:transform .3s, box-shadow .3s;
}
.fcard__ico{
  flex:0 0 auto;
  width:clamp(78px, 7.3vw, 139px);
}
.fcard__body{ min-width:0; }
.fcard__title{
  margin-bottom:8px;
  font-size:clamp(19px, 1.25vw, 24px);
  font-weight:500;
  letter-spacing:.06em;
  color:var(--dark);
}
.fcard__sub{
  margin-bottom:12px;
  font-size:clamp(16px, .95vw, 17px);
  font-weight:500;
  letter-spacing:.12em;
  color:var(--brown);
}
.fcard__desc{
  font-size:clamp(16px, .92vw, 16px);
  line-height:1.95;
  color:var(--text);
}

/* ---------- about RWD ---------- */
@media (max-width:1200px){
  .sidelink{ gap:16px; right:12px; }
  .sidelink__item{ width:70px; height:70px; font-size:13px; }
}

@media (max-width:991px){
  /* 主視覺改為上下排列 */
  .kv-about{ padding:calc(var(--head-h) + 26px) 0 56px; }
  .kv-about__inner{
    flex-direction:column;
    align-items:stretch;
    gap:32px;
    padding:0 24px;
  }
  .kv-about__visual{ order:2; }
  .kv-about__text{ order:1; }
  .kv-about__pic{ box-shadow:14px 14px 0 0 var(--shadow); }
  .kv-about__title{ white-space:normal; }

  /* 快速連結改為橫向排在下方 */
  .sidelink{
    position:static;
    flex-direction:row;
    justify-content:center;
    gap:14px;
    margin:34px auto 0;
    padding:0 24px;
    transform:none;
  }
  .sidelink__item{ width:78px; height:78px; font-size:13px; }

  /* 01 / 02：標題列 → 圖片 → 內文 */
  .about-sec__grid{
    grid-template-columns:minmax(0,1fr);
    gap:0;
    padding:0 24px;
  }
  .about-sec__text{ display:contents; }
  .about-sec__label{ order:1; }
  .about-sec__media{ order:2; margin:24px 0 26px; }
  .about-sec__en{ order:3; margin:0 0 10px; }
  .about-sec__title{ order:4; }
  .about-sec__lead{ order:5; }
  .about-sec__desc{ order:6; max-width:none; }

  /* 四項服務改為單欄 */
  .feature__list{ --f-offset:0px; }
  .feature__item{ flex:0 0 100%; }
  .feature__item:nth-child(3){ margin-left:0; }
}

@media (max-width:640px){
  .quote__box{ padding:22px 26px; }
  .fcard{ flex-direction:column; align-items:flex-start; gap:14px; }
  .fcard__ico{ width:86px; }
  .sidelink__item{ width:70px; height:70px; font-size:12px; }
}

/* =========================================================
   最新消息 news.html
   ========================================================= */

/* ---------- 主視覺 ---------- */
.kv-news{
  position:relative;
  /* 下方留白需容納圖片陰影 */
  padding:calc(var(--head-h) + 24px) 0 clamp(16px, 1.6vw, 31px);
  background:url("../img/index/kv_bg.jpg") no-repeat center center / cover;
  overflow:hidden;
}
.kv-news__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:clamp(20px, 3vw, 60px);
}
.kv-news__text{ min-width:0; }
.kv-news__en{
  font-family:var(--font-en);
  font-size:clamp(46px, 5.5vw, 105px);
  line-height:1;
  color:#fff;
  letter-spacing:.01em;
}
.kv-news__title{
  display:flex;
  align-items:center;
  gap:clamp(16px, 1.6vw, 30px);
  margin-top:clamp(6px, .8vw, 16px);
  font-size:clamp(28px, 2.6vw, 50px);
  font-weight:700;
  letter-spacing:.08em;
  color:var(--dark);
  white-space:nowrap;
}
.kv-news__title-txt{ flex:0 0 auto; }
.kv-news__title-txt span{ color:var(--teal); }
.kv-news__title::after{
  content:"";
  flex:0 0 auto;
  width:clamp(70px, 15.2vw, 293px);
  height:1px;
  background:rgba(60,74,74,.3);
}

.kv-news__pics{
  position:relative;
  flex:0 0 43.75%;
  aspect-ratio:630 / 317;
}
/* 橢圓形 + 位移陰影（同首頁主視覺） */
.kv-news__pic{
  position:absolute;
  margin:0;
  border-radius:999px;
  overflow:hidden;
  background:var(--shadow);
  box-shadow:1.2vw 1.2vw 0 0 var(--shadow);
}
.kv-news__pic img{ width:100%; }
.kv-news__pic--01{ top:0; left:0; width:63.5%; }
.kv-news__pic--02{ right:0; bottom:0; width:47.6%; }

/* ---------- 分類 ---------- */
.newstab{ background:var(--mint); }
.newstab__list{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:6px clamp(14px, 2.3vw, 44px);
  padding:clamp(16px, 1.6vw, 25px) 0;
}
.newstab__item{
  display:block;
  padding:clamp(8px, .75vw, 13px) 0;
  border-radius:999px;
  font-size:clamp(16px, 1.05vw, 19px);
  font-weight:500;
  letter-spacing:.1em;
  color:var(--dark);
  white-space:nowrap;
  transition:background-color .25s, color .25s;
}
.newstab__item:hover{ color:var(--teal-dark); }
.newstab__item.is-active{
  padding-left:clamp(16px, 1.4vw, 27px);
  padding-right:clamp(16px, 1.4vw, 27px);
  background:#fff;
  color:var(--teal);
}

/* ---------- 標語（淺底版本） ---------- */
.quote--plain{ background:#F5F5F5; }
.quote--plain .quote__mark{}
.quote__hl--peach{
  background:var(--peach);
  color:var(--dark);
}

/* ---------- 消息列表 ---------- */
.newslist{
  padding:clamp(40px, 4vw, 76px) 0 clamp(50px, 5vw, 96px);
  background:var(--beige);
}
.newslist__list{
  display:flex;
  flex-direction:column;
  gap:clamp(30px, 3.4vw, 66px);
}

/* 整則消息由單一 <a> 包住 */
.news-item__link{
  display:flex;
  align-items:flex-start;
  color:inherit;
}
/* 偶數則左右對調 */
.news-item:nth-child(even) .news-item__link{ flex-direction:row-reverse; }

.news-item__pic{
  position:relative;
  z-index:2;
  flex:0 0 49.9%;
  margin:0;
  border-radius: 20px;
  overflow:hidden;
}
.news-item__pic img{
  width:100%;
  aspect-ratio:3 / 2;
  object-fit:cover;
  transition:transform .5s;
}
.news-item__link:hover .news-item__pic img{ transform:scale(1.04); }

.news-card{
  position:relative;
  z-index:1;
  flex:0 1 55.5%;
  margin-top:4%;
  padding:clamp(24px, 3.2vw, 62px) clamp(24px, 4.2vw, 80px);
  border-radius:20px;
  background:#fff;
}
/* 卡片被圖片壓住的一側往回縮，並加大內距讓文字避開圖片 */
.news-item:nth-child(odd) .news-card{
  margin-left:-5.4%;
  padding-left:clamp(24px, 8.3vw, 159px);
}
.news-item:nth-child(even) .news-card{
  margin-right:-5.4%;
  padding-right:clamp(24px, 8.7vw, 167px);
}

.news-card__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:clamp(14px, 1.3vw, 24px);
}
.news-card__cat{
  display:inline-block;
  padding:5px 16px;
  border-radius:999px;
  background:var(--teal-btn);
  color:#fff;
  font-size:clamp(13px, .85vw, 15px);
  line-height:1.6;
  letter-spacing:.08em;
}
.news-card__date{
  font-family:var(--font-en);
  font-size:clamp(13px, .85vw, 15px);
  color:var(--gray);
  letter-spacing:.04em;
}
.news-card__title{
  margin-bottom:clamp(14px, 1.3vw, 24px);
  font-size:clamp(19px, 1.5vw, 28px);
  font-weight:700;
  line-height:1.6;
  letter-spacing:.05em;
  color:var(--dark);
}
.news-item__link:hover .news-card__title{ color:var(--teal); }
.news-card__desc{
  font-size:clamp(16px, .95vw, 17px);
  line-height:2;
  color:var(--text);
}
.news-card__more{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:clamp(20px, 2.2vw, 42px);
  padding-top:clamp(16px, 1.5vw, 28px);
  border-top:1px solid rgba(60,74,74,.14);
  font-size:clamp(16px, .95vw, 17px);
  color:var(--gray);
  letter-spacing:.1em;
}
.news-item__link:hover .news-card__more{ color:var(--teal-dark); }
.news-card__more .btn-more__ico{ width:30px; height:30px; font-size:15px; }
.news-item__link:hover .btn-more__ico{ background:var(--mint); color:var(--teal-dark); }

/* ---------- 頁碼（Bootstrap pagination） ---------- */
.newspager{ margin-top:clamp(36px, 4vw, 76px); }
.newspager .pagination{
  --bs-pagination-padding-x        : 0;
  --bs-pagination-padding-y        : 0;
  --bs-pagination-font-size        : 15px;
  --bs-pagination-color            : var(--dark);
  --bs-pagination-bg               : transparent;
  --bs-pagination-border-width     : 0;
  --bs-pagination-border-radius    : 50%;
  --bs-pagination-hover-color      : var(--teal-dark);
  --bs-pagination-hover-bg         : rgba(255,255,255,.7);
  --bs-pagination-focus-color      : var(--teal-dark);
  --bs-pagination-focus-bg         : rgba(255,255,255,.7);
  --bs-pagination-focus-box-shadow : none;
  --bs-pagination-active-color     : var(--teal-dark);
  --bs-pagination-active-bg        : #DCEDEB;
  --bs-pagination-active-border-color:transparent;
  justify-content:center;
  align-items:center;
  gap:6px;
  margin:0;
}
.newspager .page-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:50%;
  font-family:var(--font-en);
  line-height:1;
}
/* 前後頁箭頭離數字遠一些 */
.newspager .page-item:first-child .page-link{ margin-right:14px; }
.newspager .page-item:last-child .page-link{ margin-left:14px; }

/* ---------- news RWD ---------- */
@media (max-width:1200px){
  .news-card{ padding:clamp(22px, 3vw, 46px) clamp(22px, 3.4vw, 54px); }
}

@media (max-width:991px){
  /* 主視覺 */
  .kv-news{ padding:calc(var(--head-h) + 20px) 0 20px; }
  .kv-news__inner{ flex-direction:column; align-items:stretch; gap:24px; }
  .kv-news__title{ white-space:normal; }
  .kv-news__pics{ flex:0 0 auto; width:100%; max-width:520px; margin-left:auto; }
  .kv-news__pic{ box-shadow:12px 12px 0 0 var(--shadow); }

  /* 消息列表：一律圖片在上、內容在下 */
  .news-item__link,
  .news-item:nth-child(even) .news-item__link{ flex-direction:column; }
  .news-item__pic{ flex:0 0 auto; width:100%; border-radius: 20px 20px 0 0;}
	.news-item__link{
		max-width: 500px;
		border-radius: 15px;
		margin-left: auto;
		margin-right: auto;
		overflow: hidden;
	}
  .news-card,
  .news-item:nth-child(odd) .news-card,
  .news-item:nth-child(even) .news-card{
    flex:0 0 auto;
    width:100%;
    margin:0;
    padding:clamp(22px, 3.4vw, 34px);
    border-radius:0;
  }
	.news-item__pic img{
		border-radius: 0;
	}
}

@media (max-width:640px){
  .newstab__list{ gap:6px 4px; }
  .newstab__item{ padding:8px 14px; font-size:14px; letter-spacing:.06em; }
  .news-card__head{ margin-bottom:12px; }
  .newspager .page-item:first-child .page-link{ margin-right:8px; }
  .newspager .page-item:last-child .page-link{ margin-left:8px; }
}

/* =========================================================
   活動報名 visit.html
   ========================================================= */
.visit{
	padding-top: 80px;
	padding-bottom: 100px;
	background-color: #f2ece5;
}
.visit_con{
	max-width: 630px;
	margin-left: auto;
	margin-right: auto;
}
.visit_done{
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}
.visit_done .event_done{
	margin-bottom: 0;
}
.visit_done .event_done__box{
	padding-top: 8px;
	padding-bottom: 20px;
}
.visit_done__list{
	margin: 0 0 36px;
	padding: 6px 28px;
	background: #fff;
	border-radius: 20px;
}
.visit_done__row{
	display: grid;
	grid-template-columns: 6.5em minmax(0, 1fr);
	align-items: baseline;
	column-gap: 24px;
	padding: 16px 0;
	border-bottom: 1px solid #efe8e0;
}
.visit_done__row:last-child{
	border-bottom: 0;
}
.visit_done__list dt{
	margin: 0;
	flex: 0 0 auto;
	font-size: 16px;
	font-weight: 500;
	color: #8a8178;
}
.visit_done__list dd{
	margin: 0;
	min-width: 0;
	font-size: 18px;
	font-weight: 600;
	color: #3D4A4A;
	text-align: left;
	overflow-wrap: anywhere;
}
.visit_done__actions{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 12px 16px;
}
a.visit_done__line,
a.visit_done__line:link,
a.visit_done__line:visited{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 150px;
	height: 50px;
	padding: 0 26px;
	border-radius: 999px;
	background: #01B901;
	border: 1px solid #01B901;
	color: #fff;
	font-size: 17px;
	font-weight: 500;
	letter-spacing: .06em;
	white-space: nowrap;
	text-decoration: none;
}
a.visit_done__line:hover,
a.visit_done__line:focus,
a.visit_done__line:active{
	background: #009B00;
	border-color: #009B00;
	color: #fff;
	text-decoration: none;
}
@media (max-width:1400px){
	a.visit_done__line,
	a.visit_done__line:link,
	a.visit_done__line:visited{
		height: 44px;
		padding: 0 18px;
		font-size: 15px;
	}
}
.flex{
	display: flex;
	flex-wrap: wrap;
}
.form_row{
	margin-bottom: 20px;
}
.form_title{
	font-size: 18px;
	font-weight: 500;
	padding-top: 5px;
	margin-bottom: 5px;
}
.form_title span{
	color: #FF6F30;
}
.form_input{
	padding: 10px;
}
.form_a{
	font-size: 16px;
	color: #3DABAB;
	text-decoration: underline;
}
input[type="radio"], input[type="checkbox"]{
	position: relative;
	width: 16px;
	height: 16px;
	top: 2px;
}
.visit_hr{
	margin-top: 40px;
	margin-bottom: 40px;
}
.main_ul{
	list-style: disc;
	list-style-position: inside;
}
.main_ul li::marker{
	color: #3DABAB;
}
.hide{
	display: none !important;
}
.btn_submit_div{
	margin-top: 80px;
}
.btn_submit{
	display: block;
	width: 170px;
	font-size: 18px;
	color: #fff;
	text-align: center;
	border: 1px solid #FF6F30;
	border-radius: 30px;
	background-color: #FF6F30;
	padding: 7px 0;
	margin-left: auto;
	margin-right: auto;
}
.btn_submit:hover{
	color: #000;
	background-color: #fff;
}
.verify{
	width: 155px;
	padding-left: 15px;
}
.verify img{
	
}
.flex-1{
	flex: 1;
}

/* datepicker */
.booking_datetext{
	font-size: 18px;
	font-weight: 500;
}
.booking_datetext span{
	color: #3DABAB;
}
.booking_datepicker{
	margin-top: 20px;
	margin-bottom: 10px;
}
.booking_datepicker .ui-datepicker{
	width: 100% !important;
}
.ui-datepicker-group{
	padding-left: 10px;
	padding-right: 10px;
}
.booking_datepicker .ui-datepicker td{
	width: 14.28%;
}
.ui-datepicker td span, .ui-datepicker td a{
	text-align: center;
}
.booking_datepicker .ui-datepicker td span, .booking_datepicker .ui-datepicker td a{
	line-height: 3em;
}
.ui-state-highlight.ui-state-active, .ui-widget-content .ui-state-highlight.ui-state-active, .ui-widget-header .ui-state-highlight.ui-state-active{
	border: 1px solid #3DABAB;
    background: #3DABAB;
    color: #ffffff;
}
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active, a.ui-button:active, .ui-button:active, .ui-button.ui-state-active:hover{
	border-color: #3DABAB;
	background: #3DABAB;
}
.btn_time_box{
	display: block;
	margin-bottom: 15px;
}
.btn_time{
	color: #000;
	text-align: center;
	border: 1px solid #aaa;
	border-radius: 5px;
	background-color: #fff;
	padding: 5px 0;
	cursor: pointer;
}
.btn_time_radio{
	display: none;
}
.btn_time_radio:checked + .btn_time{
	color: #fff;
	background-color: #3DABAB;
}
.btn_time_radio:disabled + .btn_time{
	color: #ccc;
	border-color: #ccc;
}

/* ---------- visit RWD ---------- */
@media (max-width:640px){
	.visit{
		padding-top: 110px;
	}
	.form_title{
		font-size: 17px;
	}
	.visit_done__list{
		padding-left: 18px;
		padding-right: 18px;
	}
	.visit_done__row{
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
		padding: 12px 0;
	}
	.visit_done__list dd{
		text-align: left;
	}
	.btn_submit_div{
		margin-top: 60px;
	}
}

/* =========================================================
   樂活生活 life.html
   （主視覺沿用 .kv-about、內容區沿用 .about-sec、標語沿用 .quote）
   ========================================================= */

/* ---------- 主視覺：比設計稿的圖片再大一些 ---------- */
.kv-about--life .kv-about__inner{
  gap:clamp(24px, 6.5vw, 125px);
  padding:0 clamp(24px, 9.8vw, 189px) 0 clamp(24px, 4.8vw, 92px);
}

/* ---------- 標語新增樣式 ---------- */
.quote--peach{ background:var(--peach); }
.quote__hl--teal{ background:var(--teal-btn); }

/* 標語下方接校園地圖時，上下留白改小 */
.quote--withmap{
  padding-top:clamp(30px, 3.6vw, 70px);
  padding-bottom:clamp(10px, 1vw, 18px);
}

/* ---------- 校園地圖 ---------- */
.campusmap{
  max-width:1280px;
  margin:clamp(16px, 2.4vw, 46px) auto 0;
}
.campusmap img{ width:100%; }

/* ---------- 服務類別 ---------- */
.quote--withicons{
  padding-top:clamp(30px, 3.6vw, 70px);
  padding-bottom:clamp(30px, 2.9vw, 55px);
}

.lifeico{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:center;
  gap:clamp(18px, 3.3vw, 63px);
  margin-top:clamp(24px, 4.6vw, 88px);
}
.lifeico__item{
  flex:0 0 auto;
  width:clamp(84px, 7.8vw, 150px);
  text-align:center;
}
/* 圖示本身不放大超過原尺寸，欄位變寬時置中 */
.lifeico__pic{
  width:100%;
  max-width:150px;
  margin:0 auto;
}
.lifeico__name{
  margin-top:clamp(4px, .6vw, 12px);
  font-size:clamp(16px, 1vw, 18px);
  letter-spacing:.08em;
  color:var(--dark);
}

/* ---------- 特約廠商商標 ---------- */
.partner{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:clamp(15px, 1.6vw, 30px);
  max-width:1200px;
  margin:clamp(40px, 3.5vw, 70px) auto 0;
}
/* logo 不論原始尺寸都等比縮放在固定比例的範圍內，並置中於格子 */
.partner__item{
  display:flex;
  align-items:center;
  justify-content:center;
}
.partner__logo{
  display:block;
  width:100%;
  max-width:240px;       /* 寬版 logo 的上限 */
  aspect-ratio:3 / 1;    /* 顯示區比例，方形或直式 logo 會以高度為準 */
  object-fit:contain;
}

/* ---------- 周邊商圈地圖 ---------- */
.areamap{
  padding:clamp(36px, 3.4vw, 66px) 0 clamp(60px, 7vw, 140px);
  background:var(--beige);
}
.areamap__list{
  display:grid;
  /* 左右寬度依兩張圖的寬高比分配（map_01 1280×936、map_02 1280×1275），讓兩張圖高度一致 */
  grid-template-columns:minmax(0,1.36fr) minmax(0,1fr);
  align-items:start;
  gap:clamp(20px, 6.3vw, 121px);
}
.areamap__link{ display:block; cursor:zoom-in; }
.areamap__pic{
  margin:0;
  border-radius:14px;
  overflow:hidden;
  background:#F8F5F0;
}
.areamap__pic img{ width:100%; transition:transform .4s; }
.areamap__link:hover .areamap__pic img{ transform:scale(1.03); }

/* ---------- life RWD ---------- */
@media (max-width:991px){
  .kv-about--life .kv-about__inner{ gap:32px; padding:0 24px; }
  .campusmap{ margin-top:26px; }
  .lifeico{ gap:18px 12px; }
  .lifeico__item{ width:calc((100% - 24px) / 3); }
}

@media (max-width:768px){
  .partner{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

@media (max-width:640px){
  .lifeico__item{ width:calc((100% - 12px) / 2); }
  .areamap__list{ grid-template-columns:minmax(0,1fr); }
}

/* =========================================================
   入住資訊 room.html
   （主視覺沿用 .kv-about、內容區沿用 .about-sec、標語沿用 .quote）
   ========================================================= */

/* ---------- 主視覺：圖片較大（橢圓與陰影沿用 .kv-about__pic） ---------- */
.kv-about--room .kv-about__inner{
  gap:clamp(24px, 8.2vw, 157px);
  padding:0 clamp(24px, 12.2vw, 234px) 0 clamp(24px, 4.1vw, 79px);
}
.kv-about--room .kv-about__visual{ flex:1 1 62%; }
.kv-about--room .kv-about__text{ flex:1 1 38%; }

/* ---------- 內容區補充 ---------- */
/* 方角圖片 */
.about-sec__pic--square{ border-radius:0; }
/* 下方接續其他區塊時不留底部空白 */
.about-sec--flush{ padding-bottom:0; }

/* ---------- 房型 ---------- */
.roomtype{
  padding:clamp(40px, 8vw, 155px) 0 clamp(40px, 7.6vw, 146px);
  background-color: var(--beige);
  background-image:url(../img/room/bg3.png);
  background-repeat:no-repeat;
  background-position:bottom center;
  background-size:100% auto;
}
.roomtype__list{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:clamp(20px, 4.2vw, 81px);
}
.roomtype__item{
  flex:0 1 clamp(260px, 31vw, 597px);
  min-width:0;
}
.roomtype__link{
  display:block;
  height:100%;
  padding:clamp(16px, 1.2vw, 22px) clamp(16px, 1.2vw, 22px) clamp(20px, 1.8vw, 34px);
  border-radius:12px;
  background:#fff;
  color:inherit;
  box-shadow:0 8px 24px rgba(60,74,74,.1);
  transition:transform .3s, box-shadow .3s;
}
/*.roomtype__link:hover{ transform:translateY(-6px); box-shadow:0 16px 32px rgba(60,74,74,.16); }*/

.roomtype__pic{
  margin:0 0 clamp(16px, 1.5vw, 28px);
  overflow:hidden;
}
.roomtype__pic img{
	width:100%;
	border-radius: 10px;
}
.roomtype__body{ padding:0 clamp(4px, .8vw, 14px); }
.roomtype__title{
  margin-bottom:10px;
  font-size:clamp(19px, 1.35vw, 26px);
  font-weight:500;
  letter-spacing:.08em;
  color:var(--dark);
}
.roomtype__sub{
  margin-bottom:14px;
  font-size:clamp(16px, .95vw, 17px);
  font-weight:500;
  letter-spacing:.12em;
  color:var(--brown);
}
.roomtype__desc{
  font-size:clamp(16px, .92vw, 16px);
  line-height:1.95;
  color:var(--text);
}
/*
.roomtype__link:hover .roomtype__title{ color:var(--teal); }
.roomtype__link:hover .btn-more__ico{ background:var(--mint); color:var(--teal-dark); }
*/

.ad-gallery{
  position:relative;
  min-width:0;
  --ad-gallery-ar: 4 / 3;
}
.ad-gallery--default{
  --ad-gallery-ar: 920 / 720;
  border-radius:10px;
  overflow:hidden;
}
.ad-gallery--roomtype{
  --ad-gallery-ar: 560 / 350;
  margin:0 0 clamp(16px, 1.5vw, 28px);
}
.ad-gallery__stage{ position:relative; }
.ad-gallery__viewport{
  overflow:hidden;
  aspect-ratio:var(--ad-gallery-ar);
}
.ad-gallery__track{
  list-style:none;
  margin:0;
  padding:0;
  position:relative;
  height:100%;
}
.ad-gallery__slide{
  display:none;
  margin:0;
  height:100%;
}
.ad-gallery__slide.is-active{ display:block; }
.ad-gallery__slide img,
.ad-gallery__link{
  display:block;
  width:100%;
  height:100%;
}
.ad-gallery__slide img{
  object-fit:cover;
}
.ad-gallery--roomtype .ad-gallery__slide img{
  border-radius:10px;
}
.ad-gallery__arrow{
  position:absolute;
  top:50%;
  z-index:2;
  transform:translateY(-50%);
  width:36px;
  height:52px;
  padding:0;
  border:0;
  background:transparent;
  opacity:.85;
  cursor:pointer;
}
.ad-gallery__arrow:hover{ opacity:1; }
.ad-gallery__arrow img{ width:16px; max-width:none; }
.ad-gallery__arrow--prev{ left:8px; }
.ad-gallery__arrow--next{ right:8px; }
.ad-gallery.is-single .ad-gallery__arrow,
.ad-gallery.is-single .ad-gallery__dots{ display:none; }
.ad-gallery__dots{
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:12px;
}
.ad-gallery__dot{
  width:8px;
  height:8px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(60,74,74,.28);
  cursor:pointer;
}
.ad-gallery__dot.is-active{
  background:var(--teal);
  transform:scale(1.25);
}

/* ---------- 入住方案 ---------- */
.plan{
  padding:clamp(30px, 4vw, 80px) 0 clamp(50px, 7.8vw, 150px);
  background-color:#efe9e1;
  background-image:url(../img/index/bg1.png);
  background-repeat:no-repeat;
  background-position:bottom center;
  background-size:100% auto;
}

.plan__card{
  padding:clamp(28px, 5vw, 97px) clamp(24px, 4.2vw, 80px) clamp(28px, 4.2vw, 81px);
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 30px rgba(60,74,74,.12);
}

.plan__cols{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
}
.plan__col{ padding:0 clamp(16px, 2.4vw, 46px); }
.plan__col:first-child{ padding-left:0; }
.plan__col:last-child{ padding-right:0; }
.plan__col + .plan__col{ border-left:1px solid rgba(60,74,74,.14); }

.plan__colhead{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:clamp(12px, 1.3vw, 24px);
}
.plan__name{
  font-size:clamp(17px, 1.25vw, 24px);
  font-weight:500;
  letter-spacing:.08em;
  color:var(--dark);
}
.plan__year{
  font-family:var(--font-en);
  font-size:clamp(22px, 1.9vw, 36px);
  line-height:1;
  color:var(--teal);
}
.plan__year small{
  font-family:var(--font-tc);
  font-size:clamp(12px, .75vw, 14px);
  letter-spacing:.04em;
}
.plan__desc{
  font-size:clamp(16px, .92vw, 16px);
  line-height:1.9;
  color:var(--text);
}

.plan__hr{
  margin:clamp(24px, 2.7vw, 52px) 0;
  border:0;
  border-top:1px solid rgba(60,74,74,.14);
  opacity:1;
}

.plan__lower{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:clamp(24px, 3.6vw, 70px);
}
.plan__table{
  flex:1 1 clamp(280px, 39vw, 751px);
  margin:0;
  min-width:0;
}
.plan__table img{ width:100%; }

.plan__notes{
  flex:1 1 clamp(240px, 24vw, 463px);
  min-width:0;
}
.plan__notes li{
  position:relative;
  padding-left:20px;
  font-size:clamp(16px, .92vw, 16px);
  line-height:1.9;
  color:var(--text);
}
.plan__notes li + li{ margin-top:clamp(12px, 1.2vw, 22px); }
.plan__notes li::before{
  content:"";
  position:absolute;
  top:.75em;
  left:2px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--teal-btn);
}
.plan__notes strong{ font-weight:700; color:var(--dark); }
.plan__tel{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:2px;
}
.plan__tel a{
  font-size:clamp(16px, 1.05vw, 19px);
  font-weight:500;
  letter-spacing:.02em;
  color:var(--teal);
}
.plan__tel img{ flex:0 0 auto; width:clamp(24px, 1.8vw, 35px); }

/* ---------- 入住須知 Q&A ---------- */
.qa{
  padding:clamp(40px, 3.8vw, 72px) 0 clamp(60px, 7vw, 134px);
  background:var(--beige);
}
.qa__head{ margin-bottom:clamp(24px, 3.6vw, 70px); }
.qa__head .about-sec__en{ margin:clamp(28px, 4.4vw, 84px) 0 clamp(6px, .6vw, 12px); }
.qa__title{
  font-size:clamp(22px, 2.2vw, 42px);
  font-weight:700;
  letter-spacing:.06em;
  color:var(--dark);
}

.qa__list{
  display:flex;
  flex-direction:column;
  gap:clamp(14px, 1.3vw, 25px);
}
.qa__item{
  padding:clamp(20px, 2.4vw, 46px) clamp(20px, 2.6vw, 50px);
  border-radius:10px;
  background:#fff;
}
.qa__q{
  display:flex;
  align-items:baseline;
  gap:clamp(14px, 1.5vw, 28px);
  padding-bottom:clamp(10px, 1vw, 18px);
  border-bottom:1px solid rgba(60,74,74,.12);
}
.qa__no{
  flex:0 0 auto;
  min-width:clamp(40px, 3.4vw, 66px);
  padding-right:clamp(10px, 1.1vw, 20px);
  border-right:1px solid rgba(60,74,74,.18);
  font-family:var(--font-en);
  font-size:clamp(22px, 1.9vw, 36px);
  line-height:1;
  color:var(--teal);
}
.qa__no em{
  font-style:normal;
  font-size:clamp(16px, 1.25vw, 24px);
}
.qa__text{
  font-size:clamp(16px, 1.15vw, 22px);
  font-weight:700;
  line-height:1.6;
  letter-spacing:.04em;
  color:var(--dark);
}
.qa__a{
  margin-top:clamp(12px, 1.2vw, 22px);
  padding-left:clamp(54px, 4.9vw, 94px);
  font-size:clamp(16px, .92vw, 16px);
  line-height:1.95;
  color:var(--text);
}

/* ---------- room RWD ---------- */
@media (max-width:991px){
  .kv-about--room .kv-about__inner{ gap:32px; padding:0 24px; }

  .roomtype{ padding:40px 0; }
  .roomtype__item{ flex:1 1 100%; max-width:520px; }

  .plan__cols{ grid-template-columns:minmax(0,1fr); }
  .plan__col{ padding:0; }
  .plan__col + .plan__col{
    margin-top:24px;
    padding-top:24px;
    border-left:0;
    border-top:1px solid rgba(60,74,74,.14);
  }
  .plan__colhead{ justify-content:flex-start; gap:16px; }

  .qa__a{ padding-left:0; }
}

@media (max-width:640px){
  .qa__q{ flex-direction:column; gap:8px; }
  .qa__no{ padding-right:0; border-right:0; }

  /* 表格為圖片，小螢幕改為可橫向捲動以維持可讀性 */
  .plan__table{ overflow-x:auto; }
  .plan__table img{ min-width:520px; }
}

/* =========================================================
   活動報名 event.html
   （版型與最新消息相同，僅補上分類標籤與活動資訊樣式）
   ========================================================= */

/* 分類：進行中的活動加上小圓點 */
.newstab__item--dot{ position:relative; }
.newstab__item--dot::after{
  content:"";
  position:absolute;
  top:6px;
  right:-9px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#FF6F30;
}

/* 標籤配色 */
.news-card__cat--online{ background:#FF6F30; color:#fff; }
.news-card__cat--review{ background:var(--mint); color:var(--dark); }

/* 活動資訊 */
.event-meta{
  font-size:clamp(16px, .95vw, 17px);
  line-height:2;
  color:var(--text);
}
.event-meta__label{
  font-weight:700;
  color:var(--dark);
}
@media (max-width:640px){
	.newstab__item--dot::after{ right: 6px; }
}

/* news_page */
.news_page{
	padding-top: 120px;
	padding-bottom: 100px;
    background: var(--beige);
}
.news_page_con{
	max-width: 1110px;
	padding-left: 15px;
	padding-right: 15px;
	margin-left: auto;
	margin-right: auto;
}
.news_page_head{
	display: flex;
    align-items: center;
	margin-bottom: 20px;
}
.news_page_cate{
	margin-right: 20px;
}
.news_page_title{
	font-size: 36px;
	font-weight: bold;
	line-height: 1.4em;
	letter-spacing: 1px;
	margin-bottom: 30px;
}
.news_page_text{
	font-size: 18px;
	line-height: 1.8em;
	margin-bottom: 80px;
}
.news_page_text p{
	margin-bottom: 2rem;
}
.edit_area img{
	height: auto !important;
	margin-left: auto;
	margin-right: auto;
}
.edit_area iframe{
	width: 100%;
}
.news_page_sns{
	justify-content: center;
	margin-bottom: 50px;
}
.event_line_cta{
	text-align: center;
	margin: 0 0 50px;
}
a.event_line_cta__btn,
a.event_line_cta__btn:link,
a.event_line_cta__btn:visited{
	display: inline-block;
	box-sizing: border-box;
	min-width: min(100%, 420px);
	padding: 14px 36px;
	font-size: 18px;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: .04em;
	color: #fff;
	text-align: center;
	text-decoration: none;
	border: 1px solid #01B901;
	border-radius: 999px;
	background-color: #01B901;
}
a.event_line_cta__btn:hover,
a.event_line_cta__btn:focus,
a.event_line_cta__btn:active{
	color: #fff;
	text-decoration: none;
	background-color: #009B00;
	border-color: #009B00;
	opacity: 1;
}
@media (max-width:640px){
	a.event_line_cta__btn,
	a.event_line_cta__btn:link,
	a.event_line_cta__btn:visited{
		min-width: 100%;
		padding: 12px 20px;
		font-size: 16px;
	}
}
.news_btn_div{
	text-align: center;
}
.news_other{
	background-color: #E9D9CC;
}
@media (max-width:991px){
	.news_page_title{ font-size: 26px; }
}
@media (max-width:640px){
	.news_page{ padding-bottom: 60px; }
	.news_page_title{ font-size: 22px; }
	.news_page_text{ font-size: 16px; }
}

/* event */
.event_page{
	padding-top: 120px;
	padding-bottom: 10px;
	background: var(--beige);
}
.event_info_row{
	padding-top: 10px;
	margin-bottom: 30px;
}
.event_info_item{
	flex: 1;
	font-size: 18px;
}
.event_info_item:nth-child(odd){
	padding-right: 15px;
}
.event_info_item:nth-child(even){
	padding-left: 15px;
}
.event_info_btn_div{
	padding-left: 15px;
}
.event_info_btn{
	display: block;
	width: 160px;
	font-size: 18px;
	color: #fff;
	text-align: center;
	border: 1px solid #FF6F30;
	border-radius: 30px;
	background-color: #FF6F30;
	padding: 7px 0;
}
.event_info_btn:hover{
	color: #000;
	background-color: #fff;
}
.event_info_btn--line{
	border-color: #01B901;
	background-color: #01B901;
}
.event_info_btn--line:hover{
	color: #fff;
	background-color: #009B00;
	border-color: #009B00;
}
.event_info_row--done{
	align-items: center;
}
.event_done{
	margin: 10px 0 40px;
}
.event_done__box{
	padding: 36px 24px 40px;
	text-align: center;
}
.event_done__title{
	margin: 0;
	font-size: clamp(22px, 2.2vw, 32px);
	font-weight: 700;
	line-height: 1.5;
	color: #6b6b6b;
}
.event_done__sub{
	margin: 10px 0 0;
	font-size: clamp(16px, 1.4vw, 20px);
	line-height: 1.6;
	color: #6b6b6b;
}
.event_done__box .event_line_cta__btn{
	margin-top: 28px;
}
.event_done__msg p{
	margin: 0;
	line-height: 1.7;
}
.event_done__msg p + p{
	margin-top: .25em;
}
.event_img{
	border-radius: 30px;
	margin-bottom: 40px;
}
.event_sub{
	font-size: 36px;
	color: #3D4A4A;
	letter-spacing: 1px;
	text-align: center;
	margin-bottom: 20px;
}
.event_sub_text{
	font-size: 24px;
	color: #B57641;
	font-weight: 500;
	text-align: center;
	letter-spacing: 1px;
	margin-bottom: 40px;
}
.event_more_div{
	text-align: center;
	margin-bottom: 60px;
}
.event_more{
	height: 62px;
	font-size: 22px;
	color: #fff;
	letter-spacing: 1px;
	padding: 0 22px 0 44px;
	background-color: #3DABAB;
}
.event_more:hover{
	color: #fff;
	background-color: var(--teal-dark);
}
.sign_btn_row{
	justify-content: center;
	margin-top: 60px;
	margin-left: -15px;
	margin-right: -15px;
}
.sign_btn_item{
	padding: 0 15px;
}
.event_back{
	display: block;
    width: 160px;
    font-size: 18px;
    color: #fff;
    text-align: center;
	border: 1px solid var(--teal-btn);
    border-radius: 30px;
    background-color: var(--teal-btn);
    padding: 7px 0;
}
.event_back:hover{
	color: #fff;
	background-color: var(--teal-dark);
	border-color: var(--teal-dark);
}
.sign_btn{
	width: 160px;
}
.about_notice{
	padding-top: 40px;
	padding-bottom: 20px;
}
.about_notice_con{
	color: var(--dark);
	text-align: left;
}
.about_notice p{
	margin-bottom: 20px;
}
.red{
	color: #ff0000;
}

@media (max-width:991px){
	.event_info_item{
		flex: 0 0 auto;
		width: 100%;
	}
	.event_info_item:nth-child(odd){
		padding-right: 0;
	}
	.event_info_item:nth-child(even){
		padding-left: 0;
	}
	.event_info_btn_div{
		width: 100%;
		text-align: center;
		padding-top: 20px;
		padding-left: 0;
	}
	.event_info_btn_div .event_info_btn{
		margin-left: auto;
		margin-right: auto;
	}
	.event_sub{
		font-size: 26px;
	}
	.event_sub_text{
		font-size: 20px;
	}
}
@media (max-width:640px){
	.hide-md{
		display: none;
	}
	.event_info_item{
		font-size: 16px;
	}
	.event_info_btn{
		font-size: 16px;
	}
	.event_img{
		margin-bottom: 30px;
	}
	.event_sub{
		font-size: 22px;
	}
	.event_sub_text{
		font-size: 17px;
		letter-spacing: 0;
		margin-bottom: 30px;
	}
	.event_more{
		font-size: 18px;
	}
	.sign_btn_row{
		margin-left: -7px;
		margin-right: -7px;
	}
	.sign_btn_item{
		width: 50%;
		padding: 0 7px;
	}
	.event_back{
		font-size: 16px;
	}
	.sign_btn{
		width: 100%;
	}
}

/* =========================================================
   報名完成彈窗
   ========================================================= */
.popup{
  position:fixed;
  inset:0;
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
  transition:opacity .3s, visibility .3s;
}
.popup.is-show{ opacity:1; visibility:visible; }

.popup__mask{
  position:absolute;
  inset:0;
  background:rgba(60,74,74,.92);
}
.popup__inner{
  position:relative;
  width:100%;
  max-width:720px;
}

/* 關閉：位於卡片右上方外側 */
.popup__close{
  position:absolute;
  right:0;
  bottom:100%;
  width:32px;
  height:32px;
  margin-bottom:14px;
  transition:opacity .25s;
}
.popup__close::before,
.popup__close::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:26px;
  height:2px;
  background:#fff;
}
.popup__close::before{ transform:translate(-50%,-50%) rotate(45deg); }
.popup__close::after{ transform:translate(-50%,-50%) rotate(-45deg); }
.popup__close:hover{ opacity:.7; }

.popup__card{
  padding:clamp(40px, 5vw, 95px) clamp(24px, 4vw, 75px) clamp(30px, 3.2vw, 60px);
  border-radius:24px;
  background:#fff;
  text-align:center;
}
.popup__title{
  font-size:clamp(19px, 1.5vw, 28px);
  font-weight:700;
  line-height:1.7;
  letter-spacing:.04em;
  color:var(--dark);
}
.popup__text{
  margin:clamp(18px, 2.1vw, 40px) 0 clamp(16px, 1.3vw, 25px);
  font-size:clamp(16px, 1vw, 19px);
  line-height:2.1;
  color:var(--text);
}
.popup__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:158px;
  height:58px;
  padding:0 24px;
  border-radius:999px;
  background:var(--teal-btn);
  color:#fff;
  font-size:clamp(16px, 1vw, 18px);
  font-weight:700;
  letter-spacing:.06em;
}
.popup__btn:hover{ background:var(--teal-dark); color:#fff; }
.popup__btn--line{ background:#01B901; }
.popup__btn--line:hover{ background:#009B00; }

/* ---------- 條款類彈窗：較寬、內文可捲動 ---------- */
.popup--wide .popup__inner{ max-width:1070px; }
.popup--wide .popup__card{
  display:flex;
  flex-direction:column;
  /* 扣掉 .popup 的上下留白與關閉鈕所需空間 */
  max-height:calc(100vh - 94px);
  max-height:calc(100dvh - 94px);
  padding:clamp(24px, 3.6vw, 68px) clamp(18px, 2.6vw, 50px);
  text-align:left;
}
.popup__scroll{
  overflow-y:auto;
  padding-right:clamp(6px, .8vw, 14px);
  font-size:clamp(15px, 16px, 18px);
  line-height:1.8em;
  color:var(--dark);
}
.popup__scroll p + p{ margin-top:1em; }

/* ---------- 圖片放大彈窗 ---------- */
.popup--image .popup__inner{
  /* 依圖片比例決定寬度，讓整張圖完整留在畫面內（--img-ratio 由 JS 依圖片寬高設定） */
  max-width:none;
  width:min(1280px, 100%, calc((100vh - 94px) * var(--img-ratio, 1.5)));
  width:min(1280px, 100%, calc((100dvh - 94px) * var(--img-ratio, 1.5)));
}
.popup__img{
  display:block;
  width:100%;
  height:auto;
  border-radius:14px;
  background:#fff;
}
/* 捲軸 */
.popup__scroll::-webkit-scrollbar{ width:6px; }
.popup__scroll::-webkit-scrollbar-thumb{
  border-radius:3px;
  background:rgba(60,74,74,.25);
}

@media (max-width:640px){
  .popup__close{ width:28px; height:28px; margin-bottom:10px; }
  .popup__close::before,
  .popup__close::after{ width:22px; }
  .popup__btn{ height:50px; }
}

.ani_clip_toright.animate__animated{
	animation-name: ani_clip_toright;
	animation-duration: 1.5s;
	animation-fill-mode: forwards;
	opacity: 0;
}
@keyframes ani_clip_toright{
	from{clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%); opacity: 1;}
	to{clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); opacity: 1;}
}