:root { --gold:#f0a500; }
    * { box-sizing:border-box; margin:0; padding:0; }
    html { overflow-x:hidden; max-width:100%; }
    body { min-height:100vh; overflow-x:hidden; max-width:100%; font-family:'Segoe UI','PingFang TC',sans-serif; background:#000 url('/images/index/tw_bker_3.jpg') center/cover fixed no-repeat; }
    body::before { content:''; position:fixed; inset:0; z-index:-1; background:rgba(0,0,0,.45); }
    main { min-height:calc(100vh - 72px); padding:98px 20px 70px; }
    .page-title-banner { max-width:1900px; margin:0 auto 22px; padding:20px 28px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; background:rgba(255,255,255,.12); backdrop-filter:blur(12px); border:1px solid rgba(255,255,255,.2); border-radius:18px; }
    .page-title-banner h1 { margin:0; color:#fff; font-size:1.4rem; font-weight:800; text-shadow:0 2px 8px rgba(0,0,0,.4); }
    .page-title-banner.center-title h1 { width:100%; text-align:center; }
    .page-tabs { display:flex; flex-wrap:wrap; gap:8px; }
    .page-tab { padding:10px 20px; border-radius:12px; font-size:.95rem; font-weight:700; color:rgba(255,255,255,.75); background:rgba(255,255,255,.08); text-decoration:none; white-space:nowrap; transition:background .2s,color .2s; }
    .page-tab:hover:not(.active) { background:rgba(255,255,255,.18); color:#fff; }
    .page-tab.active { background:#fff; color:#163c28; box-shadow:0 4px 14px rgba(0,0,0,.2); }
    .page-join-link { margin-left:auto; padding:10px 22px; border-radius:12px; background:#f0a500; color:#18251d; font-size:.95rem; font-weight:900; text-decoration:none; white-space:nowrap; box-shadow:0 4px 14px rgba(0,0,0,.22); transition:transform .2s,background .2s; }
    .page-join-link:hover { background:#ffc044; color:#18251d; transform:translateY(-1px); }
    .page-title-banner-narrow { max-width:1100px; }
    .store-count { color:rgba(255,255,255,.75); font-size:.85rem; font-weight:700; white-space:nowrap; }
    .page-content { max-width:1100px; margin:0 auto 22px; padding:28px 32px; background:rgba(255,255,255,.95); border-radius:18px; box-shadow:0 8px 32px rgba(0,0,0,.25); color:#2a332c; line-height:1.8; font-size:.98rem; }
    .page-content-wide { max-width:1900px; }
    .page-content img { max-width:100%; height:auto; border-radius:10px; }
    .page-content h1,.page-content h2,.page-content h3,.page-content h4 { color:#163c28; margin:.8em 0 .4em; }
    .page-content p { margin:0 0 1em; }
    .page-content a { color:#17653a; }
    .page-content table { max-width:100%; display:block; overflow-x:auto; }
    .site-footer { position:relative; z-index:5; margin-top:40px; padding:40px 24px 0; border-top:1px solid rgba(255,255,255,.14); background:#50503f; color:rgba(255,255,255,.82); }
    .site-footer-inner { max-width:1900px; margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:28px; padding-bottom:28px; }
    .sf-col h5 { color:#fff; font-size:.92rem; font-weight:800; margin:0 0 12px; }
    .sf-col ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
    .sf-sitemap { grid-column: span 2; }
    .sf-sitemap-cols { display:flex; gap:24px; }
    .sf-sitemap-cols ul { flex:1; min-width:0; }
    @media (max-width:540px) { .sf-sitemap { grid-column: span 1; } }
    .sf-col ul li { font-size:.83rem; line-height:1.5; display:flex; align-items:flex-start; gap:7px; }
    .sf-col ul li i { margin-top:2px; color:var(--gold); flex-shrink:0; }
    .sf-col a { color:rgba(255,255,255,.82); text-decoration:none; }
    .sf-col a:hover { color:var(--gold); text-decoration:underline; }
    .sf-logo { display:flex; align-items:center; gap:8px; color:#fff; font-size:1.15rem; font-weight:900; }
    .sf-logo em { color:var(--gold); font-style:normal; }
    .sf-logo-img { height:1.6rem; width:auto; vertical-align:middle; }
    .sf-tagline { margin:10px 0 0; font-size:.83rem; line-height:1.6; color:rgba(255,255,255,.7); max-width:340px; }
    .sf-social { display:flex; gap:10px; margin-top:16px; }
    .sf-social a { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.1); color:#fff; font-size:.95rem; transition:background .2s,color .2s; }
    .sf-social a:hover { background:var(--gold); color:#1a1a1a; }
    .sf-lang-row { display:flex; align-items:center; justify-content:center; gap:4px; padding:14px 0; border-top:1px solid rgba(255,255,255,.1); }
    .fl-btn { color:rgba(255,255,255,.8); font-size:.82rem; font-weight:500; background:none; border:none; cursor:pointer; padding:3px 8px; border-radius:6px; text-shadow:0 1px 4px rgba(0,0,0,.6); transition:color .2s; }
    .fl-btn:hover, .fl-btn.active { color:var(--gold); }
    .fl-sep { color:rgba(255,255,255,.3); font-size:.7rem; text-shadow:none; }
    .site-footer-bottom { padding:16px 0 16px; border-top:1px solid rgba(255,255,255,.1); font-size:.76rem; color:rgba(255,255,255,.55); text-align:center; }
    @media (max-width:860px) { .site-footer-inner { grid-template-columns:1fr 1fr; } }
    @media (max-width:540px) { .site-footer-inner { grid-template-columns:1fr; gap:24px; } }
    .store-grid { max-width:1900px; margin:0 auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
    .store-card { overflow:hidden; border-radius:20px; background:rgba(255,255,255,.95); box-shadow:0 8px 32px rgba(0,0,0,.25); color:#333; cursor:pointer; transition:transform .2s,box-shadow .2s; }
    .store-card:hover { transform:translateY(-4px); box-shadow:0 16px 48px rgba(0,0,0,.35); }
    .store-cover { height:130px; padding:14px 18px; display:flex; align-items:flex-end; position:relative; overflow:hidden; isolation:isolate; color:#fff; background:#17653a; }
    .store-cover-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
    .store-cover::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(transparent 20%,rgba(0,0,0,.76)); }
    .store-identity { display:flex; align-items:flex-end; min-width:0; }
    .store-logo { width:44px; height:44px; margin-right:10px; border-radius:11px; object-fit:cover; background:#fff; }
    .store-name { font-size:1.25rem; font-weight:800; line-height:1.2; text-shadow:0 2px 8px rgba(0,0,0,.5); }
    .store-location { margin-top:3px; color:rgba(255,255,255,.85); font-size:.8rem; }
    .store-body { padding:14px 18px 18px; }
    .store-rating { display:flex; align-items:center; gap:6px; margin-bottom:8px; }
    .store-stars { color:#f0a500; letter-spacing:1px; }
    .store-rating-value { font-weight:700; }
    .store-review-count { color:#999; font-size:.8rem; }
    .store-slogan { min-height:2.5em; margin-bottom:10px; color:#555; font-size:.83rem; line-height:1.5; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
    .store-times,.store-tags { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:10px; }
    .store-chip { padding:2px 8px; border-radius:6px; background:#f5f5f5; color:#777; font-size:.73rem; }
    .store-tag { padding:2px 8px; border-radius:20px; background:rgba(26,107,58,.1); color:#1a6b3a; font-size:.73rem; font-weight:600; }
    .store-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:12px; border-top:1px solid #f0f0f0; }
    .store-price { color:#888; font-size:.82rem; }
    .store-price b { color:#1a6b3a; font-size:1.05rem; }
    .store-button { flex:0 0 auto; padding:7px 16px; border:0; border-radius:10px; background:#1a6b3a; color:#fff; font-size:.85rem; font-weight:700; }
    .store-status { max-width:1900px; margin:30px auto; padding:28px; border-radius:18px; color:#fff; text-align:center; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); backdrop-filter:blur(12px); }
    .gov-hotel-filters { max-width:1300px; margin:0 auto 18px; display:flex; flex-wrap:wrap; gap:10px; }
    .gov-hotel-filters input, .gov-hotel-filters select { flex:1 1 180px; min-width:0; padding:10px 14px; border-radius:10px; border:1px solid rgba(255,255,255,.3); background:rgba(255,255,255,.92); color:#2a332c; font-size:.9rem; }
    .gov-hotel-filters button { flex:0 0 auto; padding:10px 20px; border:0; border-radius:10px; background:#1a6b3a; color:#fff; font-weight:700; font-size:.9rem; cursor:pointer; }
    .gov-hotel-filters button.gov-hotel-reset { background:rgba(255,255,255,.15); color:#fff; border:1px solid rgba(255,255,255,.3); }
    .gov-hotel-table-wrap { max-width:1300px; margin:0 auto 18px; padding:8px; background:rgba(255,255,255,.95); border-radius:18px; box-shadow:0 8px 32px rgba(0,0,0,.25); }
    table.gov-hotel-table { width:100%; border-collapse:collapse; font-size:.88rem; color:#2a332c; }
    table.gov-hotel-table th, table.gov-hotel-table td { padding:10px 14px; text-align:left; border-bottom:1px solid #eef1ef; white-space:nowrap; }
    table.gov-hotel-table td:nth-child(4) { white-space:normal; }
    table.gov-hotel-table th:nth-child(6), table.gov-hotel-table th:nth-child(7),
    table.gov-hotel-table td:nth-child(6), table.gov-hotel-table td:nth-child(7) { text-align:center; }
    table.gov-hotel-table th { color:#17653a; font-weight:800; }
    table.gov-hotel-table tbody tr:hover { background:#f5faf6; }
    .gov-hotel-pager { max-width:1300px; margin:0 auto 30px; display:flex; align-items:center; justify-content:center; gap:14px; color:#fff; font-size:.88rem; }
    .gov-hotel-pager button { padding:8px 18px; border:0; border-radius:10px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); color:#fff; font-weight:700; cursor:pointer; }
    .gov-hotel-pager button:disabled { opacity:.4; cursor:not-allowed; }
    .event-grid { max-width:1900px; margin:0 auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
    .event-card { padding:24px; border:1px solid rgba(255,255,255,.6); border-radius:18px; background:rgba(255,255,255,.96); box-shadow:0 8px 32px rgba(0,0,0,.22); color:#26332b; cursor:pointer; transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease; }
    .event-card:hover { transform:translateY(-3px); border-color:rgba(23,101,58,.3); box-shadow:0 14px 38px rgba(0,0,0,.3); }
    .event-card:focus-visible { outline:3px solid #f0a500; outline-offset:3px; }
    .event-card h2 { margin:0 0 12px; color:#163c28; font-size:1.25rem; line-height:1.4; }
    .event-card-info { display:grid; gap:7px; color:#5b675f; font-size:.9rem; }
    .event-card-info > div:not(.event-card-organizer-row) { display:flex; align-items:flex-start; gap:7px; line-height:1.55; }
    .event-card-info i { width:18px; margin-top:.18em; color:#1a6b3a; flex:0 0 18px; }
    .event-card-organizer-row { display:flex; align-items:center; justify-content:space-between; gap:10px; }
    .event-card-organizer-row a { display:inline-flex; align-items:center; color:#17653a; font-weight:700; text-decoration:none; white-space:nowrap; }
    .event-card-organizer-row a:hover { text-decoration:underline; }
    .event-store-list { margin-top:16px; padding-top:14px; border-top:1px solid #e3e9e5; }
    .event-store-list h3 { margin:0 0 9px; color:#34483b; font-size:.9rem; }
    .event-store-links { display:flex; flex-wrap:wrap; gap:7px; }
    .event-store-links > span { display:inline-flex; align-items:center; gap:4px; padding:5px 9px; border-radius:8px; background:#edf5f0; color:#17653a; font-size:.82rem; font-weight:700; }
    .event-store-offer-badge { display:inline-flex; align-items:center; padding:5px 9px; border-radius:8px; background:#e7f3eb; color:#17653a; font-size:.78rem; font-weight:700; }
    .event-store-empty { color:#87928b; font-size:.82rem; }
    @media (max-width:860px) { .store-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
    @media (max-width:560px) { .store-grid { grid-template-columns:1fr; } }
    @media (max-width:1200px) { .event-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
    @media (max-width:700px) {
        .event-grid { grid-template-columns:1fr; gap:14px; }
        .event-card { padding:20px; border-radius:15px; }
        .event-card h2 { font-size:1.12rem; }
        .event-card-organizer-row { align-items:flex-start; flex-direction:column; }
    }
    @media (prefers-reduced-motion:reduce) { .event-card { transition:none; } }
    @media (max-width:1000px) {
        main { min-height:calc(100vh - 148px); padding:16px 12px 70px; }
        .page-title-banner { padding:17px 18px; }
        .page-title-banner h1 { font-size:1.2rem; }
        .page-tabs { flex:1 1 100%; overflow-x:auto; flex-wrap:nowrap; padding-bottom:3px; }
        .page-join-link { margin-left:auto; }
    }
    @media (min-width:600px) and (max-width:1000px) {
        main { min-height:calc(100vh - 118px); }
    }
