:root{
  --green:#123f34; --green2:#0c3028; --gold:#c49a45; --cream:#f6f0e3;
  --paper:#fffdf8; --ink:#222; --muted:#6e6a61; --line:#e6dfd0;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans TC","PingFang HK","Microsoft JhengHei",sans-serif;color:var(--ink);background:var(--paper);line-height:1.55}
a{color:inherit}
img{max-width:100%;height:auto}
.screen-reader-text,.ts-skip{position:absolute;left:-9999px}
.ts-skip:focus{left:8px;top:8px;z-index:100;background:#fff;padding:8px 12px}

.btn{display:inline-block;padding:13px 22px;border-radius:999px;font-weight:800;text-decoration:none;border:1px solid #d9bd79;cursor:pointer;font:inherit}
.btn-primary{background:#e0bd72;color:#17372f}
.btn-ghost{background:#fff;color:#17372f;border-color:var(--gold)}
.btn:hover{filter:brightness(0.97)}
.container{width:min(1160px,calc(100% - 32px));margin:0 auto}

/* Header */
.ts-header{background:var(--green);color:#f7f2e7;position:sticky;top:0;z-index:50}
.ts-header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;min-height:64px}
.ts-brand-text{display:flex;flex-direction:column;text-decoration:none;color:inherit;font-weight:800}
.ts-brand-sub{font-size:.85rem;color:var(--gold);font-weight:600}
.ts-header .custom-logo-link img{max-height:48px;width:auto}
.ts-nav-toggle{display:none;background:transparent;border:1px solid var(--gold);color:var(--cream);border-radius:8px;padding:6px 10px;font-size:1.2rem}
.ts-nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.ts-menu,.ts-lang,.ts-menu-footer{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px 16px}
.ts-menu a,.ts-lang a{color:var(--cream);text-decoration:none;font-weight:600;font-size:.95rem}
.ts-menu a:hover,.ts-lang a:hover{color:var(--gold)}
.ts-lang .current-lang a{color:var(--gold);text-decoration:underline}

/* Hero / cards */
.ts-hero{position:relative;color:var(--cream);padding:0;overflow:hidden;background:var(--green)}
.ts-hero-media{display:block;margin:0}
.ts-hero-media img{width:100%;height:auto;max-height:min(36vw,320px);object-fit:cover;object-position:center 35%;display:block}
.ts-hero-copy{position:relative;margin-top:-40px;padding:20px 0 36px;background:linear-gradient(180deg,transparent,rgba(18,63,52,.9) 22%,var(--green))}
@media (max-width:820px){
  .ts-hero-media img{max-height:160px}
  .ts-hero-copy{margin-top:-24px;padding:14px 0 28px}
  .ts-hero h1{font-size:1.35rem}
  .ts-hero-cta{margin-top:12px}
}
.ts-eyebrow{color:var(--gold);font-weight:700;letter-spacing:.04em;margin:0 0 8px}
.ts-hero h1{margin:0 0 12px;font-size:clamp(1.6rem,4vw,2.4rem);line-height:1.25}
.ts-lead{max-width:36em;opacity:.95}
.ts-price-note{color:var(--gold);font-weight:700}
.ts-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.ts-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px auto 40px}
.ts-card{display:flex;flex-direction:column;gap:6px;padding:0 0 16px;border-radius:16px;background:#fff;border:1px solid var(--line);text-decoration:none;box-shadow:0 6px 18px rgba(18,63,52,.06);overflow:hidden}
.ts-card-img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.ts-card strong,.ts-card span{padding:0 16px}
.ts-card strong{padding-top:12px}
.ts-card:hover{border-color:var(--gold)}
.ts-card-price{color:var(--green);font-weight:800}

.ts-main{padding:28px 0 48px}
.ts-page-title{color:var(--green);margin-top:0}
.ts-muted{color:var(--muted)}
.ts-menu-list{padding-left:1.1em}
.ts-menu-list li{margin:10px 0}
.ts-steps{padding-left:1.2em}
.ts-steps li{margin:10px 0}

/* Order form */
.ts-order{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px 18px 28px;margin:12px 0 40px}
.ts-order-head h2{margin:0 0 6px;color:var(--green)}
.ts-form-group{margin:22px 0;padding-top:8px;border-top:1px dashed var(--line)}
.ts-form-group h3{margin:0 0 12px;font-size:1.05rem;color:var(--green2)}
.ts-options{display:flex;flex-direction:column;gap:8px}
.ts-options.ts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.ts-option{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--cream);cursor:pointer}
.ts-option:has(input:checked){border-color:var(--gold);background:#fff8ea;box-shadow:inset 0 0 0 1px var(--gold)}
.ts-option input{margin-top:3px;accent-color:var(--green)}
.ts-option input:disabled + span{opacity:.45}
.ts-input{width:100%;max-width:420px;padding:12px 14px;border-radius:12px;border:1px solid #cfc6b4;font:inherit;background:#fff}
.ts-actions{margin-top:20px}
.ts-utensils{background:var(--cream);padding:14px;border-radius:14px;border:1px solid var(--gold)}

/* Footer */
.ts-footer{background:var(--green2);color:var(--cream);padding:32px 0 20px;margin-top:24px}
.ts-footer a{color:var(--gold)}
.ts-footer-inner{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.ts-copy{margin-top:18px;opacity:.75}

@media (max-width:820px){
  .ts-cards{grid-template-columns:1fr}
  .ts-options.ts-grid{grid-template-columns:1fr}
  .ts-nav-toggle{display:inline-block}
  .ts-nav{display:none;width:100%;flex-direction:column;align-items:flex-start;padding-bottom:12px}
  .ts-header-inner{flex-wrap:wrap}
  .ts-nav.is-open{display:flex}
  .ts-menu,.ts-lang{flex-direction:column}
}


/* Tak Sing catering homepage — scoped to .ts-homepage */
.ts-homepage{--tsh-green:#123f34;--tsh-dark:#0c3028;--tsh-gold:#c49a45;--tsh-cream:#f6f0e3;color:#253c33;background:#fffdf8;overflow-wrap:break-word}
.ts-homepage h1,.ts-homepage h2,.ts-homepage h3{font-family:"Noto Serif TC","Songti TC","Microsoft JhengHei",serif}
.ts-homepage h2{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1.4;margin:0 0 16px;color:var(--tsh-green)}
.ts-homepage .tsh-kicker{font-size:.8rem;letter-spacing:.16em;color:#87651f;font-weight:700;margin:0 0 14px}
.ts-homepage .tsh-hero{position:relative;isolation:isolate;display:flex;align-items:center;min-height:600px;padding:88px 0;background:var(--tsh-dark);color:#fffdf8;overflow:hidden}
.ts-homepage .tsh-hero-media{position:absolute;inset:0;z-index:-2}
.ts-homepage .tsh-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.ts-homepage .tsh-hero:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(12,48,40,.97),rgba(12,48,40,.85) 45%,rgba(12,48,40,.4))}
.ts-homepage .tsh-hero .tsh-kicker,.ts-homepage .tsh-final .tsh-kicker{color:#e6c879}
.ts-homepage .tsh-hero h1{font-size:clamp(2.3rem,4.8vw,4.2rem);line-height:1.32;letter-spacing:.025em;margin:0 0 22px;max-width:17em;color:#fffdf8}
.ts-homepage .tsh-hero h1 span{color:#ead69e}
.ts-homepage .tsh-hero-sub{font-size:clamp(1.05rem,2vw,1.3rem);margin:0 0 14px;max-width:36em}
.ts-homepage .tsh-occasions{color:#e5e5d8;font-size:.95rem;max-width:40em}
.ts-homepage .tsh-actions{display:flex;gap:14px;flex-wrap:wrap;margin:30px 0 22px}
.ts-homepage .btn{font-family:inherit;font-weight:700;min-height:48px;line-height:1.5;text-align:center;transition:background .15s ease,border-color .15s ease}
.ts-homepage .btn-primary{background:#e0bd72;border-color:#e0bd72;color:#17372f}
.ts-homepage .tsh-outline{border-color:#e1d6b7;background:transparent;color:#fffdf8}
.ts-homepage .tsh-hero-note{font-size:.85rem;color:#e5d6b5;margin:0}
.ts-homepage .tsh-section{padding-top:80px;padding-bottom:80px;scroll-margin-top:110px}
.ts-homepage .tsh-heading{text-align:center;max-width:760px;margin:0 auto 40px}
.ts-homepage .tsh-heading>p:last-child{color:#69685e;line-height:1.8}
.ts-homepage .tsh-features{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.ts-homepage .tsh-feature{padding:26px 22px;border:1px solid #e6dfd0;border-top:3px solid var(--tsh-gold);border-radius:4px 4px 16px 16px;background:#fff}
.ts-homepage .tsh-number{font-family:Georgia,serif;color:#87651f;font-size:1.8rem}
.ts-homepage .tsh-feature h3{font-size:1.05rem;margin:18px 0 10px;color:var(--tsh-green)}
.ts-homepage .tsh-feature p,.ts-homepage .tsh-package-body>p,.ts-homepage .tsh-steps p{font-size:.95rem;line-height:1.85;color:#69685e}
.ts-homepage .tsh-packages{background:var(--tsh-cream)}
.ts-homepage .tsh-package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.ts-homepage .tsh-package{background:#fffdf8;border:1px solid #ded4be;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.ts-homepage .tsh-package>img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#e9e1ce}
.ts-homepage .tsh-package-body{padding:26px;flex:1;display:flex;flex-direction:column;align-items:flex-start}
.ts-homepage .tsh-package-body .tsh-kicker{font-size:.74rem;margin:0 0 10px;color:#87651f}
.ts-homepage .tsh-package h3{font-size:2rem;margin:0 0 12px;color:var(--tsh-green)}
.ts-homepage .tsh-package-body>p{margin:0 0 16px}
.ts-homepage .tsh-package-body .tsh-quota{font-size:.86rem;color:var(--tsh-green);font-weight:700;border-top:1px solid #e6dfd0;padding-top:16px;width:100%}
.ts-homepage .tsh-package .btn{margin-top:auto;width:100%}
.ts-homepage .tsh-story{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px}
.ts-homepage .tsh-story-image{border-radius:120px 16px 16px 16px;overflow:hidden;background:#eee6d7}
.ts-homepage .tsh-story-image img{display:block;width:100%;height:auto;aspect-ratio:1.1;object-fit:cover}
.ts-homepage .tsh-story p{line-height:1.9}
.ts-homepage .tsh-tags{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}
.ts-homepage .tsh-tags span{font-size:.85rem;padding:6px 12px;background:var(--tsh-cream);border:1px solid #ded4be;border-radius:30px}
.ts-homepage .tsh-text-link{color:var(--tsh-green);font-weight:700;text-underline-offset:6px}
.ts-homepage .tsh-booking{background:#f1f4ef}
.ts-homepage .tsh-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:26px;counter-reset:none}
.ts-homepage .tsh-step-no{display:inline-flex;width:46px;height:46px;border-radius:50%;align-items:center;justify-content:center;background:var(--tsh-green);color:#ead69e;font-family:Georgia,serif}
.ts-homepage .tsh-steps h3{font-size:1rem;color:var(--tsh-green);margin:18px 0 8px}
.ts-homepage .tsh-steps p{margin:0}
.ts-homepage .tsh-faq{max-width:850px}
.ts-homepage .tsh-faq details{border-bottom:1px solid #ded4be;padding:20px 0}
.ts-homepage .tsh-faq summary{font-weight:700;color:var(--tsh-green);cursor:pointer;font-size:1.05rem;line-height:1.7}
.ts-homepage .tsh-faq details p{color:#69685e;line-height:1.9;margin:14px 0 0}
.ts-homepage .tsh-final{background:var(--tsh-green);color:#f6f0e3;text-align:center;padding:64px 0}
.ts-homepage .tsh-final h2{color:#f6f0e3}
.ts-homepage .tsh-final .btn{margin-top:18px}
.ts-homepage a:focus-visible,.ts-homepage summary:focus-visible{outline:3px solid #b3872e;outline-offset:5px}
@media(max-width:960px){.ts-homepage .tsh-features{grid-template-columns:repeat(2,minmax(0,1fr))}.ts-homepage .tsh-package-grid{gap:14px}.ts-homepage .tsh-package-body{padding:20px}.ts-homepage .tsh-story{gap:32px}.ts-homepage .tsh-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}}
@media(max-width:680px){.ts-homepage .tsh-hero{min-height:550px;padding:64px 0}.ts-homepage .tsh-hero:after{background:linear-gradient(180deg,rgba(12,48,40,.78),rgba(12,48,40,.96))}.ts-homepage .tsh-hero-media img{object-position:center}.ts-homepage .tsh-hero h1{font-size:2.2rem}.ts-homepage .tsh-actions{flex-direction:column;align-items:stretch;max-width:360px}.ts-homepage .tsh-section{padding-top:48px;padding-bottom:48px}.ts-homepage .tsh-heading{margin-bottom:28px}.ts-homepage .tsh-features{gap:12px}.ts-homepage .tsh-feature{padding:18px 14px}.ts-homepage .tsh-feature h3{font-size:1rem}.ts-homepage .tsh-feature p{font-size:.88rem}.ts-homepage .tsh-package-grid,.ts-homepage .tsh-story{grid-template-columns:1fr}.ts-homepage .tsh-package-grid{gap:24px}.ts-homepage .tsh-package-body{padding:24px}.ts-homepage .tsh-story{gap:28px}.ts-homepage .tsh-story-image{border-top-left-radius:70px}.ts-homepage .tsh-steps{grid-template-columns:1fr;gap:24px}.ts-homepage .tsh-steps li{display:grid;grid-template-columns:46px minmax(0,1fr);column-gap:16px}.ts-homepage .tsh-step-no{grid-row:1 / 3}.ts-homepage .tsh-steps h3{margin:0 0 5px}.ts-homepage .tsh-final{padding:48px 0}}
@media(max-width:360px){.ts-homepage .tsh-features{grid-template-columns:1fr}.ts-homepage .tsh-hero h1{font-size:1.9rem}}

/* Original Wix dish photos — all 20/30/40-person package pages */
.ts-order .ts-options[data-group="main"],.ts-order .ts-options.ts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ts-order .ts-photo-option{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr);align-content:start;align-items:start;gap:12px 10px;padding:0 0 16px;overflow:hidden;min-width:0;background:#fffdf8;border-radius:14px}
.ts-order .ts-photo-option .ts-dish-photo{grid-column:1 / -1;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;display:block;background:#f6f0e3}
.ts-order .ts-photo-option input{margin:3px 0 0 12px;width:18px;height:18px}
.ts-order .ts-photo-option>span{padding:0 12px 0 4px;line-height:1.6;font-weight:600}
.ts-order .ts-photo-option:has(input:focus-visible){outline:3px solid #c49a45;outline-offset:3px}
.ts-order .ts-photo-option:has(input:checked){border-color:#123f34;box-shadow:inset 0 0 0 2px #123f34;background:#f6f0e3}
@media(max-width:900px){.ts-order .ts-options[data-group="main"],.ts-order .ts-options.ts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:380px){.ts-order .ts-options[data-group="main"],.ts-order .ts-options.ts-grid{grid-template-columns:1fr}}
/* 套餐相片尺寸修正 */
.ts-order .ts-options[data-group="main"],
.ts-order .ts-options.ts-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

.ts-order .ts-photo-option {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) !important;
  align-content: start;
  gap: 10px;
  padding: 0 0 12px !important;
  min-width: 0;
  overflow: hidden;
}

.ts-order .ts-photo-option .ts-dish-photo {
  grid-column: 1 / -1;
  display: block;
  width: 100% !important;
  height: 140px !important;
  object-fit: cover;
}

.ts-order .ts-photo-option input {
  margin-left: 10px;
}

.ts-order .ts-photo-option > span {
  padding-right: 10px;
}

@media (max-width: 900px) {
  .ts-order .ts-options[data-group="main"],
  .ts-order .ts-options.ts-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 600px) {
  .ts-order .ts-options[data-group="main"],
  .ts-order .ts-options.ts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .ts-order .ts-photo-option .ts-dish-photo {
    height: 110px !important;
  }
}
