
/* ============================================================
   V11 ADDITIONS ONLY
   The original V9 stylesheet remains the base design.
   Nothing from the original site is intentionally removed.
   ============================================================ */

/* --- Requested mobile text-fit fix for the ORIGINAL collaboration cards --- */
.collab-item,
.collab-item strong { min-width: 0; }

@media (max-width:820px){
  .collab-item,
  .collab-item:nth-child(even){
    overflow:hidden !important;
    padding-left:20px;
    padding-right:20px;
  }
  .collab-item strong{
    width:100%;
    max-width:100%;
    min-width:0;
    padding-left:0;
    padding-right:0;
    font-size:clamp(21px,6.25vw,27px) !important;
    line-height:1.07 !important;
    letter-spacing:-.04em;
    white-space:normal !important;
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
    text-wrap:balance;
  }
}
@media (max-width:390px){
  .collab-item strong{
    font-size:clamp(19px,5.9vw,23px) !important;
  }
}

/* --- New industry internship module; visually follows V9 cards --- */
.industry-addon{
  margin-top:clamp(72px,9vw,130px);
  padding-top:clamp(58px,7vw,94px);
  border-top:3px solid var(--ink);
}
.industry-addon-head{max-width:1180px;margin-bottom:clamp(38px,5vw,64px)}
.industry-display{font-size:clamp(48px,6.2vw,98px)}
.industry-addon-grid{
  display:grid;
  grid-template-columns:minmax(320px,.85fr) minmax(0,1.15fr);
  gap:clamp(28px,5vw,74px);
  align-items:stretch;
}
.industry-cover{
  min-height:580px;
  overflow:hidden;
  border:3px solid var(--ink);
  border-radius:48% 48% 28px 28px;
  box-shadow:10px 10px 0 var(--orange);
}
.industry-cover img{width:100%;height:100%;object-fit:cover}
.industry-info{
  padding:clamp(32px,4.4vw,64px);
  background:#fff;
  border:3px solid var(--ink);
  border-radius:var(--radius);
  box-shadow:10px 10px 0 var(--yellow);
}
.industry-lead{
  margin:0;
  font-size:clamp(20px,1.55vw,26px);
  line-height:1.43;
}
.industry-facts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin:34px 0;
}
.industry-facts article{
  min-width:0;
  padding:18px;
  background:var(--cream);
  border:3px solid var(--ink);
  border-radius:22px;
  box-shadow:4px 4px 0 var(--ink);
}
.industry-facts strong,.industry-facts span{display:block}
.industry-facts strong{
  font-family:var(--display);
  font-size:clamp(21px,2vw,31px);
  line-height:1;
  overflow-wrap:anywhere;
}
.industry-facts span{
  margin-top:8px;
  font-size:14px;
  font-weight:900;
  color:var(--muted);
}
.industry-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:26px;
  margin-bottom:32px;
}
.industry-detail-grid h3{
  margin:0 0 12px;
  font-family:var(--display);
  font-size:24px;
  line-height:1.05;
}
.industry-detail-grid ul{
  margin:0;
  padding-left:22px;
}
.industry-detail-grid li{margin:8px 0;line-height:1.45}

/* --- New 3+4 facility gallery --- */
.facility-addon{
  margin-top:clamp(72px,9vw,120px);
  padding-top:clamp(58px,7vw,90px);
  border-top:3px solid var(--ink);
}
.facility-addon-head{max-width:1120px;margin-bottom:46px}
.facility-display{font-size:clamp(48px,6.3vw,100px)}
.facility-addon-head>p:last-child{
  max-width:900px;
  margin-top:28px;
  font-size:clamp(19px,1.45vw,24px);
}
.facility-grid{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:20px;
}
.facility-card{
  grid-column:span 4;
  min-width:0;
  margin:0;
  overflow:hidden;
  background:#fff;
  border:3px solid var(--ink);
  border-radius:30px;
  box-shadow:8px 8px 0 var(--yellow);
  transition:transform .28s,box-shadow .28s;
}
.facility-card.facility-wide{grid-column:span 8}
.facility-card img{
  width:100%;
  height:clamp(250px,25vw,390px);
  object-fit:cover;
  border-bottom:3px solid var(--ink);
  transition:transform .75s cubic-bezier(.2,.75,.2,1);
}
.facility-card figcaption{
  display:grid;
  gap:7px;
  padding:20px 22px 23px;
}
.facility-card figcaption strong{
  font-family:var(--display);
  font-size:clamp(22px,2.1vw,34px);
  line-height:1;
}
.facility-card figcaption span{
  font-size:16px;
  line-height:1.45;
}
.facility-card:hover{
  transform:translate(-3px,-3px);
  box-shadow:12px 14px 0 var(--orange);
}
.facility-card:hover img{transform:scale(1.045)}

/* New cards still use the original V9 reveal system. */
html.motion-lite .industry-cover.is-visible img,
html.motion-lite .facility-card.is-visible img{
  animation:v9Image .7s ease-out both;
}

@media (max-width:1000px){
  .industry-addon-grid{grid-template-columns:1fr}
  .industry-cover{min-height:0;aspect-ratio:5/3;border-radius:34px}
  .facility-card,.facility-card.facility-wide{grid-column:span 6}
}
@media (max-width:820px){
  .industry-addon{margin-top:70px;padding-top:60px}
  .industry-display,.facility-display{font-size:clamp(42px,11.5vw,62px)}
  .industry-addon-grid{gap:24px}
  .industry-cover{aspect-ratio:1/1;border-radius:28px;box-shadow:7px 7px 0 var(--orange)}
  .industry-info{padding:26px 22px;border-radius:28px;box-shadow:7px 7px 0 var(--yellow)}
  .industry-lead{font-size:18px}
  .industry-facts{gap:10px;margin:27px 0}
  .industry-facts article{padding:14px;border-radius:18px}
  .industry-facts strong{font-size:clamp(18px,5.7vw,24px)}
  .industry-facts span{font-size:12px}
  .industry-detail-grid{grid-template-columns:1fr;gap:18px}
  .industry-detail-grid h3{font-size:22px}
  .facility-addon{margin-top:68px;padding-top:58px}
  .facility-grid{grid-template-columns:1fr;gap:17px}
  .facility-card,.facility-card.facility-wide{grid-column:auto}
  .facility-card{border-radius:25px;box-shadow:7px 7px 0 var(--yellow)}
  .facility-card img{height:auto;aspect-ratio:4/3}
}
@media (max-width:460px){
  .industry-facts{grid-template-columns:1fr}
  .industry-cover{aspect-ratio:4/3}
}

/* Keep motion light on phones; do not disable original animation. */
@media (hover:none){
  .facility-card:hover{transform:none;box-shadow:8px 8px 0 var(--yellow)}
  .facility-card:hover img{transform:none}
}


/* ============================================================
   V12 ORGANIZATION UPDATE
   - Program 01 now shows Hotel + Industry with two photos.
   - Detailed/private industry panel from V11 is removed from HTML.
   - Internship positions now have photos and are grouped by pathway.
   - Taiwan industry is added to collaboration.
   ============================================================ */

/* Program 01: two-photo panel while preserving original program-card geometry */
.program-card-dual .program-dual-photo{
  display:grid;
  grid-template-rows:1fr 1fr;
  height:100%;
  min-height:430px;
  margin:0;
  overflow:hidden;
  position:relative;
}
.program-card-dual .program-photo-half{
  position:relative;
  min-height:0;
  overflow:hidden;
}
.program-card-dual .program-photo-half + .program-photo-half{
  border-top:3px solid var(--ink);
}
.program-card-dual .program-photo-half img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.75,.2,1);
}
.program-card-dual:hover .program-photo-half img{transform:scale(1.035)}
.program-card-dual .program-photo-half span{
  position:absolute;
  left:16px;
  bottom:14px;
  z-index:2;
  display:inline-flex;
  align-items:center;
  padding:7px 11px;
  border:2px solid var(--ink);
  border-radius:999px;
  background:var(--yellow);
  color:var(--ink);
  font-family:var(--display);
  font-size:11px;
  letter-spacing:.05em;
  box-shadow:3px 3px 0 var(--ink);
}
.program-mini-pills{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:18px 0 4px;
}
.program-mini-pills span{
  padding:6px 10px;
  border:2px solid currentColor;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  line-height:1.1;
}

/* Collaboration item 05 */
.collab-item.collab-industry{
  grid-column:1/-1;
  justify-self:center;
  width:min(100%, 430px);
}

/* Internship position organization */
.internship-position-block{
  margin-top:clamp(38px,5vw,62px);
}
.internship-position-block + .internship-position-block{
  margin-top:clamp(58px,7vw,88px);
  padding-top:clamp(42px,5vw,60px);
  border-top:2px solid var(--ink);
}
.internship-position-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(260px,.7fr);
  gap:28px;
  align-items:end;
  margin-bottom:24px;
}
.internship-position-head h3{
  margin:7px 0 0;
  font-family:var(--display);
  font-size:clamp(34px,4.5vw,64px);
  line-height:.98;
}
.internship-position-head > p{
  margin:0;
  font-size:17px;
  line-height:1.5;
}

.field-grid-photo .field-card-photo{
  padding:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.field-card-photo figure{
  margin:0;
  height:220px;
  overflow:hidden;
  border-bottom:3px solid var(--ink);
  background:#ddd;
}
.field-card-photo figure img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .65s cubic-bezier(.2,.75,.2,1);
}
.field-card-photo:hover figure img{transform:scale(1.045)}
.field-card-copy{
  padding:22px 22px 25px;
}
.field-card-copy .field-icon{margin-bottom:18px}
.field-card-copy h3{margin-top:0}

.industry-position-card{
  display:grid;
  grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);
  padding:0;
  overflow:hidden;
  min-height:380px;
}
.industry-position-card > figure{
  margin:0;
  min-height:380px;
  border-right:3px solid var(--ink);
  overflow:hidden;
}
.industry-position-card > figure img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s cubic-bezier(.2,.75,.2,1);
}
.industry-position-card:hover > figure img{transform:scale(1.035)}
.industry-position-copy{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(28px,4vw,54px);
}
.industry-position-tag{
  align-self:flex-start;
  padding:7px 10px;
  margin-bottom:16px;
  background:var(--yellow);
  border:2px solid var(--ink);
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
}
.industry-position-copy h3{
  margin:0;
  font-family:var(--display);
  font-size:clamp(36px,4.7vw,70px);
  line-height:.95;
}
.industry-position-copy p{
  margin:20px 0 0;
  max-width:700px;
  font-size:17px;
  line-height:1.52;
}
.industry-position-pills{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:24px;
}
.industry-position-pills span{
  padding:8px 11px;
  background:var(--orange);
  border:2px solid var(--ink);
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  box-shadow:2px 2px 0 var(--ink);
}

@media(max-width:900px){
  .internship-position-head{grid-template-columns:1fr;align-items:start}
  .industry-position-card{grid-template-columns:1fr}
  .industry-position-card > figure{
    min-height:0;
    aspect-ratio:16/9;
    border-right:0;
    border-bottom:3px solid var(--ink);
  }
}
@media(max-width:820px){
  .program-card-dual .program-dual-photo{
    grid-template-columns:1fr 1fr;
    grid-template-rows:1fr;
    min-height:260px;
  }
  .program-card-dual .program-photo-half + .program-photo-half{
    border-top:0;
    border-left:3px solid var(--ink);
  }
  .program-card-dual .program-photo-half span{
    left:10px;
    bottom:10px;
    font-size:10px;
    padding:6px 8px;
  }
  .collab-item.collab-industry{grid-column:auto;width:auto}
  .internship-position-head h3{font-size:clamp(32px,9vw,48px)}
  .field-card-photo figure{height:auto;aspect-ratio:16/10}
  .industry-position-copy{padding:27px 22px 30px}
  .industry-position-copy h3{font-size:clamp(34px,10vw,52px)}
}
@media(max-width:520px){
  .program-card-dual .program-dual-photo{min-height:220px}
  .industry-position-card > figure{aspect-ratio:4/3}
}


/* ============================================================
   V13: Partner lists, hotel star ratings, new industry photo
   ============================================================ */
.partner-showcase{
  margin-top:clamp(70px,9vw,118px);
  padding-top:clamp(56px,7vw,88px);
  border-top:3px solid var(--ink);
}
.partner-showcase-head{
  max-width:1040px;
  margin-bottom:clamp(30px,4vw,52px);
}
.partner-showcase-head h3{
  margin:8px 0 18px;
  max-width:940px;
  font-family:var(--display);
  font-size:clamp(44px,5.5vw,84px);
  line-height:.96;
  letter-spacing:-.045em;
}
.partner-showcase-head>p:last-child{
  max-width:840px;
  margin:0;
  font-size:clamp(17px,1.35vw,22px);
  line-height:1.5;
}
.partner-columns{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);
  gap:22px;
  align-items:start;
}
.partner-panel{
  min-width:0;
  overflow:hidden;
  padding:clamp(24px,3.2vw,40px);
  border:3px solid var(--ink);
  border-radius:32px;
  box-shadow:8px 8px 0 var(--yellow);
}
.partner-panel-hotel{background:#fff}
.partner-panel-industry{background:var(--orange)}
.partner-panel-title{
  display:flex;
  gap:16px;
  align-items:center;
  margin-bottom:24px;
}
.partner-panel-title .eyebrow{margin:0 0 5px}
.partner-panel-title h4{
  margin:0;
  font-family:var(--display);
  font-size:clamp(28px,3vw,42px);
  line-height:1;
}
.partner-symbol{
  flex:0 0 auto;
  width:54px;height:54px;
  display:grid;place-items:center;
  border:3px solid var(--ink);
  border-radius:50%;
  background:var(--yellow);
  font-size:26px;
  line-height:1;
}
.partner-symbol-industry{background:#fff}
.hotel-partner-list{
  display:grid;
  gap:10px;
}
.hotel-partner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  min-width:0;
  padding:14px 16px;
  border:2px solid var(--ink);
  border-radius:17px;
  background:var(--cream);
}
.hotel-partner>div{min-width:0}
.hotel-partner strong,
.hotel-partner span{display:block}
.hotel-partner strong{
  font-family:var(--display);
  font-size:clamp(17px,1.45vw,22px);
  line-height:1.05;
  overflow-wrap:anywhere;
}
.hotel-partner>div>span{
  margin-top:5px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}
.star-rating{
  white-space:nowrap;
  font-size:clamp(16px,1.5vw,22px);
  letter-spacing:1px;
  color:#e39b00;
  text-shadow:1px 1px 0 var(--ink);
}
.partner-note{
  margin:18px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
  font-weight:700;
}
.partner-industry-photo{
  margin:0 0 20px;
  overflow:hidden;
  border:3px solid var(--ink);
  border-radius:24px;
  background:#fff;
}
.partner-industry-photo img{
  display:block;
  width:100%;
  aspect-ratio:16/10;
  object-fit:cover;
}
.industry-partner-list{
  display:grid;
  gap:10px;
}
.industry-partner{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:12px;
  align-items:center;
  padding:14px 16px;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:17px;
}
.industry-partner span{
  width:35px;height:35px;
  display:grid;place-items:center;
  border:2px solid var(--ink);
  border-radius:50%;
  background:var(--yellow);
  font-family:var(--display);
  font-size:12px;
}
.industry-partner strong{
  font-family:var(--display);
  font-size:clamp(17px,1.5vw,23px);
  line-height:1.08;
  overflow-wrap:anywhere;
}

/* Make the user-supplied industry participant photo fit naturally in V12 cards */
.program-photo-half img[src*="industry-interns-2026"],
.industry-position-card img[src*="industry-interns-2026"]{
  object-position:center center;
}

@media(max-width:980px){
  .partner-columns{grid-template-columns:1fr}
}
@media(max-width:620px){
  .partner-showcase{margin-top:62px;padding-top:52px}
  .partner-showcase-head h3{
    font-size:clamp(38px,10.8vw,52px);
  }
  .partner-panel{
    padding:20px 16px;
    border-radius:25px;
    box-shadow:6px 7px 0 var(--yellow);
  }
  .partner-panel-title{align-items:flex-start}
  .hotel-partner{
    grid-template-columns:1fr;
    gap:8px;
  }
  .star-rating{font-size:19px}
  .partner-industry-photo img{aspect-ratio:4/3}
}


/* ============================================================
   V14 refinements
   - AI generated standalone Operator Produksi visual
   - Industry partners become text-only rows like hotel partners
   - 3+4 choices and facilities are one compact section
   ============================================================ */

/* Operator Produksi generated visual */
.industry-position-card figure img[src*="operator-produksi-generated"]{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

/* Industry partner rows: same compact logic as hotel list, no photo */
.partner-panel-industry{
  background:#fff;
}

.partner-industry-photo{
  display:none !important;
}

.industry-partner-list-simple{
  display:grid;
  gap:10px;
}

.industry-partner-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
  min-width:0;
  padding:14px 16px;
  border:2px solid var(--ink);
  border-radius:17px;
  background:var(--cream);
}

.industry-partner-row>div{
  min-width:0;
}

.industry-partner-row strong,
.industry-partner-row>div>span{
  display:block;
}

.industry-partner-row strong{
  font-family:var(--display);
  font-size:clamp(17px,1.45vw,22px);
  line-height:1.05;
  overflow-wrap:anywhere;
}

.industry-partner-row>div>span{
  margin-top:5px;
  color:var(--muted);
  font-size:12px;
  font-weight:800;
}

.industry-row-icon{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:2px solid var(--ink);
  border-radius:50%;
  background:var(--yellow);
  font-family:var(--display);
  font-size:11px;
}

/* Make Program 3+4 choices and facilities feel like ONE section */
.facility-addon{
  margin-top:clamp(62px,7vw,92px) !important;
  padding-top:clamp(48px,5vw,70px) !important;
}

.facility-addon-head{
  margin-bottom:28px !important;
}

.study-strip-integrated{
  margin:clamp(26px,3vw,38px) 0 0 !important;
  padding:clamp(20px,2.4vw,30px) 0 0 !important;
  border-top:2px solid var(--ink);
  border-bottom:0 !important;
}

.study-strip-integrated .study-list{
  margin-top:14px;
}

/* Prevent inherited spacing from the old standalone strip */
.facility-addon .study-strip{
  min-height:0 !important;
}

@media(max-width:620px){
  .industry-partner-row{
    grid-template-columns:1fr auto;
    gap:10px;
    padding:13px 14px;
  }

  .facility-addon{
    margin-top:48px !important;
    padding-top:40px !important;
  }

  .facility-addon-head{
    margin-bottom:20px !important;
  }

  .study-strip-integrated{
    margin-top:22px !important;
    padding-top:18px !important;
  }

  .study-strip-integrated .study-list{
    gap:8px;
  }
}


/* V15 partner thumbnails + sharper production image */
.industry-position-card figure img[src*="operator-produksi-hq"]{
  width:100%;height:100%;object-fit:cover;object-position:center center;image-rendering:auto;
}
.hotel-partner{
  grid-template-columns:64px minmax(0,1fr) auto !important;
  gap:14px !important;min-height:82px;
}
.industry-partner-row{
  grid-template-columns:64px minmax(0,1fr) !important;
  gap:14px !important;min-height:82px;
}
.partner-row-copy{min-width:0}
.partner-row-copy>strong,.partner-row-copy>span{display:block}
.partner-row-copy>strong{
  font-family:var(--display);font-size:clamp(16px,1.35vw,21px);line-height:1.05;overflow-wrap:anywhere;
}
.partner-row-copy>span{
  margin-top:6px;color:var(--muted);font-size:12px;font-weight:800;line-height:1.25;
}
.partner-row-copy>span i{margin:0 6px;font-style:normal;color:var(--orange)}
.partner-thumb-wrap{
  position:relative;width:64px;height:58px;overflow:hidden;display:grid;place-items:center;
  border:2px solid var(--ink);border-radius:13px;background:var(--yellow);
}
.partner-thumb-fallback{
  position:absolute;inset:0;display:grid;place-items:center;font-size:24px;
  background:linear-gradient(135deg,var(--cream),var(--yellow));
}
.partner-thumb-wrap img{
  position:relative;z-index:2;width:100%;height:100%;object-fit:cover;object-position:center;
  transition:transform .35s cubic-bezier(.2,.75,.2,1);
}
.hotel-partner:hover .partner-thumb-wrap img,
.industry-partner-row:hover .partner-thumb-wrap img{transform:scale(1.08)}
.industry-row-icon{display:none !important}
.partner-panel-industry{background:#fff !important}
.director-copy h2 span{
  display:block;margin-top:10px;font-size:.36em;line-height:1.18;letter-spacing:-.02em;
}
@media(max-width:720px){
  .hotel-partner{grid-template-columns:56px minmax(0,1fr) !important}
  .hotel-partner .star-rating{grid-column:2;justify-self:start;margin-top:-3px}
  .industry-partner-row{grid-template-columns:56px minmax(0,1fr) !important}
  .partner-thumb-wrap{width:56px;height:54px;border-radius:11px}
}


/* ============================================================
   V16 — Larger partner photos
   Photos are intentionally much larger so hotels/companies
   can be visually evaluated at a glance.
   ============================================================ */

.hotel-partner,
.industry-partner-row{
  min-height:124px !important;
  align-items:center !important;
}

.hotel-partner{
  grid-template-columns:128px minmax(0,1fr) auto !important;
  gap:18px !important;
  padding:14px 18px !important;
}

.industry-partner-row{
  grid-template-columns:128px minmax(0,1fr) !important;
  gap:18px !important;
  padding:14px 18px !important;
}

.partner-thumb-wrap{
  width:128px !important;
  height:92px !important;
  border-radius:16px !important;
  border-width:2px !important;
}

.partner-thumb-wrap img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

.partner-row-copy > strong{
  font-size:clamp(18px,1.55vw,24px) !important;
  line-height:1.06 !important;
}

.partner-row-copy > span{
  margin-top:8px !important;
  font-size:13px !important;
}

.star-rating{
  font-size:clamp(19px,1.7vw,25px) !important;
}

/* Give both partner panels more breathing room */
.partner-panel{
  padding:clamp(24px,2.8vw,38px) !important;
}

@media(max-width:980px){
  .hotel-partner,
  .industry-partner-row{
    min-height:112px !important;
  }

  .hotel-partner{
    grid-template-columns:112px minmax(0,1fr) auto !important;
  }

  .industry-partner-row{
    grid-template-columns:112px minmax(0,1fr) !important;
  }

  .partner-thumb-wrap{
    width:112px !important;
    height:82px !important;
  }
}

@media(max-width:720px){
  .hotel-partner,
  .industry-partner-row{
    min-height:108px !important;
    padding:12px !important;
  }

  .hotel-partner{
    grid-template-columns:96px minmax(0,1fr) !important;
    gap:12px !important;
  }

  .industry-partner-row{
    grid-template-columns:96px minmax(0,1fr) !important;
    gap:12px !important;
  }

  .partner-thumb-wrap{
    width:96px !important;
    height:76px !important;
    border-radius:13px !important;
  }

  .hotel-partner .star-rating{
    grid-column:2 !important;
    justify-self:start !important;
    margin-top:0 !important;
  }
}

@media(max-width:430px){
  .hotel-partner{
    grid-template-columns:88px minmax(0,1fr) !important;
  }

  .industry-partner-row{
    grid-template-columns:88px minmax(0,1fr) !important;
  }

  .partner-thumb-wrap{
    width:88px !important;
    height:72px !important;
  }

  .partner-row-copy > strong{
    font-size:16px !important;
  }

  .partner-row-copy > span{
    font-size:11px !important;
  }

  .star-rating{
    font-size:18px !important;
  }
}


/* ============================================================
   V17 — zoom-out / ultra-wide viewport stability
   Prevents sections from visually breaking apart when browser
   zoom is reduced or when the viewport becomes very wide.
   ============================================================ */

html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

/* Keep major content sections as one continuous full-width block. */
main > section,
.fields,
.partner-showcase,
.facility-addon {
  box-sizing: border-box;
  width: 100%;
}

/* Nested sections inside .fields should never escape the parent width. */
.fields > .partner-showcase,
.fields > .facility-addon {
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* Keep partner columns balanced at large widths and avoid stretched gaps. */
@media (min-width: 1600px) {
  .partner-showcase,
  .facility-addon,
  .internship-position-block,
  .fields-head {
    max-width: 1540px;
    margin-left: auto;
    margin-right: auto;
  }

  .partner-columns {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  }
}

/* At very wide effective viewports created by zooming out,
   preserve readable card widths instead of allowing content to look detached. */
@media (min-width: 2100px) {
  .partner-showcase,
  .facility-addon,
  .internship-position-block,
  .fields-head {
    max-width: 1720px;
  }

  .partner-panel {
    min-height: 100%;
  }
}


/* ============================================================
   V18 — cleaner copy + second hero circle
   ============================================================ */

/* Two compact circular badges beside the hero collage */
.hero-badge-group{
  position:absolute;
  right:clamp(-6px,1vw,12px);
  bottom:clamp(16px,3vw,38px);
  z-index:8;
  display:flex;
  align-items:center;
  gap:14px;
}

.hero-badge-group .hero-badge{
  position:relative !important;
  right:auto !important;
  bottom:auto !important;
  inset:auto !important;
  flex:0 0 auto;
}

.hero-badge-internship{
  width:clamp(118px,10.5vw,158px) !important;
  height:clamp(118px,10.5vw,158px) !important;
  padding:16px !important;
  background:var(--orange) !important;
  color:#fff !important;
}

.hero-badge-internship span{
  font-size:clamp(36px,4.2vw,58px) !important;
  line-height:.9 !important;
}

.hero-badge-internship small{
  max-width:105px;
  text-align:center;
  line-height:1.05;
  font-size:clamp(9px,.75vw,12px) !important;
}

/* Cleaner section heads after removing repetitive copy */
.internship-position-head{
  grid-template-columns:1fr !important;
  align-items:start !important;
  margin-bottom:20px !important;
}

.partner-showcase-head{
  margin-bottom:clamp(24px,3vw,40px) !important;
}

.fields-head{
  max-width:980px;
}

/* Mobile placement */
@media(max-width:820px){
  .hero-badge-group{
    right:10px;
    bottom:14px;
    gap:8px;
  }

  .hero-badge-group .hero-badge{
    width:92px !important;
    height:92px !important;
  }

  .hero-badge-internship{
    width:102px !important;
    height:102px !important;
    padding:11px !important;
  }

  .hero-badge-internship span{
    font-size:34px !important;
  }

  .hero-badge-internship small{
    font-size:8px !important;
    max-width:78px;
  }
}

@media(max-width:480px){
  .hero-badge-group{
    right:5px;
    bottom:8px;
    gap:6px;
  }

  .hero-badge-group .hero-badge{
    width:78px !important;
    height:78px !important;
  }

  .hero-badge-internship{
    width:88px !important;
    height:88px !important;
  }

  .hero-badge-internship span{
    font-size:29px !important;
  }

  .hero-badge-internship small{
    font-size:7px !important;
    max-width:68px;
  }
}


/* ============================================================
   V19 — badges no longer cover hero photos
   Passport photo replaces the old small departure image
   ============================================================ */

/* Badge row is now part of the text column, not an overlay on the collage. */
.hero-copy .hero-badge-group{
  position:relative !important;
  inset:auto !important;
  right:auto !important;
  bottom:auto !important;
  left:auto !important;
  top:auto !important;
  transform:none !important;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:14px;
  margin-top:clamp(22px,2.5vw,34px);
  width:max-content;
  max-width:100%;
}

/* Keep both badges compact enough to sit neatly below the hero buttons. */
.hero-copy .hero-badge-group .hero-badge{
  position:relative !important;
  inset:auto !important;
  flex:0 0 auto;
  width:clamp(108px,8.5vw,138px) !important;
  height:clamp(108px,8.5vw,138px) !important;
}

/* The new passport image is vertical; frame it so passports remain visible. */
.hero-photo-small img[src*="passport-hands"]{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}

/* Disable the old overlay positioning rules inside the collage. */
.hero-collage > .hero-badge-group{
  display:none !important;
}

@media(max-width:820px){
  .hero-copy .hero-badge-group{
    margin-top:20px;
    gap:9px;
  }

  .hero-copy .hero-badge-group .hero-badge{
    width:90px !important;
    height:90px !important;
  }

  .hero-copy .hero-badge-internship{
    width:98px !important;
    height:98px !important;
  }
}

@media(max-width:480px){
  .hero-copy .hero-badge-group{
    flex-wrap:wrap;
    gap:8px;
  }

  .hero-copy .hero-badge-group .hero-badge{
    width:82px !important;
    height:82px !important;
  }

  .hero-copy .hero-badge-internship{
    width:90px !important;
    height:90px !important;
  }
}


/* ============================================================
   V20 — Cute Taiwan internship partner map
   Inserted between partner heading and the existing partner lists.
   Existing hotel/industry lists are unchanged.
   ============================================================ */

.cute-partner-map{
  margin:clamp(30px,4vw,52px) 0 clamp(42px,5vw,68px);
  padding:clamp(18px,2.2vw,28px);
  background:linear-gradient(180deg,#dff8ff 0%,#c9f1fb 42%,#e9fbff 100%);
  border:3px solid var(--ink);
  border-radius:34px;
  box-shadow:10px 10px 0 var(--yellow);
  overflow:hidden;
}

.cute-map-toolbar{
  position:relative;
  z-index:5;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:22px;
  padding:6px 8px 18px;
}

.cute-map-toolbar h4{
  margin:5px 0 0;
  max-width:760px;
  font-family:var(--display);
  font-size:clamp(28px,3.8vw,52px);
  line-height:.98;
  letter-spacing:-.035em;
}

.cute-map-legend{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:9px;
}

.cute-map-legend > span{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

.legend-pin{
  width:20px;
  height:20px;
  display:block;
  border:2px solid var(--ink);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  box-shadow:2px 2px 0 rgba(0,0,0,.14);
}
.legend-hotel{background:var(--yellow)}
.legend-industry{background:var(--orange)}

.cute-map-stage{
  position:relative;
  min-height:clamp(600px,67vw,920px);
  overflow:hidden;
  border:3px solid var(--ink);
  border-radius:28px;
  background:
    radial-gradient(circle at 12% 18%,rgba(255,255,255,.92) 0 5%,transparent 5.5%),
    radial-gradient(circle at 84% 22%,rgba(255,255,255,.9) 0 4%,transparent 4.5%),
    linear-gradient(180deg,#75d8f0 0%,#94e3ef 65%,#78d4e8 100%);
}

.taiwan-island-wrap{
  position:absolute;
  left:50%;
  top:5%;
  width:min(52%,460px);
  height:90%;
  transform:translateX(-50%);
  z-index:2;
  filter:drop-shadow(0 16px 0 rgba(35,36,25,.18));
}

.taiwan-island-svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}

.island-shadow{
  fill:rgba(22,22,22,.16);
  transform:translate(8px,10px);
}
.island-main{stroke:var(--ink);stroke-width:7;stroke-linejoin:round}
.mountain{opacity:.76;stroke:rgba(22,22,22,.22);stroke-width:2}
.island-highlight{pointer-events:none}

.map-cloud{
  position:absolute;
  z-index:1;
  width:110px;
  height:36px;
  background:rgba(255,255,255,.86);
  border-radius:999px;
  filter:drop-shadow(0 5px 0 rgba(0,0,0,.06));
  animation:cloudDrift 7s ease-in-out infinite alternate;
}
.map-cloud::before,.map-cloud::after{
  content:"";
  position:absolute;
  background:inherit;
  border-radius:50%;
}
.map-cloud::before{width:46px;height:46px;left:18px;top:-22px}
.map-cloud::after{width:60px;height:60px;right:14px;top:-30px}
.map-cloud-a{left:7%;top:20%}
.map-cloud-b{right:8%;top:57%;animation-delay:-3s}

.map-wave{
  position:absolute;
  z-index:1;
  color:rgba(255,255,255,.85);
  font-size:44px;
  letter-spacing:-10px;
  transform:rotate(-7deg);
  animation:waveWiggle 4s ease-in-out infinite;
}
.map-wave-a{left:7%;top:72%}
.map-wave-b{right:8%;top:32%;animation-delay:-1.5s}

.map-pin{
  --pin-color:var(--yellow);
  position:absolute;
  left:var(--x);
  top:var(--y);
  z-index:6;
  width:46px;
  height:54px;
  transform:translate(-50%,-100%);
  border:0;
  background:transparent;
  cursor:pointer;
  padding:0;
  animation:pinBounce 2.4s ease-in-out infinite;
  animation-delay:calc(var(--y) * -0.015s);
}

.pin-industry{--pin-color:var(--orange)}

.pin-core{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  background:var(--pin-color);
  color:#111;
  border:3px solid var(--ink);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  box-shadow:5px 6px 0 rgba(0,0,0,.18);
  font-family:var(--display);
  font-size:17px;
}
.pin-core > *{transform:rotate(45deg)}
.map-pin .pin-core{font-size:0}
.map-pin .pin-core::after{
  content:"★";
  transform:rotate(45deg);
  font-size:17px;
  line-height:1;
}
.map-pin.pin-industry .pin-core::after{content:"⚙"}

.pin-tooltip{
  position:absolute;
  left:50%;
  bottom:60px;
  width:max-content;
  max-width:210px;
  transform:translate(-50%,8px) scale(.96);
  opacity:0;
  pointer-events:none;
  padding:8px 11px;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:12px;
  box-shadow:4px 4px 0 var(--yellow);
  font-size:11px;
  font-weight:900;
  line-height:1.2;
  transition:.2s ease;
}

.map-pin:hover,
.map-pin:focus-visible{
  z-index:20;
  animation-play-state:paused;
}
.map-pin:hover .pin-tooltip,
.map-pin:focus .pin-tooltip,
.map-pin:focus-visible .pin-tooltip{
  opacity:1;
  transform:translate(-50%,0) scale(1);
}

.taiwan-float-icon{
  position:absolute;
  z-index:4;
  object-fit:contain;
  filter:drop-shadow(0 8px 4px rgba(0,0,0,.12));
  pointer-events:none;
  animation:taiwanFloat 4.8s ease-in-out infinite;
}
.icon-temple{width:112px;left:4%;top:6%;animation-delay:-.7s}
.icon-taipei101{width:78px;right:8%;top:7%;animation-delay:-2s}
.icon-bubbletea{width:72px;right:7%;top:38%;animation-delay:-1.2s}
.icon-train{width:150px;left:2%;bottom:6%;animation-delay:-3s}
.icon-bear{width:110px;right:4%;bottom:7%;animation-delay:-2.4s}
.icon-food{width:104px;left:5%;top:43%;animation-delay:-1.8s}

.cute-map-note{
  position:absolute;
  left:50%;
  bottom:14px;
  z-index:8;
  transform:translateX(-50%);
  width:max-content;
  max-width:calc(100% - 28px);
  padding:8px 12px;
  background:rgba(255,255,255,.9);
  border:2px solid var(--ink);
  border-radius:999px;
  font-size:11px;
  font-weight:900;
  text-align:center;
}

@keyframes pinBounce{
  0%,100%{transform:translate(-50%,-100%) translateY(0) rotate(0)}
  50%{transform:translate(-50%,-100%) translateY(-8px) rotate(-2deg)}
}
@keyframes taiwanFloat{
  0%,100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-12px) rotate(3deg)}
}
@keyframes cloudDrift{
  from{transform:translateX(-9px)}
  to{transform:translateX(12px)}
}
@keyframes waveWiggle{
  0%,100%{transform:rotate(-7deg) translateX(0)}
  50%{transform:rotate(-4deg) translateX(12px)}
}

@media(max-width:900px){
  .cute-map-toolbar{
    align-items:flex-start;
    flex-direction:column;
  }
  .cute-map-legend{justify-content:flex-start}
  .cute-map-stage{min-height:720px}
  .taiwan-island-wrap{width:min(62%,420px)}
  .icon-temple{width:86px}
  .icon-taipei101{width:62px}
  .icon-train{width:120px}
  .icon-bear{width:90px}
  .icon-food{width:82px}
}

@media(max-width:620px){
  .cute-partner-map{
    padding:12px;
    border-radius:25px;
    box-shadow:6px 7px 0 var(--yellow);
  }
  .cute-map-toolbar{padding:4px 3px 14px}
  .cute-map-toolbar h4{font-size:clamp(30px,9.5vw,43px)}
  .cute-map-legend > span{font-size:10px;padding:7px 9px}
  .cute-map-stage{min-height:650px;border-radius:20px}
  .taiwan-island-wrap{width:72%;top:7%;height:86%}
  .map-pin{width:39px;height:46px}
  .pin-core{width:36px;height:36px}
  .map-pin .pin-core::after{font-size:14px}
  .pin-tooltip{max-width:150px;font-size:9px;bottom:52px}
  .icon-temple{width:68px;left:2%;top:4%}
  .icon-taipei101{width:52px;right:3%;top:6%}
  .icon-bubbletea{width:54px;right:2%;top:37%}
  .icon-train{width:94px;left:0;bottom:8%}
  .icon-bear{width:70px;right:0;bottom:8%}
  .icon-food{width:67px;left:1%;top:45%}
  .cute-map-note{font-size:9px;bottom:9px}
}

@media(prefers-reduced-motion:reduce){
  .map-pin,.taiwan-float-icon,.map-cloud,.map-wave{animation:none!important}
}


/* ============================================================
   V21 — Move 3+4 and 1–2 badges onto the RIGHT hero photo area
   Position: top-left of the hero collage, away from faces and
   away from the passport photo in the lower-right.
   ============================================================ */

.hero-collage{
  position:relative;
}

.hero-collage > .hero-badge-group{
  display:flex !important;
  position:absolute !important;
  left:clamp(-24px,-1.5vw,-8px) !important;
  top:clamp(14px,2vw,28px) !important;
  right:auto !important;
  bottom:auto !important;
  inset:auto !important;
  transform:none !important;
  z-index:12 !important;
  align-items:center;
  gap:10px;
  margin:0 !important;
  width:max-content;
  max-width:88%;
  pointer-events:none;
}

.hero-collage > .hero-badge-group .hero-badge{
  position:relative !important;
  inset:auto !important;
  width:clamp(104px,8.3vw,136px) !important;
  height:clamp(104px,8.3vw,136px) !important;
  flex:0 0 auto;
  box-shadow:7px 8px 0 rgba(0,0,0,.18) !important;
}

.hero-collage > .hero-badge-group .hero-badge-internship{
  width:clamp(112px,8.7vw,142px) !important;
  height:clamp(112px,8.7vw,142px) !important;
}

/* Neutralize V19 rule that hid badge groups inside the collage. */
.hero-collage > .hero-badge-group{
  visibility:visible !important;
  opacity:1 !important;
}

/* No badge group remains in the text column. */
.hero-copy > .hero-badge-group{
  display:none !important;
}

/* Keep text legible but compact. */
.hero-collage > .hero-badge-group .hero-badge span{
  line-height:.88 !important;
}

.hero-collage > .hero-badge-group .hero-badge small{
  max-width:88px;
  text-align:center;
  line-height:1.02 !important;
}

/* Tablet */
@media(max-width:980px){
  .hero-collage > .hero-badge-group{
    left:8px !important;
    top:10px !important;
    gap:8px;
    max-width:94%;
  }

  .hero-collage > .hero-badge-group .hero-badge{
    width:96px !important;
    height:96px !important;
  }

  .hero-collage > .hero-badge-group .hero-badge-internship{
    width:104px !important;
    height:104px !important;
  }
}

/* Mobile: still top-left of the photo, not under the buttons */
@media(max-width:620px){
  .hero-collage > .hero-badge-group{
    left:6px !important;
    top:7px !important;
    gap:6px;
    max-width:96%;
  }

  .hero-collage > .hero-badge-group .hero-badge{
    width:78px !important;
    height:78px !important;
    padding:8px !important;
    box-shadow:4px 5px 0 rgba(0,0,0,.16) !important;
  }

  .hero-collage > .hero-badge-group .hero-badge-internship{
    width:86px !important;
    height:86px !important;
  }

  .hero-collage > .hero-badge-group .hero-badge span{
    font-size:28px !important;
  }

  .hero-collage > .hero-badge-group .hero-badge-internship span{
    font-size:27px !important;
  }

  .hero-collage > .hero-badge-group .hero-badge small{
    font-size:7px !important;
    max-width:64px;
  }
}


/* ============================================================
   V22 — Premium Taiwan partner map
   Clean composition inspired by modern tourism maps.
   Existing partner lists below remain unchanged.
   ============================================================ */

.cute-partner-map{display:none!important}

.taiwan-partner-map{
  margin:clamp(28px,4vw,48px) 0 clamp(46px,6vw,72px);
  padding:clamp(18px,2.2vw,28px);
  background:#fff9e6;
  border:3px solid var(--ink);
  border-radius:34px;
  box-shadow:10px 10px 0 var(--yellow);
}

.taiwan-map-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:26px;
  padding:4px 6px 20px;
}

.taiwan-map-top h4{
  margin:5px 0 0;
  max-width:800px;
  font-family:var(--display);
  font-size:clamp(30px,4vw,58px);
  line-height:.98;
  letter-spacing:-.04em;
}

.taiwan-map-legend{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:9px;
}

.taiwan-map-legend>span{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  border:2px solid var(--ink);
  border-radius:999px;
  background:#fff;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

.legend-dot{
  width:16px;height:16px;border-radius:50%;border:2px solid var(--ink);display:block;
}
.hotel-dot{background:var(--yellow)}
.industry-dot{background:var(--orange)}

.taiwan-map-canvas{
  position:relative;
  min-height:clamp(660px,62vw,930px);
  overflow:hidden;
  border:3px solid var(--ink);
  border-radius:28px;
  background:
    radial-gradient(circle at 14% 20%,rgba(255,255,255,.92) 0 4%,transparent 4.4%),
    radial-gradient(circle at 84% 26%,rgba(255,255,255,.88) 0 3.5%,transparent 4%),
    linear-gradient(180deg,#cceef1 0%,#bce4e7 100%);
}

.taiwan-map-island{
  position:absolute;
  left:50%;
  top:4%;
  width:min(35%,390px);
  height:91%;
  transform:translateX(-50%);
  z-index:2;
  filter:drop-shadow(0 16px 0 rgba(22,22,22,.16));
}
.taiwan-map-island svg{width:100%;height:100%;display:block;overflow:visible}
.tw-shadow{fill:rgba(0,0,0,.12);transform:translate(9px,11px)}

.sea-lines{
  position:absolute;z-index:1;width:170px;height:55px;opacity:.42;
  background:
    radial-gradient(ellipse at center,transparent 48%,#fff 50%,#fff 54%,transparent 56%) 0 0/55px 18px repeat-x;
}
.sea-lines-a{left:5%;top:31%;transform:rotate(-5deg)}
.sea-lines-b{right:4%;bottom:27%;transform:rotate(4deg)}

.map-sticker{
  position:absolute;
  z-index:3;
  object-fit:contain;
  pointer-events:none;
  filter:drop-shadow(0 8px 5px rgba(0,0,0,.11));
  animation:mapFloat 5.4s ease-in-out infinite;
}
.sticker-temple{left:4%;top:5%;width:95px;animation-delay:-1s}
.sticker-bubbletea{right:5%;top:9%;width:64px;animation-delay:-2.4s}
.sticker-food{left:5%;bottom:7%;width:90px;animation-delay:-3.2s}
.sticker-train{right:3%;bottom:5%;width:125px;animation-delay:-1.8s}
.sticker-bear{right:5%;top:45%;width:82px;animation-delay:-.4s}

.region-card{
  position:absolute;
  z-index:7;
  width:min(28%,310px);
  padding:14px 16px 15px;
  background:rgba(255,255,255,.96);
  border:2px solid var(--ink);
  border-radius:18px;
  box-shadow:6px 6px 0 rgba(22,22,22,.12);
}
.region-card::after{
  content:"";
  position:absolute;
  width:64px;
  height:2px;
  background:var(--ink);
  opacity:.55;
}
.region-kicker{
  display:block;
  margin-bottom:4px;
  color:var(--orange);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
}
.region-card>strong{
  font-family:var(--display);
  font-size:24px;
  line-height:1;
}
.region-card>strong small{
  font-family:var(--body);
  font-size:11px;
  font-weight:900;
}
.region-tags{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin-top:10px;
}
.region-tags span{
  padding:5px 7px;
  border:1.6px solid var(--ink);
  border-radius:999px;
  background:#fff;
  font-size:9px;
  font-weight:850;
  line-height:1.1;
}
.region-tags .tag-hotel{box-shadow:inset 4px 0 0 var(--yellow)}
.region-tags .tag-industry{box-shadow:inset 4px 0 0 var(--orange)}

.region-north{right:5%;top:13%}
.region-north::after{left:-64px;top:50%}
.region-keelung{right:6%;top:34%;width:min(24%,260px)}
.region-keelung::after{left:-64px;top:50%}
.region-tainan{left:5%;top:48%}
.region-tainan::after{right:-64px;top:50%}
.region-kaohsiung{left:6%;top:66%;width:min(24%,270px)}
.region-kaohsiung::after{right:-64px;top:50%}
.region-pingtung{right:6%;bottom:8%}
.region-pingtung::after{left:-64px;top:40%}

.tw-pin{
  position:absolute;
  z-index:9;
  width:40px;height:48px;
  padding:0;border:0;background:transparent;
  transform:translate(-50%,-100%);
  cursor:pointer;
  animation:pinPulse 2.8s ease-in-out infinite;
}
.tw-pin>span{
  width:38px;height:38px;
  display:grid;place-items:center;
  border:3px solid var(--ink);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  box-shadow:4px 5px 0 rgba(0,0,0,.16);
  font-size:0;
}
.tw-pin>span::after{transform:rotate(45deg);font-size:14px}
.pin-hotel>span{background:var(--yellow)}
.pin-hotel>span::after{content:"★"}
.pin-industry>span{background:var(--orange)}
.pin-industry>span::after{content:"⚙"}

.tw-pin:hover,.tw-pin:focus-visible{z-index:15;animation-play-state:paused;transform:translate(-50%,-100%) scale(1.14)}
.tw-pin:focus-visible{outline:3px solid #fff;outline-offset:3px}

/* Approximate visual positions on the decorative Taiwan illustration */
.tw-pin-tamsui{left:49.5%;top:10%}
.tw-pin-beitou{left:51.5%;top:12.4%}
.tw-pin-xinyi{left:54%;top:14.5%}
.tw-pin-xizhi{left:55.7%;top:13.7%}
.tw-pin-qidu{left:56.7%;top:12.2%}

.tw-pin-yongkang{left:44.3%;top:56.5%}
.tw-pin-east-tainan{left:45.4%;top:58%}
.tw-pin-tehseng{left:43.2%;top:55.3%}
.tw-pin-kaohsiung{left:43%;top:68.5%}
.tw-pin-hresort{left:49%;top:83.5%}
.tw-pin-kenting1{left:49.5%;top:91.5%}
.tw-pin-kenting2{left:52%;top:91.5%}
.tw-pin-cosmos{left:46%;top:74%}

.map-city-label{
  position:absolute;
  z-index:5;
  padding:5px 8px;
  background:rgba(255,255,255,.88);
  border:1.6px solid var(--ink);
  border-radius:999px;
  font-size:9px;
  font-weight:900;
}
.city-taipei{left:55%;top:17%}
.city-tainan{left:40%;top:59%}
.city-kaohsiung{left:38%;top:69%}
.city-pingtung{left:50%;top:79%}

@keyframes pinPulse{
  0%,100%{transform:translate(-50%,-100%) translateY(0)}
  50%{transform:translate(-50%,-100%) translateY(-7px)}
}
@keyframes mapFloat{
  0%,100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-9px) rotate(2deg)}
}

@media(max-width:1000px){
  .taiwan-map-top{align-items:flex-start;flex-direction:column}
  .taiwan-map-legend{justify-content:flex-start}
  .taiwan-map-canvas{min-height:820px}
  .taiwan-map-island{width:min(44%,390px)}
  .region-card{width:min(31%,280px)}
  .region-north{right:3%}
  .region-keelung{right:3%}
  .region-tainan{left:3%}
  .region-kaohsiung{left:3%}
  .region-pingtung{right:3%}
}

@media(max-width:700px){
  .taiwan-partner-map{padding:12px;border-radius:25px;box-shadow:6px 7px 0 var(--yellow)}
  .taiwan-map-top{padding:2px 3px 14px}
  .taiwan-map-top h4{font-size:clamp(30px,9.5vw,44px)}
  .taiwan-map-canvas{min-height:760px;border-radius:20px}
  .taiwan-map-island{width:58%;top:5%;height:88%}
  .region-card{width:42%;padding:10px 11px;border-radius:14px}
  .region-card>strong{font-size:18px}
  .region-tags{display:none}
  .region-card::after{width:28px}
  .region-north::after,.region-keelung::after,.region-pingtung::after{left:-28px}
  .region-tainan::after,.region-kaohsiung::after{right:-28px}
  .region-north{right:2%;top:9%}
  .region-keelung{right:2%;top:27%}
  .region-tainan{left:2%;top:45%}
  .region-kaohsiung{left:2%;top:61%}
  .region-pingtung{right:2%;bottom:5%}
  .tw-pin{width:33px;height:40px}
  .tw-pin>span{width:31px;height:31px}
  .tw-pin>span::after{font-size:11px}
  .sticker-temple{width:66px;left:1%;top:2%}
  .sticker-bubbletea{width:46px;right:1%;top:3%}
  .sticker-food{width:62px;left:1%;bottom:2%}
  .sticker-train{width:86px;right:0;bottom:2%}
  .sticker-bear{width:58px;right:1%;top:42%}
}

@media(prefers-reduced-motion:reduce){
  .map-sticker,.tw-pin{animation:none!important}
}


/* ============================================================
   V23 — Fix 1–2 internship badge text fitting
   ============================================================ */

/* Force "1–2" to stay on a single line and remain inside the circle. */
.hero-collage > .hero-badge-group .hero-badge-internship{
  box-sizing:border-box !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
  text-align:center !important;
}

.hero-collage > .hero-badge-group .hero-badge-internship > span{
  display:block !important;
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  font-size:clamp(38px,3.7vw,52px) !important;
  line-height:.82 !important;
  letter-spacing:-.08em !important;
  transform:none !important;
}

.hero-collage > .hero-badge-group .hero-badge-internship > small{
  display:block !important;
  width:78% !important;
  max-width:90px !important;
  margin:9px auto 0 !important;
  padding:0 !important;
  font-size:clamp(7px,.62vw,10px) !important;
  line-height:1.02 !important;
  letter-spacing:.015em !important;
  white-space:normal !important;
  overflow-wrap:normal !important;
}

/* Tablet */
@media(max-width:980px){
  .hero-collage > .hero-badge-group .hero-badge-internship > span{
    font-size:38px !important;
  }
  .hero-collage > .hero-badge-group .hero-badge-internship > small{
    width:76% !important;
    max-width:74px !important;
    margin-top:7px !important;
    font-size:7.5px !important;
  }
}

/* Mobile */
@media(max-width:620px){
  .hero-collage > .hero-badge-group .hero-badge-internship > span{
    font-size:31px !important;
    letter-spacing:-.09em !important;
  }
  .hero-collage > .hero-badge-group .hero-badge-internship > small{
    width:78% !important;
    max-width:65px !important;
    margin-top:6px !important;
    font-size:6.5px !important;
  }
}


/* ============================================================
   V25 — ORIGINAL TAIWAN MAP
   Entire island illustration is drawn in inline SVG by this build.
   No borrowed/cropped map artwork is used.
   ============================================================ */

.taiwan-partner-map,
.cute-partner-map,
.travel-partner-map{
  display:none !important;
}

.original-taiwan-map{
  margin:clamp(30px,4vw,50px) 0 clamp(46px,5.5vw,72px);
  padding:clamp(18px,2.2vw,28px);
  background:#fff9e8;
  border:3px solid var(--ink);
  border-radius:34px;
  box-shadow:10px 10px 0 var(--yellow);
}

.original-map-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:26px;
  padding:5px 7px 20px;
}

.original-map-header h4{
  margin:5px 0 0;
  max-width:780px;
  font-family:var(--display);
  font-size:clamp(30px,4vw,58px);
  line-height:.98;
  letter-spacing:-.04em;
}

.original-map-legend{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:9px;
}

.original-map-legend>span{
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 12px;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}

.original-legend-dot{
  width:16px;
  height:16px;
  display:block;
  border:2px solid var(--ink);
  border-radius:50%;
}
.original-legend-dot.hotel-dot{background:var(--yellow)}
.original-legend-dot.industry-dot{background:var(--orange)}

.original-map-scene{
  position:relative;
  min-height:clamp(730px,65vw,980px);
  overflow:hidden;
  border:3px solid var(--ink);
  border-radius:28px;
  background:
    radial-gradient(circle at 14% 17%,rgba(255,255,255,.92) 0 3.8%,transparent 4.2%),
    radial-gradient(circle at 86% 20%,rgba(255,255,255,.88) 0 3.4%,transparent 3.8%),
    linear-gradient(180deg,#bfe8ec 0%,#a9dee4 100%);
}

.original-map-art{
  position:absolute;
  left:50%;
  top:4%;
  z-index:4;
  width:min(60%,620px);
  height:91%;
  transform:translateX(-50%);
}

.original-map-art>svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}

.taiwan-land{
  transform-origin:center;
}

.landmark,
.map-train{
  transform-box:fill-box;
  transform-origin:center;
}
.map-train{
  animation:tinyTrain 4.6s ease-in-out infinite;
}
.landmark-101{
  animation:landmarkBob 5.6s ease-in-out infinite;
}
.landmark-temple,
.landmark-south{
  animation:landmarkBob 6.2s ease-in-out infinite reverse;
}

.map-cloud{
  position:absolute;
  z-index:2;
  width:100px;
  height:30px;
  background:rgba(255,255,255,.82);
  border-radius:999px;
  animation:cloudDriftV25 7s ease-in-out infinite alternate;
}
.map-cloud::before,
.map-cloud::after{
  content:"";
  position:absolute;
  border-radius:50%;
  background:inherit;
}
.map-cloud::before{width:40px;height:40px;left:18px;top:-18px}
.map-cloud::after{width:54px;height:54px;right:13px;top:-26px}
.cloud-one{left:7%;top:17%}
.cloud-two{right:7%;top:55%;animation-delay:-3s}

.map-waves{
  position:absolute;
  z-index:2;
  color:rgba(255,255,255,.85);
  font-size:35px;
  font-weight:900;
  letter-spacing:-4px;
  animation:waveShiftV25 4.8s ease-in-out infinite;
}
.waves-one{left:7%;top:59%}
.waves-two{right:8%;top:31%;animation-delay:-2s}

.original-pin{
  position:absolute;
  left:var(--x);
  top:var(--y);
  z-index:12;
  width:40px;
  height:48px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  transform:translate(-50%,-100%);
  animation:pinBounceV25 2.9s ease-in-out infinite;
}

.original-pin>span{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:3px solid var(--ink);
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  box-shadow:4px 5px 0 rgba(0,0,0,.16);
  font-size:0;
}

.original-pin>span::after{
  transform:rotate(45deg);
  font-size:14px;
}
.original-pin.pin-hotel>span{background:var(--yellow)}
.original-pin.pin-hotel>span::after{content:"★"}
.original-pin.pin-industry>span{background:var(--orange)}
.original-pin.pin-industry>span::after{content:"⚙"}

.original-pin>b{
  position:absolute;
  left:50%;
  bottom:55px;
  width:max-content;
  max-width:220px;
  opacity:0;
  transform:translate(-50%,8px) scale(.96);
  padding:7px 10px;
  background:#fff;
  border:2px solid var(--ink);
  border-radius:11px;
  box-shadow:4px 4px 0 var(--yellow);
  font-size:10px;
  line-height:1.16;
  pointer-events:none;
  transition:.18s ease;
}

.original-pin:hover,
.original-pin:focus-visible{
  z-index:25;
  animation-play-state:paused;
}
.original-pin:hover>b,
.original-pin:focus-visible>b{
  opacity:1;
  transform:translate(-50%,0) scale(1);
}

.original-city{
  position:absolute;
  z-index:9;
  padding:5px 8px;
  background:rgba(255,255,255,.92);
  border:1.7px solid var(--ink);
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  box-shadow:2px 2px 0 rgba(0,0,0,.08);
}
.original-city.city-taipei{left:72%;top:16%}
.original-city.city-keelung{left:75%;top:11%}
.original-city.city-tainan{left:23%;top:58%}
.original-city.city-kaohsiung{left:18%;top:69%}
.original-city.city-pingtung{left:57%;top:79%}

.original-map-help{
  position:absolute;
  left:50%;
  bottom:14px;
  z-index:15;
  transform:translateX(-50%);
  max-width:calc(100% - 28px);
  padding:8px 12px;
  background:rgba(255,255,255,.94);
  border:2px solid var(--ink);
  border-radius:999px;
  font-size:10px;
  font-weight:900;
  text-align:center;
}

@keyframes pinBounceV25{
  0%,100%{transform:translate(-50%,-100%) translateY(0)}
  50%{transform:translate(-50%,-100%) translateY(-6px)}
}
@keyframes cloudDriftV25{
  from{transform:translateX(-10px)}
  to{transform:translateX(12px)}
}
@keyframes waveShiftV25{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(10px)}
}
@keyframes tinyTrain{
  0%,100%{transform:translate(218px,500px)}
  50%{transform:translate(225px,493px)}
}
@keyframes landmarkBob{
  0%,100%{translate:0 0}
  50%{translate:0 -4px}
}

@media(max-width:1000px){
  .original-map-header{
    flex-direction:column;
    align-items:flex-start;
  }
  .original-map-legend{justify-content:flex-start}
  .original-map-scene{min-height:830px}
  .original-map-art{width:min(72%,610px)}
}

@media(max-width:680px){
  .original-taiwan-map{
    padding:12px;
    border-radius:25px;
    box-shadow:6px 7px 0 var(--yellow);
  }
  .original-map-header{
    padding:3px 3px 14px;
  }
  .original-map-header h4{
    font-size:clamp(30px,9.5vw,44px);
  }
  .original-map-legend>span{
    padding:7px 9px;
    font-size:10px;
  }
  .original-map-scene{
    min-height:730px;
    border-radius:20px;
  }
  .original-map-art{
    width:88%;
    top:5%;
    height:87%;
  }
  .original-pin{
    width:33px;
    height:40px;
  }
  .original-pin>span{
    width:31px;
    height:31px;
  }
  .original-pin>span::after{font-size:11px}
  .original-pin>b{
    max-width:150px;
    bottom:46px;
    font-size:8px;
  }
  .original-city{
    font-size:7px;
    padding:3px 6px;
  }
  .original-map-help{
    bottom:8px;
    font-size:8px;
  }
  .map-cloud{opacity:.7;transform:scale(.75)}
  .map-waves{font-size:25px}
}

@media(prefers-reduced-motion:reduce){
  .original-pin,
  .map-cloud,
  .map-waves,
  .map-train,
  .landmark{
    animation:none !important;
  }
}

/* ================================================================
   V26 — Final Taiwan partner map integration
   Uses the approved full infographic image. It is always shown in its
   native aspect ratio: no cover, no fixed-height crop, no clipping.
   ================================================================ */

.partner-showcase{
  position:relative;
}

/* The approved infographic already contains its own heading. Keep the
   HTML section heading accessible without showing a duplicate title. */
.partner-showcase > .partner-showcase-head{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.taiwan-map-final{
  width:100%;
  margin:0 auto clamp(28px,4vw,52px);
  position:relative;
  isolation:isolate;
}

.taiwan-map-final-stage{
  position:relative;
  width:100%;
  max-width:1536px;
  margin-inline:auto;
  overflow:visible;
  opacity:0;
  transform:translateY(24px) scale(.992);
  filter:saturate(.96);
  transition:opacity .8s cubic-bezier(.2,.75,.2,1),
             transform .9s cubic-bezier(.2,.75,.2,1),
             filter .9s ease;
  will-change:opacity,transform;
}

.taiwan-map-final-stage.map-in-view,
.taiwan-map-final.is-visible .taiwan-map-final-stage{
  opacity:1;
  transform:none;
  filter:none;
}

.taiwan-map-final-image{
  display:block;
  width:100%;
  max-width:100%;
  height:auto !important;
  min-height:0 !important;
  object-fit:contain !important;
  object-position:center center !important;
  border:0;
  margin:0;
  user-select:none;
  -webkit-user-drag:none;
}

.taiwan-map-pulses{
  position:absolute;
  inset:0;
  pointer-events:none;
}

.taiwan-map-pulse{
  position:absolute;
  left:var(--x);
  top:var(--y);
  width:clamp(16px,1.7vw,28px);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border:2px solid rgba(255,255,255,.94);
  border-radius:50%;
  box-shadow:0 0 0 2px rgba(255,181,0,.72), 0 2px 8px rgba(0,0,0,.18);
  opacity:0;
}

.map-in-view .taiwan-map-pulse{
  animation:hanMapPulse 2.8s ease-out infinite;
  animation-delay:var(--d);
}

.taiwan-map-final-stage::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(112deg,transparent 18%,rgba(255,255,255,.18) 42%,transparent 58%);
  transform:translateX(-120%);
  opacity:.8;
}

.taiwan-map-final-stage.map-in-view::after{
  animation:hanMapSheen 1.2s .35s ease-out 1 both;
}

.image-load-fallback{
  object-fit:contain !important;
  background:#f4f4f4;
}

@keyframes hanMapPulse{
  0%,22%{opacity:0;transform:translate(-50%,-50%) scale(.55)}
  34%{opacity:.95}
  72%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.8)}
}

@keyframes hanMapSheen{
  from{transform:translateX(-120%)}
  to{transform:translateX(120%)}
}

@media (max-width:900px){
  .taiwan-map-final{
    width:calc(100% + 8px);
    margin-left:-4px;
    margin-right:-4px;
  }
  .taiwan-map-final-stage{
    width:100%;
  }
  .taiwan-map-pulse{
    width:clamp(11px,2.25vw,18px);
    border-width:1px;
  }
}

@media (max-width:560px){
  .taiwan-map-final{
    width:calc(100% + 16px);
    margin-left:-8px;
    margin-right:-8px;
    margin-bottom:26px;
  }
  .taiwan-map-final-image{
    width:100%;
    height:auto !important;
  }
  .taiwan-map-pulses{
    display:none;
  }
}

@media (prefers-reduced-motion:reduce){
  .taiwan-map-final-stage{
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
    transition:none !important;
  }
  .taiwan-map-pulse,
  .taiwan-map-final-stage::after{
    animation:none !important;
  }
}

/* V27 — functional interactive Taiwan map hotspots */
.taiwan-map-hotspots{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
}

.taiwan-map-hotspot{
  --ring:rgba(255,190,0,.95);
  position:absolute;
  left:var(--x);
  top:var(--y);
  width:clamp(38px,3.8vw,58px);
  aspect-ratio:1;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  transform:translate(-50%,-50%);
  cursor:pointer;
  pointer-events:auto;
  z-index:5;
  outline:none;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}

.taiwan-map-hotspot.industry{--ring:rgba(247,85,35,.96)}
.taiwan-map-hotspot.neutral{--ring:rgba(255,190,0,.82)}

.taiwan-map-hotspot::before,
.taiwan-map-hotspot::after{
  content:"";
  position:absolute;
  inset:14%;
  border-radius:50%;
  pointer-events:none;
}

.taiwan-map-hotspot::before{
  border:3px solid var(--ring);
  box-shadow:0 0 0 3px rgba(255,255,255,.88),0 5px 18px rgba(0,0,0,.22);
  opacity:0;
  transform:scale(.7);
  transition:opacity .2s ease,transform .2s ease;
}

.taiwan-map-hotspot::after{
  border:2px solid var(--ring);
  opacity:0;
}

.map-in-view .taiwan-map-hotspot::after{
  animation:hanMapInteractivePulse 2.6s cubic-bezier(.2,.7,.25,1) infinite;
  animation-delay:var(--d);
}

.taiwan-map-hotspot:hover::before,
.taiwan-map-hotspot:focus-visible::before,
.taiwan-map-hotspot.is-active::before{
  opacity:1;
  transform:scale(1);
}

.taiwan-map-hotspot:hover,
.taiwan-map-hotspot:focus-visible,
.taiwan-map-hotspot.is-active{
  animation:hanMapPinNudge .55s ease both;
}

.taiwan-map-hotspot:focus-visible{
  box-shadow:0 0 0 4px rgba(255,255,255,.98),0 0 0 7px var(--ring);
}

@keyframes hanMapInteractivePulse{
  0%,22%{opacity:0;transform:scale(.55)}
  34%{opacity:.9}
  76%,100%{opacity:0;transform:scale(1.75)}
}

@keyframes hanMapPinNudge{
  0%{transform:translate(-50%,-50%) scale(1)}
  45%{transform:translate(-50%,-57%) scale(1.06)}
  100%{transform:translate(-50%,-50%) scale(1)}
}

.taiwan-map-tooltip{
  --tx:50%;
  --ty:50%;
  position:absolute;
  left:var(--tx);
  top:var(--ty);
  z-index:10;
  width:min(285px,calc(100% - 28px));
  padding:14px 16px 13px;
  border:1px solid rgba(20,35,50,.16);
  border-radius:16px;
  background:rgba(255,255,255,.97);
  color:#152331;
  box-shadow:0 16px 36px rgba(16,40,60,.22);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(22px,-50%) scale(.96);
  transform-origin:left center;
  transition:opacity .18s ease,transform .2s ease,visibility .18s;
}

.taiwan-map-tooltip.tooltip-left{
  transform:translate(calc(-100% - 22px),-50%) scale(.96);
  transform-origin:right center;
}

.taiwan-map-tooltip.tooltip-up{
  margin-top:-12px;
}

.taiwan-map-tooltip.is-open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(22px,-50%) scale(1);
}

.taiwan-map-tooltip.tooltip-left.is-open{
  transform:translate(calc(-100% - 22px),-50%) scale(1);
}

.taiwan-map-tooltip::before{
  content:"";
  position:absolute;
  left:-7px;
  top:50%;
  width:13px;
  height:13px;
  border-left:1px solid rgba(20,35,50,.16);
  border-bottom:1px solid rgba(20,35,50,.16);
  background:rgba(255,255,255,.97);
  transform:translateY(-50%) rotate(45deg);
}

.taiwan-map-tooltip.tooltip-left::before{
  left:auto;
  right:-7px;
  border-left:0;
  border-bottom:0;
  border-right:1px solid rgba(20,35,50,.16);
  border-top:1px solid rgba(20,35,50,.16);
}

.taiwan-map-tooltip-kicker{
  margin-bottom:2px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#f05a2a;
}

.taiwan-map-tooltip-title{
  display:block;
  margin-bottom:7px;
  font-size:16px;
  line-height:1.15;
}

.taiwan-map-tooltip-list{
  margin:0;
  padding:0;
  list-style:none;
  font-size:12px;
  line-height:1.35;
}

.taiwan-map-tooltip-list li{
  position:relative;
  padding:4px 0 4px 15px;
}

.taiwan-map-tooltip-list li::before{
  content:"";
  position:absolute;
  left:1px;
  top:.76em;
  width:6px;
  height:6px;
  border-radius:50%;
  background:#ffc400;
  box-shadow:0 0 0 1px rgba(0,0,0,.12);
}

.taiwan-map-tooltip-hint{
  display:block;
  margin-top:8px;
  padding-top:7px;
  border-top:1px solid rgba(20,35,50,.09);
  font-size:9px;
  color:#65727e;
}

/* Retire the old decorative-only pulse overlay if cached markup is ever present. */
.taiwan-map-pulses{display:none!important}

@media (max-width:700px){
  .taiwan-map-hotspot{
    width:clamp(34px,7.5vw,48px);
  }
  .taiwan-map-tooltip{
    position:absolute;
    left:50%!important;
    top:auto!important;
    bottom:18px;
    width:min(310px,calc(100% - 24px));
    margin:0;
    transform:translateX(-50%) translateY(8px) scale(.98)!important;
    transform-origin:center bottom!important;
  }
  .taiwan-map-tooltip.is-open{
    transform:translateX(-50%) translateY(0) scale(1)!important;
  }
  .taiwan-map-tooltip::before{display:none}
  .taiwan-map-tooltip-hint{font-size:10px}
}

@media (prefers-reduced-motion:reduce){
  .taiwan-map-hotspot,
  .taiwan-map-hotspot::after{
    animation:none!important;
  }
  .taiwan-map-tooltip{
    transition:none!important;
  }
}

/* ================================================================
   V28 — CLEAN MAP + REAL HTML/CSS PINS
   Background art contains no city names, no pins, and no side cards.
   City labels, pins, pulse animation, and partner tooltips are live DOM.
   ================================================================ */

.partner-showcase > .partner-showcase-head{
  position:relative !important;
  width:auto !important;
  height:auto !important;
  padding:0 !important;
  margin:0 0 clamp(16px,2.2vw,28px) !important;
  overflow:visible !important;
  clip:auto !important;
  white-space:normal !important;
  border:0 !important;
}

.partner-showcase > .partner-showcase-head .eyebrow{
  margin-bottom:6px;
  color:#f05a2a;
}

.partner-showcase > .partner-showcase-head h3{
  max-width:920px;
  margin:0;
  font-size:clamp(32px,5vw,68px);
  line-height:.98;
  letter-spacing:-.035em;
}

.taiwan-map-final{
  position:relative;
  width:100%;
  max-width:1536px;
  margin:0 auto clamp(34px,4.5vw,58px);
}

.taiwan-map-legend{
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:9px;
  margin:0 0 12px;
}

.taiwan-map-legend-item{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:7px 13px;
  border:1px solid rgba(21,35,49,.26);
  border-radius:999px;
  background:#fff;
  color:#17232d;
  font-size:12px;
  font-weight:800;
  box-shadow:0 5px 14px rgba(23,35,45,.06);
}

.legend-pin{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  background:#ffc400;
  color:#17232d;
  border:2px solid #fff;
  box-shadow:0 0 0 1px rgba(20,35,50,.16);
  font-size:11px;
  line-height:1;
}
.taiwan-map-legend-item.industry .legend-pin{background:#f45a2b;color:#fff}
.legend-pin::first-letter{transform:rotate(45deg)}

.taiwan-map-final-stage{
  overflow:hidden;
  border-radius:clamp(18px,2.1vw,34px);
  background:#75d5f3;
  box-shadow:0 18px 44px rgba(24,74,101,.13);
}

.taiwan-map-final-image{
  opacity:0;
  transform:scale(.975);
  transform-origin:center center;
  filter:saturate(.92) blur(1.5px);
}

.taiwan-map-final-stage.map-in-view .taiwan-map-final-image{
  animation:hanMapImageReveal 1.05s cubic-bezier(.18,.78,.22,1) both;
}

@keyframes hanMapImageReveal{
  0%{opacity:0;transform:scale(.965);filter:saturate(.88) blur(3px)}
  55%{opacity:1}
  100%{opacity:1;transform:scale(1);filter:saturate(1) blur(0)}
}

/* Interactive pins are fully separate from the artwork. */
.taiwan-map-hotspots{
  position:absolute;
  inset:0;
  z-index:6;
  pointer-events:none;
}

.taiwan-map-hotspot{
  --pin:#ffc400;
  --ink:#17232d;
  position:absolute;
  left:var(--x);
  top:var(--y);
  width:clamp(42px,4.2vw,66px);
  height:clamp(42px,4.2vw,66px);
  margin:0;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  cursor:pointer;
  pointer-events:auto;
  z-index:7;
  outline:none;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  opacity:0;
  transform:translate(-50%,-72%) scale(.72);
}
.taiwan-map-hotspot.industry{--pin:#f45a2b;--ink:#fff}
.taiwan-map-hotspot.neutral{--pin:#d9dde1;--ink:#4c5964}

.map-in-view .taiwan-map-hotspot{
  animation:hanMapPinDrop .68s cubic-bezier(.18,.86,.24,1.18) forwards;
  animation-delay:var(--d);
}

@keyframes hanMapPinDrop{
  0%{opacity:0;transform:translate(-50%,-118%) scale(.55)}
  65%{opacity:1;transform:translate(-50%,-42%) scale(1.07)}
  100%{opacity:1;transform:translate(-50%,-50%) scale(1)}
}

.map-marker{
  position:absolute;
  left:50%;
  top:50%;
  width:clamp(24px,2.55vw,40px);
  height:clamp(24px,2.55vw,40px);
  display:grid;
  place-items:center;
  border-radius:50% 50% 50% 0;
  background:var(--pin);
  border:clamp(2px,.22vw,4px) solid rgba(255,255,255,.98);
  box-shadow:0 0 0 1px rgba(28,46,58,.28),0 7px 15px rgba(14,44,62,.28);
  transform:translate(-50%,-62%) rotate(-45deg);
  transform-origin:center;
  transition:filter .2s ease,box-shadow .2s ease;
}

.map-marker-icon{
  display:block;
  color:var(--ink);
  font-size:clamp(10px,1.15vw,18px);
  font-weight:900;
  line-height:1;
  transform:rotate(45deg);
}

.taiwan-map-hotspot::before{display:none!important}
.taiwan-map-hotspot::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:clamp(24px,2.55vw,40px);
  height:clamp(24px,2.55vw,40px);
  border:2px solid var(--pin);
  border-radius:50%;
  opacity:0;
  transform:translate(-50%,-58%) scale(.7);
  pointer-events:none;
}

.map-in-view .taiwan-map-hotspot::after{
  animation:hanMapLivePulse 2.7s cubic-bezier(.15,.72,.25,1) infinite;
  animation-delay:calc(var(--d) + .75s);
}

@keyframes hanMapLivePulse{
  0%,24%{opacity:0;transform:translate(-50%,-58%) scale(.55)}
  38%{opacity:.78}
  78%,100%{opacity:0;transform:translate(-50%,-58%) scale(1.85)}
}

.map-city-label{
  position:absolute;
  left:calc(50% + 24px);
  top:50%;
  z-index:8;
  display:block;
  min-width:max-content;
  max-width:190px;
  padding:5px 9px 6px;
  border:2px solid rgba(255,255,255,.94);
  border-radius:10px;
  background:rgba(255,255,255,.88);
  color:#113f69;
  box-shadow:0 4px 10px rgba(11,55,82,.16);
  font-size:clamp(9px,1vw,14px);
  font-weight:900;
  line-height:1;
  letter-spacing:-.015em;
  white-space:nowrap;
  opacity:0;
  transform:translateY(-50%) translateX(-8px);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  pointer-events:none;
}

.map-in-view .map-city-label{
  animation:hanMapCityReveal .5s ease-out forwards;
  animation-delay:calc(var(--d) + .38s);
}

@keyframes hanMapCityReveal{
  from{opacity:0;transform:translateY(-50%) translateX(-9px)}
  to{opacity:1;transform:translateY(-50%) translateX(0)}
}

.taiwan-map-hotspot.label-left .map-city-label{
  left:auto;
  right:calc(50% + 24px);
  transform:translateY(-50%) translateX(8px);
}
.map-in-view .taiwan-map-hotspot.label-left .map-city-label{
  animation-name:hanMapCityRevealLeft;
}
@keyframes hanMapCityRevealLeft{
  from{opacity:0;transform:translateY(-50%) translateX(9px)}
  to{opacity:1;transform:translateY(-50%) translateX(0)}
}

.taiwan-map-hotspot.label-up .map-city-label{top:22%}
.taiwan-map-hotspot.label-down .map-city-label{top:78%}

.taiwan-map-hotspot:hover .map-marker,
.taiwan-map-hotspot:focus-visible .map-marker,
.taiwan-map-hotspot.is-active .map-marker{
  filter:brightness(1.04) saturate(1.12);
  box-shadow:0 0 0 4px rgba(255,255,255,.78),0 10px 22px rgba(14,44,62,.30);
}

.taiwan-map-hotspot:hover,
.taiwan-map-hotspot:focus-visible,
.taiwan-map-hotspot.is-active{
  animation:hanMapPinHover .42s ease both;
}
@keyframes hanMapPinHover{
  0%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  50%{opacity:1;transform:translate(-50%,-59%) scale(1.06)}
  100%{opacity:1;transform:translate(-50%,-50%) scale(1)}
}

.taiwan-map-hotspot:focus-visible{
  box-shadow:0 0 0 4px rgba(255,255,255,.95),0 0 0 7px var(--pin);
}

.taiwan-map-help{
  width:max-content;
  max-width:calc(100% - 20px);
  margin:12px auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 14px;
  border:1px solid rgba(21,35,49,.19);
  border-radius:999px;
  background:#fff;
  color:#33434f;
  box-shadow:0 6px 18px rgba(23,35,45,.08);
  font-size:11px;
  font-weight:700;
  text-align:center;
}
.taiwan-map-help-icon{font-size:16px;color:#f05a2a}

@media (max-width:700px){
  .partner-showcase > .partner-showcase-head h3{font-size:clamp(30px,10vw,48px)}
  .taiwan-map-legend{justify-content:flex-start;gap:6px}
  .taiwan-map-legend-item{min-height:34px;padding:6px 10px;font-size:10px}
  .taiwan-map-hotspot{width:42px;height:42px}
  .map-marker{width:23px;height:23px;border-width:2px}
  .map-marker-icon{font-size:9px}
  .map-city-label{display:none}
  .taiwan-map-help{font-size:10px;padding:7px 11px}
}

@media (prefers-reduced-motion:reduce){
  .taiwan-map-final-image,
  .taiwan-map-hotspot,
  .map-city-label{
    opacity:1!important;
    animation:none!important;
    transition:none!important;
    filter:none!important;
  }
  .taiwan-map-final-image{transform:none!important}
  .taiwan-map-hotspot{transform:translate(-50%,-50%) scale(1)!important}
  .taiwan-map-hotspot::after{animation:none!important}
}


/* V29 — compact world-language selector */
.language-switcher-v29{display:inline-flex!important;align-items:center;gap:.42rem;padding:.3rem .4rem .3rem .55rem;border:1px solid rgba(20,20,20,.16);border-radius:999px;background:rgba(255,255,255,.82);backdrop-filter:blur(8px);max-width:210px}
.language-switcher-v29 .language-globe{font-size:1rem;line-height:1;flex:0 0 auto}
.language-switcher-v29 .language-select{appearance:auto;min-width:0;max-width:170px;border:0!important;outline:0;background:transparent;color:inherit;font:inherit;font-size:.82rem;font-weight:800;line-height:1.2;padding:.25rem .2rem;cursor:pointer}
.language-switcher-v29 .language-select:focus-visible{outline:2px solid currentColor!important;outline-offset:3px;border-radius:8px}
html[data-language="ja"] body,html[data-language="ko"] body,html[data-language="tw"] body,html[data-language="cn"] body{font-family:"DM Sans","Noto Sans CJK JP","Yu Gothic","Meiryo","PingFang TC","PingFang SC","Microsoft JhengHei","Microsoft YaHei","Malgun Gothic",Arial,sans-serif}
html[data-language="ar"] body{font-family:"DM Sans","Noto Sans Arabic","Segoe UI",Tahoma,Arial,sans-serif}
html[dir="rtl"] .taiwan-map-final-stage,html[dir="rtl"] .taiwan-map-hotspots,html[dir="rtl"] .taiwan-map-tooltip{direction:ltr}
html[dir="rtl"] .taiwan-map-tooltip{ text-align:right }
html[dir="rtl"] .taiwan-map-tooltip-list{direction:rtl}
@media (max-width:980px){.language-switcher-v29{max-width:100%;width:100%;justify-content:center}.language-switcher-v29 .language-select{max-width:none;width:100%}}


/* ================================================================
   V30 — CATEGORY-SAFE PARTNER MAP + TRUE FLUID TYPOGRAPHY
   1) Hotel pins contain hotel/resort partners only.
   2) Industry pins contain industry/manufacturing partners only.
   3) Key headings scale to their actual text container, not only viewport.
   ================================================================ */

/* Keep legend symbols upright and immediately recognisable. */
.taiwan-map-legend-item .legend-pin{
  border-radius:50%;
  transform:none;
  font-family:var(--display);
  font-size:11px;
}
.taiwan-map-legend-item.industry .legend-pin{font-size:12px}

/* Tooltip accent follows the category of the active pin. */
.taiwan-map-tooltip.category-industry .taiwan-map-tooltip-list li::before{background:#f45a2b}
.taiwan-map-tooltip.category-industry .taiwan-map-tooltip-kicker{color:#f05a2a}
.taiwan-map-tooltip.category-hotel .taiwan-map-tooltip-list li::before{background:#ffc400}
.taiwan-map-tooltip.category-hotel .taiwan-map-tooltip-kicker{color:#b97a00}

/* The collaboration layout starts stacking earlier, before the left title column becomes cramped. */
@media (max-width:1320px) and (min-width:821px){
  .collaboration{
    grid-template-columns:1fr;
    gap:clamp(40px,5vw,64px);
  }
  .collab-intro{max-width:920px}
  .collab-wheel{
    width:min(100%,960px);
    max-width:960px;
    justify-self:center;
  }
}

/* Container-aware type: text follows the width of the block/card it actually sits in. */
.hero-copy,
.collab-intro,
.partner-showcase > .partner-showcase-head{
  container-type:inline-size;
}
.collab-item{container-type:inline-size}

@supports (font-size:1cqi){
  .hero-copy h1{
    font-size:clamp(46px,13.4cqi,132px);
  }
  .hero-copy .hero-lead{
    font-size:clamp(17px,3.2cqi,30px);
  }
  .collab-intro .display{
    font-size:clamp(40px,11.8cqi,108px);
    line-height:.92;
    overflow-wrap:anywhere;
  }
  .collab-intro > p:last-child{
    font-size:clamp(16px,3cqi,25px);
  }
  .collab-item strong{
    font-size:clamp(18px,8.2cqi,38px) !important;
    line-height:1.06 !important;
  }
  .partner-showcase > .partner-showcase-head h3{
    font-size:clamp(30px,7.2cqi,68px);
  }
}

/* Extra-small windows: never force hero lines to stay on one line. */
@media (max-width:620px){
  .hero-line{
    white-space:normal !important;
    width:100% !important;
    overflow-wrap:anywhere;
  }
  .hero-copy h1{line-height:.9}
}

/* =========================================================
   v37 — Clear square application buttons
   Make internship application links obvious, touch-friendly CTAs.
   ========================================================= */
.application-cta{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:min(100%, 340px);
  min-height:68px;
  margin-top:22px;
  padding:16px 20px;
  border:3px solid var(--ink);
  border-radius:12px;
  font-size:18px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:-.01em;
  text-decoration:none;
  box-shadow:7px 7px 0 var(--ink);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.application-cta span:last-child{
  display:grid;
  place-items:center;
  flex:0 0 auto;
  width:36px;
  height:36px;
  border:2px solid currentColor;
  border-radius:8px;
  font-size:21px;
  line-height:1;
}
.application-cta-hotel{
  background:var(--yellow);
  color:var(--ink);
}
.application-cta-industry{
  background:var(--orange);
  color:#fff;
}
.application-cta:hover,
.application-cta:focus-visible{
  transform:translate(-3px,-3px);
  box-shadow:10px 10px 0 var(--ink);
}
.application-cta:focus-visible{
  outline:4px solid #fff;
  outline-offset:4px;
}
@media(max-width:620px){
  .application-cta{
    width:100%;
    min-height:64px;
    margin-top:18px;
    font-size:17px;
  }
}

/* v43 — prominent apply button in the top navigation */
.scroll-anchor{display:block;position:relative;top:-110px;visibility:hidden;height:0}
.site-nav .nav-apply{background:var(--orange)!important;color:#fff!important;border:3px solid var(--ink);border-radius:999px;box-shadow:4px 4px 0 var(--ink);padding:13px 22px!important;white-space:nowrap}
.site-nav .nav-apply::after{display:none!important}
.site-nav .nav-contact{white-space:nowrap}
@media(max-width:1180px) and (min-width:821px){.site-nav{gap:10px!important;font-size:13px!important}.site-nav .nav-apply,.site-nav .nav-contact{padding:11px 15px!important}}
@media(max-width:820px){.site-nav .nav-apply{margin-top:10px;text-align:center;border-radius:14px!important;background:var(--orange)!important;color:#fff!important;box-shadow:none!important}.site-nav .nav-contact{margin-top:4px!important;background:var(--yellow)!important;color:var(--ink)!important}}
